// ==UserScript== // @name KISS Translator // @namespace https://github.com/fishjar/kiss-translator // @version 2.0.1 // @description A simple bilingual translation extension & Greasemonkey script (一个简约的双语对照翻译扩展 & 油猴脚本) // @author Gabe // @homepageURL https://github.com/fishjar/kiss-translator // @license GPL-3.0 // @match *://*/* // @icon https://fishjar.github.io/kiss-translator/images/logo192.png // @grant GM.xmlHttpRequest // @grant GM.registerMenuCommand // @grant GM.unregisterMenuCommand // @grant GM.setValue // @grant GM.getValue // @grant GM.deleteValue // @grant GM.info // @grant unsafeWindow // @connect translate.googleapis.com // @connect translate-pa.googleapis.com // @connect generativelanguage.googleapis.com // @connect api-edge.cognitive.microsofttranslator.com // @connect edge.microsoft.com // @connect bing.com // @connect api-free.deepl.com // @connect api.deepl.com // @connect www2.deepl.com // @connect api.openai.com // @connect generativelanguage.googleapis.com // @connect openai.azure.com // @connect workers.dev // @connect github.io // @connect github.com // @connect githubusercontent.com // @connect kiss-translator.rayjar.com // @connect ghproxy.com // @connect dav.jianguoyun.com // @connect fanyi.baidu.com // @connect transmart.qq.com // @connect niutrans.com // @connect translate.volcengine.com // @connect dict.youdao.com // @connect api.anthropic.com // @connect api.cloudflare.com // @connect openrouter.ai // @connect localhost // @connect 127.0.0.1 // @run-at document-end // @downloadURL none // ==/UserScript== /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ 3347: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: () => (/* binding */ createCache) }); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+sheet@1.2.2/node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js /* Based off glamor's StyleSheet, thanks Sunil ❤️ high performance StyleSheet for css-in-js systems - uses multiple style tags behind the scenes for millions of rules - uses `insertRule` for appending in production for *much* faster performance // usage import { StyleSheet } from '@emotion/sheet' let styleSheet = new StyleSheet({ key: '', container: document.head }) styleSheet.insert('#box { border: 1px solid red; }') - appends a css rule into the stylesheet styleSheet.flush() - empties the stylesheet of all its contents */ // $FlowFixMe function sheetForTag(tag) { if (tag.sheet) { // $FlowFixMe return tag.sheet; } // this weirdness brought to you by firefox /* istanbul ignore next */ for (var i = 0; i < document.styleSheets.length; i++) { if (document.styleSheets[i].ownerNode === tag) { // $FlowFixMe return document.styleSheets[i]; } } } function createStyleElement(options) { var tag = document.createElement('style'); tag.setAttribute('data-emotion', options.key); if (options.nonce !== undefined) { tag.setAttribute('nonce', options.nonce); } tag.appendChild(document.createTextNode('')); tag.setAttribute('data-s', ''); return tag; } var StyleSheet = /*#__PURE__*/function () { // Using Node instead of HTMLElement since container may be a ShadowRoot function StyleSheet(options) { var _this = this; this._insertTag = function (tag) { var before; if (_this.tags.length === 0) { if (_this.insertionPoint) { before = _this.insertionPoint.nextSibling; } else if (_this.prepend) { before = _this.container.firstChild; } else { before = _this.before; } } else { before = _this.tags[_this.tags.length - 1].nextSibling; } _this.container.insertBefore(tag, before); _this.tags.push(tag); }; this.isSpeedy = options.speedy === undefined ? "production" === 'production' : options.speedy; this.tags = []; this.ctr = 0; this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets this.key = options.key; this.container = options.container; this.prepend = options.prepend; this.insertionPoint = options.insertionPoint; this.before = null; } var _proto = StyleSheet.prototype; _proto.hydrate = function hydrate(nodes) { nodes.forEach(this._insertTag); }; _proto.insert = function insert(rule) { // the max length is how many rules we have per style tag, it's 65000 in speedy mode // it's 1 in dev because we insert source maps that map a single rule to a location // and you can only have one source map per style tag if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) { this._insertTag(createStyleElement(this)); } var tag = this.tags[this.tags.length - 1]; if (false) { var isImportRule; } if (this.isSpeedy) { var sheet = sheetForTag(tag); try { // this is the ultrafast version, works across browsers // the big drawback is that the css won't be editable in devtools sheet.insertRule(rule, sheet.cssRules.length); } catch (e) { if (false) {} } } else { tag.appendChild(document.createTextNode(rule)); } this.ctr++; }; _proto.flush = function flush() { // $FlowFixMe this.tags.forEach(function (tag) { return tag.parentNode && tag.parentNode.removeChild(tag); }); this.tags = []; this.ctr = 0; if (false) {} }; return StyleSheet; }(); // EXTERNAL MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Tokenizer.js var Tokenizer = __webpack_require__(7650); // EXTERNAL MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Utility.js var Utility = __webpack_require__(7279); // EXTERNAL MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Enum.js var Enum = __webpack_require__(3724); // EXTERNAL MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Serializer.js var Serializer = __webpack_require__(903); // EXTERNAL MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Middleware.js var Middleware = __webpack_require__(7033); // EXTERNAL MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Parser.js var Parser = __webpack_require__(3963); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+cache@11.11.0/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js var identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) { var previous = 0; var character = 0; while (true) { previous = character; character = (0,Tokenizer/* peek */.fj)(); // &\f if (previous === 38 && character === 12) { points[index] = 1; } if ((0,Tokenizer/* token */.r)(character)) { break; } (0,Tokenizer/* next */.lp)(); } return (0,Tokenizer/* slice */.tP)(begin, Tokenizer/* position */.FK); }; var toRules = function toRules(parsed, points) { // pretend we've started with a comma var index = -1; var character = 44; do { switch ((0,Tokenizer/* token */.r)(character)) { case 0: // &\f if (character === 38 && (0,Tokenizer/* peek */.fj)() === 12) { // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings // stylis inserts \f after & to know when & where it should replace this sequence with the context selector // and when it should just concatenate the outer and inner selectors // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here points[index] = 1; } parsed[index] += identifierWithPointTracking(Tokenizer/* position */.FK - 1, points, index); break; case 2: parsed[index] += (0,Tokenizer/* delimit */.iF)(character); break; case 4: // comma if (character === 44) { // colon parsed[++index] = (0,Tokenizer/* peek */.fj)() === 58 ? '&\f' : ''; points[index] = parsed[index].length; break; } // fallthrough default: parsed[index] += (0,Utility/* from */.Dp)(character); } } while (character = (0,Tokenizer/* next */.lp)()); return parsed; }; var getRules = function getRules(value, points) { return (0,Tokenizer/* dealloc */.cE)(toRules((0,Tokenizer/* alloc */.un)(value), points)); }; // WeakSet would be more appropriate, but only WeakMap is supported in IE11 var fixedElements = /* #__PURE__ */new WeakMap(); var compat = function compat(element) { if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo // negative .length indicates that this rule has been already prefixed element.length < 1) { return; } var value = element.value, parent = element.parent; var isImplicitRule = element.column === parent.column && element.line === parent.line; while (parent.type !== 'rule') { parent = parent.parent; if (!parent) return; } // short-circuit for the simplest case if (element.props.length === 1 && value.charCodeAt(0) !== 58 /* colon */ && !fixedElements.get(parent)) { return; } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level) // then the props has already been manipulated beforehand as they that array is shared between it and its "rule parent" if (isImplicitRule) { return; } fixedElements.set(element, true); var points = []; var rules = getRules(value, points); var parentRules = parent.props; for (var i = 0, k = 0; i < rules.length; i++) { for (var j = 0; j < parentRules.length; j++, k++) { element.props[k] = points[i] ? rules[i].replace(/&\f/g, parentRules[j]) : parentRules[j] + " " + rules[i]; } } }; var removeLabel = function removeLabel(element) { if (element.type === 'decl') { var value = element.value; if ( // charcode for l value.charCodeAt(0) === 108 && // charcode for b value.charCodeAt(2) === 98) { // this ignores label element["return"] = ''; element.value = ''; } } }; var ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason'; var isIgnoringComment = function isIgnoringComment(element) { return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1; }; var createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) { return function (element, index, children) { if (element.type !== 'rule' || cache.compat) return; var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g); if (unsafePseudoClasses) { var isNested = !!element.parent; // in nested rules comments become children of the "auto-inserted" rule and that's always the `element.parent` // // considering this input: // .a { // .b /* comm */ {} // color: hotpink; // } // we get output corresponding to this: // .a { // & { // /* comm */ // color: hotpink; // } // .b {} // } var commentContainer = isNested ? element.parent.children : // global rule at the root level children; for (var i = commentContainer.length - 1; i >= 0; i--) { var node = commentContainer[i]; if (node.line < element.line) { break; } // it is quite weird but comments are *usually* put at `column: element.column - 1` // so we seek *from the end* for the node that is earlier than the rule's `element` and check that // this will also match inputs like this: // .a { // /* comm */ // .b {} // } // // but that is fine // // it would be the easiest to change the placement of the comment to be the first child of the rule: // .a { // .b { /* comm */ } // } // with such inputs we wouldn't have to search for the comment at all // TODO: consider changing this comment placement in the next major version if (node.column < element.column) { if (isIgnoringComment(node)) { return; } break; } } unsafePseudoClasses.forEach(function (unsafePseudoClass) { console.error("The pseudo class \"" + unsafePseudoClass + "\" is potentially unsafe when doing server-side rendering. Try changing it to \"" + unsafePseudoClass.split('-child')[0] + "-of-type\"."); }); } }; }; var isImportRule = function isImportRule(element) { return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64; }; var isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) { for (var i = index - 1; i >= 0; i--) { if (!isImportRule(children[i])) { return true; } } return false; }; // use this to remove incorrect elements from further processing // so they don't get handed to the `sheet` (or anything else) // as that could potentially lead to additional logs which in turn could be overhelming to the user var nullifyElement = function nullifyElement(element) { element.type = ''; element.value = ''; element["return"] = ''; element.children = ''; element.props = ''; }; var incorrectImportAlarm = function incorrectImportAlarm(element, index, children) { if (!isImportRule(element)) { return; } if (element.parent) { console.error("`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles."); nullifyElement(element); } else if (isPrependedWithRegularRules(index, children)) { console.error("`@import` rules can't be after other rules. Please put your `@import` rules before your other rules."); nullifyElement(element); } }; /* eslint-disable no-fallthrough */ function prefix(value, length) { switch ((0,Utility/* hash */.vp)(value, length)) { // color-adjust case 5103: return Enum/* WEBKIT */.G$ + 'print-' + value + value; // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function) case 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break case 5572: case 6356: case 5844: case 3191: case 6645: case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite, case 6391: case 5879: case 5623: case 6135: case 4599: case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width) case 4215: case 6389: case 5109: case 5365: case 5621: case 3829: return Enum/* WEBKIT */.G$ + value + value; // appearance, user-select, transform, hyphens, text-size-adjust case 5349: case 4246: case 4810: case 6968: case 2756: return Enum/* WEBKIT */.G$ + value + Enum/* MOZ */.uj + value + Enum.MS + value + value; // flex, flex-direction case 6828: case 4268: return Enum/* WEBKIT */.G$ + value + Enum.MS + value + value; // order case 6165: return Enum/* WEBKIT */.G$ + value + Enum.MS + 'flex-' + value + value; // align-items case 5187: return Enum/* WEBKIT */.G$ + value + (0,Utility/* replace */.gx)(value, /(\w+).+(:[^]+)/, Enum/* WEBKIT */.G$ + 'box-$1$2' + Enum.MS + 'flex-$1$2') + value; // align-self case 5443: return Enum/* WEBKIT */.G$ + value + Enum.MS + 'flex-item-' + (0,Utility/* replace */.gx)(value, /flex-|-self/, '') + value; // align-content case 4675: return Enum/* WEBKIT */.G$ + value + Enum.MS + 'flex-line-pack' + (0,Utility/* replace */.gx)(value, /align-content|flex-|-self/, '') + value; // flex-shrink case 5548: return Enum/* WEBKIT */.G$ + value + Enum.MS + (0,Utility/* replace */.gx)(value, 'shrink', 'negative') + value; // flex-basis case 5292: return Enum/* WEBKIT */.G$ + value + Enum.MS + (0,Utility/* replace */.gx)(value, 'basis', 'preferred-size') + value; // flex-grow case 6060: return Enum/* WEBKIT */.G$ + 'box-' + (0,Utility/* replace */.gx)(value, '-grow', '') + Enum/* WEBKIT */.G$ + value + Enum.MS + (0,Utility/* replace */.gx)(value, 'grow', 'positive') + value; // transition case 4554: return Enum/* WEBKIT */.G$ + (0,Utility/* replace */.gx)(value, /([^-])(transform)/g, '$1' + Enum/* WEBKIT */.G$ + '$2') + value; // cursor case 6187: return (0,Utility/* replace */.gx)((0,Utility/* replace */.gx)((0,Utility/* replace */.gx)(value, /(zoom-|grab)/, Enum/* WEBKIT */.G$ + '$1'), /(image-set)/, Enum/* WEBKIT */.G$ + '$1'), value, '') + value; // background, background-image case 5495: case 3959: return (0,Utility/* replace */.gx)(value, /(image-set\([^]*)/, Enum/* WEBKIT */.G$ + '$1' + '$`$1'); // justify-content case 4968: return (0,Utility/* replace */.gx)((0,Utility/* replace */.gx)(value, /(.+:)(flex-)?(.*)/, Enum/* WEBKIT */.G$ + 'box-pack:$3' + Enum.MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + Enum/* WEBKIT */.G$ + value + value; // (margin|padding)-inline-(start|end) case 4095: case 3583: case 4068: case 2532: return (0,Utility/* replace */.gx)(value, /(.+)-inline(.+)/, Enum/* WEBKIT */.G$ + '$1$2') + value; // (min|max)?(width|height|inline-size|block-size) case 8116: case 7059: case 5753: case 5535: case 5445: case 5701: case 4933: case 4677: case 5533: case 5789: case 5021: case 4765: // stretch, max-content, min-content, fill-available if ((0,Utility/* strlen */.to)(value) - 1 - length > 6) switch ((0,Utility/* charat */.uO)(value, length + 1)) { // (m)ax-content, (m)in-content case 109: // - if ((0,Utility/* charat */.uO)(value, length + 4) !== 45) break; // (f)ill-available, (f)it-content case 102: return (0,Utility/* replace */.gx)(value, /(.+:)(.+)-([^]+)/, '$1' + Enum/* WEBKIT */.G$ + '$2-$3' + '$1' + Enum/* MOZ */.uj + ((0,Utility/* charat */.uO)(value, length + 3) == 108 ? '$3' : '$2-$3')) + value; // (s)tretch case 115: return ~(0,Utility/* indexof */.Cw)(value, 'stretch') ? prefix((0,Utility/* replace */.gx)(value, 'stretch', 'fill-available'), length) + value : value; } break; // position: sticky case 4949: // (s)ticky? if ((0,Utility/* charat */.uO)(value, length + 1) !== 115) break; // display: (flex|inline-flex) case 6444: switch ((0,Utility/* charat */.uO)(value, (0,Utility/* strlen */.to)(value) - 3 - (~(0,Utility/* indexof */.Cw)(value, '!important') && 10))) { // stic(k)y case 107: return (0,Utility/* replace */.gx)(value, ':', ':' + Enum/* WEBKIT */.G$) + value; // (inline-)?fl(e)x case 101: return (0,Utility/* replace */.gx)(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + Enum/* WEBKIT */.G$ + ((0,Utility/* charat */.uO)(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + Enum/* WEBKIT */.G$ + '$2$3' + '$1' + Enum.MS + '$2box$3') + value; } break; // writing-mode case 5936: switch ((0,Utility/* charat */.uO)(value, length + 11)) { // vertical-l(r) case 114: return Enum/* WEBKIT */.G$ + value + Enum.MS + (0,Utility/* replace */.gx)(value, /[svh]\w+-[tblr]{2}/, 'tb') + value; // vertical-r(l) case 108: return Enum/* WEBKIT */.G$ + value + Enum.MS + (0,Utility/* replace */.gx)(value, /[svh]\w+-[tblr]{2}/, 'tb-rl') + value; // horizontal(-)tb case 45: return Enum/* WEBKIT */.G$ + value + Enum.MS + (0,Utility/* replace */.gx)(value, /[svh]\w+-[tblr]{2}/, 'lr') + value; } return Enum/* WEBKIT */.G$ + value + Enum.MS + value + value; } return value; } var prefixer = function prefixer(element, index, children, callback) { if (element.length > -1) if (!element["return"]) switch (element.type) { case Enum/* DECLARATION */.h5: element["return"] = prefix(element.value, element.length); break; case Enum/* KEYFRAMES */.lK: return (0,Serializer/* serialize */.q)([(0,Tokenizer/* copy */.JG)(element, { value: (0,Utility/* replace */.gx)(element.value, '@', '@' + Enum/* WEBKIT */.G$) })], callback); case Enum/* RULESET */.Fr: if (element.length) return (0,Utility/* combine */.$e)(element.props, function (value) { switch ((0,Utility/* match */.EQ)(value, /(::plac\w+|:read-\w+)/)) { // :read-(only|write) case ':read-only': case ':read-write': return (0,Serializer/* serialize */.q)([(0,Tokenizer/* copy */.JG)(element, { props: [(0,Utility/* replace */.gx)(value, /:(read-\w+)/, ':' + Enum/* MOZ */.uj + '$1')] })], callback); // :placeholder case '::placeholder': return (0,Serializer/* serialize */.q)([(0,Tokenizer/* copy */.JG)(element, { props: [(0,Utility/* replace */.gx)(value, /:(plac\w+)/, ':' + Enum/* WEBKIT */.G$ + 'input-$1')] }), (0,Tokenizer/* copy */.JG)(element, { props: [(0,Utility/* replace */.gx)(value, /:(plac\w+)/, ':' + Enum/* MOZ */.uj + '$1')] }), (0,Tokenizer/* copy */.JG)(element, { props: [(0,Utility/* replace */.gx)(value, /:(plac\w+)/, Enum.MS + 'input-$1')] })], callback); } return ''; }); } }; var defaultStylisPlugins = [prefixer]; var createCache = function createCache(options) { var key = options.key; if (false) {} if (key === 'css') { var ssrStyles = document.querySelectorAll("style[data-emotion]:not([data-s])"); // get SSRed styles out of the way of React's hydration // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be) // note this very very intentionally targets all style elements regardless of the key to ensure // that creating a cache works inside of render of a React component Array.prototype.forEach.call(ssrStyles, function (node) { // we want to only move elements which have a space in the data-emotion attribute value // because that indicates that it is an Emotion 11 server-side rendered style elements // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes) // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles // will not result in the Emotion 10 styles being destroyed var dataEmotionAttribute = node.getAttribute('data-emotion'); if (dataEmotionAttribute.indexOf(' ') === -1) { return; } document.head.appendChild(node); node.setAttribute('data-s', ''); }); } var stylisPlugins = options.stylisPlugins || defaultStylisPlugins; if (false) {} var inserted = {}; var container; var nodesToHydrate = []; { container = options.container || document.head; Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which // means that the style elements we're looking at are only Emotion 11 server-rendered style elements document.querySelectorAll("style[data-emotion^=\"" + key + " \"]"), function (node) { var attrib = node.getAttribute("data-emotion").split(' '); // $FlowFixMe for (var i = 1; i < attrib.length; i++) { inserted[attrib[i]] = true; } nodesToHydrate.push(node); }); } var _insert; var omnipresentPlugins = [compat, removeLabel]; if (false) {} { var currentSheet; var finalizingPlugins = [Serializer/* stringify */.P, false ? 0 : (0,Middleware/* rulesheet */.cD)(function (rule) { currentSheet.insert(rule); })]; var serializer = (0,Middleware/* middleware */.qR)(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins)); var stylis = function stylis(styles) { return (0,Serializer/* serialize */.q)((0,Parser/* compile */.MY)(styles), serializer); }; _insert = function insert(selector, serialized, sheet, shouldCache) { currentSheet = sheet; if (false) {} stylis(selector ? selector + "{" + serialized.styles + "}" : serialized.styles); if (shouldCache) { cache.inserted[serialized.name] = true; } }; } var cache = { key: key, sheet: new StyleSheet({ key: key, container: container, nonce: options.nonce, speedy: options.speedy, prepend: options.prepend, insertionPoint: options.insertionPoint }), nonce: options.nonce, inserted: inserted, registered: {}, insert: _insert }; cache.sheet.hydrate(nodesToHydrate); return cache; }; /***/ }), /***/ 7506: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ memoize) /* harmony export */ }); function memoize(fn) { var cache = Object.create(null); return function (arg) { if (cache[arg] === undefined) cache[arg] = fn(arg); return cache[arg]; }; } /***/ }), /***/ 2412: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ C: () => (/* binding */ CacheProvider), /* harmony export */ T: () => (/* binding */ ThemeContext), /* harmony export */ i: () => (/* binding */ isBrowser), /* harmony export */ w: () => (/* binding */ withEmotionCache) /* harmony export */ }); /* unused harmony exports E, _, a, b, c, h, u */ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948); /* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3347); /* harmony import */ var _emotion_serialize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7073); /* harmony import */ var _emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(122); var isBrowser = "object" !== 'undefined'; var hasOwnProperty = {}.hasOwnProperty; var EmotionCacheContext = /* #__PURE__ */react__WEBPACK_IMPORTED_MODULE_0__.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case // because this module is primarily intended for the browser and node // but it's also required in react native and similar environments sometimes // and we could have a special build just for that // but this is much easier and the native packages // might use a different theme context in the future anyway typeof HTMLElement !== 'undefined' ? /* #__PURE__ */(0,_emotion_cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)({ key: 'css' }) : null); if (false) {} var CacheProvider = EmotionCacheContext.Provider; var __unsafe_useEmotionCache = function useEmotionCache() { return useContext(EmotionCacheContext); }; var withEmotionCache = function withEmotionCache(func) { // $FlowFixMe return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function (props, ref) { // the cache will never be null in the browser var cache = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(EmotionCacheContext); return func(props, cache, ref); }); }; if (!isBrowser) { withEmotionCache = function withEmotionCache(func) { return function (props) { var cache = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(EmotionCacheContext); if (cache === null) { // yes, we're potentially creating this on every render // it doesn't actually matter though since it's only on the server // so there will only every be a single render // that could change in the future because of suspense and etc. but for now, // this works and i don't want to optimise for a future thing that we aren't sure about cache = (0,_emotion_cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)({ key: 'css' }); return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(EmotionCacheContext.Provider, { value: cache }, func(props, cache)); } else { return func(props, cache); } }; }; } var ThemeContext = /* #__PURE__ */react__WEBPACK_IMPORTED_MODULE_0__.createContext({}); if (false) {} var useTheme = function useTheme() { return React.useContext(ThemeContext); }; var getTheme = function getTheme(outerTheme, theme) { if (typeof theme === 'function') { var mergedTheme = theme(outerTheme); if (false) {} return mergedTheme; } if (false) {} return _extends({}, outerTheme, theme); }; var createCacheWithTheme = /* #__PURE__ */(/* unused pure expression or super */ null && (weakMemoize(function (outerTheme) { return weakMemoize(function (theme) { return getTheme(outerTheme, theme); }); }))); var ThemeProvider = function ThemeProvider(props) { var theme = React.useContext(ThemeContext); if (props.theme !== theme) { theme = createCacheWithTheme(theme)(props.theme); } return /*#__PURE__*/React.createElement(ThemeContext.Provider, { value: theme }, props.children); }; function withTheme(Component) { var componentName = Component.displayName || Component.name || 'Component'; var render = function render(props, ref) { var theme = React.useContext(ThemeContext); return /*#__PURE__*/React.createElement(Component, _extends({ theme: theme, ref: ref }, props)); }; // $FlowFixMe var WithTheme = /*#__PURE__*/React.forwardRef(render); WithTheme.displayName = "WithTheme(" + componentName + ")"; return hoistNonReactStatics(WithTheme, Component); } var getLastPart = function getLastPart(functionName) { // The match may be something like 'Object.createEmotionProps' or // 'Loader.prototype.render' var parts = functionName.split('.'); return parts[parts.length - 1]; }; var getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) { // V8 var match = /^\s+at\s+([A-Za-z0-9$.]+)\s/.exec(line); if (match) return getLastPart(match[1]); // Safari / Firefox match = /^([A-Za-z0-9$.]+)@/.exec(line); if (match) return getLastPart(match[1]); return undefined; }; var internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS // identifiers, thus we only need to replace what is a valid character for JS, // but not for CSS. var sanitizeIdentifier = function sanitizeIdentifier(identifier) { return identifier.replace(/\$/g, '-'); }; var getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) { if (!stackTrace) return undefined; var lines = stackTrace.split('\n'); for (var i = 0; i < lines.length; i++) { var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just "Error" if (!functionName) continue; // If we reach one of these, we have gone too far and should quit if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an // uppercase letter if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName); } return undefined; }; var typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__'; var labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__'; var createEmotionProps = function createEmotionProps(type, props) { if (false) {} var newProps = {}; for (var key in props) { if (hasOwnProperty.call(props, key)) { newProps[key] = props[key]; } } newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when // the label hasn't already been computed if (false) { var label; } return newProps; }; var Insertion = function Insertion(_ref) { var cache = _ref.cache, serialized = _ref.serialized, isStringTag = _ref.isStringTag; registerStyles(cache, serialized, isStringTag); useInsertionEffectAlwaysWithSyncFallback(function () { return insertStyles(cache, serialized, isStringTag); }); return null; }; var Emotion = /* #__PURE__ */(/* unused pure expression or super */ null && (withEmotionCache(function (props, cache, ref) { var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works // not passing the registered cache to serializeStyles because it would // make certain babel optimisations not possible if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) { cssProp = cache.registered[cssProp]; } var WrappedComponent = props[typePropName]; var registeredStyles = [cssProp]; var className = ''; if (typeof props.className === 'string') { className = getRegisteredStyles(cache.registered, registeredStyles, props.className); } else if (props.className != null) { className = props.className + " "; } var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext)); if (false) { var labelFromStack; } className += cache.key + "-" + serialized.name; var newProps = {}; for (var key in props) { if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && ( true || 0)) { newProps[key] = props[key]; } } newProps.ref = ref; newProps.className = className; return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, { cache: cache, serialized: serialized, isStringTag: typeof WrappedComponent === 'string' }), /*#__PURE__*/React.createElement(WrappedComponent, newProps)); }))); if (false) {} var Emotion$1 = (/* unused pure expression or super */ null && (Emotion)); /***/ }), /***/ 2150: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ F4: () => (/* binding */ keyframes), /* harmony export */ iv: () => (/* binding */ css), /* harmony export */ xB: () => (/* binding */ Global) /* harmony export */ }); /* unused harmony exports ClassNames, createElement, jsx */ /* harmony import */ var _emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2412); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948); /* harmony import */ var _emotion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1443); /* harmony import */ var _emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(122); /* harmony import */ var _emotion_serialize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7073); /* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3347); /* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9761); /* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_4__); var pkg = { name: "@emotion/react", version: "11.11.1", main: "dist/emotion-react.cjs.js", module: "dist/emotion-react.esm.js", browser: { "./dist/emotion-react.esm.js": "./dist/emotion-react.browser.esm.js" }, exports: { ".": { module: { worker: "./dist/emotion-react.worker.esm.js", browser: "./dist/emotion-react.browser.esm.js", "default": "./dist/emotion-react.esm.js" }, "import": "./dist/emotion-react.cjs.mjs", "default": "./dist/emotion-react.cjs.js" }, "./jsx-runtime": { module: { worker: "./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js", browser: "./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js", "default": "./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js" }, "import": "./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs", "default": "./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js" }, "./_isolated-hnrs": { module: { worker: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js", browser: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js", "default": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js" }, "import": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs", "default": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js" }, "./jsx-dev-runtime": { module: { worker: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js", browser: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js", "default": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js" }, "import": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs", "default": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js" }, "./package.json": "./package.json", "./types/css-prop": "./types/css-prop.d.ts", "./macro": { types: { "import": "./macro.d.mts", "default": "./macro.d.ts" }, "default": "./macro.js" } }, types: "types/index.d.ts", files: ["src", "dist", "jsx-runtime", "jsx-dev-runtime", "_isolated-hnrs", "types/*.d.ts", "macro.*"], sideEffects: false, author: "Emotion Contributors", license: "MIT", scripts: { "test:typescript": "dtslint types" }, dependencies: { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.11.0", "@emotion/cache": "^11.11.0", "@emotion/serialize": "^1.1.2", "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", "@emotion/utils": "^1.2.1", "@emotion/weak-memoize": "^0.3.1", "hoist-non-react-statics": "^3.3.1" }, peerDependencies: { react: ">=16.8.0" }, peerDependenciesMeta: { "@types/react": { optional: true } }, devDependencies: { "@definitelytyped/dtslint": "0.0.112", "@emotion/css": "11.11.0", "@emotion/css-prettifier": "1.1.3", "@emotion/server": "11.11.0", "@emotion/styled": "11.11.0", "html-tag-names": "^1.1.2", react: "16.14.0", "svg-tag-names": "^1.1.1", typescript: "^4.5.5" }, repository: "https://github.com/emotion-js/emotion/tree/main/packages/react", publishConfig: { access: "public" }, "umd:main": "dist/emotion-react.umd.min.js", preconstruct: { entrypoints: ["./index.js", "./jsx-runtime.js", "./jsx-dev-runtime.js", "./_isolated-hnrs.js"], umdName: "emotionReact", exports: { envConditions: ["browser", "worker"], extra: { "./types/css-prop": "./types/css-prop.d.ts", "./macro": { types: { "import": "./macro.d.mts", "default": "./macro.d.ts" }, "default": "./macro.js" } } } } }; var jsx = function jsx(type, props) { var args = arguments; if (props == null || !hasOwnProperty.call(props, 'css')) { // $FlowFixMe return React.createElement.apply(undefined, args); } var argsLength = args.length; var createElementArgArray = new Array(argsLength); createElementArgArray[0] = Emotion; createElementArgArray[1] = createEmotionProps(type, props); for (var i = 2; i < argsLength; i++) { createElementArgArray[i] = args[i]; } // $FlowFixMe return React.createElement.apply(null, createElementArgArray); }; var warnedAboutCssPropForGlobal = false; // maintain place over rerenders. // initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild // initial client-side render from SSR, use place of hydrating tag var Global = /* #__PURE__ */(0,_emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_5__.w)(function (props, cache) { if (false) {} var styles = props.styles; var serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_2__/* .serializeStyles */ .O)([styles], undefined, react__WEBPACK_IMPORTED_MODULE_0__.useContext(_emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_5__.T)); if (!_emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_5__.i) { var _ref; var serializedNames = serialized.name; var serializedStyles = serialized.styles; var next = serialized.next; while (next !== undefined) { serializedNames += ' ' + next.name; serializedStyles += next.styles; next = next.next; } var shouldCache = cache.compat === true; var rules = cache.insert("", { name: serializedNames, styles: serializedStyles }, cache.sheet, shouldCache); if (shouldCache) { return null; } return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("style", (_ref = {}, _ref["data-emotion"] = cache.key + "-global " + serializedNames, _ref.dangerouslySetInnerHTML = { __html: rules }, _ref.nonce = cache.sheet.nonce, _ref)); } // yes, i know these hooks are used conditionally // but it is based on a constant that will never change at runtime // it's effectively like having two implementations and switching them out // so it's not actually breaking anything var sheetRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(); (0,_emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_1__/* .useInsertionEffectWithLayoutFallback */ .j)(function () { var key = cache.key + "-global"; // use case of https://github.com/emotion-js/emotion/issues/2675 var sheet = new cache.sheet.constructor({ key: key, nonce: cache.sheet.nonce, container: cache.sheet.container, speedy: cache.sheet.isSpeedy }); var rehydrating = false; // $FlowFixMe var node = document.querySelector("style[data-emotion=\"" + key + " " + serialized.name + "\"]"); if (cache.sheet.tags.length) { sheet.before = cache.sheet.tags[0]; } if (node !== null) { rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s node.setAttribute('data-emotion', key); sheet.hydrate([node]); } sheetRef.current = [sheet, rehydrating]; return function () { sheet.flush(); }; }, [cache]); (0,_emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_1__/* .useInsertionEffectWithLayoutFallback */ .j)(function () { var sheetRefCurrent = sheetRef.current; var sheet = sheetRefCurrent[0], rehydrating = sheetRefCurrent[1]; if (rehydrating) { sheetRefCurrent[1] = false; return; } if (serialized.next !== undefined) { // insert keyframes (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_6__/* .insertStyles */ .My)(cache, serialized.next, true); } if (sheet.tags.length) { // if this doesn't exist then it will be null so the style element will be appended var element = sheet.tags[sheet.tags.length - 1].nextElementSibling; sheet.before = element; sheet.flush(); } cache.insert("", serialized, sheet, false); }, [cache, serialized.name]); return null; }); if (false) {} function css() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_2__/* .serializeStyles */ .O)(args); } var keyframes = function keyframes() { var insertable = css.apply(void 0, arguments); var name = "animation-" + insertable.name; // $FlowFixMe return { name: name, styles: "@keyframes " + name + "{" + insertable.styles + "}", anim: 1, toString: function toString() { return "_EMO_" + this.name + "_" + this.styles + "_EMO_"; } }; }; var classnames = function classnames(args) { var len = args.length; var i = 0; var cls = ''; for (; i < len; i++) { var arg = args[i]; if (arg == null) continue; var toAdd = void 0; switch (typeof arg) { case 'boolean': break; case 'object': { if (Array.isArray(arg)) { toAdd = classnames(arg); } else { if (false) {} toAdd = ''; for (var k in arg) { if (arg[k] && k) { toAdd && (toAdd += ' '); toAdd += k; } } } break; } default: { toAdd = arg; } } if (toAdd) { cls && (cls += ' '); cls += toAdd; } } return cls; }; function merge(registered, css, className) { var registeredStyles = []; var rawClassName = getRegisteredStyles(registered, registeredStyles, className); if (registeredStyles.length < 2) { return className; } return rawClassName + css(registeredStyles); } var Insertion = function Insertion(_ref) { var cache = _ref.cache, serializedArr = _ref.serializedArr; useInsertionEffectAlwaysWithSyncFallback(function () { for (var i = 0; i < serializedArr.length; i++) { insertStyles(cache, serializedArr[i], false); } }); return null; }; var ClassNames = /* #__PURE__ */(/* unused pure expression or super */ null && (withEmotionCache(function (props, cache) { var hasRendered = false; var serializedArr = []; var css = function css() { if (hasRendered && "production" !== 'production') {} for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var serialized = serializeStyles(args, cache.registered); serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx` registerStyles(cache, serialized, false); return cache.key + "-" + serialized.name; }; var cx = function cx() { if (hasRendered && "production" !== 'production') {} for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } return merge(cache.registered, css, classnames(args)); }; var content = { css: css, cx: cx, theme: React.useContext(ThemeContext) }; var ele = props.children(content); hasRendered = true; return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, { cache: cache, serializedArr: serializedArr }), ele); }))); if (false) {} if (false) { var globalKey, globalContext, isTestEnv, isBrowser; } /***/ }), /***/ 7073: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { O: () => (/* binding */ serializeStyles) }); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+hash@0.9.1/node_modules/@emotion/hash/dist/emotion-hash.esm.js /* eslint-disable */ // Inspired by https://github.com/garycourt/murmurhash-js // Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86 function murmur2(str) { // 'm' and 'r' are mixing constants generated offline. // They're not really 'magic', they just happen to work well. // const m = 0x5bd1e995; // const r = 24; // Initialize the hash var h = 0; // Mix 4 bytes at a time into the hash var k, i = 0, len = str.length; for (; len >= 4; ++i, len -= 4) { k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24; k = /* Math.imul(k, m): */ (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16); k ^= /* k >>> r: */ k >>> 24; h = /* Math.imul(k, m): */ (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^ /* Math.imul(h, m): */ (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16); } // Handle the last few bytes of the input array switch (len) { case 3: h ^= (str.charCodeAt(i + 2) & 0xff) << 16; case 2: h ^= (str.charCodeAt(i + 1) & 0xff) << 8; case 1: h ^= str.charCodeAt(i) & 0xff; h = /* Math.imul(h, m): */ (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16); } // Do a few final mixes of the hash to ensure the last few // bytes are well-incorporated. h ^= h >>> 13; h = /* Math.imul(h, m): */ (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16); return ((h ^ h >>> 15) >>> 0).toString(36); } ;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+unitless@0.8.1/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js var unitlessKeys = { animationIterationCount: 1, aspectRatio: 1, borderImageOutset: 1, borderImageSlice: 1, borderImageWidth: 1, boxFlex: 1, boxFlexGroup: 1, boxOrdinalGroup: 1, columnCount: 1, columns: 1, flex: 1, flexGrow: 1, flexPositive: 1, flexShrink: 1, flexNegative: 1, flexOrder: 1, gridRow: 1, gridRowEnd: 1, gridRowSpan: 1, gridRowStart: 1, gridColumn: 1, gridColumnEnd: 1, gridColumnSpan: 1, gridColumnStart: 1, msGridRow: 1, msGridRowSpan: 1, msGridColumn: 1, msGridColumnSpan: 1, fontWeight: 1, lineHeight: 1, opacity: 1, order: 1, orphans: 1, tabSize: 1, widows: 1, zIndex: 1, zoom: 1, WebkitLineClamp: 1, // SVG-related properties fillOpacity: 1, floodOpacity: 1, stopOpacity: 1, strokeDasharray: 1, strokeDashoffset: 1, strokeMiterlimit: 1, strokeOpacity: 1, strokeWidth: 1 }; // EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+memoize@0.8.1/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js var emotion_memoize_esm = __webpack_require__(7506); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+serialize@1.1.2/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js var ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences"; var UNDEFINED_AS_OBJECT_KEY_ERROR = "You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key)."; var hyphenateRegex = /[A-Z]|^ms/g; var animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g; var isCustomProperty = function isCustomProperty(property) { return property.charCodeAt(1) === 45; }; var isProcessableValue = function isProcessableValue(value) { return value != null && typeof value !== 'boolean'; }; var processStyleName = /* #__PURE__ */(0,emotion_memoize_esm/* default */.Z)(function (styleName) { return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase(); }); var processStyleValue = function processStyleValue(key, value) { switch (key) { case 'animation': case 'animationName': { if (typeof value === 'string') { return value.replace(animationRegex, function (match, p1, p2) { cursor = { name: p1, styles: p2, next: cursor }; return p1; }); } } } if (unitlessKeys[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) { return value + 'px'; } return value; }; if (false) { var hyphenatedCache, hyphenPattern, msPattern, oldProcessStyleValue, contentValues, contentValuePattern; } var noComponentSelectorMessage = (/* unused pure expression or super */ null && ('Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.')); function handleInterpolation(mergedProps, registered, interpolation) { if (interpolation == null) { return ''; } if (interpolation.__emotion_styles !== undefined) { if (false) {} return interpolation; } switch (typeof interpolation) { case 'boolean': { return ''; } case 'object': { if (interpolation.anim === 1) { cursor = { name: interpolation.name, styles: interpolation.styles, next: cursor }; return interpolation.name; } if (interpolation.styles !== undefined) { var next = interpolation.next; if (next !== undefined) { // not the most efficient thing ever but this is a pretty rare case // and there will be very few iterations of this generally while (next !== undefined) { cursor = { name: next.name, styles: next.styles, next: cursor }; next = next.next; } } var styles = interpolation.styles + ";"; if (false) {} return styles; } return createStringFromObject(mergedProps, registered, interpolation); } case 'function': { if (mergedProps !== undefined) { var previousCursor = cursor; var result = interpolation(mergedProps); cursor = previousCursor; return handleInterpolation(mergedProps, registered, result); } else if (false) {} break; } case 'string': if (false) { var replaced, matched; } break; } // finalize string values (regular strings and functions interpolated into css calls) if (registered == null) { return interpolation; } var cached = registered[interpolation]; return cached !== undefined ? cached : interpolation; } function createStringFromObject(mergedProps, registered, obj) { var string = ''; if (Array.isArray(obj)) { for (var i = 0; i < obj.length; i++) { string += handleInterpolation(mergedProps, registered, obj[i]) + ";"; } } else { for (var _key in obj) { var value = obj[_key]; if (typeof value !== 'object') { if (registered != null && registered[value] !== undefined) { string += _key + "{" + registered[value] + "}"; } else if (isProcessableValue(value)) { string += processStyleName(_key) + ":" + processStyleValue(_key, value) + ";"; } } else { if (_key === 'NO_COMPONENT_SELECTOR' && "production" !== 'production') {} if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) { for (var _i = 0; _i < value.length; _i++) { if (isProcessableValue(value[_i])) { string += processStyleName(_key) + ":" + processStyleValue(_key, value[_i]) + ";"; } } } else { var interpolated = handleInterpolation(mergedProps, registered, value); switch (_key) { case 'animation': case 'animationName': { string += processStyleName(_key) + ":" + interpolated + ";"; break; } default: { if (false) {} string += _key + "{" + interpolated + "}"; } } } } } } return string; } var labelPattern = /label:\s*([^\s;\n{]+)\s*(;|$)/g; var sourceMapPattern; if (false) {} // this is the cursor for keyframes // keyframes are stored on the SerializedStyles object as a linked list var cursor; var serializeStyles = function serializeStyles(args, registered, mergedProps) { if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) { return args[0]; } var stringMode = true; var styles = ''; cursor = undefined; var strings = args[0]; if (strings == null || strings.raw === undefined) { stringMode = false; styles += handleInterpolation(mergedProps, registered, strings); } else { if (false) {} styles += strings[0]; } // we start at 1 since we've already handled the first arg for (var i = 1; i < args.length; i++) { styles += handleInterpolation(mergedProps, registered, args[i]); if (stringMode) { if (false) {} styles += strings[i]; } } var sourceMap; if (false) {} // using a global regex with .exec is stateful so lastIndex has to be reset each time labelPattern.lastIndex = 0; var identifierName = ''; var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5 while ((match = labelPattern.exec(styles)) !== null) { identifierName += '-' + // $FlowFixMe we know it's not null match[1]; } var name = murmur2(styles) + identifierName; if (false) {} return { name: name, styles: styles, next: cursor }; }; /***/ }), /***/ 122: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; var react__WEBPACK_IMPORTED_MODULE_0___namespace_cache; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ L: () => (/* binding */ useInsertionEffectAlwaysWithSyncFallback), /* harmony export */ j: () => (/* binding */ useInsertionEffectWithLayoutFallback) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948); var syncFallback = function syncFallback(create) { return create(); }; var useInsertionEffect = /*#__PURE__*/ (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(react__WEBPACK_IMPORTED_MODULE_0__, 2)))['useInsertion' + 'Effect'] ? /*#__PURE__*/ (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(react__WEBPACK_IMPORTED_MODULE_0__, 2)))['useInsertion' + 'Effect'] : false; var useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback; var useInsertionEffectWithLayoutFallback = useInsertionEffect || react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect; /***/ }), /***/ 1443: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ My: () => (/* binding */ insertStyles), /* harmony export */ fp: () => (/* binding */ getRegisteredStyles), /* harmony export */ hC: () => (/* binding */ registerStyles) /* harmony export */ }); var isBrowser = "object" !== 'undefined'; function getRegisteredStyles(registered, registeredStyles, classNames) { var rawClassName = ''; classNames.split(' ').forEach(function (className) { if (registered[className] !== undefined) { registeredStyles.push(registered[className] + ";"); } else { rawClassName += className + " "; } }); return rawClassName; } var registerStyles = function registerStyles(cache, serialized, isStringTag) { var className = cache.key + "-" + serialized.name; if ( // we only need to add the styles to the registered cache if the // class name could be used further down // the tree but if it's a string tag, we know it won't // so we don't have to add it to registered cache. // this improves memory usage since we can avoid storing the whole style string (isStringTag === false || // we need to always store it if we're in compat mode and // in node since emotion-server relies on whether a style is in // the registered cache to know whether a style is global or not // also, note that this check will be dead code eliminated in the browser isBrowser === false) && cache.registered[className] === undefined) { cache.registered[className] = serialized.styles; } }; var insertStyles = function insertStyles(cache, serialized, isStringTag) { registerStyles(cache, serialized, isStringTag); var className = cache.key + "-" + serialized.name; if (cache.inserted[serialized.name] === undefined) { var current = serialized; do { cache.insert(serialized === current ? "." + className : '', current, cache.sheet, true); current = current.next; } while (current !== undefined); } }; /***/ }), /***/ 5538: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M10.85 12.65h2.3L12 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM14.3 16l-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9z" }), 'BrightnessAuto'); /***/ }), /***/ 8373: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }), 'Close'); /***/ }), /***/ 6409: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z" }), 'ContentCopy'); /***/ }), /***/ 7415: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9c0-.46-.04-.92-.1-1.36-.98 1.37-2.58 2.26-4.4 2.26-2.98 0-5.4-2.42-5.4-5.4 0-1.81.89-3.42 2.26-4.4-.44-.06-.9-.1-1.36-.1" }), 'DarkMode'); /***/ }), /***/ 5813: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z" }), 'Done'); /***/ }), /***/ 5908: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2m-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2" }), 'DragIndicator'); /***/ }), /***/ 6510: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "m12 21.35-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54z" }), 'Favorite'); /***/ }), /***/ 111: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3m-4.4 15.55-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05" }), 'FavoriteBorder'); /***/ }), /***/ 1088: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z" }), 'Home'); /***/ }), /***/ 1064: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-7.53 12L9 10.5l1.4-1.41 2.07 2.08L17.6 6 19 7.41zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4z" }), 'LibraryAddCheck'); /***/ }), /***/ 4766: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5M2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1m18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1M11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1m0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1M5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0z" }), 'LightMode'); /***/ }), /***/ 2227: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1z" }), 'Lock'); /***/ }), /***/ 2386: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m0 12H6V10h12z" }), 'LockOpen'); /***/ }), /***/ 2340: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { fillRule: "evenodd", d: "M16 9V4h1c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3" }), 'PushPin'); /***/ }), /***/ 1457: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M14 4v5c0 1.12.37 2.16 1 3H9c.65-.86 1-1.9 1-3V4zm3-2H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3V4h1c.55 0 1-.45 1-1s-.45-1-1-1" }), 'PushPinOutlined'); /***/ }), /***/ 2761: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "m12.87 15.07-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2zm-2.62 7 1.62-4.33L19.12 17z" }), 'Translate'); /***/ }), /***/ 3767: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M7.41 18.59 8.83 20 12 16.83 15.17 20l1.41-1.41L12 14zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10z" }), 'UnfoldLess'); /***/ }), /***/ 8470: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M12 5.83 15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15z" }), 'UnfoldMore'); /***/ }), /***/ 1777: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; "use client"; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Z = void 0; var _createSvgIcon = _interopRequireDefault(__webpack_require__(1954)); var _jsxRuntime = __webpack_require__(7394); var _default = exports.Z = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", { d: "M3 9v6h4l5 5V4L7 9zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02M14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77" }), 'VolumeUp'); /***/ }), /***/ 1954: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; 'use client'; Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "default", ({ enumerable: true, get: function () { return _utils.createSvgIcon; } })); var _utils = __webpack_require__(5101); /***/ }), /***/ 6582: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); const blue = { 50: '#e3f2fd', 100: '#bbdefb', 200: '#90caf9', 300: '#64b5f6', 400: '#42a5f5', 500: '#2196f3', 600: '#1e88e5', 700: '#1976d2', 800: '#1565c0', 900: '#0d47a1', A100: '#82b1ff', A200: '#448aff', A400: '#2979ff', A700: '#2962ff' }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (blue); /***/ }), /***/ 269: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); const common = { black: '#000', white: '#fff' }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (common); /***/ }), /***/ 8152: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); const green = { 50: '#e8f5e9', 100: '#c8e6c9', 200: '#a5d6a7', 300: '#81c784', 400: '#66bb6a', 500: '#4caf50', 600: '#43a047', 700: '#388e3c', 800: '#2e7d32', 900: '#1b5e20', A100: '#b9f6ca', A200: '#69f0ae', A400: '#00e676', A700: '#00c853' }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (green); /***/ }), /***/ 202: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); const grey = { 50: '#fafafa', 100: '#f5f5f5', 200: '#eeeeee', 300: '#e0e0e0', 400: '#bdbdbd', 500: '#9e9e9e', 600: '#757575', 700: '#616161', 800: '#424242', 900: '#212121', A100: '#f5f5f5', A200: '#eeeeee', A400: '#bdbdbd', A700: '#616161' }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (grey); /***/ }), /***/ 9239: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); const lightBlue = { 50: '#e1f5fe', 100: '#b3e5fc', 200: '#81d4fa', 300: '#4fc3f7', 400: '#29b6f6', 500: '#03a9f4', 600: '#039be5', 700: '#0288d1', 800: '#0277bd', 900: '#01579b', A100: '#80d8ff', A200: '#40c4ff', A400: '#00b0ff', A700: '#0091ea' }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (lightBlue); /***/ }), /***/ 4549: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); const orange = { 50: '#fff3e0', 100: '#ffe0b2', 200: '#ffcc80', 300: '#ffb74d', 400: '#ffa726', 500: '#ff9800', 600: '#fb8c00', 700: '#f57c00', 800: '#ef6c00', 900: '#e65100', A100: '#ffd180', A200: '#ffab40', A400: '#ff9100', A700: '#ff6d00' }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (orange); /***/ }), /***/ 761: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); const purple = { 50: '#f3e5f5', 100: '#e1bee7', 200: '#ce93d8', 300: '#ba68c8', 400: '#ab47bc', 500: '#9c27b0', 600: '#8e24aa', 700: '#7b1fa2', 800: '#6a1b9a', 900: '#4a148c', A100: '#ea80fc', A200: '#e040fb', A400: '#d500f9', A700: '#aa00ff' }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (purple); /***/ }), /***/ 6150: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); const red = { 50: '#ffebee', 100: '#ffcdd2', 200: '#ef9a9a', 300: '#e57373', 400: '#ef5350', 500: '#f44336', 600: '#e53935', 700: '#d32f2f', 800: '#c62828', 900: '#b71c1c', A100: '#ff8a80', A200: '#ff5252', A400: '#ff1744', A700: '#d50000' }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (red); /***/ }), /***/ 6288: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ createMixins) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1010); function createMixins(breakpoints, mixins) { return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({ toolbar: { minHeight: 56, [breakpoints.up('xs')]: { '@media (orientation: landscape)': { minHeight: 48 } }, [breakpoints.up('sm')]: { minHeight: 64 } } }, mixins); } /***/ }), /***/ 847: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ ZP: () => (/* binding */ createPalette) /* harmony export */ }); /* unused harmony exports light, dark */ /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1010); /* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(3031); /* harmony import */ var _mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(4451); /* harmony import */ var _mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(8836); /* harmony import */ var _mui_system_colorManipulator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2686); /* harmony import */ var _colors_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(269); /* harmony import */ var _colors_grey__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(202); /* harmony import */ var _colors_purple__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(761); /* harmony import */ var _colors_red__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6150); /* harmony import */ var _colors_orange__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(4549); /* harmony import */ var _colors_blue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6582); /* harmony import */ var _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9239); /* harmony import */ var _colors_green__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8152); const _excluded = ["mode", "contrastThreshold", "tonalOffset"]; const light = { // The colors used to style the text. text: { // The most important text. primary: 'rgba(0, 0, 0, 0.87)', // Secondary text. secondary: 'rgba(0, 0, 0, 0.6)', // Disabled text have even lower visual prominence. disabled: 'rgba(0, 0, 0, 0.38)' }, // The color used to divide different elements. divider: 'rgba(0, 0, 0, 0.12)', // The background colors used to style the surfaces. // Consistency between these values is important. background: { paper: _colors_common__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z.white, default: _colors_common__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z.white }, // The colors used to style the action elements. action: { // The color of an active action like an icon button. active: 'rgba(0, 0, 0, 0.54)', // The color of an hovered action. hover: 'rgba(0, 0, 0, 0.04)', hoverOpacity: 0.04, // The color of a selected action. selected: 'rgba(0, 0, 0, 0.08)', selectedOpacity: 0.08, // The color of a disabled action. disabled: 'rgba(0, 0, 0, 0.26)', // The background color of a disabled action. disabledBackground: 'rgba(0, 0, 0, 0.12)', disabledOpacity: 0.38, focus: 'rgba(0, 0, 0, 0.12)', focusOpacity: 0.12, activatedOpacity: 0.12 } }; const dark = { text: { primary: _colors_common__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z.white, secondary: 'rgba(255, 255, 255, 0.7)', disabled: 'rgba(255, 255, 255, 0.5)', icon: 'rgba(255, 255, 255, 0.5)' }, divider: 'rgba(255, 255, 255, 0.12)', background: { paper: '#121212', default: '#121212' }, action: { active: _colors_common__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z.white, hover: 'rgba(255, 255, 255, 0.08)', hoverOpacity: 0.08, selected: 'rgba(255, 255, 255, 0.16)', selectedOpacity: 0.16, disabled: 'rgba(255, 255, 255, 0.3)', disabledBackground: 'rgba(255, 255, 255, 0.12)', disabledOpacity: 0.38, focus: 'rgba(255, 255, 255, 0.12)', focusOpacity: 0.12, activatedOpacity: 0.24 } }; function addLightOrDark(intent, direction, shade, tonalOffset) { const tonalOffsetLight = tonalOffset.light || tonalOffset; const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5; if (!intent[direction]) { if (intent.hasOwnProperty(shade)) { intent[direction] = intent[shade]; } else if (direction === 'light') { intent.light = (0,_mui_system_colorManipulator__WEBPACK_IMPORTED_MODULE_1__/* .lighten */ .$n)(intent.main, tonalOffsetLight); } else if (direction === 'dark') { intent.dark = (0,_mui_system_colorManipulator__WEBPACK_IMPORTED_MODULE_1__/* .darken */ ._j)(intent.main, tonalOffsetDark); } } } function getDefaultPrimary() { let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light'; if (mode === 'dark') { return { main: _colors_blue__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z[200], light: _colors_blue__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z[50], dark: _colors_blue__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z[400] }; } return { main: _colors_blue__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z[700], light: _colors_blue__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z[400], dark: _colors_blue__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z[800] }; } function getDefaultSecondary() { let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light'; if (mode === 'dark') { return { main: _colors_purple__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z[200], light: _colors_purple__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z[50], dark: _colors_purple__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z[400] }; } return { main: _colors_purple__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z[500], light: _colors_purple__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z[300], dark: _colors_purple__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z[700] }; } function getDefaultError() { let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light'; if (mode === 'dark') { return { main: _colors_red__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z[500], light: _colors_red__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z[300], dark: _colors_red__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z[700] }; } return { main: _colors_red__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z[700], light: _colors_red__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z[400], dark: _colors_red__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z[800] }; } function getDefaultInfo() { let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light'; if (mode === 'dark') { return { main: _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z[400], light: _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z[300], dark: _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z[700] }; } return { main: _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z[700], light: _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z[500], dark: _colors_lightBlue__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z[900] }; } function getDefaultSuccess() { let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light'; if (mode === 'dark') { return { main: _colors_green__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z[400], light: _colors_green__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z[300], dark: _colors_green__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z[700] }; } return { main: _colors_green__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z[800], light: _colors_green__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z[500], dark: _colors_green__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z[900] }; } function getDefaultWarning() { let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light'; if (mode === 'dark') { return { main: _colors_orange__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z[400], light: _colors_orange__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z[300], dark: _colors_orange__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z[700] }; } return { main: '#ed6c02', // closest to orange[800] that pass 3:1. light: _colors_orange__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z[500], dark: _colors_orange__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z[900] }; } function createPalette(palette) { const { mode = 'light', contrastThreshold = 3, tonalOffset = 0.2 } = palette, other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(palette, _excluded); const primary = palette.primary || getDefaultPrimary(mode); const secondary = palette.secondary || getDefaultSecondary(mode); const error = palette.error || getDefaultError(mode); const info = palette.info || getDefaultInfo(mode); const success = palette.success || getDefaultSuccess(mode); const warning = palette.warning || getDefaultWarning(mode); // Use the same logic as // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59 // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54 function getContrastText(background) { const contrastText = (0,_mui_system_colorManipulator__WEBPACK_IMPORTED_MODULE_1__/* .getContrastRatio */ .mi)(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary; if (false) {} return contrastText; } const augmentColor = _ref => { let { color, name, mainShade = 500, lightShade = 300, darkShade = 700 } = _ref; color = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)({}, color); if (!color.main && color[mainShade]) { color.main = color[mainShade]; } if (!color.hasOwnProperty('main')) { throw new Error( false ? 0 : (0,_mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z)(11, name ? " (".concat(name, ")") : '', mainShade)); } if (typeof color.main !== 'string') { throw new Error( false ? 0 : (0,_mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z)(12, name ? " (".concat(name, ")") : '', JSON.stringify(color.main))); } addLightOrDark(color, 'light', lightShade, tonalOffset); addLightOrDark(color, 'dark', darkShade, tonalOffset); if (!color.contrastText) { color.contrastText = getContrastText(color.main); } return color; }; const modes = { dark, light }; if (false) {} const paletteOutput = (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z)((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)({ // A collection of common colors. common: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)({}, _colors_common__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z), // prevent mutable object. // The palette mode, can be light or dark. mode, // The colors used to represent primary interface elements for a user. primary: augmentColor({ color: primary, name: 'primary' }), // The colors used to represent secondary interface elements for a user. secondary: augmentColor({ color: secondary, name: 'secondary', mainShade: 'A400', lightShade: 'A200', darkShade: 'A700' }), // The colors used to represent interface elements that the user should be made aware of. error: augmentColor({ color: error, name: 'error' }), // The colors used to represent potentially dangerous actions or important messages. warning: augmentColor({ color: warning, name: 'warning' }), // The colors used to present information to the user that is neutral and not necessarily important. info: augmentColor({ color: info, name: 'info' }), // The colors used to indicate the successful completion of an action that user triggered. success: augmentColor({ color: success, name: 'success' }), // The grey colors. grey: _colors_grey__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, // Used by `getContrastText()` to maximize the contrast between // the background and the text. contrastThreshold, // Takes a background color and returns the text color that maximizes the contrast. getContrastText, // Generate a rich color object. augmentColor, // Used by the functions below to shift a color's luminance by approximately // two indexes within its tonal palette. // E.g., shift from Red 500 to Red 300 or Red 700. tonalOffset }, modes[mode]), other); return paletteOutput; } /***/ }), /***/ 4593: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* unused harmony export createMuiTheme */ /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1010); /* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3031); /* harmony import */ var _mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4451); /* harmony import */ var _mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8836); /* harmony import */ var _mui_system_styleFunctionSx__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(1524); /* harmony import */ var _mui_system_styleFunctionSx__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(1048); /* harmony import */ var _mui_system_createTheme__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3985); /* harmony import */ var _createMixins__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6288); /* harmony import */ var _createPalette__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(847); /* harmony import */ var _createTypography__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(2155); /* harmony import */ var _shadows__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5081); /* harmony import */ var _createTransitions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(3803); /* harmony import */ var _zIndex__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(430); const _excluded = ["breakpoints", "mixins", "spacing", "palette", "transitions", "typography", "shape"]; function createTheme() { let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; const { mixins: mixinsInput = {}, palette: paletteInput = {}, transitions: transitionsInput = {}, typography: typographyInput = {} } = options, other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(options, _excluded); if (options.vars) { throw new Error( false ? 0 : (0,_mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(18)); } const palette = (0,_createPalette__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP)(paletteInput); const systemTheme = (0,_mui_system_createTheme__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)(options); let muiTheme = (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(systemTheme, { mixins: (0,_createMixins__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)(systemTheme.breakpoints, mixinsInput), palette, // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol. shadows: _shadows__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z.slice(), typography: (0,_createTypography__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z)(palette, typographyInput), transitions: (0,_createTransitions__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .ZP)(transitionsInput), zIndex: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)({}, _zIndex__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z) }); muiTheme = (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(muiTheme, other); for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } muiTheme = args.reduce((acc, argument) => (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(acc, argument), muiTheme); if (false) {} muiTheme.unstable_sxConfig = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)({}, _mui_system_styleFunctionSx__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, other == null ? void 0 : other.unstable_sxConfig); muiTheme.unstable_sx = function sx(props) { return (0,_mui_system_styleFunctionSx__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z)({ sx: props, theme: this }); }; return muiTheme; } let warnedOnce = false; function createMuiTheme() { if (false) {} return createTheme(...arguments); } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createTheme); /***/ }), /***/ 3803: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ ZP: () => (/* binding */ createTransitions) /* harmony export */ }); /* unused harmony exports easing, duration */ /* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3031); /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1010); const _excluded = ["duration", "easing", "delay"]; // Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves // to learn the context in which each easing should be used. const easing = { // This is the most common easing curve. easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)', // Objects enter the screen at full velocity from off-screen and // slowly decelerate to a resting point. easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)', // Objects leave the screen at full velocity. They do not decelerate when off-screen. easeIn: 'cubic-bezier(0.4, 0, 1, 1)', // The sharp curve is used by objects that may return to the screen at any time. sharp: 'cubic-bezier(0.4, 0, 0.6, 1)' }; // Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations // to learn when use what timing const duration = { shortest: 150, shorter: 200, short: 250, // most basic recommended timing standard: 300, // this is to be used in complex animations complex: 375, // recommended when something is entering screen enteringScreen: 225, // recommended when something is leaving screen leavingScreen: 195 }; function formatMs(milliseconds) { return "".concat(Math.round(milliseconds), "ms"); } function getAutoHeightDuration(height) { if (!height) { return 0; } const constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10 return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10); } function createTransitions(inputTransitions) { const mergedEasing = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, easing, inputTransitions.easing); const mergedDuration = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, duration, inputTransitions.duration); const create = function () { let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all']; let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; const { duration: durationOption = mergedDuration.standard, easing: easingOption = mergedEasing.easeInOut, delay = 0 } = options, other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(options, _excluded); if (false) {} return (Array.isArray(props) ? props : [props]).map(animatedProp => "".concat(animatedProp, " ").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), " ").concat(easingOption, " ").concat(typeof delay === 'string' ? delay : formatMs(delay))).join(','); }; return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({ getAutoHeightDuration, create }, inputTransitions, { easing: mergedEasing, duration: mergedDuration }); } /***/ }), /***/ 2155: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ createTypography) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1010); /* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3031); /* harmony import */ var _mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8836); const _excluded = ["fontFamily", "fontSize", "fontWeightLight", "fontWeightRegular", "fontWeightMedium", "fontWeightBold", "htmlFontSize", "allVariants", "pxToRem"]; function round(value) { return Math.round(value * 1e5) / 1e5; } const caseAllCaps = { textTransform: 'uppercase' }; const defaultFontFamily = '"Roboto", "Helvetica", "Arial", sans-serif'; /** * @see @link{https://m2.material.io/design/typography/the-type-system.html} * @see @link{https://m2.material.io/design/typography/understanding-typography.html} */ function createTypography(palette, typography) { const _ref = typeof typography === 'function' ? typography(palette) : typography, { fontFamily = defaultFontFamily, // The default font size of the Material Specification. fontSize = 14, // px fontWeightLight = 300, fontWeightRegular = 400, fontWeightMedium = 500, fontWeightBold = 700, // Tell MUI what's the font-size on the html element. // 16px is the default font-size used by browsers. htmlFontSize = 16, // Apply the CSS properties to all the variants. allVariants, pxToRem: pxToRem2 } = _ref, other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(_ref, _excluded); if (false) {} const coef = fontSize / 14; const pxToRem = pxToRem2 || (size => "".concat(size / htmlFontSize * coef, "rem")); const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)({ fontFamily, fontWeight, fontSize: pxToRem(size), // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/ lineHeight }, fontFamily === defaultFontFamily ? { letterSpacing: "".concat(round(letterSpacing / size), "em") } : {}, casing, allVariants); const variants = { h1: buildVariant(fontWeightLight, 96, 1.167, -1.5), h2: buildVariant(fontWeightLight, 60, 1.2, -0.5), h3: buildVariant(fontWeightRegular, 48, 1.167, 0), h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25), h5: buildVariant(fontWeightRegular, 24, 1.334, 0), h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15), subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15), subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1), body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15), body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15), button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps), caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4), overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps), // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types. inherit: { fontFamily: 'inherit', fontWeight: 'inherit', fontSize: 'inherit', lineHeight: 'inherit', letterSpacing: 'inherit' } }; return (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)({ htmlFontSize, pxToRem, fontFamily, fontSize, fontWeightLight, fontWeightRegular, fontWeightMedium, fontWeightBold }, variants), other, { clone: false // No need to clone deep }); } /***/ }), /***/ 559: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _createTheme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4593); 'use client'; const defaultTheme = (0,_createTheme__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (defaultTheme); /***/ }), /***/ 6617: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ('$$material'); /***/ }), /***/ 512: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _slotShouldForwardProp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2378); const rootShouldForwardProp = prop => (0,_slotShouldForwardProp__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(prop) && prop !== 'classes'; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rootShouldForwardProp); /***/ }), /***/ 5081: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); const shadowKeyUmbraOpacity = 0.2; const shadowKeyPenumbraOpacity = 0.14; const shadowAmbientShadowOpacity = 0.12; function createShadow() { return ["".concat(arguments.length <= 0 ? undefined : arguments[0], "px ").concat(arguments.length <= 1 ? undefined : arguments[1], "px ").concat(arguments.length <= 2 ? undefined : arguments[2], "px ").concat(arguments.length <= 3 ? undefined : arguments[3], "px rgba(0,0,0,").concat(shadowKeyUmbraOpacity, ")"), "".concat(arguments.length <= 4 ? undefined : arguments[4], "px ").concat(arguments.length <= 5 ? undefined : arguments[5], "px ").concat(arguments.length <= 6 ? undefined : arguments[6], "px ").concat(arguments.length <= 7 ? undefined : arguments[7], "px rgba(0,0,0,").concat(shadowKeyPenumbraOpacity, ")"), "".concat(arguments.length <= 8 ? undefined : arguments[8], "px ").concat(arguments.length <= 9 ? undefined : arguments[9], "px ").concat(arguments.length <= 10 ? undefined : arguments[10], "px ").concat(arguments.length <= 11 ? undefined : arguments[11], "px rgba(0,0,0,").concat(shadowAmbientShadowOpacity, ")")].join(','); } // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss const shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)]; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (shadows); /***/ }), /***/ 2378: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); // copied from @mui/system/createStyled function slotShouldForwardProp(prop) { return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as'; } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (slotShouldForwardProp); /***/ }), /***/ 5807: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ ZP: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_system_createStyled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3952); /* harmony import */ var _defaultTheme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(559); /* harmony import */ var _identifier__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6617); /* harmony import */ var _rootShouldForwardProp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(512); 'use client'; const styled = (0,_mui_system_createStyled__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .ZP)({ themeId: _identifier__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, defaultTheme: _defaultTheme__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, rootShouldForwardProp: _rootShouldForwardProp__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z }); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (styled); /***/ }), /***/ 3954: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ useThemeProps) /* harmony export */ }); /* harmony import */ var _mui_system_useThemeProps__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8251); /* harmony import */ var _defaultTheme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(559); /* harmony import */ var _identifier__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6617); 'use client'; function useThemeProps(_ref) { let { props, name } = _ref; return (0,_mui_system_useThemeProps__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({ props, name, defaultTheme: _defaultTheme__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, themeId: _identifier__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z }); } /***/ }), /***/ 430: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); // We need to centralize the zIndex definitions as they work // like global values in the browser. const zIndex = { mobileStepper: 1000, fab: 1050, speedDial: 1050, appBar: 1100, drawer: 1200, modal: 1300, snackbar: 1400, tooltip: 1500 }; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (zIndex); /***/ }), /***/ 5652: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_utils_capitalize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4656); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_capitalize__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z); /***/ }), /***/ 9415: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3444); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_createChainedFunction__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z); /***/ }), /***/ 174: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: () => (/* binding */ createSvgIcon) }); // EXTERNAL MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/extends.js var esm_extends = __webpack_require__(1010); // EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/index.js var react = __webpack_require__(7948); // EXTERNAL MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js var objectWithoutPropertiesLoose = __webpack_require__(3031); // EXTERNAL MODULE: ./node_modules/.pnpm/clsx@2.1.0/node_modules/clsx/dist/clsx.mjs var clsx = __webpack_require__(7919); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/composeClasses/composeClasses.js var composeClasses = __webpack_require__(5923); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/capitalize.js var capitalize = __webpack_require__(5652); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/styles/useThemeProps.js var useThemeProps = __webpack_require__(3954); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/styles/styled.js var styled = __webpack_require__(5807); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/generateUtilityClasses/generateUtilityClasses.js var generateUtilityClasses = __webpack_require__(3453); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/generateUtilityClass/generateUtilityClass.js var generateUtilityClass = __webpack_require__(8092); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/SvgIcon/svgIconClasses.js function getSvgIconUtilityClass(slot) { return (0,generateUtilityClass/* default */.ZP)('MuiSvgIcon', slot); } const svgIconClasses = (0,generateUtilityClasses/* default */.Z)('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']); /* harmony default export */ const SvgIcon_svgIconClasses = ((/* unused pure expression or super */ null && (svgIconClasses))); // EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js var jsx_runtime = __webpack_require__(7394); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/SvgIcon/SvgIcon.js 'use client'; const _excluded = ["children", "className", "color", "component", "fontSize", "htmlColor", "inheritViewBox", "titleAccess", "viewBox"]; const useUtilityClasses = ownerState => { const { color, fontSize, classes } = ownerState; const slots = { root: ['root', color !== 'inherit' && "color".concat((0,capitalize/* default */.Z)(color)), "fontSize".concat((0,capitalize/* default */.Z)(fontSize))] }; return (0,composeClasses/* default */.Z)(slots, getSvgIconUtilityClass, classes); }; const SvgIconRoot = (0,styled/* default */.ZP)('svg', { name: 'MuiSvgIcon', slot: 'Root', overridesResolver: (props, styles) => { const { ownerState } = props; return [styles.root, ownerState.color !== 'inherit' && styles["color".concat((0,capitalize/* default */.Z)(ownerState.color))], styles["fontSize".concat((0,capitalize/* default */.Z)(ownerState.fontSize))]]; } })(_ref => { let { theme, ownerState } = _ref; var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette2, _palette3; return { userSelect: 'none', width: '1em', height: '1em', display: 'inline-block', // the will define the property that has `currentColor` // for example heroicons uses fill="none" and stroke="currentColor" fill: ownerState.hasSvgAsChild ? undefined : 'currentColor', flexShrink: 0, transition: (_theme$transitions = theme.transitions) == null || (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', { duration: (_theme$transitions2 = theme.transitions) == null || (_theme$transitions2 = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2.shorter }), fontSize: { inherit: 'inherit', small: ((_theme$typography = theme.typography) == null || (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || '1.25rem', medium: ((_theme$typography2 = theme.typography) == null || (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || '1.5rem', large: ((_theme$typography3 = theme.typography) == null || (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || '2.1875rem' }[ownerState.fontSize], // TODO v5 deprecate, v6 remove for sx color: (_palette$ownerState$c = (_palette = (theme.vars || theme).palette) == null || (_palette = _palette[ownerState.color]) == null ? void 0 : _palette.main) != null ? _palette$ownerState$c : { action: (_palette2 = (theme.vars || theme).palette) == null || (_palette2 = _palette2.action) == null ? void 0 : _palette2.active, disabled: (_palette3 = (theme.vars || theme).palette) == null || (_palette3 = _palette3.action) == null ? void 0 : _palette3.disabled, inherit: undefined }[ownerState.color] }; }); const SvgIcon = /*#__PURE__*/react.forwardRef(function SvgIcon(inProps, ref) { const props = (0,useThemeProps/* default */.Z)({ props: inProps, name: 'MuiSvgIcon' }); const { children, className, color = 'inherit', component = 'svg', fontSize = 'medium', htmlColor, inheritViewBox = false, titleAccess, viewBox = '0 0 24 24' } = props, other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, _excluded); const hasSvgAsChild = /*#__PURE__*/react.isValidElement(children) && children.type === 'svg'; const ownerState = (0,esm_extends/* default */.Z)({}, props, { color, component, fontSize, instanceFontSize: inProps.fontSize, inheritViewBox, viewBox, hasSvgAsChild }); const more = {}; if (!inheritViewBox) { more.viewBox = viewBox; } const classes = useUtilityClasses(ownerState); return /*#__PURE__*/(0,jsx_runtime.jsxs)(SvgIconRoot, (0,esm_extends/* default */.Z)({ as: component, className: (0,clsx/* default */.Z)(classes.root, className), focusable: "false", color: htmlColor, "aria-hidden": titleAccess ? undefined : true, role: titleAccess ? 'img' : undefined, ref: ref }, more, other, hasSvgAsChild && children.props, { ownerState: ownerState, children: [hasSvgAsChild ? children.props.children : children, titleAccess ? /*#__PURE__*/(0,jsx_runtime.jsx)("title", { children: titleAccess }) : null] })); }); false ? 0 : void 0; SvgIcon.muiName = 'SvgIcon'; /* harmony default export */ const SvgIcon_SvgIcon = (SvgIcon); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/createSvgIcon.js 'use client'; /** * Private module reserved for @mui packages. */ function createSvgIcon(path, displayName) { function Component(props, ref) { return /*#__PURE__*/(0,jsx_runtime.jsx)(SvgIcon_SvgIcon, (0,esm_extends/* default */.Z)({ "data-testid": "".concat(displayName, "Icon"), ref: ref }, props, { children: path })); } if (false) {} Component.muiName = SvgIcon_SvgIcon.muiName; return /*#__PURE__*/react.memo( /*#__PURE__*/react.forwardRef(Component)); } /***/ }), /***/ 5692: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_utils_debounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9082); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_debounce__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z); /***/ }), /***/ 5101: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { capitalize: () => (/* reexport */ capitalize/* default */.Z), createChainedFunction: () => (/* reexport */ createChainedFunction/* default */.Z), createSvgIcon: () => (/* reexport */ createSvgIcon/* default */.Z), debounce: () => (/* reexport */ debounce/* default */.Z), deprecatedPropType: () => (/* reexport */ utils_deprecatedPropType), isMuiElement: () => (/* reexport */ isMuiElement/* default */.Z), ownerDocument: () => (/* reexport */ ownerDocument/* default */.Z), ownerWindow: () => (/* reexport */ ownerWindow/* default */.Z), requirePropFactory: () => (/* reexport */ utils_requirePropFactory), setRef: () => (/* reexport */ utils_setRef), unstable_ClassNameGenerator: () => (/* binding */ unstable_ClassNameGenerator), unstable_useEnhancedEffect: () => (/* reexport */ useEnhancedEffect/* default */.Z), unstable_useId: () => (/* reexport */ useId/* default */.Z), unsupportedProp: () => (/* reexport */ utils_unsupportedProp), useControlled: () => (/* reexport */ useControlled/* default */.Z), useEventCallback: () => (/* reexport */ useEventCallback/* default */.Z), useForkRef: () => (/* reexport */ useForkRef/* default */.Z), useIsFocusVisible: () => (/* reexport */ useIsFocusVisible/* default */.Z) }); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/ClassNameGenerator/ClassNameGenerator.js var ClassNameGenerator = __webpack_require__(3705); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/capitalize.js var capitalize = __webpack_require__(5652); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/createChainedFunction.js var createChainedFunction = __webpack_require__(9415); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/createSvgIcon.js + 2 modules var createSvgIcon = __webpack_require__(174); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/debounce.js var debounce = __webpack_require__(5692); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/deprecatedPropType/deprecatedPropType.js function deprecatedPropType(validator, reason) { if (true) { return () => null; } return (props, propName, componentName, location, propFullName) => { const componentNameSafe = componentName || '<>'; const propFullNameSafe = propFullName || propName; if (typeof props[propName] !== 'undefined') { return new Error("The ".concat(location, " `").concat(propFullNameSafe, "` of ") + "`".concat(componentNameSafe, "` is deprecated. ").concat(reason)); } return null; }; } ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/deprecatedPropType.js /* harmony default export */ const utils_deprecatedPropType = (deprecatedPropType); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/isMuiElement.js + 1 modules var isMuiElement = __webpack_require__(2829); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/ownerDocument.js var ownerDocument = __webpack_require__(9259); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/ownerWindow.js var ownerWindow = __webpack_require__(6879); // EXTERNAL MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/extends.js var esm_extends = __webpack_require__(1010); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/requirePropFactory/requirePropFactory.js function requirePropFactory(componentNameInError, Component) { if (true) { return () => null; } // eslint-disable-next-line react/forbid-foreign-prop-types const prevPropTypes = Component ? (0,esm_extends/* default */.Z)({}, Component.propTypes) : null; const requireProp = requiredProp => function (props, propName, componentName, location, propFullName) { const propFullNameSafe = propFullName || propName; const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe]; if (defaultTypeChecker) { for (var _len = arguments.length, args = new Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) { args[_key - 5] = arguments[_key]; } const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args); if (typeCheckerResult) { return typeCheckerResult; } } if (typeof props[propName] !== 'undefined' && !props[requiredProp]) { return new Error("The prop `".concat(propFullNameSafe, "` of ") + "`".concat(componentNameInError, "` can only be used together with the `").concat(requiredProp, "` prop.")); } return null; }; return requireProp; } ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/requirePropFactory.js /* harmony default export */ const utils_requirePropFactory = (requirePropFactory); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/setRef/setRef.js var setRef = __webpack_require__(9109); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/setRef.js /* harmony default export */ const utils_setRef = (setRef/* default */.Z); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/useEnhancedEffect.js var useEnhancedEffect = __webpack_require__(2754); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/useId.js var useId = __webpack_require__(4204); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/unsupportedProp/unsupportedProp.js function unsupportedProp(props, propName, componentName, location, propFullName) { if (true) { return null; } const propFullNameSafe = propFullName || propName; if (typeof props[propName] !== 'undefined') { return new Error("The prop `".concat(propFullNameSafe, "` is not supported. Please remove it.")); } return null; } ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/unsupportedProp.js /* harmony default export */ const utils_unsupportedProp = (unsupportedProp); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/useControlled.js var useControlled = __webpack_require__(6258); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/useEventCallback.js var useEventCallback = __webpack_require__(1469); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/useForkRef.js var useForkRef = __webpack_require__(8689); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/useIsFocusVisible.js var useIsFocusVisible = __webpack_require__(7541); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/index.js 'use client'; // TODO: remove this export once ClassNameGenerator is stable // eslint-disable-next-line @typescript-eslint/naming-convention const unstable_ClassNameGenerator = { configure: generator => { if (false) {} ClassNameGenerator/* default */.Z.configure(generator); } }; /***/ }), /***/ 2829: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: () => (/* binding */ utils_isMuiElement) }); // EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/index.js var react = __webpack_require__(7948); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/isMuiElement/isMuiElement.js function isMuiElement(element, muiNames) { var _muiName, _element$type; return /*#__PURE__*/react.isValidElement(element) && muiNames.indexOf( // For server components `muiName` is avaialble in element.type._payload.value.muiName // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45 // eslint-disable-next-line no-underscore-dangle (_muiName = element.type.muiName) != null ? _muiName : (_element$type = element.type) == null || (_element$type = _element$type._payload) == null || (_element$type = _element$type.value) == null ? void 0 : _element$type.muiName) !== -1; } ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/utils/isMuiElement.js /* harmony default export */ const utils_isMuiElement = (isMuiElement); /***/ }), /***/ 9259: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1563); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_ownerDocument__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z); /***/ }), /***/ 6879: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_utils_ownerWindow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6029); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_ownerWindow__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z); /***/ }), /***/ 6258: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_utils_useControlled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5143); 'use client'; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_useControlled__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z); /***/ }), /***/ 2754: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_utils_useEnhancedEffect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4536); 'use client'; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_useEnhancedEffect__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z); /***/ }), /***/ 1469: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9210); 'use client'; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_useEventCallback__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z); /***/ }), /***/ 8689: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_utils_useForkRef__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4114); 'use client'; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_useForkRef__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z); /***/ }), /***/ 4204: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_utils_useId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2179); 'use client'; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_useId__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z); /***/ }), /***/ 7541: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_utils_useIsFocusVisible__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3185); 'use client'; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_mui_utils_useIsFocusVisible__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z); /***/ }), /***/ 9450: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ GlobalStyles) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948); /* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2150); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7394); 'use client'; function isEmpty(obj) { return obj === undefined || obj === null || Object.keys(obj).length === 0; } function GlobalStyles(props) { const { styles, defaultTheme = {} } = props; const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles; return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_emotion_react__WEBPACK_IMPORTED_MODULE_2__/* .Global */ .xB, { styles: globalStyles }); } false ? 0 : void 0; /***/ }), /***/ 5190: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { GlobalStyles: () => (/* reexport */ GlobalStyles/* default */.Z), StyledEngineProvider: () => (/* reexport */ StyledEngineProvider), ThemeContext: () => (/* reexport */ emotion_element_c39617d8_browser_esm.T), css: () => (/* reexport */ emotion_react_browser_esm/* css */.iv), "default": () => (/* binding */ styled), internal_processStyles: () => (/* binding */ internal_processStyles), keyframes: () => (/* reexport */ emotion_react_browser_esm/* keyframes */.F4) }); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/extends.js function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } // EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/index.js var react = __webpack_require__(7948); // EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+memoize@0.8.1/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js var emotion_memoize_esm = __webpack_require__(7506); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+is-prop-valid@1.2.1/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23 var isPropValid = /* #__PURE__ */(0,emotion_memoize_esm/* default */.Z)(function (prop) { return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111 /* o */ && prop.charCodeAt(1) === 110 /* n */ && prop.charCodeAt(2) < 91; } /* Z+1 */); // EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0/node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js var emotion_element_c39617d8_browser_esm = __webpack_require__(2412); // EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+utils@1.2.1/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js var emotion_utils_browser_esm = __webpack_require__(1443); // EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+serialize@1.1.2/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js + 2 modules var emotion_serialize_browser_esm = __webpack_require__(7073); // EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+use-insertion-effect-with-fallbacks@1.0.1_react@18.2.0/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js var emotion_use_insertion_effect_with_fallbacks_browser_esm = __webpack_require__(122); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+styled@11.11.0_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@types+react@18.2.79_react@18.2.0/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js var testOmitPropsOnStringTag = isPropValid; var testOmitPropsOnComponent = function testOmitPropsOnComponent(key) { return key !== 'theme'; }; var getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) { return typeof tag === 'string' && // 96 is one less than the char code // for "a" so this is checking that // it's a lowercase character tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent; }; var composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) { var shouldForwardProp; if (options) { var optionsShouldForwardProp = options.shouldForwardProp; shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) { return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName); } : optionsShouldForwardProp; } if (typeof shouldForwardProp !== 'function' && isReal) { shouldForwardProp = tag.__emotion_forwardProp; } return shouldForwardProp; }; var ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences"; var Insertion = function Insertion(_ref) { var cache = _ref.cache, serialized = _ref.serialized, isStringTag = _ref.isStringTag; (0,emotion_utils_browser_esm/* registerStyles */.hC)(cache, serialized, isStringTag); (0,emotion_use_insertion_effect_with_fallbacks_browser_esm/* useInsertionEffectAlwaysWithSyncFallback */.L)(function () { return (0,emotion_utils_browser_esm/* insertStyles */.My)(cache, serialized, isStringTag); }); return null; }; var createStyled = function createStyled(tag, options) { if (false) {} var isReal = tag.__emotion_real === tag; var baseTag = isReal && tag.__emotion_base || tag; var identifierName; var targetClassName; if (options !== undefined) { identifierName = options.label; targetClassName = options.target; } var shouldForwardProp = composeShouldForwardProps(tag, options, isReal); var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag); var shouldUseAs = !defaultShouldForwardProp('as'); return function () { var args = arguments; var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : []; if (identifierName !== undefined) { styles.push("label:" + identifierName + ";"); } if (args[0] == null || args[0].raw === undefined) { styles.push.apply(styles, args); } else { if (false) {} styles.push(args[0][0]); var len = args.length; var i = 1; for (; i < len; i++) { if (false) {} styles.push(args[i], args[0][i]); } } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class var Styled = (0,emotion_element_c39617d8_browser_esm.w)(function (props, cache, ref) { var FinalTag = shouldUseAs && props.as || baseTag; var className = ''; var classInterpolations = []; var mergedProps = props; if (props.theme == null) { mergedProps = {}; for (var key in props) { mergedProps[key] = props[key]; } mergedProps.theme = react.useContext(emotion_element_c39617d8_browser_esm.T); } if (typeof props.className === 'string') { className = (0,emotion_utils_browser_esm/* getRegisteredStyles */.fp)(cache.registered, classInterpolations, props.className); } else if (props.className != null) { className = props.className + " "; } var serialized = (0,emotion_serialize_browser_esm/* serializeStyles */.O)(styles.concat(classInterpolations), cache.registered, mergedProps); className += cache.key + "-" + serialized.name; if (targetClassName !== undefined) { className += " " + targetClassName; } var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp; var newProps = {}; for (var _key in props) { if (shouldUseAs && _key === 'as') continue; if ( // $FlowFixMe finalShouldForwardProp(_key)) { newProps[_key] = props[_key]; } } newProps.className = className; newProps.ref = ref; return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(Insertion, { cache: cache, serialized: serialized, isStringTag: typeof FinalTag === 'string' }), /*#__PURE__*/react.createElement(FinalTag, newProps)); }); Styled.displayName = identifierName !== undefined ? identifierName : "Styled(" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + ")"; Styled.defaultProps = tag.defaultProps; Styled.__emotion_real = Styled; Styled.__emotion_base = baseTag; Styled.__emotion_styles = styles; Styled.__emotion_forwardProp = shouldForwardProp; Object.defineProperty(Styled, 'toString', { value: function value() { if (targetClassName === undefined && "production" !== 'production') {} // $FlowFixMe: coerce undefined to string return "." + targetClassName; } }); Styled.withComponent = function (nextTag, nextOptions) { return createStyled(nextTag, _extends({}, options, nextOptions, { shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true) })).apply(void 0, styles); }; return Styled; }; }; ;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+styled@11.11.0_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@types+react@18.2.79_react@18.2.0/node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js var tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG 'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan']; var newStyled = createStyled.bind(); tags.forEach(function (tagName) { // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type newStyled[tagName] = newStyled(tagName); }); // EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0/node_modules/@emotion/react/dist/emotion-react.browser.esm.js var emotion_react_browser_esm = __webpack_require__(2150); // EXTERNAL MODULE: ./node_modules/.pnpm/@emotion+cache@11.11.0/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js + 1 modules var emotion_cache_browser_esm = __webpack_require__(3347); // EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js var jsx_runtime = __webpack_require__(7394); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+styled-engine@5.15.14_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@e_38b353972d011fd8524090cbc8c519bf/node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js 'use client'; // prepend: true moves MUI styles to the top of the so they're loaded first. // It allows developers to easily override MUI styles with other styling solutions, like CSS modules. let cache; if (typeof document === 'object') { cache = (0,emotion_cache_browser_esm/* default */.Z)({ key: 'css', prepend: true }); } function StyledEngineProvider(props) { const { injectFirst, children } = props; return injectFirst && cache ? /*#__PURE__*/(0,jsx_runtime.jsx)(emotion_element_c39617d8_browser_esm.C, { value: cache, children: children }) : children; } false ? 0 : void 0; // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+styled-engine@5.15.14_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@e_38b353972d011fd8524090cbc8c519bf/node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js var GlobalStyles = __webpack_require__(9450); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+styled-engine@5.15.14_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@e_38b353972d011fd8524090cbc8c519bf/node_modules/@mui/styled-engine/index.js /** * @mui/styled-engine v5.15.14 * * @license MIT * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ 'use client'; /* eslint-disable no-underscore-dangle */ function styled(tag, options) { const stylesFactory = newStyled(tag, options); if (false) {} return stylesFactory; } // eslint-disable-next-line @typescript-eslint/naming-convention const internal_processStyles = (tag, processor) => { // Emotion attaches all the styles as `__emotion_styles`. // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186 if (Array.isArray(tag.__emotion_styles)) { tag.__emotion_styles = processor(tag.__emotion_styles); } }; /***/ }), /***/ 2686: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.Fq = alpha; __webpack_unused_export__ = blend; __webpack_unused_export__ = void 0; exports._j = darken; __webpack_unused_export__ = decomposeColor; __webpack_unused_export__ = emphasize; exports.mi = getContrastRatio; __webpack_unused_export__ = getLuminance; __webpack_unused_export__ = hexToRgb; __webpack_unused_export__ = hslToRgb; exports.$n = lighten; __webpack_unused_export__ = private_safeAlpha; __webpack_unused_export__ = void 0; __webpack_unused_export__ = private_safeDarken; __webpack_unused_export__ = private_safeEmphasize; __webpack_unused_export__ = private_safeLighten; __webpack_unused_export__ = recomposeColor; __webpack_unused_export__ = rgbToHex; var _formatMuiErrorMessage2 = _interopRequireDefault(__webpack_require__(3001)); var _clamp = _interopRequireDefault(__webpack_require__(5288)); /* eslint-disable @typescript-eslint/naming-convention */ /** * Returns a number whose value is limited to the given range. * @param {number} value The value to be clamped * @param {number} min The lower boundary of the output range * @param {number} max The upper boundary of the output range * @returns {number} A number in the range [min, max] */ function clampWrapper(value) { let min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; if (false) {} return (0, _clamp.default)(value, min, max); } /** * Converts a color from CSS hex format to CSS rgb format. * @param {string} color - Hex color, i.e. #nnn or #nnnnnn * @returns {string} A CSS rgb color string */ function hexToRgb(color) { color = color.slice(1); const re = new RegExp(".{1,".concat(color.length >= 6 ? 2 : 1, "}"), 'g'); let colors = color.match(re); if (colors && colors[0].length === 1) { colors = colors.map(n => n + n); } return colors ? "rgb".concat(colors.length === 4 ? 'a' : '', "(").concat(colors.map((n, index) => { return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000; }).join(', '), ")") : ''; } function intToHex(int) { const hex = int.toString(16); return hex.length === 1 ? "0".concat(hex) : hex; } /** * Returns an object with the type and values of a color. * * Note: Does not support rgb % values. * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color() * @returns {object} - A MUI color object: {type: string, values: number[]} */ function decomposeColor(color) { // Idempotent if (color.type) { return color; } if (color.charAt(0) === '#') { return decomposeColor(hexToRgb(color)); } const marker = color.indexOf('('); const type = color.substring(0, marker); if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) { throw new Error( false ? 0 : (0, _formatMuiErrorMessage2.default)(9, color)); } let values = color.substring(marker + 1, color.length - 1); let colorSpace; if (type === 'color') { values = values.split(' '); colorSpace = values.shift(); if (values.length === 4 && values[3].charAt(0) === '/') { values[3] = values[3].slice(1); } if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) { throw new Error( false ? 0 : (0, _formatMuiErrorMessage2.default)(10, colorSpace)); } } else { values = values.split(','); } values = values.map(value => parseFloat(value)); return { type, values, colorSpace }; } /** * Returns a channel created from the input color. * * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color() * @returns {string} - The channel for the color, that can be used in rgba or hsla colors */ const colorChannel = color => { const decomposedColor = decomposeColor(color); return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? "".concat(val, "%") : val).join(' '); }; __webpack_unused_export__ = colorChannel; const private_safeColorChannel = (color, warning) => { try { return colorChannel(color); } catch (error) { if (warning && "production" !== 'production') {} return color; } }; /** * Converts a color object with type and values to a string. * @param {object} color - Decomposed color * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color' * @param {array} color.values - [n,n,n] or [n,n,n,n] * @returns {string} A CSS color string */ __webpack_unused_export__ = private_safeColorChannel; function recomposeColor(color) { const { type, colorSpace } = color; let { values } = color; if (type.indexOf('rgb') !== -1) { // Only convert the first 3 values to int (i.e. not alpha) values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n); } else if (type.indexOf('hsl') !== -1) { values[1] = "".concat(values[1], "%"); values[2] = "".concat(values[2], "%"); } if (type.indexOf('color') !== -1) { values = "".concat(colorSpace, " ").concat(values.join(' ')); } else { values = "".concat(values.join(', ')); } return "".concat(type, "(").concat(values, ")"); } /** * Converts a color from CSS rgb format to CSS hex format. * @param {string} color - RGB color, i.e. rgb(n, n, n) * @returns {string} A CSS rgb color string, i.e. #nnnnnn */ function rgbToHex(color) { // Idempotent if (color.indexOf('#') === 0) { return color; } const { values } = decomposeColor(color); return "#".concat(values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')); } /** * Converts a color from hsl format to rgb format. * @param {string} color - HSL color values * @returns {string} rgb color values */ function hslToRgb(color) { color = decomposeColor(color); const { values } = color; const h = values[0]; const s = values[1] / 100; const l = values[2] / 100; const a = s * Math.min(l, 1 - l); const f = function (n) { let k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12; return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1); }; let type = 'rgb'; const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)]; if (color.type === 'hsla') { type += 'a'; rgb.push(values[3]); } return recomposeColor({ type, values: rgb }); } /** * The relative brightness of any point in a color space, * normalized to 0 for darkest black and 1 for lightest white. * * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color() * @returns {number} The relative brightness of the color in the range 0 - 1 */ function getLuminance(color) { color = decomposeColor(color); let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values; rgb = rgb.map(val => { if (color.type !== 'color') { val /= 255; // normalized } return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4; }); // Truncate at 3 digits return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3)); } /** * Calculates the contrast ratio between two colors. * * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla() * @returns {number} A contrast ratio value in the range 0 - 21. */ function getContrastRatio(foreground, background) { const lumA = getLuminance(foreground); const lumB = getLuminance(background); return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05); } /** * Sets the absolute transparency of a color. * Any existing alpha values are overwritten. * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color() * @param {number} value - value to set the alpha channel to in the range 0 - 1 * @returns {string} A CSS color string. Hex input values are returned as rgb */ function alpha(color, value) { color = decomposeColor(color); value = clampWrapper(value); if (color.type === 'rgb' || color.type === 'hsl') { color.type += 'a'; } if (color.type === 'color') { color.values[3] = "/".concat(value); } else { color.values[3] = value; } return recomposeColor(color); } function private_safeAlpha(color, value, warning) { try { return alpha(color, value); } catch (error) { if (warning && "production" !== 'production') {} return color; } } /** * Darkens a color. * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color() * @param {number} coefficient - multiplier in the range 0 - 1 * @returns {string} A CSS color string. Hex input values are returned as rgb */ function darken(color, coefficient) { color = decomposeColor(color); coefficient = clampWrapper(coefficient); if (color.type.indexOf('hsl') !== -1) { color.values[2] *= 1 - coefficient; } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) { for (let i = 0; i < 3; i += 1) { color.values[i] *= 1 - coefficient; } } return recomposeColor(color); } function private_safeDarken(color, coefficient, warning) { try { return darken(color, coefficient); } catch (error) { if (warning && "production" !== 'production') {} return color; } } /** * Lightens a color. * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color() * @param {number} coefficient - multiplier in the range 0 - 1 * @returns {string} A CSS color string. Hex input values are returned as rgb */ function lighten(color, coefficient) { color = decomposeColor(color); coefficient = clampWrapper(coefficient); if (color.type.indexOf('hsl') !== -1) { color.values[2] += (100 - color.values[2]) * coefficient; } else if (color.type.indexOf('rgb') !== -1) { for (let i = 0; i < 3; i += 1) { color.values[i] += (255 - color.values[i]) * coefficient; } } else if (color.type.indexOf('color') !== -1) { for (let i = 0; i < 3; i += 1) { color.values[i] += (1 - color.values[i]) * coefficient; } } return recomposeColor(color); } function private_safeLighten(color, coefficient, warning) { try { return lighten(color, coefficient); } catch (error) { if (warning && "production" !== 'production') {} return color; } } /** * Darken or lighten a color, depending on its luminance. * Light colors are darkened, dark colors are lightened. * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color() * @param {number} coefficient=0.15 - multiplier in the range 0 - 1 * @returns {string} A CSS color string. Hex input values are returned as rgb */ function emphasize(color) { let coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15; return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient); } function private_safeEmphasize(color, coefficient, warning) { try { return emphasize(color, coefficient); } catch (error) { if (warning && "production" !== 'production') {} return color; } } /** * Blend a transparent overlay color with a background color, resulting in a single * RGB color. * @param {string} background - CSS color * @param {string} overlay - CSS color * @param {number} opacity - Opacity multiplier in the range 0 - 1 * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual. */ function blend(background, overlay, opacity) { let gamma = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1.0; const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma); const backgroundColor = decomposeColor(background); const overlayColor = decomposeColor(overlay); const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])]; return recomposeColor({ type: 'rgb', values: rgb }); } /***/ }), /***/ 3952: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var __webpack_unused_export__; var _interopRequireDefault = __webpack_require__(3894); __webpack_unused_export__ = ({ value: true }); exports.ZP = createStyled; __webpack_unused_export__ = shouldForwardProp; __webpack_unused_export__ = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(4708)); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(3364)); var _styledEngine = _interopRequireWildcard(__webpack_require__(5190)); var _deepmerge = __webpack_require__(9499); var _capitalize = _interopRequireDefault(__webpack_require__(6814)); var _getDisplayName = _interopRequireDefault(__webpack_require__(8853)); var _createTheme = _interopRequireDefault(__webpack_require__(7553)); var _styleFunctionSx = _interopRequireDefault(__webpack_require__(7168)); const _excluded = ["ownerState"], _excluded2 = ["variants"], _excluded3 = ["name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver"]; /* eslint-disable no-underscore-dangle */ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } function isEmpty(obj) { return Object.keys(obj).length === 0; } // https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40 function isStringTag(tag) { return typeof tag === 'string' && // 96 is one less than the char code // for "a" so this is checking that // it's a lowercase character tag.charCodeAt(0) > 96; } // Update /system/styled/#api in case if this changes function shouldForwardProp(prop) { return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as'; } const systemDefaultTheme = __webpack_unused_export__ = (0, _createTheme.default)(); const lowercaseFirstLetter = string => { if (!string) { return string; } return string.charAt(0).toLowerCase() + string.slice(1); }; function resolveTheme(_ref2) { let { defaultTheme, theme, themeId } = _ref2; return isEmpty(theme) ? defaultTheme : theme[themeId] || theme; } function defaultOverridesResolver(slot) { if (!slot) { return null; } return (props, styles) => styles[slot]; } function processStyleArg(callableStyle, _ref) { let { ownerState } = _ref, props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded); const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle((0, _extends2.default)({ ownerState }, props)) : callableStyle; if (Array.isArray(resolvedStylesArg)) { return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, (0, _extends2.default)({ ownerState }, props))); } if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) { const { variants = [] } = resolvedStylesArg, otherStyles = (0, _objectWithoutPropertiesLoose2.default)(resolvedStylesArg, _excluded2); let result = otherStyles; variants.forEach(variant => { let isMatch = true; if (typeof variant.props === 'function') { isMatch = variant.props((0, _extends2.default)({ ownerState }, props, ownerState)); } else { Object.keys(variant.props).forEach(key => { if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) { isMatch = false; } }); } if (isMatch) { if (!Array.isArray(result)) { result = [result]; } result.push(typeof variant.style === 'function' ? variant.style((0, _extends2.default)({ ownerState }, props, ownerState)) : variant.style); } }); return result; } return resolvedStylesArg; } function createStyled() { let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; const { themeId, defaultTheme = systemDefaultTheme, rootShouldForwardProp = shouldForwardProp, slotShouldForwardProp = shouldForwardProp } = input; const systemSx = props => { return (0, _styleFunctionSx.default)((0, _extends2.default)({}, props, { theme: resolveTheme((0, _extends2.default)({}, props, { defaultTheme, themeId })) })); }; systemSx.__mui_systemSx = true; return function (tag) { let inputOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components. (0, _styledEngine.internal_processStyles)(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx))); const { name: componentName, slot: componentSlot, skipVariantsResolver: inputSkipVariantsResolver, skipSx: inputSkipSx, // TODO v6: remove `lowercaseFirstLetter()` in the next major release // For more details: https://github.com/mui/material-ui/pull/37908 overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot)) } = inputOptions, options = (0, _objectWithoutPropertiesLoose2.default)(inputOptions, _excluded3); // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots. const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver : // TODO v6: remove `Root` in the next major release // For more details: https://github.com/mui/material-ui/pull/37908 componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false; const skipSx = inputSkipSx || false; let label; if (false) {} let shouldForwardPropOption = shouldForwardProp; // TODO v6: remove `Root` in the next major release // For more details: https://github.com/mui/material-ui/pull/37908 if (componentSlot === 'Root' || componentSlot === 'root') { shouldForwardPropOption = rootShouldForwardProp; } else if (componentSlot) { // any other slot specified shouldForwardPropOption = slotShouldForwardProp; } else if (isStringTag(tag)) { // for string (html) tag, preserve the behavior in emotion & styled-components. shouldForwardPropOption = undefined; } const defaultStyledResolver = (0, _styledEngine.default)(tag, (0, _extends2.default)({ shouldForwardProp: shouldForwardPropOption, label }, options)); const transformStyleArg = stylesArg => { // On the server Emotion doesn't use React.forwardRef for creating components, so the created // component stays as a function. This condition makes sure that we do not interpolate functions // which are basically components used as a selectors. if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0, _deepmerge.isPlainObject)(stylesArg)) { return props => processStyleArg(stylesArg, (0, _extends2.default)({}, props, { theme: resolveTheme({ theme: props.theme, defaultTheme, themeId }) })); } return stylesArg; }; const muiStyledResolver = function (styleArg) { let transformedStyleArg = transformStyleArg(styleArg); for (var _len = arguments.length, expressions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { expressions[_key - 1] = arguments[_key]; } const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : []; if (componentName && overridesResolver) { expressionsWithDefaultTheme.push(props => { const theme = resolveTheme((0, _extends2.default)({}, props, { defaultTheme, themeId })); if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) { return null; } const styleOverrides = theme.components[componentName].styleOverrides; const resolvedStyleOverrides = {}; // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly Object.entries(styleOverrides).forEach(_ref3 => { let [slotKey, slotStyle] = _ref3; resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, (0, _extends2.default)({}, props, { theme })); }); return overridesResolver(props, resolvedStyleOverrides); }); } if (componentName && !skipVariantsResolver) { expressionsWithDefaultTheme.push(props => { var _theme$components; const theme = resolveTheme((0, _extends2.default)({}, props, { defaultTheme, themeId })); const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants; return processStyleArg({ variants: themeVariants }, (0, _extends2.default)({}, props, { theme })); }); } if (!skipSx) { expressionsWithDefaultTheme.push(systemSx); } const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length; if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) { const placeholders = new Array(numOfCustomFnsApplied).fill(''); // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles. transformedStyleArg = [...styleArg, ...placeholders]; transformedStyleArg.raw = [...styleArg.raw, ...placeholders]; } const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme); if (false) {} if (tag.muiName) { Component.muiName = tag.muiName; } return Component; }; if (defaultStyledResolver.withConfig) { muiStyledResolver.withConfig = defaultStyledResolver.withConfig; } return muiStyledResolver; }; } /***/ }), /***/ 9744: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ L7: () => (/* binding */ removeUnusedBreakpoints), /* harmony export */ P$: () => (/* binding */ resolveBreakpointValues), /* harmony export */ VO: () => (/* binding */ values), /* harmony export */ W8: () => (/* binding */ createEmptyBreakpointObject), /* harmony export */ dt: () => (/* binding */ mergeBreakpointsInOrder), /* harmony export */ k9: () => (/* binding */ handleBreakpoints) /* harmony export */ }); /* unused harmony export computeBreakpointsBase */ /* harmony import */ var _mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8836); // The breakpoint **start** at this value. // For instance with the first breakpoint xs: [xs, sm[. const values = { xs: 0, // phone sm: 600, // tablet md: 900, // small laptop lg: 1200, // desktop xl: 1536 // large screen }; const defaultBreakpoints = { // Sorted ASC by size. That's important. // It can't be configured as it's used statically for propTypes. keys: ['xs', 'sm', 'md', 'lg', 'xl'], up: key => "@media (min-width:".concat(values[key], "px)") }; function handleBreakpoints(props, propValue, styleFromPropValue) { const theme = props.theme || {}; if (Array.isArray(propValue)) { const themeBreakpoints = theme.breakpoints || defaultBreakpoints; return propValue.reduce((acc, item, index) => { acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]); return acc; }, {}); } if (typeof propValue === 'object') { const themeBreakpoints = theme.breakpoints || defaultBreakpoints; return Object.keys(propValue).reduce((acc, breakpoint) => { // key is breakpoint if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) { const mediaKey = themeBreakpoints.up(breakpoint); acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint); } else { const cssKey = breakpoint; acc[cssKey] = propValue[cssKey]; } return acc; }, {}); } const output = styleFromPropValue(propValue); return output; } function breakpoints(styleFunction) { // false positive // eslint-disable-next-line react/function-component-definition const newStyleFunction = props => { const theme = props.theme || {}; const base = styleFunction(props); const themeBreakpoints = theme.breakpoints || defaultBreakpoints; const extended = themeBreakpoints.keys.reduce((acc, key) => { if (props[key]) { acc = acc || {}; acc[themeBreakpoints.up(key)] = styleFunction(_extends({ theme }, props[key])); } return acc; }, null); return merge(base, extended); }; newStyleFunction.propTypes = false ? 0 : {}; newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps]; return newStyleFunction; } function createEmptyBreakpointObject() { let breakpointsInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _breakpointsInput$key; const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => { const breakpointStyleKey = breakpointsInput.up(key); acc[breakpointStyleKey] = {}; return acc; }, {}); return breakpointsInOrder || {}; } function removeUnusedBreakpoints(breakpointKeys, style) { return breakpointKeys.reduce((acc, key) => { const breakpointOutput = acc[key]; const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0; if (isBreakpointUnused) { delete acc[key]; } return acc; }, style); } function mergeBreakpointsInOrder(breakpointsInput) { const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput); for (var _len = arguments.length, styles = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { styles[_key - 1] = arguments[_key]; } const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(prev, next), {}); return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput); } // compute base for responsive values; e.g., // [1,2,3] => {xs: true, sm: true, md: true} // {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true} function computeBreakpointsBase(breakpointValues, themeBreakpoints) { // fixed value if (typeof breakpointValues !== 'object') { return {}; } const base = {}; const breakpointsKeys = Object.keys(themeBreakpoints); if (Array.isArray(breakpointValues)) { breakpointsKeys.forEach((breakpoint, i) => { if (i < breakpointValues.length) { base[breakpoint] = true; } }); } else { breakpointsKeys.forEach(breakpoint => { if (breakpointValues[breakpoint] != null) { base[breakpoint] = true; } }); } return base; } function resolveBreakpointValues(_ref) { let { values: breakpointValues, breakpoints: themeBreakpoints, base: customBase } = _ref; const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints); const keys = Object.keys(base); if (keys.length === 0) { return breakpointValues; } let previous; return keys.reduce((acc, breakpoint, i) => { if (Array.isArray(breakpointValues)) { acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous]; previous = i; } else if (typeof breakpointValues === 'object') { acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous]; previous = breakpoint; } else { acc[breakpoint] = breakpointValues; } return acc; }, {}); } /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (breakpoints))); /***/ }), /***/ 1900: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ applyStyles) /* harmony export */ }); /** * A universal utility to style components with multiple color modes. Always use it from the theme object. * It works with: * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/) * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/) * - Zero-runtime engine * * Tips: Use an array over object spread and place `theme.applyStyles()` last. * * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })] * * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })} * * @example * 1. using with `styled`: * ```jsx * const Component = styled('div')(({ theme }) => [ * { background: '#e5e5e5' }, * theme.applyStyles('dark', { * background: '#1c1c1c', * color: '#fff', * }), * ]); * ``` * * @example * 2. using with `sx` prop: * ```jsx * [ * { background: '#e5e5e5' }, * theme.applyStyles('dark', { * background: '#1c1c1c', * color: '#fff', * }), * ]} * /> * ``` * * @example * 3. theming a component: * ```jsx * extendTheme({ * components: { * MuiButton: { * styleOverrides: { * root: ({ theme }) => [ * { background: '#e5e5e5' }, * theme.applyStyles('dark', { * background: '#1c1c1c', * color: '#fff', * }), * ], * }, * } * } * }) *``` */ function applyStyles(key, styles) { // @ts-expect-error this is 'any' type const theme = this; if (theme.vars && typeof theme.getColorSchemeSelector === 'function') { // If CssVarsProvider is used as a provider, // returns '* :where([data-mui-color-scheme="light|dark"]) &' const selector = theme.getColorSchemeSelector(key).replace(/(\[[^\]]+\])/, '*:where($1)'); return { [selector]: styles }; } if (theme.palette.mode === key) { return styles; } return {}; } /***/ }), /***/ 3776: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ createBreakpoints) /* harmony export */ }); /* unused harmony export breakpointKeys */ /* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3031); /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1010); const _excluded = ["values", "unit", "step"]; // Sorted ASC by size. That's important. // It can't be configured as it's used statically for propTypes. const breakpointKeys = (/* unused pure expression or super */ null && (['xs', 'sm', 'md', 'lg', 'xl'])); const sortBreakpointsValues = values => { const breakpointsAsArray = Object.keys(values).map(key => ({ key, val: values[key] })) || []; // Sort in ascending order breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val); return breakpointsAsArray.reduce((acc, obj) => { return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, acc, { [obj.key]: obj.val }); }, {}); }; // Keep in mind that @media is inclusive by the CSS specification. function createBreakpoints(breakpoints) { const { // The breakpoint **start** at this value. // For instance with the first breakpoint xs: [xs, sm). values = { xs: 0, // phone sm: 600, // tablet md: 900, // small laptop lg: 1200, // desktop xl: 1536 // large screen }, unit = 'px', step = 5 } = breakpoints, other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(breakpoints, _excluded); const sortedValues = sortBreakpointsValues(values); const keys = Object.keys(sortedValues); function up(key) { const value = typeof values[key] === 'number' ? values[key] : key; return "@media (min-width:".concat(value).concat(unit, ")"); } function down(key) { const value = typeof values[key] === 'number' ? values[key] : key; return "@media (max-width:".concat(value - step / 100).concat(unit, ")"); } function between(start, end) { const endIndex = keys.indexOf(end); return "@media (min-width:".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, ") and ") + "(max-width:".concat((endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100).concat(unit, ")"); } function only(key) { if (keys.indexOf(key) + 1 < keys.length) { return between(key, keys[keys.indexOf(key) + 1]); } return up(key); } function not(key) { // handle first and last key separately, for better readability const keyIndex = keys.indexOf(key); if (keyIndex === 0) { return up(keys[1]); } if (keyIndex === keys.length - 1) { return down(keys[keyIndex]); } return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and'); } return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({ keys, values: sortedValues, up, down, between, only, not, unit }, other); } /***/ }), /***/ 3985: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: () => (/* binding */ createTheme_createTheme) }); // EXTERNAL MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/extends.js var esm_extends = __webpack_require__(1010); // EXTERNAL MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js var objectWithoutPropertiesLoose = __webpack_require__(3031); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/deepmerge/deepmerge.js var deepmerge = __webpack_require__(8836); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/createTheme/createBreakpoints.js var createBreakpoints = __webpack_require__(3776); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/createTheme/shape.js const shape = { borderRadius: 4 }; /* harmony default export */ const createTheme_shape = (shape); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/spacing.js + 1 modules var esm_spacing = __webpack_require__(4275); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/createTheme/createSpacing.js // The different signatures imply different meaning for their arguments that can't be expressed structurally. // We express the difference with variable names. function createSpacing() { let spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8; // Already transformed. if (spacingInput.mui) { return spacingInput; } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout. // Smaller components, such as icons, can align to a 4dp grid. // https://m2.material.io/design/layout/understanding-layout.html const transform = (0,esm_spacing/* createUnarySpacing */.hB)({ spacing: spacingInput }); const spacing = function () { for (var _len = arguments.length, argsInput = new Array(_len), _key = 0; _key < _len; _key++) { argsInput[_key] = arguments[_key]; } if (false) {} const args = argsInput.length === 0 ? [1] : argsInput; return args.map(argument => { const output = transform(argument); return typeof output === 'number' ? "".concat(output, "px") : output; }).join(' '); }; spacing.mui = true; return spacing; } // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js var styleFunctionSx = __webpack_require__(1048); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js + 5 modules var defaultSxConfig = __webpack_require__(1524); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/createTheme/applyStyles.js var applyStyles = __webpack_require__(1900); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/createTheme/createTheme.js const _excluded = ["breakpoints", "palette", "spacing", "shape"]; function createTheme() { let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; const { breakpoints: breakpointsInput = {}, palette: paletteInput = {}, spacing: spacingInput, shape: shapeInput = {} } = options, other = (0,objectWithoutPropertiesLoose/* default */.Z)(options, _excluded); const breakpoints = (0,createBreakpoints/* default */.Z)(breakpointsInput); const spacing = createSpacing(spacingInput); let muiTheme = (0,deepmerge/* default */.Z)({ breakpoints, direction: 'ltr', components: {}, // Inject component definitions. palette: (0,esm_extends/* default */.Z)({ mode: 'light' }, paletteInput), spacing, shape: (0,esm_extends/* default */.Z)({}, createTheme_shape, shapeInput) }, other); muiTheme.applyStyles = applyStyles/* default */.Z; for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } muiTheme = args.reduce((acc, argument) => (0,deepmerge/* default */.Z)(acc, argument), muiTheme); muiTheme.unstable_sxConfig = (0,esm_extends/* default */.Z)({}, defaultSxConfig/* default */.Z, other == null ? void 0 : other.unstable_sxConfig); muiTheme.unstable_sx = function sx(props) { return (0,styleFunctionSx/* default */.Z)({ sx: props, theme: this }); }; return muiTheme; } /* harmony default export */ const createTheme_createTheme = (createTheme); /***/ }), /***/ 7553: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* reexport safe */ _createTheme__WEBPACK_IMPORTED_MODULE_0__.Z), /* harmony export */ private_createBreakpoints: () => (/* reexport safe */ _createBreakpoints__WEBPACK_IMPORTED_MODULE_1__.Z), /* harmony export */ unstable_applyStyles: () => (/* reexport safe */ _applyStyles__WEBPACK_IMPORTED_MODULE_2__.Z) /* harmony export */ }); /* harmony import */ var _createTheme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3985); /* harmony import */ var _createBreakpoints__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3776); /* harmony import */ var _applyStyles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1900); /***/ }), /***/ 3287: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8836); function merge(acc, item) { if (!item) { return acc; } return (0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(acc, item, { clone: false // No need to clone deep, it's way faster. }); } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (merge); /***/ }), /***/ 4275: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { hB: () => (/* binding */ createUnarySpacing), eI: () => (/* binding */ createUnaryUnit), NA: () => (/* binding */ getValue), e6: () => (/* binding */ margin), o3: () => (/* binding */ padding) }); // UNUSED EXPORTS: default, getStyleFromPropValue, marginKeys, paddingKeys // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/breakpoints.js var breakpoints = __webpack_require__(9744); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/style.js var style = __webpack_require__(6634); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/merge.js var merge = __webpack_require__(3287); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/memoize.js function memoize(fn) { const cache = {}; return arg => { if (cache[arg] === undefined) { cache[arg] = fn(arg); } return cache[arg]; }; } ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/spacing.js const properties = { m: 'margin', p: 'padding' }; const directions = { t: 'Top', r: 'Right', b: 'Bottom', l: 'Left', x: ['Left', 'Right'], y: ['Top', 'Bottom'] }; const aliases = { marginX: 'mx', marginY: 'my', paddingX: 'px', paddingY: 'py' }; // memoize() impact: // From 300,000 ops/sec // To 350,000 ops/sec const getCssProperties = memoize(prop => { // It's not a shorthand notation. if (prop.length > 2) { if (aliases[prop]) { prop = aliases[prop]; } else { return [prop]; } } const [a, b] = prop.split(''); const property = properties[a]; const direction = directions[b] || ''; return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction]; }); const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd']; const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd']; const spacingKeys = [...marginKeys, ...paddingKeys]; function createUnaryUnit(theme, themeKey, defaultValue, propName) { var _getPath; const themeSpacing = (_getPath = (0,style/* getPath */.DW)(theme, themeKey, false)) != null ? _getPath : defaultValue; if (typeof themeSpacing === 'number') { return abs => { if (typeof abs === 'string') { return abs; } if (false) {} return themeSpacing * abs; }; } if (Array.isArray(themeSpacing)) { return abs => { if (typeof abs === 'string') { return abs; } if (false) {} return themeSpacing[abs]; }; } if (typeof themeSpacing === 'function') { return themeSpacing; } if (false) {} return () => undefined; } function createUnarySpacing(theme) { return createUnaryUnit(theme, 'spacing', 8, 'spacing'); } function getValue(transformer, propValue) { if (typeof propValue === 'string' || propValue == null) { return propValue; } const abs = Math.abs(propValue); const transformed = transformer(abs); if (propValue >= 0) { return transformed; } if (typeof transformed === 'number') { return -transformed; } return "-".concat(transformed); } function getStyleFromPropValue(cssProperties, transformer) { return propValue => cssProperties.reduce((acc, cssProperty) => { acc[cssProperty] = getValue(transformer, propValue); return acc; }, {}); } function resolveCssProperty(props, keys, prop, transformer) { // Using a hash computation over an array iteration could be faster, but with only 28 items, // it's doesn't worth the bundle size. if (keys.indexOf(prop) === -1) { return null; } const cssProperties = getCssProperties(prop); const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer); const propValue = props[prop]; return (0,breakpoints/* handleBreakpoints */.k9)(props, propValue, styleFromPropValue); } function spacing_style(props, keys) { const transformer = createUnarySpacing(props.theme); return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge/* default */.Z, {}); } function margin(props) { return spacing_style(props, marginKeys); } margin.propTypes = false ? 0 : {}; margin.filterProps = marginKeys; function padding(props) { return spacing_style(props, paddingKeys); } padding.propTypes = false ? 0 : {}; padding.filterProps = paddingKeys; function spacing(props) { return spacing_style(props, spacingKeys); } spacing.propTypes = false ? 0 : {}; spacing.filterProps = spacingKeys; /* harmony default export */ const esm_spacing = ((/* unused pure expression or super */ null && (spacing))); /***/ }), /***/ 6634: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ DW: () => (/* binding */ getPath), /* harmony export */ Jq: () => (/* binding */ getStyleValue), /* harmony export */ ZP: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _mui_utils_capitalize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4656); /* harmony import */ var _breakpoints__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9744); function getPath(obj, path) { let checkVars = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; if (!path || typeof path !== 'string') { return null; } // Check if CSS variables are used if (obj && obj.vars && checkVars) { const val = "vars.".concat(path).split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj); if (val != null) { return val; } } return path.split('.').reduce((acc, item) => { if (acc && acc[item] != null) { return acc[item]; } return null; }, obj); } function getStyleValue(themeMapping, transform, propValueFinal) { let userValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : propValueFinal; let value; if (typeof themeMapping === 'function') { value = themeMapping(propValueFinal); } else if (Array.isArray(themeMapping)) { value = themeMapping[propValueFinal] || userValue; } else { value = getPath(themeMapping, propValueFinal) || userValue; } if (transform) { value = transform(value, userValue, themeMapping); } return value; } function style(options) { const { prop, cssProperty = options.prop, themeKey, transform } = options; // false positive // eslint-disable-next-line react/function-component-definition const fn = props => { if (props[prop] == null) { return null; } const propValue = props[prop]; const theme = props.theme; const themeMapping = getPath(theme, themeKey) || {}; const styleFromPropValue = propValueFinal => { let value = getStyleValue(themeMapping, transform, propValueFinal); if (propValueFinal === value && typeof propValueFinal === 'string') { // Haven't found value value = getStyleValue(themeMapping, transform, "".concat(prop).concat(propValueFinal === 'default' ? '' : (0,_mui_utils_capitalize__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(propValueFinal)), propValueFinal); } if (cssProperty === false) { return value; } return { [cssProperty]: value }; }; return (0,_breakpoints__WEBPACK_IMPORTED_MODULE_1__/* .handleBreakpoints */ .k9)(props, propValue, styleFromPropValue); }; fn.propTypes = false ? 0 : {}; fn.filterProps = [prop]; return fn; } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (style); /***/ }), /***/ 1524: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: () => (/* binding */ styleFunctionSx_defaultSxConfig) }); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/spacing.js + 1 modules var spacing = __webpack_require__(4275); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/style.js var style = __webpack_require__(6634); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/merge.js var merge = __webpack_require__(3287); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/compose.js function compose() { for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) { styles[_key] = arguments[_key]; } const handlers = styles.reduce((acc, style) => { style.filterProps.forEach(prop => { acc[prop] = style; }); return acc; }, {}); // false positive // eslint-disable-next-line react/function-component-definition const fn = props => { return Object.keys(props).reduce((acc, prop) => { if (handlers[prop]) { return (0,merge/* default */.Z)(acc, handlers[prop](props)); } return acc; }, {}); }; fn.propTypes = false ? 0 : {}; fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []); return fn; } /* harmony default export */ const esm_compose = (compose); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/breakpoints.js var breakpoints = __webpack_require__(9744); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/borders.js function borderTransform(value) { if (typeof value !== 'number') { return value; } return "".concat(value, "px solid"); } function createBorderStyle(prop, transform) { return (0,style/* default */.ZP)({ prop, themeKey: 'borders', transform }); } const border = createBorderStyle('border', borderTransform); const borderTop = createBorderStyle('borderTop', borderTransform); const borderRight = createBorderStyle('borderRight', borderTransform); const borderBottom = createBorderStyle('borderBottom', borderTransform); const borderLeft = createBorderStyle('borderLeft', borderTransform); const borderColor = createBorderStyle('borderColor'); const borderTopColor = createBorderStyle('borderTopColor'); const borderRightColor = createBorderStyle('borderRightColor'); const borderBottomColor = createBorderStyle('borderBottomColor'); const borderLeftColor = createBorderStyle('borderLeftColor'); const outline = createBorderStyle('outline', borderTransform); const outlineColor = createBorderStyle('outlineColor'); // false positive // eslint-disable-next-line react/function-component-definition const borderRadius = props => { if (props.borderRadius !== undefined && props.borderRadius !== null) { const transformer = (0,spacing/* createUnaryUnit */.eI)(props.theme, 'shape.borderRadius', 4, 'borderRadius'); const styleFromPropValue = propValue => ({ borderRadius: (0,spacing/* getValue */.NA)(transformer, propValue) }); return (0,breakpoints/* handleBreakpoints */.k9)(props, props.borderRadius, styleFromPropValue); } return null; }; borderRadius.propTypes = false ? 0 : {}; borderRadius.filterProps = ['borderRadius']; const borders = esm_compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor); /* harmony default export */ const esm_borders = ((/* unused pure expression or super */ null && (borders))); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/cssGrid.js // false positive // eslint-disable-next-line react/function-component-definition const gap = props => { if (props.gap !== undefined && props.gap !== null) { const transformer = (0,spacing/* createUnaryUnit */.eI)(props.theme, 'spacing', 8, 'gap'); const styleFromPropValue = propValue => ({ gap: (0,spacing/* getValue */.NA)(transformer, propValue) }); return (0,breakpoints/* handleBreakpoints */.k9)(props, props.gap, styleFromPropValue); } return null; }; gap.propTypes = false ? 0 : {}; gap.filterProps = ['gap']; // false positive // eslint-disable-next-line react/function-component-definition const columnGap = props => { if (props.columnGap !== undefined && props.columnGap !== null) { const transformer = (0,spacing/* createUnaryUnit */.eI)(props.theme, 'spacing', 8, 'columnGap'); const styleFromPropValue = propValue => ({ columnGap: (0,spacing/* getValue */.NA)(transformer, propValue) }); return (0,breakpoints/* handleBreakpoints */.k9)(props, props.columnGap, styleFromPropValue); } return null; }; columnGap.propTypes = false ? 0 : {}; columnGap.filterProps = ['columnGap']; // false positive // eslint-disable-next-line react/function-component-definition const rowGap = props => { if (props.rowGap !== undefined && props.rowGap !== null) { const transformer = (0,spacing/* createUnaryUnit */.eI)(props.theme, 'spacing', 8, 'rowGap'); const styleFromPropValue = propValue => ({ rowGap: (0,spacing/* getValue */.NA)(transformer, propValue) }); return (0,breakpoints/* handleBreakpoints */.k9)(props, props.rowGap, styleFromPropValue); } return null; }; rowGap.propTypes = false ? 0 : {}; rowGap.filterProps = ['rowGap']; const gridColumn = (0,style/* default */.ZP)({ prop: 'gridColumn' }); const gridRow = (0,style/* default */.ZP)({ prop: 'gridRow' }); const gridAutoFlow = (0,style/* default */.ZP)({ prop: 'gridAutoFlow' }); const gridAutoColumns = (0,style/* default */.ZP)({ prop: 'gridAutoColumns' }); const gridAutoRows = (0,style/* default */.ZP)({ prop: 'gridAutoRows' }); const gridTemplateColumns = (0,style/* default */.ZP)({ prop: 'gridTemplateColumns' }); const gridTemplateRows = (0,style/* default */.ZP)({ prop: 'gridTemplateRows' }); const gridTemplateAreas = (0,style/* default */.ZP)({ prop: 'gridTemplateAreas' }); const gridArea = (0,style/* default */.ZP)({ prop: 'gridArea' }); const grid = esm_compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea); /* harmony default export */ const cssGrid = ((/* unused pure expression or super */ null && (grid))); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/palette.js function paletteTransform(value, userValue) { if (userValue === 'grey') { return userValue; } return value; } const color = (0,style/* default */.ZP)({ prop: 'color', themeKey: 'palette', transform: paletteTransform }); const bgcolor = (0,style/* default */.ZP)({ prop: 'bgcolor', cssProperty: 'backgroundColor', themeKey: 'palette', transform: paletteTransform }); const backgroundColor = (0,style/* default */.ZP)({ prop: 'backgroundColor', themeKey: 'palette', transform: paletteTransform }); const palette = esm_compose(color, bgcolor, backgroundColor); /* harmony default export */ const esm_palette = ((/* unused pure expression or super */ null && (palette))); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/sizing.js function sizingTransform(value) { return value <= 1 && value !== 0 ? "".concat(value * 100, "%") : value; } const width = (0,style/* default */.ZP)({ prop: 'width', transform: sizingTransform }); const maxWidth = props => { if (props.maxWidth !== undefined && props.maxWidth !== null) { const styleFromPropValue = propValue => { var _props$theme, _props$theme2; const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpoints/* values */.VO[propValue]; if (!breakpoint) { return { maxWidth: sizingTransform(propValue) }; } if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') { return { maxWidth: "".concat(breakpoint).concat(props.theme.breakpoints.unit) }; } return { maxWidth: breakpoint }; }; return (0,breakpoints/* handleBreakpoints */.k9)(props, props.maxWidth, styleFromPropValue); } return null; }; maxWidth.filterProps = ['maxWidth']; const minWidth = (0,style/* default */.ZP)({ prop: 'minWidth', transform: sizingTransform }); const height = (0,style/* default */.ZP)({ prop: 'height', transform: sizingTransform }); const maxHeight = (0,style/* default */.ZP)({ prop: 'maxHeight', transform: sizingTransform }); const minHeight = (0,style/* default */.ZP)({ prop: 'minHeight', transform: sizingTransform }); const sizeWidth = (0,style/* default */.ZP)({ prop: 'size', cssProperty: 'width', transform: sizingTransform }); const sizeHeight = (0,style/* default */.ZP)({ prop: 'size', cssProperty: 'height', transform: sizingTransform }); const boxSizing = (0,style/* default */.ZP)({ prop: 'boxSizing' }); const sizing = esm_compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing); /* harmony default export */ const esm_sizing = ((/* unused pure expression or super */ null && (sizing))); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js const defaultSxConfig = { // borders border: { themeKey: 'borders', transform: borderTransform }, borderTop: { themeKey: 'borders', transform: borderTransform }, borderRight: { themeKey: 'borders', transform: borderTransform }, borderBottom: { themeKey: 'borders', transform: borderTransform }, borderLeft: { themeKey: 'borders', transform: borderTransform }, borderColor: { themeKey: 'palette' }, borderTopColor: { themeKey: 'palette' }, borderRightColor: { themeKey: 'palette' }, borderBottomColor: { themeKey: 'palette' }, borderLeftColor: { themeKey: 'palette' }, outline: { themeKey: 'borders', transform: borderTransform }, outlineColor: { themeKey: 'palette' }, borderRadius: { themeKey: 'shape.borderRadius', style: borderRadius }, // palette color: { themeKey: 'palette', transform: paletteTransform }, bgcolor: { themeKey: 'palette', cssProperty: 'backgroundColor', transform: paletteTransform }, backgroundColor: { themeKey: 'palette', transform: paletteTransform }, // spacing p: { style: spacing/* padding */.o3 }, pt: { style: spacing/* padding */.o3 }, pr: { style: spacing/* padding */.o3 }, pb: { style: spacing/* padding */.o3 }, pl: { style: spacing/* padding */.o3 }, px: { style: spacing/* padding */.o3 }, py: { style: spacing/* padding */.o3 }, padding: { style: spacing/* padding */.o3 }, paddingTop: { style: spacing/* padding */.o3 }, paddingRight: { style: spacing/* padding */.o3 }, paddingBottom: { style: spacing/* padding */.o3 }, paddingLeft: { style: spacing/* padding */.o3 }, paddingX: { style: spacing/* padding */.o3 }, paddingY: { style: spacing/* padding */.o3 }, paddingInline: { style: spacing/* padding */.o3 }, paddingInlineStart: { style: spacing/* padding */.o3 }, paddingInlineEnd: { style: spacing/* padding */.o3 }, paddingBlock: { style: spacing/* padding */.o3 }, paddingBlockStart: { style: spacing/* padding */.o3 }, paddingBlockEnd: { style: spacing/* padding */.o3 }, m: { style: spacing/* margin */.e6 }, mt: { style: spacing/* margin */.e6 }, mr: { style: spacing/* margin */.e6 }, mb: { style: spacing/* margin */.e6 }, ml: { style: spacing/* margin */.e6 }, mx: { style: spacing/* margin */.e6 }, my: { style: spacing/* margin */.e6 }, margin: { style: spacing/* margin */.e6 }, marginTop: { style: spacing/* margin */.e6 }, marginRight: { style: spacing/* margin */.e6 }, marginBottom: { style: spacing/* margin */.e6 }, marginLeft: { style: spacing/* margin */.e6 }, marginX: { style: spacing/* margin */.e6 }, marginY: { style: spacing/* margin */.e6 }, marginInline: { style: spacing/* margin */.e6 }, marginInlineStart: { style: spacing/* margin */.e6 }, marginInlineEnd: { style: spacing/* margin */.e6 }, marginBlock: { style: spacing/* margin */.e6 }, marginBlockStart: { style: spacing/* margin */.e6 }, marginBlockEnd: { style: spacing/* margin */.e6 }, // display displayPrint: { cssProperty: false, transform: value => ({ '@media print': { display: value } }) }, display: {}, overflow: {}, textOverflow: {}, visibility: {}, whiteSpace: {}, // flexbox flexBasis: {}, flexDirection: {}, flexWrap: {}, justifyContent: {}, alignItems: {}, alignContent: {}, order: {}, flex: {}, flexGrow: {}, flexShrink: {}, alignSelf: {}, justifyItems: {}, justifySelf: {}, // grid gap: { style: gap }, rowGap: { style: rowGap }, columnGap: { style: columnGap }, gridColumn: {}, gridRow: {}, gridAutoFlow: {}, gridAutoColumns: {}, gridAutoRows: {}, gridTemplateColumns: {}, gridTemplateRows: {}, gridTemplateAreas: {}, gridArea: {}, // positions position: {}, zIndex: { themeKey: 'zIndex' }, top: {}, right: {}, bottom: {}, left: {}, // shadows boxShadow: { themeKey: 'shadows' }, // sizing width: { transform: sizingTransform }, maxWidth: { style: maxWidth }, minWidth: { transform: sizingTransform }, height: { transform: sizingTransform }, maxHeight: { transform: sizingTransform }, minHeight: { transform: sizingTransform }, boxSizing: {}, // typography fontFamily: { themeKey: 'typography' }, fontSize: { themeKey: 'typography' }, fontStyle: { themeKey: 'typography' }, fontWeight: { themeKey: 'typography' }, letterSpacing: {}, textTransform: {}, lineHeight: {}, textAlign: {}, typography: { cssProperty: false, themeKey: 'typography' } }; /* harmony default export */ const styleFunctionSx_defaultSxConfig = (defaultSxConfig); /***/ }), /***/ 416: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ extendSxProp) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1010); /* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3031); /* harmony import */ var _mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8836); /* harmony import */ var _defaultSxConfig__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1524); const _excluded = ["sx"]; const splitProps = props => { var _props$theme$unstable, _props$theme; const result = { systemProps: {}, otherProps: {} }; const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : _defaultSxConfig__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z; Object.keys(props).forEach(prop => { if (config[prop]) { result.systemProps[prop] = props[prop]; } else { result.otherProps[prop] = props[prop]; } }); return result; }; function extendSxProp(props) { const { sx: inSx } = props, other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(props, _excluded); const { systemProps, otherProps } = splitProps(other); let finalSx; if (Array.isArray(inSx)) { finalSx = [systemProps, ...inSx]; } else if (typeof inSx === 'function') { finalSx = function () { const result = inSx(...arguments); if (!(0,_mui_utils_deepmerge__WEBPACK_IMPORTED_MODULE_2__/* .isPlainObject */ .P)(result)) { return systemProps; } return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({}, systemProps, result); }; } else { finalSx = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({}, systemProps, inSx); } return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({}, otherProps, { sx: finalSx }); } /***/ }), /***/ 7168: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* reexport safe */ _styleFunctionSx__WEBPACK_IMPORTED_MODULE_0__.Z), /* harmony export */ extendSxProp: () => (/* reexport safe */ _extendSxProp__WEBPACK_IMPORTED_MODULE_1__.Z), /* harmony export */ unstable_createStyleFunctionSx: () => (/* reexport safe */ _styleFunctionSx__WEBPACK_IMPORTED_MODULE_0__.n), /* harmony export */ unstable_defaultSxConfig: () => (/* reexport safe */ _defaultSxConfig__WEBPACK_IMPORTED_MODULE_2__.Z) /* harmony export */ }); /* harmony import */ var _styleFunctionSx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1048); /* harmony import */ var _extendSxProp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(416); /* harmony import */ var _defaultSxConfig__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1524); /***/ }), /***/ 1048: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__), /* harmony export */ n: () => (/* binding */ unstable_createStyleFunctionSx) /* harmony export */ }); /* harmony import */ var _mui_utils_capitalize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4656); /* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3287); /* harmony import */ var _style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6634); /* harmony import */ var _breakpoints__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9744); /* harmony import */ var _defaultSxConfig__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1524); function objectsHaveSameKeys() { for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) { objects[_key] = arguments[_key]; } const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []); const union = new Set(allKeys); return objects.every(object => union.size === Object.keys(object).length); } function callIfFn(maybeFn, arg) { return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn; } // eslint-disable-next-line @typescript-eslint/naming-convention function unstable_createStyleFunctionSx() { function getThemeValue(prop, val, theme, config) { const props = { [prop]: val, theme }; const options = config[prop]; if (!options) { return { [prop]: val }; } const { cssProperty = prop, themeKey, transform, style } = options; if (val == null) { return null; } // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123 if (themeKey === 'typography' && val === 'inherit') { return { [prop]: val }; } const themeMapping = (0,_style__WEBPACK_IMPORTED_MODULE_0__/* .getPath */ .DW)(theme, themeKey) || {}; if (style) { return style(props); } const styleFromPropValue = propValueFinal => { let value = (0,_style__WEBPACK_IMPORTED_MODULE_0__/* .getStyleValue */ .Jq)(themeMapping, transform, propValueFinal); if (propValueFinal === value && typeof propValueFinal === 'string') { // Haven't found value value = (0,_style__WEBPACK_IMPORTED_MODULE_0__/* .getStyleValue */ .Jq)(themeMapping, transform, "".concat(prop).concat(propValueFinal === 'default' ? '' : (0,_mui_utils_capitalize__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(propValueFinal)), propValueFinal); } if (cssProperty === false) { return value; } return { [cssProperty]: value }; }; return (0,_breakpoints__WEBPACK_IMPORTED_MODULE_2__/* .handleBreakpoints */ .k9)(props, val, styleFromPropValue); } function styleFunctionSx(props) { var _theme$unstable_sxCon; const { sx, theme = {} } = props || {}; if (!sx) { return null; // Emotion & styled-components will neglect null } const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : _defaultSxConfig__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z; /* * Receive `sxInput` as object or callback * and then recursively check keys & values to create media query object styles. * (the result will be used in `styled`) */ function traverse(sxInput) { let sxObject = sxInput; if (typeof sxInput === 'function') { sxObject = sxInput(theme); } else if (typeof sxInput !== 'object') { // value return sxInput; } if (!sxObject) { return null; } const emptyBreakpoints = (0,_breakpoints__WEBPACK_IMPORTED_MODULE_2__/* .createEmptyBreakpointObject */ .W8)(theme.breakpoints); const breakpointsKeys = Object.keys(emptyBreakpoints); let css = emptyBreakpoints; Object.keys(sxObject).forEach(styleKey => { const value = callIfFn(sxObject[styleKey], theme); if (value !== null && value !== undefined) { if (typeof value === 'object') { if (config[styleKey]) { css = (0,_merge__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(css, getThemeValue(styleKey, value, theme, config)); } else { const breakpointsValues = (0,_breakpoints__WEBPACK_IMPORTED_MODULE_2__/* .handleBreakpoints */ .k9)({ theme }, value, x => ({ [styleKey]: x })); if (objectsHaveSameKeys(breakpointsValues, value)) { css[styleKey] = styleFunctionSx({ sx: value, theme }); } else { css = (0,_merge__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(css, breakpointsValues); } } } else { css = (0,_merge__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(css, getThemeValue(styleKey, value, theme, config)); } } }); return (0,_breakpoints__WEBPACK_IMPORTED_MODULE_2__/* .removeUnusedBreakpoints */ .L7)(breakpointsKeys, css); } return Array.isArray(sx) ? sx.map(traverse) : traverse(sx); } return styleFunctionSx; } const styleFunctionSx = unstable_createStyleFunctionSx(); styleFunctionSx.filterProps = ['sx']; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (styleFunctionSx); /***/ }), /***/ 1199: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* unused harmony export systemDefaultTheme */ /* harmony import */ var _createTheme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3985); /* harmony import */ var _useThemeWithoutDefault__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5727); 'use client'; const systemDefaultTheme = (0,_createTheme__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(); function useTheme() { let defaultTheme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : systemDefaultTheme; return (0,_useThemeWithoutDefault__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(defaultTheme); } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useTheme); /***/ }), /***/ 929: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ getThemeProps) /* harmony export */ }); /* harmony import */ var _mui_utils_resolveProps__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3928); function getThemeProps(params) { const { theme, name, props } = params; if (!theme || !theme.components || !theme.components[name] || !theme.components[name].defaultProps) { return props; } return (0,_mui_utils_resolveProps__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(theme.components[name].defaultProps, props); } /***/ }), /***/ 8251: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ useThemeProps) /* harmony export */ }); /* harmony import */ var _getThemeProps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(929); /* harmony import */ var _useTheme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1199); 'use client'; function useThemeProps(_ref) { let { props, name, defaultTheme, themeId } = _ref; let theme = (0,_useTheme__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(defaultTheme); if (themeId) { theme = theme[themeId] || theme; } const mergedProps = (0,_getThemeProps__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)({ theme, name, props }); return mergedProps; } /***/ }), /***/ 5727: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948); /* harmony import */ var _mui_styled_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2412); 'use client'; function isObjectEmpty(obj) { return Object.keys(obj).length === 0; } function useTheme() { let defaultTheme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; const contextTheme = react__WEBPACK_IMPORTED_MODULE_0__.useContext(_mui_styled_engine__WEBPACK_IMPORTED_MODULE_1__.T); return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme; } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useTheme); /***/ }), /***/ 3705: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); const defaultGenerator = componentName => componentName; const createClassNameGenerator = () => { let generate = defaultGenerator; return { configure(generator) { generate = generator; }, generate(componentName) { return generate(componentName); }, reset() { generate = defaultGenerator; } }; }; const ClassNameGenerator = createClassNameGenerator(); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ClassNameGenerator); /***/ }), /***/ 4656: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ capitalize) /* harmony export */ }); /* harmony import */ var _mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4451); // It should to be noted that this function isn't equivalent to `text-transform: capitalize`. // // A strict capitalization should uppercase the first letter of each word in the sentence. // We only handle the first word. function capitalize(string) { if (typeof string !== 'string') { throw new Error( false ? 0 : (0,_mui_utils_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(7)); } return string.charAt(0).toUpperCase() + string.slice(1); } /***/ }), /***/ 6814: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* reexport safe */ _capitalize__WEBPACK_IMPORTED_MODULE_0__.Z) /* harmony export */ }); /* harmony import */ var _capitalize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4656); /***/ }), /***/ 5288: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "default": () => (/* reexport */ clamp_clamp) }); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/clamp/clamp.js function clamp(val) { let min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MIN_SAFE_INTEGER; let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.MAX_SAFE_INTEGER; return Math.max(min, Math.min(val, max)); } /* harmony default export */ const clamp_clamp = (clamp); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/clamp/index.js /***/ }), /***/ 5923: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ composeClasses) /* harmony export */ }); function composeClasses(slots, getUtilityClass) { let classes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; const output = {}; Object.keys(slots).forEach( // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`. // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208 slot => { output[slot] = slots[slot].reduce((acc, key) => { if (key) { const utilityClass = getUtilityClass(key); if (utilityClass !== '') { acc.push(utilityClass); } if (classes && classes[key]) { acc.push(classes[key]); } } return acc; }, []).join(' '); }); return output; } /***/ }), /***/ 3444: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ createChainedFunction) /* harmony export */ }); /** * Safe chained function. * * Will only create a new function if needed, * otherwise will pass back existing functions or null. */ function createChainedFunction() { for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) { funcs[_key] = arguments[_key]; } return funcs.reduce((acc, func) => { if (func == null) { return acc; } return function chainedFunction() { for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } acc.apply(this, args); func.apply(this, args); }; }, () => {}); } /***/ }), /***/ 9082: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ debounce) /* harmony export */ }); // Corresponds to 10 frames at 60 Hz. // A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B. function debounce(func) { let wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 166; let timeout; function debounced() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } const later = () => { // @ts-ignore func.apply(this, args); }; clearTimeout(timeout); timeout = setTimeout(later, wait); } debounced.clear = () => { clearTimeout(timeout); }; return debounced; } /***/ }), /***/ 8836: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ P: () => (/* binding */ isPlainObject), /* harmony export */ Z: () => (/* binding */ deepmerge) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1010); // https://github.com/sindresorhus/is-plain-obj/blob/main/index.js function isPlainObject(item) { if (typeof item !== 'object' || item === null) { return false; } const prototype = Object.getPrototypeOf(item); return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item); } function deepClone(source) { if (!isPlainObject(source)) { return source; } const output = {}; Object.keys(source).forEach(key => { output[key] = deepClone(source[key]); }); return output; } function deepmerge(target, source) { let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { clone: true }; const output = options.clone ? (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, target) : target; if (isPlainObject(target) && isPlainObject(source)) { Object.keys(source).forEach(key => { // Avoid prototype pollution if (key === '__proto__') { return; } if (isPlainObject(source[key]) && key in target && isPlainObject(target[key])) { // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type. output[key] = deepmerge(target[key], source[key], options); } else if (options.clone) { output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key]; } else { output[key] = source[key]; } }); } return output; } /***/ }), /***/ 9499: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* reexport safe */ _deepmerge__WEBPACK_IMPORTED_MODULE_0__.Z), /* harmony export */ isPlainObject: () => (/* reexport safe */ _deepmerge__WEBPACK_IMPORTED_MODULE_0__.P) /* harmony export */ }); /* harmony import */ var _deepmerge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8836); /***/ }), /***/ 4451: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ formatMuiErrorMessage) /* harmony export */ }); /** * WARNING: Don't import this directly. * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead. * @param {number} code */ function formatMuiErrorMessage(code) { // Apply babel-plugin-transform-template-literals in loose mode // loose mode is safe if we're concatenating primitives // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose /* eslint-disable prefer-template */ let url = 'https://mui.com/production-error/?code=' + code; for (let i = 1; i < arguments.length; i += 1) { // rest params over-transpile for this case // eslint-disable-next-line prefer-rest-params url += '&args[]=' + encodeURIComponent(arguments[i]); } return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.'; /* eslint-enable prefer-template */ } /***/ }), /***/ 3001: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* reexport safe */ _formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_0__.Z) /* harmony export */ }); /* harmony import */ var _formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4451); /***/ }), /***/ 8092: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ ZP: () => (/* binding */ generateUtilityClass) /* harmony export */ }); /* unused harmony exports globalStateClasses, isGlobalState */ /* harmony import */ var _ClassNameGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3705); const globalStateClasses = { active: 'active', checked: 'checked', completed: 'completed', disabled: 'disabled', error: 'error', expanded: 'expanded', focused: 'focused', focusVisible: 'focusVisible', open: 'open', readOnly: 'readOnly', required: 'required', selected: 'selected' }; function generateUtilityClass(componentName, slot) { let globalStatePrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Mui'; const globalStateClass = globalStateClasses[slot]; return globalStateClass ? "".concat(globalStatePrefix, "-").concat(globalStateClass) : "".concat(_ClassNameGenerator__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z.generate(componentName), "-").concat(slot); } function isGlobalState(slot) { return globalStateClasses[slot] !== undefined; } /***/ }), /***/ 3453: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ generateUtilityClasses) /* harmony export */ }); /* harmony import */ var _generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8092); function generateUtilityClasses(componentName, slots) { let globalStatePrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Mui'; const result = {}; slots.forEach(slot => { result[slot] = (0,_generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .ZP)(componentName, slot, globalStatePrefix); }); return result; } /***/ }), /***/ 8853: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "default": () => (/* reexport */ getDisplayName), getFunctionName: () => (/* reexport */ getFunctionName) }); // EXTERNAL MODULE: ./node_modules/.pnpm/react-is@18.2.0/node_modules/react-is/index.js var react_is = __webpack_require__(8890); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/getDisplayName/getDisplayName.js // Simplified polyfill for IE11 support // https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3 const fnNameMatchRegex = /^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/; function getFunctionName(fn) { const match = "".concat(fn).match(fnNameMatchRegex); const name = match && match[1]; return name || ''; } function getFunctionComponentName(Component) { let fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; return Component.displayName || Component.name || getFunctionName(Component) || fallback; } function getWrappedName(outerType, innerType, wrapperName) { const functionName = getFunctionComponentName(innerType); return outerType.displayName || (functionName !== '' ? "".concat(wrapperName, "(").concat(functionName, ")") : wrapperName); } /** * cherry-pick from * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js * originally forked from recompose/getDisplayName with added IE11 support */ function getDisplayName(Component) { if (Component == null) { return undefined; } if (typeof Component === 'string') { return Component; } if (typeof Component === 'function') { return getFunctionComponentName(Component, 'Component'); } // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense` if (typeof Component === 'object') { switch (Component.$$typeof) { case react_is.ForwardRef: return getWrappedName(Component, Component.render, 'ForwardRef'); case react_is.Memo: return getWrappedName(Component, Component.type, 'memo'); default: return undefined; } } return undefined; } ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/getDisplayName/index.js /***/ }), /***/ 1563: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ ownerDocument) /* harmony export */ }); function ownerDocument(node) { return node && node.ownerDocument || document; } /***/ }), /***/ 6029: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ ownerWindow) /* harmony export */ }); /* harmony import */ var _ownerDocument__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1563); function ownerWindow(node) { const doc = (0,_ownerDocument__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(node); return doc.defaultView || window; } /***/ }), /***/ 3928: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ resolveProps) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1010); /** * Add keys, values of `defaultProps` that does not exist in `props` * @param {object} defaultProps * @param {object} props * @returns {object} resolved props */ function resolveProps(defaultProps, props) { const output = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, props); Object.keys(defaultProps).forEach(propName => { if (propName.toString().match(/^(components|slots)$/)) { output[propName] = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, defaultProps[propName], output[propName]); } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) { const defaultSlotProps = defaultProps[propName] || {}; const slotProps = props[propName]; output[propName] = {}; if (!slotProps || !Object.keys(slotProps)) { // Reduce the iteration if the slot props is empty output[propName] = defaultSlotProps; } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) { // Reduce the iteration if the default slot props is empty output[propName] = slotProps; } else { output[propName] = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, slotProps); Object.keys(defaultSlotProps).forEach(slotPropName => { output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]); }); } } else if (output[propName] === undefined) { output[propName] = defaultProps[propName]; } }); return output; } /***/ }), /***/ 9109: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ setRef) /* harmony export */ }); /** * TODO v5: consider making it private * * passes {value} to {ref} * * WARNING: Be sure to only call this inside a callback that is passed as a ref. * Otherwise, make sure to cleanup the previous {ref} if it changes. See * https://github.com/mui/material-ui/issues/13539 * * Useful if you want to expose the ref of an inner component to the public API * while still using it inside the component. * @param ref A ref callback or ref object. If anything falsy, this is a no-op. */ function setRef(ref, value) { if (typeof ref === 'function') { ref(value); } else if (ref) { ref.current = value; } } /***/ }), /***/ 5143: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ useControlled) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948); 'use client'; /* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */ function useControlled(_ref) { let { controlled, default: defaultProp, name, state = 'value' } = _ref; // isControlled is ignored in the hook dependency lists as it should never change. const { current: isControlled } = react__WEBPACK_IMPORTED_MODULE_0__.useRef(controlled !== undefined); const [valueState, setValue] = react__WEBPACK_IMPORTED_MODULE_0__.useState(defaultProp); const value = isControlled ? controlled : valueState; if (false) {} const setValueIfUncontrolled = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(newValue => { if (!isControlled) { setValue(newValue); } }, []); return [value, setValueIfUncontrolled]; } /***/ }), /***/ 4536: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948); 'use client'; /** * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering. * This is useful for effects that are only needed for client-side rendering but not for SSR. * * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85 * and confirm it doesn't apply to your use-case. */ const useEnhancedEffect = typeof window !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useEnhancedEffect); /***/ }), /***/ 9210: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948); /* harmony import */ var _useEnhancedEffect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4536); 'use client'; /** * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892 * See RFC in https://github.com/reactjs/rfcs/pull/220 */ function useEventCallback(fn) { const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(fn); (0,_useEnhancedEffect__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(() => { ref.current = fn; }); return react__WEBPACK_IMPORTED_MODULE_0__.useRef(function () { return ( // @ts-expect-error hide `this` (0, ref.current)(...arguments) ); }).current; } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useEventCallback); /***/ }), /***/ 4114: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ useForkRef) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948); /* harmony import */ var _setRef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9109); 'use client'; function useForkRef() { for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) { refs[_key] = arguments[_key]; } /** * This will create a new function if the refs passed to this hook change and are all defined. * This means react will call the old forkRef with `null` and the new forkRef * with the ref. Cleanup naturally emerges from this behavior. */ return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { if (refs.every(ref => ref == null)) { return null; } return instance => { refs.forEach(ref => { (0,_setRef__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(ref, instance); }); }; // eslint-disable-next-line react-hooks/exhaustive-deps }, refs); } /***/ }), /***/ 2179: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; var react__WEBPACK_IMPORTED_MODULE_0___namespace_cache; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ useId) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948); 'use client'; let globalId = 0; function useGlobalId(idOverride) { const [defaultId, setDefaultId] = react__WEBPACK_IMPORTED_MODULE_0__.useState(idOverride); const id = idOverride || defaultId; react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { if (defaultId == null) { // Fallback to this default id when possible. // Use the incrementing value for client-side rendering only. // We can't use it server-side. // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem globalId += 1; setDefaultId("mui-".concat(globalId)); } }, [defaultId]); return id; } // downstream bundlers may remove unnecessary concatenation, but won't remove toString call -- Workaround for https://github.com/webpack/webpack/issues/14814 const maybeReactUseId = /*#__PURE__*/ (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(react__WEBPACK_IMPORTED_MODULE_0__, 2)))['useId'.toString()]; /** * * @example
* @param idOverride * @returns {string} */ function useId(idOverride) { if (maybeReactUseId !== undefined) { const reactId = maybeReactUseId(); return idOverride != null ? idOverride : reactId; } // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime. return useGlobalId(idOverride); } /***/ }), /***/ 3185: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ useIsFocusVisible) /* harmony export */ }); /* unused harmony export teardown */ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948); /* harmony import */ var _useTimeout_useTimeout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5859); 'use client'; // based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js let hadKeyboardEvent = true; let hadFocusVisibleRecently = false; const hadFocusVisibleRecentlyTimeout = new _useTimeout_useTimeout__WEBPACK_IMPORTED_MODULE_1__/* .Timeout */ .V(); const inputTypesWhitelist = { text: true, search: true, url: true, tel: true, email: true, password: true, number: true, date: true, month: true, week: true, time: true, datetime: true, 'datetime-local': true }; /** * Computes whether the given element should automatically trigger the * `focus-visible` class being added, i.e. whether it should always match * `:focus-visible` when focused. * @param {Element} node * @returns {boolean} */ function focusTriggersKeyboardModality(node) { const { type, tagName } = node; if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) { return true; } if (tagName === 'TEXTAREA' && !node.readOnly) { return true; } if (node.isContentEditable) { return true; } return false; } /** * Keep track of our keyboard modality state with `hadKeyboardEvent`. * If the most recent user interaction was via the keyboard; * and the key press did not include a meta, alt/option, or control key; * then the modality is keyboard. Otherwise, the modality is not keyboard. * @param {KeyboardEvent} event */ function handleKeyDown(event) { if (event.metaKey || event.altKey || event.ctrlKey) { return; } hadKeyboardEvent = true; } /** * If at any point a user clicks with a pointing device, ensure that we change * the modality away from keyboard. * This avoids the situation where a user presses a key on an already focused * element, and then clicks on a different element, focusing it with a * pointing device, while we still think we're in keyboard modality. */ function handlePointerDown() { hadKeyboardEvent = false; } function handleVisibilityChange() { if (this.visibilityState === 'hidden') { // If the tab becomes active again, the browser will handle calling focus // on the element (Safari actually calls it twice). // If this tab change caused a blur on an element with focus-visible, // re-apply the class when the user switches back to the tab. if (hadFocusVisibleRecently) { hadKeyboardEvent = true; } } } function prepare(doc) { doc.addEventListener('keydown', handleKeyDown, true); doc.addEventListener('mousedown', handlePointerDown, true); doc.addEventListener('pointerdown', handlePointerDown, true); doc.addEventListener('touchstart', handlePointerDown, true); doc.addEventListener('visibilitychange', handleVisibilityChange, true); } function teardown(doc) { doc.removeEventListener('keydown', handleKeyDown, true); doc.removeEventListener('mousedown', handlePointerDown, true); doc.removeEventListener('pointerdown', handlePointerDown, true); doc.removeEventListener('touchstart', handlePointerDown, true); doc.removeEventListener('visibilitychange', handleVisibilityChange, true); } function isFocusVisible(event) { const { target } = event; try { return target.matches(':focus-visible'); } catch (error) { // Browsers not implementing :focus-visible will throw a SyntaxError. // We use our own heuristic for those browsers. // Rethrow might be better if it's not the expected error but do we really // want to crash if focus-visible malfunctioned? } // No need for validFocusTarget check. The user does that by attaching it to // focusable events only. return hadKeyboardEvent || focusTriggersKeyboardModality(target); } function useIsFocusVisible() { const ref = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(node => { if (node != null) { prepare(node.ownerDocument); } }, []); const isFocusVisibleRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); /** * Should be called if a blur event is fired */ function handleBlurVisible() { // checking against potential state variable does not suffice if we focus and blur synchronously. // React wouldn't have time to trigger a re-render so `focusVisible` would be stale. // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events. // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751 // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186). if (isFocusVisibleRef.current) { // To detect a tab/window switch, we look for a blur event followed // rapidly by a visibility change. // If we don't see a visibility change within 100ms, it's probably a // regular focus change. hadFocusVisibleRecently = true; hadFocusVisibleRecentlyTimeout.start(100, () => { hadFocusVisibleRecently = false; }); isFocusVisibleRef.current = false; return true; } return false; } /** * Should be called if a blur event is fired */ function handleFocusVisible(event) { if (isFocusVisible(event)) { isFocusVisibleRef.current = true; return true; } return false; } return { isFocusVisibleRef, onFocus: handleFocusVisible, onBlur: handleBlurVisible, ref }; } /***/ }), /***/ 5794: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ useLazyRef) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948); 'use client'; const UNINITIALIZED = {}; /** * A React.useRef() that is initialized lazily with a function. Note that it accepts an optional * initialization argument, so the initialization function doesn't need to be an inline closure. * * @usage * const ref = useLazyRef(sortColumns, columns) */ function useLazyRef(init, initArg) { const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(UNINITIALIZED); if (ref.current === UNINITIALIZED) { ref.current = init(initArg); } return ref; } /***/ }), /***/ 2127: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: () => (/* binding */ useOnMount) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7948); 'use client'; const EMPTY = []; /** * A React.useEffect equivalent that runs once, when the component is mounted. */ function useOnMount(fn) { /* eslint-disable react-hooks/exhaustive-deps */ react__WEBPACK_IMPORTED_MODULE_0__.useEffect(fn, EMPTY); /* eslint-enable react-hooks/exhaustive-deps */ } /***/ }), /***/ 5859: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ V: () => (/* binding */ Timeout), /* harmony export */ Z: () => (/* binding */ useTimeout) /* harmony export */ }); /* harmony import */ var _useLazyRef_useLazyRef__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5794); /* harmony import */ var _useOnMount_useOnMount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2127); 'use client'; class Timeout { constructor() { this.currentId = null; this.clear = () => { if (this.currentId !== null) { clearTimeout(this.currentId); this.currentId = null; } }; this.disposeEffect = () => { return this.clear; }; } static create() { return new Timeout(); } /** * Executes `fn` after `delay`, clearing any previously scheduled call. */ start(delay, fn) { this.clear(); this.currentId = setTimeout(() => { this.currentId = null; fn(); }, delay); } } function useTimeout() { const timeout = (0,_useLazyRef_useLazyRef__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(Timeout.create).current; (0,_useOnMount_useOnMount__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(timeout.disposeEffect); return timeout; } /***/ }), /***/ 6501: /***/ (function(__unused_webpack_module, exports) { (function (global, factory) { true ? factory(exports) : 0; })(this, function (exports) { 'use strict'; // This file was generated. Do not modify manually! var 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, 370, 1, 81, 2, 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, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 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, 406, 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, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 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, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; // This file was generated. Do not modify manually! var 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, 68, 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, 71, 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, 349, 41, 7, 1, 79, 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, 159, 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, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 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, 757, 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, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191]; // This file was generated. Do not modify manually! var nonASCIIidentifierChars = "\u200c\u200d\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\u0898-\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-\u1ace\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"; // This file was generated. Do not modify manually! var 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-\u088e\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\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\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-\u1c88\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-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\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"; // These are a run-length and offset encoded representation of the // >0xffff code points that are a valid part of identifiers. The // offset starts at 0x10000, and each pair of numbers represents an // offset to the next range, and then a size of the range. // Reserved word lists for various dialects of the language var reservedWords = { 3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile", 5: "class enum extends super const export import", 6: "enum", strict: "implements interface let package private protected public static yield", strictBind: "eval arguments" }; // And the keywords var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"; var keywords$1 = { 5: ecma5AndLessKeywords, "5module": ecma5AndLessKeywords + " export import", 6: ecma5AndLessKeywords + " const class extends export import super" }; var keywordRelationalOperator = /^in(stanceof)?$/; // ## Character categories var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); // This has a complexity linear to the value of the code. The // assumption is that looking up astral identifier characters is // rare. function isInAstralSet(code, set) { var pos = 0x10000; for (var i = 0; i < set.length; i += 2) { pos += set[i]; if (pos > code) { return false; } pos += set[i + 1]; if (pos >= code) { return true; } } return false; } // Test whether a given character code starts an identifier. function isIdentifierStart(code, astral) { if (code < 65) { return code === 36; } if (code < 91) { return true; } if (code < 97) { return code === 95; } if (code < 123) { return true; } if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); } if (astral === false) { return false; } return isInAstralSet(code, astralIdentifierStartCodes); } // Test whether a given character is part of an identifier. function isIdentifierChar(code, astral) { if (code < 48) { return code === 36; } if (code < 58) { return true; } if (code < 65) { return false; } if (code < 91) { return true; } if (code < 97) { return code === 95; } if (code < 123) { return true; } if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); } if (astral === false) { return false; } return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); } // ## Token types // The assignment of fine-grained, information-carrying type objects // allows the tokenizer to store the information it has about a // token in a way that is very cheap for the parser to look up. // All token type variables start with an underscore, to make them // easy to recognize. // The `beforeExpr` property is used to disambiguate between regular // expressions and divisions. It is set on all token types that can // be followed by an expression (thus, a slash after them would be a // regular expression). // // The `startsExpr` property is used to check if the token ends a // `yield` expression. It is set on all token types that either can // directly start an expression (like a quotation mark) or can // continue an expression (like the body of a string). // // `isLoop` marks a keyword as starting a loop, which is important // to know when parsing a label, in order to allow or disallow // continue jumps to that label. var TokenType = function TokenType(label, conf) { if (conf === void 0) conf = {}; this.label = label; this.keyword = conf.keyword; this.beforeExpr = !!conf.beforeExpr; this.startsExpr = !!conf.startsExpr; this.isLoop = !!conf.isLoop; this.isAssign = !!conf.isAssign; this.prefix = !!conf.prefix; this.postfix = !!conf.postfix; this.binop = conf.binop || null; this.updateContext = null; }; function binop(name, prec) { return new TokenType(name, { beforeExpr: true, binop: prec }); } var beforeExpr = { beforeExpr: true }, startsExpr = { startsExpr: true }; // Map keyword names to token types. var keywords = {}; // Succinct definitions of keyword token types function kw(name, options) { if (options === void 0) options = {}; options.keyword = name; return keywords[name] = new TokenType(name, options); } var types$1 = { num: new TokenType("num", startsExpr), regexp: new TokenType("regexp", startsExpr), string: new TokenType("string", startsExpr), name: new TokenType("name", startsExpr), privateId: new TokenType("privateId", startsExpr), eof: new TokenType("eof"), // Punctuation token types. bracketL: new TokenType("[", { beforeExpr: true, startsExpr: true }), bracketR: new TokenType("]"), braceL: new TokenType("{", { beforeExpr: true, startsExpr: true }), braceR: new TokenType("}"), parenL: new TokenType("(", { beforeExpr: true, startsExpr: true }), parenR: new TokenType(")"), comma: new TokenType(",", beforeExpr), semi: new TokenType(";", beforeExpr), colon: new TokenType(":", beforeExpr), dot: new TokenType("."), question: new TokenType("?", beforeExpr), questionDot: new TokenType("?."), arrow: new TokenType("=>", beforeExpr), template: new TokenType("template"), invalidTemplate: new TokenType("invalidTemplate"), ellipsis: new TokenType("...", beforeExpr), backQuote: new TokenType("`", startsExpr), dollarBraceL: new TokenType("${", { beforeExpr: true, startsExpr: true }), // Operators. These carry several kinds of properties to help the // parser use them properly (the presence of these properties is // what categorizes them as operators). // // `binop`, when present, specifies that this operator is a binary // operator, and will refer to its precedence. // // `prefix` and `postfix` mark the operator as a prefix or postfix // unary operator. // // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as // binary operators with a very low precedence, that should result // in AssignmentExpression nodes. eq: new TokenType("=", { beforeExpr: true, isAssign: true }), assign: new TokenType("_=", { beforeExpr: true, isAssign: true }), incDec: new TokenType("++/--", { prefix: true, postfix: true, startsExpr: true }), prefix: new TokenType("!/~", { beforeExpr: true, prefix: true, startsExpr: true }), logicalOR: binop("||", 1), logicalAND: binop("&&", 2), bitwiseOR: binop("|", 3), bitwiseXOR: binop("^", 4), bitwiseAND: binop("&", 5), equality: binop("==/!=/===/!==", 6), relational: binop("/<=/>=", 7), bitShift: binop("<>/>>>", 8), plusMin: new TokenType("+/-", { beforeExpr: true, binop: 9, prefix: true, startsExpr: true }), modulo: binop("%", 10), star: binop("*", 10), slash: binop("/", 10), starstar: new TokenType("**", { beforeExpr: true }), coalesce: binop("??", 1), // Keyword token types. _break: kw("break"), _case: kw("case", beforeExpr), _catch: kw("catch"), _continue: kw("continue"), _debugger: kw("debugger"), _default: kw("default", beforeExpr), _do: kw("do", { isLoop: true, beforeExpr: true }), _else: kw("else", beforeExpr), _finally: kw("finally"), _for: kw("for", { isLoop: true }), _function: kw("function", startsExpr), _if: kw("if"), _return: kw("return", beforeExpr), _switch: kw("switch"), _throw: kw("throw", beforeExpr), _try: kw("try"), _var: kw("var"), _const: kw("const"), _while: kw("while", { isLoop: true }), _with: kw("with"), _new: kw("new", { beforeExpr: true, startsExpr: true }), _this: kw("this", startsExpr), _super: kw("super", startsExpr), _class: kw("class", startsExpr), _extends: kw("extends", beforeExpr), _export: kw("export"), _import: kw("import", startsExpr), _null: kw("null", startsExpr), _true: kw("true", startsExpr), _false: kw("false", startsExpr), _in: kw("in", { beforeExpr: true, binop: 7 }), _instanceof: kw("instanceof", { beforeExpr: true, binop: 7 }), _typeof: kw("typeof", { beforeExpr: true, prefix: true, startsExpr: true }), _void: kw("void", { beforeExpr: true, prefix: true, startsExpr: true }), _delete: kw("delete", { beforeExpr: true, prefix: true, startsExpr: true }) }; // Matches a whole line break (where CRLF is considered a single // line break). Used to count lines. var lineBreak = /\r\n?|\n|\u2028|\u2029/; var lineBreakG = new RegExp(lineBreak.source, "g"); function isNewLine(code) { return code === 10 || code === 13 || code === 0x2028 || code === 0x2029; } function nextLineBreak(code, from, end) { if (end === void 0) end = code.length; for (var i = from; i < end; i++) { var next = code.charCodeAt(i); if (isNewLine(next)) { return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1; } } return -1; } var nonASCIIwhitespace = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/; var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; var ref = Object.prototype; var hasOwnProperty = ref.hasOwnProperty; var toString = ref.toString; var hasOwn = Object.hasOwn || function (obj, propName) { return hasOwnProperty.call(obj, propName); }; var isArray = Array.isArray || function (obj) { return toString.call(obj) === "[object Array]"; }; var regexpCache = Object.create(null); function wordsRegexp(words) { return regexpCache[words] || (regexpCache[words] = new RegExp("^(?:" + words.replace(/ /g, "|") + ")$")); } function codePointToString(code) { // UTF-16 Decoding if (code <= 0xFFFF) { return String.fromCharCode(code); } code -= 0x10000; return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00); } var loneSurrogate = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/; // These are used when `options.locations` is on, for the // `startLoc` and `endLoc` properties. var Position = function Position(line, col) { this.line = line; this.column = col; }; Position.prototype.offset = function offset(n) { return new Position(this.line, this.column + n); }; var SourceLocation = function SourceLocation(p, start, end) { this.start = start; this.end = end; if (p.sourceFile !== null) { this.source = p.sourceFile; } }; // The `getLineInfo` function is mostly useful when the // `locations` option is off (for performance reasons) and you // want to find the line/column position for a given character // offset. `input` should be the code string that the offset refers // into. function getLineInfo(input, offset) { for (var line = 1, cur = 0;;) { var nextBreak = nextLineBreak(input, cur, offset); if (nextBreak < 0) { return new Position(line, offset - cur); } ++line; cur = nextBreak; } } // A second argument must be given to configure the parser process. // These options are recognized (only `ecmaVersion` is required): var defaultOptions = { // `ecmaVersion` indicates the ECMAScript version to parse. Must be // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10 // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `"latest"` // (the latest version the library supports). This influences // support for strict mode, the set of reserved words, and support // for new syntax features. ecmaVersion: null, // `sourceType` indicates the mode the code should be parsed in. // Can be either `"script"` or `"module"`. This influences global // strict mode and parsing of `import` and `export` declarations. sourceType: "script", // `onInsertedSemicolon` can be a callback that will be called when // a semicolon is automatically inserted. It will be passed the // position of the inserted semicolon as an offset, and if // `locations` is enabled, it is given the location as a `{line, // column}` object as second argument. onInsertedSemicolon: null, // `onTrailingComma` is similar to `onInsertedSemicolon`, but for // trailing commas. onTrailingComma: null, // By default, reserved words are only enforced if ecmaVersion >= 5. // Set `allowReserved` to a boolean value to explicitly turn this on // an off. When this option has the value "never", reserved words // and keywords can also not be used as property names. allowReserved: null, // When enabled, a return at the top level is not considered an // error. allowReturnOutsideFunction: false, // When enabled, import/export statements are not constrained to // appearing at the top of the program, and an import.meta expression // in a script isn't considered an error. allowImportExportEverywhere: false, // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022. // When enabled, await identifiers are allowed to appear at the top-level scope, // but they are still not allowed in non-async functions. allowAwaitOutsideFunction: null, // When enabled, super identifiers are not constrained to // appearing in methods and do not raise an error when they appear elsewhere. allowSuperOutsideMethod: null, // When enabled, hashbang directive in the beginning of file is // allowed and treated as a line comment. Enabled by default when // `ecmaVersion` >= 2023. allowHashBang: false, // By default, the parser will verify that private properties are // only used in places where they are valid and have been declared. // Set this to false to turn such checks off. checkPrivateFields: true, // When `locations` is on, `loc` properties holding objects with // `start` and `end` properties in `{line, column}` form (with // line being 1-based and column 0-based) will be attached to the // nodes. locations: false, // A function can be passed as `onToken` option, which will // cause Acorn to call that function with object in the same // format as tokens returned from `tokenizer().getToken()`. Note // that you are not allowed to call the parser from the // callback—that will corrupt its internal state. onToken: null, // A function can be passed as `onComment` option, which will // cause Acorn to call that function with `(block, text, start, // end)` parameters whenever a comment is skipped. `block` is a // boolean indicating whether this is a block (`/* */`) comment, // `text` is the content of the comment, and `start` and `end` are // character offsets that denote the start and end of the comment. // When the `locations` option is on, two more parameters are // passed, the full `{line, column}` locations of the start and // end of the comments. Note that you are not allowed to call the // parser from the callback—that will corrupt its internal state. // When this option has an array as value, objects representing the // comments are pushed to it. onComment: null, // Nodes have their start and end characters offsets recorded in // `start` and `end` properties (directly on the node, rather than // the `loc` object, which holds line/column data. To also add a // [semi-standardized][range] `range` property holding a `[start, // end]` array with the same numbers, set the `ranges` option to // `true`. // // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678 ranges: false, // It is possible to parse multiple files into a single AST by // passing the tree produced by parsing the first file as // `program` option in subsequent parses. This will add the // toplevel forms of the parsed file to the `Program` (top) node // of an existing parse tree. program: null, // When `locations` is on, you can pass this to record the source // file in every node's `loc` object. sourceFile: null, // This value, if given, is stored in every node, whether // `locations` is on or off. directSourceFile: null, // When enabled, parenthesized expressions are represented by // (non-standard) ParenthesizedExpression nodes preserveParens: false }; // Interpret and default an options object var warnedAboutEcmaVersion = false; function getOptions(opts) { var options = {}; for (var opt in defaultOptions) { options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; } if (options.ecmaVersion === "latest") { options.ecmaVersion = 1e8; } else if (options.ecmaVersion == null) { if (!warnedAboutEcmaVersion && typeof console === "object" && console.warn) { warnedAboutEcmaVersion = true; console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future."); } options.ecmaVersion = 11; } else if (options.ecmaVersion >= 2015) { options.ecmaVersion -= 2009; } if (options.allowReserved == null) { options.allowReserved = options.ecmaVersion < 5; } if (!opts || opts.allowHashBang == null) { options.allowHashBang = options.ecmaVersion >= 14; } if (isArray(options.onToken)) { var tokens = options.onToken; options.onToken = function (token) { return tokens.push(token); }; } if (isArray(options.onComment)) { options.onComment = pushComment(options, options.onComment); } return options; } function pushComment(options, array) { return function (block, text, start, end, startLoc, endLoc) { var comment = { type: block ? "Block" : "Line", value: text, start: start, end: end }; if (options.locations) { comment.loc = new SourceLocation(this, startLoc, endLoc); } if (options.ranges) { comment.range = [start, end]; } array.push(comment); }; } // Each scope gets a bitset that may contain these flags var SCOPE_TOP = 1, SCOPE_FUNCTION = 2, SCOPE_ASYNC = 4, SCOPE_GENERATOR = 8, SCOPE_ARROW = 16, SCOPE_SIMPLE_CATCH = 32, SCOPE_SUPER = 64, SCOPE_DIRECT_SUPER = 128, SCOPE_CLASS_STATIC_BLOCK = 256, SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK; function functionFlags(async, generator) { return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0); } // Used in checkLVal* and declareName to determine the type of a binding var BIND_NONE = 0, // Not a binding BIND_VAR = 1, // Var-style binding BIND_LEXICAL = 2, // Let- or const-style binding BIND_FUNCTION = 3, // Function declaration BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding BIND_OUTSIDE = 5; // Special case for function names as bound inside the function var Parser = function Parser(options, input, startPos) { this.options = options = getOptions(options); this.sourceFile = options.sourceFile; this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]); var reserved = ""; if (options.allowReserved !== true) { reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3]; if (options.sourceType === "module") { reserved += " await"; } } this.reservedWords = wordsRegexp(reserved); var reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict; this.reservedWordsStrict = wordsRegexp(reservedStrict); this.reservedWordsStrictBind = wordsRegexp(reservedStrict + " " + reservedWords.strictBind); this.input = String(input); // Used to signal to callers of `readWord1` whether the word // contained any escape sequences. This is needed because words with // escape sequences must not be interpreted as keywords. this.containsEsc = false; // Set up token state // The current position of the tokenizer in the input. if (startPos) { this.pos = startPos; this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1; this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length; } else { this.pos = this.lineStart = 0; this.curLine = 1; } // Properties of the current token: // Its type this.type = types$1.eof; // For tokens that include more information than their type, the value this.value = null; // Its start and end offset this.start = this.end = this.pos; // And, if locations are used, the {line, column} object // corresponding to those offsets this.startLoc = this.endLoc = this.curPosition(); // Position information for the previous token this.lastTokEndLoc = this.lastTokStartLoc = null; this.lastTokStart = this.lastTokEnd = this.pos; // The context stack is used to superficially track syntactic // context to predict whether a regular expression is allowed in a // given position. this.context = this.initialContext(); this.exprAllowed = true; // Figure out if it's a module code. this.inModule = options.sourceType === "module"; this.strict = this.inModule || this.strictDirective(this.pos); // Used to signify the start of a potential arrow function this.potentialArrowAt = -1; this.potentialArrowInForAwait = false; // Positions to delayed-check that yield/await does not exist in default parameters. this.yieldPos = this.awaitPos = this.awaitIdentPos = 0; // Labels in scope. this.labels = []; // Thus-far undefined exports. this.undefinedExports = Object.create(null); // If enabled, skip leading hashbang line. if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === "#!") { this.skipLineComment(2); } // Scope tracking for duplicate variable names (see scope.js) this.scopeStack = []; this.enterScope(SCOPE_TOP); // For RegExp validation this.regexpState = null; // The stack of private names. // Each element has two properties: 'declared' and 'used'. // When it exited from the outermost class definition, all used private names must be declared. this.privateNameStack = []; }; var prototypeAccessors = { inFunction: { configurable: true }, inGenerator: { configurable: true }, inAsync: { configurable: true }, canAwait: { configurable: true }, allowSuper: { configurable: true }, allowDirectSuper: { configurable: true }, treatFunctionsAsVar: { configurable: true }, allowNewDotTarget: { configurable: true }, inClassStaticBlock: { configurable: true } }; Parser.prototype.parse = function parse() { var node = this.options.program || this.startNode(); this.nextToken(); return this.parseTopLevel(node); }; prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0; }; prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit; }; prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit; }; prototypeAccessors.canAwait.get = function () { for (var i = this.scopeStack.length - 1; i >= 0; i--) { var scope = this.scopeStack[i]; if (scope.inClassFieldInit || scope.flags & SCOPE_CLASS_STATIC_BLOCK) { return false; } if (scope.flags & SCOPE_FUNCTION) { return (scope.flags & SCOPE_ASYNC) > 0; } } return this.inModule && this.options.ecmaVersion >= 13 || this.options.allowAwaitOutsideFunction; }; prototypeAccessors.allowSuper.get = function () { var ref = this.currentThisScope(); var flags = ref.flags; var inClassFieldInit = ref.inClassFieldInit; return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod; }; prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0; }; prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()); }; prototypeAccessors.allowNewDotTarget.get = function () { var ref = this.currentThisScope(); var flags = ref.flags; var inClassFieldInit = ref.inClassFieldInit; return (flags & (SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK)) > 0 || inClassFieldInit; }; prototypeAccessors.inClassStaticBlock.get = function () { return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0; }; Parser.extend = function extend() { var plugins = [], len = arguments.length; while (len--) plugins[len] = arguments[len]; var cls = this; for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); } return cls; }; Parser.parse = function parse(input, options) { return new this(options, input).parse(); }; Parser.parseExpressionAt = function parseExpressionAt(input, pos, options) { var parser = new this(options, input, pos); parser.nextToken(); return parser.parseExpression(); }; Parser.tokenizer = function tokenizer(input, options) { return new this(options, input); }; Object.defineProperties(Parser.prototype, prototypeAccessors); var pp$9 = Parser.prototype; // ## Parser utilities var literal = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/; pp$9.strictDirective = function (start) { if (this.options.ecmaVersion < 5) { return false; } for (;;) { // Try to find string literal. skipWhiteSpace.lastIndex = start; start += skipWhiteSpace.exec(this.input)[0].length; var match = literal.exec(this.input.slice(start)); if (!match) { return false; } if ((match[1] || match[2]) === "use strict") { skipWhiteSpace.lastIndex = start + match[0].length; var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length; var next = this.input.charAt(end); return next === ";" || next === "}" || lineBreak.test(spaceAfter[0]) && !(/[(`.[+\-/*%<>=,?^&]/.test(next) || next === "!" && this.input.charAt(end + 1) === "="); } start += match[0].length; // Skip semicolon, if any. skipWhiteSpace.lastIndex = start; start += skipWhiteSpace.exec(this.input)[0].length; if (this.input[start] === ";") { start++; } } }; // Predicate that tests whether the next token is of the given // type, and if yes, consumes it as a side effect. pp$9.eat = function (type) { if (this.type === type) { this.next(); return true; } else { return false; } }; // Tests whether parsed token is a contextual keyword. pp$9.isContextual = function (name) { return this.type === types$1.name && this.value === name && !this.containsEsc; }; // Consumes contextual keyword if possible. pp$9.eatContextual = function (name) { if (!this.isContextual(name)) { return false; } this.next(); return true; }; // Asserts that following token is given contextual keyword. pp$9.expectContextual = function (name) { if (!this.eatContextual(name)) { this.unexpected(); } }; // Test whether a semicolon can be inserted at the current position. pp$9.canInsertSemicolon = function () { return this.type === types$1.eof || this.type === types$1.braceR || lineBreak.test(this.input.slice(this.lastTokEnd, this.start)); }; pp$9.insertSemicolon = function () { if (this.canInsertSemicolon()) { if (this.options.onInsertedSemicolon) { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); } return true; } }; // Consume a semicolon, or, failing that, see if we are allowed to // pretend that there is a semicolon at this position. pp$9.semicolon = function () { if (!this.eat(types$1.semi) && !this.insertSemicolon()) { this.unexpected(); } }; pp$9.afterTrailingComma = function (tokType, notNext) { if (this.type === tokType) { if (this.options.onTrailingComma) { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); } if (!notNext) { this.next(); } return true; } }; // Expect a token of a given type. If found, consume it, otherwise, // raise an unexpected token error. pp$9.expect = function (type) { this.eat(type) || this.unexpected(); }; // Raise an unexpected token error. pp$9.unexpected = function (pos) { this.raise(pos != null ? pos : this.start, "Unexpected token"); }; var DestructuringErrors = function DestructuringErrors() { this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1; }; pp$9.checkPatternErrors = function (refDestructuringErrors, isAssign) { if (!refDestructuringErrors) { return; } if (refDestructuringErrors.trailingComma > -1) { this.raiseRecoverable(refDestructuringErrors.trailingComma, "Comma is not permitted after the rest element"); } var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind; if (parens > -1) { this.raiseRecoverable(parens, isAssign ? "Assigning to rvalue" : "Parenthesized pattern"); } }; pp$9.checkExpressionErrors = function (refDestructuringErrors, andThrow) { if (!refDestructuringErrors) { return false; } var shorthandAssign = refDestructuringErrors.shorthandAssign; var doubleProto = refDestructuringErrors.doubleProto; if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0; } if (shorthandAssign >= 0) { this.raise(shorthandAssign, "Shorthand property assignments are valid only in destructuring patterns"); } if (doubleProto >= 0) { this.raiseRecoverable(doubleProto, "Redefinition of __proto__ property"); } }; pp$9.checkYieldAwaitInDefaultParams = function () { if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos)) { this.raise(this.yieldPos, "Yield expression cannot be a default value"); } if (this.awaitPos) { this.raise(this.awaitPos, "Await expression cannot be a default value"); } }; pp$9.isSimpleAssignTarget = function (expr) { if (expr.type === "ParenthesizedExpression") { return this.isSimpleAssignTarget(expr.expression); } return expr.type === "Identifier" || expr.type === "MemberExpression"; }; var pp$8 = Parser.prototype; // ### Statement parsing // Parse a program. Initializes the parser, reads any number of // statements, and wraps them in a Program node. Optionally takes a // `program` argument. If present, the statements will be appended // to its body instead of creating a new node. pp$8.parseTopLevel = function (node) { var exports = Object.create(null); if (!node.body) { node.body = []; } while (this.type !== types$1.eof) { var stmt = this.parseStatement(null, true, exports); node.body.push(stmt); } if (this.inModule) { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1) { var name = list[i]; this.raiseRecoverable(this.undefinedExports[name].start, "Export '" + name + "' is not defined"); } } this.adaptDirectivePrologue(node.body); this.next(); node.sourceType = this.options.sourceType; return this.finishNode(node, "Program"); }; var loopLabel = { kind: "loop" }, switchLabel = { kind: "switch" }; pp$8.isLet = function (context) { if (this.options.ecmaVersion < 6 || !this.isContextual("let")) { return false; } skipWhiteSpace.lastIndex = this.pos; var skip = skipWhiteSpace.exec(this.input); var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); // For ambiguous cases, determine if a LexicalDeclaration (or only a // Statement) is allowed here. If context is not empty then only a Statement // is allowed. However, `let [` is an explicit negative lookahead for // ExpressionStatement, so special-case it first. if (nextCh === 91 || nextCh === 92) { return true; } // '[', '/' if (context) { return false; } if (nextCh === 123 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true; } // '{', astral if (isIdentifierStart(nextCh, true)) { var pos = next + 1; while (isIdentifierChar(nextCh = this.input.charCodeAt(pos), true)) { ++pos; } if (nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true; } var ident = this.input.slice(next, pos); if (!keywordRelationalOperator.test(ident)) { return true; } } return false; }; // check 'async [no LineTerminator here] function' // - 'async /*foo*/ function' is OK. // - 'async /*\n*/ function' is invalid. pp$8.isAsyncFunction = function () { if (this.options.ecmaVersion < 8 || !this.isContextual("async")) { return false; } skipWhiteSpace.lastIndex = this.pos; var skip = skipWhiteSpace.exec(this.input); var next = this.pos + skip[0].length, after; return !lineBreak.test(this.input.slice(this.pos, next)) && this.input.slice(next, next + 8) === "function" && (next + 8 === this.input.length || !(isIdentifierChar(after = this.input.charCodeAt(next + 8)) || after > 0xd7ff && after < 0xdc00)); }; // Parse a single statement. // // If expecting a statement and finding a slash operator, parse a // regular expression literal. This is to handle cases like // `if (foo) /blah/.exec(foo)`, where looking at the previous token // does not help. pp$8.parseStatement = function (context, topLevel, exports) { var starttype = this.type, node = this.startNode(), kind; if (this.isLet(context)) { starttype = types$1._var; kind = "let"; } // Most types of statements are recognized by the keyword they // start with. Many are trivial to parse, some require a bit of // complexity. switch (starttype) { case types$1._break: case types$1._continue: return this.parseBreakContinueStatement(node, starttype.keyword); case types$1._debugger: return this.parseDebuggerStatement(node); case types$1._do: return this.parseDoStatement(node); case types$1._for: return this.parseForStatement(node); case types$1._function: // Function as sole body of either an if statement or a labeled statement // works, but not when it is part of a labeled statement that is the sole // body of an if statement. if (context && (this.strict || context !== "if" && context !== "label") && this.options.ecmaVersion >= 6) { this.unexpected(); } return this.parseFunctionStatement(node, false, !context); case types$1._class: if (context) { this.unexpected(); } return this.parseClass(node, true); case types$1._if: return this.parseIfStatement(node); case types$1._return: return this.parseReturnStatement(node); case types$1._switch: return this.parseSwitchStatement(node); case types$1._throw: return this.parseThrowStatement(node); case types$1._try: return this.parseTryStatement(node); case types$1._const: case types$1._var: kind = kind || this.value; if (context && kind !== "var") { this.unexpected(); } return this.parseVarStatement(node, kind); case types$1._while: return this.parseWhileStatement(node); case types$1._with: return this.parseWithStatement(node); case types$1.braceL: return this.parseBlock(true, node); case types$1.semi: return this.parseEmptyStatement(node); case types$1._export: case types$1._import: if (this.options.ecmaVersion > 10 && starttype === types$1._import) { skipWhiteSpace.lastIndex = this.pos; var skip = skipWhiteSpace.exec(this.input); var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); if (nextCh === 40 || nextCh === 46) // '(' or '.' { return this.parseExpressionStatement(node, this.parseExpression()); } } if (!this.options.allowImportExportEverywhere) { if (!topLevel) { this.raise(this.start, "'import' and 'export' may only appear at the top level"); } if (!this.inModule) { this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); } } return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports); // If the statement does not start with a statement keyword or a // brace, it's an ExpressionStatement or LabeledStatement. We // simply start parsing an expression, and afterwards, if the // next token is a colon and the expression was a simple // Identifier node, we switch to interpreting it as a label. default: if (this.isAsyncFunction()) { if (context) { this.unexpected(); } this.next(); return this.parseFunctionStatement(node, true, !context); } var maybeName = this.value, expr = this.parseExpression(); if (starttype === types$1.name && expr.type === "Identifier" && this.eat(types$1.colon)) { return this.parseLabeledStatement(node, maybeName, expr, context); } else { return this.parseExpressionStatement(node, expr); } } }; pp$8.parseBreakContinueStatement = function (node, keyword) { var isBreak = keyword === "break"; this.next(); if (this.eat(types$1.semi) || this.insertSemicolon()) { node.label = null; } else if (this.type !== types$1.name) { this.unexpected(); } else { node.label = this.parseIdent(); this.semicolon(); } // Verify that there is an actual destination to break or // continue to. var i = 0; for (; i < this.labels.length; ++i) { var lab = this.labels[i]; if (node.label == null || lab.name === node.label.name) { if (lab.kind != null && (isBreak || lab.kind === "loop")) { break; } if (node.label && isBreak) { break; } } } if (i === this.labels.length) { this.raise(node.start, "Unsyntactic " + keyword); } return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement"); }; pp$8.parseDebuggerStatement = function (node) { this.next(); this.semicolon(); return this.finishNode(node, "DebuggerStatement"); }; pp$8.parseDoStatement = function (node) { this.next(); this.labels.push(loopLabel); node.body = this.parseStatement("do"); this.labels.pop(); this.expect(types$1._while); node.test = this.parseParenExpression(); if (this.options.ecmaVersion >= 6) { this.eat(types$1.semi); } else { this.semicolon(); } return this.finishNode(node, "DoWhileStatement"); }; // Disambiguating between a `for` and a `for`/`in` or `for`/`of` // loop is non-trivial. Basically, we have to parse the init `var` // statement or expression, disallowing the `in` operator (see // the second parameter to `parseExpression`), and then check // whether the next token is `in` or `of`. When there is no init // part (semicolon immediately after the opening parenthesis), it // is a regular `for` loop. pp$8.parseForStatement = function (node) { this.next(); var awaitAt = this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await") ? this.lastTokStart : -1; this.labels.push(loopLabel); this.enterScope(0); this.expect(types$1.parenL); if (this.type === types$1.semi) { if (awaitAt > -1) { this.unexpected(awaitAt); } return this.parseFor(node, null); } var isLet = this.isLet(); if (this.type === types$1._var || this.type === types$1._const || isLet) { var init$1 = this.startNode(), kind = isLet ? "let" : this.value; this.next(); this.parseVar(init$1, true, kind); this.finishNode(init$1, "VariableDeclaration"); if ((this.type === types$1._in || this.options.ecmaVersion >= 6 && this.isContextual("of")) && init$1.declarations.length === 1) { if (this.options.ecmaVersion >= 9) { if (this.type === types$1._in) { if (awaitAt > -1) { this.unexpected(awaitAt); } } else { node.await = awaitAt > -1; } } return this.parseForIn(node, init$1); } if (awaitAt > -1) { this.unexpected(awaitAt); } return this.parseFor(node, init$1); } var startsWithLet = this.isContextual("let"), isForOf = false; var refDestructuringErrors = new DestructuringErrors(); var init = this.parseExpression(awaitAt > -1 ? "await" : true, refDestructuringErrors); if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) { if (this.options.ecmaVersion >= 9) { if (this.type === types$1._in) { if (awaitAt > -1) { this.unexpected(awaitAt); } } else { node.await = awaitAt > -1; } } if (startsWithLet && isForOf) { this.raise(init.start, "The left-hand side of a for-of loop may not start with 'let'."); } this.toAssignable(init, false, refDestructuringErrors); this.checkLValPattern(init); return this.parseForIn(node, init); } else { this.checkExpressionErrors(refDestructuringErrors, true); } if (awaitAt > -1) { this.unexpected(awaitAt); } return this.parseFor(node, init); }; pp$8.parseFunctionStatement = function (node, isAsync, declarationPosition) { this.next(); return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync); }; pp$8.parseIfStatement = function (node) { this.next(); node.test = this.parseParenExpression(); // allow function declarations in branches, but only in non-strict mode node.consequent = this.parseStatement("if"); node.alternate = this.eat(types$1._else) ? this.parseStatement("if") : null; return this.finishNode(node, "IfStatement"); }; pp$8.parseReturnStatement = function (node) { if (!this.inFunction && !this.options.allowReturnOutsideFunction) { this.raise(this.start, "'return' outside of function"); } this.next(); // In `return` (and `break`/`continue`), the keywords with // optional arguments, we eagerly look for a semicolon or the // possibility to insert one. if (this.eat(types$1.semi) || this.insertSemicolon()) { node.argument = null; } else { node.argument = this.parseExpression(); this.semicolon(); } return this.finishNode(node, "ReturnStatement"); }; pp$8.parseSwitchStatement = function (node) { this.next(); node.discriminant = this.parseParenExpression(); node.cases = []; this.expect(types$1.braceL); this.labels.push(switchLabel); this.enterScope(0); // Statements under must be grouped (by label) in SwitchCase // nodes. `cur` is used to keep the node that we are currently // adding statements to. var cur; for (var sawDefault = false; this.type !== types$1.braceR;) { if (this.type === types$1._case || this.type === types$1._default) { var isCase = this.type === types$1._case; if (cur) { this.finishNode(cur, "SwitchCase"); } node.cases.push(cur = this.startNode()); cur.consequent = []; this.next(); if (isCase) { cur.test = this.parseExpression(); } else { if (sawDefault) { this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"); } sawDefault = true; cur.test = null; } this.expect(types$1.colon); } else { if (!cur) { this.unexpected(); } cur.consequent.push(this.parseStatement(null)); } } this.exitScope(); if (cur) { this.finishNode(cur, "SwitchCase"); } this.next(); // Closing brace this.labels.pop(); return this.finishNode(node, "SwitchStatement"); }; pp$8.parseThrowStatement = function (node) { this.next(); if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) { this.raise(this.lastTokEnd, "Illegal newline after throw"); } node.argument = this.parseExpression(); this.semicolon(); return this.finishNode(node, "ThrowStatement"); }; // Reused empty array added for node fields that are always empty. var empty$1 = []; pp$8.parseCatchClauseParam = function () { var param = this.parseBindingAtom(); var simple = param.type === "Identifier"; this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0); this.checkLValPattern(param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL); this.expect(types$1.parenR); return param; }; pp$8.parseTryStatement = function (node) { this.next(); node.block = this.parseBlock(); node.handler = null; if (this.type === types$1._catch) { var clause = this.startNode(); this.next(); if (this.eat(types$1.parenL)) { clause.param = this.parseCatchClauseParam(); } else { if (this.options.ecmaVersion < 10) { this.unexpected(); } clause.param = null; this.enterScope(0); } clause.body = this.parseBlock(false); this.exitScope(); node.handler = this.finishNode(clause, "CatchClause"); } node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null; if (!node.handler && !node.finalizer) { this.raise(node.start, "Missing catch or finally clause"); } return this.finishNode(node, "TryStatement"); }; pp$8.parseVarStatement = function (node, kind, allowMissingInitializer) { this.next(); this.parseVar(node, false, kind, allowMissingInitializer); this.semicolon(); return this.finishNode(node, "VariableDeclaration"); }; pp$8.parseWhileStatement = function (node) { this.next(); node.test = this.parseParenExpression(); this.labels.push(loopLabel); node.body = this.parseStatement("while"); this.labels.pop(); return this.finishNode(node, "WhileStatement"); }; pp$8.parseWithStatement = function (node) { if (this.strict) { this.raise(this.start, "'with' in strict mode"); } this.next(); node.object = this.parseParenExpression(); node.body = this.parseStatement("with"); return this.finishNode(node, "WithStatement"); }; pp$8.parseEmptyStatement = function (node) { this.next(); return this.finishNode(node, "EmptyStatement"); }; pp$8.parseLabeledStatement = function (node, maybeName, expr, context) { for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1) { var label = list[i$1]; if (label.name === maybeName) { this.raise(expr.start, "Label '" + maybeName + "' is already declared"); } } var kind = this.type.isLoop ? "loop" : this.type === types$1._switch ? "switch" : null; for (var i = this.labels.length - 1; i >= 0; i--) { var label$1 = this.labels[i]; if (label$1.statementStart === node.start) { // Update information about previous labels on this node label$1.statementStart = this.start; label$1.kind = kind; } else { break; } } this.labels.push({ name: maybeName, kind: kind, statementStart: this.start }); node.body = this.parseStatement(context ? context.indexOf("label") === -1 ? context + "label" : context : "label"); this.labels.pop(); node.label = expr; return this.finishNode(node, "LabeledStatement"); }; pp$8.parseExpressionStatement = function (node, expr) { node.expression = expr; this.semicolon(); return this.finishNode(node, "ExpressionStatement"); }; // Parse a semicolon-enclosed block of statements, handling `"use // strict"` declarations when `allowStrict` is true (used for // function bodies). pp$8.parseBlock = function (createNewLexicalScope, node, exitStrict) { if (createNewLexicalScope === void 0) createNewLexicalScope = true; if (node === void 0) node = this.startNode(); node.body = []; this.expect(types$1.braceL); if (createNewLexicalScope) { this.enterScope(0); } while (this.type !== types$1.braceR) { var stmt = this.parseStatement(null); node.body.push(stmt); } if (exitStrict) { this.strict = false; } this.next(); if (createNewLexicalScope) { this.exitScope(); } return this.finishNode(node, "BlockStatement"); }; // Parse a regular `for` loop. The disambiguation code in // `parseStatement` will already have parsed the init statement or // expression. pp$8.parseFor = function (node, init) { node.init = init; this.expect(types$1.semi); node.test = this.type === types$1.semi ? null : this.parseExpression(); this.expect(types$1.semi); node.update = this.type === types$1.parenR ? null : this.parseExpression(); this.expect(types$1.parenR); node.body = this.parseStatement("for"); this.exitScope(); this.labels.pop(); return this.finishNode(node, "ForStatement"); }; // Parse a `for`/`in` and `for`/`of` loop, which are almost // same from parser's perspective. pp$8.parseForIn = function (node, init) { var isForIn = this.type === types$1._in; this.next(); if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || this.options.ecmaVersion < 8 || this.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) { this.raise(init.start, (isForIn ? "for-in" : "for-of") + " loop variable declaration may not have an initializer"); } node.left = init; node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign(); this.expect(types$1.parenR); node.body = this.parseStatement("for"); this.exitScope(); this.labels.pop(); return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement"); }; // Parse a list of variable declarations. pp$8.parseVar = function (node, isFor, kind, allowMissingInitializer) { node.declarations = []; node.kind = kind; for (;;) { var decl = this.startNode(); this.parseVarId(decl, kind); if (this.eat(types$1.eq)) { decl.init = this.parseMaybeAssign(isFor); } else if (!allowMissingInitializer && kind === "const" && !(this.type === types$1._in || this.options.ecmaVersion >= 6 && this.isContextual("of"))) { this.unexpected(); } else if (!allowMissingInitializer && decl.id.type !== "Identifier" && !(isFor && (this.type === types$1._in || this.isContextual("of")))) { this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value"); } else { decl.init = null; } node.declarations.push(this.finishNode(decl, "VariableDeclarator")); if (!this.eat(types$1.comma)) { break; } } return node; }; pp$8.parseVarId = function (decl, kind) { decl.id = this.parseBindingAtom(); this.checkLValPattern(decl.id, kind === "var" ? BIND_VAR : BIND_LEXICAL, false); }; var FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4; // Parse a function declaration or literal (depending on the // `statement & FUNC_STATEMENT`). // Remove `allowExpressionBody` for 7.0.0, as it is only called with false pp$8.parseFunction = function (node, statement, allowExpressionBody, isAsync, forInit) { this.initFunction(node); if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) { if (this.type === types$1.star && statement & FUNC_HANGING_STATEMENT) { this.unexpected(); } node.generator = this.eat(types$1.star); } if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; } if (statement & FUNC_STATEMENT) { node.id = statement & FUNC_NULLABLE_ID && this.type !== types$1.name ? null : this.parseIdent(); if (node.id && !(statement & FUNC_HANGING_STATEMENT)) // If it is a regular function declaration in sloppy mode, then it is // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding // mode depends on properties of the current scope (see // treatFunctionsAsVar). { this.checkLValSimple(node.id, this.strict || node.generator || node.async ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); } } var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; this.yieldPos = 0; this.awaitPos = 0; this.awaitIdentPos = 0; this.enterScope(functionFlags(node.async, node.generator)); if (!(statement & FUNC_STATEMENT)) { node.id = this.type === types$1.name ? this.parseIdent() : null; } this.parseFunctionParams(node); this.parseFunctionBody(node, allowExpressionBody, false, forInit); this.yieldPos = oldYieldPos; this.awaitPos = oldAwaitPos; this.awaitIdentPos = oldAwaitIdentPos; return this.finishNode(node, statement & FUNC_STATEMENT ? "FunctionDeclaration" : "FunctionExpression"); }; pp$8.parseFunctionParams = function (node) { this.expect(types$1.parenL); node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8); this.checkYieldAwaitInDefaultParams(); }; // Parse a class declaration or literal (depending on the // `isStatement` parameter). pp$8.parseClass = function (node, isStatement) { this.next(); // ecma-262 14.6 Class Definitions // A class definition is always strict mode code. var oldStrict = this.strict; this.strict = true; this.parseClassId(node, isStatement); this.parseClassSuper(node); var privateNameMap = this.enterClassBody(); var classBody = this.startNode(); var hadConstructor = false; classBody.body = []; this.expect(types$1.braceL); while (this.type !== types$1.braceR) { var element = this.parseClassElement(node.superClass !== null); if (element) { classBody.body.push(element); if (element.type === "MethodDefinition" && element.kind === "constructor") { if (hadConstructor) { this.raiseRecoverable(element.start, "Duplicate constructor in the same class"); } hadConstructor = true; } else if (element.key && element.key.type === "PrivateIdentifier" && isPrivateNameConflicted(privateNameMap, element)) { this.raiseRecoverable(element.key.start, "Identifier '#" + element.key.name + "' has already been declared"); } } } this.strict = oldStrict; this.next(); node.body = this.finishNode(classBody, "ClassBody"); this.exitClassBody(); return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); }; pp$8.parseClassElement = function (constructorAllowsSuper) { if (this.eat(types$1.semi)) { return null; } var ecmaVersion = this.options.ecmaVersion; var node = this.startNode(); var keyName = ""; var isGenerator = false; var isAsync = false; var kind = "method"; var isStatic = false; if (this.eatContextual("static")) { // Parse static init block if (ecmaVersion >= 13 && this.eat(types$1.braceL)) { this.parseClassStaticBlock(node); return node; } if (this.isClassElementNameStart() || this.type === types$1.star) { isStatic = true; } else { keyName = "static"; } } node.static = isStatic; if (!keyName && ecmaVersion >= 8 && this.eatContextual("async")) { if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) { isAsync = true; } else { keyName = "async"; } } if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) { isGenerator = true; } if (!keyName && !isAsync && !isGenerator) { var lastValue = this.value; if (this.eatContextual("get") || this.eatContextual("set")) { if (this.isClassElementNameStart()) { kind = lastValue; } else { keyName = lastValue; } } } // Parse element name if (keyName) { // 'async', 'get', 'set', or 'static' were not a keyword contextually. // The last token is any of those. Make it the element name. node.computed = false; node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc); node.key.name = keyName; this.finishNode(node.key, "Identifier"); } else { this.parseClassElementName(node); } // Parse element value if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== "method" || isGenerator || isAsync) { var isConstructor = !node.static && checkKeyName(node, "constructor"); var allowsDirectSuper = isConstructor && constructorAllowsSuper; // Couldn't move this check into the 'parseClassMethod' method for backward compatibility. if (isConstructor && kind !== "method") { this.raise(node.key.start, "Constructor can't have get/set modifier"); } node.kind = isConstructor ? "constructor" : kind; this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper); } else { this.parseClassField(node); } return node; }; pp$8.isClassElementNameStart = function () { return this.type === types$1.name || this.type === types$1.privateId || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword; }; pp$8.parseClassElementName = function (element) { if (this.type === types$1.privateId) { if (this.value === "constructor") { this.raise(this.start, "Classes can't have an element named '#constructor'"); } element.computed = false; element.key = this.parsePrivateIdent(); } else { this.parsePropertyName(element); } }; pp$8.parseClassMethod = function (method, isGenerator, isAsync, allowsDirectSuper) { // Check key and flags var key = method.key; if (method.kind === "constructor") { if (isGenerator) { this.raise(key.start, "Constructor can't be a generator"); } if (isAsync) { this.raise(key.start, "Constructor can't be an async method"); } } else if (method.static && checkKeyName(method, "prototype")) { this.raise(key.start, "Classes may not have a static property named prototype"); } // Parse value var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper); // Check value if (method.kind === "get" && value.params.length !== 0) { this.raiseRecoverable(value.start, "getter should have no params"); } if (method.kind === "set" && value.params.length !== 1) { this.raiseRecoverable(value.start, "setter should have exactly one param"); } if (method.kind === "set" && value.params[0].type === "RestElement") { this.raiseRecoverable(value.params[0].start, "Setter cannot use rest params"); } return this.finishNode(method, "MethodDefinition"); }; pp$8.parseClassField = function (field) { if (checkKeyName(field, "constructor")) { this.raise(field.key.start, "Classes can't have a field named 'constructor'"); } else if (field.static && checkKeyName(field, "prototype")) { this.raise(field.key.start, "Classes can't have a static field named 'prototype'"); } if (this.eat(types$1.eq)) { // To raise SyntaxError if 'arguments' exists in the initializer. var scope = this.currentThisScope(); var inClassFieldInit = scope.inClassFieldInit; scope.inClassFieldInit = true; field.value = this.parseMaybeAssign(); scope.inClassFieldInit = inClassFieldInit; } else { field.value = null; } this.semicolon(); return this.finishNode(field, "PropertyDefinition"); }; pp$8.parseClassStaticBlock = function (node) { node.body = []; var oldLabels = this.labels; this.labels = []; this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER); while (this.type !== types$1.braceR) { var stmt = this.parseStatement(null); node.body.push(stmt); } this.next(); this.exitScope(); this.labels = oldLabels; return this.finishNode(node, "StaticBlock"); }; pp$8.parseClassId = function (node, isStatement) { if (this.type === types$1.name) { node.id = this.parseIdent(); if (isStatement) { this.checkLValSimple(node.id, BIND_LEXICAL, false); } } else { if (isStatement === true) { this.unexpected(); } node.id = null; } }; pp$8.parseClassSuper = function (node) { node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(null, false) : null; }; pp$8.enterClassBody = function () { var element = { declared: Object.create(null), used: [] }; this.privateNameStack.push(element); return element.declared; }; pp$8.exitClassBody = function () { var ref = this.privateNameStack.pop(); var declared = ref.declared; var used = ref.used; if (!this.options.checkPrivateFields) { return; } var len = this.privateNameStack.length; var parent = len === 0 ? null : this.privateNameStack[len - 1]; for (var i = 0; i < used.length; ++i) { var id = used[i]; if (!hasOwn(declared, id.name)) { if (parent) { parent.used.push(id); } else { this.raiseRecoverable(id.start, "Private field '#" + id.name + "' must be declared in an enclosing class"); } } } }; function isPrivateNameConflicted(privateNameMap, element) { var name = element.key.name; var curr = privateNameMap[name]; var next = "true"; if (element.type === "MethodDefinition" && (element.kind === "get" || element.kind === "set")) { next = (element.static ? "s" : "i") + element.kind; } // `class { get #a(){}; static set #a(_){} }` is also conflict. if (curr === "iget" && next === "iset" || curr === "iset" && next === "iget" || curr === "sget" && next === "sset" || curr === "sset" && next === "sget") { privateNameMap[name] = "true"; return false; } else if (!curr) { privateNameMap[name] = next; return false; } else { return true; } } function checkKeyName(node, name) { var computed = node.computed; var key = node.key; return !computed && (key.type === "Identifier" && key.name === name || key.type === "Literal" && key.value === name); } // Parses module export declaration. pp$8.parseExportAllDeclaration = function (node, exports) { if (this.options.ecmaVersion >= 11) { if (this.eatContextual("as")) { node.exported = this.parseModuleExportName(); this.checkExport(exports, node.exported, this.lastTokStart); } else { node.exported = null; } } this.expectContextual("from"); if (this.type !== types$1.string) { this.unexpected(); } node.source = this.parseExprAtom(); this.semicolon(); return this.finishNode(node, "ExportAllDeclaration"); }; pp$8.parseExport = function (node, exports) { this.next(); // export * from '...' if (this.eat(types$1.star)) { return this.parseExportAllDeclaration(node, exports); } if (this.eat(types$1._default)) { // export default ... this.checkExport(exports, "default", this.lastTokStart); node.declaration = this.parseExportDefaultDeclaration(); return this.finishNode(node, "ExportDefaultDeclaration"); } // export var|const|let|function|class ... if (this.shouldParseExportStatement()) { node.declaration = this.parseExportDeclaration(node); if (node.declaration.type === "VariableDeclaration") { this.checkVariableExport(exports, node.declaration.declarations); } else { this.checkExport(exports, node.declaration.id, node.declaration.id.start); } node.specifiers = []; node.source = null; } else { // export { x, y as z } [from '...'] node.declaration = null; node.specifiers = this.parseExportSpecifiers(exports); if (this.eatContextual("from")) { if (this.type !== types$1.string) { this.unexpected(); } node.source = this.parseExprAtom(); } else { for (var i = 0, list = node.specifiers; i < list.length; i += 1) { // check for keywords used as local names var spec = list[i]; this.checkUnreserved(spec.local); // check if export is defined this.checkLocalExport(spec.local); if (spec.local.type === "Literal") { this.raise(spec.local.start, "A string literal cannot be used as an exported binding without `from`."); } } node.source = null; } this.semicolon(); } return this.finishNode(node, "ExportNamedDeclaration"); }; pp$8.parseExportDeclaration = function (node) { return this.parseStatement(null); }; pp$8.parseExportDefaultDeclaration = function () { var isAsync; if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) { var fNode = this.startNode(); this.next(); if (isAsync) { this.next(); } return this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync); } else if (this.type === types$1._class) { var cNode = this.startNode(); return this.parseClass(cNode, "nullableID"); } else { var declaration = this.parseMaybeAssign(); this.semicolon(); return declaration; } }; pp$8.checkExport = function (exports, name, pos) { if (!exports) { return; } if (typeof name !== "string") { name = name.type === "Identifier" ? name.name : name.value; } if (hasOwn(exports, name)) { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); } exports[name] = true; }; pp$8.checkPatternExport = function (exports, pat) { var type = pat.type; if (type === "Identifier") { this.checkExport(exports, pat, pat.start); } else if (type === "ObjectPattern") { for (var i = 0, list = pat.properties; i < list.length; i += 1) { var prop = list[i]; this.checkPatternExport(exports, prop); } } else if (type === "ArrayPattern") { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) { var elt = list$1[i$1]; if (elt) { this.checkPatternExport(exports, elt); } } } else if (type === "Property") { this.checkPatternExport(exports, pat.value); } else if (type === "AssignmentPattern") { this.checkPatternExport(exports, pat.left); } else if (type === "RestElement") { this.checkPatternExport(exports, pat.argument); } }; pp$8.checkVariableExport = function (exports, decls) { if (!exports) { return; } for (var i = 0, list = decls; i < list.length; i += 1) { var decl = list[i]; this.checkPatternExport(exports, decl.id); } }; pp$8.shouldParseExportStatement = function () { return this.type.keyword === "var" || this.type.keyword === "const" || this.type.keyword === "class" || this.type.keyword === "function" || this.isLet() || this.isAsyncFunction(); }; // Parses a comma-separated list of module exports. pp$8.parseExportSpecifier = function (exports) { var node = this.startNode(); node.local = this.parseModuleExportName(); node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local; this.checkExport(exports, node.exported, node.exported.start); return this.finishNode(node, "ExportSpecifier"); }; pp$8.parseExportSpecifiers = function (exports) { var nodes = [], first = true; // export { x, y as z } [from '...'] this.expect(types$1.braceL); while (!this.eat(types$1.braceR)) { if (!first) { this.expect(types$1.comma); if (this.afterTrailingComma(types$1.braceR)) { break; } } else { first = false; } nodes.push(this.parseExportSpecifier(exports)); } return nodes; }; // Parses import declaration. pp$8.parseImport = function (node) { this.next(); // import '...' if (this.type === types$1.string) { node.specifiers = empty$1; node.source = this.parseExprAtom(); } else { node.specifiers = this.parseImportSpecifiers(); this.expectContextual("from"); node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected(); } this.semicolon(); return this.finishNode(node, "ImportDeclaration"); }; // Parses a comma-separated list of module imports. pp$8.parseImportSpecifier = function () { var node = this.startNode(); node.imported = this.parseModuleExportName(); if (this.eatContextual("as")) { node.local = this.parseIdent(); } else { this.checkUnreserved(node.imported); node.local = node.imported; } this.checkLValSimple(node.local, BIND_LEXICAL); return this.finishNode(node, "ImportSpecifier"); }; pp$8.parseImportDefaultSpecifier = function () { // import defaultObj, { x, y as z } from '...' var node = this.startNode(); node.local = this.parseIdent(); this.checkLValSimple(node.local, BIND_LEXICAL); return this.finishNode(node, "ImportDefaultSpecifier"); }; pp$8.parseImportNamespaceSpecifier = function () { var node = this.startNode(); this.next(); this.expectContextual("as"); node.local = this.parseIdent(); this.checkLValSimple(node.local, BIND_LEXICAL); return this.finishNode(node, "ImportNamespaceSpecifier"); }; pp$8.parseImportSpecifiers = function () { var nodes = [], first = true; if (this.type === types$1.name) { nodes.push(this.parseImportDefaultSpecifier()); if (!this.eat(types$1.comma)) { return nodes; } } if (this.type === types$1.star) { nodes.push(this.parseImportNamespaceSpecifier()); return nodes; } this.expect(types$1.braceL); while (!this.eat(types$1.braceR)) { if (!first) { this.expect(types$1.comma); if (this.afterTrailingComma(types$1.braceR)) { break; } } else { first = false; } nodes.push(this.parseImportSpecifier()); } return nodes; }; pp$8.parseModuleExportName = function () { if (this.options.ecmaVersion >= 13 && this.type === types$1.string) { var stringLiteral = this.parseLiteral(this.value); if (loneSurrogate.test(stringLiteral.value)) { this.raise(stringLiteral.start, "An export name cannot include a lone surrogate."); } return stringLiteral; } return this.parseIdent(true); }; // Set `ExpressionStatement#directive` property for directive prologues. pp$8.adaptDirectivePrologue = function (statements) { for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) { statements[i].directive = statements[i].expression.raw.slice(1, -1); } }; pp$8.isDirectiveCandidate = function (statement) { return this.options.ecmaVersion >= 5 && statement.type === "ExpressionStatement" && statement.expression.type === "Literal" && typeof statement.expression.value === "string" && ( // Reject parenthesized strings. this.input[statement.start] === "\"" || this.input[statement.start] === "'"); }; var pp$7 = Parser.prototype; // Convert existing expression atom to assignable pattern // if possible. pp$7.toAssignable = function (node, isBinding, refDestructuringErrors) { if (this.options.ecmaVersion >= 6 && node) { switch (node.type) { case "Identifier": if (this.inAsync && node.name === "await") { this.raise(node.start, "Cannot use 'await' as identifier inside an async function"); } break; case "ObjectPattern": case "ArrayPattern": case "AssignmentPattern": case "RestElement": break; case "ObjectExpression": node.type = "ObjectPattern"; if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } for (var i = 0, list = node.properties; i < list.length; i += 1) { var prop = list[i]; this.toAssignable(prop, isBinding); // Early error: // AssignmentRestProperty[Yield, Await] : // `...` DestructuringAssignmentTarget[Yield, Await] // // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|. if (prop.type === "RestElement" && (prop.argument.type === "ArrayPattern" || prop.argument.type === "ObjectPattern")) { this.raise(prop.argument.start, "Unexpected token"); } } break; case "Property": // AssignmentProperty has type === "Property" if (node.kind !== "init") { this.raise(node.key.start, "Object pattern can't contain getter or setter"); } this.toAssignable(node.value, isBinding); break; case "ArrayExpression": node.type = "ArrayPattern"; if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } this.toAssignableList(node.elements, isBinding); break; case "SpreadElement": node.type = "RestElement"; this.toAssignable(node.argument, isBinding); if (node.argument.type === "AssignmentPattern") { this.raise(node.argument.start, "Rest elements cannot have a default value"); } break; case "AssignmentExpression": if (node.operator !== "=") { this.raise(node.left.end, "Only '=' operator can be used for specifying default value."); } node.type = "AssignmentPattern"; delete node.operator; this.toAssignable(node.left, isBinding); break; case "ParenthesizedExpression": this.toAssignable(node.expression, isBinding, refDestructuringErrors); break; case "ChainExpression": this.raiseRecoverable(node.start, "Optional chaining cannot appear in left-hand side"); break; case "MemberExpression": if (!isBinding) { break; } default: this.raise(node.start, "Assigning to rvalue"); } } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } return node; }; // Convert list of expression atoms to binding list. pp$7.toAssignableList = function (exprList, isBinding) { var end = exprList.length; for (var i = 0; i < end; i++) { var elt = exprList[i]; if (elt) { this.toAssignable(elt, isBinding); } } if (end) { var last = exprList[end - 1]; if (this.options.ecmaVersion === 6 && isBinding && last && last.type === "RestElement" && last.argument.type !== "Identifier") { this.unexpected(last.argument.start); } } return exprList; }; // Parses spread element. pp$7.parseSpread = function (refDestructuringErrors) { var node = this.startNode(); this.next(); node.argument = this.parseMaybeAssign(false, refDestructuringErrors); return this.finishNode(node, "SpreadElement"); }; pp$7.parseRestBinding = function () { var node = this.startNode(); this.next(); // RestElement inside of a function parameter must be an identifier if (this.options.ecmaVersion === 6 && this.type !== types$1.name) { this.unexpected(); } node.argument = this.parseBindingAtom(); return this.finishNode(node, "RestElement"); }; // Parses lvalue (assignable) atom. pp$7.parseBindingAtom = function () { if (this.options.ecmaVersion >= 6) { switch (this.type) { case types$1.bracketL: var node = this.startNode(); this.next(); node.elements = this.parseBindingList(types$1.bracketR, true, true); return this.finishNode(node, "ArrayPattern"); case types$1.braceL: return this.parseObj(true); } } return this.parseIdent(); }; pp$7.parseBindingList = function (close, allowEmpty, allowTrailingComma, allowModifiers) { var elts = [], first = true; while (!this.eat(close)) { if (first) { first = false; } else { this.expect(types$1.comma); } if (allowEmpty && this.type === types$1.comma) { elts.push(null); } else if (allowTrailingComma && this.afterTrailingComma(close)) { break; } else if (this.type === types$1.ellipsis) { var rest = this.parseRestBinding(); this.parseBindingListItem(rest); elts.push(rest); if (this.type === types$1.comma) { this.raiseRecoverable(this.start, "Comma is not permitted after the rest element"); } this.expect(close); break; } else { elts.push(this.parseAssignableListItem(allowModifiers)); } } return elts; }; pp$7.parseAssignableListItem = function (allowModifiers) { var elem = this.parseMaybeDefault(this.start, this.startLoc); this.parseBindingListItem(elem); return elem; }; pp$7.parseBindingListItem = function (param) { return param; }; // Parses assignment pattern around given atom if possible. pp$7.parseMaybeDefault = function (startPos, startLoc, left) { left = left || this.parseBindingAtom(); if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { return left; } var node = this.startNodeAt(startPos, startLoc); node.left = left; node.right = this.parseMaybeAssign(); return this.finishNode(node, "AssignmentPattern"); }; // The following three functions all verify that a node is an lvalue — // something that can be bound, or assigned to. In order to do so, they perform // a variety of checks: // // - Check that none of the bound/assigned-to identifiers are reserved words. // - Record name declarations for bindings in the appropriate scope. // - Check duplicate argument names, if checkClashes is set. // // If a complex binding pattern is encountered (e.g., object and array // destructuring), the entire pattern is recursively checked. // // There are three versions of checkLVal*() appropriate for different // circumstances: // // - checkLValSimple() shall be used if the syntactic construct supports // nothing other than identifiers and member expressions. Parenthesized // expressions are also correctly handled. This is generally appropriate for // constructs for which the spec says // // > It is a Syntax Error if AssignmentTargetType of [the production] is not // > simple. // // It is also appropriate for checking if an identifier is valid and not // defined elsewhere, like import declarations or function/class identifiers. // // Examples where this is used include: // a += …; // import a from '…'; // where a is the node to be checked. // // - checkLValPattern() shall be used if the syntactic construct supports // anything checkLValSimple() supports, as well as object and array // destructuring patterns. This is generally appropriate for constructs for // which the spec says // // > It is a Syntax Error if [the production] is neither an ObjectLiteral nor // > an ArrayLiteral and AssignmentTargetType of [the production] is not // > simple. // // Examples where this is used include: // (a = …); // const a = …; // try { … } catch (a) { … } // where a is the node to be checked. // // - checkLValInnerPattern() shall be used if the syntactic construct supports // anything checkLValPattern() supports, as well as default assignment // patterns, rest elements, and other constructs that may appear within an // object or array destructuring pattern. // // As a special case, function parameters also use checkLValInnerPattern(), // as they also support defaults and rest constructs. // // These functions deliberately support both assignment and binding constructs, // as the logic for both is exceedingly similar. If the node is the target of // an assignment, then bindingType should be set to BIND_NONE. Otherwise, it // should be set to the appropriate BIND_* constant, like BIND_VAR or // BIND_LEXICAL. // // If the function is called with a non-BIND_NONE bindingType, then // additionally a checkClashes object may be specified to allow checking for // duplicate argument names. checkClashes is ignored if the provided construct // is an assignment (i.e., bindingType is BIND_NONE). pp$7.checkLValSimple = function (expr, bindingType, checkClashes) { if (bindingType === void 0) bindingType = BIND_NONE; var isBind = bindingType !== BIND_NONE; switch (expr.type) { case "Identifier": if (this.strict && this.reservedWordsStrictBind.test(expr.name)) { this.raiseRecoverable(expr.start, (isBind ? "Binding " : "Assigning to ") + expr.name + " in strict mode"); } if (isBind) { if (bindingType === BIND_LEXICAL && expr.name === "let") { this.raiseRecoverable(expr.start, "let is disallowed as a lexically bound name"); } if (checkClashes) { if (hasOwn(checkClashes, expr.name)) { this.raiseRecoverable(expr.start, "Argument name clash"); } checkClashes[expr.name] = true; } if (bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); } } break; case "ChainExpression": this.raiseRecoverable(expr.start, "Optional chaining cannot appear in left-hand side"); break; case "MemberExpression": if (isBind) { this.raiseRecoverable(expr.start, "Binding member expression"); } break; case "ParenthesizedExpression": if (isBind) { this.raiseRecoverable(expr.start, "Binding parenthesized expression"); } return this.checkLValSimple(expr.expression, bindingType, checkClashes); default: this.raise(expr.start, (isBind ? "Binding" : "Assigning to") + " rvalue"); } }; pp$7.checkLValPattern = function (expr, bindingType, checkClashes) { if (bindingType === void 0) bindingType = BIND_NONE; switch (expr.type) { case "ObjectPattern": for (var i = 0, list = expr.properties; i < list.length; i += 1) { var prop = list[i]; this.checkLValInnerPattern(prop, bindingType, checkClashes); } break; case "ArrayPattern": for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) { var elem = list$1[i$1]; if (elem) { this.checkLValInnerPattern(elem, bindingType, checkClashes); } } break; default: this.checkLValSimple(expr, bindingType, checkClashes); } }; pp$7.checkLValInnerPattern = function (expr, bindingType, checkClashes) { if (bindingType === void 0) bindingType = BIND_NONE; switch (expr.type) { case "Property": // AssignmentProperty has type === "Property" this.checkLValInnerPattern(expr.value, bindingType, checkClashes); break; case "AssignmentPattern": this.checkLValPattern(expr.left, bindingType, checkClashes); break; case "RestElement": this.checkLValPattern(expr.argument, bindingType, checkClashes); break; default: this.checkLValPattern(expr, bindingType, checkClashes); } }; // The algorithm used to determine whether a regexp can appear at a // given point in the program is loosely based on sweet.js' approach. // See https://github.com/mozilla/sweet.js/wiki/design var TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) { this.token = token; this.isExpr = !!isExpr; this.preserveSpace = !!preserveSpace; this.override = override; this.generator = !!generator; }; var types = { b_stat: new TokContext("{", false), b_expr: new TokContext("{", true), b_tmpl: new TokContext("${", false), p_stat: new TokContext("(", false), p_expr: new TokContext("(", true), q_tmpl: new TokContext("`", true, true, function (p) { return p.tryReadTemplateToken(); }), f_stat: new TokContext("function", false), f_expr: new TokContext("function", true), f_expr_gen: new TokContext("function", true, false, null, true), f_gen: new TokContext("function", false, false, null, true) }; var pp$6 = Parser.prototype; pp$6.initialContext = function () { return [types.b_stat]; }; pp$6.curContext = function () { return this.context[this.context.length - 1]; }; pp$6.braceIsBlock = function (prevType) { var parent = this.curContext(); if (parent === types.f_expr || parent === types.f_stat) { return true; } if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr)) { return !parent.isExpr; } // The check for `tt.name && exprAllowed` detects whether we are // after a `yield` or `of` construct. See the `updateContext` for // `tt.name`. if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed) { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)); } if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow) { return true; } if (prevType === types$1.braceL) { return parent === types.b_stat; } if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name) { return false; } return !this.exprAllowed; }; pp$6.inGeneratorContext = function () { for (var i = this.context.length - 1; i >= 1; i--) { var context = this.context[i]; if (context.token === "function") { return context.generator; } } return false; }; pp$6.updateContext = function (prevType) { var update, type = this.type; if (type.keyword && prevType === types$1.dot) { this.exprAllowed = false; } else if (update = type.updateContext) { update.call(this, prevType); } else { this.exprAllowed = type.beforeExpr; } }; // Used to handle edge cases when token context could not be inferred correctly during tokenization phase pp$6.overrideContext = function (tokenCtx) { if (this.curContext() !== tokenCtx) { this.context[this.context.length - 1] = tokenCtx; } }; // Token-specific context update code types$1.parenR.updateContext = types$1.braceR.updateContext = function () { if (this.context.length === 1) { this.exprAllowed = true; return; } var out = this.context.pop(); if (out === types.b_stat && this.curContext().token === "function") { out = this.context.pop(); } this.exprAllowed = !out.isExpr; }; types$1.braceL.updateContext = function (prevType) { this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr); this.exprAllowed = true; }; types$1.dollarBraceL.updateContext = function () { this.context.push(types.b_tmpl); this.exprAllowed = true; }; types$1.parenL.updateContext = function (prevType) { var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while; this.context.push(statementParens ? types.p_stat : types.p_expr); this.exprAllowed = true; }; types$1.incDec.updateContext = function () { // tokExprAllowed stays unchanged }; types$1._function.updateContext = types$1._class.updateContext = function (prevType) { if (prevType.beforeExpr && prevType !== types$1._else && !(prevType === types$1.semi && this.curContext() !== types.p_stat) && !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) && !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat)) { this.context.push(types.f_expr); } else { this.context.push(types.f_stat); } this.exprAllowed = false; }; types$1.colon.updateContext = function () { if (this.curContext().token === "function") { this.context.pop(); } this.exprAllowed = true; }; types$1.backQuote.updateContext = function () { if (this.curContext() === types.q_tmpl) { this.context.pop(); } else { this.context.push(types.q_tmpl); } this.exprAllowed = false; }; types$1.star.updateContext = function (prevType) { if (prevType === types$1._function) { var index = this.context.length - 1; if (this.context[index] === types.f_expr) { this.context[index] = types.f_expr_gen; } else { this.context[index] = types.f_gen; } } this.exprAllowed = true; }; types$1.name.updateContext = function (prevType) { var allowed = false; if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) { if (this.value === "of" && !this.exprAllowed || this.value === "yield" && this.inGeneratorContext()) { allowed = true; } } this.exprAllowed = allowed; }; // A recursive descent parser operates by defining functions for all // syntactic elements, and recursively calling those, each function // advancing the input stream and returning an AST node. Precedence // of constructs (for example, the fact that `!x[1]` means `!(x[1])` // instead of `(!x)[1]` is handled by the fact that the parser // function that parses unary prefix operators is called first, and // in turn calls the function that parses `[]` subscripts — that // way, it'll receive the node for `x[1]` already parsed, and wraps // *that* in the unary operator node. // // Acorn uses an [operator precedence parser][opp] to handle binary // operator precedence, because it is much more compact than using // the technique outlined above, which uses different, nesting // functions to specify precedence, for all of the ten binary // precedence levels that JavaScript defines. // // [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser var pp$5 = Parser.prototype; // Check if property name clashes with already added. // Object/class getters and setters are not allowed to clash — // either with each other or with an init property — and in // strict mode, init properties are also not allowed to be repeated. pp$5.checkPropClash = function (prop, propHash, refDestructuringErrors) { if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement") { return; } if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand)) { return; } var key = prop.key; var name; switch (key.type) { case "Identifier": name = key.name; break; case "Literal": name = String(key.value); break; default: return; } var kind = prop.kind; if (this.options.ecmaVersion >= 6) { if (name === "__proto__" && kind === "init") { if (propHash.proto) { if (refDestructuringErrors) { if (refDestructuringErrors.doubleProto < 0) { refDestructuringErrors.doubleProto = key.start; } } else { this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); } } propHash.proto = true; } return; } name = "$" + name; var other = propHash[name]; if (other) { var redefinition; if (kind === "init") { redefinition = this.strict && other.init || other.get || other.set; } else { redefinition = other.init || other[kind]; } if (redefinition) { this.raiseRecoverable(key.start, "Redefinition of property"); } } else { other = propHash[name] = { init: false, get: false, set: false }; } other[kind] = true; }; // ### Expression parsing // These nest, from the most general expression type at the top to // 'atomic', nondivisible expression types at the bottom. Most of // the functions will simply let the function(s) below them parse, // and, *if* the syntactic construct they handle is present, wrap // the AST node that the inner parser gave them in another node. // Parse a full expression. The optional arguments are used to // forbid the `in` operator (in for loops initalization expressions) // and provide reference for storing '=' operator inside shorthand // property assignment in contexts where both object expression // and object pattern might appear (so it's possible to raise // delayed syntax error at correct position). pp$5.parseExpression = function (forInit, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseMaybeAssign(forInit, refDestructuringErrors); if (this.type === types$1.comma) { var node = this.startNodeAt(startPos, startLoc); node.expressions = [expr]; while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); } return this.finishNode(node, "SequenceExpression"); } return expr; }; // Parse an assignment expression. This includes applications of // operators like `+=`. pp$5.parseMaybeAssign = function (forInit, refDestructuringErrors, afterLeftParse) { if (this.isContextual("yield")) { if (this.inGenerator) { return this.parseYield(forInit); } // The tokenizer will assume an expression is allowed after // `yield`, but this isn't that kind of yield else { this.exprAllowed = false; } } var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1; if (refDestructuringErrors) { oldParenAssign = refDestructuringErrors.parenthesizedAssign; oldTrailingComma = refDestructuringErrors.trailingComma; oldDoubleProto = refDestructuringErrors.doubleProto; refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1; } else { refDestructuringErrors = new DestructuringErrors(); ownDestructuringErrors = true; } var startPos = this.start, startLoc = this.startLoc; if (this.type === types$1.parenL || this.type === types$1.name) { this.potentialArrowAt = this.start; this.potentialArrowInForAwait = forInit === "await"; } var left = this.parseMaybeConditional(forInit, refDestructuringErrors); if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); } if (this.type.isAssign) { var node = this.startNodeAt(startPos, startLoc); node.operator = this.value; if (this.type === types$1.eq) { left = this.toAssignable(left, false, refDestructuringErrors); } if (!ownDestructuringErrors) { refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1; } if (refDestructuringErrors.shorthandAssign >= left.start) { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly if (this.type === types$1.eq) { this.checkLValPattern(left); } else { this.checkLValSimple(left); } node.left = left; this.next(); node.right = this.parseMaybeAssign(forInit); if (oldDoubleProto > -1) { refDestructuringErrors.doubleProto = oldDoubleProto; } return this.finishNode(node, "AssignmentExpression"); } else { if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); } } if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; } if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; } return left; }; // Parse a ternary conditional (`?:`) operator. pp$5.parseMaybeConditional = function (forInit, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseExprOps(forInit, refDestructuringErrors); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr; } if (this.eat(types$1.question)) { var node = this.startNodeAt(startPos, startLoc); node.test = expr; node.consequent = this.parseMaybeAssign(); this.expect(types$1.colon); node.alternate = this.parseMaybeAssign(forInit); return this.finishNode(node, "ConditionalExpression"); } return expr; }; // Start the precedence parser. pp$5.parseExprOps = function (forInit, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr; } return expr.start === startPos && expr.type === "ArrowFunctionExpression" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit); }; // Parse binary operators with the operator precedence parsing // algorithm. `left` is the left-hand side of the operator. // `minPrec` provides context that allows the function to stop and // defer further parser to one of its callers when it encounters an // operator that has a lower precedence than the set it is parsing. pp$5.parseExprOp = function (left, leftStartPos, leftStartLoc, minPrec, forInit) { var prec = this.type.binop; if (prec != null && (!forInit || this.type !== types$1._in)) { if (prec > minPrec) { var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND; var coalesce = this.type === types$1.coalesce; if (coalesce) { // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions. // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error. prec = types$1.logicalAND.binop; } var op = this.value; this.next(); var startPos = this.start, startLoc = this.startLoc; var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit); var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce); if (logical && this.type === types$1.coalesce || coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND)) { this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"); } return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit); } } return left; }; pp$5.buildBinary = function (startPos, startLoc, left, right, op, logical) { if (right.type === "PrivateIdentifier") { this.raise(right.start, "Private identifier can only be left side of binary expression"); } var node = this.startNodeAt(startPos, startLoc); node.left = left; node.operator = op; node.right = right; return this.finishNode(node, logical ? "LogicalExpression" : "BinaryExpression"); }; // Parse unary operators, both prefix and postfix. pp$5.parseMaybeUnary = function (refDestructuringErrors, sawUnary, incDec, forInit) { var startPos = this.start, startLoc = this.startLoc, expr; if (this.isContextual("await") && this.canAwait) { expr = this.parseAwait(forInit); sawUnary = true; } else if (this.type.prefix) { var node = this.startNode(), update = this.type === types$1.incDec; node.operator = this.value; node.prefix = true; this.next(); node.argument = this.parseMaybeUnary(null, true, update, forInit); this.checkExpressionErrors(refDestructuringErrors, true); if (update) { this.checkLValSimple(node.argument); } else if (this.strict && node.operator === "delete" && node.argument.type === "Identifier") { this.raiseRecoverable(node.start, "Deleting local variable in strict mode"); } else if (node.operator === "delete" && isPrivateFieldAccess(node.argument)) { this.raiseRecoverable(node.start, "Private fields can not be deleted"); } else { sawUnary = true; } expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression"); } else if (!sawUnary && this.type === types$1.privateId) { if ((forInit || this.privateNameStack.length === 0) && this.options.checkPrivateFields) { this.unexpected(); } expr = this.parsePrivateIdent(); // only could be private fields in 'in', such as #x in obj if (this.type !== types$1._in) { this.unexpected(); } } else { expr = this.parseExprSubscripts(refDestructuringErrors, forInit); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr; } while (this.type.postfix && !this.canInsertSemicolon()) { var node$1 = this.startNodeAt(startPos, startLoc); node$1.operator = this.value; node$1.prefix = false; node$1.argument = expr; this.checkLValSimple(expr); this.next(); expr = this.finishNode(node$1, "UpdateExpression"); } } if (!incDec && this.eat(types$1.starstar)) { if (sawUnary) { this.unexpected(this.lastTokStart); } else { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false, false, forInit), "**", false); } } else { return expr; } }; function isPrivateFieldAccess(node) { return node.type === "MemberExpression" && node.property.type === "PrivateIdentifier" || node.type === "ChainExpression" && isPrivateFieldAccess(node.expression); } // Parse call, dot, and `[]`-subscript expressions. pp$5.parseExprSubscripts = function (refDestructuringErrors, forInit) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseExprAtom(refDestructuringErrors, forInit); if (expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")") { return expr; } var result = this.parseSubscripts(expr, startPos, startLoc, false, forInit); if (refDestructuringErrors && result.type === "MemberExpression") { if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; } if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; } if (refDestructuringErrors.trailingComma >= result.start) { refDestructuringErrors.trailingComma = -1; } } return result; }; pp$5.parseSubscripts = function (base, startPos, startLoc, noCalls, forInit) { var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" && this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && this.potentialArrowAt === base.start; var optionalChained = false; while (true) { var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit); if (element.optional) { optionalChained = true; } if (element === base || element.type === "ArrowFunctionExpression") { if (optionalChained) { var chainNode = this.startNodeAt(startPos, startLoc); chainNode.expression = element; element = this.finishNode(chainNode, "ChainExpression"); } return element; } base = element; } }; pp$5.shouldParseAsyncArrow = function () { return !this.canInsertSemicolon() && this.eat(types$1.arrow); }; pp$5.parseSubscriptAsyncArrow = function (startPos, startLoc, exprList, forInit) { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true, forInit); }; pp$5.parseSubscript = function (base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) { var optionalSupported = this.options.ecmaVersion >= 11; var optional = optionalSupported && this.eat(types$1.questionDot); if (noCalls && optional) { this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); } var computed = this.eat(types$1.bracketL); if (computed || optional && this.type !== types$1.parenL && this.type !== types$1.backQuote || this.eat(types$1.dot)) { var node = this.startNodeAt(startPos, startLoc); node.object = base; if (computed) { node.property = this.parseExpression(); this.expect(types$1.bracketR); } else if (this.type === types$1.privateId && base.type !== "Super") { node.property = this.parsePrivateIdent(); } else { node.property = this.parseIdent(this.options.allowReserved !== "never"); } node.computed = !!computed; if (optionalSupported) { node.optional = optional; } base = this.finishNode(node, "MemberExpression"); } else if (!noCalls && this.eat(types$1.parenL)) { var refDestructuringErrors = new DestructuringErrors(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; this.yieldPos = 0; this.awaitPos = 0; this.awaitIdentPos = 0; var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors); if (maybeAsyncArrow && !optional && this.shouldParseAsyncArrow()) { this.checkPatternErrors(refDestructuringErrors, false); this.checkYieldAwaitInDefaultParams(); if (this.awaitIdentPos > 0) { this.raise(this.awaitIdentPos, "Cannot use 'await' as identifier inside an async function"); } this.yieldPos = oldYieldPos; this.awaitPos = oldAwaitPos; this.awaitIdentPos = oldAwaitIdentPos; return this.parseSubscriptAsyncArrow(startPos, startLoc, exprList, forInit); } this.checkExpressionErrors(refDestructuringErrors, true); this.yieldPos = oldYieldPos || this.yieldPos; this.awaitPos = oldAwaitPos || this.awaitPos; this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos; var node$1 = this.startNodeAt(startPos, startLoc); node$1.callee = base; node$1.arguments = exprList; if (optionalSupported) { node$1.optional = optional; } base = this.finishNode(node$1, "CallExpression"); } else if (this.type === types$1.backQuote) { if (optional || optionalChained) { this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions"); } var node$2 = this.startNodeAt(startPos, startLoc); node$2.tag = base; node$2.quasi = this.parseTemplate({ isTagged: true }); base = this.finishNode(node$2, "TaggedTemplateExpression"); } return base; }; // Parse an atomic expression — either a single token that is an // expression, an expression started by a keyword like `function` or // `new`, or an expression wrapped in punctuation like `()`, `[]`, // or `{}`. pp$5.parseExprAtom = function (refDestructuringErrors, forInit, forNew) { // If a division operator appears in an expression position, the // tokenizer got confused, and we force it to read a regexp instead. if (this.type === types$1.slash) { this.readRegexp(); } var node, canBeArrow = this.potentialArrowAt === this.start; switch (this.type) { case types$1._super: if (!this.allowSuper) { this.raise(this.start, "'super' keyword outside a method"); } node = this.startNode(); this.next(); if (this.type === types$1.parenL && !this.allowDirectSuper) { this.raise(node.start, "super() call outside constructor of a subclass"); } // The `super` keyword can appear at below: // SuperProperty: // super [ Expression ] // super . IdentifierName // SuperCall: // super ( Arguments ) if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL) { this.unexpected(); } return this.finishNode(node, "Super"); case types$1._this: node = this.startNode(); this.next(); return this.finishNode(node, "ThisExpression"); case types$1.name: var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc; var id = this.parseIdent(false); if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types$1._function)) { this.overrideContext(types.f_expr); return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit); } if (canBeArrow && !this.canInsertSemicolon()) { if (this.eat(types$1.arrow)) { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit); } if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types$1.name && !containsEsc && (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc)) { id = this.parseIdent(false); if (this.canInsertSemicolon() || !this.eat(types$1.arrow)) { this.unexpected(); } return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit); } } return id; case types$1.regexp: var value = this.value; node = this.parseLiteral(value.value); node.regex = { pattern: value.pattern, flags: value.flags }; return node; case types$1.num: case types$1.string: return this.parseLiteral(this.value); case types$1._null: case types$1._true: case types$1._false: node = this.startNode(); node.value = this.type === types$1._null ? null : this.type === types$1._true; node.raw = this.type.keyword; this.next(); return this.finishNode(node, "Literal"); case types$1.parenL: var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit); if (refDestructuringErrors) { if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr)) { refDestructuringErrors.parenthesizedAssign = start; } if (refDestructuringErrors.parenthesizedBind < 0) { refDestructuringErrors.parenthesizedBind = start; } } return expr; case types$1.bracketL: node = this.startNode(); this.next(); node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors); return this.finishNode(node, "ArrayExpression"); case types$1.braceL: this.overrideContext(types.b_expr); return this.parseObj(false, refDestructuringErrors); case types$1._function: node = this.startNode(); this.next(); return this.parseFunction(node, 0); case types$1._class: return this.parseClass(this.startNode(), false); case types$1._new: return this.parseNew(); case types$1.backQuote: return this.parseTemplate(); case types$1._import: if (this.options.ecmaVersion >= 11) { return this.parseExprImport(forNew); } else { return this.unexpected(); } default: return this.parseExprAtomDefault(); } }; pp$5.parseExprAtomDefault = function () { this.unexpected(); }; pp$5.parseExprImport = function (forNew) { var node = this.startNode(); // Consume `import` as an identifier for `import.meta`. // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`. if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword import"); } this.next(); if (this.type === types$1.parenL && !forNew) { return this.parseDynamicImport(node); } else if (this.type === types$1.dot) { var meta = this.startNodeAt(node.start, node.loc && node.loc.start); meta.name = "import"; node.meta = this.finishNode(meta, "Identifier"); return this.parseImportMeta(node); } else { this.unexpected(); } }; pp$5.parseDynamicImport = function (node) { this.next(); // skip `(` // Parse node.source. node.source = this.parseMaybeAssign(); // Verify ending. if (!this.eat(types$1.parenR)) { var errorPos = this.start; if (this.eat(types$1.comma) && this.eat(types$1.parenR)) { this.raiseRecoverable(errorPos, "Trailing comma is not allowed in import()"); } else { this.unexpected(errorPos); } } return this.finishNode(node, "ImportExpression"); }; pp$5.parseImportMeta = function (node) { this.next(); // skip `.` var containsEsc = this.containsEsc; node.property = this.parseIdent(true); if (node.property.name !== "meta") { this.raiseRecoverable(node.property.start, "The only valid meta property for import is 'import.meta'"); } if (containsEsc) { this.raiseRecoverable(node.start, "'import.meta' must not contain escaped characters"); } if (this.options.sourceType !== "module" && !this.options.allowImportExportEverywhere) { this.raiseRecoverable(node.start, "Cannot use 'import.meta' outside a module"); } return this.finishNode(node, "MetaProperty"); }; pp$5.parseLiteral = function (value) { var node = this.startNode(); node.value = value; node.raw = this.input.slice(this.start, this.end); if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1).replace(/_/g, ""); } this.next(); return this.finishNode(node, "Literal"); }; pp$5.parseParenExpression = function () { this.expect(types$1.parenL); var val = this.parseExpression(); this.expect(types$1.parenR); return val; }; pp$5.shouldParseArrow = function (exprList) { return !this.canInsertSemicolon(); }; pp$5.parseParenAndDistinguishExpression = function (canBeArrow, forInit) { var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8; if (this.options.ecmaVersion >= 6) { this.next(); var innerStartPos = this.start, innerStartLoc = this.startLoc; var exprList = [], first = true, lastIsComma = false; var refDestructuringErrors = new DestructuringErrors(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart; this.yieldPos = 0; this.awaitPos = 0; // Do not save awaitIdentPos to allow checking awaits nested in parameters while (this.type !== types$1.parenR) { first ? first = false : this.expect(types$1.comma); if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) { lastIsComma = true; break; } else if (this.type === types$1.ellipsis) { spreadStart = this.start; exprList.push(this.parseParenItem(this.parseRestBinding())); if (this.type === types$1.comma) { this.raiseRecoverable(this.start, "Comma is not permitted after the rest element"); } break; } else { exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem)); } } var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc; this.expect(types$1.parenR); if (canBeArrow && this.shouldParseArrow(exprList) && this.eat(types$1.arrow)) { this.checkPatternErrors(refDestructuringErrors, false); this.checkYieldAwaitInDefaultParams(); this.yieldPos = oldYieldPos; this.awaitPos = oldAwaitPos; return this.parseParenArrowList(startPos, startLoc, exprList, forInit); } if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); } if (spreadStart) { this.unexpected(spreadStart); } this.checkExpressionErrors(refDestructuringErrors, true); this.yieldPos = oldYieldPos || this.yieldPos; this.awaitPos = oldAwaitPos || this.awaitPos; if (exprList.length > 1) { val = this.startNodeAt(innerStartPos, innerStartLoc); val.expressions = exprList; this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc); } else { val = exprList[0]; } } else { val = this.parseParenExpression(); } if (this.options.preserveParens) { var par = this.startNodeAt(startPos, startLoc); par.expression = val; return this.finishNode(par, "ParenthesizedExpression"); } else { return val; } }; pp$5.parseParenItem = function (item) { return item; }; pp$5.parseParenArrowList = function (startPos, startLoc, exprList, forInit) { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit); }; // New's precedence is slightly tricky. It must allow its argument to // be a `[]` or dot subscript expression, but not a call — at least, // not without wrapping it in parentheses. Thus, it uses the noCalls // argument to parseSubscripts to prevent it from consuming the // argument list. var empty = []; pp$5.parseNew = function () { if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword new"); } var node = this.startNode(); this.next(); if (this.options.ecmaVersion >= 6 && this.type === types$1.dot) { var meta = this.startNodeAt(node.start, node.loc && node.loc.start); meta.name = "new"; node.meta = this.finishNode(meta, "Identifier"); this.next(); var containsEsc = this.containsEsc; node.property = this.parseIdent(true); if (node.property.name !== "target") { this.raiseRecoverable(node.property.start, "The only valid meta property for new is 'new.target'"); } if (containsEsc) { this.raiseRecoverable(node.start, "'new.target' must not contain escaped characters"); } if (!this.allowNewDotTarget) { this.raiseRecoverable(node.start, "'new.target' can only be used in functions and class static block"); } return this.finishNode(node, "MetaProperty"); } var startPos = this.start, startLoc = this.startLoc; node.callee = this.parseSubscripts(this.parseExprAtom(null, false, true), startPos, startLoc, true, false); if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); } else { node.arguments = empty; } return this.finishNode(node, "NewExpression"); }; // Parse template expression. pp$5.parseTemplateElement = function (ref) { var isTagged = ref.isTagged; var elem = this.startNode(); if (this.type === types$1.invalidTemplate) { if (!isTagged) { this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"); } elem.value = { raw: this.value, cooked: null }; } else { elem.value = { raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"), cooked: this.value }; } this.next(); elem.tail = this.type === types$1.backQuote; return this.finishNode(elem, "TemplateElement"); }; pp$5.parseTemplate = function (ref) { if (ref === void 0) ref = {}; var isTagged = ref.isTagged; if (isTagged === void 0) isTagged = false; var node = this.startNode(); this.next(); node.expressions = []; var curElt = this.parseTemplateElement({ isTagged: isTagged }); node.quasis = [curElt]; while (!curElt.tail) { if (this.type === types$1.eof) { this.raise(this.pos, "Unterminated template literal"); } this.expect(types$1.dollarBraceL); node.expressions.push(this.parseExpression()); this.expect(types$1.braceR); node.quasis.push(curElt = this.parseTemplateElement({ isTagged: isTagged })); } this.next(); return this.finishNode(node, "TemplateLiteral"); }; pp$5.isAsyncProp = function (prop) { return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" && (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || this.options.ecmaVersion >= 9 && this.type === types$1.star) && !lineBreak.test(this.input.slice(this.lastTokEnd, this.start)); }; // Parse an object literal or binding pattern. pp$5.parseObj = function (isPattern, refDestructuringErrors) { var node = this.startNode(), first = true, propHash = {}; node.properties = []; this.next(); while (!this.eat(types$1.braceR)) { if (!first) { this.expect(types$1.comma); if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { break; } } else { first = false; } var prop = this.parseProperty(isPattern, refDestructuringErrors); if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); } node.properties.push(prop); } return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression"); }; pp$5.parseProperty = function (isPattern, refDestructuringErrors) { var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc; if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) { if (isPattern) { prop.argument = this.parseIdent(false); if (this.type === types$1.comma) { this.raiseRecoverable(this.start, "Comma is not permitted after the rest element"); } return this.finishNode(prop, "RestElement"); } // Parse argument. prop.argument = this.parseMaybeAssign(false, refDestructuringErrors); // To disallow trailing comma via `this.toAssignable()`. if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) { refDestructuringErrors.trailingComma = this.start; } // Finish return this.finishNode(prop, "SpreadElement"); } if (this.options.ecmaVersion >= 6) { prop.method = false; prop.shorthand = false; if (isPattern || refDestructuringErrors) { startPos = this.start; startLoc = this.startLoc; } if (!isPattern) { isGenerator = this.eat(types$1.star); } } var containsEsc = this.containsEsc; this.parsePropertyName(prop); if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) { isAsync = true; isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star); this.parsePropertyName(prop); } else { isAsync = false; } this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc); return this.finishNode(prop, "Property"); }; pp$5.parseGetterSetter = function (prop) { prop.kind = prop.key.name; this.parsePropertyName(prop); prop.value = this.parseMethod(false); var paramCount = prop.kind === "get" ? 0 : 1; if (prop.value.params.length !== paramCount) { var start = prop.value.start; if (prop.kind === "get") { this.raiseRecoverable(start, "getter should have no params"); } else { this.raiseRecoverable(start, "setter should have exactly one param"); } } else { if (prop.kind === "set" && prop.value.params[0].type === "RestElement") { this.raiseRecoverable(prop.value.params[0].start, "Setter cannot use rest params"); } } }; pp$5.parsePropertyValue = function (prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) { if ((isGenerator || isAsync) && this.type === types$1.colon) { this.unexpected(); } if (this.eat(types$1.colon)) { prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors); prop.kind = "init"; } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) { if (isPattern) { this.unexpected(); } prop.kind = "init"; prop.method = true; prop.value = this.parseMethod(isGenerator, isAsync); } else if (!isPattern && !containsEsc && this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq) { if (isGenerator || isAsync) { this.unexpected(); } this.parseGetterSetter(prop); } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") { if (isGenerator || isAsync) { this.unexpected(); } this.checkUnreserved(prop.key); if (prop.key.name === "await" && !this.awaitIdentPos) { this.awaitIdentPos = startPos; } prop.kind = "init"; if (isPattern) { prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); } else if (this.type === types$1.eq && refDestructuringErrors) { if (refDestructuringErrors.shorthandAssign < 0) { refDestructuringErrors.shorthandAssign = this.start; } prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); } else { prop.value = this.copyNode(prop.key); } prop.shorthand = true; } else { this.unexpected(); } }; pp$5.parsePropertyName = function (prop) { if (this.options.ecmaVersion >= 6) { if (this.eat(types$1.bracketL)) { prop.computed = true; prop.key = this.parseMaybeAssign(); this.expect(types$1.bracketR); return prop.key; } else { prop.computed = false; } } return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never"); }; // Initialize empty function node. pp$5.initFunction = function (node) { node.id = null; if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; } if (this.options.ecmaVersion >= 8) { node.async = false; } }; // Parse object or class method. pp$5.parseMethod = function (isGenerator, isAsync, allowDirectSuper) { var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; this.initFunction(node); if (this.options.ecmaVersion >= 6) { node.generator = isGenerator; } if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; } this.yieldPos = 0; this.awaitPos = 0; this.awaitIdentPos = 0; this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0)); this.expect(types$1.parenL); node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8); this.checkYieldAwaitInDefaultParams(); this.parseFunctionBody(node, false, true, false); this.yieldPos = oldYieldPos; this.awaitPos = oldAwaitPos; this.awaitIdentPos = oldAwaitIdentPos; return this.finishNode(node, "FunctionExpression"); }; // Parse arrow function expression with given parameters. pp$5.parseArrowExpression = function (node, params, isAsync, forInit) { var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW); this.initFunction(node); if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; } this.yieldPos = 0; this.awaitPos = 0; this.awaitIdentPos = 0; node.params = this.toAssignableList(params, true); this.parseFunctionBody(node, true, false, forInit); this.yieldPos = oldYieldPos; this.awaitPos = oldAwaitPos; this.awaitIdentPos = oldAwaitIdentPos; return this.finishNode(node, "ArrowFunctionExpression"); }; // Parse function body and check parameters. pp$5.parseFunctionBody = function (node, isArrowFunction, isMethod, forInit) { var isExpression = isArrowFunction && this.type !== types$1.braceL; var oldStrict = this.strict, useStrict = false; if (isExpression) { node.body = this.parseMaybeAssign(forInit); node.expression = true; this.checkParams(node, false); } else { var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params); if (!oldStrict || nonSimple) { useStrict = this.strictDirective(this.end); // If this is a strict mode function, verify that argument names // are not repeated, and it does not try to bind the words `eval` // or `arguments`. if (useStrict && nonSimple) { this.raiseRecoverable(node.start, "Illegal 'use strict' directive in function with non-simple parameter list"); } } // Start a new scope with regard to labels and the `inFunction` // flag (restore them to their old value afterwards). var oldLabels = this.labels; this.labels = []; if (useStrict) { this.strict = true; } // Add the params to varDeclaredNames to ensure that an error is thrown // if a let/const declaration in the function clashes with one of the params. this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params)); // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval' if (this.strict && node.id) { this.checkLValSimple(node.id, BIND_OUTSIDE); } node.body = this.parseBlock(false, undefined, useStrict && !oldStrict); node.expression = false; this.adaptDirectivePrologue(node.body.body); this.labels = oldLabels; } this.exitScope(); }; pp$5.isSimpleParamList = function (params) { for (var i = 0, list = params; i < list.length; i += 1) { var param = list[i]; if (param.type !== "Identifier") { return false; } } return true; }; // Checks function params for various disallowed patterns such as using "eval" // or "arguments" and duplicate parameters. pp$5.checkParams = function (node, allowDuplicates) { var nameHash = Object.create(null); for (var i = 0, list = node.params; i < list.length; i += 1) { var param = list[i]; this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash); } }; // Parses a comma-separated list of expressions, and returns them as // an array. `close` is the token type that ends the list, and // `allowEmpty` can be turned on to allow subsequent commas with // nothing in between them to be parsed as `null` (which is needed // for array literals). pp$5.parseExprList = function (close, allowTrailingComma, allowEmpty, refDestructuringErrors) { var elts = [], first = true; while (!this.eat(close)) { if (!first) { this.expect(types$1.comma); if (allowTrailingComma && this.afterTrailingComma(close)) { break; } } else { first = false; } var elt = void 0; if (allowEmpty && this.type === types$1.comma) { elt = null; } else if (this.type === types$1.ellipsis) { elt = this.parseSpread(refDestructuringErrors); if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0) { refDestructuringErrors.trailingComma = this.start; } } else { elt = this.parseMaybeAssign(false, refDestructuringErrors); } elts.push(elt); } return elts; }; pp$5.checkUnreserved = function (ref) { var start = ref.start; var end = ref.end; var name = ref.name; if (this.inGenerator && name === "yield") { this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); } if (this.inAsync && name === "await") { this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); } if (this.currentThisScope().inClassFieldInit && name === "arguments") { this.raiseRecoverable(start, "Cannot use 'arguments' in class field initializer"); } if (this.inClassStaticBlock && (name === "arguments" || name === "await")) { this.raise(start, "Cannot use " + name + " in class static initialization block"); } if (this.keywords.test(name)) { this.raise(start, "Unexpected keyword '" + name + "'"); } if (this.options.ecmaVersion < 6 && this.input.slice(start, end).indexOf("\\") !== -1) { return; } var re = this.strict ? this.reservedWordsStrict : this.reservedWords; if (re.test(name)) { if (!this.inAsync && name === "await") { this.raiseRecoverable(start, "Cannot use keyword 'await' outside an async function"); } this.raiseRecoverable(start, "The keyword '" + name + "' is reserved"); } }; // Parse the next token as an identifier. If `liberal` is true (used // when parsing properties), it will also convert keywords into // identifiers. pp$5.parseIdent = function (liberal) { var node = this.parseIdentNode(); this.next(!!liberal); this.finishNode(node, "Identifier"); if (!liberal) { this.checkUnreserved(node); if (node.name === "await" && !this.awaitIdentPos) { this.awaitIdentPos = node.start; } } return node; }; pp$5.parseIdentNode = function () { var node = this.startNode(); if (this.type === types$1.name) { node.name = this.value; } else if (this.type.keyword) { node.name = this.type.keyword; // To fix https://github.com/acornjs/acorn/issues/575 // `class` and `function` keywords push new context into this.context. // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name. // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword if ((node.name === "class" || node.name === "function") && (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) { this.context.pop(); } this.type = types$1.name; } else { this.unexpected(); } return node; }; pp$5.parsePrivateIdent = function () { var node = this.startNode(); if (this.type === types$1.privateId) { node.name = this.value; } else { this.unexpected(); } this.next(); this.finishNode(node, "PrivateIdentifier"); // For validating existence if (this.options.checkPrivateFields) { if (this.privateNameStack.length === 0) { this.raise(node.start, "Private field '#" + node.name + "' must be declared in an enclosing class"); } else { this.privateNameStack[this.privateNameStack.length - 1].used.push(node); } } return node; }; // Parses yield expression inside generator. pp$5.parseYield = function (forInit) { if (!this.yieldPos) { this.yieldPos = this.start; } var node = this.startNode(); this.next(); if (this.type === types$1.semi || this.canInsertSemicolon() || this.type !== types$1.star && !this.type.startsExpr) { node.delegate = false; node.argument = null; } else { node.delegate = this.eat(types$1.star); node.argument = this.parseMaybeAssign(forInit); } return this.finishNode(node, "YieldExpression"); }; pp$5.parseAwait = function (forInit) { if (!this.awaitPos) { this.awaitPos = this.start; } var node = this.startNode(); this.next(); node.argument = this.parseMaybeUnary(null, true, false, forInit); return this.finishNode(node, "AwaitExpression"); }; var pp$4 = Parser.prototype; // This function is used to raise exceptions on parse errors. It // takes an offset integer (into the current `input`) to indicate // the location of the error, attaches the position to the end // of the error message, and then raises a `SyntaxError` with that // message. pp$4.raise = function (pos, message) { var loc = getLineInfo(this.input, pos); message += " (" + loc.line + ":" + loc.column + ")"; var err = new SyntaxError(message); err.pos = pos; err.loc = loc; err.raisedAt = this.pos; throw err; }; pp$4.raiseRecoverable = pp$4.raise; pp$4.curPosition = function () { if (this.options.locations) { return new Position(this.curLine, this.pos - this.lineStart); } }; var pp$3 = Parser.prototype; var Scope = function Scope(flags) { this.flags = flags; // A list of var-declared names in the current lexical scope this.var = []; // A list of lexically-declared names in the current lexical scope this.lexical = []; // A list of lexically-declared FunctionDeclaration names in the current lexical scope this.functions = []; // A switch to disallow the identifier reference 'arguments' this.inClassFieldInit = false; }; // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names. pp$3.enterScope = function (flags) { this.scopeStack.push(new Scope(flags)); }; pp$3.exitScope = function () { this.scopeStack.pop(); }; // The spec says: // > At the top level of a function, or script, function declarations are // > treated like var declarations rather than like lexical declarations. pp$3.treatFunctionsAsVarInScope = function (scope) { return scope.flags & SCOPE_FUNCTION || !this.inModule && scope.flags & SCOPE_TOP; }; pp$3.declareName = function (name, bindingType, pos) { var redeclared = false; if (bindingType === BIND_LEXICAL) { var scope = this.currentScope(); redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1; scope.lexical.push(name); if (this.inModule && scope.flags & SCOPE_TOP) { delete this.undefinedExports[name]; } } else if (bindingType === BIND_SIMPLE_CATCH) { var scope$1 = this.currentScope(); scope$1.lexical.push(name); } else if (bindingType === BIND_FUNCTION) { var scope$2 = this.currentScope(); if (this.treatFunctionsAsVar) { redeclared = scope$2.lexical.indexOf(name) > -1; } else { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; } scope$2.functions.push(name); } else { for (var i = this.scopeStack.length - 1; i >= 0; --i) { var scope$3 = this.scopeStack[i]; if (scope$3.lexical.indexOf(name) > -1 && !(scope$3.flags & SCOPE_SIMPLE_CATCH && scope$3.lexical[0] === name) || !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) { redeclared = true; break; } scope$3.var.push(name); if (this.inModule && scope$3.flags & SCOPE_TOP) { delete this.undefinedExports[name]; } if (scope$3.flags & SCOPE_VAR) { break; } } } if (redeclared) { this.raiseRecoverable(pos, "Identifier '" + name + "' has already been declared"); } }; pp$3.checkLocalExport = function (id) { // scope.functions must be empty as Module code is always strict. if (this.scopeStack[0].lexical.indexOf(id.name) === -1 && this.scopeStack[0].var.indexOf(id.name) === -1) { this.undefinedExports[id.name] = id; } }; pp$3.currentScope = function () { return this.scopeStack[this.scopeStack.length - 1]; }; pp$3.currentVarScope = function () { for (var i = this.scopeStack.length - 1;; i--) { var scope = this.scopeStack[i]; if (scope.flags & SCOPE_VAR) { return scope; } } }; // Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`. pp$3.currentThisScope = function () { for (var i = this.scopeStack.length - 1;; i--) { var scope = this.scopeStack[i]; if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope; } } }; var Node = function Node(parser, pos, loc) { this.type = ""; this.start = pos; this.end = 0; if (parser.options.locations) { this.loc = new SourceLocation(parser, loc); } if (parser.options.directSourceFile) { this.sourceFile = parser.options.directSourceFile; } if (parser.options.ranges) { this.range = [pos, 0]; } }; // Start an AST node, attaching a start offset. var pp$2 = Parser.prototype; pp$2.startNode = function () { return new Node(this, this.start, this.startLoc); }; pp$2.startNodeAt = function (pos, loc) { return new Node(this, pos, loc); }; // Finish an AST node, adding `type` and `end` properties. function finishNodeAt(node, type, pos, loc) { node.type = type; node.end = pos; if (this.options.locations) { node.loc.end = loc; } if (this.options.ranges) { node.range[1] = pos; } return node; } pp$2.finishNode = function (node, type) { return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc); }; // Finish node at given position pp$2.finishNodeAt = function (node, type, pos, loc) { return finishNodeAt.call(this, node, type, pos, loc); }; pp$2.copyNode = function (node) { var newNode = new Node(this, node.start, this.startLoc); for (var prop in node) { newNode[prop] = node[prop]; } return newNode; }; // This file contains Unicode properties extracted from the ECMAScript specification. // The lists are extracted like so: // $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText) // #table-binary-unicode-properties var ecma9BinaryProperties = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS"; var ecma10BinaryProperties = ecma9BinaryProperties + " Extended_Pictographic"; var ecma11BinaryProperties = ecma10BinaryProperties; var ecma12BinaryProperties = ecma11BinaryProperties + " EBase EComp EMod EPres ExtPict"; var ecma13BinaryProperties = ecma12BinaryProperties; var ecma14BinaryProperties = ecma13BinaryProperties; var unicodeBinaryProperties = { 9: ecma9BinaryProperties, 10: ecma10BinaryProperties, 11: ecma11BinaryProperties, 12: ecma12BinaryProperties, 13: ecma13BinaryProperties, 14: ecma14BinaryProperties }; // #table-binary-unicode-properties-of-strings var ecma14BinaryPropertiesOfStrings = "Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji"; var unicodeBinaryPropertiesOfStrings = { 9: "", 10: "", 11: "", 12: "", 13: "", 14: ecma14BinaryPropertiesOfStrings }; // #table-unicode-general-category-values var unicodeGeneralCategoryValues = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu"; // #table-unicode-script-values var ecma9ScriptValues = "Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb"; var ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd"; var ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"; var ecma12ScriptValues = ecma11ScriptValues + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi"; var ecma13ScriptValues = ecma12ScriptValues + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith"; var ecma14ScriptValues = ecma13ScriptValues + " Hrkt Katakana_Or_Hiragana Kawi Nag_Mundari Nagm Unknown Zzzz"; var unicodeScriptValues = { 9: ecma9ScriptValues, 10: ecma10ScriptValues, 11: ecma11ScriptValues, 12: ecma12ScriptValues, 13: ecma13ScriptValues, 14: ecma14ScriptValues }; var data = {}; function buildUnicodeData(ecmaVersion) { var d = data[ecmaVersion] = { binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + " " + unicodeGeneralCategoryValues), binaryOfStrings: wordsRegexp(unicodeBinaryPropertiesOfStrings[ecmaVersion]), nonBinary: { General_Category: wordsRegexp(unicodeGeneralCategoryValues), Script: wordsRegexp(unicodeScriptValues[ecmaVersion]) } }; d.nonBinary.Script_Extensions = d.nonBinary.Script; d.nonBinary.gc = d.nonBinary.General_Category; d.nonBinary.sc = d.nonBinary.Script; d.nonBinary.scx = d.nonBinary.Script_Extensions; } for (var i = 0, list = [9, 10, 11, 12, 13, 14]; i < list.length; i += 1) { var ecmaVersion = list[i]; buildUnicodeData(ecmaVersion); } var pp$1 = Parser.prototype; var RegExpValidationState = function RegExpValidationState(parser) { this.parser = parser; this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : "") + (parser.options.ecmaVersion >= 13 ? "d" : "") + (parser.options.ecmaVersion >= 15 ? "v" : ""); this.unicodeProperties = data[parser.options.ecmaVersion >= 14 ? 14 : parser.options.ecmaVersion]; this.source = ""; this.flags = ""; this.start = 0; this.switchU = false; this.switchV = false; this.switchN = false; this.pos = 0; this.lastIntValue = 0; this.lastStringValue = ""; this.lastAssertionIsQuantifiable = false; this.numCapturingParens = 0; this.maxBackReference = 0; this.groupNames = []; this.backReferenceNames = []; }; RegExpValidationState.prototype.reset = function reset(start, pattern, flags) { var unicodeSets = flags.indexOf("v") !== -1; var unicode = flags.indexOf("u") !== -1; this.start = start | 0; this.source = pattern + ""; this.flags = flags; if (unicodeSets && this.parser.options.ecmaVersion >= 15) { this.switchU = true; this.switchV = true; this.switchN = true; } else { this.switchU = unicode && this.parser.options.ecmaVersion >= 6; this.switchV = false; this.switchN = unicode && this.parser.options.ecmaVersion >= 9; } }; RegExpValidationState.prototype.raise = function raise(message) { this.parser.raiseRecoverable(this.start, "Invalid regular expression: /" + this.source + "/: " + message); }; // If u flag is given, this returns the code point at the index (it combines a surrogate pair). // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair). RegExpValidationState.prototype.at = function at(i, forceU) { if (forceU === void 0) forceU = false; var s = this.source; var l = s.length; if (i >= l) { return -1; } var c = s.charCodeAt(i); if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) { return c; } var next = s.charCodeAt(i + 1); return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c; }; RegExpValidationState.prototype.nextIndex = function nextIndex(i, forceU) { if (forceU === void 0) forceU = false; var s = this.source; var l = s.length; if (i >= l) { return l; } var c = s.charCodeAt(i), next; if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l || (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) { return i + 1; } return i + 2; }; RegExpValidationState.prototype.current = function current(forceU) { if (forceU === void 0) forceU = false; return this.at(this.pos, forceU); }; RegExpValidationState.prototype.lookahead = function lookahead(forceU) { if (forceU === void 0) forceU = false; return this.at(this.nextIndex(this.pos, forceU), forceU); }; RegExpValidationState.prototype.advance = function advance(forceU) { if (forceU === void 0) forceU = false; this.pos = this.nextIndex(this.pos, forceU); }; RegExpValidationState.prototype.eat = function eat(ch, forceU) { if (forceU === void 0) forceU = false; if (this.current(forceU) === ch) { this.advance(forceU); return true; } return false; }; RegExpValidationState.prototype.eatChars = function eatChars(chs, forceU) { if (forceU === void 0) forceU = false; var pos = this.pos; for (var i = 0, list = chs; i < list.length; i += 1) { var ch = list[i]; var current = this.at(pos, forceU); if (current === -1 || current !== ch) { return false; } pos = this.nextIndex(pos, forceU); } this.pos = pos; return true; }; /** * Validate the flags part of a given RegExpLiteral. * * @param {RegExpValidationState} state The state to validate RegExp. * @returns {void} */ pp$1.validateRegExpFlags = function (state) { var validFlags = state.validFlags; var flags = state.flags; var u = false; var v = false; for (var i = 0; i < flags.length; i++) { var flag = flags.charAt(i); if (validFlags.indexOf(flag) === -1) { this.raise(state.start, "Invalid regular expression flag"); } if (flags.indexOf(flag, i + 1) > -1) { this.raise(state.start, "Duplicate regular expression flag"); } if (flag === "u") { u = true; } if (flag === "v") { v = true; } } if (this.options.ecmaVersion >= 15 && u && v) { this.raise(state.start, "Invalid regular expression flag"); } }; /** * Validate the pattern part of a given RegExpLiteral. * * @param {RegExpValidationState} state The state to validate RegExp. * @returns {void} */ pp$1.validateRegExpPattern = function (state) { this.regexp_pattern(state); // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of // parsing contains a |GroupName|, reparse with the goal symbol // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError* // exception if _P_ did not conform to the grammar, if any elements of _P_ // were not matched by the parse, or if any Early Error conditions exist. if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) { state.switchN = true; this.regexp_pattern(state); } }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern pp$1.regexp_pattern = function (state) { state.pos = 0; state.lastIntValue = 0; state.lastStringValue = ""; state.lastAssertionIsQuantifiable = false; state.numCapturingParens = 0; state.maxBackReference = 0; state.groupNames.length = 0; state.backReferenceNames.length = 0; this.regexp_disjunction(state); if (state.pos !== state.source.length) { // Make the same messages as V8. if (state.eat(0x29 /* ) */)) { state.raise("Unmatched ')'"); } if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) { state.raise("Lone quantifier brackets"); } } if (state.maxBackReference > state.numCapturingParens) { state.raise("Invalid escape"); } for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) { var name = list[i]; if (state.groupNames.indexOf(name) === -1) { state.raise("Invalid named capture referenced"); } } }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction pp$1.regexp_disjunction = function (state) { this.regexp_alternative(state); while (state.eat(0x7C /* | */)) { this.regexp_alternative(state); } // Make the same message as V8. if (this.regexp_eatQuantifier(state, true)) { state.raise("Nothing to repeat"); } if (state.eat(0x7B /* { */)) { state.raise("Lone quantifier brackets"); } }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative pp$1.regexp_alternative = function (state) { while (state.pos < state.source.length && this.regexp_eatTerm(state)) {} }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term pp$1.regexp_eatTerm = function (state) { if (this.regexp_eatAssertion(state)) { // Handle `QuantifiableAssertion Quantifier` alternative. // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion // is a QuantifiableAssertion. if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) { // Make the same message as V8. if (state.switchU) { state.raise("Invalid quantifier"); } } return true; } if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) { this.regexp_eatQuantifier(state); return true; } return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion pp$1.regexp_eatAssertion = function (state) { var start = state.pos; state.lastAssertionIsQuantifiable = false; // ^, $ if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) { return true; } // \b \B if (state.eat(0x5C /* \ */)) { if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) { return true; } state.pos = start; } // Lookahead / Lookbehind if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) { var lookbehind = false; if (this.options.ecmaVersion >= 9) { lookbehind = state.eat(0x3C /* < */); } if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) { this.regexp_disjunction(state); if (!state.eat(0x29 /* ) */)) { state.raise("Unterminated group"); } state.lastAssertionIsQuantifiable = !lookbehind; return true; } } state.pos = start; return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier pp$1.regexp_eatQuantifier = function (state, noError) { if (noError === void 0) noError = false; if (this.regexp_eatQuantifierPrefix(state, noError)) { state.eat(0x3F /* ? */); return true; } return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix pp$1.regexp_eatQuantifierPrefix = function (state, noError) { return state.eat(0x2A /* * */) || state.eat(0x2B /* + */) || state.eat(0x3F /* ? */) || this.regexp_eatBracedQuantifier(state, noError); }; pp$1.regexp_eatBracedQuantifier = function (state, noError) { var start = state.pos; if (state.eat(0x7B /* { */)) { var min = 0, max = -1; if (this.regexp_eatDecimalDigits(state)) { min = state.lastIntValue; if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) { max = state.lastIntValue; } if (state.eat(0x7D /* } */)) { // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term if (max !== -1 && max < min && !noError) { state.raise("numbers out of order in {} quantifier"); } return true; } } if (state.switchU && !noError) { state.raise("Incomplete quantifier"); } state.pos = start; } return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom pp$1.regexp_eatAtom = function (state) { return this.regexp_eatPatternCharacters(state) || state.eat(0x2E /* . */) || this.regexp_eatReverseSolidusAtomEscape(state) || this.regexp_eatCharacterClass(state) || this.regexp_eatUncapturingGroup(state) || this.regexp_eatCapturingGroup(state); }; pp$1.regexp_eatReverseSolidusAtomEscape = function (state) { var start = state.pos; if (state.eat(0x5C /* \ */)) { if (this.regexp_eatAtomEscape(state)) { return true; } state.pos = start; } return false; }; pp$1.regexp_eatUncapturingGroup = function (state) { var start = state.pos; if (state.eat(0x28 /* ( */)) { if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) { this.regexp_disjunction(state); if (state.eat(0x29 /* ) */)) { return true; } state.raise("Unterminated group"); } state.pos = start; } return false; }; pp$1.regexp_eatCapturingGroup = function (state) { if (state.eat(0x28 /* ( */)) { if (this.options.ecmaVersion >= 9) { this.regexp_groupSpecifier(state); } else if (state.current() === 0x3F /* ? */) { state.raise("Invalid group"); } this.regexp_disjunction(state); if (state.eat(0x29 /* ) */)) { state.numCapturingParens += 1; return true; } state.raise("Unterminated group"); } return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom pp$1.regexp_eatExtendedAtom = function (state) { return state.eat(0x2E /* . */) || this.regexp_eatReverseSolidusAtomEscape(state) || this.regexp_eatCharacterClass(state) || this.regexp_eatUncapturingGroup(state) || this.regexp_eatCapturingGroup(state) || this.regexp_eatInvalidBracedQuantifier(state) || this.regexp_eatExtendedPatternCharacter(state); }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier pp$1.regexp_eatInvalidBracedQuantifier = function (state) { if (this.regexp_eatBracedQuantifier(state, true)) { state.raise("Nothing to repeat"); } return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter pp$1.regexp_eatSyntaxCharacter = function (state) { var ch = state.current(); if (isSyntaxCharacter(ch)) { state.lastIntValue = ch; state.advance(); return true; } return false; }; function isSyntaxCharacter(ch) { return ch === 0x24 /* $ */ || ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ || ch === 0x2E /* . */ || ch === 0x3F /* ? */ || ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ || ch >= 0x7B /* { */ && ch <= 0x7D /* } */; } // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter // But eat eager. pp$1.regexp_eatPatternCharacters = function (state) { var start = state.pos; var ch = 0; while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) { state.advance(); } return state.pos !== start; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter pp$1.regexp_eatExtendedPatternCharacter = function (state) { var ch = state.current(); if (ch !== -1 && ch !== 0x24 /* $ */ && !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) && ch !== 0x2E /* . */ && ch !== 0x3F /* ? */ && ch !== 0x5B /* [ */ && ch !== 0x5E /* ^ */ && ch !== 0x7C /* | */) { state.advance(); return true; } return false; }; // GroupSpecifier :: // [empty] // `?` GroupName pp$1.regexp_groupSpecifier = function (state) { if (state.eat(0x3F /* ? */)) { if (this.regexp_eatGroupName(state)) { if (state.groupNames.indexOf(state.lastStringValue) !== -1) { state.raise("Duplicate capture group name"); } state.groupNames.push(state.lastStringValue); return; } state.raise("Invalid group"); } }; // GroupName :: // `<` RegExpIdentifierName `>` // Note: this updates `state.lastStringValue` property with the eaten name. pp$1.regexp_eatGroupName = function (state) { state.lastStringValue = ""; if (state.eat(0x3C /* < */)) { if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) { return true; } state.raise("Invalid capture group name"); } return false; }; // RegExpIdentifierName :: // RegExpIdentifierStart // RegExpIdentifierName RegExpIdentifierPart // Note: this updates `state.lastStringValue` property with the eaten name. pp$1.regexp_eatRegExpIdentifierName = function (state) { state.lastStringValue = ""; if (this.regexp_eatRegExpIdentifierStart(state)) { state.lastStringValue += codePointToString(state.lastIntValue); while (this.regexp_eatRegExpIdentifierPart(state)) { state.lastStringValue += codePointToString(state.lastIntValue); } return true; } return false; }; // RegExpIdentifierStart :: // UnicodeIDStart // `$` // `_` // `\` RegExpUnicodeEscapeSequence[+U] pp$1.regexp_eatRegExpIdentifierStart = function (state) { var start = state.pos; var forceU = this.options.ecmaVersion >= 11; var ch = state.current(forceU); state.advance(forceU); if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { ch = state.lastIntValue; } if (isRegExpIdentifierStart(ch)) { state.lastIntValue = ch; return true; } state.pos = start; return false; }; function isRegExpIdentifierStart(ch) { return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F; /* _ */ } // RegExpIdentifierPart :: // UnicodeIDContinue // `$` // `_` // `\` RegExpUnicodeEscapeSequence[+U] // // pp$1.regexp_eatRegExpIdentifierPart = function (state) { var start = state.pos; var forceU = this.options.ecmaVersion >= 11; var ch = state.current(forceU); state.advance(forceU); if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { ch = state.lastIntValue; } if (isRegExpIdentifierPart(ch)) { state.lastIntValue = ch; return true; } state.pos = start; return false; }; function isRegExpIdentifierPart(ch) { return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* */ || ch === 0x200D; /* */ } // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape pp$1.regexp_eatAtomEscape = function (state) { if (this.regexp_eatBackReference(state) || this.regexp_eatCharacterClassEscape(state) || this.regexp_eatCharacterEscape(state) || state.switchN && this.regexp_eatKGroupName(state)) { return true; } if (state.switchU) { // Make the same message as V8. if (state.current() === 0x63 /* c */) { state.raise("Invalid unicode escape"); } state.raise("Invalid escape"); } return false; }; pp$1.regexp_eatBackReference = function (state) { var start = state.pos; if (this.regexp_eatDecimalEscape(state)) { var n = state.lastIntValue; if (state.switchU) { // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape if (n > state.maxBackReference) { state.maxBackReference = n; } return true; } if (n <= state.numCapturingParens) { return true; } state.pos = start; } return false; }; pp$1.regexp_eatKGroupName = function (state) { if (state.eat(0x6B /* k */)) { if (this.regexp_eatGroupName(state)) { state.backReferenceNames.push(state.lastStringValue); return true; } state.raise("Invalid named reference"); } return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape pp$1.regexp_eatCharacterEscape = function (state) { return this.regexp_eatControlEscape(state) || this.regexp_eatCControlLetter(state) || this.regexp_eatZero(state) || this.regexp_eatHexEscapeSequence(state) || this.regexp_eatRegExpUnicodeEscapeSequence(state, false) || !state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state) || this.regexp_eatIdentityEscape(state); }; pp$1.regexp_eatCControlLetter = function (state) { var start = state.pos; if (state.eat(0x63 /* c */)) { if (this.regexp_eatControlLetter(state)) { return true; } state.pos = start; } return false; }; pp$1.regexp_eatZero = function (state) { if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) { state.lastIntValue = 0; state.advance(); return true; } return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape pp$1.regexp_eatControlEscape = function (state) { var ch = state.current(); if (ch === 0x74 /* t */) { state.lastIntValue = 0x09; /* \t */ state.advance(); return true; } if (ch === 0x6E /* n */) { state.lastIntValue = 0x0A; /* \n */ state.advance(); return true; } if (ch === 0x76 /* v */) { state.lastIntValue = 0x0B; /* \v */ state.advance(); return true; } if (ch === 0x66 /* f */) { state.lastIntValue = 0x0C; /* \f */ state.advance(); return true; } if (ch === 0x72 /* r */) { state.lastIntValue = 0x0D; /* \r */ state.advance(); return true; } return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter pp$1.regexp_eatControlLetter = function (state) { var ch = state.current(); if (isControlLetter(ch)) { state.lastIntValue = ch % 0x20; state.advance(); return true; } return false; }; function isControlLetter(ch) { return ch >= 0x41 /* A */ && ch <= 0x5A /* Z */ || ch >= 0x61 /* a */ && ch <= 0x7A /* z */; } // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence pp$1.regexp_eatRegExpUnicodeEscapeSequence = function (state, forceU) { if (forceU === void 0) forceU = false; var start = state.pos; var switchU = forceU || state.switchU; if (state.eat(0x75 /* u */)) { if (this.regexp_eatFixedHexDigits(state, 4)) { var lead = state.lastIntValue; if (switchU && lead >= 0xD800 && lead <= 0xDBFF) { var leadSurrogateEnd = state.pos; if (state.eat(0x5C /* \ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) { var trail = state.lastIntValue; if (trail >= 0xDC00 && trail <= 0xDFFF) { state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; return true; } } state.pos = leadSurrogateEnd; state.lastIntValue = lead; } return true; } if (switchU && state.eat(0x7B /* { */) && this.regexp_eatHexDigits(state) && state.eat(0x7D /* } */) && isValidUnicode(state.lastIntValue)) { return true; } if (switchU) { state.raise("Invalid unicode escape"); } state.pos = start; } return false; }; function isValidUnicode(ch) { return ch >= 0 && ch <= 0x10FFFF; } // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape pp$1.regexp_eatIdentityEscape = function (state) { if (state.switchU) { if (this.regexp_eatSyntaxCharacter(state)) { return true; } if (state.eat(0x2F /* / */)) { state.lastIntValue = 0x2F; /* / */ return true; } return false; } var ch = state.current(); if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) { state.lastIntValue = ch; state.advance(); return true; } return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape pp$1.regexp_eatDecimalEscape = function (state) { state.lastIntValue = 0; var ch = state.current(); if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) { do { state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */); state.advance(); } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */); return true; } return false; }; // Return values used by character set parsing methods, needed to // forbid negation of sets that can match strings. var CharSetNone = 0; // Nothing parsed var CharSetOk = 1; // Construct parsed, cannot contain strings var CharSetString = 2; // Construct parsed, can contain strings // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape pp$1.regexp_eatCharacterClassEscape = function (state) { var ch = state.current(); if (isCharacterClassEscape(ch)) { state.lastIntValue = -1; state.advance(); return CharSetOk; } var negate = false; if (state.switchU && this.options.ecmaVersion >= 9 && ((negate = ch === 0x50 /* P */) || ch === 0x70 /* p */)) { state.lastIntValue = -1; state.advance(); var result; if (state.eat(0x7B /* { */) && (result = this.regexp_eatUnicodePropertyValueExpression(state)) && state.eat(0x7D /* } */)) { if (negate && result === CharSetString) { state.raise("Invalid property name"); } return result; } state.raise("Invalid property name"); } return CharSetNone; }; function isCharacterClassEscape(ch) { return ch === 0x64 /* d */ || ch === 0x44 /* D */ || ch === 0x73 /* s */ || ch === 0x53 /* S */ || ch === 0x77 /* w */ || ch === 0x57 /* W */; } // UnicodePropertyValueExpression :: // UnicodePropertyName `=` UnicodePropertyValue // LoneUnicodePropertyNameOrValue pp$1.regexp_eatUnicodePropertyValueExpression = function (state) { var start = state.pos; // UnicodePropertyName `=` UnicodePropertyValue if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) { var name = state.lastStringValue; if (this.regexp_eatUnicodePropertyValue(state)) { var value = state.lastStringValue; this.regexp_validateUnicodePropertyNameAndValue(state, name, value); return CharSetOk; } } state.pos = start; // LoneUnicodePropertyNameOrValue if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) { var nameOrValue = state.lastStringValue; return this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue); } return CharSetNone; }; pp$1.regexp_validateUnicodePropertyNameAndValue = function (state, name, value) { if (!hasOwn(state.unicodeProperties.nonBinary, name)) { state.raise("Invalid property name"); } if (!state.unicodeProperties.nonBinary[name].test(value)) { state.raise("Invalid property value"); } }; pp$1.regexp_validateUnicodePropertyNameOrValue = function (state, nameOrValue) { if (state.unicodeProperties.binary.test(nameOrValue)) { return CharSetOk; } if (state.switchV && state.unicodeProperties.binaryOfStrings.test(nameOrValue)) { return CharSetString; } state.raise("Invalid property name"); }; // UnicodePropertyName :: // UnicodePropertyNameCharacters pp$1.regexp_eatUnicodePropertyName = function (state) { var ch = 0; state.lastStringValue = ""; while (isUnicodePropertyNameCharacter(ch = state.current())) { state.lastStringValue += codePointToString(ch); state.advance(); } return state.lastStringValue !== ""; }; function isUnicodePropertyNameCharacter(ch) { return isControlLetter(ch) || ch === 0x5F; /* _ */ } // UnicodePropertyValue :: // UnicodePropertyValueCharacters pp$1.regexp_eatUnicodePropertyValue = function (state) { var ch = 0; state.lastStringValue = ""; while (isUnicodePropertyValueCharacter(ch = state.current())) { state.lastStringValue += codePointToString(ch); state.advance(); } return state.lastStringValue !== ""; }; function isUnicodePropertyValueCharacter(ch) { return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch); } // LoneUnicodePropertyNameOrValue :: // UnicodePropertyValueCharacters pp$1.regexp_eatLoneUnicodePropertyNameOrValue = function (state) { return this.regexp_eatUnicodePropertyValue(state); }; // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass pp$1.regexp_eatCharacterClass = function (state) { if (state.eat(0x5B /* [ */)) { var negate = state.eat(0x5E /* ^ */); var result = this.regexp_classContents(state); if (!state.eat(0x5D /* ] */)) { state.raise("Unterminated character class"); } if (negate && result === CharSetString) { state.raise("Negated character class may contain strings"); } return true; } return false; }; // https://tc39.es/ecma262/#prod-ClassContents // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges pp$1.regexp_classContents = function (state) { if (state.current() === 0x5D /* ] */) { return CharSetOk; } if (state.switchV) { return this.regexp_classSetExpression(state); } this.regexp_nonEmptyClassRanges(state); return CharSetOk; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash pp$1.regexp_nonEmptyClassRanges = function (state) { while (this.regexp_eatClassAtom(state)) { var left = state.lastIntValue; if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) { var right = state.lastIntValue; if (state.switchU && (left === -1 || right === -1)) { state.raise("Invalid character class"); } if (left !== -1 && right !== -1 && left > right) { state.raise("Range out of order in character class"); } } } }; // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash pp$1.regexp_eatClassAtom = function (state) { var start = state.pos; if (state.eat(0x5C /* \ */)) { if (this.regexp_eatClassEscape(state)) { return true; } if (state.switchU) { // Make the same message as V8. var ch$1 = state.current(); if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) { state.raise("Invalid class escape"); } state.raise("Invalid escape"); } state.pos = start; } var ch = state.current(); if (ch !== 0x5D /* ] */) { state.lastIntValue = ch; state.advance(); return true; } return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape pp$1.regexp_eatClassEscape = function (state) { var start = state.pos; if (state.eat(0x62 /* b */)) { state.lastIntValue = 0x08; /* */ return true; } if (state.switchU && state.eat(0x2D /* - */)) { state.lastIntValue = 0x2D; /* - */ return true; } if (!state.switchU && state.eat(0x63 /* c */)) { if (this.regexp_eatClassControlLetter(state)) { return true; } state.pos = start; } return this.regexp_eatCharacterClassEscape(state) || this.regexp_eatCharacterEscape(state); }; // https://tc39.es/ecma262/#prod-ClassSetExpression // https://tc39.es/ecma262/#prod-ClassUnion // https://tc39.es/ecma262/#prod-ClassIntersection // https://tc39.es/ecma262/#prod-ClassSubtraction pp$1.regexp_classSetExpression = function (state) { var result = CharSetOk, subResult; if (this.regexp_eatClassSetRange(state)) ;else if (subResult = this.regexp_eatClassSetOperand(state)) { if (subResult === CharSetString) { result = CharSetString; } // https://tc39.es/ecma262/#prod-ClassIntersection var start = state.pos; while (state.eatChars([0x26, 0x26] /* && */)) { if (state.current() !== 0x26 /* & */ && (subResult = this.regexp_eatClassSetOperand(state))) { if (subResult !== CharSetString) { result = CharSetOk; } continue; } state.raise("Invalid character in character class"); } if (start !== state.pos) { return result; } // https://tc39.es/ecma262/#prod-ClassSubtraction while (state.eatChars([0x2D, 0x2D] /* -- */)) { if (this.regexp_eatClassSetOperand(state)) { continue; } state.raise("Invalid character in character class"); } if (start !== state.pos) { return result; } } else { state.raise("Invalid character in character class"); } // https://tc39.es/ecma262/#prod-ClassUnion for (;;) { if (this.regexp_eatClassSetRange(state)) { continue; } subResult = this.regexp_eatClassSetOperand(state); if (!subResult) { return result; } if (subResult === CharSetString) { result = CharSetString; } } }; // https://tc39.es/ecma262/#prod-ClassSetRange pp$1.regexp_eatClassSetRange = function (state) { var start = state.pos; if (this.regexp_eatClassSetCharacter(state)) { var left = state.lastIntValue; if (state.eat(0x2D /* - */) && this.regexp_eatClassSetCharacter(state)) { var right = state.lastIntValue; if (left !== -1 && right !== -1 && left > right) { state.raise("Range out of order in character class"); } return true; } state.pos = start; } return false; }; // https://tc39.es/ecma262/#prod-ClassSetOperand pp$1.regexp_eatClassSetOperand = function (state) { if (this.regexp_eatClassSetCharacter(state)) { return CharSetOk; } return this.regexp_eatClassStringDisjunction(state) || this.regexp_eatNestedClass(state); }; // https://tc39.es/ecma262/#prod-NestedClass pp$1.regexp_eatNestedClass = function (state) { var start = state.pos; if (state.eat(0x5B /* [ */)) { var negate = state.eat(0x5E /* ^ */); var result = this.regexp_classContents(state); if (state.eat(0x5D /* ] */)) { if (negate && result === CharSetString) { state.raise("Negated character class may contain strings"); } return result; } state.pos = start; } if (state.eat(0x5C /* \ */)) { var result$1 = this.regexp_eatCharacterClassEscape(state); if (result$1) { return result$1; } state.pos = start; } return null; }; // https://tc39.es/ecma262/#prod-ClassStringDisjunction pp$1.regexp_eatClassStringDisjunction = function (state) { var start = state.pos; if (state.eatChars([0x5C, 0x71] /* \q */)) { if (state.eat(0x7B /* { */)) { var result = this.regexp_classStringDisjunctionContents(state); if (state.eat(0x7D /* } */)) { return result; } } else { // Make the same message as V8. state.raise("Invalid escape"); } state.pos = start; } return null; }; // https://tc39.es/ecma262/#prod-ClassStringDisjunctionContents pp$1.regexp_classStringDisjunctionContents = function (state) { var result = this.regexp_classString(state); while (state.eat(0x7C /* | */)) { if (this.regexp_classString(state) === CharSetString) { result = CharSetString; } } return result; }; // https://tc39.es/ecma262/#prod-ClassString // https://tc39.es/ecma262/#prod-NonEmptyClassString pp$1.regexp_classString = function (state) { var count = 0; while (this.regexp_eatClassSetCharacter(state)) { count++; } return count === 1 ? CharSetOk : CharSetString; }; // https://tc39.es/ecma262/#prod-ClassSetCharacter pp$1.regexp_eatClassSetCharacter = function (state) { var start = state.pos; if (state.eat(0x5C /* \ */)) { if (this.regexp_eatCharacterEscape(state) || this.regexp_eatClassSetReservedPunctuator(state)) { return true; } if (state.eat(0x62 /* b */)) { state.lastIntValue = 0x08; /* */ return true; } state.pos = start; return false; } var ch = state.current(); if (ch < 0 || ch === state.lookahead() && isClassSetReservedDoublePunctuatorCharacter(ch)) { return false; } if (isClassSetSyntaxCharacter(ch)) { return false; } state.advance(); state.lastIntValue = ch; return true; }; // https://tc39.es/ecma262/#prod-ClassSetReservedDoublePunctuator function isClassSetReservedDoublePunctuatorCharacter(ch) { return ch === 0x21 /* ! */ || ch >= 0x23 /* # */ && ch <= 0x26 /* & */ || ch >= 0x2A /* * */ && ch <= 0x2C /* , */ || ch === 0x2E /* . */ || ch >= 0x3A /* : */ && ch <= 0x40 /* @ */ || ch === 0x5E /* ^ */ || ch === 0x60 /* ` */ || ch === 0x7E /* ~ */; } // https://tc39.es/ecma262/#prod-ClassSetSyntaxCharacter function isClassSetSyntaxCharacter(ch) { return ch === 0x28 /* ( */ || ch === 0x29 /* ) */ || ch === 0x2D /* - */ || ch === 0x2F /* / */ || ch >= 0x5B /* [ */ && ch <= 0x5D /* ] */ || ch >= 0x7B /* { */ && ch <= 0x7D /* } */; } // https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator pp$1.regexp_eatClassSetReservedPunctuator = function (state) { var ch = state.current(); if (isClassSetReservedPunctuator(ch)) { state.lastIntValue = ch; state.advance(); return true; } return false; }; // https://tc39.es/ecma262/#prod-ClassSetReservedPunctuator function isClassSetReservedPunctuator(ch) { return ch === 0x21 /* ! */ || ch === 0x23 /* # */ || ch === 0x25 /* % */ || ch === 0x26 /* & */ || ch === 0x2C /* , */ || ch === 0x2D /* - */ || ch >= 0x3A /* : */ && ch <= 0x3E /* > */ || ch === 0x40 /* @ */ || ch === 0x60 /* ` */ || ch === 0x7E /* ~ */; } // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter pp$1.regexp_eatClassControlLetter = function (state) { var ch = state.current(); if (isDecimalDigit(ch) || ch === 0x5F /* _ */) { state.lastIntValue = ch % 0x20; state.advance(); return true; } return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence pp$1.regexp_eatHexEscapeSequence = function (state) { var start = state.pos; if (state.eat(0x78 /* x */)) { if (this.regexp_eatFixedHexDigits(state, 2)) { return true; } if (state.switchU) { state.raise("Invalid escape"); } state.pos = start; } return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits pp$1.regexp_eatDecimalDigits = function (state) { var start = state.pos; var ch = 0; state.lastIntValue = 0; while (isDecimalDigit(ch = state.current())) { state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */); state.advance(); } return state.pos !== start; }; function isDecimalDigit(ch) { return ch >= 0x30 /* 0 */ && ch <= 0x39; /* 9 */ } // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits pp$1.regexp_eatHexDigits = function (state) { var start = state.pos; var ch = 0; state.lastIntValue = 0; while (isHexDigit(ch = state.current())) { state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch); state.advance(); } return state.pos !== start; }; function isHexDigit(ch) { return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */ || ch >= 0x41 /* A */ && ch <= 0x46 /* F */ || ch >= 0x61 /* a */ && ch <= 0x66 /* f */; } function hexToInt(ch) { if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) { return 10 + (ch - 0x41 /* A */); } if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) { return 10 + (ch - 0x61 /* a */); } return ch - 0x30; /* 0 */ } // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence // Allows only 0-377(octal) i.e. 0-255(decimal). pp$1.regexp_eatLegacyOctalEscapeSequence = function (state) { if (this.regexp_eatOctalDigit(state)) { var n1 = state.lastIntValue; if (this.regexp_eatOctalDigit(state)) { var n2 = state.lastIntValue; if (n1 <= 3 && this.regexp_eatOctalDigit(state)) { state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue; } else { state.lastIntValue = n1 * 8 + n2; } } else { state.lastIntValue = n1; } return true; } return false; }; // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit pp$1.regexp_eatOctalDigit = function (state) { var ch = state.current(); if (isOctalDigit(ch)) { state.lastIntValue = ch - 0x30; /* 0 */ state.advance(); return true; } state.lastIntValue = 0; return false; }; function isOctalDigit(ch) { return ch >= 0x30 /* 0 */ && ch <= 0x37; /* 7 */ } // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence pp$1.regexp_eatFixedHexDigits = function (state, length) { var start = state.pos; state.lastIntValue = 0; for (var i = 0; i < length; ++i) { var ch = state.current(); if (!isHexDigit(ch)) { state.pos = start; return false; } state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch); state.advance(); } return true; }; // Object type used to represent tokens. Note that normally, tokens // simply exist as properties on the parser object. This is only // used for the onToken callback and the external tokenizer. var Token = function Token(p) { this.type = p.type; this.value = p.value; this.start = p.start; this.end = p.end; if (p.options.locations) { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); } if (p.options.ranges) { this.range = [p.start, p.end]; } }; // ## Tokenizer var pp = Parser.prototype; // Move to the next token pp.next = function (ignoreEscapeSequenceInKeyword) { if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword); } if (this.options.onToken) { this.options.onToken(new Token(this)); } this.lastTokEnd = this.end; this.lastTokStart = this.start; this.lastTokEndLoc = this.endLoc; this.lastTokStartLoc = this.startLoc; this.nextToken(); }; pp.getToken = function () { this.next(); return new Token(this); }; // If we're in an ES6 environment, make parsers iterable if (typeof Symbol !== "undefined") { pp[Symbol.iterator] = function () { var this$1$1 = this; return { next: function () { var token = this$1$1.getToken(); return { done: token.type === types$1.eof, value: token }; } }; }; } // Toggle strict mode. Re-reads the next number or string to please // pedantic tests (`"use strict"; 010;` should fail). // Read a single token, updating the parser object's token-related // properties. pp.nextToken = function () { var curContext = this.curContext(); if (!curContext || !curContext.preserveSpace) { this.skipSpace(); } this.start = this.pos; if (this.options.locations) { this.startLoc = this.curPosition(); } if (this.pos >= this.input.length) { return this.finishToken(types$1.eof); } if (curContext.override) { return curContext.override(this); } else { this.readToken(this.fullCharCodeAtPos()); } }; pp.readToken = function (code) { // Identifier or keyword. '\uXXXX' sequences are allowed in // identifiers, so '\' also dispatches to that. if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */) { return this.readWord(); } return this.getTokenFromCode(code); }; pp.fullCharCodeAtPos = function () { var code = this.input.charCodeAt(this.pos); if (code <= 0xd7ff || code >= 0xdc00) { return code; } var next = this.input.charCodeAt(this.pos + 1); return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00; }; pp.skipBlockComment = function () { var startLoc = this.options.onComment && this.curPosition(); var start = this.pos, end = this.input.indexOf("*/", this.pos += 2); if (end === -1) { this.raise(this.pos - 2, "Unterminated comment"); } this.pos = end + 2; if (this.options.locations) { for (var nextBreak = void 0, pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) { ++this.curLine; pos = this.lineStart = nextBreak; } } if (this.options.onComment) { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos, startLoc, this.curPosition()); } }; pp.skipLineComment = function (startSkip) { var start = this.pos; var startLoc = this.options.onComment && this.curPosition(); var ch = this.input.charCodeAt(this.pos += startSkip); while (this.pos < this.input.length && !isNewLine(ch)) { ch = this.input.charCodeAt(++this.pos); } if (this.options.onComment) { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos, startLoc, this.curPosition()); } }; // Called at the start of the parse and after every token. Skips // whitespace and comments, and. pp.skipSpace = function () { loop: while (this.pos < this.input.length) { var ch = this.input.charCodeAt(this.pos); switch (ch) { case 32: case 160: // ' ' ++this.pos; break; case 13: if (this.input.charCodeAt(this.pos + 1) === 10) { ++this.pos; } case 10: case 8232: case 8233: ++this.pos; if (this.options.locations) { ++this.curLine; this.lineStart = this.pos; } break; case 47: // '/' switch (this.input.charCodeAt(this.pos + 1)) { case 42: // '*' this.skipBlockComment(); break; case 47: this.skipLineComment(2); break; default: break loop; } break; default: if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) { ++this.pos; } else { break loop; } } } }; // Called at the end of every token. Sets `end`, `val`, and // maintains `context` and `exprAllowed`, and skips the space after // the token, so that the next one's `start` will point at the // right position. pp.finishToken = function (type, val) { this.end = this.pos; if (this.options.locations) { this.endLoc = this.curPosition(); } var prevType = this.type; this.type = type; this.value = val; this.updateContext(prevType); }; // ### Token reading // This is the function that is called to fetch the next token. It // is somewhat obscure, because it works in character codes rather // than characters, and because operator parsing has been inlined // into it. // // All in the name of speed. // pp.readToken_dot = function () { var next = this.input.charCodeAt(this.pos + 1); if (next >= 48 && next <= 57) { return this.readNumber(true); } var next2 = this.input.charCodeAt(this.pos + 2); if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.' this.pos += 3; return this.finishToken(types$1.ellipsis); } else { ++this.pos; return this.finishToken(types$1.dot); } }; pp.readToken_slash = function () { // '/' var next = this.input.charCodeAt(this.pos + 1); if (this.exprAllowed) { ++this.pos; return this.readRegexp(); } if (next === 61) { return this.finishOp(types$1.assign, 2); } return this.finishOp(types$1.slash, 1); }; pp.readToken_mult_modulo_exp = function (code) { // '%*' var next = this.input.charCodeAt(this.pos + 1); var size = 1; var tokentype = code === 42 ? types$1.star : types$1.modulo; // exponentiation operator ** and **= if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) { ++size; tokentype = types$1.starstar; next = this.input.charCodeAt(this.pos + 2); } if (next === 61) { return this.finishOp(types$1.assign, size + 1); } return this.finishOp(tokentype, size); }; pp.readToken_pipe_amp = function (code) { // '|&' var next = this.input.charCodeAt(this.pos + 1); if (next === code) { if (this.options.ecmaVersion >= 12) { var next2 = this.input.charCodeAt(this.pos + 2); if (next2 === 61) { return this.finishOp(types$1.assign, 3); } } return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2); } if (next === 61) { return this.finishOp(types$1.assign, 2); } return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1); }; pp.readToken_caret = function () { // '^' var next = this.input.charCodeAt(this.pos + 1); if (next === 61) { return this.finishOp(types$1.assign, 2); } return this.finishOp(types$1.bitwiseXOR, 1); }; pp.readToken_plus_min = function (code) { // '+-' var next = this.input.charCodeAt(this.pos + 1); if (next === code) { if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 && (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) { // A `-->` line comment this.skipLineComment(3); this.skipSpace(); return this.nextToken(); } return this.finishOp(types$1.incDec, 2); } if (next === 61) { return this.finishOp(types$1.assign, 2); } return this.finishOp(types$1.plusMin, 1); }; pp.readToken_lt_gt = function (code) { // '<>' var next = this.input.charCodeAt(this.pos + 1); var size = 1; if (next === code) { size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2; if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1); } return this.finishOp(types$1.bitShift, size); } if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && this.input.charCodeAt(this.pos + 3) === 45) { // ` end` in milliseconds), original text, translated text.\n - Keep non-speech text (e.g., `[Music]`) untranslated.\n - Separate cues with a blank line.\n\n**Output:** Only the pure VTT content.\n\n**Example:**\n```vtt\nWEBVTT\n\n1000 --> 3500\nHello world!\n\u4F60\u597D\uFF0C\u4E16\u754C\uFF01\n\n4000 --> 6000\nGood morning.\n\u65E9\u4E0A\u597D\u3002\n```");const defaultRequestHook="async (args, { url, body, headers, userMsg, method } = {}) => {\n console.log(\"request hook args:\", args);\n // return { url, body, headers, userMsg, method };\n}";const defaultResponseHook="async ({ res, ...args }) => {\n console.log(\"reaponse hook args:\", res, args);\n // const translations = [[\"\u4F60\u597D\", \"zh\"]];\n // const modelMsg = \"\";\n // return { translations, modelMsg };\n}";// 翻译接口默认参数 const defaultApi={apiSlug:"",// 唯一标识 apiName:"",// 接口名称 apiType:"",// 接口类型 url:"",key:"",model:"",// 模型名称 systemPrompt:defaultSystemPrompt,subtitlePrompt:defaultSubtitlePrompt,userPrompt:"",tone:BUILTIN_STONES[0],// 翻译风格 placeholder:BUILTIN_PLACEHOLDERS[0],// 占位符 placetag:[BUILTIN_PLACETAGS[0]],// 占位标签 // aiTerms: false, // AI智能专业术语 (todo: 备用) customHeader:"",customBody:"",reqHook:"",// request 钩子函数 resHook:"",// response 钩子函数 fetchLimit:DEFAULT_FETCH_LIMIT,// 最大请求数量 fetchInterval:DEFAULT_FETCH_INTERVAL,// 请求间隔时间 httpTimeout:DEFAULT_HTTP_TIMEOUT*30,// 请求超时时间 batchInterval:DEFAULT_BATCH_INTERVAL,// 批处理请求间隔时间 batchSize:DEFAULT_BATCH_SIZE,// 每次最多发送段落数量 batchLength:DEFAULT_BATCH_LENGTH,// 每次发送最大文字数量 useBatchFetch:false,// 是否启用聚合发送请求 useContext:false,// 是否启用智能上下文 contextSize:DEFAULT_CONTEXT_SIZE,// 智能上下文保留会话数 temperature:0.0,maxTokens:20480,think:false,thinkIgnore:"qwen3,deepseek-r1",isDisabled:false,// 是否不显示, region:""// Azure 专用 };const defaultApiOpts={[OPT_TRANS_BUILTINAI]:defaultApi,[OPT_TRANS_GOOGLE]:{...defaultApi,url:"https://translate.googleapis.com/translate_a/single"},[OPT_TRANS_GOOGLE_2]:{...defaultApi,url:"https://translate-pa.googleapis.com/v1/translateHtml",key:"AIzaSyATBXajvzQLTDHEQbcpq0Ihe0vWDHmO520",useBatchFetch:true},[OPT_TRANS_MICROSOFT]:{...defaultApi,useBatchFetch:true},[OPT_TRANS_AZUREAI]:{...defaultApi,url:"https://api.cognitive.microsofttranslator.com/translate?api-version=3.0",useBatchFetch:true},[OPT_TRANS_BAIDU]:{...defaultApi},[OPT_TRANS_TENCENT]:{...defaultApi,useBatchFetch:true},[OPT_TRANS_VOLCENGINE]:{...defaultApi},[OPT_TRANS_DEEPL]:{...defaultApi,url:"https://api-free.deepl.com/v2/translate",useBatchFetch:true},[OPT_TRANS_DEEPLFREE]:{...defaultApi,fetchLimit:1},[OPT_TRANS_DEEPLX]:{...defaultApi,url:"http://localhost:1188/translate",fetchLimit:1},[OPT_TRANS_NIUTRANS]:{...defaultApi,url:"https://api.niutrans.com/NiuTransServer/translation",dictNo:"",memoryNo:""},[OPT_TRANS_OPENAI]:{...defaultApi,url:"https://api.openai.com/v1/chat/completions",model:"gpt-4",useBatchFetch:true,fetchLimit:1},[OPT_TRANS_GEMINI]:{...defaultApi,url:"https://generativelanguage.googleapis.com/v1/models/".concat(INPUT_PLACE_MODEL,":generateContent?key=").concat(INPUT_PLACE_KEY),model:"gemini-2.5-flash",useBatchFetch:true},[OPT_TRANS_GEMINI_2]:{...defaultApi,url:"https://generativelanguage.googleapis.com/v1beta/openai/chat/completions",model:"gemini-2.0-flash",useBatchFetch:true},[OPT_TRANS_CLAUDE]:{...defaultApi,url:"https://api.anthropic.com/v1/messages",model:"claude-3-haiku-20240307",useBatchFetch:true},[OPT_TRANS_CLOUDFLAREAI]:{...defaultApi,url:"https://api.cloudflare.com/client/v4/accounts/{{ACCOUNT_ID}}/ai/run/@cf/meta/m2m100-1.2b"},[OPT_TRANS_OLLAMA]:{...defaultApi,url:"http://localhost:11434/v1/chat/completions",model:"llama3.1",useBatchFetch:true},[OPT_TRANS_OPENROUTER]:{...defaultApi,url:"https://openrouter.ai/api/v1/chat/completions",model:"openai/gpt-4o",useBatchFetch:true},[OPT_TRANS_CUSTOMIZE]:{...defaultApi,url:"https://translate.googleapis.com/translate_a/single?client=gtx&dj=1&dt=t&ie=UTF-8&q={{text}}&sl=en&tl=zh-CN",reqHook:defaultRequestHook,resHook:defaultResponseHook}};// 内置翻译接口列表(带参数) const DEFAULT_API_LIST=OPT_ALL_TYPES.map(apiType=>({...defaultApiOpts[apiType],apiSlug:apiType,apiName:apiType,apiType}));const DEFAULT_API_TYPE=OPT_TRANS_MICROSOFT;const DEFAULT_API_SETTING=DEFAULT_API_LIST[DEFAULT_API_TYPE]; ;// CONCATENATED MODULE: ./src/config/rules.js const GLOBAL_KEY="*";const REMAIN_KEY="-";const SHADOW_KEY=">>>";const DEFAULT_COLOR="#209CEE";// 默认高亮背景色/线条颜色 const DEFAULT_TRANS_TAG="font";const DEFAULT_SELECT_STYLE="-webkit-line-clamp: unset; max-height: none; height: auto;";const OPT_STYLE_NONE="style_none";// 无 const OPT_STYLE_LINE="under_line";// 下划线 const OPT_STYLE_DOTLINE="dot_line";// 点状线 const OPT_STYLE_DASHLINE="dash_line";// 虚线 const OPT_STYLE_DASHBOX="dash_box";// 虚线框 const OPT_STYLE_WAVYLINE="wavy_line";// 波浪线 const OPT_STYLE_FUZZY="fuzzy";// 模糊 const OPT_STYLE_HIGHLIGHT="highlight";// 高亮 const OPT_STYLE_BLOCKQUOTE="blockquote";// 引用 const OPT_STYLE_GRADIENT="gradient";// 渐变 const OPT_STYLE_BLINK="blink";// 闪现 const OPT_STYLE_GLOW="glow";// 发光 const OPT_STYLE_DIY="diy_style";// 自定义样式 const OPT_STYLE_ALL=[OPT_STYLE_NONE,OPT_STYLE_LINE,OPT_STYLE_DOTLINE,OPT_STYLE_DASHLINE,OPT_STYLE_WAVYLINE,OPT_STYLE_DASHBOX,OPT_STYLE_FUZZY,OPT_STYLE_HIGHLIGHT,OPT_STYLE_BLOCKQUOTE,OPT_STYLE_GRADIENT,OPT_STYLE_BLINK,OPT_STYLE_GLOW,OPT_STYLE_DIY];const OPT_STYLE_USE_COLOR=[OPT_STYLE_LINE,OPT_STYLE_DOTLINE,OPT_STYLE_DASHLINE,OPT_STYLE_DASHBOX,OPT_STYLE_WAVYLINE,OPT_STYLE_HIGHLIGHT,OPT_STYLE_BLOCKQUOTE];const OPT_TIMING_PAGESCROLL="mk_pagescroll";// 滚动加载翻译 const OPT_TIMING_PAGEOPEN="mk_pageopen";// 直接翻译到底 const OPT_TIMING_MOUSEOVER="mk_mouseover";const OPT_TIMING_CONTROL="mk_ctrlKey";const OPT_TIMING_SHIFT="mk_shiftKey";const OPT_TIMING_ALT="mk_altKey";const OPT_TIMING_ALL=[OPT_TIMING_PAGESCROLL,OPT_TIMING_PAGEOPEN,OPT_TIMING_MOUSEOVER,OPT_TIMING_CONTROL,OPT_TIMING_SHIFT,OPT_TIMING_ALT];const DEFAULT_DIY_STYLE="color: #333;\nbackground: linear-gradient(\n 45deg,\n LightGreen 20%,\n LightPink 20% 40%,\n LightSalmon 40% 60%,\n LightSeaGreen 60% 80%,\n LightSkyBlue 80%\n);\n&:hover {\n color: #111;\n};";const DEFAULT_SELECTOR="h1, h2, h3, h4, h5, h6, li, p, dd, blockquote, figcaption, label, legend";const DEFAULT_IGNORE_SELECTOR="aside, button, footer, form, pre, mark, nav";const DEFAULT_KEEP_SELECTOR="a:has(code)";const DEFAULT_RULE={pattern:"",// 匹配网址 selector:"",// 选择器 keepSelector:"",// 保留元素选择器 terms:"",// 专业术语 aiTerms:"",// AI专业术语 apiSlug:GLOBAL_KEY,// 翻译服务 fromLang:GLOBAL_KEY,// 源语言 toLang:GLOBAL_KEY,// 目标语言 textStyle:GLOBAL_KEY,// 译文样式 transOpen:GLOBAL_KEY,// 开启翻译 bgColor:"",// 译文颜色 textDiyStyle:"",// 自定义译文样式 selectStyle:"",// 选择器节点样式 parentStyle:"",// 选择器父节点样式 grandStyle:"",// 选择器父节点样式 injectJs:"",// 注入JS injectCss:"",// 注入CSS transOnly:GLOBAL_KEY,// 是否仅显示译文 // transTiming: GLOBAL_KEY, // 翻译时机/鼠标悬停翻译 (暂时作废) transTag:GLOBAL_KEY,// 译文元素标签 transTitle:GLOBAL_KEY,// 是否同时翻译页面标题 // transSelected: GLOBAL_KEY, // 是否启用划词翻译 (移回setting) // detectRemote: GLOBAL_KEY, // 是否使用远程语言检测 (移回setting) // skipLangs: [], // 不翻译的语言 (移回setting) // fixerSelector: "", // 修复函数选择器 (暂时作废) // fixerFunc: GLOBAL_KEY, // 修复函数 (暂时作废) transStartHook:"",// 钩子函数 transEndHook:"",// 钩子函数 // transRemoveHook: "", // 钩子函数 (暂时作废) autoScan:GLOBAL_KEY,// 是否自动识别文本节点 hasRichText:GLOBAL_KEY,// 是否启用富文本翻译 hasShadowroot:GLOBAL_KEY,// 是否包含shadowroot rootsSelector:"",// 翻译范围选择器 ignoreSelector:""// 不翻译的选择器 };// 全局规则 const GLOBLA_RULE={pattern:"*",// 匹配网址 selector:DEFAULT_SELECTOR,// 选择器 keepSelector:DEFAULT_KEEP_SELECTOR,// 保留元素选择器 terms:"",// 专业术语 aiTerms:"",// AI专业术语 apiSlug:OPT_TRANS_MICROSOFT,// 翻译服务 fromLang:"auto",// 源语言 toLang:"zh-CN",// 目标语言 textStyle:OPT_STYLE_NONE,// 译文样式 transOpen:"false",// 开启翻译 bgColor:"",// 译文颜色 textDiyStyle:DEFAULT_DIY_STYLE,// 自定义译文样式 selectStyle:DEFAULT_SELECT_STYLE,// 选择器节点样式 parentStyle:DEFAULT_SELECT_STYLE,// 选择器父节点样式 grandStyle:DEFAULT_SELECT_STYLE,// 选择器祖节点样式 injectJs:"",// 注入JS injectCss:"",// 注入CSS transOnly:"false",// 是否仅显示译文 // transTiming: OPT_TIMING_PAGESCROLL, // 翻译时机/鼠标悬停翻译 (暂时作废) transTag:DEFAULT_TRANS_TAG,// 译文元素标签 transTitle:"false",// 是否同时翻译页面标题 // transSelected: "true", // 是否启用划词翻译 (移回setting) // detectRemote: "true", // 是否使用远程语言检测 (移回setting) // skipLangs: [], // 不翻译的语言 (移回setting) // fixerSelector: "", // 修复函数选择器 (暂时作废) // fixerFunc: "-", // 修复函数 (暂时作废) transStartHook:"",// 钩子函数 transEndHook:"",// 钩子函数 // transRemoveHook: "", // 钩子函数 (暂时作废) autoScan:"true",// 是否自动识别文本节点 hasRichText:"true",// 是否启用富文本翻译 hasShadowroot:"false",// 是否包含shadowroot rootsSelector:"body",// 翻译范围选择器 ignoreSelector:DEFAULT_IGNORE_SELECTOR// 不翻译的选择器 };const rules_DEFAULT_RULES=[GLOBLA_RULE];const DEFAULT_OW_RULE={apiSlug:REMAIN_KEY,fromLang:REMAIN_KEY,toLang:REMAIN_KEY,textStyle:REMAIN_KEY,transOpen:REMAIN_KEY,bgColor:"",textDiyStyle:DEFAULT_DIY_STYLE};// todo: 校验几个内置规则 const RULES_MAP={"www.google.com/search":{rootsSelector:"#rcnt"},"en.wikipedia.org":{ignoreSelector:".button, code, footer, form, mark, pre, .mwe-math-element, .mw-editsection"},"news.ycombinator.com":{selector:"p, .titleline, .commtext",rootsSelector:"#bigbox",keepSelector:"code, img, svg, pre, .sitebit",ignoreSelector:"button, code, footer, form, header, mark, nav, pre, .reply",autoScan:"false"},"twitter.com, https://x.com":{selector:"[data-testid='tweetText']",keepSelector:"img, svg, span:has(a), div:has(a)",autoScan:"false"},"www.youtube.com":{rootsSelector:"ytd-page-manager",ignoreSelector:"aside, button, footer, form, header, pre, mark, nav, #player, #container, .caption-window, .ytp-settings-menu"}};const rules_BUILTIN_RULES=Object.entries(RULES_MAP).sort((a,b)=>a[0].localeCompare(b[0])).map(_ref=>{let[pattern,rule]=_ref;return{// ...DEFAULT_RULE, ...rule,pattern};}); ;// CONCATENATED MODULE: ./src/libs/log.js // 定义日志级别 const LogLevel={DEBUG:{value:0,name:"DEBUG",color:"#6495ED"},// 宝蓝色 INFO:{value:1,name:"INFO",color:"#4CAF50"},// 绿色 WARN:{value:2,name:"WARN",color:"#FFC107"},// 琥珀色 ERROR:{value:3,name:"ERROR",color:"#F44336"},// 红色 SILENT:{value:4,name:"SILENT"}// 特殊级别,用于关闭所有日志 };function findLogLevelByValue(value){return Object.values(LogLevel).find(level=>level.value===value);}function findLogLevelByName(name){if(typeof name!=="string"||name.length===0)return undefined;const upperCaseName=name.toUpperCase();return Object.values(LogLevel).find(level=>level.name===upperCaseName);}class Logger{/** * @param {object} [options={}] 配置选项 * @param {LogLevel} [options.level=LogLevel.INFO] 要显示的最低日志级别 * @param {string} [options.prefix='App'] 日志前缀,用于区分模块 */constructor(){let options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};this.config={level:options.level||LogLevel.INFO,prefix:options.prefix||"KISS-Translator"};}/** * 动态设置日志级别 * @param {LogLevel} level - 新的日志级别 */setLevel(level){let newLevelObject;if(typeof level==="string"){newLevelObject=findLogLevelByName(level);if(!newLevelObject){this.warn("Invalid log level name provided: \"".concat(level,"\". Keeping current level."));return;}}else if(typeof level==="number"){newLevelObject=findLogLevelByValue(level);if(!newLevelObject){this.warn("Invalid log level value provided: ".concat(level,". Keeping current level."));return;}}else if(level&&typeof level.value==="number"){newLevelObject=level;}else{this.warn("Invalid argument passed to setLevel. Must be a LogLevel object, number, or string.");return;}this.config.level=newLevelObject;console.log("[".concat(this.config.prefix,"] Log level dynamically set to ").concat(this.config.level.name));}/** * 核心日志记录方法 * @private * @param {LogLevel} level - 当前消息的日志级别 * @param {...any} args - 要记录的多个参数,可以是任何类型 */_log(level){// 如果当前级别低于配置的最低级别,则不打印 if(level.value1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key];}if(isBrowser){// 在浏览器中使用颜色高亮 const consoleMethod=this._getConsoleMethod(level);consoleMethod("%c".concat(timestamp," %c").concat(prefixStr," %c").concat(levelStr),"color: gray; font-weight: lighter;",// 时间戳样式 "color: #7c57e0; font-weight: bold;",// 前缀样式 (紫色) "color: ".concat(level.color,"; font-weight: bold;"),// 日志级别样式 ...args);}else{// 在 Node.js 或不支持样式的环境中,输出纯文本 const consoleMethod=this._getConsoleMethod(level);consoleMethod(timestamp,prefixStr,levelStr,...args);}}/** * 根据日志级别获取对应的 console 方法 * @private */_getConsoleMethod(level){switch(level){case LogLevel.ERROR:return console.error;case LogLevel.WARN:return console.warn;case LogLevel.INFO:return console.info;default:return console.log;}}/** * 记录 DEBUG 级别的日志 * @param {...any} args */debug(){for(var _len2=arguments.length,args=new Array(_len2),_key2=0;_key2<_len2;_key2++){args[_key2]=arguments[_key2];}this._log(LogLevel.DEBUG,...args);}/** * 记录 INFO 级别的日志 * @param {...any} args */info(){for(var _len3=arguments.length,args=new Array(_len3),_key3=0;_key3<_len3;_key3++){args[_key3]=arguments[_key3];}this._log(LogLevel.INFO,...args);}/** * 记录 WARN 级别的日志 * @param {...any} args */warn(){for(var _len4=arguments.length,args=new Array(_len4),_key4=0;_key4<_len4;_key4++){args[_key4]=arguments[_key4];}this._log(LogLevel.WARN,...args);}/** * 记录 ERROR 级别的日志 * @param {...any} args */error(){for(var _len5=arguments.length,args=new Array(_len5),_key5=0;_key5<_len5;_key5++){args[_key5]=arguments[_key5];}this._log(LogLevel.ERROR,...args);}}const logger=new Logger();const log_kissLog=logger.info.bind(logger);// todo:debug日志埋点 ;// CONCATENATED MODULE: ./src/config/setting.js // 默认快捷键 const OPT_SHORTCUT_TRANSLATE="toggleTranslate";const OPT_SHORTCUT_STYLE="toggleStyle";const OPT_SHORTCUT_POPUP="togglePopup";const OPT_SHORTCUT_SETTING="openSetting";const DEFAULT_SHORTCUTS={[OPT_SHORTCUT_TRANSLATE]:["AltLeft","KeyQ"],[OPT_SHORTCUT_STYLE]:["AltLeft","KeyC"],[OPT_SHORTCUT_POPUP]:["AltLeft","KeyK"],[OPT_SHORTCUT_SETTING]:["AltLeft","KeyO"]};const TRANS_MIN_LENGTH=2;// 最短翻译长度 const TRANS_MAX_LENGTH=100000;// 最长翻译长度 const TRANS_NEWLINE_LENGTH=20;// 换行字符数 const DEFAULT_BLACKLIST=["https://fishjar.github.io/kiss-translator/options.html","https://translate.google.com","https://www.deepl.com/translator"];// 禁用翻译名单 const DEFAULT_CSPLIST=[];// 禁用CSP名单 const DEFAULT_ORILIST=["https://dict.youdao.com"];// 移除Origin名单 // 同步设置 const OPT_SYNCTYPE_WORKER="KISS-Worker";const OPT_SYNCTYPE_WEBDAV="WebDAV";const OPT_SYNCTOKEN_PERFIX="kt_";const OPT_SYNCTYPE_ALL=[OPT_SYNCTYPE_WORKER,OPT_SYNCTYPE_WEBDAV];const setting_DEFAULT_SYNC={syncType:OPT_SYNCTYPE_WORKER,// 同步方式 syncUrl:"",// 数据同步接口 syncUser:"",// 数据同步用户名 syncKey:"",// 数据同步密钥 syncMeta:{},// 数据更新及同步信息 subRulesSyncAt:0,// 订阅规则同步时间 dataCaches:{}// 缓存同步时间 };// 输入框翻译 const OPT_INPUT_TRANS_SIGNS=["/","//","\\","\\\\",">",">>"];const DEFAULT_INPUT_SHORTCUT=["AltLeft","KeyI"];const DEFAULT_INPUT_RULE={transOpen:true,apiSlug:OPT_TRANS_MICROSOFT,fromLang:"auto",toLang:"en",triggerShortcut:DEFAULT_INPUT_SHORTCUT,triggerCount:1,triggerTime:200,transSign:OPT_INPUT_TRANS_SIGNS[0]};// 划词翻译 const PHONIC_MAP={en_phonic:["英","uk"],us_phonic:["美","en"]};const OPT_TRANBOX_TRIGGER_CLICK="click";const OPT_TRANBOX_TRIGGER_HOVER="hover";const OPT_TRANBOX_TRIGGER_SELECT="select";const OPT_TRANBOX_TRIGGER_ALL=[OPT_TRANBOX_TRIGGER_CLICK,OPT_TRANBOX_TRIGGER_HOVER,OPT_TRANBOX_TRIGGER_SELECT];const DEFAULT_TRANBOX_SHORTCUT=["AltLeft","KeyS"];const DEFAULT_TRANBOX_SETTING={transOpen:true,// 是否启用划词翻译 apiSlugs:[OPT_TRANS_MICROSOFT],fromLang:"auto",toLang:"zh-CN",toLang2:"en",tranboxShortcut:DEFAULT_TRANBOX_SHORTCUT,btnOffsetX:10,btnOffsetY:10,boxOffsetX:0,boxOffsetY:10,hideTranBtn:false,// 是否隐藏翻译按钮 hideClickAway:false,// 是否点击外部关闭弹窗 simpleStyle:false,// 是否简洁界面 followSelection:false,// 翻译框是否跟随选中文本 triggerMode:OPT_TRANBOX_TRIGGER_CLICK,// 触发翻译方式 // extStyles: "", // 附加样式 enDict:OPT_DICT_BING,// 英文词典 enSug:OPT_SUG_YOUDAO// 英文建议 };const SUBTITLE_WINDOW_STYLE="padding: 0.5em 1em;\nbackground-color: rgba(0, 0, 0, 0.5);\ncolor: white;\nline-height: 1.3;\ntext-shadow: 1px 1px 2px black;\ndisplay: inline-block";const SUBTITLE_ORIGIN_STYLE="font-size: clamp(1.5rem, 3cqw, 3rem);";const SUBTITLE_TRANSLATION_STYLE="font-size: clamp(1.5rem, 3cqw, 3rem);";const DEFAULT_SUBTITLE_SETTING={enabled:true,// 是否开启 apiSlug:OPT_TRANS_MICROSOFT,segSlug:"-",// AI智能断句 chunkLength:1000,// AI处理切割长度 // fromLang: "en", toLang:"zh-CN",isBilingual:true,// 是否双语显示 windowStyle:SUBTITLE_WINDOW_STYLE,// 背景样式 originStyle:SUBTITLE_ORIGIN_STYLE,// 原文样式 translationStyle:SUBTITLE_TRANSLATION_STYLE// 译文样式 };// 订阅列表 const DEFAULT_SUBRULES_LIST=[{url:"https://fishjar.github.io/kiss-rules/kiss-rules_v2.json",selected:true},{url:"https://fishjar.github.io/kiss-rules/kiss-rules-on_v2.json",selected:false},{url:"https://fishjar.github.io/kiss-rules/kiss-rules-off_v2.json",selected:false}];const DEFAULT_MOUSEHOVER_KEY=["KeyQ"];const DEFAULT_MOUSE_HOVER_SETTING={useMouseHover:true,// 是否启用鼠标悬停翻译 mouseHoverKey:DEFAULT_MOUSEHOVER_KEY// 鼠标悬停翻译组合键 };const setting_DEFAULT_SETTING={darkMode:"auto",// 深色模式 uiLang:"en",// 界面语言 // fetchLimit: DEFAULT_FETCH_LIMIT, // 最大任务数量(移至rule,作废) // fetchInterval: DEFAULT_FETCH_INTERVAL, // 任务间隔时间(移至rule,作废) minLength:TRANS_MIN_LENGTH,maxLength:TRANS_MAX_LENGTH,newlineLength:TRANS_NEWLINE_LENGTH,httpTimeout:DEFAULT_HTTP_TIMEOUT,clearCache:false,// 是否在浏览器下次启动时清除缓存 injectRules:true,// 是否注入订阅规则 fabClickAction:0,// 悬浮按钮点击行为 // injectWebfix: true, // 是否注入修复补丁(作废) // detectRemote: false, // 是否使用远程语言检测 (从rule移回) // contextMenus: true, // 是否添加右键菜单(作废) contextMenuType:1,// 右键菜单类型(0不显示,1简单菜单,2多级菜单) // transTag: DEFAULT_TRANS_TAG, // 译文元素标签(移至rule,作废) // transOnly: false, // 是否仅显示译文(移至rule,作废) // transTitle: false, // 是否同时翻译页面标题(移至rule,作废) subrulesList:DEFAULT_SUBRULES_LIST,// 订阅列表 // owSubrule: DEFAULT_OW_RULE, // 覆写订阅规则 (作废) transApis:DEFAULT_API_LIST,// 翻译接口 (v2.0 对象改为数组) // mouseKey: OPT_TIMING_PAGESCROLL, // 翻译时机/鼠标悬停翻译(移至rule,作废) shortcuts:DEFAULT_SHORTCUTS,// 快捷键 inputRule:DEFAULT_INPUT_RULE,// 输入框设置 tranboxSetting:DEFAULT_TRANBOX_SETTING,// 划词翻译设置 touchTranslate:2,// 触屏翻译 blacklist:DEFAULT_BLACKLIST.join(",\n"),// 禁用翻译名单 csplist:DEFAULT_CSPLIST.join(",\n"),// 禁用CSP名单 orilist:DEFAULT_ORILIST.join(",\n"),// 禁用CSP名单 // disableLangs: [], // 不翻译的语言(移至rule,作废) skipLangs:[],// 不翻译的语言(从rule移回) transInterval:100,// 翻译等待时间 langDetector:"-",// 远程语言识别服务 mouseHoverSetting:DEFAULT_MOUSE_HOVER_SETTING,// 鼠标悬停翻译 preInit:true,// 是否预加载脚本 transAllnow:false,// 是否立即全部翻译 subtitleSetting:DEFAULT_SUBTITLE_SETTING,// 字幕设置 logLevel:LogLevel.INFO.value// 日志级别 }; ;// CONCATENATED MODULE: ./src/config/i18n.js const UI_LANGS=(/* unused pure expression or super */ null && ([["en","English"],["zh","简体中文"],["zh_TW","繁體中文"]]));const customApiLangs="[\"en\", \"English - English\"],\n[\"zh-CN\", \"Simplified Chinese - \u7B80\u4F53\u4E2D\u6587\"],\n[\"zh-TW\", \"Traditional Chinese - \u7E41\u9AD4\u4E2D\u6587\"],\n[\"ar\", \"Arabic - \u0627\u0644\u0639\u0631\u0628\u064A\u0629\"],\n[\"bg\", \"Bulgarian - \u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438\"],\n[\"ca\", \"Catalan - Catal\xE0\"],\n[\"hr\", \"Croatian - Hrvatski\"],\n[\"cs\", \"Czech - \u010Ce\u0161tina\"],\n[\"da\", \"Danish - Dansk\"],\n[\"nl\", \"Dutch - Nederlands\"],\n[\"fi\", \"Finnish - Suomi\"],\n[\"fr\", \"French - Fran\xE7ais\"],\n[\"de\", \"German - Deutsch\"],\n[\"el\", \"Greek - \u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC\"],\n[\"hi\", \"Hindi - \u0939\u093F\u0928\u094D\u0926\u0940\"],\n[\"hu\", \"Hungarian - Magyar\"],\n[\"id\", \"Indonesian - Indonesia\"],\n[\"it\", \"Italian - Italiano\"],\n[\"ja\", \"Japanese - \u65E5\u672C\u8A9E\"],\n[\"ko\", \"Korean - \uD55C\uAD6D\uC5B4\"],\n[\"ms\", \"Malay - Melayu\"],\n[\"mt\", \"Maltese - Malti\"],\n[\"nb\", \"Norwegian - Norsk Bokm\xE5l\"],\n[\"pl\", \"Polish - Polski\"],\n[\"pt\", \"Portuguese - Portugu\xEAs\"],\n[\"ro\", \"Romanian - Rom\xE2n\u0103\"],\n[\"ru\", \"Russian - \u0420\u0443\u0441\u0441\u043A\u0438\u0439\"],\n[\"sk\", \"Slovak - Sloven\u010Dina\"],\n[\"sl\", \"Slovenian - Sloven\u0161\u010Dina\"],\n[\"es\", \"Spanish - Espa\xF1ol\"],\n[\"sv\", \"Swedish - Svenska\"],\n[\"ta\", \"Tamil - \u0BA4\u0BAE\u0BBF\u0BB4\u0BCD\"],\n[\"te\", \"Telugu - \u0C24\u0C46\u0C32\u0C41\u0C17\u0C41\"],\n[\"th\", \"Thai - \u0E44\u0E17\u0E22\"],\n[\"tr\", \"Turkish - T\xFCrk\xE7e\"],\n[\"uk\", \"Ukrainian - \u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430\"],\n[\"vi\", \"Vietnamese - Ti\u1EBFng Vi\u1EC7t\"],\n";const customApiHelpZH="// \u8BF7\u6C42\u6570\u636E\u9ED8\u8BA4\u683C\u5F0F\n{\n \"url\": \"{{url}}\",\n \"method\": \"POST\",\n \"headers\": {\n \"Content-type\": \"application/json\",\n \"Authorization\": \"Bearer {{key}}\"\n },\n \"body\": {\n \"text\": \"{{text}}\", // \u5F85\u7FFB\u8BD1\u6587\u5B57\n \"from\": \"{{from}}\", // \u6587\u5B57\u7684\u8BED\u8A00\uFF08\u53EF\u80FD\u4E3A\u7A7A\uFF09\n \"to\": \"{{to}}\", // \u76EE\u6807\u8BED\u8A00\n },\n}\n\n\n// \u8FD4\u56DE\u6570\u636E\u9ED8\u8BA4\u683C\u5F0F\n{\n text: \"\", // \u7FFB\u8BD1\u540E\u7684\u6587\u5B57\n from: \"\", // \u8BC6\u522B\u7684\u6E90\u8BED\u8A00\n to: \"\", // \u76EE\u6807\u8BED\u8A00\uFF08\u53EF\u9009\uFF09\n}\n\n\n// Hook \u8303\u4F8B\n// URL\nhttps://translate.googleapis.com/translate_a/single?client=gtx&dj=1&dt=t&ie=UTF-8&q={{text}}&sl=en&tl=zh-CN\n\n// Request Hook\n(text, from, to, url, key) => [url, {\n headers: {\n \"Content-type\": \"application/json\",\n },\n method: \"GET\",\n body: null,\n}]\n\n// Response Hook\n// \u5176\u4E2D\u8FD4\u56DE\u6570\u7EC4\u7B2C\u4E00\u4E2A\u503C\u8868\u793A\u8BD1\u6587\u5B57\u7B26\u4E32\uFF0C\u7B2C\u4E8C\u4E2A\u503C\u4E3A\u5E03\u5C14\u503C\uFF0C\u8868\u793A\u539F\u6587\u8BED\u8A00\u4E0E\u76EE\u6807\u8BED\u8A00\u662F\u5426\u76F8\u540C\n(res, text, from, to) => [res.sentences.map((item) => item.trans).join(\" \"), to === res.src]\n\n\n// \u652F\u6301\u7684\u8BED\u8A00\u4EE3\u7801\u5982\u4E0B\n".concat(customApiLangs,"\n");const customApiHelpEN="// Default request\n{\n \"url\": \"{{url}}\",\n \"method\": \"POST\",\n \"headers\": {\n \"Content-type\": \"application/json\",\n \"Authorization\": \"Bearer {{key}}\"\n },\n \"body\": {\n \"text\": \"{{text}}\", // Text to be translated\n \"from\": \"{{from}}\", // The language of the text (may be empty)\n \"to\": \"{{to}}\", // Target language\n },\n}\n\n\n// Default response\n{\n text: \"\", // translated text\n from: \"\", // Recognized source language\n to: \"\", // Target language (optional)\n}\n\n\n/// Hook Example\n// URL\nhttps://translate.googleapis.com/translate_a/single?client=gtx&dj=1&dt=t&ie=UTF-8&q={{text}}&sl=en&tl=zh-CN\n\n// Request Hook\n(text, from, to, url, key) => [url, {\n headers: {\n \"Content-type\": \"application/json\",\n },\n method: \"GET\",\n body: null,\n}]\n\n// Response Hook\n// In the returned array, the first value is the translated string, while the second value is a boolean\n// that indicates whether the source language is the same as the target language.\n(res, text, from, to) => [res.sentences.map((item) => item.trans).join(\" \"), to === res.src]\n\n\n// The supported language codes are as follows\n".concat(customApiLangs,"\n");const requestHookHelperZH="1\u3001\u7B2C\u4E00\u4E2A\u53C2\u6570\u5305\u542B\u5982\u4E0B\u5B57\u6BB5\uFF1A'texts', 'from', 'to', 'url', 'key', 'model', 'systemPrompt', ...\n2\u3001\u8FD4\u56DE\u503C\u5FC5\u987B\u662F\u5305\u542B\u4EE5\u4E0B\u5B57\u6BB5\u7684\u5BF9\u8C61\uFF1A 'url', 'body', 'headers', 'userMsg', 'method'\n3\u3001\u5982\u8FD4\u56DE\u7A7A\u503C\uFF0C\u5219hook\u51FD\u6570\u4E0D\u4F1A\u4EA7\u751F\u4EFB\u4F55\u6548\u679C\u3002\n\n// \u793A\u4F8B\nasync (args, { url, body, headers, userMsg, method } = {}) => {\n console.log(\"request hook args:\", args);\n return { url, body, headers, userMsg, method };\n}";const requestHookHelperEN="1. The first parameter contains the following fields: 'texts', 'from', 'to', 'url', 'key', 'model', 'systemPrompt', ...\n2. The return value must be an object containing the following fields: 'url', 'body', 'headers', 'userMsg', 'method'\n3. If a null value is returned, the hook function will have no effect.\n\n// Example\nasync (args, { url, body, headers, userMsg, method } = {}) => {\n console.log(\"request hook args:\", args);\n return { url, body, headers, userMsg, method };\n}";const responsetHookHelperZH="1\u3001\u7B2C\u4E00\u4E2A\u53C2\u6570\u5305\u542B\u5982\u4E0B\u5B57\u6BB5\uFF1A'res', ...\n2\u3001\u8FD4\u56DE\u503C\u5FC5\u987B\u662F\u5305\u542B\u4EE5\u4E0B\u5B57\u6BB5\u7684\u5BF9\u8C61\uFF1A 'translations', 'modelMsg' \n \uFF08'translations' \u5E94\u4E3A\u4E00\u4E2A\u4E8C\u7EF4\u6570\u7EC4\uFF1A[[\u8BD1\u6587, \u6E90\u8BED\u8A00]]\uFF09\n3\u3001\u5982\u8FD4\u56DE\u7A7A\u503C\uFF0C\u5219hook\u51FD\u6570\u4E0D\u4F1A\u4EA7\u751F\u4EFB\u4F55\u6548\u679C\u3002\n\n// \u793A\u4F8B\nasync ({ res, ...args }) => {\n console.log(\"reaponse hook args:\", res, args);\n const translations = [[\"\u4F60\u597D\", \"zh\"]];\n const modelMsg = \"\";\n return { translations, modelMsg };\n}";const responsetHookHelperEN="1. The first parameter contains the following fields: 'res', ...\n2. The return value must be an object containing the following fields: 'translations', 'modelMsg'\n ('translations' should be a two-dimensional array: [[translation, source language]]).\n3. If a null value is returned, the hook function will have no effect.\n\n// Example\nasync ({ res, ...args }) => {\n console.log(\"reaponse hook args:\", res, args);\n const translations = [[\"\u4F60\u597D\", \"zh\"]];\n const modelMsg = \"\";\n return { translations, modelMsg };\n}";const I18N={app_name:{zh:"\u7B80\u7EA6\u7FFB\u8BD1",en:"KISS Translator",zh_TW:"\u7C21\u7D04\u7FFB\u8B6F"},translate:{zh:"\u7FFB\u8BD1",en:"Translate",zh_TW:"\u7FFB\u8B6F"},custom_api_help:{zh:customApiHelpZH,en:customApiHelpEN,zh_TW:customApiHelpZH},request_hook_helper:{zh:requestHookHelperZH,en:requestHookHelperEN,zh_TW:requestHookHelperZH},response_hook_helper:{zh:responsetHookHelperZH,en:responsetHookHelperEN,zh_TW:responsetHookHelperZH},translate_alt:{zh:"\u7FFB\u8BD1",en:"Translate",zh_TW:"\u7FFB\u8B6F"},basic_setting:{zh:"\u57FA\u672C\u8BBE\u7F6E",en:"Basic Setting",zh_TW:"\u57FA\u672C\u8A2D\u5B9A"},rules_setting:{zh:"\u89C4\u5219\u8BBE\u7F6E",en:"Rules Setting",zh_TW:"\u898F\u5247\u8A2D\u5B9A"},apis_setting:{zh:"\u63A5\u53E3\u8BBE\u7F6E",en:"Apis Setting",zh_TW:"API\u8A2D\u5B9A"},sync_setting:{zh:"\u540C\u6B65\u8BBE\u7F6E",en:"Sync Setting",zh_TW:"\u540C\u6B65\u8A2D\u5B9A"},patch_setting:{zh:"\u8865\u4E01\u8BBE\u7F6E",en:"Patch Setting",zh_TW:"\u4FEE\u88DC\u8A2D\u5B9A"},patch_setting_help:{zh:"\u9488\u5BF9\u4E00\u4E9B\u7279\u6B8A\u7F51\u7AD9\u7684\u4FEE\u6B63\u811A\u672C\uFF0C\u4EE5\u4FBF\u7FFB\u8BD1\u8F6F\u4EF6\u5F97\u5230\u66F4\u597D\u7684\u5C55\u793A\u6548\u679C\u3002",en:"Corrected scripts for some special websites so that the translation software can get better display results.",zh_TW:"\u91DD\u5C0D\u67D0\u4E9B\u7279\u6B8A\u7DB2\u7AD9\u7684\u4FEE\u6B63\u8173\u672C\uFF0C\u8B93\u7FFB\u8B6F\u8EDF\u9AD4\u6709\u66F4\u597D\u7684\u986F\u793A\u6548\u679C\u3002"},inject_webfix:{zh:"\u6CE8\u5165\u4FEE\u590D\u8865\u4E01",en:"Inject Webfix",zh_TW:"\u6CE8\u5165\u4FEE\u6B63\u88DC\u4E01"},about:{zh:"\u5173\u4E8E",en:"About",zh_TW:"\u95DC\u65BC"},about_md:{zh:"README.md",en:"README.en.md",zh_TW:"README.md"},about_md_local:{zh:"\u8BF7 [\u70B9\u51FB\u8FD9\u91CC](".concat("https://github.com/fishjar/kiss-translator",") \u67E5\u770B\u8BE6\u60C5\u3002"),en:"Please [click here](".concat("https://github.com/fishjar/kiss-translator",") for details."),zh_TW:"\u8ACB\u3010\u9EDE\u9019\u88E1\u3011\u67E5\u770B\u8A73\u7D30\u5167\u5BB9\u3002"},ui_lang:{zh:"\u754C\u9762\u8BED\u8A00",en:"Interface Language",zh_TW:"\u4ECB\u9762\u8A9E\u8A00"},fetch_limit:{zh:"\u6700\u5927\u5E76\u53D1\u8BF7\u6C42\u6570\u91CF (1-100)",en:"Maximum Number Of Concurrent Requests (1-100)",zh_TW:"\u6700\u5927\u540C\u6642\u8ACB\u6C42\u6578\u91CF (1-100)"},if_think:{zh:"\u542F\u7528\u6216\u7981\u7528\u6A21\u578B\u7684\u6DF1\u5EA6\u601D\u8003\u80FD\u529B",en:"Enable or disable the model\u2019s thinking behavior ",zh_TW:"\u555F\u7528\u6216\u505C\u7528\u6A21\u578B\u7684\u6DF1\u5EA6\u601D\u8003\u80FD\u529B"},think:{zh:"\u542F\u7528\u6DF1\u5EA6\u601D\u8003",en:"enable thinking",zh_TW:"\u555F\u7528\u6DF1\u5EA6\u601D\u8003"},nothink:{zh:"\u7981\u7528\u6DF1\u5EA6\u601D\u8003",en:"disable thinking",zh_TW:"\u505C\u7528\u6DF1\u5EA6\u601D\u8003"},think_ignore:{zh:"\u5FFD\u7565\u4EE5\u4E0B\u6A21\u578B\u7684\u8F93\u51FA,\u9017\u53F7(,)\u5206\u5272,\u5F53\u6A21\u578B\u652F\u6301\u601D\u8003\u4F46ollama\u4E0D\u652F\u6301\u65F6\u9700\u8981\u586B\u5199\u672C\u53C2\u6570",en:"Ignore the block for the following models, comma (,) separated",zh_TW:"\u5FFD\u7565\u4EE5\u4E0B\u6A21\u578B\u7684 \u8F38\u51FA\uFF0C\u4EE5\u9017\u865F (,) \u5206\u9694\uFF1B\u7576\u6A21\u578B\u652F\u63F4\u601D\u8003\u4F46 ollama \u4E0D\u652F\u63F4\u6642\u9700\u8981\u586B\u5BEB\u6B64\u53C3\u6578"},fetch_interval:{zh:"\u6BCF\u6B21\u8BF7\u6C42\u95F4\u9694\u65F6\u95F4 (0-5000ms)",en:"Time Between Requests (0-5000ms)",zh_TW:"\u6BCF\u6B21\u8ACB\u6C42\u9593\u9694\u6642\u9593 (0-5000ms)"},translate_interval:{zh:"\u7FFB\u8BD1\u95F4\u9694\u65F6\u95F4 (10-2000ms)",en:"Translation Interval (10-2000ms)",zh_TW:"\u7FFB\u8B6F\u9593\u9694\u6642\u9593 (10-2000ms)"},http_timeout:{zh:"\u8BF7\u6C42\u8D85\u65F6\u65F6\u95F4 (5000-60000ms)",en:"Request Timeout Time (5000-60000ms)",zh_TW:"\u8ACB\u6C42\u903E\u6642\u6642\u9593 (5000-60000ms)"},custom_header:{zh:"\u81EA\u5B9A\u4E49Header\u53C2\u6570",en:"Custom Header Params"},custom_header_help:{zh:"\u4F7F\u7528JSON\u683C\u5F0F\uFF0C\u4F8B\u5982 \"User-Agent\": \"Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0\"",en:"Use JSON format, for example \"User-Agent\": \"Mozilla/5.0 (X11; Linux x86_64; rv:141.0) Gecko/20100101 Firefox/141.0\""},custom_body:{zh:"\u81EA\u5B9A\u4E49Body\u53C2\u6570",en:"Custom Body Params"},custom_body_help:{zh:"\u4F7F\u7528JSON\u683C\u5F0F\uFF0C\u4F8B\u5982 \"top_p\": 0.7",en:"Use JSON format, for example \"top_p\": 0.7"},min_translate_length:{zh:"\u6700\u5C0F\u7FFB\u8BD1\u5B57\u7B26\u6570 (1-100)",en:"Minimum number Of Translated Characters (1-100)",zh_TW:"\u6700\u5C0F\u7FFB\u8B6F\u5B57\u5143\u6578 (1-100)"},max_translate_length:{zh:"\u6700\u5927\u7FFB\u8BD1\u5B57\u7B26\u6570 (100-100000)",en:"Maximum number Of Translated Characters (100-100000)",zh_TW:"\u6700\u5927\u7FFB\u8B6F\u5B57\u5143\u6578 (100-100000)"},num_of_newline_characters:{zh:"\u6362\u884C\u5B57\u7B26\u6570 (1-1000)",en:"Number of Newline Characters (1-1000)",zh_TW:"\u63DB\u884C\u5B57\u5143\u6578 (1-1000)"},translate_service:{zh:"\u7FFB\u8BD1\u670D\u52A1",en:"Translate Service",zh_TW:"\u7FFB\u8B6F\u670D\u52D9"},translate_service_multiple:{zh:"\u7FFB\u8BD1\u670D\u52A1 (\u652F\u6301\u591A\u9009)",en:"Translation service (multiple supported)",zh_TW:"\u7FFB\u8B6F\u670D\u52D9 (\u652F\u63F4\u591A\u9078)"},translate_timing:{zh:"\u7FFB\u8BD1\u65F6\u673A",en:"Translate Timing",zh_TW:"\u7FFB\u8B6F\u6642\u6A5F"},mk_pagescroll:{zh:"\u6EDA\u52A8\u52A0\u8F7D\u7FFB\u8BD1\uFF08\u63A8\u8350\uFF09",en:"Rolling Loading (Suggested)",zh_TW:"\u6EFE\u52D5\u8F09\u5165\u7FFB\u8B6F\uFF08\u5EFA\u8B70\uFF09"},mk_pageopen:{zh:"\u7ACB\u5373\u5168\u90E8\u7FFB\u8BD1",en:"Translate all now",zh_TW:"\u7ACB\u5373\u5168\u90E8\u7FFB\u8B6F"},mk_mouseover:{zh:"\u9F20\u6807\u60AC\u505C\u7FFB\u8BD1",en:"Mouseover",zh_TW:"\u6ED1\u9F20\u61F8\u505C\u7FFB\u8B6F"},mk_ctrlKey:{zh:"Control + \u9F20\u6807\u60AC\u505C",en:"Control + Mouseover",zh_TW:"Control + \u6ED1\u9F20\u61F8\u505C"},mk_shiftKey:{zh:"Shift + \u9F20\u6807\u60AC\u505C",en:"Shift + Mouseover",zh_TW:"Shift + \u6ED1\u9F20\u61F8\u505C"},mk_altKey:{zh:"Alt + \u9F20\u6807\u60AC\u505C",en:"Alt + Mouseover",zh_TW:"Alt + \u6ED1\u9F20\u61F8\u505C"},from_lang:{zh:"\u539F\u6587\u8BED\u8A00",en:"Source Language",zh_TW:"\u539F\u6587\u8A9E\u8A00"},to_lang:{zh:"\u76EE\u6807\u8BED\u8A00",en:"Target Language",zh_TW:"\u76EE\u6A19\u8A9E\u8A00"},to_lang2:{zh:"\u7B2C\u4E8C\u76EE\u6807\u8BED\u8A00",en:"Target Language 2",zh_TW:"\u7B2C\u4E8C\u76EE\u6A19\u8A9E\u8A00"},to_lang2_helper:{zh:"\u8BBE\u5B9A\u540E\uFF0C\u4E0E\u76EE\u6807\u8BED\u8A00\u4EA7\u751F\u4E92\u8BD1\u6548\u679C\uFF0C\u4F46\u4F9D\u8D56\u8FDC\u7A0B\u8BED\u8A00\u8BC6\u522B\u3002",en:"After setting, it will produce mutual translation effect with the target language, but it relies on remote language recognition.",zh_TW:"\u8A2D\u5B9A\u5F8C\u6703\u8207\u76EE\u6A19\u8A9E\u8A00\u4E92\u8B6F\uFF0C\u4F46\u4F9D\u8CF4\u9060\u7AEF\u8A9E\u8A00\u8B58\u5225\u3002"},text_style:{zh:"\u8BD1\u6587\u6837\u5F0F",en:"Text Style",zh_TW:"\u8B6F\u6587\u6A23\u5F0F"},text_style_alt:{zh:"\u8BD1\u6587\u6837\u5F0F",en:"Text Style",zh_TW:"\u8B6F\u6587\u6A23\u5F0F"},bg_color:{zh:"\u6837\u5F0F\u989C\u8272",en:"Style Color",zh_TW:"\u6A23\u5F0F\u984F\u8272"},remain_unchanged:{zh:"\u4FDD\u7559\u4E0D\u53D8",en:"Remain Unchanged",zh_TW:"\u4FDD\u7559\u4E0D\u8B8A"},google_api:{zh:"\u8C37\u6B4C\u7FFB\u8BD1\u63A5\u53E3",en:"Google Translate API",zh_TW:"Google \u7FFB\u8B6F\u4ECB\u9762"},default_selector:{zh:"\u9ED8\u8BA4\u9009\u62E9\u5668",en:"Default selector",zh_TW:"\u9810\u8A2D\u9078\u64C7\u5668"},selector_rules:{zh:"\u9009\u62E9\u5668\u89C4\u5219",en:"Selector Rules",zh_TW:"\u9078\u64C7\u5668\u898F\u5247"},save:{zh:"\u4FDD\u5B58",en:"Save",zh_TW:"\u5132\u5B58"},edit:{zh:"\u7F16\u8F91",en:"Edit",zh_TW:"\u7DE8\u8F2F"},cancel:{zh:"\u53D6\u6D88",en:"Cancel",zh_TW:"\u53D6\u6D88"},delete:{zh:"\u5220\u9664",en:"Delete",zh_TW:"\u522A\u9664"},reset:{zh:"\u91CD\u7F6E",en:"Reset",zh_TW:"\u91CD\u8A2D"},add:{zh:"\u6DFB\u52A0",en:"Add",zh_TW:"\u65B0\u589E"},inject_rules:{zh:"\u6CE8\u5165\u8BA2\u9605\u89C4\u5219",en:"Inject Subscribe Rules",zh_TW:"\u6CE8\u5165\u8A02\u95B1\u898F\u5247"},personal_rules:{zh:"\u4E2A\u4EBA\u89C4\u5219",en:"Rules",zh_TW:"\u500B\u4EBA\u898F\u5247"},subscribe_rules:{zh:"\u8BA2\u9605\u89C4\u5219",en:"Subscribe",zh_TW:"\u8A02\u95B1\u898F\u5247"},overwrite_subscribe_rules:{zh:"\u8986\u5199\u8BA2\u9605\u89C4\u5219",en:"Overwrite",zh_TW:"\u8986\u5BEB\u8A02\u95B1\u898F\u5247"},subscribe_url:{zh:"\u8BA2\u9605\u5730\u5740",en:"Subscribe URL",zh_TW:"\u8A02\u95B1\u7DB2\u5740"},rules_warn_1:{zh:"1\u3001\u89C4\u5219\u751F\u6548\u7684\u4F18\u5148\u7EA7\u4F9D\u6B21\u4E3A\uFF1A\u4E2A\u4EBA\u89C4\u5219 > \u8BA2\u9605\u89C4\u5219 > \u5168\u5C40\u89C4\u5219\u3002\"\u5168\u5C40\u89C4\u5219\"\u76F8\u5F53\u4E8E\u515C\u5E95\u89C4\u5219\u3002",en:"1. The priority of rules is: personal rules > subscription rules > global rules. \"Global rules\" are like a fallback rule.",zh_TW:"1.\u898F\u5247\u751F\u6548\u7684\u512A\u5148\u9806\u5E8F\u4F9D\u5E8F\u70BA\uFF1A\u500B\u4EBA\u898F\u5247 > \u8A02\u95B1\u898F\u5247 > \u5168\u57DF\u898F\u5247\u3002 \"\u5168\u57DF\u898F\u5247\"\u76F8\u7576\u65BC\u515C\u5E95\u898F\u5247\u3002"},rules_warn_2:{zh:"2\u3001\u201C\u8BA2\u9605\u89C4\u5219\u201D\u9009\u62E9\u6CE8\u5165\u540E\u624D\u4F1A\u751F\u6548\u3002",en:"2. \"Subscription rules\" will take effect only after injection is selected.",zh_TW:"2\u3001\u300C\u8A02\u95B1\u898F\u5247\u300D\u9078\u64C7\u6CE8\u5165\u5F8C\u624D\u6703\u751F\u6548\u3002"},rules_warn_3:{zh:"3\u3001\u5173\u4E8E\u89C4\u5219\u586B\u5199\uFF1A\u8F93\u5165\u6846\u7559\u7A7A\u6216\u4E0B\u62C9\u6846\u9009\u201C*\u201D\u8868\u793A\u91C7\u7528\u5168\u5C40\u89C4\u5219\u3002",en:"3. Regarding filling in the rules: Leave the input box blank or select \"*\" in the drop-down box to use global rule.",zh_TW:"3. \u898F\u5247\u586B\u5BEB\u8AAA\u660E\uFF1A\u8F38\u5165\u6846\u7559\u7A7A\u6216\u4E0B\u62C9\u9078\u64C7\u300C*\u300D\u8868\u793A\u4F7F\u7528\u5168\u57DF\u898F\u5247\u3002"},sync_warn:{zh:"\u6D89\u53CA\u9690\u79C1\u6570\u636E\u7684\u540C\u6B65\u8BF7\u8C28\u614E\u9009\u62E9\u7B2C\u4E09\u65B9\u540C\u6B65\u670D\u52A1\uFF0C\u5EFA\u8BAE\u81EA\u884C\u642D\u5EFA kiss-worker \u6216 WebDAV \u670D\u52A1\u3002",en:"When synchronizing data that involves privacy, please be cautious about choosing third-party sync services. It is recommended to set up your own sync service using kiss-worker or WebDAV.",zh_TW:"\u540C\u6B65\u6D89\u53CA\u96B1\u79C1\u8CC7\u6599\u6642\uFF0C\u8ACB\u8B39\u614E\u9078\u64C7\u7B2C\u4E09\u65B9\u540C\u6B65\u670D\u52D9\uFF1B\u5EFA\u8B70\u81EA\u5EFA kiss-worker \u6216 WebDAV \u670D\u52D9\u3002"},sync_warn_2:{zh:"\u5982\u679C\u670D\u52A1\u5668\u5B58\u5728\u5176\u4ED6\u5BA2\u6237\u7AEF\u540C\u6B65\u7684\u6570\u636E\uFF0C\u7B2C\u4E00\u6B21\u540C\u6B65\u5C06\u76F4\u63A5\u8986\u76D6\u672C\u5730\u914D\u7F6E\uFF0C\u540E\u9762\u5219\u6839\u636E\u4FEE\u6539\u65F6\u95F4\uFF0C\u65B0\u7684\u8986\u76D6\u65E7\u7684\u3002",en:"If the server has data synchronized by other clients, the first synchronization will directly overwrite the local configuration, and later, according to the modification time, the new one will overwrite the old one.",zh_TW:"\u82E5\u4F3A\u670D\u5668\u4E0A\u5B58\u5728\u5176\u4ED6\u7528\u6236\u7AEF\u540C\u6B65\u7684\u8CC7\u6599\uFF0C\u7B2C\u4E00\u6B21\u540C\u6B65\u6703\u76F4\u63A5\u8986\u84CB\u672C\u6A5F\u8A2D\u5B9A\uFF1B\u4E4B\u5F8C\u5247\u4F9D\u4FEE\u6539\u6642\u9593\uFF0C\u7531\u65B0\u7684\u8986\u84CB\u820A\u7684\u3002"},about_sync_api:{zh:"\u81EA\u5EFAkiss-wroker\u6570\u636E\u540C\u6B65\u670D\u52A1",en:"Self-hosting a Kiss-worker data sync service",zh_TW:"\u81EA\u5EFA kiss-wroker \u8CC7\u6599\u540C\u6B65\u670D\u52D9"},about_api:{zh:"1\u3001\u5176\u4E2D BuiltinAI \u4E3A\u6D4F\u89C8\u5668\u5185\u7F6EAI\u7FFB\u8BD1\uFF0C\u76EE\u524D\u4EC5 Chrome 138 \u53CA\u4EE5\u4E0A\u7248\u672C\u5F97\u5230\u652F\u6301\u3002",en:"1. BuiltinAI is the browser's built-in AI translation, which is currently only supported by Chrome 138 and above.",zh_TW:"1.\u5176\u4E2D BuiltinAI \u70BA\u700F\u89BD\u5668\u5167\u5EFAAI\u7FFB\u8B6F\uFF0C\u76EE\u524D\u50C5 Chrome 138 \u4EE5\u4E0A\u7248\u672C\u652F\u63F4\u3002"},about_api_2:{zh:"2\u3001\u5927\u90E8\u5206AI\u63A5\u53E3\u90FD\u4E0EOpenAI\u517C\u5BB9\uFF0C\u56E0\u6B64\u9009\u62E9\u6DFB\u52A0OpenAI\u7C7B\u578B\u5373\u53EF\u3002",en:"2. Most AI interfaces are compatible with OpenAI, so just choose to add the OpenAI type.",zh_TW:"2.\u5927\u90E8\u5206AI\u4ECB\u9762\u90FD\u8207OpenAI\u76F8\u5BB9\uFF0C\u56E0\u6B64\u9078\u64C7\u65B0\u589EOpenAI\u985E\u578B\u5373\u53EF\u3002"},about_api_3:{zh:"2\u3001\u6682\u672A\u5217\u51FA\u7684\u63A5\u53E3\uFF0C\u7406\u8BBA\u4E0A\u90FD\u53EF\u4EE5\u901A\u8FC7\u81EA\u5B9A\u4E49\u63A5\u53E3 (Custom) \u7684\u5F62\u5F0F\u652F\u6301\u3002",en:"2. Interfaces that have not yet been launched can theoretically be supported through custom interfaces.",zh_TW:"2\u3001\u66AB\u672A\u5217\u51FA\u7684\u4ECB\u9762\uFF0C\u7406\u8AD6\u4E0A\u90FD\u53EF\u900F\u904E\u81EA\u8A02\u4ECB\u9762 (Custom) \u7684\u5F62\u5F0F\u652F\u63F4\u3002"},about_api_proxy:{zh:"\u67E5\u770B\u81EA\u5EFA\u4E00\u4E2A\u7FFB\u8BD1\u63A5\u53E3\u4EE3\u7406",en:"Check out the self-built translation interface proxy",zh_TW:"\u67E5\u770B\u5982\u4F55\u81EA\u5EFA\u7FFB\u8B6F\u4ECB\u9762 Proxy"},setting_helper:{zh:"\u65B0\u65E7\u914D\u7F6E\u5E76\u4E0D\u517C\u5BB9\uFF0C\u5BFC\u51FA\u7684\u65E7\u7248\u914D\u7F6E\uFF0C\u52FF\u518D\u6B21\u5BFC\u5165\u3002",en:"The old and new configurations are not compatible. Do not import the exported old configuration again.",zh_TW:"\u65B0\u820A\u914D\u7F6E\u4E26\u4E0D\u76F8\u5BB9\uFF0C\u532F\u51FA\u7684\u820A\u7248\u914D\u7F6E\uFF0C\u52FF\u518D\u6B21\u532F\u5165\u3002"},style_none:{zh:"\u65E0",en:"None",zh_TW:"\u7121"},under_line:{zh:"\u4E0B\u5212\u76F4\u7EBF",en:"Underline",zh_TW:"\u4E0B\u5283\u76F4\u7DDA"},dot_line:{zh:"\u4E0B\u5212\u70B9\u72B6\u7EBF",en:"Dotted Underline",zh_TW:"\u4E0B\u5283\u9EDE\u72C0\u7DDA"},dash_line:{zh:"\u4E0B\u5212\u865A\u7EBF",en:"Dashed Underline",zh_TW:"\u4E0B\u5283\u865B\u7DDA"},dash_box:{zh:"\u865A\u7EBF\u6846",en:"Dashed Box"},wavy_line:{zh:"\u4E0B\u5212\u6CE2\u6D6A\u7EBF",en:"Wavy Underline",zh_TW:"\u4E0B\u5283\u6CE2\u6D6A\u7DDA"},fuzzy:{zh:"\u6A21\u7CCA",en:"Fuzzy",zh_TW:"\u6A21\u7CCA"},highlight:{zh:"\u9AD8\u4EAE",en:"Highlight",zh_TW:"\u53CD\u767D\u6A19\u793A"},blockquote:{zh:"\u5F15\u7528",en:"Blockquote",zh_TW:"\u5F15\u7528"},gradient:{zh:"\u6E10\u53D8",en:"Gradient",zh_TW:"\u6F38\u8B8A"},blink:{zh:"\u95EA\u73B0",en:"Blink",zh_TW:"\u9583\u73FE"},glow:{zh:"\u53D1\u5149",en:"Glow",zh_TW:"\u767C\u5149"},diy_style:{zh:"\u81EA\u5B9A\u4E49\u6837\u5F0F",en:"Custom Style",zh_TW:"\u81EA\u8A02\u6A23\u5F0F"},diy_style_helper:{zh:"\u9075\u5FAA\u201CCSS\u201D\u7684\u8BED\u6CD5",en:"Follow the syntax of \"CSS\"",zh_TW:"\u9075\u5FAA CSS \u8A9E\u6CD5"},setting:{zh:"\u8BBE\u7F6E",en:"Setting",zh_TW:"\u8A2D\u5B9A"},pattern:{zh:"\u5339\u914D\u7F51\u5740",en:"URL pattern",zh_TW:"\u5339\u914D\u7DB2\u5740"},pattern_helper:{zh:"1\u3001\u652F\u6301\u661F\u53F7(*)\u901A\u914D\u7B26\u30022\u3001\u591A\u4E2AURL\u7528\u6362\u884C\u6216\u82F1\u6587\u9017\u53F7\u201C,\u201D\u5206\u9694\u3002",en:"1. Supports the asterisk (*) wildcard character. 2. Separate multiple URLs with newlines or English commas \",\".",zh_TW:"1. \u652F\u63F4\u661F\u865F (*) \u842C\u7528\u5B57\u5143\u30022. \u591A\u500B URL \u8ACB\u4EE5\u63DB\u884C\u6216\u82F1\u6587\u9017\u865F\u300C,\u300D\u5206\u9694\u3002"},selector_helper:{zh:"1\u3001\u9700\u8981\u7FFB\u8BD1\u7684\u76EE\u6807\u5143\u7D20\u30022\u3001\u5F00\u542F\u81EA\u52A8\u626B\u63CF\u9875\u9762\u540E\uFF0C\u672C\u8BBE\u7F6E\u65E0\u6548\u30023\u3001\u9075\u5FAACSS\u9009\u62E9\u5668\u8BED\u6CD5\u3002",en:"1. The target element to be translated. 2. This setting is invalid when automatic page scanning is enabled. 3. Follow the CSS selector syntax.",zh_TW:"1\u3001\u9700\u8981\u7FFB\u8B6F\u7684\u76EE\u6A19\u5143\u7D20\u3002 2.\u958B\u555F\u81EA\u52D5\u6383\u63CF\u9801\u9762\u5F8C\uFF0C\u672C\u8A2D\u5B9A\u7121\u6548\u3002 3.\u9075\u5FAACSS\u9078\u64C7\u5668\u8A9E\u6CD5\u3002"},translate_switch:{zh:"\u5F00\u542F\u7FFB\u8BD1",en:"Translate Switch",zh_TW:"\u958B\u555F\u7FFB\u8B6F"},default_enabled:{zh:"\u9ED8\u8BA4\u5F00\u542F",en:"Enabled",zh_TW:"\u9810\u8A2D\u958B\u555F"},default_disabled:{zh:"\u9ED8\u8BA4\u5173\u95ED",en:"Disabled",zh_TW:"\u9810\u8A2D\u95DC\u9589"},selector:{zh:"\u9009\u62E9\u5668",en:"Selector",zh_TW:"\u9078\u64C7\u5668"},target_selector:{zh:"\u76EE\u6807\u5143\u7D20\u9009\u62E9\u5668",en:"Target element selector",zh_TW:"\u76EE\u6A19\u5143\u7D20\u9078\u64C7\u5668"},keep_selector:{zh:"\u4FDD\u7559\u5143\u7D20\u9009\u62E9\u5668",en:"Keep unchanged selector",zh_TW:"\u4FDD\u7559\u5143\u7D20\u9078\u64C7\u5668"},keep_selector_helper:{zh:"1\u3001\u76EE\u6807\u5143\u7D20\u4E0B\u9762\u9700\u8981\u539F\u6837\u4FDD\u7559\u7684\u5B50\u8282\u70B9\u30022\u3001\u9075\u5FAACSS\u9009\u62E9\u5668\u8BED\u6CD5\u3002",en:"1. The child nodes under the target element need to remain intact. 2. Follow the CSS selector syntax.",zh_TW:"1. \u76EE\u6A19\u5143\u7D20\u4E0B\u7684\u5B50\u7BC0\u9EDE\u9700\u8981\u4FDD\u6301\u539F\u6A23\u3002 2. \u9075\u5FAA CSS \u9078\u64C7\u5668\u8A9E\u6CD5\u3002"},root_selector:{zh:"\u6839\u8282\u70B9\u9009\u62E9\u5668",en:"Root node selector",zh_TW:"\u6839\u7BC0\u9EDE\u9078\u64C7\u5668"},root_selector_helper:{zh:"1\u3001\u7528\u4E8E\u7F29\u5C0F\u9875\u9762\u7FFB\u8BD1\u8303\u56F4\u30022\u3001\u9075\u5FAACSS\u9009\u62E9\u5668\u8BED\u6CD5\u3002",en:"1. Used to narrow the translation scope of the page. 2. Follow the CSS selector syntax.",zh_TW:"1.\u7528\u65BC\u7E2E\u5C0F\u9801\u9762\u7FFB\u8B6F\u7BC4\u570D\u3002 2\u3001\u9075\u5FAACSS\u9078\u64C7\u5668\u8A9E\u6CD5\u3002"},ignore_selector:{zh:"\u4E0D\u7FFB\u8BD1\u8282\u70B9\u9009\u62E9\u5668",en:"Ignore node selectors",zh_TW:"\u4E0D\u7FFB\u8B6F\u7BC0\u9EDE\u9078\u64C7\u5668"},ignore_selector_helper:{zh:"1\u3001\u9700\u8981\u5FFD\u7565\u7684\u8282\u70B9\u30022\u3001\u9075\u5FAACSS\u9009\u62E9\u5668\u8BED\u6CD5\u3002",en:"1. Nodes to be ignored. 2. Follow CSS selector syntax.",zh_TW:"1\u3001\u9700\u8981\u5FFD\u7565\u7684\u7BC0\u9EDE\u3002 2\u3001\u9075\u5FAACSS\u9078\u64C7\u5668\u8A9E\u6CD5\u3002"},terms:{zh:"\u4E13\u4E1A\u672F\u8BED",en:"Terms",zh_TW:"\u5C08\u696D\u8853\u8A9E"},terms_helper:{zh:"1\u3001\u652F\u6301\u6B63\u5219\u8868\u8FBE\u5F0F\u5339\u914D\uFF0C\u65E0\u9700\u659C\u6746\uFF0C\u4E0D\u652F\u6301\u4FEE\u9970\u7B26\u30022\u3001\u591A\u6761\u672F\u8BED\u7528\u6362\u884C\u6216\u5206\u53F7\u201C;\u201D\u9694\u5F00\u30023\u3001\u672F\u8BED\u548C\u8BD1\u6587\u7528\u82F1\u6587\u9017\u53F7\u201C,\u201D\u9694\u5F00\u30024\u3001\u6CA1\u6709\u8BD1\u6587\u89C6\u4E3A\u4E0D\u7FFB\u8BD1\u672F\u8BED\u3002",en:"1. Supports regular expression matching, no slash required, and no modifiers are supported. 2. Separate multiple terms with newlines or semicolons \";\". 3. Terms and translations are separated by English commas \",\". 4. If there is no translation, the term will be deemed not to be translated.",zh_TW:"1. \u652F\u63F4\u6B63\u5247\u8868\u9054\u5F0F\u6BD4\u5C0D\uFF0C\u7121\u9700\u659C\u7DDA\uFF0C\u4E14\u4E0D\u652F\u63F4\u4FEE\u98FE\u7B26\u30022. \u591A\u689D\u8853\u8A9E\u4EE5\u63DB\u884C\u6216\u5206\u865F\u300C;\u300D\u5206\u9694\u30023. \u8853\u8A9E\u8207\u8B6F\u6587\u4EE5\u82F1\u6587\u9017\u865F\u300C,\u300D\u5206\u9694\u30024. \u7121\u8B6F\u6587\u8005\u8996\u70BA\u4E0D\u7FFB\u8B6F\u8A72\u8853\u8A9E\u3002"},ai_terms:{zh:"AI\u4E13\u4E1A\u672F\u8BED",en:"AI Terms",zh_TW:"AI\u5C08\u696D\u8853\u8A9E"},ai_terms_helper:{zh:"1\u3001AI\u667A\u80FD\u66FF\u6362\uFF0C\u4E0D\u652F\u6301\u6B63\u5219\u8868\u8FBE\u5F0F\u30022\u3001\u591A\u6761\u672F\u8BED\u7528\u6362\u884C\u6216\u5206\u53F7\u201C;\u201D\u9694\u5F00\u30023\u3001\u672F\u8BED\u548C\u8BD1\u6587\u7528\u82F1\u6587\u9017\u53F7\u201C,\u201D\u9694\u5F00\u30024\u3001\u6CA1\u6709\u8BD1\u6587\u89C6\u4E3A\u4E0D\u7FFB\u8BD1\u672F\u8BED\u3002",en:"1. AI intelligent replacement does not support regular expressions.2. Separate multiple terms with newlines or semicolons \";\". 3. Terms and translations are separated by English commas \",\". 4. If there is no translation, the term will be deemed not to be translated.",zh_TW:"1.AI\u667A\u80FD\u66FF\u63DB\uFF0C\u4E0D\u652F\u63F4\u6B63\u898F\u8868\u793A\u5F0F\u30022. \u591A\u689D\u8853\u8A9E\u4EE5\u63DB\u884C\u6216\u5206\u865F\u300C;\u300D\u5206\u9694\u30023. \u8853\u8A9E\u8207\u8B6F\u6587\u4EE5\u82F1\u6587\u9017\u865F\u300C,\u300D\u5206\u9694\u30024. \u7121\u8B6F\u6587\u8005\u8996\u70BA\u4E0D\u7FFB\u8B6F\u8A72\u8853\u8A9E\u3002"},selector_style:{zh:"\u9009\u62E9\u5668\u8282\u70B9\u6837\u5F0F",en:"Selector Style",zh_TW:"\u9078\u64C7\u5668\u7BC0\u9EDE\u6A23\u5F0F"},selector_style_helper:{zh:"\u5F00\u542F\u7FFB\u8BD1\u65F6\u6CE8\u5165\u3002",en:"It is injected when translation is turned on.",zh_TW:"\u5728\u958B\u555F\u7FFB\u8B6F\u6642\u6CE8\u5165\u3002"},selector_parent_style:{zh:"\u9009\u62E9\u5668\u7236\u8282\u70B9\u6837\u5F0F",en:"Parent Selector Style",zh_TW:"\u9078\u64C7\u5668\u7236\u7BC0\u9EDE\u6A23\u5F0F"},selector_grand_style:{zh:"\u9009\u62E9\u5668\u7956\u8282\u70B9\u6837\u5F0F",en:"Grand Selector Style",zh_TW:"\u9078\u64C7\u5668\u7956\u7BC0\u9EDE\u6A23\u5F0F"},inject_js:{zh:"\u6CE8\u5165JS",en:"Inject JS",zh_TW:"\u6CE8\u5165 JS"},inject_js_helper:{zh:"\u521D\u59CB\u5316\u65F6\u6CE8\u5165\u8FD0\u884C\uFF0C\u4E00\u4E2A\u9875\u9762\u4EC5\u8FD0\u884C\u4E00\u6B21\u3002",en:"Injected and run at initialization, and only run once per page.",zh_TW:"\u521D\u59CB\u5316\u6642\u6CE8\u5165\u904B\u884C\uFF0C\u4E00\u500B\u9801\u9762\u50C5\u904B\u884C\u4E00\u6B21\u3002"},inject_css:{zh:"\u6CE8\u5165CSS",en:"Inject CSS",zh_TW:"\u6CE8\u5165 CSS"},inject_css_helper:{zh:"\u521D\u59CB\u5316\u65F6\u6CE8\u5165\u8FD0\u884C\uFF0C\u4E00\u4E2A\u9875\u9762\u4EC5\u8FD0\u884C\u4E00\u6B21\u3002",en:"Injected and run at initialization, and only run once per page.",zh_TW:"\u521D\u59CB\u5316\u6642\u6CE8\u5165\u904B\u884C\uFF0C\u4E00\u500B\u9801\u9762\u50C5\u904B\u884C\u4E00\u6B21\u3002"},fixer_function:{zh:"\u4FEE\u590D\u51FD\u6570",en:"Fixer Function",zh_TW:"\u4FEE\u5FA9\u51FD\u5F0F"},fixer_function_helper:{zh:"1\u3001br\u662F\u5C06
\u6362\u884C\u66FF\u6362\u6210

\u30022\u3001bn\u662F\u5C06\\n\u6362\u884C\u66FF\u6362\u6210

\u30023\u3001brToDiv\u548CbnToDiv\u662F\u66FF\u6362\u6210

\u3002",en:"1. br replaces
line breaks with

. 2. bn replaces \\n newline with

. 3. brToDiv and bnToDiv are replaced with

.",zh_TW:"1. br \u6703\u5C07
\u63DB\u884C\u66FF\u63DB\u70BA

\u30022. bn \u6703\u5C07 \\n \u63DB\u884C\u66FF\u63DB\u70BA

\u30023. brToDiv \u8207 bnToDiv \u6703\u66FF\u63DB\u70BA

\u3002"},import:{zh:"\u5BFC\u5165",en:"Import",zh_TW:"\u532F\u5165"},export:{zh:"\u5BFC\u51FA",en:"Export",zh_TW:"\u532F\u51FA"},export_translation:{zh:"\u5BFC\u51FA\u91CA\u4E49",en:"Export Translation",zh_TW:"\u532F\u51FA\u91CB\u7FA9"},error_cant_be_blank:{zh:"\u4E0D\u80FD\u4E3A\u7A7A",en:"Can not be blank",zh_TW:"\u4E0D\u53EF\u70BA\u7A7A"},error_duplicate_values:{zh:"\u5B58\u5728\u91CD\u590D\u7684\u503C",en:"There are duplicate values",zh_TW:"\u5B58\u5728\u91CD\u8907\u7684\u503C"},error_wrong_file_type:{zh:"\u9519\u8BEF\u7684\u6587\u4EF6\u7C7B\u578B",en:"Wrong file type",zh_TW:"\u6A94\u6848\u985E\u578B\u932F\u8AA4"},error_fetch_url:{zh:"\u8BF7\u68C0\u67E5url\u5730\u5740\u662F\u5426\u6B63\u786E\u6216\u7A0D\u540E\u518D\u8BD5\u3002",en:"Please check if the url address is correct or try again later.",zh_TW:"\u8ACB\u6AA2\u67E5 URL \u662F\u5426\u6B63\u78BA\u6216\u7A0D\u5F8C\u518D\u8A66\u3002"},deepl_api:{zh:"DeepL \u63A5\u53E3",en:"DeepL API",zh_TW:"DeepL \u4ECB\u9762"},deepl_key:{zh:"DeepL \u5BC6\u94A5",en:"DeepL Key",zh_TW:"DeepL \u91D1\u9470"},openai_api:{zh:"OpenAI \u63A5\u53E3",en:"OpenAI API",zh_TW:"OpenAI \u4ECB\u9762"},openai_key:{zh:"OpenAI \u5BC6\u94A5",en:"OpenAI Key",zh_TW:"OpenAI \u91D1\u9470"},openai_model:{zh:"OpenAI \u6A21\u578B",en:"OpenAI Model",zh_TW:"OpenAI \u6A21\u578B"},openai_prompt:{zh:"OpenAI \u63D0\u793A\u8BCD",en:"OpenAI Prompt",zh_TW:"OpenAI \u63D0\u793A\u8A5E"},if_clear_cache:{zh:"\u662F\u5426\u6E05\u9664\u7F13\u5B58\uFF08\u9ED8\u8BA4\u7F13\u5B587\u5929\uFF09",en:"Whether clear cache (Default cache is 7 days)",zh_TW:"\u662F\u5426\u6E05\u9664\u5FEB\u53D6\uFF08\u9810\u8A2D\u5FEB\u53D67\u5929\uFF09"},clear_cache_never:{zh:"\u4E0D\u6E05\u9664\u7F13\u5B58",en:"Never clear cache",zh_TW:"\u4E0D\u6E05\u9664\u5FEB\u53D6"},clear_cache_restart:{zh:"\u91CD\u542F\u6D4F\u89C8\u5668\u65F6\u6E05\u9664\u7F13\u5B58",en:"Clear cache when restarting browser",zh_TW:"\u91CD\u65B0\u555F\u52D5\u700F\u89BD\u5668\u6642\u6E05\u9664\u5FEB\u53D6"},data_sync_type:{zh:"\u6570\u636E\u540C\u6B65\u65B9\u5F0F",en:"Data Sync Type",zh_TW:"\u8CC7\u6599\u540C\u6B65\u65B9\u5F0F"},data_sync_url:{zh:"\u6570\u636E\u540C\u6B65\u63A5\u53E3",en:"Data Sync API",zh_TW:"\u8CC7\u6599\u540C\u6B65\u4ECB\u9762"},data_sync_user:{zh:"\u6570\u636E\u540C\u6B65\u8D26\u6237",en:"Data Sync User",zh_TW:"\u8CC7\u6599\u540C\u6B65\u5E33\u865F"},data_sync_key:{zh:"\u6570\u636E\u540C\u6B65\u5BC6\u94A5",en:"Data Sync Key",zh_TW:"\u8CC7\u6599\u540C\u6B65\u91D1\u9470"},sync_now:{zh:"\u7ACB\u5373\u540C\u6B65",en:"Sync Now",zh_TW:"\u7ACB\u5373\u540C\u6B65"},sync_success:{zh:"\u540C\u6B65\u6210\u529F\uFF01",en:"Sync Success",zh_TW:"\u540C\u6B65\u6210\u529F\uFF01"},sync_failed:{zh:"\u540C\u6B65\u5931\u8D25\uFF01",en:"Sync Error",zh_TW:"\u540C\u6B65\u5931\u6557\uFF01"},error_got_some_wrong:{zh:"\u62B1\u6B49\uFF0C\u51FA\u9519\u4E86\uFF01",en:"Sorry, something went wrong!",zh_TW:"\u62B1\u6B49\uFF0C\u767C\u751F\u932F\u8AA4\uFF01"},error_sync_setting:{zh:"\u60A8\u7684\u540C\u6B65\u7C7B\u578B\u5FC5\u987B\u4E3A\u201CKISS-Worker\u201D\uFF0C\u4E14\u9700\u586B\u5199\u5B8C\u6574",en:"Your sync type must be \"KISS-Worker\" and must be filled in completely",zh_TW:"\u60A8\u7684\u540C\u6B65\u578B\u614B\u5FC5\u9808\u70BA\u300CKISS-Worker\u300D\uFF0C\u4E14\u9700\u586B\u5BEB\u5B8C\u6574\u3002"},click_test:{zh:"\u70B9\u51FB\u6D4B\u8BD5",en:"Click Test",zh_TW:"\u9EDE\u64CA\u6E2C\u8A66"},test_success:{zh:"\u6D4B\u8BD5\u6210\u529F",en:"Test success",zh_TW:"\u6E2C\u8A66\u6210\u529F"},test_failed:{zh:"\u6D4B\u8BD5\u5931\u8D25",en:"Test failed",zh_TW:"\u6E2C\u8A66\u5931\u6557"},clear_all_cache_now:{zh:"\u7ACB\u5373\u6E05\u9664\u5168\u90E8\u7F13\u5B58",en:"Clear all cache now",zh_TW:"\u7ACB\u5373\u6E05\u9664\u5168\u90E8\u5FEB\u53D6"},clear_cache:{zh:"\u6E05\u9664\u7F13\u5B58",en:"Clear Cache",zh_TW:"\u6E05\u9664\u5FEB\u53D6"},clear_success:{zh:"\u6E05\u9664\u6210\u529F",en:"Clear success",zh_TW:"\u6E05\u9664\u6210\u529F"},clear_failed:{zh:"\u6E05\u9664\u5931\u8D25",en:"Clear failed",zh_TW:"\u6E05\u9664\u5931\u6557"},share:{zh:"\u5206\u4EAB",en:"Share",zh_TW:"\u5206\u4EAB"},clear_all:{zh:"\u6E05\u7A7A",en:"Clear All",zh_TW:"\u6E05\u7A7A"},help:{zh:"\u6C42\u52A9",en:"Help",zh_TW:"\u6C42\u52A9"},restore_default:{zh:"\u6062\u590D\u9ED8\u8BA4",en:"Restore Default",zh_TW:"\u6062\u5FA9\u9810\u8A2D"},shortcuts_setting:{zh:"\u5FEB\u6377\u952E\u8BBE\u7F6E",en:"Shortcuts Setting",zh_TW:"\u5FEB\u6377\u9375\u8A2D\u5B9A"},toggle_translate_shortcut:{zh:"\"\u5F00\u542F\u7FFB\u8BD1\"\u5FEB\u6377\u952E",en:"\"Toggle Translate\" Shortcut",zh_TW:"\u300C\u958B\u555F\u7FFB\u8B6F\u300D\u5FEB\u6377\u9375"},toggle_style_shortcut:{zh:"\"\u5207\u6362\u6837\u5F0F\"\u5FEB\u6377\u952E",en:"\"Toggle Style\" Shortcut",zh_TW:"\u300C\u5207\u63DB\u6A23\u5F0F\u300D\u5FEB\u6377\u9375"},toggle_popup_shortcut:{zh:"\"\u6253\u5F00\u5F39\u7A97\"\u5FEB\u6377\u952E",en:"\"Open Popup\" Shortcut",zh_TW:"\u300C\u958B\u555F\u5F48\u7A97\u300D\u5FEB\u6377\u9375"},open_setting_shortcut:{zh:"\"\u6253\u5F00\u8BBE\u7F6E\"\u5FEB\u6377\u952E",en:"\"Open Setting\" Shortcut",zh_TW:"\u300C\u958B\u555F\u8A2D\u5B9A\u300D\u5FEB\u6377\u9375"},hide_fab_button:{zh:"\u9690\u85CF\u60AC\u6D6E\u6309\u94AE",en:"Hide Fab Button",zh_TW:"\u96B1\u85CF\u61F8\u6D6E\u6309\u9215"},fab_click_action:{zh:"\u5355\u51FB\u60AC\u6D6E\u6309\u94AE\u52A8\u4F5C",en:"Single Click Fab Action",zh_TW:"\u55AE\u64CA\u61F8\u6D6E\u6309\u94AE\u52D5\u4F5C"},fab_click_menu:{zh:"\u5F39\u51FA\u83DC\u5355",en:"Popup Menu",zh_TW:"\u5F48\u51FA\u9078\u55AE"},fab_click_translate:{zh:"\u76F4\u63A5\u7FFB\u8BD1",en:"Translate",zh_TW:"\u76F4\u63A5\u7FFB\u8B6F"},hide_tran_button:{zh:"\u9690\u85CF\u7FFB\u8BD1\u6309\u94AE",en:"Hide Translate Button",zh_TW:"\u96B1\u85CF\u7FFB\u8B6F\u6309\u9215"},hide_click_away:{zh:"\u70B9\u51FB\u5916\u90E8\u5173\u95ED\u5F39\u7A97",en:"Click outside to close the pop-up window",zh_TW:"\u9EDE\u64CA\u5916\u90E8\u95DC\u9589\u5F48\u7A97"},use_simple_style:{zh:"\u4F7F\u7528\u7B80\u6D01\u754C\u9762",en:"Use a simple interface",zh_TW:"\u4F7F\u7528\u7C21\u6F54\u4ECB\u9762"},show:{zh:"\u663E\u793A",en:"Show",zh_TW:"\u986F\u793A"},hide:{zh:"\u9690\u85CF",en:"Hide",zh_TW:"\u96B1\u85CF"},save_rule:{zh:"\u4FDD\u5B58\u89C4\u5219",en:"Save Rule",zh_TW:"\u5132\u5B58\u898F\u5247"},global_rule:{zh:"\u5168\u5C40\u89C4\u5219",en:"Global Rule",zh_TW:"\u5168\u57DF\u898F\u5247"},input_translate:{zh:"\u8F93\u5165\u6846\u7FFB\u8BD1",en:"Input Box Translation",zh_TW:"\u8F38\u5165\u6846\u7FFB\u8B6F"},use_input_box_translation:{zh:"\u542F\u7528\u8F93\u5165\u6846\u7FFB\u8BD1",en:"Input Box Translation",zh_TW:"\u555F\u7528\u8F38\u5165\u6846\u7FFB\u8B6F"},input_selector:{zh:"\u8F93\u5165\u6846\u9009\u62E9\u5668",en:"Input Selector",zh_TW:"\u8F38\u5165\u6846\u9078\u64C7\u5668"},input_selector_helper:{zh:"\u7528\u4E8E\u8F93\u5165\u6846\u7FFB\u8BD1\u3002",en:"Used for input box translation.",zh_TW:"\u7528\u65BC\u8F38\u5165\u6846\u7FFB\u8B6F\u3002"},trigger_trans_shortcut:{zh:"\u89E6\u53D1\u7FFB\u8BD1\u5FEB\u6377\u952E",en:"Trigger Translation Shortcut Keys",zh_TW:"\u89F8\u767C\u7FFB\u8B6F\u5FEB\u6377\u9375"},trigger_trans_shortcut_help:{zh:"\u9ED8\u8BA4\u4E3A\u5355\u51FB\u201CAltLeft+KeyI\u201D",en:"Default is \"AltLeft+KeyI\"",zh_TW:"\u9810\u8A2D\u70BA\u6309\u4E0B\u300CAltLeft+KeyI\u300D"},shortcut_press_count:{zh:"\u5FEB\u6377\u952E\u8FDE\u51FB\u6B21\u6570",en:"Shortcut Press Number",zh_TW:"\u5FEB\u6377\u9375\u9023\u64CA\u6B21\u6578"},combo_timeout:{zh:"\u8FDE\u51FB\u8D85\u65F6\u65F6\u95F4 (10-1000ms)",en:"Combo Timeout (10-1000ms)",zh_TW:"\u9023\u64CA\u903E\u6642 (10-1000ms)"},input_trans_start_sign:{zh:"\u7FFB\u8BD1\u8D77\u59CB\u6807\u8BC6",en:"Translation Start Sign",zh_TW:"\u7FFB\u8B6F\u8D77\u59CB\u6A19\u8A18"},input_trans_start_sign_help:{zh:"\u6807\u8BC6\u540E\u9762\u53EF\u4EE5\u52A0\u76EE\u6807\u8BED\u8A00\u4EE3\u7801\uFF0C\u5982\uFF1A \u201C/en \u4F60\u597D\u201D\u3001\u201C/zh hello\u201D",en:"The target language code can be added after the sign, such as: \"/en \u4F60\u597D\", \"/zh hello\"",zh_TW:"\u6A19\u8A18\u5F8C\u53EF\u52A0\u4E0A\u76EE\u6A19\u8A9E\u8A00\u4EE3\u78BC\uFF0C\u4F8B\u5982\uFF1A\u300C/en \u4F60\u597D\u300D\u3001\u300C/zh hello\u300D"},detect_lang_remote:{zh:"\u8FDC\u7A0B\u8BED\u8A00\u68C0\u6D4B",en:"Remote language detection",zh_TW:"\u9060\u7AEF\u8A9E\u8A00\u5075\u6E2C"},detect_lang_remote_help:{zh:"\u542F\u7528\u540E\u68C0\u6D4B\u51C6\u786E\u5EA6\u589E\u52A0\uFF0C\u4F46\u4F1A\u964D\u4F4E\u7FFB\u8BD1\u901F\u5EA6\uFF0C\u8BF7\u914C\u60C5\u5F00\u542F",en:"After enabling, the detection accuracy will increase, but it will reduce the translation speed. Please enable it as appropriate.",zh_TW:"\u555F\u7528\u5F8C\u53EF\u63D0\u5347\u5075\u6E2C\u6E96\u78BA\u5EA6\uFF0C\u4F46\u6703\u964D\u4F4E\u7FFB\u8B6F\u901F\u5EA6\uFF0C\u8ACB\u8996\u9700\u8981\u958B\u555F\u3002"},detect_lang_service:{zh:"\u8BED\u8A00\u68C0\u6D4B\u670D\u52A1",en:"Language detect service",zh_TW:"\u8A9E\u8A00\u6AA2\u6E2C\u670D\u52D9"},disable:{zh:"\u7981\u7528",en:"Disable",zh_TW:"\u505C\u7528"},enable:{zh:"\u542F\u7528",en:"Enable",zh_TW:"\u555F\u7528"},selection_translate:{zh:"\u5212\u8BCD\u7FFB\u8BD1",en:"Selection Translate",zh_TW:"\u5283\u8A5E\u7FFB\u8B6F"},toggle_selection_translate:{zh:"\u542F\u7528\u5212\u8BCD\u7FFB\u8BD1",en:"Use Selection Translate",zh_TW:"\u555F\u7528\u5283\u8A5E\u7FFB\u8B6F"},trigger_tranbox_shortcut:{zh:"\u663E\u793A\u7FFB\u8BD1\u6846/\u7FFB\u8BD1\u9009\u4E2D\u6587\u5B57\u5FEB\u6377\u952E",en:"Open Translate Popup/Translate Selected Shortcut",zh_TW:"\u986F\u793A\u7FFB\u8B6F\u6846\uFF0F\u7FFB\u8B6F\u9078\u4E2D\u6587\u5B57\u5FEB\u6377\u9375"},tranbtn_offset_x:{zh:"\u7FFB\u8BD1\u6309\u94AE\u504F\u79FBX\uFF08\xB1200\uFF09",en:"Translate Button Offset X (\xB1200)",zh_TW:"\u7FFB\u8B6F\u6309\u9215\u4F4D\u79FB X\uFF08\xB1200\uFF09"},tranbtn_offset_y:{zh:"\u7FFB\u8BD1\u6309\u94AE\u504F\u79FBY\uFF08\xB1200\uFF09",en:"Translate Button Offset Y (\xB1200)",zh_TW:"\u7FFB\u8B6F\u6309\u9215\u4F4D\u79FB Y\uFF08\xB1200\uFF09"},tranbox_offset_x:{zh:"\u7FFB\u8BD1\u6846\u504F\u79FBX\uFF08\xB1200\uFF09",en:"Translate Box Offset X (\xB1200)",zh_TW:"\u7FFB\u8B6F\u6846\u4F4D\u79FB X\uFF08\xB1200\uFF09"},tranbox_offset_y:{zh:"\u7FFB\u8BD1\u6846\u504F\u79FBY\uFF08\xB1200\uFF09",en:"Translate Box Offset Y (\xB1200)",zh_TW:"\u7FFB\u8B6F\u6846\u4F4D\u79FB Y\uFF08\xB1200\uFF09"},translated_text:{zh:"\u8BD1\u6587",en:"Translated Text",zh_TW:"\u8B6F\u6587"},original_text:{zh:"\u539F\u6587",en:"Original Text",zh_TW:"\u539F\u6587"},favorite_words:{zh:"\u6536\u85CF\u8BCD\u6C47",en:"Favorite Words",zh_TW:"\u6536\u85CF\u8A5E\u5F59"},touch_setting:{zh:"\u89E6\u5C4F\u8BBE\u7F6E",en:"Touch Setting",zh_TW:"\u89F8\u63A7\u8A2D\u5B9A"},touch_translate_shortcut:{zh:"\u89E6\u5C4F\u7FFB\u8BD1\u5FEB\u6377\u65B9\u5F0F",en:"Touch Translate Shortcut",zh_TW:"\u89F8\u63A7\u7FFB\u8B6F\u6377\u5F91"},touch_tap_0:{zh:"\u7981\u7528",en:"Disable",zh_TW:"\u505C\u7528"},touch_tap_2:{zh:"\u53CC\u6307\u8F7B\u89E6",en:"Two finger tap",zh_TW:"\u96D9\u6307\u8F15\u89F8"},touch_tap_3:{zh:"\u4E09\u6307\u8F7B\u89E6",en:"Three finger tap",zh_TW:"\u4E09\u6307\u8F15\u89F8"},touch_tap_4:{zh:"\u56DB\u6307\u8F7B\u89E6",en:"Four finger tap",zh_TW:"\u56DB\u6307\u8F15\u89F8"},translate_blacklist:{zh:"\u7981\u7528\u7FFB\u8BD1\u540D\u5355",en:"Translate Blacklist",zh_TW:"\u505C\u7528\u7FFB\u8B6F\u540D\u55AE"},disabled_orilist:{zh:"\u7981\u7528Origin\u540D\u5355",en:"Disabled Origin List",zh_TW:"\u505C\u7528 Origin \u540D\u55AE"},disabled_csplist:{zh:"\u7981\u7528CSP\u540D\u5355",en:"Disabled CSP List",zh_TW:"\u505C\u7528 CSP \u540D\u55AE"},disabled_csplist_helper:{zh:"3\u3001\u901A\u8FC7\u8C03\u6574CSP\u7B56\u7565\uFF0C\u4F7F\u5F97\u67D0\u4E9B\u9875\u9762\u80FD\u591F\u6CE8\u5165JS/CSS/Media\uFF0C\u8BF7\u8C28\u614E\u4F7F\u7528\uFF0C\u9664\u975E\u60A8\u5DF2\u77E5\u6653\u76F8\u5173\u98CE\u9669\u3002",en:"3. By adjusting the CSP policy, some pages can inject JS/CSS/Media. Please use it with caution unless you are aware of the related risks.",zh_TW:"3. \u900F\u904E\u8ABF\u6574 CSP \u653F\u7B56\uFF0C\u4F7F\u90E8\u5206\u9801\u9762\u53EF\u6CE8\u5165 JS/CSS/Media\u3002\u8ACB\u8B39\u614E\u4F7F\u7528\uFF0C\u9664\u975E\u60A8\u5DF2\u77E5\u6089\u76F8\u95DC\u98A8\u96AA\u3002"},skip_langs:{zh:"\u4E0D\u7FFB\u8BD1\u7684\u8BED\u8A00",en:"Disable Languages",zh_TW:"\u4E0D\u7FFB\u8B6F\u7684\u8A9E\u8A00"},skip_langs_helper:{zh:"\u6B64\u529F\u80FD\u4F9D\u8D56\u51C6\u786E\u7684\u8BED\u8A00\u68C0\u6D4B\uFF0C\u5EFA\u8BAE\u542F\u7528\u8FDC\u7A0B\u8BED\u8A00\u68C0\u6D4B\u3002",en:"This feature relies on accurate language detection. It is recommended to enable remote language detection.",zh_TW:"\u6B64\u529F\u80FD\u4EF0\u8CF4\u6E96\u78BA\u7684\u8A9E\u8A00\u5075\u6E2C\uFF0C\u5EFA\u8B70\u555F\u7528\u9060\u7AEF\u8A9E\u8A00\u5075\u6E2C\u3002"},context_menus:{zh:"\u53F3\u952E\u83DC\u5355",en:"Context Menus",zh_TW:"\u53F3\u9375\u9078\u55AE"},hide_context_menus:{zh:"\u9690\u85CF\u53F3\u952E\u83DC\u5355",en:"Hide Context Menus",zh_TW:"\u96B1\u85CF\u53F3\u9375\u9078\u55AE"},simple_context_menus:{zh:"\u7B80\u5355\u53F3\u952E\u83DC\u5355",en:"Simple_context_menus Context Menus",zh_TW:"\u7C21\u6613\u53F3\u9375\u9078\u55AE"},secondary_context_menus:{zh:"\u4E8C\u7EA7\u53F3\u952E\u83DC\u5355",en:"Secondary Context Menus",zh_TW:"\u6B21\u7D1A\u53F3\u9375\u9078\u55AE"},mulkeys_help:{zh:"\u652F\u6301\u7528\u6362\u884C\u6216\u82F1\u6587\u9017\u53F7\u201C,\u201D\u5206\u9694\uFF0C\u8F6E\u8BE2\u8C03\u7528\u3002",en:"Supports polling calls separated by newlines or English commas \",\".",zh_TW:"\u652F\u63F4\u4EE5\u63DB\u884C\u6216\u82F1\u6587\u9017\u865F\u300C,\u300D\u5206\u9694\uFF0C\u8F2A\u8A62\u547C\u53EB\u3002"},translation_element_tag:{zh:"\u8BD1\u6587\u5143\u7D20\u6807\u7B7E",en:"Translation Element Tag",zh_TW:"\u8B6F\u6587\u5143\u7D20\u6A19\u7C64"},show_only_translations:{zh:"\u4EC5\u663E\u793A\u8BD1\u6587",en:"Show Only Translations",zh_TW:"\u50C5\u986F\u793A\u8B6F\u6587"},show_only_translations_help:{zh:"\u975E\u5B8C\u7F8E\u5B9E\u73B0\uFF0C\u67D0\u4E9B\u9875\u9762\u53EF\u80FD\u6709\u6837\u5F0F\u7B49\u95EE\u9898\u3002",en:"It is not a perfect implementation and some pages may have style issues.",zh_TW:"\u6B64\u70BA\u975E\u5B8C\u7F8E\u5BE6\u4F5C\uFF0C\u90E8\u5206\u9801\u9762\u53EF\u80FD\u51FA\u73FE\u6A23\u5F0F\u7B49\u554F\u984C\u3002"},translate_page_title:{zh:"\u662F\u5426\u7FFB\u8BD1\u9875\u9762\u6807\u9898",en:"Translate Page Title",zh_TW:"\u662F\u5426\u7FFB\u8B6F\u9801\u9762\u6A19\u984C"},more:{zh:"\u66F4\u591A",en:"More",zh_TW:"\u66F4\u591A"},less:{zh:"\u66F4\u5C11",en:"Less",zh_TW:"\u66F4\u5C11"},fixer_selector:{zh:"\u7F51\u9875\u4FEE\u590D\u9009\u62E9\u5668",en:"Fixer Selector",zh_TW:"\u7DB2\u9801\u4FEE\u5FA9\u9078\u64C7\u5668"},reg_niutrans:{zh:"\u83B7\u53D6\u5C0F\u725B\u7FFB\u8BD1\u5BC6\u94A5\u3010\u7B80\u7EA6\u7FFB\u8BD1\u4E13\u5C5E\u65B0\u7528\u6237\u6CE8\u518C\u8D60\u9001300\u4E07\u5B57\u7B26\u3011",en:"Get NiuTrans APIKey [KISS Translator Exclusive New User Registration Free 3 Million Characters]",zh_TW:"\u53D6\u5F97\u5C0F\u725B\u7FFB\u8B6F\u91D1\u9470\u3010\u7C21\u7D04\u7FFB\u8B6F\u5C08\u5C6C\u65B0\u7528\u6236\u8A3B\u518A\u8D08\u9001 300 \u842C\u5B57\u5143\u3011"},trigger_mode:{zh:"\u89E6\u53D1\u65B9\u5F0F",en:"Trigger Mode",zh_TW:"\u89F8\u767C\u65B9\u5F0F"},trigger_click:{zh:"\u70B9\u51FB\u89E6\u53D1",en:"Click Trigger",zh_TW:"\u9EDE\u64CA\u89F8\u767C"},trigger_hover:{zh:"\u9F20\u6807\u60AC\u505C\u89E6\u53D1",en:"Hover Trigger",zh_TW:"\u6ED1\u9F20\u61F8\u505C\u89F8\u767C"},trigger_select:{zh:"\u9009\u4E2D\u89E6\u53D1",en:"Select Trigger",zh_TW:"\u9078\u53D6\u89F8\u767C"},extend_styles:{zh:"\u9644\u52A0\u6837\u5F0F",en:"Extend Styles",zh_TW:"\u9644\u52A0\u6A23\u5F0F"},custom_option:{zh:"\u81EA\u5B9A\u4E49\u9009\u9879",en:"Custom Option",zh_TW:"\u81EA\u8A02\u9078\u9805"},translate_selected_text:{zh:"\u7FFB\u8BD1\u9009\u4E2D\u6587\u5B57",en:"Translate Selected Text",zh_TW:"\u7FFB\u8B6F\u9078\u53D6\u6587\u5B57"},toggle_style:{zh:"\u5207\u6362\u6837\u5F0F",en:"Toggle Style",zh_TW:"\u5207\u63DB\u6A23\u5F0F"},open_menu:{zh:"\u6253\u5F00\u5F39\u7A97\u83DC\u5355",en:"Open Popup Menu",zh_TW:"\u958B\u555F\u5F48\u7A97\u9078\u55AE"},open_setting:{zh:"\u6253\u5F00\u8BBE\u7F6E",en:"Open Setting",zh_TW:"\u958B\u555F\u8A2D\u5B9A"},follow_selection:{zh:"\u7FFB\u8BD1\u6846\u8DDF\u968F\u9009\u4E2D\u6587\u672C",en:"Transbox Follow Selection",zh_TW:"\u7FFB\u8B6F\u6846\u8DDF\u96A8\u9078\u53D6\u6587\u5B57"},translate_start_hook:{zh:"\u7FFB\u8BD1\u5F00\u59CB\u94A9\u5B50\u51FD\u6570",en:"Translate Start Hook",zh_TW:"\u7FFB\u8B6F\u958B\u59CB Hook"},translate_start_hook_helper:{zh:"\u7FFB\u8BD1\u524D\u65F6\u8FD0\u884C\uFF0C\u5165\u53C2\u4E3A\uFF1A ({hostNode, parentNode, nodes})",en:"Run before translation, input parameters are: ({hostNode, parentNode, nodes})",zh_TW:"\u7FFB\u8B6F\u524D\u6642\u904B\u884C\uFF0C\u5165\u53C3\u70BA\uFF1A ({hostNode, parentNode, nodes})"},translate_end_hook:{zh:"\u7FFB\u8BD1\u5B8C\u6210\u94A9\u5B50\u51FD\u6570",en:"Translate End Hook",zh_TW:"\u7FFB\u8B6F\u5B8C\u6210 Hook"},translate_end_hook_helper:{zh:"\u7FFB\u8BD1\u5B8C\u6210\u65F6\u8FD0\u884C\uFF0C\u5165\u53C2\u4E3A\uFF1A ({hostNode, parentNode, nodes, wrapperNode, innerNode})",en:"Run when translation is complete, input parameters are: ({hostNode, parentNode, nodes, wrapperNode, innerNode})",zh_TW:"\u7FFB\u8B6F\u5B8C\u6210\u6642\u904B\u884C\uFF0C\u5165\u53C3\u70BA\uFF1A ({hostNode, parentNode, nodes, wrapperNode, innerNode})"},translate_remove_hook:{zh:"\u7FFB\u8BD1\u79FB\u9664\u94A9\u5B50\u51FD\u6570",en:"Translate Removed Hook",zh_TW:"\u7FFB\u8B6F\u79FB\u9664 Hook"},translate_remove_hook_helper:{zh:"\u7FFB\u8BD1\u79FB\u9664\u65F6\u8FD0\u884C\uFF0C\u5165\u53C2\u4E3A\uFF1A \u7FFB\u8BD1\u8282\u70B9\u3002",en:"Run when translation is removed, the input parameters are: translation node.",zh_TW:"\u79FB\u9664\u7FFB\u8B6F\u6642\u57F7\u884C\uFF0C\u5165\u53C3\u70BA\uFF1A\u7FFB\u8B6F\u7BC0\u9EDE\u3002"},english_dict:{zh:"\u82F1\u6587\u8BCD\u5178",en:"English Dictionary",zh_TW:"\u82F1\u6587\u5B57\u5178"},english_suggest:{zh:"\u82F1\u6587\u5EFA\u8BAE",en:"English Suggest",zh_TW:"\u82F1\u6587\u5EFA\u8B70"},api_name:{zh:"\u63A5\u53E3\u540D\u79F0",en:"API Name",zh_TW:"\u4ECB\u9762\u540D\u7A31"},is_disabled:{zh:"\u662F\u5426\u7981\u7528",en:"Is Disabled",zh_TW:"\u662F\u5426\u505C\u7528"},translate_selected:{zh:"\u662F\u5426\u542F\u7528\u5212\u8BCD\u7FFB\u8BD1",en:"If translate selected",zh_TW:"\u662F\u5426\u555F\u7528\u5283\u8A5E\u7FFB\u8B6F"},use_batch_fetch:{zh:"\u662F\u5426\u805A\u5408\u53D1\u9001\u7FFB\u8BD1\u8BF7\u6C42",en:"Whether to aggregate and send translation requests",zh_TW:"\u662F\u5426\u805A\u5408\u767C\u9001\u7FFB\u8B6F\u8ACB\u6C42"},batch_interval:{zh:"\u805A\u5408\u8BF7\u6C42\u7B49\u5F85\u65F6\u95F4(100-10000)",en:"Aggregation request waiting time (100-10000)",zh_TW:"\u805A\u5408\u8ACB\u6C42\u7B49\u5F85\u6642\u9593(100-10000)"},batch_size:{zh:"\u805A\u5408\u8BF7\u6C42\u6700\u5927\u6BB5\u843D\u6570(1-100)",en:"Maximum number of paragraphs in an aggregation request (1-100)",zh_TW:"\u805A\u5408\u8ACB\u6C42\u6700\u5927\u6BB5\u843D\u6578(1-100)"},batch_length:{zh:"\u805A\u5408\u8BF7\u6C42\u6700\u5927\u6587\u672C\u957F\u5EA6(1000-100000)",en:"Maximum text length for aggregation requests (1000-100000)",zh_TW:"\u805A\u5408\u8ACB\u6C42\u6700\u5927\u6587\u5B57\u9577\u5EA6(1000-100000)"},use_context:{zh:"\u662F\u5426\u542F\u7528\u667A\u80FD\u4E0A\u4E0B\u6587",en:"Whether to enable AI context",zh_TW:"\u662F\u5426\u555F\u7528\u667A\u6167\u4E0A\u4E0B\u6587"},context_size:{zh:"\u4E0A\u4E0B\u6587\u4F1A\u8BDD\u6570\u91CF(1-20)",en:"Number of context sessions(1-20)",zh_TW:"\u4E0A\u4E0B\u6587\u6703\u8A71\u6578\u91CF(1-20)"},auto_scan_page:{zh:"\u81EA\u52A8\u626B\u63CF\u9875\u9762",en:"Auto scan page",zh_TW:"\u81EA\u52D5\u6383\u63CF\u9801\u9762"},has_rich_text:{zh:"\u542F\u7528\u5BCC\u6587\u672C\u7FFB\u8BD1",en:"Enable rich text translation",zh_TW:"\u555F\u7528\u5BCC\u6587\u672C\u7FFB\u8B6F"},has_shadowroot:{zh:"\u626B\u63CFShadowroot",en:"Scan Shadowroot",zh_TW:"\u6383\u63CFShadowroot"},mousehover_translate:{zh:"\u9F20\u6807\u60AC\u505C\u7FFB\u8BD1",en:"Mouseover Translation",zh_TW:"\u6ED1\u9F20\u61F8\u505C\u7FFB\u8B6F"},use_mousehover_translation:{zh:"\u542F\u7528\u9F20\u6807\u60AC\u505C\u7FFB\u8BD1",en:"Enable mouseover translation",zh_TW:"\u555F\u7528\u6ED1\u9F20\u61F8\u505C\u7FFB\u8B6F"},selected_translation_alert:{zh:"\u5212\u8BCD\u7FFB\u8BD1\u7684\u5F00\u542F\u548C\u5173\u95ED\u8BF7\u5230\u201C\u89C4\u5219\u8BBE\u7F6E\u201D\u91CC\u9762\u8BBE\u7F6E\u3002",en:"To turn selected translation on or off, please go to \"Rule Settings\".",zh_TW:"\u5283\u8A5E\u7FFB\u8B6F\u7684\u958B\u555F\u548C\u95DC\u9589\u8ACB\u5230\u300C\u898F\u5247\u8A2D\u5B9A\u300D\u88E1\u9762\u8A2D\u5B9A\u3002"},mousehover_key_help:{zh:"\u5F53\u5FEB\u6377\u952E\u7F6E\u7A7A\u65F6\u8868\u793A\u9F20\u6807\u60AC\u505C\u76F4\u63A5\u7FFB\u8BD1",en:"When the shortcut key is empty, it means that the mouse hovers to translate directly",zh_TW:"\u7576\u5FEB\u6377\u9375\u7F6E\u7A7A\u6642\u8868\u793A\u6ED1\u9F20\u61F8\u505C\u76F4\u63A5\u7FFB\u8B6F"},autoscan_alt:{zh:"\u81EA\u52A8\u626B\u63CF",en:"Auto Scan",zh_TW:"\u81EA\u52D5\u6383\u63CF"},shadowroot_alt:{zh:"ShadowRoot",en:"ShadowRoot",zh_TW:"ShadowRoot"},richtext_alt:{zh:"\u4FDD\u7559\u5BCC\u6587\u672C",en:"Rich Text",zh_TW:"\u4FDD\u7559\u5BCC\u6587\u672C"},transonly_alt:{zh:"\u9690\u85CF\u539F\u6587",en:"Hide Original",zh_TW:"\u96B1\u85CF\u539F\u6587"},confirm_title:{zh:"\u786E\u8BA4",en:"Confirm",zh_TW:"\u78BA\u8A8D"},confirm_message:{zh:"\u786E\u5B9A\u64CD\u4F5C\u5417\uFF1F",en:"Are you sure you want to proceed?",zh_TW:"\u78BA\u5B9A\u64CD\u4F5C\u55CE\uFF1F"},confirm_action:{zh:"\u786E\u5B9A",en:"Confirm",zh_TW:"\u78BA\u5B9A"},cancel_action:{zh:"\u53D6\u6D88",en:"Cancel",zh_TW:"\u53D6\u6D88"},pls_press_shortcut:{zh:"\u8BF7\u6309\u4E0B\u5FEB\u6377\u952E\u7EC4\u5408",en:"Please press the shortcut key combination",zh_TW:"\u8ACB\u6309\u4E0B\u5FEB\u901F\u9375\u7D44\u5408"},load_setting_err:{zh:"\u6570\u636E\u52A0\u8F7D\u51FA\u9519\uFF0C\u8BF7\u5237\u65B0\u9875\u9762\u6216\u5378\u8F7D\u540E\u91CD\u65B0\u5B89\u88C5\u3002",en:"Please press the shortcut key combination",zh_TW:"\u8ACB\u6309\u4E0B\u5FEB\u901F\u9375\u7D44\u5408"},translation_style:{zh:"\u7FFB\u8BD1\u98CE\u683C",en:"Translation style",zh_TW:"\u7FFB\u8B6F\u98A8\u683C"},placeholder:{zh:"\u5360\u4F4D\u7B26",en:"Placeholder",zh_TW:"\u4F54\u4F4D\u7B26"},tag_name:{zh:"\u5360\u4F4D\u6807\u7B7E\u540D",en:"Placeholder tag name",zh_TW:"\u4F54\u4F4D\u6A19\u540D"},system_prompt_helper:{zh:"\u5728\u672A\u5B8C\u5168\u7406\u89E3\u9ED8\u8BA4Prompt\u7684\u60C5\u51B5\u4E0B\uFF0C\u8BF7\u52FF\u968F\u610F\u4FEE\u6539\uFF0C\u5426\u5219\u53EF\u80FD\u65E0\u6CD5\u5DE5\u4F5C\u3002",en:"Do not modify the default prompt without fully understanding it, otherwise it may not work.",zh_TW:"\u5728\u672A\u5B8C\u5168\u7406\u89E3\u9810\u8A2DPrompt\u7684\u60C5\u6CC1\u4E0B\uFF0C\u8ACB\u52FF\u96A8\u610F\u4FEE\u6539\uFF0C\u5426\u5247\u53EF\u80FD\u7121\u6CD5\u904B\u4F5C\u3002"},if_pre_init:{zh:"\u662F\u5426\u9884\u521D\u59CB\u5316",en:"Whether to pre-initialize",zh_TW:"\u662F\u5426\u9810\u521D\u59CB\u5316"},export_old:{zh:"\u5BFC\u51FA\u65E7\u7248",en:"Export old version",zh_TW:"\u532F\u51FA\u820A\u7248"},favorite_words_helper:{zh:"\u5BFC\u5165\u8BCD\u6C47\u8BF7\u4F7F\u7528txt\u6587\u4EF6\uFF0C\u6BCF\u4E00\u884C\u4E00\u4E2A\u5355\u8BCD\u3002",en:"To import vocabulary, please use a txt file with one word per line.",zh_TW:"\u532F\u5165\u8A5E\u5F59\u8ACB\u4F7F\u7528txt\u6587\u4EF6\uFF0C\u6BCF\u4E00\u884C\u4E00\u500B\u55AE\u5B57\u3002"},btn_tip_click_away:{zh:"\u5931\u7126\u9690\u85CF/\u663E\u793A",en:"Loss of focus hide/show",zh_TW:"\u5931\u7126\u96B1\u85CF/\u986F\u793A"},btn_tip_follow_selection:{zh:"\u8DDF\u968F/\u56FA\u5B9A\u6A21\u5F0F",en:"Follow/Fixed Mode",zh_TW:"\u8DDF\u96A8/\u56FA\u5B9A\u6A21\u5F0F"},btn_tip_simple_style:{zh:"\u8FF7\u4F60/\u5E38\u89C4\u6A21\u5F0F",en:"Mini/Regular Mode",zh_TW:"\u8FF7\u4F60/\u5E38\u898F\u6A21\u5F0F"},api_placeholder:{zh:"\u5360\u4F4D\u7B26",en:"Placeholder",zh_TW:"\u4F54\u4F4D\u7B26"},api_placetag:{zh:"\u5360\u4F4D\u6807\u7B7E",en:"Placeholder tags",zh_TW:"\u4F54\u4F4D\u6A19"},detected_lang:{zh:"\u8BED\u8A00\u68C0\u6D4B",en:"Language detection",zh_TW:"\u8A9E\u8A00\u5075\u6E2C"},detected_result:{zh:"\u68C0\u6D4B\u7ED3\u679C",en:"Detect result",zh_TW:"\u6AA2\u6E2C\u7D50\u679C"},subtitle_translate:{zh:"\u5B57\u5E55\u7FFB\u8BD1",en:"Subtitle translate",zh_TW:"\u5B57\u5E55\u7FFB\u8B6F"},toggle_subtitle_translate:{zh:"\u542F\u7528\u5B57\u5E55\u7FFB\u8BD1",en:"Enable subtitle translation",zh_TW:"\u555F\u7528\u5B57\u5E55\u7FFB\u8B6F"},is_bilingual_view:{zh:"\u53CC\u8BED\u663E\u793A",en:"Enable bilingual display",zh_TW:"\u96D9\u8A9E\u986F\u793A"},background_styles:{zh:"\u80CC\u666F\u6837\u5F0F",en:"DBackground Style",zh_TW:"\u80CC\u666F\u6A23\u5F0F"},origin_styles:{zh:"\u539F\u6587\u6837\u5F0F",en:"Original style",zh_TW:"\u539F\u6587\u6A23\u5F0F"},translation_styles:{zh:"\u8BD1\u6587\u6837\u5F0F",en:"Translation style",zh_TW:"\u8B6F\u6587\u6A23\u5F0F"},ai_segmentation:{zh:"AI\u667A\u80FD\u65AD\u53E5",en:"AI intelligent punctuation",zh_TW:"AI\u667A\u6167\u65B7\u53E5"},ai_chunk_length:{zh:"AI\u5904\u7406\u5207\u5272\u957F\u5EA6(200-20000)",en:"AI processing chunk length(200-20000)",zh_TW:"AI\u5904\u7406\u5207\u5272\u957F\u5EA6(200-20000)"},subtitle_helper_1:{zh:"1\u3001\u76EE\u524D\u4EC5\u652F\u6301Youtube\u684C\u9762\u7F51\u7AD9\u3002",en:"1. Currently only supports Youtube desktop website.",zh_TW:"1.\u76EE\u524D\u50C5\u652F\u63F4Youtube\u684C\u9762\u7DB2\u7AD9\uFF0C\u4E14\u50C5\u652F\u63F4\u700F\u89BD\u5668\u64F4\u5145\u529F\u80FD\u3002"},subtitle_helper_2:{zh:"2\u3001\u63D2\u4EF6\u5185\u7F6E\u57FA\u7840\u7684\u5B57\u5E55\u5408\u5E76\u3001\u65AD\u53E5\u7B97\u6CD5\uFF0C\u53EF\u6EE1\u8DB3\u5927\u90E8\u5206\u60C5\u51B5\u3002",en:"2. The plug-in has built-in basic subtitle merging and sentence segmentation algorithms, which can meet most situations.",zh_TW:"2.\u63D2\u4EF6\u5167\u5EFA\u57FA\u790E\u7684\u5B57\u5E55\u5408\u4F75\u3001\u65B7\u53E5\u6F14\u7B97\u6CD5\uFF0C\u53EF\u6EFF\u8DB3\u5927\u90E8\u5206\u60C5\u6CC1\u3002"},subtitle_helper_3:{zh:"3\u3001\u4EA6\u53EF\u4EE5\u542F\u7528AI\u667A\u80FD\u65AD\u53E5\uFF0C\u4F46\u9700\u8003\u8651\u5207\u5272\u957F\u5EA6\u53CAAI\u63A5\u53E3\u80FD\u529B\uFF0C\u53EF\u80FD\u5904\u7406\u65F6\u95F4\u4F1A\u5F88\u957F\uFF0C\u751A\u81F3\u5904\u7406\u5931\u8D25\uFF0C\u5BFC\u81F4\u65E0\u6CD5\u770B\u5230\u5B57\u5E55\u3002",en:"3. You can also enable AI intelligent segmentation, but you need to consider the segmentation length and AI interface capabilities. The processing time may be very long or even fail, resulting in the inability to see subtitles.",zh_TW:"3.\u4EA6\u53EF\u555F\u7528AI\u667A\u80FD\u65B7\u53E5\uFF0C\u4F46\u9700\u8003\u616E\u5207\u5272\u9577\u5EA6\u53CAAI\u4ECB\u9762\u80FD\u529B\uFF0C\u53EF\u80FD\u8655\u7406\u6642\u9593\u6703\u5F88\u9577\uFF0C\u751A\u81F3\u8655\u7406\u5931\u6557\uFF0C\u5C0E\u81F4\u7121\u6CD5\u770B\u5230\u5B57\u5E55\u3002"},default_styles_example:{zh:"\u9ED8\u8BA4\u6837\u5F0F\u53C2\u8003\uFF1A",en:"Default styles reference:",zh_TW:"\u8A8D\u6A23\u5F0F\u53C3\u8003\uFF1A"},subtitle_load_succeed:{zh:"\u53CC\u8BED\u5B57\u5E55\u52A0\u8F7D\u6210\u529F\uFF01",en:"Bilingual subtitles loaded successfully!",zh_TW:"\u53CC\u8BED\u5B57\u5E55\u52A0\u8F7D\u6210\u529F\uFF01"},subtitle_load_failed:{zh:"\u53CC\u8BED\u5B57\u5E55\u52A0\u8F7D\u5931\u8D25\uFF01",en:"Failed to load bilingual subtitles!",zh_TW:"\u53CC\u8BED\u5B57\u5E55\u52A0\u8F7D\u5931\u8D25\uFF01"},try_get_subtitle_data:{zh:"\u5C1D\u8BD5\u83B7\u53D6\u5B57\u5E55\u6570\u636E\uFF0C\u8BF7\u7A0D\u5019...",en:"Trying to get subtitle data, please wait...",zh_TW:"\u5C1D\u8BD5\u83B7\u53D6\u5B57\u5E55\u6570\u636E\uFF0C\u8BF7\u7A0D\u5019..."},subtitle_data_processing:{zh:"\u5B57\u5E55\u6570\u636E\u5904\u7406\u4E2D...",en:"Subtitle data processing...",zh_TW:"\u5B57\u5E55\u6570\u636E\u5904\u7406\u4E2D..."},starting_to_process_subtitle:{zh:"\u5F00\u59CB\u5904\u7406\u5B57\u5E55\u6570\u636E...",en:"Starting to process subtitle data...",zh_TW:"\u5F00\u59CB\u5904\u7406\u5B57\u5E55\u6570\u636E..."},subtitle_data_is_ready:{zh:"\u5B57\u5E55\u6570\u636E\u5DF2\u51C6\u5907\u5C31\u7EEA\uFF0C\u8BF7\u70B9\u51FBKT\u6309\u94AE\u52A0\u8F7D",en:"The subtitle data is ready, please click the KT button to load it",zh_TW:"\u5B57\u5E55\u8CC7\u6599\u5DF2\u6E96\u5099\u5C31\u7DD2\uFF0C\u8ACB\u9EDE\u64CAKT\u6309\u9215\u52A0\u8F09"},log_level:{zh:"\u65E5\u5FD7\u7EA7\u522B",en:"Log Level",zh_TW:"\u65E5\u8A8C\u7B49\u7D1A"}};const i18n=lang=>key=>{var _I18N$key;return((_I18N$key=I18N[key])===null||_I18N$key===void 0?void 0:_I18N$key[lang])||"";}; ;// CONCATENATED MODULE: ./src/config/storage.js const KV_RULES_KEY="kiss-rules_v".concat(APP_VERSION[0],".json");const storage_KV_WORDS_KEY="kiss-words.json";const storage_KV_RULES_SHARE_KEY="kiss-rules-share_v".concat(APP_VERSION[0],".json");const storage_KV_SETTING_KEY="kiss-setting_v".concat(APP_VERSION[0],".json");const KV_SALT_SYNC="KISS-Translator-SYNC";const storage_KV_SALT_SHARE="KISS-Translator-SHARE";const STOKEY_MSAUTH="".concat(APP_NAME,"_msauth");const storage_STOKEY_BDAUTH="".concat(APP_NAME,"_bdauth");const storage_STOKEY_SETTING_OLD="".concat(APP_NAME,"_setting");const storage_STOKEY_RULES_OLD="".concat(APP_NAME,"_rules");const storage_STOKEY_SETTING="".concat(APP_NAME,"_setting_v").concat(APP_VERSION[0]);const storage_STOKEY_RULES="".concat(APP_NAME,"_rules_v").concat(APP_VERSION[0]);const storage_STOKEY_WORDS="".concat(APP_NAME,"_words");const storage_STOKEY_SYNC="".concat(APP_NAME,"_sync");const storage_STOKEY_FAB="".concat(APP_NAME,"_fab");const storage_STOKEY_RULESCACHE_PREFIX="".concat(APP_NAME,"_rulescache_");const CACHE_NAME="".concat(APP_NAME,"_cache");const DEFAULT_CACHE_TIMEOUT=3600*24*7;// 缓存超时时间(7天) ;// CONCATENATED MODULE: ./src/config/url.js const URL_CACHE_TRAN="https://".concat(APP_LCNAME,"/translate");const URL_CACHE_SUBTITLE="https://".concat(APP_LCNAME,"/subtitle");const URL_CACHE_DELANG="https://".concat(APP_LCNAME,"/detectlang");const URL_CACHE_BINGDICT="https://".concat(APP_LCNAME,"/bingdict");const URL_KISS_WORKER="https://github.com/fishjar/kiss-worker";const URL_KISS_PROXY="https://github.com/fishjar/kiss-proxy";const URL_KISS_RULES="https://github.com/fishjar/kiss-rules";const URL_KISS_RULES_NEW_ISSUE="https://github.com/fishjar/kiss-rules/issues/new";const url_URL_RAW_PREFIX="https://raw.githubusercontent.com/fishjar/kiss-translator/master"; ;// CONCATENATED MODULE: ./src/config/msg.js const CMD_TOGGLE_TRANSLATE="toggleTranslate";const CMD_TOGGLE_STYLE="toggleStyle";const CMD_OPEN_OPTIONS="openOptions";const CMD_OPEN_TRANBOX="openTranbox";const MSG_FETCH="kiss_fetch";const MSG_GET_HTTPCACHE="get_httpcache";const MSG_PUT_HTTPCACHE="put_httpcache";const MSG_OPEN_OPTIONS="open_options";const MSG_SAVE_RULE="save_rule";const MSG_TRANS_TOGGLE="trans_toggle";const MSG_TRANS_TOGGLE_STYLE="trans_toggle_style";const MSG_OPEN_TRANBOX="open_tranbox";const MSG_TRANS_GETRULE="trans_getrule";const MSG_TRANS_PUTRULE="trans_putrule";const MSG_TRANS_CURRULE="trans_currule";const MSG_TRANSBOX_TOGGLE="transbox_toggle";const MSG_MOUSEHOVER_TOGGLE="mousehover_toggle";const MSG_TRANSINPUT_TOGGLE="transinput_toggle";const MSG_CONTEXT_MENUS="context_menus";const MSG_COMMAND_SHORTCUTS="command_shortcuts";const MSG_INJECT_JS="inject_js";const MSG_INJECT_CSS="inject_css";const MSG_UPDATE_CSP="update_csp";const MSG_BUILTINAI_DETECT="builtinai_detect";const MSG_BUILTINAI_TRANSLATE="builtinai_translte";const MSG_SET_LOGLEVEL="set_loglevel";const MSG_CLEAR_CACHES="clear_caches";const MSG_XHR_DATA_YOUTUBE="KISS_XHR_DATA_YOUTUBE";// export const MSG_GLOBAL_VAR_FETCH = "KISS_GLOBAL_VAR_FETCH"; // export const MSG_GLOBAL_VAR_BACK = "KISS_GLOBAL_VAR_BACK"; ;// CONCATENATED MODULE: ./src/config/client.js const CLIENT_WEB="web";const CLIENT_CHROME="chrome";const CLIENT_EDGE="edge";const CLIENT_FIREFOX="firefox";const CLIENT_USERSCRIPT="userscript";const CLIENT_THUNDERBIRD="thunderbird";const CLIENT_EXTS=[CLIENT_CHROME,CLIENT_EDGE,CLIENT_FIREFOX,CLIENT_THUNDERBIRD];const DEFAULT_USER_AGENT="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"; ;// CONCATENATED MODULE: ./src/config/index.js ;// CONCATENATED MODULE: ./src/libs/client.js const client_client="userscript";const isExt=CLIENT_EXTS.includes(client_client);const isGm=client_client===CLIENT_USERSCRIPT;const isWeb=client_client===CLIENT_WEB;const isFirefox=client_client===CLIENT_FIREFOX; ;// CONCATENATED MODULE: ./src/libs/browser.js // import { CLIENT_EXTS, CLIENT_USERSCRIPT, CLIENT_WEB } from "../config"; /** * 浏览器兼容插件,另可用于判断是插件模式还是网页模式,方便开发 * @returns */function _browser(){try{return __webpack_require__(2465);}catch(err){// kissLog("browser", err); }}const browser=_browser();const isBg=()=>(globalThis===null||globalThis===void 0?void 0:globalThis.ContextType)==="BACKGROUND";const isBuiltinAIAvailable="LanguageDetector"in globalThis&&"Translator"in globalThis; ;// CONCATENATED MODULE: ./src/libs/utils.js /** * 限制数字大小 * @param {*} num * @param {*} min * @param {*} max * @returns */const limitNumber=function(num){let min=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;let max=arguments.length>2&&arguments[2]!==undefined?arguments[2]:100;const number=parseInt(num);if(Number.isNaN(number)||numbermax){return max;}return number;};const limitFloat=function(num){let min=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0.0;let max=arguments.length>2&&arguments[2]!==undefined?arguments[2]:100.0;const number=parseFloat(num);if(Number.isNaN(number)||numbermax){return max;}return number;};/** * 匹配是否为数组中的值 * @param {*} arr * @param {*} val * @returns */const matchValue=(arr,val)=>{if(arr.length===0||arr.includes(val)){return val;}return arr[0];};/** * 等待 * @param {*} delay * @returns */const sleep=delay=>new Promise(resolve=>{const timer=setTimeout(()=>{clearTimeout(timer);resolve();},delay);});/** * 防抖函数 * @param {*} func * @param {*} delay * @returns */const debounce=function(func){let delay=arguments.length>1&&arguments[1]!==undefined?arguments[1]:200;let timer=null;return function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}timer&&clearTimeout(timer);timer=setTimeout(()=>{func(...args);clearTimeout(timer);timer=null;},delay);};};/** * 节流函数 * @param {*} func * @param {*} delay * @returns */const throttle=function(func){let delay=arguments.length>1&&arguments[1]!==undefined?arguments[1]:200;let timer=null;let cache=null;return function(){for(var _len2=arguments.length,args=new Array(_len2),_key2=0;_key2<_len2;_key2++){args[_key2]=arguments[_key2];}if(!timer){func(...args);cache=null;timer=setTimeout(()=>{if(cache){func(...cache);cache=null;}clearTimeout(timer);timer=null;},delay);}else{cache=args;}};};/** * 判断字符串全是某个字符 * @param {*} s * @param {*} c * @param {*} i * @returns */const isAllchar=function(s,c){let i=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;while(i{if(s.length===0||p.length===0){return false;}p="*"+p+"*";let[sIndex,pIndex]=[0,0];let[sRecord,pRecord]=[-1,-1];while(sIndex{const s=Object.prototype.toString.call(o);return s.match(/\[object (.*?)\]/)[1].toLowerCase();};/** * sha256 * @param {*} text * @returns */const utils_sha256=async(text,salt)=>{const data=new TextEncoder().encode(text+salt);const digest=await crypto.subtle.digest({name:"SHA-256"},data);return[...new Uint8Array(digest)].map(b=>b.toString(16).padStart(2,"0")).join("");};/** * 生成随机事件名称 * @returns */const utils_genEventName=()=>"kiss-".concat(btoa(Math.random()).slice(3,11));/** * 判断两个 Set 是否相同 * @param {*} a * @param {*} b * @returns */const isSameSet=(a,b)=>{const s=new Set([...a,...b]);return s.size===a.size&&s.size===b.size;};/** * 去掉字符串末尾某个字符 * @param {*} s * @param {*} c * @param {*} count * @returns */const removeEndchar=function(s,c){let count=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1;if(!s)return"";let i=s.length;while(i>s.length-count&&s[i-1]===c){i--;}return s.slice(0,i);};/** * 匹配字符串及语言标识 * @param {*} str * @param {*} sign * @returns */const matchInputStr=(str,sign)=>{switch(sign){case"//":return str.match(/\/\/([\w-]+)\s+([^]+)/);case"\\":return str.match(/\\([\w-]+)\s+([^]+)/);case"\\\\":return str.match(/\\\\([\w-]+)\s+([^]+)/);case">":return str.match(/>([\w-]+)\s+([^]+)/);case">>":return str.match(/>>([\w-]+)\s+([^]+)/);default:}return str.match(/\/([\w-]+)\s+([^]+)/);};/** * 判断是否英文单词 * @param {*} str * @returns */const isValidWord=str=>{const regex=/^[a-zA-Z-]+$/;return regex.test(str);};/** * blob转为base64 * @param {*} blob * @returns */const blobToBase64=blob=>{return new Promise(resolve=>{const reader=new FileReader();reader.onloadend=()=>resolve(reader.result);reader.readAsDataURL(blob);});};/** * 获取html内的文本 * @param {*} htmlStr * @param {*} skipTag * @returns */const getHtmlText=function(htmlStr){let skipTag=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";const parser=new DOMParser();const doc=parser.parseFromString(htmlStr,"text/html");if(skipTag){doc.querySelectorAll(skipTag).forEach(el=>el.remove());}return doc.body.innerText.trim();};/** * 解析JSON字符串对象 * @param {*} str * @returns */const parseJsonObj=str=>{if(!str||type(str)!=="string"){return{};}try{if(str.trim()[0]!=="{"){str="{".concat(str,"}");}return JSON.parse(str);}catch(err){// }return{};};/** * 提取json内容 * @param {*} s * @returns */const extractJson=raw=>{const jsonRegex=/({.*}|\[.*\])/s;const match=raw.match(jsonRegex);return match?match[0]:null;};/** * 空闲执行 * @param {*} cb * @param {*} timeout * @returns */const scheduleIdle=function(cb){let timeout=arguments.length>1&&arguments[1]!==undefined?arguments[1]:200;if(window.requestIdleCallback){return requestIdleCallback(cb,{timeout});}return setTimeout(cb,timeout);};/** * 截取url部分 * @param {*} href * @returns */const parseUrlPattern=href=>{if(href.startsWith("file")){const filename=href.substring(href.lastIndexOf("/")+1);return filename;}else if(href.startsWith("http")){const url=new URL(href);return url.host;}return href;};/** * 带超时的任务 * @param {Promise|Function} task - 任务 * @param {number} timeout - 超时时间 (毫秒) * @param {string} [timeoutMsg] - 超时错误提示 * @returns {Promise} */const withTimeout=function(task,timeout){let timeoutMsg=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"Task timed out";const promise=typeof task==="function"?task():task;return Promise.race([promise,new Promise((_,reject)=>setTimeout(()=>reject(new Error(timeoutMsg)),timeout))]);};/** * 截短字符串 * @param {*} str * @param {*} maxLength * @returns */const truncateWords=function(str){let maxLength=arguments.length>1&&arguments[1]!==undefined?arguments[1]:200;if(typeof str!=="string")return"";if(str.length<=maxLength)return str;const truncated=str.slice(0,maxLength);return truncated.slice(0,truncated.lastIndexOf(" "))+" …";};/** * 生成随机数 * @param {*} min * @param {*} max * @param {*} integer * @returns */const randomBetween=function(min,max){let integer=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;const value=Math.random()*(max-min)+min;return integer?Math.floor(value):value;}; ;// CONCATENATED MODULE: ./src/libs/storage.js async function set(key,val){if(isExt){await browser.storage.local.set({[key]:val});}else if(isGm){await(window.KISS_GM||GM).setValue(key,val);}else{window.localStorage.setItem(key,val);}}async function get(key){if(isExt){const val=await browser.storage.local.get([key]);return val[key];}else if(isGm){const val=await(window.KISS_GM||GM).getValue(key);return val;}return window.localStorage.getItem(key);}async function del(key){if(isExt){await browser.storage.local.remove([key]);}else if(isGm){await(window.KISS_GM||GM).deleteValue(key);}else{window.localStorage.removeItem(key);}}async function setObj(key,obj){await set(key,JSON.stringify(obj));}async function trySetObj(key,obj){if(!(await get(key))){await setObj(key,obj);}}async function getObj(key){const val=await get(key);if(val===null||val===undefined)return null;try{return JSON.parse(val);}catch(err){log_kissLog("parse json in storage err: ",key);}return null;}async function putObj(key,obj){var _await$getObj;const cur=(_await$getObj=await getObj(key))!==null&&_await$getObj!==void 0?_await$getObj:{};await setObj(key,{...cur,...obj});}/** * 对storage的封装 */const storage={get,set,del,setObj,trySetObj,getObj,putObj// onChanged, };/** * 设置信息 */const getSetting=()=>getObj(storage_STOKEY_SETTING);const getSettingOld=()=>getObj(STOKEY_SETTING_OLD);const storage_getSettingWithDefault=async()=>({...setting_DEFAULT_SETTING,...((await getSetting())||{})});const storage_setSetting=val=>setObj(STOKEY_SETTING,val);const putSetting=obj=>putObj(STOKEY_SETTING,obj);/** * 规则列表 */const getRules=()=>getObj(storage_STOKEY_RULES);const getRulesOld=()=>getObj(STOKEY_RULES_OLD);const getRulesWithDefault=async()=>(await getRules())||rules_DEFAULT_RULES;const setRules=val=>setObj(storage_STOKEY_RULES,val);/** * 词汇列表 */const getWords=()=>getObj(STOKEY_WORDS);const storage_getWordsWithDefault=async()=>(await getWords())||{};const storage_setWords=val=>setObj(STOKEY_WORDS,val);/** * 订阅规则 */const getSubRules=url=>getObj(storage_STOKEY_RULESCACHE_PREFIX+url);const getSubRulesWithDefault=async()=>(await getSubRules())||[];const delSubRules=url=>del(STOKEY_RULESCACHE_PREFIX+url);const setSubRules=(url,val)=>setObj(storage_STOKEY_RULESCACHE_PREFIX+url,val);/** * fab位置 */const getFab=()=>getObj(storage_STOKEY_FAB);const getFabWithDefault=async()=>(await getFab())||{};const setFab=obj=>setObj(STOKEY_FAB,obj);const putFab=obj=>putObj(storage_STOKEY_FAB,obj);/** * 数据同步 */const getSync=()=>getObj(storage_STOKEY_SYNC);const getSyncWithDefault=async()=>(await getSync())||setting_DEFAULT_SYNC;const putSync=obj=>putObj(storage_STOKEY_SYNC,obj);const putSyncMeta=async key=>{const{syncMeta={}}=await getSyncWithDefault();syncMeta[key]={...(syncMeta[key]||{}),updateAt:Date.now()};await putSync({syncMeta});};const debounceSyncMeta=debounce(putSyncMeta,300);/** * ms auth */const getMsauth=()=>getObj(STOKEY_MSAUTH);const setMsauth=val=>setObj(STOKEY_MSAUTH,val);/** * baidu auth */const getBdauth=()=>getObj(STOKEY_BDAUTH);const setBdauth=val=>setObj(STOKEY_BDAUTH,val);/** * 存入默认数据 */const tryInitDefaultData=async()=>{try{await trySetObj(STOKEY_SETTING,DEFAULT_SETTING);await trySetObj(STOKEY_RULES,DEFAULT_RULES);await trySetObj(STOKEY_SYNC,DEFAULT_SYNC);await trySetObj("".concat(STOKEY_RULESCACHE_PREFIX).concat("https://fishjar.github.io/kiss-rules/kiss-rules_v2.json"),BUILTIN_RULES);}catch(err){kissLog("init default",err);}}; ;// CONCATENATED MODULE: ./node_modules/.pnpm/decode-uri-component@0.4.1/node_modules/decode-uri-component/index.js const token = '%[a-f0-9]{2}'; const singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi'); const multiMatcher = new RegExp('(' + token + ')+', 'gi'); function decodeComponents(components, split) { try { // Try to decode the entire string first return [decodeURIComponent(components.join(''))]; } catch { // Do nothing } if (components.length === 1) { return components; } split = split || 1; // Split the array in 2 parts const left = components.slice(0, split); const right = components.slice(split); return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right)); } function decode(input) { try { return decodeURIComponent(input); } catch { let tokens = input.match(singleMatcher) || []; for (let i = 1; i < tokens.length; i++) { input = decodeComponents(tokens, i).join(''); tokens = input.match(singleMatcher) || []; } return input; } } function customDecodeURIComponent(input) { // Keep track of all the replacements and prefill the map with the `BOM` const replaceMap = { '%FE%FF': '\uFFFD\uFFFD', '%FF%FE': '\uFFFD\uFFFD' }; let match = multiMatcher.exec(input); while (match) { try { // Decode as big chunks as possible replaceMap[match[0]] = decodeURIComponent(match[0]); } catch { const result = decode(match[0]); if (result !== match[0]) { replaceMap[match[0]] = result; } } match = multiMatcher.exec(input); } // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else replaceMap['%C2'] = '\uFFFD'; const entries = Object.keys(replaceMap); for (const key of entries) { // Replace all decoded components input = input.replace(new RegExp(key, 'g'), replaceMap[key]); } return input; } function decodeUriComponent(encodedURI) { if (typeof encodedURI !== 'string') { throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`'); } try { // Try the built in decoder first return decodeURIComponent(encodedURI); } catch { // Fallback to a more advanced decoder return customDecodeURIComponent(encodedURI); } } ;// CONCATENATED MODULE: ./node_modules/.pnpm/split-on-first@3.0.0/node_modules/split-on-first/index.js function splitOnFirst(string, separator) { if (!(typeof string === 'string' && typeof separator === 'string')) { throw new TypeError('Expected the arguments to be of type `string`'); } if (string === '' || separator === '') { return []; } const separatorIndex = string.indexOf(separator); if (separatorIndex === -1) { return []; } return [string.slice(0, separatorIndex), string.slice(separatorIndex + separator.length)]; } ;// CONCATENATED MODULE: ./node_modules/.pnpm/filter-obj@5.1.0/node_modules/filter-obj/index.js function includeKeys(object, predicate) { const result = {}; if (Array.isArray(predicate)) { for (const key of predicate) { const descriptor = Object.getOwnPropertyDescriptor(object, key); if (descriptor !== null && descriptor !== void 0 && descriptor.enumerable) { Object.defineProperty(result, key, descriptor); } } } else { // `Reflect.ownKeys()` is required to retrieve symbol properties for (const key of Reflect.ownKeys(object)) { const descriptor = Object.getOwnPropertyDescriptor(object, key); if (descriptor.enumerable) { const value = object[key]; if (predicate(key, value, object)) { Object.defineProperty(result, key, descriptor); } } } } return result; } function excludeKeys(object, predicate) { if (Array.isArray(predicate)) { const set = new Set(predicate); return includeKeys(object, key => !set.has(key)); } return includeKeys(object, (key, value, object) => !predicate(key, value, object)); } ;// CONCATENATED MODULE: ./node_modules/.pnpm/query-string@8.1.0/node_modules/query-string/base.js const isNullOrUndefined = value => value === null || value === undefined; // eslint-disable-next-line unicorn/prefer-code-point const strictUriEncode = string => encodeURIComponent(string).replace(/[!'()*]/g, x => "%".concat(x.charCodeAt(0).toString(16).toUpperCase())); const encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier'); function encoderForArrayFormat(options) { switch (options.arrayFormat) { case 'index': { return key => (result, value) => { const index = result.length; if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') { return result; } if (value === null) { return [...result, [encode(key, options), '[', index, ']'].join('')]; } return [...result, [encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')]; }; } case 'bracket': { return key => (result, value) => { if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') { return result; } if (value === null) { return [...result, [encode(key, options), '[]'].join('')]; } return [...result, [encode(key, options), '[]=', encode(value, options)].join('')]; }; } case 'colon-list-separator': { return key => (result, value) => { if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') { return result; } if (value === null) { return [...result, [encode(key, options), ':list='].join('')]; } return [...result, [encode(key, options), ':list=', encode(value, options)].join('')]; }; } case 'comma': case 'separator': case 'bracket-separator': { const keyValueSep = options.arrayFormat === 'bracket-separator' ? '[]=' : '='; return key => (result, value) => { if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') { return result; } // Translate null to an empty string so that it doesn't serialize as 'null' value = value === null ? '' : value; if (result.length === 0) { return [[encode(key, options), keyValueSep, encode(value, options)].join('')]; } return [[result, encode(value, options)].join(options.arrayFormatSeparator)]; }; } default: { return key => (result, value) => { if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') { return result; } if (value === null) { return [...result, encode(key, options)]; } return [...result, [encode(key, options), '=', encode(value, options)].join('')]; }; } } } function parserForArrayFormat(options) { let result; switch (options.arrayFormat) { case 'index': { return (key, value, accumulator) => { result = /\[(\d*)]$/.exec(key); key = key.replace(/\[\d*]$/, ''); if (!result) { accumulator[key] = value; return; } if (accumulator[key] === undefined) { accumulator[key] = {}; } accumulator[key][result[1]] = value; }; } case 'bracket': { return (key, value, accumulator) => { result = /(\[])$/.exec(key); key = key.replace(/\[]$/, ''); if (!result) { accumulator[key] = value; return; } if (accumulator[key] === undefined) { accumulator[key] = [value]; return; } accumulator[key] = [...accumulator[key], value]; }; } case 'colon-list-separator': { return (key, value, accumulator) => { result = /(:list)$/.exec(key); key = key.replace(/:list$/, ''); if (!result) { accumulator[key] = value; return; } if (accumulator[key] === undefined) { accumulator[key] = [value]; return; } accumulator[key] = [...accumulator[key], value]; }; } case 'comma': case 'separator': { return (key, value, accumulator) => { const isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator); const isEncodedArray = typeof value === 'string' && !isArray && base_decode(value, options).includes(options.arrayFormatSeparator); value = isEncodedArray ? base_decode(value, options) : value; const newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => base_decode(item, options)) : value === null ? value : base_decode(value, options); accumulator[key] = newValue; }; } case 'bracket-separator': { return (key, value, accumulator) => { const isArray = /(\[])$/.test(key); key = key.replace(/\[]$/, ''); if (!isArray) { accumulator[key] = value ? base_decode(value, options) : value; return; } const arrayValue = value === null ? [] : value.split(options.arrayFormatSeparator).map(item => base_decode(item, options)); if (accumulator[key] === undefined) { accumulator[key] = arrayValue; return; } accumulator[key] = [...accumulator[key], ...arrayValue]; }; } default: { return (key, value, accumulator) => { if (accumulator[key] === undefined) { accumulator[key] = value; return; } accumulator[key] = [...[accumulator[key]].flat(), value]; }; } } } function validateArrayFormatSeparator(value) { if (typeof value !== 'string' || value.length !== 1) { throw new TypeError('arrayFormatSeparator must be single character string'); } } function encode(value, options) { if (options.encode) { return options.strict ? strictUriEncode(value) : encodeURIComponent(value); } return value; } function base_decode(value, options) { if (options.decode) { return decodeUriComponent(value); } return value; } function keysSorter(input) { if (Array.isArray(input)) { return input.sort(); } if (typeof input === 'object') { return keysSorter(Object.keys(input)).sort((a, b) => Number(a) - Number(b)).map(key => input[key]); } return input; } function removeHash(input) { const hashStart = input.indexOf('#'); if (hashStart !== -1) { input = input.slice(0, hashStart); } return input; } function getHash(url) { let hash = ''; const hashStart = url.indexOf('#'); if (hashStart !== -1) { hash = url.slice(hashStart); } return hash; } function parseValue(value, options) { if (options.parseNumbers && !Number.isNaN(Number(value)) && typeof value === 'string' && value.trim() !== '') { value = Number(value); } else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) { value = value.toLowerCase() === 'true'; } return value; } function extract(input) { input = removeHash(input); const queryStart = input.indexOf('?'); if (queryStart === -1) { return ''; } return input.slice(queryStart + 1); } function parse(query, options) { options = { decode: true, sort: true, arrayFormat: 'none', arrayFormatSeparator: ',', parseNumbers: false, parseBooleans: false, ...options }; validateArrayFormatSeparator(options.arrayFormatSeparator); const formatter = parserForArrayFormat(options); // Create an object with no prototype const returnValue = Object.create(null); if (typeof query !== 'string') { return returnValue; } query = query.trim().replace(/^[?#&]/, ''); if (!query) { return returnValue; } for (const parameter of query.split('&')) { if (parameter === '') { continue; } const parameter_ = options.decode ? parameter.replace(/\+/g, ' ') : parameter; let [key, value] = splitOnFirst(parameter_, '='); if (key === undefined) { key = parameter_; } // Missing `=` should be `null`: // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters value = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : base_decode(value, options); formatter(base_decode(key, options), value, returnValue); } for (const [key, value] of Object.entries(returnValue)) { if (typeof value === 'object' && value !== null) { for (const [key2, value2] of Object.entries(value)) { value[key2] = parseValue(value2, options); } } else { returnValue[key] = parseValue(value, options); } } if (options.sort === false) { return returnValue; } // TODO: Remove the use of `reduce`. // eslint-disable-next-line unicorn/no-array-reduce return (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => { const value = returnValue[key]; if (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) { // Sort object keys, not values result[key] = keysSorter(value); } else { result[key] = value; } return result; }, Object.create(null)); } function stringify(object, options) { if (!object) { return ''; } options = { encode: true, strict: true, arrayFormat: 'none', arrayFormatSeparator: ',', ...options }; validateArrayFormatSeparator(options.arrayFormatSeparator); const shouldFilter = key => options.skipNull && isNullOrUndefined(object[key]) || options.skipEmptyString && object[key] === ''; const formatter = encoderForArrayFormat(options); const objectCopy = {}; for (const [key, value] of Object.entries(object)) { if (!shouldFilter(key)) { objectCopy[key] = value; } } const keys = Object.keys(objectCopy); if (options.sort !== false) { keys.sort(options.sort); } return keys.map(key => { const value = object[key]; if (value === undefined) { return ''; } if (value === null) { return encode(key, options); } if (Array.isArray(value)) { if (value.length === 0 && options.arrayFormat === 'bracket-separator') { return encode(key, options) + '[]'; } return value.reduce(formatter(key), []).join('&'); } return encode(key, options) + '=' + encode(value, options); }).filter(x => x.length > 0).join('&'); } function parseUrl(url, options) { var _url_$split$, _url_; options = { decode: true, ...options }; let [url_, hash] = splitOnFirst(url, '#'); if (url_ === undefined) { url_ = url; } return { url: (_url_$split$ = (_url_ = url_) === null || _url_ === void 0 || (_url_ = _url_.split('?')) === null || _url_ === void 0 ? void 0 : _url_[0]) !== null && _url_$split$ !== void 0 ? _url_$split$ : '', query: parse(extract(url), options), ...(options && options.parseFragmentIdentifier && hash ? { fragmentIdentifier: base_decode(hash, options) } : {}) }; } function stringifyUrl(object, options) { options = { encode: true, strict: true, [encodeFragmentIdentifier]: true, ...options }; const url = removeHash(object.url).split('?')[0] || ''; const queryFromUrl = extract(object.url); const query = { ...parse(queryFromUrl, { sort: false }), ...object.query }; let queryString = stringify(query, options); if (queryString) { queryString = "?".concat(queryString); } let hash = getHash(object.url); if (object.fragmentIdentifier) { const urlObjectForFragmentEncode = new URL(url); urlObjectForFragmentEncode.hash = object.fragmentIdentifier; hash = options[encodeFragmentIdentifier] ? urlObjectForFragmentEncode.hash : "#".concat(object.fragmentIdentifier); } return "".concat(url).concat(queryString).concat(hash); } function pick(input, filter, options) { options = { parseFragmentIdentifier: true, [encodeFragmentIdentifier]: false, ...options }; const { url, query, fragmentIdentifier } = parseUrl(input, options); return stringifyUrl({ url, query: includeKeys(query, filter), fragmentIdentifier }, options); } function exclude(input, filter, options) { const exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value); return pick(input, exclusionFilter, options); } ;// CONCATENATED MODULE: ./node_modules/.pnpm/query-string@8.1.0/node_modules/query-string/index.js /* harmony default export */ const query_string = (base_namespaceObject); ;// CONCATENATED MODULE: ./src/libs/msg.js /** * 获取当前tab信息 * @returns */const getCurTab=async()=>{const[tab]=await browser.tabs.query({active:true,lastFocusedWindow:true});return tab;};const getCurTabId=async()=>{const tab=await getCurTab();return tab.id;};/** * 发送消息给background * @param {*} action * @param {*} args * @returns */const sendBgMsg=(action,args)=>browser.runtime.sendMessage({action,args});/** * 发送消息给当前页面 * @param {*} action * @param {*} args * @returns */const sendTabMsg=async(action,args)=>{const tabId=await getCurTabId();return browser.tabs.sendMessage(tabId,{action,args});}; ;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js function _classPrivateFieldBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; } ;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.24.4/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js var id = 0; function _classPrivateFieldKey(name) { return "__private_" + id++ + "_" + name; } ;// CONCATENATED MODULE: ./src/libs/pool.js /** * 任务池 */var _pool=/*#__PURE__*/_classPrivateFieldKey("pool");var _maxRetry=/*#__PURE__*/_classPrivateFieldKey("maxRetry");var _retryInterval=/*#__PURE__*/_classPrivateFieldKey("retryInterval");var _limit=/*#__PURE__*/_classPrivateFieldKey("limit");var _interval=/*#__PURE__*/_classPrivateFieldKey("interval");var _currentConcurrent=/*#__PURE__*/_classPrivateFieldKey("currentConcurrent");var _lastExecutionTime=/*#__PURE__*/_classPrivateFieldKey("lastExecutionTime");var _schedulerTimer=/*#__PURE__*/_classPrivateFieldKey("schedulerTimer");var _scheduleNext=/*#__PURE__*/_classPrivateFieldKey("scheduleNext");var _execute=/*#__PURE__*/_classPrivateFieldKey("execute");class TaskPool{// 用于调度下一个任务的定时器 constructor(){let interval=arguments.length>0&&arguments[0]!==undefined?arguments[0]:DEFAULT_FETCH_INTERVAL;let limit=arguments.length>1&&arguments[1]!==undefined?arguments[1]:DEFAULT_FETCH_LIMIT;let retryInterval=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1000;/** * 执行单个任务 * @param {object} task - 任务对象 */Object.defineProperty(this,_execute,{value:_execute2});/** * 调度器 */Object.defineProperty(this,_scheduleNext,{value:_scheduleNext2});Object.defineProperty(this,_pool,{writable:true,value:[]});Object.defineProperty(this,_maxRetry,{writable:true,value:2});// 最大重试次数 Object.defineProperty(this,_retryInterval,{writable:true,value:1000});// 重试间隔时间 Object.defineProperty(this,_limit,{writable:true,value:void 0});// 最大并发数 Object.defineProperty(this,_interval,{writable:true,value:void 0});// 任务最小启动间隔 Object.defineProperty(this,_currentConcurrent,{writable:true,value:0});// 当前正在执行的任务数 Object.defineProperty(this,_lastExecutionTime,{writable:true,value:0});// 上一个任务的启动时间 Object.defineProperty(this,_schedulerTimer,{writable:true,value:null});_classPrivateFieldBase(this,_interval)[_interval]=interval;_classPrivateFieldBase(this,_limit)[_limit]=limit;_classPrivateFieldBase(this,_retryInterval)[_retryInterval]=retryInterval;}/** * 向任务池中添加一个新任务 * @param {Function} fn - 要执行的异步函数 * @param {*} args - 函数的参数 * @returns {Promise} */push(fn,args){return new Promise((resolve,reject)=>{_classPrivateFieldBase(this,_pool)[_pool].push({fn,args,resolve,reject,retry:0});_classPrivateFieldBase(this,_scheduleNext)[_scheduleNext]();});}/** * 更新任务池的配置 * @param {number} interval - 新的最小任务间隔 * @param {number} limit - 新的最大并发数 */update(interval,limit){if(interval>=0){_classPrivateFieldBase(this,_interval)[_interval]=interval;}if(limit>=1){_classPrivateFieldBase(this,_limit)[_limit]=limit;}_classPrivateFieldBase(this,_scheduleNext)[_scheduleNext]();}/** * 清空任务池 */clear(){for(const task of _classPrivateFieldBase(this,_pool)[_pool]){task.reject("the task pool was cleared");}_classPrivateFieldBase(this,_pool)[_pool].length=0;if(_classPrivateFieldBase(this,_schedulerTimer)[_schedulerTimer]){clearTimeout(_classPrivateFieldBase(this,_schedulerTimer)[_schedulerTimer]);_classPrivateFieldBase(this,_schedulerTimer)[_schedulerTimer]=null;}}}/** * 请求池实例 */function _scheduleNext2(){if(_classPrivateFieldBase(this,_schedulerTimer)[_schedulerTimer]){return;}if(_classPrivateFieldBase(this,_currentConcurrent)[_currentConcurrent]>=_classPrivateFieldBase(this,_limit)[_limit]||_classPrivateFieldBase(this,_pool)[_pool].length===0){return;}const now=Date.now();const timeSinceLast=now-_classPrivateFieldBase(this,_lastExecutionTime)[_lastExecutionTime];const delay=Math.max(0,_classPrivateFieldBase(this,_interval)[_interval]-timeSinceLast);_classPrivateFieldBase(this,_schedulerTimer)[_schedulerTimer]=setTimeout(()=>{_classPrivateFieldBase(this,_schedulerTimer)[_schedulerTimer]=null;if(_classPrivateFieldBase(this,_currentConcurrent)[_currentConcurrent]<_classPrivateFieldBase(this,_limit)[_limit]&&_classPrivateFieldBase(this,_pool)[_pool].length>0){const task=_classPrivateFieldBase(this,_pool)[_pool].shift();if(task){_classPrivateFieldBase(this,_lastExecutionTime)[_lastExecutionTime]=Date.now();_classPrivateFieldBase(this,_execute)[_execute](task);}}if(_classPrivateFieldBase(this,_pool)[_pool].length>0){_classPrivateFieldBase(this,_scheduleNext)[_scheduleNext]();}},delay);}async function _execute2(task){_classPrivateFieldBase(this,_currentConcurrent)[_currentConcurrent]++;const{fn,args,resolve,reject,retry}=task;try{const res=await fn(args);resolve(res);}catch(err){log_kissLog("task pool",err);if(retry<_classPrivateFieldBase(this,_maxRetry)[_maxRetry]){setTimeout(()=>{_classPrivateFieldBase(this,_pool)[_pool].unshift({...task,retry:retry+1});// unshift 保证重试任务优先 _classPrivateFieldBase(this,_scheduleNext)[_scheduleNext]();},_classPrivateFieldBase(this,_retryInterval)[_retryInterval]);}else{reject(err);}}finally{_classPrivateFieldBase(this,_currentConcurrent)[_currentConcurrent]--;_classPrivateFieldBase(this,_scheduleNext)[_scheduleNext]();}}let fetchPool;/** * 获取请求池实例 * @param interval * @param limit * @returns */const getFetchPool=(interval,limit)=>{if(!fetchPool){fetchPool=new TaskPool(interval!==null&&interval!==void 0?interval:DEFAULT_FETCH_INTERVAL,limit!==null&&limit!==void 0?limit:DEFAULT_FETCH_LIMIT);}else if(interval&&limit){updateFetchPool(interval,limit);}return fetchPool;};/** * 更新请求池参数 * @param {*} interval * @param {*} limit */const updateFetchPool=(interval,limit)=>{var _fetchPool;(_fetchPool=fetchPool)===null||_fetchPool===void 0?void 0:_fetchPool.update(interval,limit);};/** * 清空请求池 */const clearFetchPool=()=>{var _fetchPool2;(_fetchPool2=fetchPool)===null||_fetchPool2===void 0?void 0:_fetchPool2.clear();}; ;// CONCATENATED MODULE: ./src/libs/cache.js /** * 清除缓存数据 */const tryClearCaches=async()=>{try{if(isExt&&!isBg){await sendBgMsg(MSG_CLEAR_CACHES);}else{await caches.delete(CACHE_NAME);}}catch(err){log_kissLog("clean caches",err);}};/** * 构造缓存 request * @param {*} input * @param {*} init * @returns */const newCacheReq=async(input,init)=>{let request=new Request(input,init);if(request.method!=="GET"){const body=await request.text();const cacheUrl=new URL(request.url);cacheUrl.pathname+=body;request=new Request(cacheUrl.toString(),{method:"GET"});}return request;};/** * 查询 caches * @param {*} input * @param {*} init * @returns */const getHttpCache=async _ref=>{let{input,init}=_ref;try{const request=await newCacheReq(input,init);const cache=await caches.open(CACHE_NAME);const response=await cache.match(request);if(response){const res=await parseResponse(response);return res;}}catch(err){log_kissLog("get cache",err);}return null;};/** * 插入 caches * @param {*} input * @param {*} init * @param {*} data */const putHttpCache=async _ref2=>{let{input,init,data,maxAge=DEFAULT_CACHE_TIMEOUT// todo: 从设置里面读取最大缓存时间 }=_ref2;try{const req=await newCacheReq(input,init);const cache=await caches.open(CACHE_NAME);const res=new Response(JSON.stringify(data),{status:200,headers:{"Content-Type":"application/json","Cache-Control":"max-age=".concat(maxAge)}});// res.headers.set("Cache-Control", `max-age=${maxAge}`); await cache.put(req,res);}catch(err){log_kissLog("put cache",err);}};/** * 解析 response * @param {*} res * @returns */const parseResponse=async res=>{if(!res){throw new Error("Response object does not exist");}if(!res.ok){var _res$headers$get;const msg={url:res.url,status:res.status};if((_res$headers$get=res.headers.get("Content-Type"))!==null&&_res$headers$get!==void 0&&_res$headers$get.includes("json")){msg.response=await res.json();}throw new Error(JSON.stringify(msg));}const contentType=res.headers.get("Content-Type");if(contentType!==null&&contentType!==void 0&&contentType.includes("json")){return res.json();}else if(contentType!==null&&contentType!==void 0&&contentType.includes("audio")){const blob=await res.blob();return blobToBase64(blob);}return res.text();};/** * getHttpCache 兼容性封装 * @param {*} input * @param {*} init * @returns */const getHttpCachePolyfill=(input,init)=>{// 插件 if(isExt&&!isBg()){return sendBgMsg(MSG_GET_HTTPCACHE,{input,init});}// 油猴/网页/BackgroundPage return getHttpCache({input,init});};/** * putHttpCache 兼容性封装 * @param {*} input * @param {*} init * @param {*} data * @returns */const putHttpCachePolyfill=(input,init,data)=>{// 插件 if(isExt&&!isBg()){return sendBgMsg(MSG_PUT_HTTPCACHE,{input,init,data});}// 油猴/网页/BackgroundPage return putHttpCache({input,init,data});}; ;// CONCATENATED MODULE: ./src/libs/fetch.js /** * 油猴脚本的请求封装 * @param {*} input * @param {*} init * @returns */const fetchGM=async function(input){let{method="GET",headers,body,timeout}=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return new Promise((resolve,reject)=>{GM.xmlHttpRequest({method,url:input,headers,data:body,// withCredentials: true, timeout,onload:_ref=>{let{response,responseHeaders,status,statusText}=_ref;const headers={};responseHeaders.split("\n").forEach(line=>{const[name,value]=line.split(":").map(item=>item.trim());if(name&&value){headers[name]=value;}});resolve({body:response,headers,status,statusText});},onerror:reject});});};/** * 发起请求 * @param {*} input * @param {*} init * @param {*} opts * @returns */const fetchPatcher=async function(input){var _AbortSignal;let init=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};let opts=arguments.length>2?arguments[2]:undefined;let timeout=opts===null||opts===void 0?void 0:opts.httpTimeout;if(!timeout){try{timeout=(await storage_getSettingWithDefault()).httpTimeout;}catch(err){log_kissLog("getSettingWithDefault",err);}}if(!timeout){timeout=DEFAULT_HTTP_TIMEOUT;}if(isGm){// todo: 自定义接口 init 可能包含了 signal Object.assign(init,{timeout});const{body,headers,status,statusText}=window.KISS_GM?await window.KISS_GM.fetch(input,init):await fetchGM(input,init);return new Response(body,{headers:new Headers(headers),status,statusText});}if((_AbortSignal=AbortSignal)!==null&&_AbortSignal!==void 0&&_AbortSignal.timeout&&!init.signal){Object.assign(init,{signal:AbortSignal.timeout(timeout)});}return fetch(input,init);};/** * 处理请求 * @param {*} param0 * @returns */const fetchHandle=async _ref2=>{let{input,init,opts}=_ref2;const res=await fetchPatcher(input,init,opts);return parseResponse(res);};/** * fetch 兼容性封装 * @param {*} args * @returns */const fnPolyfill=_ref3=>{let{fn,msg=MSG_FETCH,...args}=_ref3;// 插件 if(isExt&&!isBg()){return sendBgMsg(msg,{...args});}// 油猴/网页/BackgroundPage return fn({...args});};/** * 数据请求 * @param {*} input * @param {*} init * @param {*} param1 * @returns */const fetch_fetchData=async function(input,init){let{useCache,usePool,fetchInterval,fetchLimit,...opts}=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};if(!(input!==null&&input!==void 0&&input.trim())){throw new Error("URL is empty");}// 使用缓存数据 if(useCache){const resCache=await getHttpCachePolyfill(input,init);if(resCache){return resCache;}}// 通过任务池发送请求 if(usePool){const fetchPool=getFetchPool(fetchInterval,fetchLimit);return fetchPool.push(fnPolyfill,{fn:fetchHandle,input,init,opts});}// 直接请求 return fnPolyfill({fn:fetchHandle,input,init,opts});}; ;// CONCATENATED MODULE: ./src/libs/auth.js const parseMSToken=token=>{try{return JSON.parse(atob(token.split(".")[1])).exp;}catch(err){log_kissLog("parseMSToken",err);}return 0;};/** * 闭包缓存token,减少对storage查询 * @returns */const _msAuth=()=>{let tokenPromise=null;const EXPIRATION_MS=1000;const fetchNewToken=async()=>{try{const now=Date.now();// 1. 查询storage缓存 const storageToken=await getMsauth();if(storageToken){const storageExp=parseMSToken(storageToken);const storageExpiresAt=storageExp*1000;if(storageExpiresAt>now+EXPIRATION_MS){return{token:storageToken,expiresAt:storageExpiresAt};}}// 2. 缓存没有或失效,查询接口 const apiToken=await apiMsAuth();if(!apiToken){throw new Error("Failed to fetch ms token");}const apiExp=parseMSToken(apiToken);const apiExpiresAt=apiExp*1000;await setMsauth(apiToken);return{token:apiToken,expiresAt:apiExpiresAt};}catch(error){log_kissLog("get msauth failed",error);throw error;}};return async()=>{// 检查是否有缓存的 Promise if(tokenPromise){try{const cachedResult=await tokenPromise;if(cachedResult.expiresAt>Date.now()+EXPIRATION_MS){return cachedResult.token;}}catch(error){// }}tokenPromise=fetchNewToken();const result=await tokenPromise;return result.token;};};const msAuth=_msAuth(); ;// CONCATENATED MODULE: ./src/apis/deepl.js let deepl_id=1e4*Math.round(1e4*Math.random());const genDeeplFree=_ref=>{let{texts,from,to}=_ref;const text=texts.join(" ");const iCount=(text.match(/[i]/g)||[]).length+1;let timestamp=Date.now();timestamp=timestamp+(iCount-timestamp%iCount);deepl_id++;const url="https://www2.deepl.com/jsonrpc";const body={jsonrpc:"2.0",method:"LMT_handle_texts",params:{splitting:"newlines",lang:{target_lang:to,source_lang_user_selected:from},commonJobParams:{wasSpoken:false,transcribe_as:""},id: deepl_id,timestamp,texts:[{text,requestAlternatives:3}]}};const headers={"Content-Type":"application/json",Accept:"*/*","x-app-os-name":"iOS","x-app-os-version":"16.3.0","Accept-Language":"en-US,en;q=0.9","Accept-Encoding":"gzip, deflate, br","x-app-device":"iPhone13,2","User-Agent":"DeepL-iOS/2.9.1 iOS 16.3.0 (iPhone13,2)","x-app-build":"510265","x-app-version":"2.9.1"};return{url,body,headers};}; ;// CONCATENATED MODULE: ./src/apis/baidu.js const genBaidu=_ref=>{let{texts,from,to}=_ref;const body={from,to,query:texts.join(" "),source:"txt"};const url="https://fanyi.baidu.com/transapi";const headers={// Origin: "https://fanyi.baidu.com", "content-type":"application/x-www-form-urlencoded; charset=UTF-8","User-Agent":DEFAULT_USER_AGENT};return{url,body,headers};}; // EXTERNAL MODULE: ./node_modules/.pnpm/sval@0.5.2/node_modules/sval/dist/sval.js var sval = __webpack_require__(5021); var sval_default = /*#__PURE__*/__webpack_require__.n(sval); ;// CONCATENATED MODULE: ./src/libs/interpreter.js const interpreter=new (sval_default())({// ECMA Version of the code // 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 // or 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 // or "latest" ecmaVer:"latest",// Code source type // "script" or "module" sourceType:"script",// Whether the code runs in a sandbox sandBox:true});/* harmony default export */ const libs_interpreter = (interpreter); ;// CONCATENATED MODULE: ./src/apis/history.js const historyMap=new Map();const MsgHistory=function(){let maxSize=arguments.length>0&&arguments[0]!==undefined?arguments[0]:DEFAULT_CONTEXT_SIZE;const messages=[];const add=function(){for(var _len=arguments.length,msgs=new Array(_len),_key=0;_key<_len;_key++){msgs[_key]=arguments[_key];}messages.push(...msgs.filter(Boolean));const extra=messages.length-maxSize;if(extra>0){messages.splice(0,extra);}};const getAll=()=>{return[...messages];};const clear=()=>{messages.length=0;};return{add,getAll,clear};};const getMsgHistory=(apiSlug,maxSize)=>{if(historyMap.has(apiSlug)){return historyMap.get(apiSlug);}const msgHistory=MsgHistory(maxSize);historyMap.set(apiSlug,msgHistory);return msgHistory;}; ;// CONCATENATED MODULE: ./src/subtitle/vtt.js function millisecondsStringToNumber(msString){const cleanString=msString.trim();const milliseconds=parseInt(cleanString,10);if(isNaN(milliseconds)){return 0;}return milliseconds;}function parseBilingualVtt(vttText){const cleanText=vttText.replace(/^\uFEFF/,"").trim();const cues=cleanText.split(/\n\n+/);const result=[];for(const cue of cues){if(!cue.includes("-->"))continue;const lines=cue.split("\n");const timestampLineIndex=lines.findIndex(line=>line.includes("-->"));if(timestampLineIndex===-1)continue;const[startTimeString,endTimeString]=lines[timestampLineIndex].split(" --> ");const textLines=lines.slice(timestampLineIndex+1);if(startTimeString&&endTimeString&&textLines.length>0){const originalText=textLines[0].trim();const translatedText=(textLines[1]||"").trim();result.push({start:millisecondsStringToNumber(startTimeString),end:millisecondsStringToNumber(endTimeString),text:originalText,translation:translatedText});}}return result;} ;// CONCATENATED MODULE: ./src/apis/trans.js const keyMap=new Map();const urlMap=new Map();// 轮询key/url const keyPick=function(apiSlug){var _cacheMap$get;let key=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"";let cacheMap=arguments.length>2?arguments[2]:undefined;const keys=key.split(/\n|,/).map(item=>item.trim()).filter(Boolean);if(keys.length===0){return"";}const preIndex=(_cacheMap$get=cacheMap.get(apiSlug))!==null&&_cacheMap$get!==void 0?_cacheMap$get:-1;const curIndex=(preIndex+1)%keys.length;cacheMap.set(apiSlug,curIndex);return keys[curIndex];};const genSystemPrompt=_ref=>{let{systemPrompt,from,to}=_ref;return systemPrompt.replaceAll(INPUT_PLACE_FROM,from).replaceAll(INPUT_PLACE_TO,to);};const genUserPrompt=_ref2=>{let{// userPrompt, tone,glossary={},// from, to,texts,docInfo}=_ref2;const prompt=JSON.stringify({targetLanguage:to,title:docInfo.title,description:docInfo.description,segments:texts.map((text,i)=>({id:i,text})),glossary,tone});// if (userPrompt.includes(INPUT_PLACE_TEXT)) { // return userPrompt // .replaceAll(INPUT_PLACE_FROM, from) // .replaceAll(INPUT_PLACE_TO, to) // .replaceAll(INPUT_PLACE_TEXT, prompt); // } return prompt;};const parseAIRes=raw=>{if(!raw){return[];}try{const jsonString=extractJson(raw);const data=JSON.parse(jsonString);if(Array.isArray(data.translations)){// todo: 考虑序号id可能会打乱 return data.translations.map(item=>{var _item$text,_item$sourceLanguage;return[(_item$text=item===null||item===void 0?void 0:item.text)!==null&&_item$text!==void 0?_item$text:"",(_item$sourceLanguage=item===null||item===void 0?void 0:item.sourceLanguage)!==null&&_item$sourceLanguage!==void 0?_item$sourceLanguage:""];});}}catch(err){log_kissLog("parseAIRes",err);}return[];};const parseSTRes=raw=>{if(!raw){return[];}try{// const jsonString = extractJson(raw); // const data = JSON.parse(jsonString); const data=parseBilingualVtt(raw);if(Array.isArray(data)){return data;}}catch(err){log_kissLog("parseAIRes: subtitle",err);}return[];};const genGoogle=_ref3=>{let{texts,from,to,url,key}=_ref3;const params=query_string.stringify({client:"gtx",dt:"t",dj:1,ie:"UTF-8",sl:from,tl:to,q:texts.join(" ")});url="".concat(url,"?").concat(params);const headers={"Content-type":"application/json"};if(key){headers.Authorization="Bearer ".concat(key);}return{url,headers,method:"GET"};};const genGoogle2=_ref4=>{let{texts,from,to,url,key}=_ref4;const body=[[texts,from,to],"wt_lib"];const headers={"Content-Type":"application/json+protobuf","X-Goog-API-Key":key};return{url,body,headers};};const genMicrosoft=_ref5=>{let{texts,from,to,token}=_ref5;const params=query_string.stringify({from,to,"api-version":"3.0"});const url="https://api-edge.cognitive.microsofttranslator.com/translate?".concat(params);const headers={"Content-type":"application/json",Authorization:"Bearer ".concat(token)};const body=texts.map(text=>({Text:text}));return{url,body,headers};};const genAzureAI=_ref6=>{let{texts,from,to,url,key,region}=_ref6;const params=query_string.stringify({from,to});url=url.endsWith("&")?"".concat(url).concat(params):"".concat(url,"&").concat(params);const headers={"Content-type":"application/json","Ocp-Apim-Subscription-Key":key,"Ocp-Apim-Subscription-Region":region};const body=texts.map(text=>({Text:text}));return{url,body,headers};};const genDeepl=_ref7=>{let{texts,from,to,url,key}=_ref7;const body={text:texts,target_lang:to,source_lang:from// split_sentences: "0", };const headers={"Content-type":"application/json",Authorization:"DeepL-Auth-Key ".concat(key)};return{url,body,headers};};const genDeeplX=_ref8=>{let{texts,from,to,url,key}=_ref8;const body={text:texts.join(" "),target_lang:to,source_lang:from};const headers={"Content-type":"application/json"};if(key){headers.Authorization="Bearer ".concat(key);}return{url,body,headers};};const genNiuTrans=_ref9=>{let{texts,from,to,url,key,dictNo,memoryNo}=_ref9;const body={from,to,apikey:key,src_text:texts.join(" "),dictNo,memoryNo};const headers={"Content-type":"application/json"};return{url,body,headers};};const genTencent=_ref10=>{let{texts,from,to}=_ref10;const body={header:{fn:"auto_translation",client_key:"browser-chrome-110.0.0-Mac OS-df4bd4c5-a65d-44b2-a40f-42f34f3535f2-1677486696487"},type:"plain",model_category:"normal",source:{text_list:texts,lang:from},target:{lang:to}};const url="https://transmart.qq.com/api/imt";const headers={"Content-Type":"application/json","user-agent":DEFAULT_USER_AGENT,referer:"https://transmart.qq.com/zh-CN/index"};return{url,body,headers};};const genVolcengine=_ref11=>{let{texts,from,to}=_ref11;const body={source_language:from,target_language:to,text:texts.join(" ")};const url="https://translate.volcengine.com/crx/translate/v1";const headers={"Content-type":"application/json"};return{url,body,headers};};const genOpenAI=_ref12=>{let{url,key,systemPrompt,userPrompt,model,temperature,maxTokens,hisMsgs=[]}=_ref12;const userMsg={role:"user",content:userPrompt};const body={model,messages:[{role:"system",content:systemPrompt},...hisMsgs,userMsg],temperature,max_completion_tokens:maxTokens};const headers={"Content-type":"application/json",Authorization:"Bearer ".concat(key)// OpenAI // "api-key": key, // Azure OpenAI };return{url,body,headers,userMsg};};const genGemini=_ref13=>{let{url,key,systemPrompt,userPrompt,model,temperature,maxTokens,hisMsgs=[]}=_ref13;url=url.replaceAll(INPUT_PLACE_MODEL,model).replaceAll(INPUT_PLACE_KEY,key);const userMsg={role:"user",parts:[{text:userPrompt}]};const body={// system_instruction: { // parts: { // text: systemPrompt, // }, // }, contents:[{role:"model",parts:[{text:systemPrompt}]},...hisMsgs,userMsg],generationConfig:{maxOutputTokens:maxTokens,temperature// topP: 0.8, // topK: 10, },// thinkingConfig: { // thinkingBudget: 0, // }, safetySettings:[{category:"HARM_CATEGORY_HARASSMENT",threshold:"BLOCK_NONE"},{category:"HARM_CATEGORY_HATE_SPEECH",threshold:"BLOCK_NONE"},{category:"HARM_CATEGORY_SEXUALLY_EXPLICIT",threshold:"BLOCK_NONE"},{category:"HARM_CATEGORY_DANGEROUS_CONTENT",threshold:"BLOCK_NONE"}]};const headers={"Content-type":"application/json"};return{url,body,headers,userMsg};};const genGemini2=_ref14=>{let{url,key,systemPrompt,userPrompt,model,temperature,maxTokens,hisMsgs=[]}=_ref14;const userMsg={role:"user",content:userPrompt};const body={model,messages:[{role:"system",content:systemPrompt},...hisMsgs,userMsg],temperature,max_tokens:maxTokens};const headers={"Content-type":"application/json",Authorization:"Bearer ".concat(key)};return{url,body,headers,userMsg};};const genClaude=_ref15=>{let{url,key,systemPrompt,userPrompt,model,temperature,maxTokens,hisMsgs=[]}=_ref15;const userMsg={role:"user",content:userPrompt};const body={model,system:systemPrompt,messages:[...hisMsgs,userMsg],temperature,max_tokens:maxTokens};const headers={"Content-type":"application/json","anthropic-version":"2023-06-01","anthropic-dangerous-direct-browser-access":"true","x-api-key":key};return{url,body,headers,userMsg};};const genOpenRouter=_ref16=>{let{url,key,systemPrompt,userPrompt,model,temperature,maxTokens,hisMsgs=[]}=_ref16;const userMsg={role:"user",content:userPrompt};const body={model,messages:[{role:"system",content:systemPrompt},...hisMsgs,userMsg],temperature,max_tokens:maxTokens};const headers={"Content-type":"application/json",Authorization:"Bearer ".concat(key)};return{url,body,headers,userMsg};};const genOllama=_ref17=>{let{think,url,key,systemPrompt,userPrompt,model,temperature,maxTokens,hisMsgs=[]}=_ref17;const userMsg={role:"user",content:userPrompt};const body={model,messages:[{role:"system",content:systemPrompt},...hisMsgs,userMsg],temperature,max_tokens:maxTokens,think,stream:false};const headers={"Content-type":"application/json"};if(key){headers.Authorization="Bearer ".concat(key);}return{url,body,headers,userMsg};};const genCloudflareAI=_ref18=>{let{texts,from,to,url,key}=_ref18;const body={text:texts.join(" "),source_lang:from,target_lang:to};const headers={"Content-type":"application/json",Authorization:"Bearer ".concat(key)};return{url,body,headers};};const genCustom=_ref19=>{let{texts,from,to,url,key}=_ref19;const body={texts,from,to};const headers={"Content-type":"application/json",Authorization:"Bearer ".concat(key)};return{url,body,headers};};const genReqFuncs={[OPT_TRANS_GOOGLE]:genGoogle,[OPT_TRANS_GOOGLE_2]:genGoogle2,[OPT_TRANS_MICROSOFT]:genMicrosoft,[OPT_TRANS_AZUREAI]:genAzureAI,[OPT_TRANS_DEEPL]:genDeepl,[OPT_TRANS_DEEPLFREE]:genDeeplFree,[OPT_TRANS_DEEPLX]:genDeeplX,[OPT_TRANS_NIUTRANS]:genNiuTrans,[OPT_TRANS_BAIDU]:genBaidu,[OPT_TRANS_TENCENT]:genTencent,[OPT_TRANS_VOLCENGINE]:genVolcengine,[OPT_TRANS_OPENAI]:genOpenAI,[OPT_TRANS_GEMINI]:genGemini,[OPT_TRANS_GEMINI_2]:genGemini2,[OPT_TRANS_CLAUDE]:genClaude,[OPT_TRANS_CLOUDFLAREAI]:genCloudflareAI,[OPT_TRANS_OLLAMA]:genOllama,[OPT_TRANS_OPENROUTER]:genOpenRouter,[OPT_TRANS_CUSTOMIZE]:genCustom};const genInit=_ref20=>{let{url="",body=null,headers={},userMsg=null,method="POST"}=_ref20;if(!url){throw new Error("genInit: url is empty");}const init={method,headers};if(method!=="GET"&&method!=="HEAD"&&body){var _body$params;let payload=JSON.stringify(body);const id=body===null||body===void 0?void 0:(_body$params=body.params)===null||_body$params===void 0?void 0:_body$params.id;if(id){payload=payload.replace('method":"',(id+3)%13===0||(id+5)%29===0?'method" : "':'method": "');}Object.assign(init,{body:payload});}return[url,init,userMsg];};/** * 构造翻译接口请求参数 * @param {*} * @returns */const genTransReq=async _ref21=>{let{reqHook,...args}=_ref21;const{apiType,apiSlug,key,systemPrompt,userPrompt,from,to,texts,docInfo,glossary,customHeader,customBody,events}=args;if(API_SPE_TYPES.mulkeys.has(apiType)){args.key=keyPick(apiSlug,key,keyMap);}if(apiType===OPT_TRANS_DEEPLX){args.url=keyPick(apiSlug,args.url,urlMap);}if(API_SPE_TYPES.ai.has(apiType)){args.systemPrompt=genSystemPrompt({systemPrompt,from,to});args.userPrompt=!!events?JSON.stringify(events):genUserPrompt({userPrompt,from,to,texts,docInfo,glossary});}const{url="",body=null,headers={},userMsg=null,method="POST"}=genReqFuncs[apiType](args);// 合并用户自定义headers和body if(customHeader!==null&&customHeader!==void 0&&customHeader.trim()){Object.assign(headers,parseJsonObj(customHeader));}if(customBody!==null&&customBody!==void 0&&customBody.trim()){Object.assign(body,parseJsonObj(customBody));}// 执行 request hook if(reqHook!==null&&reqHook!==void 0&&reqHook.trim()&&!events){try{libs_interpreter.run("exports.reqHook = ".concat(reqHook));const hookResult=await libs_interpreter.exports.reqHook(args,{url,body,headers,userMsg,method});if(hookResult&&hookResult.url){return genInit(hookResult);}}catch(err){log_kissLog("run req hook",err);}}return genInit({url,body,headers,userMsg,method});};/** * 解析翻译接口返回数据 * @param {*} res * @param {*} param3 * @returns */const parseTransRes=async(res,_ref22)=>{var _res$sentences,_res$,_res$translations,_res$result,_res$result$texts,_res$result2,_res$auto_translation,_res$choices,_res$choices$,_res$choices$0$messag,_res$choices2,_res$choices2$,_res$choices2$$messag,_res$candidates,_res$candidates$,_res$candidates$0$con,_res$candidates2,_res$candidates2$,_res$candidates2$$con,_res$candidates2$$con2,_res$candidates2$$con3,_res$content,_res$content$0$text,_res$content2,_res$content2$,_res$result3,_res$choices3,_res$choices3$,_modelMsg2;let{texts,from,to,fromLang,toLang,langMap,resHook,thinkIgnore,history,userMsg,apiType}=_ref22;// 执行 response hook if(resHook!==null&&resHook!==void 0&&resHook.trim()){try{libs_interpreter.run("exports.resHook = ".concat(resHook));const hookResult=await libs_interpreter.exports.resHook({apiType,userMsg,res,texts,from,to,fromLang,toLang,langMap});if(hookResult&&Array.isArray(hookResult.translations)){if(history&&userMsg&&hookResult.modelMsg){history.add(userMsg,hookResult.modelMsg);}return hookResult.translations;}}catch(err){log_kissLog("run res hook",err);}}let modelMsg="";// todo: 根据结果抛出实际异常信息 switch(apiType){case OPT_TRANS_GOOGLE:return[[res===null||res===void 0?void 0:(_res$sentences=res.sentences)===null||_res$sentences===void 0?void 0:_res$sentences.map(item=>item.trans).join(" "),res===null||res===void 0?void 0:res.src]];case OPT_TRANS_GOOGLE_2:return res===null||res===void 0?void 0:(_res$=res[0])===null||_res$===void 0?void 0:_res$.map((_,i)=>{var _res$2,_res$3;return[res===null||res===void 0?void 0:(_res$2=res[0])===null||_res$2===void 0?void 0:_res$2[i],res===null||res===void 0?void 0:(_res$3=res[1])===null||_res$3===void 0?void 0:_res$3[i]];});case OPT_TRANS_MICROSOFT:case OPT_TRANS_AZUREAI:return res===null||res===void 0?void 0:res.map(item=>{var _item$detectedLanguag;return[item.translations.map(item=>item.text).join(" "),(_item$detectedLanguag=item.detectedLanguage)===null||_item$detectedLanguag===void 0?void 0:_item$detectedLanguag.language];});case OPT_TRANS_DEEPL:return res===null||res===void 0?void 0:(_res$translations=res.translations)===null||_res$translations===void 0?void 0:_res$translations.map(item=>[item.text,item.detected_source_language]);case OPT_TRANS_DEEPLFREE:return[[res===null||res===void 0?void 0:(_res$result=res.result)===null||_res$result===void 0?void 0:(_res$result$texts=_res$result.texts)===null||_res$result$texts===void 0?void 0:_res$result$texts.map(item=>item.text).join(" "),res===null||res===void 0?void 0:(_res$result2=res.result)===null||_res$result2===void 0?void 0:_res$result2.lang]];case OPT_TRANS_DEEPLX:return[[res===null||res===void 0?void 0:res.data,res===null||res===void 0?void 0:res.source_lang]];case OPT_TRANS_NIUTRANS:const json=JSON.parse(res);if(json.error_msg){throw new Error(json.error_msg);}return[[json.tgt_text,json.from]];case OPT_TRANS_BAIDU:if(res.type===1){return[[Object.keys(JSON.parse(res.result).content[0].mean[0].cont)[0],res.from]];}else if(res.type===2){return[[res.data.map(item=>item.dst).join(" "),res.from]];}break;case OPT_TRANS_TENCENT:return res===null||res===void 0?void 0:(_res$auto_translation=res.auto_translation)===null||_res$auto_translation===void 0?void 0:_res$auto_translation.map(text=>[text,res===null||res===void 0?void 0:res.src_lang]);case OPT_TRANS_VOLCENGINE:return[[res===null||res===void 0?void 0:res.translation,res===null||res===void 0?void 0:res.detected_language]];case OPT_TRANS_OPENAI:case OPT_TRANS_GEMINI_2:case OPT_TRANS_OPENROUTER:modelMsg=res===null||res===void 0?void 0:(_res$choices=res.choices)===null||_res$choices===void 0?void 0:(_res$choices$=_res$choices[0])===null||_res$choices$===void 0?void 0:_res$choices$.message;if(history&&userMsg&&modelMsg){history.add(userMsg,{role:modelMsg.role,content:modelMsg.content});}return parseAIRes((_res$choices$0$messag=res===null||res===void 0?void 0:(_res$choices2=res.choices)===null||_res$choices2===void 0?void 0:(_res$choices2$=_res$choices2[0])===null||_res$choices2$===void 0?void 0:(_res$choices2$$messag=_res$choices2$.message)===null||_res$choices2$$messag===void 0?void 0:_res$choices2$$messag.content)!==null&&_res$choices$0$messag!==void 0?_res$choices$0$messag:"");case OPT_TRANS_GEMINI:modelMsg=res===null||res===void 0?void 0:(_res$candidates=res.candidates)===null||_res$candidates===void 0?void 0:(_res$candidates$=_res$candidates[0])===null||_res$candidates$===void 0?void 0:_res$candidates$.content;if(history&&userMsg&&modelMsg){history.add(userMsg,modelMsg);}return parseAIRes((_res$candidates$0$con=res===null||res===void 0?void 0:(_res$candidates2=res.candidates)===null||_res$candidates2===void 0?void 0:(_res$candidates2$=_res$candidates2[0])===null||_res$candidates2$===void 0?void 0:(_res$candidates2$$con=_res$candidates2$.content)===null||_res$candidates2$$con===void 0?void 0:(_res$candidates2$$con2=_res$candidates2$$con.parts)===null||_res$candidates2$$con2===void 0?void 0:(_res$candidates2$$con3=_res$candidates2$$con2[0])===null||_res$candidates2$$con3===void 0?void 0:_res$candidates2$$con3.text)!==null&&_res$candidates$0$con!==void 0?_res$candidates$0$con:"");case OPT_TRANS_CLAUDE:modelMsg={role:res===null||res===void 0?void 0:res.role,content:res===null||res===void 0?void 0:(_res$content=res.content)===null||_res$content===void 0?void 0:_res$content.text};if(history&&userMsg&&modelMsg){history.add(userMsg,{role:modelMsg.role,content:modelMsg.content});}return parseAIRes((_res$content$0$text=res===null||res===void 0?void 0:(_res$content2=res.content)===null||_res$content2===void 0?void 0:(_res$content2$=_res$content2[0])===null||_res$content2$===void 0?void 0:_res$content2$.text)!==null&&_res$content$0$text!==void 0?_res$content$0$text:"");case OPT_TRANS_CLOUDFLAREAI:return[[res===null||res===void 0?void 0:(_res$result3=res.result)===null||_res$result3===void 0?void 0:_res$result3.translated_text]];case OPT_TRANS_OLLAMA:modelMsg=res===null||res===void 0?void 0:(_res$choices3=res.choices)===null||_res$choices3===void 0?void 0:(_res$choices3$=_res$choices3[0])===null||_res$choices3$===void 0?void 0:_res$choices3$.message;const deepModels=thinkIgnore.split(",").filter(model=>model===null||model===void 0?void 0:model.trim());if(deepModels.some(model=>{var _res$model;return res===null||res===void 0?void 0:(_res$model=res.model)===null||_res$model===void 0?void 0:_res$model.startsWith(model);})){var _modelMsg;(_modelMsg=modelMsg)===null||_modelMsg===void 0?void 0:_modelMsg.content.replace(/[\s\S]*<\/think>/i,"");}if(history&&userMsg&&modelMsg){history.add(userMsg,{role:modelMsg.role,content:modelMsg.content});}return parseAIRes((_modelMsg2=modelMsg)===null||_modelMsg2===void 0?void 0:_modelMsg2.content);case OPT_TRANS_CUSTOMIZE:return res===null||res===void 0?void 0:res.map(item=>[item.text,item.src]);default:}throw new Error("parse translate result: apiType not matched",apiType);};/** * 发送翻译请求并解析 * @param {*} param0 * @returns */const handleTranslate=async function(){let texts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];let{from,to,fromLang,toLang,langMap,docInfo,glossary,apiSetting,usePool}=arguments.length>1?arguments[1]:undefined;let history=null;let hisMsgs=[];const{apiType,apiSlug,contextSize,useContext,fetchInterval,fetchLimit,httpTimeout}=apiSetting;if(useContext&&API_SPE_TYPES.context.has(apiType)){history=getMsgHistory(apiSlug,contextSize);hisMsgs=history.getAll();}let token="";if(apiType===OPT_TRANS_MICROSOFT){token=await msAuth();if(!token){throw new Error("got msauth error");}}const[input,init,userMsg]=await genTransReq({texts,from,to,fromLang,toLang,langMap,docInfo,glossary,hisMsgs,token,...apiSetting});const response=await fetch_fetchData(input,init,{useCache:false,usePool,fetchInterval,fetchLimit,httpTimeout});if(!response){throw new Error("tranlate got empty response");}const result=await parseTransRes(response,{texts,from,to,fromLang,toLang,langMap,history,userMsg,...apiSetting});if(!Array.isArray(result)){throw new Error("tranlate got an unexpected result");}return result;};/** * Microsoft语言识别聚合及解析 * @param {*} texts * @returns */const handleMicrosoftLangdetect=async function(){let texts=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];const token=await msAuth();const input="https://api-edge.cognitive.microsofttranslator.com/detect?api-version=3.0";const init={headers:{"Content-type":"application/json",Authorization:"Bearer ".concat(token)},method:"POST",body:JSON.stringify(texts.map(text=>({Text:text})))};const res=await fetch_fetchData(input,init,{useCache:false});if(Array.isArray(res)){return res.map(r=>r.language);}return[];};/** * 字幕翻译 * @param {*} param0 * @returns */const handleSubtitle=async _ref23=>{var _res$choices$0$messag2,_res$choices4,_res$choices4$,_res$choices4$$messag,_res$candidates$0$con2,_res$candidates3,_res$candidates3$,_res$candidates3$$con,_res$candidates3$$con2,_res$candidates3$$con3,_res$content$0$text2,_res$content3,_res$content3$;let{events,from,to,apiSetting}=_ref23;const{apiType,fetchInterval,fetchLimit,httpTimeout}=apiSetting;const[input,init]=await genTransReq({...apiSetting,events,from,to,systemPrompt:apiSetting.subtitlePrompt});const res=await fetch_fetchData(input,init,{useCache:false,usePool:true,fetchInterval,fetchLimit,httpTimeout});if(!res){log_kissLog("subtitle got empty response");return[];}switch(apiType){case OPT_TRANS_OPENAI:case OPT_TRANS_GEMINI_2:case OPT_TRANS_OPENROUTER:case OPT_TRANS_OLLAMA:return parseSTRes((_res$choices$0$messag2=res===null||res===void 0?void 0:(_res$choices4=res.choices)===null||_res$choices4===void 0?void 0:(_res$choices4$=_res$choices4[0])===null||_res$choices4$===void 0?void 0:(_res$choices4$$messag=_res$choices4$.message)===null||_res$choices4$$messag===void 0?void 0:_res$choices4$$messag.content)!==null&&_res$choices$0$messag2!==void 0?_res$choices$0$messag2:"");case OPT_TRANS_GEMINI:return parseSTRes((_res$candidates$0$con2=res===null||res===void 0?void 0:(_res$candidates3=res.candidates)===null||_res$candidates3===void 0?void 0:(_res$candidates3$=_res$candidates3[0])===null||_res$candidates3$===void 0?void 0:(_res$candidates3$$con=_res$candidates3$.content)===null||_res$candidates3$$con===void 0?void 0:(_res$candidates3$$con2=_res$candidates3$$con.parts)===null||_res$candidates3$$con2===void 0?void 0:(_res$candidates3$$con3=_res$candidates3$$con2[0])===null||_res$candidates3$$con3===void 0?void 0:_res$candidates3$$con3.text)!==null&&_res$candidates$0$con2!==void 0?_res$candidates$0$con2:"");case OPT_TRANS_CLAUDE:return parseSTRes((_res$content$0$text2=res===null||res===void 0?void 0:(_res$content3=res.content)===null||_res$content3===void 0?void 0:(_res$content3$=_res$content3[0])===null||_res$content3$===void 0?void 0:_res$content3$.text)!==null&&_res$content$0$text2!==void 0?_res$content$0$text2:"");case OPT_TRANS_CUSTOMIZE:return res;default:}return[];}; ;// CONCATENATED MODULE: ./src/libs/batchQueue.js /** * 批处理队列 * @param {*} args * @param {*} param1 * @returns */const BatchQueue=function(taskFn){let{batchInterval=DEFAULT_BATCH_INTERVAL,batchSize=DEFAULT_BATCH_SIZE,batchLength=DEFAULT_BATCH_LENGTH}=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};const queue=[];let isProcessing=false;let timer=null;const sendBatchRequest=async(payloads,batchArgs)=>{return taskFn(payloads,batchArgs);};const processQueue=async()=>{if(timer){clearTimeout(timer);timer=null;}if(queue.length===0||isProcessing){return;}isProcessing=true;let tasksToProcess=[];let currentBatchLength=0;let endIndex=0;for(const task of queue){var _task$payload;const textLength=((_task$payload=task.payload)===null||_task$payload===void 0?void 0:_task$payload.length)||0;if(endIndex>=batchSize||currentBatchLength+textLength>batchLength&&endIndex>0){break;}currentBatchLength+=textLength;endIndex++;}if(endIndex>0){tasksToProcess=queue.splice(0,endIndex);}if(tasksToProcess.length===0){isProcessing=false;return;}try{const payloads=tasksToProcess.map(item=>item.payload);const batchArgs=tasksToProcess[0].args;const responses=await sendBatchRequest(payloads,batchArgs);if(!Array.isArray(responses)){throw new Error("responses format error");}tasksToProcess.forEach((taskItem,index)=>{const response=responses[index];if(response){taskItem.resolve(response);}else{taskItem.reject(new Error("No response for item at index ".concat(index)));}});}catch(error){tasksToProcess.forEach(taskItem=>taskItem.reject(error));}finally{isProcessing=false;if(queue.length>0){if(queue.length>=batchSize){setTimeout(processQueue,0);}else{scheduleProcessing();}}}};const scheduleProcessing=()=>{if(!isProcessing&&!timer&&queue.length>0){timer=setTimeout(processQueue,batchInterval);}};const addTask=(data,args)=>{return new Promise((resolve,reject)=>{const payload=data;queue.push({payload,resolve,reject,args});if(queue.length>=batchSize){processQueue();}else{scheduleProcessing();}});};const destroy=()=>{if(timer){clearTimeout(timer);timer=null;}queue.forEach(task=>task.reject(new Error("Queue instance was destroyed.")));queue.length=0;};return{addTask,destroy};};// 实例字典 const queueMap=new Map();/** * 获取批处理实例 */const getBatchQueue=(key,taskFn,options)=>{if(queueMap.has(key)){return queueMap.get(key);}const queue=BatchQueue(taskFn,options);queueMap.set(key,queue);return queue;};/** * 清除所有任务 */const clearAllBatchQueue=()=>{for(const queue of queueMap.values()){queue.destroy();}}; ;// CONCATENATED MODULE: ./src/libs/builtinAI.js /** * Chrome 浏览器内置翻译 */var _translatorMap=/*#__PURE__*/_classPrivateFieldKey("translatorMap");var _detectorPromise=/*#__PURE__*/_classPrivateFieldKey("detectorPromise");var _defaultProgressHandler=/*#__PURE__*/_classPrivateFieldKey("defaultProgressHandler");var _getDetectorPromise=/*#__PURE__*/_classPrivateFieldKey("getDetectorPromise");var _createTranslator=/*#__PURE__*/_classPrivateFieldKey("createTranslator");class ChromeTranslator{constructor(){let options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};Object.defineProperty(this,_createTranslator,{value:_createTranslator2});Object.defineProperty(this,_getDetectorPromise,{value:_getDetectorPromise2});Object.defineProperty(this,_defaultProgressHandler,{value:_defaultProgressHandler2});Object.defineProperty(this,_translatorMap,{writable:true,value:new Map()});Object.defineProperty(this,_detectorPromise,{writable:true,value:null});this.onProgress=options.onProgress||_classPrivateFieldBase(this,_defaultProgressHandler)[_defaultProgressHandler];}_monitorProgress(monitorable,type){monitorable.addEventListener("downloadprogress",e=>{const progress=e.total>0?Math.round(e.loaded/e.total*100):0;this.onProgress(type,progress);});}async detectLanguage(text){let confidenceThreshold=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0.4;if(!text){return["","Input text cannot be empty."];}try{const detector=await _classPrivateFieldBase(this,_getDetectorPromise)[_getDetectorPromise]();const results=await detector.detect(text);if(!results||results.length===0){return["","No language could be detected."];}const{detectedLanguage,confidence}=results[0];if(confidence2&&arguments[2]!==undefined?arguments[2]:"auto";if(!text||!targetLanguage||typeof text!=="string"){return["",sourceLanguage,"Input text cannot be empty."];}try{let finalSourceLanguage=sourceLanguage;if(sourceLanguage==="auto"){const[detectedLanguage,detectionError]=await this.detectLanguage(text);if(detectionError||!detectedLanguage){const reason=detectionError||"Unable to determine source language.";return["",finalSourceLanguage,"Automatic detection of source language failed: ".concat(reason)];}finalSourceLanguage=detectedLanguage;}if(finalSourceLanguage===targetLanguage){return["",finalSourceLanguage,"Same lang"];}const translator=await _classPrivateFieldBase(this,_createTranslator)[_createTranslator](finalSourceLanguage,targetLanguage);const translatedText=await translator.translate(text);return[translatedText,finalSourceLanguage,""];}catch(error){log_kissLog("translateText",error,"(".concat(text,")"));if(error&&error.message&&error.message.includes("Other generic failures occurred")){logger.info("Generic failure detected, resetting translator cache.");_classPrivateFieldBase(this,_translatorMap)[_translatorMap].clear();}return["",sourceLanguage,error.message];}}}function _defaultProgressHandler2(type,progress){log_kissLog("Downloading ".concat(type," model: ").concat(progress,"%"));}function _getDetectorPromise2(){if(!_classPrivateFieldBase(this,_detectorPromise)[_detectorPromise]){_classPrivateFieldBase(this,_detectorPromise)[_detectorPromise]=(async()=>{try{const availability=await LanguageDetector.availability();if(availability==="unavailable"){throw new Error("LanguageDetector unavailable");}return await LanguageDetector.create({monitor:m=>this._monitorProgress(m,"detector")});}catch(error){_classPrivateFieldBase(this,_detectorPromise)[_detectorPromise]=null;throw error;}})();}return _classPrivateFieldBase(this,_detectorPromise)[_detectorPromise];}function _createTranslator2(sourceLanguage,targetLanguage){const key="".concat(sourceLanguage,"_").concat(targetLanguage);if(_classPrivateFieldBase(this,_translatorMap)[_translatorMap].has(key)){return _classPrivateFieldBase(this,_translatorMap)[_translatorMap].get(key);}const translatorPromise=(async()=>{try{const avail=await Translator.availability({sourceLanguage,targetLanguage});if(avail==="unavailable"){throw new Error("Translator ".concat(sourceLanguage,"_").concat(targetLanguage," unavailable"));}const translator=await Translator.create({sourceLanguage,targetLanguage,monitor:m=>this._monitorProgress(m,"translator (".concat(key,")"))});_classPrivateFieldBase(this,_translatorMap)[_translatorMap].set(key,translator);return translator;}catch(error){_classPrivateFieldBase(this,_translatorMap)[_translatorMap].delete(key);throw error;}})();_classPrivateFieldBase(this,_translatorMap)[_translatorMap].set(key,translatorPromise);return translatorPromise;}const chromeTranslator=new ChromeTranslator();const chromeDetect=args=>chromeTranslator.detectLanguage(args.text);const chromeTranslate=args=>chromeTranslator.translateText(args.text,args.to,args.from); ;// CONCATENATED MODULE: ./src/apis/index.js /** * 同步数据 * @param {*} url * @param {*} key * @param {*} data * @returns */const apiSyncData=async(url,key,data)=>fetch_fetchData(url,{headers:{"Content-type":"application/json",Authorization:"Bearer ".concat(await utils_sha256(key,KV_SALT_SYNC))},method:"POST",body:JSON.stringify(data)});/** * 下载数据 * @param {*} url * @returns */const apiFetch=url=>fetch_fetchData(url);/** * Microsoft token * @returns */const apiMsAuth=async()=>fetch_fetchData("https://edge.microsoft.com/translate/auth");/** * Google语言识别 * @param {*} text * @returns */const apiGoogleLangdetect=async text=>{const params={client:"gtx",dt:"t",dj:1,ie:"UTF-8",sl:"auto",tl:"zh-CN",q:text};const input="https://translate.googleapis.com/translate_a/single?".concat(query_string.stringify(params));const init={headers:{"Content-type":"application/json"}};const res=await fetch_fetchData(input,init,{useCache:true});if(res!==null&&res!==void 0&&res.src){await putHttpCachePolyfill(input,init,res);return res.src;}return"";};/** * Microsoft语言识别 * @param {*} text * @returns */const apiMicrosoftLangdetect=async text=>{const cacheOpts={text,detector:OPT_TRANS_MICROSOFT};const cacheInput="".concat(URL_CACHE_DELANG,"?").concat(query_string.stringify(cacheOpts));const cache=await getHttpCachePolyfill(cacheInput);if(cache){return cache;}const key="".concat(URL_CACHE_DELANG,"_").concat(OPT_TRANS_MICROSOFT);const queue=getBatchQueue(key,handleMicrosoftLangdetect,{batchInterval:500,batchSize:20,batchLength:100000});const lang=await queue.addTask(text);if(lang){putHttpCachePolyfill(cacheInput,null,lang);return lang;}return"";};/** * Microsoft词典 * @param {*} text * @returns */const apiMicrosoftDict=async text=>{var _doc$querySelector;const cacheOpts={text};const cacheInput="".concat(URL_CACHE_BINGDICT,"?").concat(query_string.stringify(cacheOpts));const cache=await getHttpCachePolyfill(cacheInput);if(cache){return cache;}const host="https://www.bing.com";const url="".concat(host,"/dict/search?q=").concat(text,"&FORM=BDVSP6&cc=cn");const str=await fetch_fetchData(url,{credentials:"include"},{useCache:false});if(!str){return null;}const parser=new DOMParser();const doc=parser.parseFromString(str,"text/html");const word=(_doc$querySelector=doc.querySelector("#headword > h1"))===null||_doc$querySelector===void 0?void 0:_doc$querySelector.textContent.trim();if(!word){return null;}const trs=[];doc.querySelectorAll("div.qdef > ul > li").forEach($li=>{var _$li$querySelector,_$li$querySelector$te,_$li$querySelector2,_$li$querySelector2$t;const pos=(_$li$querySelector=$li.querySelector(".pos"))===null||_$li$querySelector===void 0?void 0:(_$li$querySelector$te=_$li$querySelector.textContent)===null||_$li$querySelector$te===void 0?void 0:_$li$querySelector$te.trim();const def=(_$li$querySelector2=$li.querySelector(".def"))===null||_$li$querySelector2===void 0?void 0:(_$li$querySelector2$t=_$li$querySelector2.textContent)===null||_$li$querySelector2$t===void 0?void 0:_$li$querySelector2$t.trim();trs.push({pos,def});});const aus=[];const $audioUK=doc.querySelector("#bigaud_uk");const $audioUS=doc.querySelector("#bigaud_us");if($audioUK){var _$audioUK$dataset,_$audioUK$parentEleme,_$phoneticUK$textCont;const audioUK=host+($audioUK===null||$audioUK===void 0?void 0:(_$audioUK$dataset=$audioUK.dataset)===null||_$audioUK$dataset===void 0?void 0:_$audioUK$dataset.mp3link);const $phoneticUK=(_$audioUK$parentEleme=$audioUK.parentElement)===null||_$audioUK$parentEleme===void 0?void 0:_$audioUK$parentEleme.previousElementSibling;const phoneticUK=$phoneticUK===null||$phoneticUK===void 0?void 0:(_$phoneticUK$textCont=$phoneticUK.textContent)===null||_$phoneticUK$textCont===void 0?void 0:_$phoneticUK$textCont.trim();aus.push({key:"UK",audio:audioUK,phonetic:phoneticUK});}if($audioUS){var _$audioUS$dataset,_$audioUS$parentEleme,_$phoneticUS$textCont;const audioUS=host+($audioUS===null||$audioUS===void 0?void 0:(_$audioUS$dataset=$audioUS.dataset)===null||_$audioUS$dataset===void 0?void 0:_$audioUS$dataset.mp3link);const $phoneticUS=(_$audioUS$parentEleme=$audioUS.parentElement)===null||_$audioUS$parentEleme===void 0?void 0:_$audioUS$parentEleme.previousElementSibling;const phoneticUS=$phoneticUS===null||$phoneticUS===void 0?void 0:(_$phoneticUS$textCont=$phoneticUS.textContent)===null||_$phoneticUS$textCont===void 0?void 0:_$phoneticUS$textCont.trim();aus.push({key:"US",audio:audioUS,phonetic:phoneticUS});}const res={word,trs,aus};putHttpCachePolyfill(cacheInput,null,res);return res;};/** * 百度语言识别 * @param {*} text * @returns */const apiBaiduLangdetect=async text=>{const input="https://fanyi.baidu.com/langdetect";const init={headers:{"Content-type":"application/json"},method:"POST",body:JSON.stringify({query:text})};const res=await fetch_fetchData(input,init,{useCache:true});if((res===null||res===void 0?void 0:res.error)===0){await putHttpCachePolyfill(input,init,res);return res.lan;}return"";};/** * 百度翻译建议 * @param {*} text * @returns */const apiBaiduSuggest=async text=>{const input="https://fanyi.baidu.com/sug";const init={headers:{"Content-type":"application/json"},method:"POST",body:JSON.stringify({kw:text})};const res=await fetch_fetchData(input,init,{useCache:true});if((res===null||res===void 0?void 0:res.errno)===0){await putHttpCachePolyfill(input,init,res);return res.data;}return[];};/** * 有道翻译建议 * @param {*} text * @returns */const apiYoudaoSuggest=async text=>{var _res$result;const params={num:5,ver:3.0,doctype:"json",cache:false,le:"en",q:text};const input="https://dict.youdao.com/suggest?".concat(query_string.stringify(params));const init={headers:{accept:"application/json, text/plain, */*","accept-language":"en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ja;q=0.6","content-type":"application/x-www-form-urlencoded"},method:"GET"};const res=await fetch_fetchData(input,init,{useCache:true});if((res===null||res===void 0?void 0:(_res$result=res.result)===null||_res$result===void 0?void 0:_res$result.code)===200){await putHttpCachePolyfill(input,init,res);return res.data.entries;}return[];};/** * 有道词典 * @param {*} text * @returns */const apiYoudaoDict=async text=>{const params={doctype:"json",jsonversion:4};const input="https://dict.youdao.com/jsonapi_s?".concat(query_string.stringify(params));const body=query_string.stringify({q:text,le:"en",t:3,client:"web",// sign: "", keyfrom:"webdict"});const init={headers:{accept:"application/json, text/plain, */*","accept-language":"en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,ja;q=0.6","content-type":"application/x-www-form-urlencoded"},method:"POST",body};const res=await fetch_fetchData(input,init,{useCache:true});if(res){await putHttpCachePolyfill(input,init,res);return res;}return null;};/** * 百度语音 * @param {*} text * @param {*} lan * @param {*} spd * @returns */const apis_apiBaiduTTS=function(text){let lan=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"uk";let spd=arguments.length>2&&arguments[2]!==undefined?arguments[2]:3;const input="https://fanyi.baidu.com/gettts?".concat(queryString.stringify({lan,text,spd}));return fetchData(input);};/** * 腾讯语言识别 * @param {*} text * @returns */const apiTencentLangdetect=async text=>{const input="https://transmart.qq.com/api/imt";const body=JSON.stringify({header:{fn:"text_analysis",client_key:"browser-chrome-110.0.0-Mac OS-df4bd4c5-a65d-44b2-a40f-42f34f3535f2-1677486696487"},text});const init={headers:{"Content-type":"application/json","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36",referer:"https://transmart.qq.com/zh-CN/index"},method:"POST",body};const res=await fetch_fetchData(input,init,{useCache:true});if(res!==null&&res!==void 0&&res.language){await putHttpCachePolyfill(input,init,res);return res.language;}return"";};/** * 浏览器内置AI语言识别 * @param {*} text * @returns */const apiBuiltinAIDetect=async text=>{if(!isBuiltinAIAvailable){return"";}const[lang,error]=await fnPolyfill({fn:chromeDetect,msg:MSG_BUILTINAI_DETECT,text});if(!error){return lang;}return"";};/** * 浏览器内置AI翻译 * @param {*} param0 * @returns */const apiBuiltinAITranslate=async _ref=>{let{text,from,to,apiSetting}=_ref;if(!isBuiltinAIAvailable){return["",true];}const{fetchInterval,fetchLimit,httpTimeout}=apiSetting;const fetchPool=getFetchPool(fetchInterval,fetchLimit);const result=await withTimeout(fetchPool.push(fnPolyfill,{fn:chromeTranslate,msg:MSG_BUILTINAI_TRANSLATE,text,from,to}),httpTimeout);if(!result){throw new Error("apiBuiltinAITranslate got null reault");}const[trText,srLang,error]=result;if(error){throw new Error("apiBuiltinAITranslate got error",error);}return[trText,srLang];};/** * 统一翻译接口 * @param {*} param0 * @returns */const apiTranslate=async _ref2=>{let{text,fromLang="auto",toLang,apiSetting=DEFAULT_API_SETTING,docInfo={},glossary={},useCache=true,usePool=true}=_ref2;if(!text){return["",false];}const{apiType,apiSlug,useBatchFetch}=apiSetting;const langMap=OPT_LANGS_TO_SPEC[apiType]||OPT_LANGS_SPEC_DEFAULT;const from=langMap.get(fromLang);const to=langMap.get(toLang);if(!to){log_kissLog("target lang: ".concat(toLang," not support"));return["",false];}// todo: 优化缓存失效因素 const[v1,v2]="2.0.1".split(".");const cacheOpts={apiSlug,text,fromLang,toLang,version:[v1,v2].join(".")};const cacheInput="".concat(URL_CACHE_TRAN,"?").concat(query_string.stringify(cacheOpts));// 查询缓存数据 if(useCache){const cache=await getHttpCachePolyfill(cacheInput);if(cache!==null&&cache!==void 0&&cache.trText){return[cache.trText,cache.isSame];}}// 请求接口数据 let tranlation=[];if(apiType===OPT_TRANS_BUILTINAI){tranlation=await apiBuiltinAITranslate({text,from,to,apiSetting});}else if(useBatchFetch&&API_SPE_TYPES.batch.has(apiType)){const{apiSlug,batchInterval,batchSize,batchLength}=apiSetting;const key="".concat(apiSlug,"_").concat(fromLang,"_").concat(toLang);const queue=getBatchQueue(key,handleTranslate,{batchInterval,batchSize,batchLength});tranlation=await queue.addTask(text,{from,to,fromLang,toLang,langMap,docInfo,glossary,apiSetting,usePool});}else{[tranlation]=await handleTranslate([text],{from,to,fromLang,toLang,langMap,docInfo,glossary,apiSetting,usePool});}let trText="";let srLang="";if(Array.isArray(tranlation)){[trText,srLang=""]=tranlation;}else if(typeof tranlation==="string"){trText=tranlation;}if(!trText){throw new Error("tanslate api got empty trtext");}const isSame=fromLang==="auto"&&srLang===to;// 插入缓存 if(useCache){putHttpCachePolyfill(cacheInput,null,{trText,isSame,srLang});}return[trText,isSame];};// 字幕处理/翻译 const apiSubtitle=async _ref3=>{let{videoId,chunkSign,fromLang="auto",toLang,events=[],apiSetting}=_ref3;const cacheOpts={apiSlug:apiSetting.apiSlug,videoId,chunkSign,fromLang,toLang};const cacheInput="".concat(URL_CACHE_SUBTITLE,"?").concat(query_string.stringify(cacheOpts));const cache=await getHttpCachePolyfill(cacheInput);if(cache){return cache;}const subtitles=await handleSubtitle({events,from:fromLang,to:toLang,apiSetting});if(subtitles!==null&&subtitles!==void 0&&subtitles.length){putHttpCachePolyfill(cacheInput,null,subtitles);return subtitles;}return[];}; ;// CONCATENATED MODULE: ./node_modules/.pnpm/webdav@5.3.0/node_modules/webdav/dist/web/index.js /*! For license information please see index.js.LICENSE.txt */ var t = { 584: t => { function e(t, e, o) { t instanceof RegExp && (t = r(t, o)), e instanceof RegExp && (e = r(e, o)); var i = n(t, e, o); return i && { start: i[0], end: i[1], pre: o.slice(0, i[0]), body: o.slice(i[0] + t.length, i[1]), post: o.slice(i[1] + e.length) }; } function r(t, e) { var r = e.match(t); return r ? r[0] : null; } function n(t, e, r) { var n, o, i, a, s, u = r.indexOf(t), c = r.indexOf(e, u + 1), l = u; if (u >= 0 && c > 0) { for (n = [], i = r.length; l >= 0 && !s;) l == u ? (n.push(l), u = r.indexOf(t, l + 1)) : 1 == n.length ? s = [n.pop(), c] : ((o = n.pop()) < i && (i = o, a = c), c = r.indexOf(e, l + 1)), l = u < c && u >= 0 ? u : c; n.length && (s = [i, a]); } return s; } t.exports = e, e.range = n; }, 146: function (t, e, r) { var n; function o(t) { return o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, o(t); } t = r.nmd(t), function (i) { var a = "object" == o(e) && e, s = "object" == o(t) && t && t.exports == a && t, u = "object" == ("undefined" == typeof global ? "undefined" : o(global)) && global; u.global !== u && u.window !== u || (i = u); var c = function (t) { this.message = t; }; (c.prototype = new Error()).name = "InvalidCharacterError"; var l = function (t) { throw new c(t); }, f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", h = /[\t\n\f\r ]/g, p = { encode: function (t) { t = String(t), /[^\0-\xFF]/.test(t) && l("The string to be encoded contains characters outside of the Latin1 range."); for (var e, r, n, o, i = t.length % 3, a = "", s = -1, u = t.length - i; ++s < u;) e = t.charCodeAt(s) << 16, r = t.charCodeAt(++s) << 8, n = t.charCodeAt(++s), a += f.charAt((o = e + r + n) >> 18 & 63) + f.charAt(o >> 12 & 63) + f.charAt(o >> 6 & 63) + f.charAt(63 & o); return 2 == i ? (e = t.charCodeAt(s) << 8, r = t.charCodeAt(++s), a += f.charAt((o = e + r) >> 10) + f.charAt(o >> 4 & 63) + f.charAt(o << 2 & 63) + "=") : 1 == i && (o = t.charCodeAt(s), a += f.charAt(o >> 2) + f.charAt(o << 4 & 63) + "=="), a; }, decode: function (t) { var e = (t = String(t).replace(h, "")).length; e % 4 == 0 && (e = (t = t.replace(/==?$/, "")).length), (e % 4 == 1 || /[^+a-zA-Z0-9/]/.test(t)) && l("Invalid character: the string to be decoded is not correctly encoded."); for (var r, n, o = 0, i = "", a = -1; ++a < e;) n = f.indexOf(t.charAt(a)), r = o % 4 ? 64 * r + n : n, o++ % 4 && (i += String.fromCharCode(255 & r >> (-2 * o & 6))); return i; }, version: "1.0.0" }; if ("object" == o(r.amdO) && r.amdO) void 0 === (n = function () { return p; }.call(e, r, e, t)) || (t.exports = n);else if (a && !a.nodeType) { if (s) s.exports = p;else for (var d in p) p.hasOwnProperty(d) && (a[d] = p[d]); } else i.base64 = p; }(this); }, 918: (t, e) => { e.k = function (t) { if (!t) return 0; for (var e = (t = t.toString()).length, r = t.length; r--;) { var n = t.charCodeAt(r); 56320 <= n && n <= 57343 && r--, 127 < n && n <= 2047 ? e++ : 2047 < n && n <= 65535 && (e += 2); } return e; }; }, 106: t => { var e = { utf8: { stringToBytes: function (t) { return e.bin.stringToBytes(unescape(encodeURIComponent(t))); }, bytesToString: function (t) { return decodeURIComponent(escape(e.bin.bytesToString(t))); } }, bin: { stringToBytes: function (t) { for (var e = [], r = 0; r < t.length; r++) e.push(255 & t.charCodeAt(r)); return e; }, bytesToString: function (t) { for (var e = [], r = 0; r < t.length; r++) e.push(String.fromCharCode(t[r])); return e.join(""); } } }; t.exports = e; }, 718: t => { var e, r; e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", r = { rotl: function (t, e) { return t << e | t >>> 32 - e; }, rotr: function (t, e) { return t << 32 - e | t >>> e; }, endian: function (t) { if (t.constructor == Number) return 16711935 & r.rotl(t, 8) | 4278255360 & r.rotl(t, 24); for (var e = 0; e < t.length; e++) t[e] = r.endian(t[e]); return t; }, randomBytes: function (t) { for (var e = []; t > 0; t--) e.push(Math.floor(256 * Math.random())); return e; }, bytesToWords: function (t) { for (var e = [], r = 0, n = 0; r < t.length; r++, n += 8) e[n >>> 5] |= t[r] << 24 - n % 32; return e; }, wordsToBytes: function (t) { for (var e = [], r = 0; r < 32 * t.length; r += 8) e.push(t[r >>> 5] >>> 24 - r % 32 & 255); return e; }, bytesToHex: function (t) { for (var e = [], r = 0; r < t.length; r++) e.push((t[r] >>> 4).toString(16)), e.push((15 & t[r]).toString(16)); return e.join(""); }, hexToBytes: function (t) { for (var e = [], r = 0; r < t.length; r += 2) e.push(parseInt(t.substr(r, 2), 16)); return e; }, bytesToBase64: function (t) { for (var r = [], n = 0; n < t.length; n += 3) for (var o = t[n] << 16 | t[n + 1] << 8 | t[n + 2], i = 0; i < 4; i++) 8 * n + 6 * i <= 8 * t.length ? r.push(e.charAt(o >>> 6 * (3 - i) & 63)) : r.push("="); return r.join(""); }, base64ToBytes: function (t) { t = t.replace(/[^A-Z0-9+\/]/gi, ""); for (var r = [], n = 0, o = 0; n < t.length; o = ++n % 4) 0 != o && r.push((e.indexOf(t.charAt(n - 1)) & Math.pow(2, -2 * o + 8) - 1) << 2 * o | e.indexOf(t.charAt(n)) >>> 6 - 2 * o); return r; } }, t.exports = r; }, 5: (t, e, r) => { var n = r(135), o = r(586), i = r(39); t.exports = { XMLParser: o, XMLValidator: n, XMLBuilder: i }; }, 410: (t, e) => { var r = ":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD", n = "[" + r + "][" + r + "\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*", o = new RegExp("^" + n + "$"); e.isExist = function (t) { return void 0 !== t; }, e.isEmptyObject = function (t) { return 0 === Object.keys(t).length; }, e.merge = function (t, e, r) { if (e) for (var n = Object.keys(e), o = n.length, i = 0; i < o; i++) t[n[i]] = "strict" === r ? [e[n[i]]] : e[n[i]]; }, e.getValue = function (t) { return e.isExist(t) ? t : ""; }, e.isName = function (t) { return !(null == o.exec(t)); }, e.getAllMatches = function (t, e) { for (var r = [], n = e.exec(t); n;) { var o = []; o.startIndex = e.lastIndex - n[0].length; for (var i = n.length, a = 0; a < i; a++) o.push(n[a]); r.push(o), n = e.exec(t); } return r; }, e.nameRegexp = n; }, 135: (t, e, r) => { var n = r(410), o = { allowBooleanAttributes: !1, unpairedTags: [] }; function i(t) { return " " === t || "\t" === t || "\n" === t || "\r" === t; } function a(t, e) { for (var r = e; e < t.length; e++) if ("?" != t[e] && " " != t[e]) ;else { var n = t.substr(r, e - r); if (e > 5 && "xml" === n) return d("InvalidXml", "XML declaration allowed only at the start of the document.", v(t, e)); if ("?" == t[e] && ">" == t[e + 1]) { e++; break; } } return e; } function s(t, e) { if (t.length > e + 5 && "-" === t[e + 1] && "-" === t[e + 2]) { for (e += 3; e < t.length; e++) if ("-" === t[e] && "-" === t[e + 1] && ">" === t[e + 2]) { e += 2; break; } } else if (t.length > e + 8 && "D" === t[e + 1] && "O" === t[e + 2] && "C" === t[e + 3] && "T" === t[e + 4] && "Y" === t[e + 5] && "P" === t[e + 6] && "E" === t[e + 7]) { var r = 1; for (e += 8; e < t.length; e++) if ("<" === t[e]) r++;else if (">" === t[e] && 0 == --r) break; } else if (t.length > e + 9 && "[" === t[e + 1] && "C" === t[e + 2] && "D" === t[e + 3] && "A" === t[e + 4] && "T" === t[e + 5] && "A" === t[e + 6] && "[" === t[e + 7]) for (e += 8; e < t.length; e++) if ("]" === t[e] && "]" === t[e + 1] && ">" === t[e + 2]) { e += 2; break; } return e; } e.validate = function (t, e) { e = Object.assign({}, o, e); var r, u = [], c = !1, f = !1; "\ufeff" === t[0] && (t = t.substr(1)); for (var g = 0; g < t.length; g++) if ("<" === t[g] && "?" === t[g + 1]) { if ((g = a(t, g += 2)).err) return g; } else { if ("<" !== t[g]) { if (i(t[g])) continue; return d("InvalidChar", "char '" + t[g] + "' is not expected.", v(t, g)); } var y = g; if ("!" === t[++g]) { g = s(t, g); continue; } var m = !1; "/" === t[g] && (m = !0, g++); for (var b = ""; g < t.length && ">" !== t[g] && " " !== t[g] && "\t" !== t[g] && "\n" !== t[g] && "\r" !== t[g]; g++) b += t[g]; if ("/" === (b = b.trim())[b.length - 1] && (b = b.substring(0, b.length - 1), g--), r = b, !n.isName(r)) return d("InvalidTag", 0 === b.trim().length ? "Invalid space after '<'." : "Tag '" + b + "' is an invalid name.", v(t, g)); var w = l(t, g); if (!1 === w) return d("InvalidAttr", "Attributes for '" + b + "' have open quote.", v(t, g)); var x = w.value; if (g = w.index, "/" === x[x.length - 1]) { var O = g - x.length, A = h(x = x.substring(0, x.length - 1), e); if (!0 !== A) return d(A.err.code, A.err.msg, v(t, O + A.err.line)); c = !0; } else if (m) { if (!w.tagClosed) return d("InvalidTag", "Closing tag '" + b + "' doesn't have proper closing.", v(t, g)); if (x.trim().length > 0) return d("InvalidTag", "Closing tag '" + b + "' can't have attributes or invalid starting.", v(t, y)); var j = u.pop(); if (b !== j.tagName) { var P = v(t, j.tagStartPos); return d("InvalidTag", "Expected closing tag '" + j.tagName + "' (opened in line " + P.line + ", col " + P.col + ") instead of closing tag '" + b + "'.", v(t, y)); } 0 == u.length && (f = !0); } else { var S = h(x, e); if (!0 !== S) return d(S.err.code, S.err.msg, v(t, g - x.length + S.err.line)); if (!0 === f) return d("InvalidXml", "Multiple possible root nodes found.", v(t, g)); -1 !== e.unpairedTags.indexOf(b) || u.push({ tagName: b, tagStartPos: y }), c = !0; } for (g++; g < t.length; g++) if ("<" === t[g]) { if ("!" === t[g + 1]) { g = s(t, ++g); continue; } if ("?" !== t[g + 1]) break; if ((g = a(t, ++g)).err) return g; } else if ("&" === t[g]) { var E = p(t, g); if (-1 == E) return d("InvalidChar", "char '&' is not expected.", v(t, g)); g = E; } else if (!0 === f && !i(t[g])) return d("InvalidXml", "Extra text at the end", v(t, g)); "<" === t[g] && g--; } return c ? 1 == u.length ? d("InvalidTag", "Unclosed tag '" + u[0].tagName + "'.", v(t, u[0].tagStartPos)) : !(u.length > 0) || d("InvalidXml", "Invalid '" + JSON.stringify(u.map(function (t) { return t.tagName; }), null, 4).replace(/\r?\n/g, "") + "' found.", { line: 1, col: 1 }) : d("InvalidXml", "Start tag expected.", 1); }; var u = '"', c = "'"; function l(t, e) { for (var r = "", n = "", o = !1; e < t.length; e++) { if (t[e] === u || t[e] === c) "" === n ? n = t[e] : n !== t[e] || (n = "");else if (">" === t[e] && "" === n) { o = !0; break; } r += t[e]; } return "" === n && { value: r, index: e, tagClosed: o }; } var f = new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?", "g"); function h(t, e) { for (var r = n.getAllMatches(t, f), o = {}, i = 0; i < r.length; i++) { if (0 === r[i][1].length) return d("InvalidAttr", "Attribute '" + r[i][2] + "' has no space in starting.", y(r[i])); if (void 0 !== r[i][3] && void 0 === r[i][4]) return d("InvalidAttr", "Attribute '" + r[i][2] + "' is without value.", y(r[i])); if (void 0 === r[i][3] && !e.allowBooleanAttributes) return d("InvalidAttr", "boolean attribute '" + r[i][2] + "' is not allowed.", y(r[i])); var a = r[i][2]; if (!g(a)) return d("InvalidAttr", "Attribute '" + a + "' is an invalid name.", y(r[i])); if (o.hasOwnProperty(a)) return d("InvalidAttr", "Attribute '" + a + "' is repeated.", y(r[i])); o[a] = 1; } return !0; } function p(t, e) { if (";" === t[++e]) return -1; if ("#" === t[e]) return function (t, e) { var r = /\d/; for ("x" === t[e] && (e++, r = /[\da-fA-F]/); e < t.length; e++) { if (";" === t[e]) return e; if (!t[e].match(r)) break; } return -1; }(t, ++e); for (var r = 0; e < t.length; e++, r++) if (!(t[e].match(/\w/) && r < 20)) { if (";" === t[e]) break; return -1; } return e; } function d(t, e, r) { return { err: { code: t, msg: e, line: r.line || r, col: r.col } }; } function g(t) { return n.isName(t); } function v(t, e) { var r = t.substring(0, e).split(/\r?\n/); return { line: r.length, col: r[r.length - 1].length + 1 }; } function y(t) { return t.startIndex + t[1].length; } }, 39: (t, e, r) => { function n(t) { return n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, n(t); } var o = r(354), i = { attributeNamePrefix: "@_", attributesGroupName: !1, textNodeName: "#text", ignoreAttributes: !0, cdataPropName: !1, format: !1, indentBy: " ", suppressEmptyNode: !1, suppressUnpairedNode: !0, suppressBooleanAttributes: !0, tagValueProcessor: function (t, e) { return e; }, attributeValueProcessor: function (t, e) { return e; }, preserveOrder: !1, commentPropName: !1, unpairedTags: [], entities: [{ regex: new RegExp("&", "g"), val: "&" }, { regex: new RegExp(">", "g"), val: ">" }, { regex: new RegExp("<", "g"), val: "<" }, { regex: new RegExp("'", "g"), val: "'" }, { regex: new RegExp('"', "g"), val: """ }], processEntities: !0, stopNodes: [], oneListGroup: !1 }; function a(t) { this.options = Object.assign({}, i, t), this.options.ignoreAttributes || this.options.attributesGroupName ? this.isAttribute = function () { return !1; } : (this.attrPrefixLen = this.options.attributeNamePrefix.length, this.isAttribute = c), this.processTextOrObjNode = s, this.options.format ? (this.indentate = u, this.tagEndChar = ">\n", this.newLine = "\n") : (this.indentate = function () { return ""; }, this.tagEndChar = ">", this.newLine = ""); } function s(t, e, r) { var n = this.j2x(t, r + 1); return void 0 !== t[this.options.textNodeName] && 1 === Object.keys(t).length ? this.buildTextValNode(t[this.options.textNodeName], e, n.attrStr, r) : this.buildObjectNode(n.val, e, n.attrStr, r); } function u(t) { return this.options.indentBy.repeat(t); } function c(t) { return !(!t.startsWith(this.options.attributeNamePrefix) || t === this.options.textNodeName) && t.substr(this.attrPrefixLen); } a.prototype.build = function (t) { return this.options.preserveOrder ? o(t, this.options) : (Array.isArray(t) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1 && (e = {}, n = t, (r = this.options.arrayNodeName) in e ? Object.defineProperty(e, r, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = n, t = e), this.j2x(t, 0).val); var e, r, n; }, a.prototype.j2x = function (t, e) { var r = "", o = ""; for (var i in t) if (void 0 === t[i]) this.isAttribute(i) && (o += "");else if (null === t[i]) this.isAttribute(i) ? o += "" : "?" === i[0] ? o += this.indentate(e) + "<" + i + "?" + this.tagEndChar : o += this.indentate(e) + "<" + i + "/" + this.tagEndChar;else if (t[i] instanceof Date) o += this.buildTextValNode(t[i], i, "", e);else if ("object" !== n(t[i])) { var a = this.isAttribute(i); if (a) r += this.buildAttrPairStr(a, "" + t[i]);else if (i === this.options.textNodeName) { var s = this.options.tagValueProcessor(i, "" + t[i]); o += this.replaceEntitiesValue(s); } else o += this.buildTextValNode(t[i], i, "", e); } else if (Array.isArray(t[i])) { for (var u = t[i].length, c = "", l = 0; l < u; l++) { var f = t[i][l]; void 0 === f || (null === f ? "?" === i[0] ? o += this.indentate(e) + "<" + i + "?" + this.tagEndChar : o += this.indentate(e) + "<" + i + "/" + this.tagEndChar : "object" === n(f) ? this.options.oneListGroup ? c += this.j2x(f, e + 1).val : c += this.processTextOrObjNode(f, i, e) : c += this.buildTextValNode(f, i, "", e)); } this.options.oneListGroup && (c = this.buildObjectNode(c, i, "", e)), o += c; } else if (this.options.attributesGroupName && i === this.options.attributesGroupName) for (var h = Object.keys(t[i]), p = h.length, d = 0; d < p; d++) r += this.buildAttrPairStr(h[d], "" + t[i][h[d]]);else o += this.processTextOrObjNode(t[i], i, e); return { attrStr: r, val: o }; }, a.prototype.buildAttrPairStr = function (t, e) { return e = this.options.attributeValueProcessor(t, "" + e), e = this.replaceEntitiesValue(e), this.options.suppressBooleanAttributes && "true" === e ? " " + t : " " + t + '="' + e + '"'; }, a.prototype.buildObjectNode = function (t, e, r, n) { if ("" === t) return "?" === e[0] ? this.indentate(n) + "<" + e + r + "?" + this.tagEndChar : this.indentate(n) + "<" + e + r + this.closeTag(e) + this.tagEndChar; var o = "" + t + o; }, a.prototype.closeTag = function (t) { var e = ""; return -1 !== this.options.unpairedTags.indexOf(t) ? this.options.suppressUnpairedNode || (e = "/") : e = this.options.suppressEmptyNode ? "/" : ">") + this.newLine; if (!1 !== this.options.commentPropName && e === this.options.commentPropName) return this.indentate(n) + "\x3c!--".concat(t, "--\x3e") + this.newLine; if ("?" === e[0]) return this.indentate(n) + "<" + e + r + "?" + this.tagEndChar; var o = this.options.tagValueProcessor(e, t); return "" === (o = this.replaceEntitiesValue(o)) ? this.indentate(n) + "<" + e + r + this.closeTag(e) + this.tagEndChar : this.indentate(n) + "<" + e + r + ">" + o + " 0 && this.options.processEntities) for (var e = 0; e < this.options.entities.length; e++) { var r = this.options.entities[e]; t = t.replace(r.regex, r.val); } return t; }, t.exports = a; }, 354: t => { function e(t, a, s, u) { for (var c = "", l = !1, f = 0; f < t.length; f++) { var h, p = t[f], d = r(p); if (h = 0 === s.length ? d : "".concat(s, ".").concat(d), d !== a.textNodeName) { if (d !== a.cdataPropName) { if (d !== a.commentPropName) { if ("?" !== d[0]) { var g = u; "" !== g && (g += a.indentBy); var v = n(p[":@"], a), y = u + "<".concat(d).concat(v), m = e(p[d], a, h, g); -1 !== a.unpairedTags.indexOf(d) ? a.suppressUnpairedNode ? c += y + ">" : c += y + "/>" : m && 0 !== m.length || !a.suppressEmptyNode ? m && m.endsWith(">") ? c += y + ">".concat(m).concat(u, "") : (c += y + ">", m && "" !== u && (m.includes("/>") || m.includes("")) : c += y + "/>", l = !0; } else { var b = n(p[":@"], a), w = "?xml" === d ? "" : u, x = p[d][0][a.textNodeName]; x = 0 !== x.length ? " " + x : "", c += w + "<".concat(d).concat(x).concat(b, "?>"), l = !0; } } else c += u + "\x3c!--".concat(p[d][0][a.textNodeName], "--\x3e"), l = !0; } else l && (c += u), c += ""), l = !1; } else { var O = p[d]; o(h, a) || (O = i(O = a.tagValueProcessor(d, O), a)), l && (c += u), c += O, l = !1; } } return c; } function r(t) { for (var e = Object.keys(t), r = 0; r < e.length; r++) { var n = e[r]; if (":@" !== n) return n; } } function n(t, e) { var r = ""; if (t && !e.ignoreAttributes) for (var n in t) { var o = e.attributeValueProcessor(n, t[n]); !0 === (o = i(o, e)) && e.suppressBooleanAttributes ? r += " ".concat(n.substr(e.attributeNamePrefix.length)) : r += " ".concat(n.substr(e.attributeNamePrefix.length), '="').concat(o, '"'); } return r; } function o(t, e) { var r = (t = t.substr(0, t.length - e.textNodeName.length - 1)).substr(t.lastIndexOf(".") + 1); for (var n in e.stopNodes) if (e.stopNodes[n] === t || e.stopNodes[n] === "*." + r) return !0; return !1; } function i(t, e) { if (t && t.length > 0 && e.processEntities) for (var r = 0; r < e.entities.length; r++) { var n = e.entities[r]; t = t.replace(n.regex, n.val); } return t; } t.exports = function (t, r) { var n = ""; return r.format && r.indentBy.length > 0 && (n = "\n"), e(t, r, "", n); }; }, 895: (t, e, r) => { function n(t, e) { return function (t) { if (Array.isArray(t)) return t; }(t) || function (t, e) { var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (null != r) { var n, o, i = [], a = !0, s = !1; try { for (r = r.call(t); !(a = (n = r.next()).done) && (i.push(n.value), !e || i.length !== e); a = !0); } catch (t) { s = !0, o = t; } finally { try { a || null == r.return || r.return(); } finally { if (s) throw o; } } return i; } }(t, e) || function (t, e) { if (t) { if ("string" == typeof t) return o(t, e); var r = Object.prototype.toString.call(t).slice(8, -1); return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? o(t, e) : void 0; } }(t, e) || function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); } function o(t, e) { (null == e || e > t.length) && (e = t.length); for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r]; return n; } var i = r(410); function a(t, e) { for (var r = ""; e < t.length && "'" !== t[e] && '"' !== t[e]; e++) r += t[e]; if (-1 !== (r = r.trim()).indexOf(" ")) throw new Error("External entites are not supported"); for (var n = t[e++], o = ""; e < t.length && t[e] !== n; e++) o += t[e]; return [r, o, e]; } function s(t, e) { return "!" === t[e + 1] && "-" === t[e + 2] && "-" === t[e + 3]; } function u(t, e) { return "!" === t[e + 1] && "E" === t[e + 2] && "N" === t[e + 3] && "T" === t[e + 4] && "I" === t[e + 5] && "T" === t[e + 6] && "Y" === t[e + 7]; } function c(t, e) { return "!" === t[e + 1] && "E" === t[e + 2] && "L" === t[e + 3] && "E" === t[e + 4] && "M" === t[e + 5] && "E" === t[e + 6] && "N" === t[e + 7] && "T" === t[e + 8]; } function l(t, e) { return "!" === t[e + 1] && "A" === t[e + 2] && "T" === t[e + 3] && "T" === t[e + 4] && "L" === t[e + 5] && "I" === t[e + 6] && "S" === t[e + 7] && "T" === t[e + 8]; } function f(t, e) { return "!" === t[e + 1] && "N" === t[e + 2] && "O" === t[e + 3] && "T" === t[e + 4] && "A" === t[e + 5] && "T" === t[e + 6] && "I" === t[e + 7] && "O" === t[e + 8] && "N" === t[e + 9]; } function h(t) { if (i.isName(t)) return t; throw new Error("Invalid entity name ".concat(t)); } t.exports = function (t, e) { var r = {}; if ("O" !== t[e + 3] || "C" !== t[e + 4] || "T" !== t[e + 5] || "Y" !== t[e + 6] || "P" !== t[e + 7] || "E" !== t[e + 8]) throw new Error("Invalid Tag instead of DOCTYPE"); e += 9; for (var o = 1, i = !1, p = !1; e < t.length; e++) if ("<" !== t[e] || p) { if (">" === t[e]) { if (p ? "-" === t[e - 1] && "-" === t[e - 2] && (p = !1, o--) : o--, 0 === o) break; } else "[" === t[e] ? i = !0 : t[e]; } else { if (i && u(t, e)) { var d = n(a(t, (e += 7) + 1), 3); entityName = d[0], val = d[1], e = d[2], -1 === val.indexOf("&") && (r[h(entityName)] = { regx: RegExp("&".concat(entityName, ";"), "g"), val }); } else if (i && c(t, e)) e += 8;else if (i && l(t, e)) e += 8;else if (i && f(t, e)) e += 9;else { if (!s) throw new Error("Invalid DOCTYPE"); p = !0; } o++; } if (0 !== o) throw new Error("Unclosed DOCTYPE"); return { entities: r, i: e }; }; }, 282: (t, e) => { var r = { preserveOrder: !1, attributeNamePrefix: "@_", attributesGroupName: !1, textNodeName: "#text", ignoreAttributes: !0, removeNSPrefix: !1, allowBooleanAttributes: !1, parseTagValue: !0, parseAttributeValue: !1, trimValues: !0, cdataPropName: !1, numberParseOptions: { hex: !0, leadingZeros: !0, eNotation: !0 }, tagValueProcessor: function (t, e) { return e; }, attributeValueProcessor: function (t, e) { return e; }, stopNodes: [], alwaysCreateTextNode: !1, isArray: function () { return !1; }, commentPropName: !1, unpairedTags: [], processEntities: !0, htmlEntities: !1, ignoreDeclaration: !1, ignorePiTags: !1, transformTagName: !1, transformAttributeName: !1, updateTag: function (t, e, r) { return t; } }; e.buildOptions = function (t) { return Object.assign({}, r, t); }, e.defaultOptions = r; }, 502: (t, e, r) => { function n(t, e, r) { return e in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t; } function o(t) { return o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, o(t); } function i(t, e) { for (var r = 0; r < e.length; r++) { var n = e[r]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); } } function a(t, e, r) { return e && i(t.prototype, e), r && i(t, r), Object.defineProperty(t, "prototype", { writable: !1 }), t; } var s = r(410), u = r(961), c = r(895), l = r(512), f = ("<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g, s.nameRegexp), a(function t(e) { !function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); }(this, t), this.options = e, this.currentNode = null, this.tagsNodeStack = [], this.docTypeEntities = {}, this.lastEntities = { apos: { regex: /&(apos|#39|#x27);/g, val: "'" }, gt: { regex: /&(gt|#62|#x3E);/g, val: ">" }, lt: { regex: /&(lt|#60|#x3C);/g, val: "<" }, quot: { regex: /&(quot|#34|#x22);/g, val: '"' } }, this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: "&" }, this.htmlEntities = { space: { regex: /&(nbsp|#160);/g, val: " " }, cent: { regex: /&(cent|#162);/g, val: "¢" }, pound: { regex: /&(pound|#163);/g, val: "£" }, yen: { regex: /&(yen|#165);/g, val: "¥" }, euro: { regex: /&(euro|#8364);/g, val: "€" }, copyright: { regex: /&(copy|#169);/g, val: "©" }, reg: { regex: /&(reg|#174);/g, val: "®" }, inr: { regex: /&(inr|#8377);/g, val: "₹" } }, this.addExternalEntities = h, this.parseXml = y, this.parseTextData = p, this.resolveNameSpace = d, this.buildAttributesMap = v, this.isItStopNode = x, this.replaceEntitiesValue = b, this.readStopNodeData = j, this.saveTextToParentTag = w, this.addChild = m; })); function h(t) { for (var e = Object.keys(t), r = 0; r < e.length; r++) { var n = e[r]; this.lastEntities[n] = { regex: new RegExp("&" + n + ";", "g"), val: t[n] }; } } function p(t, e, r, n, i, a, s) { if (void 0 !== t && (this.options.trimValues && !n && (t = t.trim()), t.length > 0)) { s || (t = this.replaceEntitiesValue(t)); var u = this.options.tagValueProcessor(e, t, r, i, a); return null == u ? t : o(u) !== o(t) || u !== t ? u : this.options.trimValues || t.trim() === t ? P(t, this.options.parseTagValue, this.options.numberParseOptions) : t; } } function d(t) { if (this.options.removeNSPrefix) { var e = t.split(":"), r = "/" === t.charAt(0) ? "/" : ""; if ("xmlns" === e[0]) return ""; 2 === e.length && (t = r + e[1]); } return t; } var g = new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?", "gm"); function v(t, e, r) { if (!this.options.ignoreAttributes && "string" == typeof t) { for (var n = s.getAllMatches(t, g), i = n.length, a = {}, u = 0; u < i; u++) { var c = this.resolveNameSpace(n[u][1]), l = n[u][4], f = this.options.attributeNamePrefix + c; if (c.length) if (this.options.transformAttributeName && (f = this.options.transformAttributeName(f)), "__proto__" === f && (f = "#__proto__"), void 0 !== l) { this.options.trimValues && (l = l.trim()), l = this.replaceEntitiesValue(l); var h = this.options.attributeValueProcessor(c, l, e); null == h ? a[f] = l : o(h) !== o(l) || h !== l ? a[f] = h : a[f] = P(l, this.options.parseAttributeValue, this.options.numberParseOptions); } else this.options.allowBooleanAttributes && (a[f] = !0); } if (!Object.keys(a).length) return; if (this.options.attributesGroupName) { var p = {}; return p[this.options.attributesGroupName] = a, p; } return a; } } var y = function (t) { t = t.replace(/\r\n?/g, "\n"); for (var e = new u("!xml"), r = e, o = "", i = "", a = 0; a < t.length; a++) if ("<" === t[a]) { if ("/" === t[a + 1]) { var s = O(t, ">", a, "Closing Tag is not closed."), l = t.substring(a + 2, s).trim(); if (this.options.removeNSPrefix) { var f = l.indexOf(":"); -1 !== f && (l = l.substr(f + 1)); } this.options.transformTagName && (l = this.options.transformTagName(l)), r && (o = this.saveTextToParentTag(o, r, i)); var h = i.substring(i.lastIndexOf(".") + 1); if (l && -1 !== this.options.unpairedTags.indexOf(l)) throw new Error("Unpaired tag can not be used as closing tag: ")); var p = 0; h && -1 !== this.options.unpairedTags.indexOf(h) ? (p = i.lastIndexOf(".", i.lastIndexOf(".") - 1), this.tagsNodeStack.pop()) : p = i.lastIndexOf("."), i = i.substring(0, p), r = this.tagsNodeStack.pop(), o = "", a = s; } else if ("?" === t[a + 1]) { var d = A(t, a, !1, "?>"); if (!d) throw new Error("Pi Tag is not closed."); if (o = this.saveTextToParentTag(o, r, i), this.options.ignoreDeclaration && "?xml" === d.tagName || this.options.ignorePiTags) ;else { var g = new u(d.tagName); g.add(this.options.textNodeName, ""), d.tagName !== d.tagExp && d.attrExpPresent && (g[":@"] = this.buildAttributesMap(d.tagExp, i, d.tagName)), this.addChild(r, g, i); } a = d.closeIndex + 1; } else if ("!--" === t.substr(a + 1, 3)) { var v = O(t, "--\x3e", a + 4, "Comment is not closed."); if (this.options.commentPropName) { var y = t.substring(a + 4, v - 2); o = this.saveTextToParentTag(o, r, i), r.add(this.options.commentPropName, [n({}, this.options.textNodeName, y)]); } a = v; } else if ("!D" === t.substr(a + 1, 2)) { var m = c(t, a); this.docTypeEntities = m.entities, a = m.i; } else if ("![" === t.substr(a + 1, 2)) { var b = O(t, "]]>", a, "CDATA is not closed.") - 2, w = t.substring(a + 9, b); if (o = this.saveTextToParentTag(o, r, i), this.options.cdataPropName) r.add(this.options.cdataPropName, [n({}, this.options.textNodeName, w)]);else { var x = this.parseTextData(w, r.tagname, i, !0, !1, !0); null == x && (x = ""), r.add(this.options.textNodeName, x); } a = b + 2; } else { var j = A(t, a, this.options.removeNSPrefix), P = j.tagName, S = j.tagExp, E = j.attrExpPresent, N = j.closeIndex; this.options.transformTagName && (P = this.options.transformTagName(P)), r && o && "!xml" !== r.tagname && (o = this.saveTextToParentTag(o, r, i, !1)); var T = r; if (T && -1 !== this.options.unpairedTags.indexOf(T.tagname) && (r = this.tagsNodeStack.pop(), i = i.substring(0, i.lastIndexOf("."))), P !== e.tagname && (i += i ? "." + P : P), this.isItStopNode(this.options.stopNodes, i, P)) { var k = ""; if (S.length > 0 && S.lastIndexOf("/") === S.length - 1) a = j.closeIndex;else if (-1 !== this.options.unpairedTags.indexOf(P)) a = j.closeIndex;else { var C = this.readStopNodeData(t, P, N + 1); if (!C) throw new Error("Unexpected end of ".concat(P)); a = C.i, k = C.tagContent; } var I = new u(P); P !== S && E && (I[":@"] = this.buildAttributesMap(S, i, P)), k && (k = this.parseTextData(k, P, i, !0, E, !0, !0)), i = i.substr(0, i.lastIndexOf(".")), I.add(this.options.textNodeName, k), this.addChild(r, I, i); } else { if (S.length > 0 && S.lastIndexOf("/") === S.length - 1) { "/" === P[P.length - 1] ? (P = P.substr(0, P.length - 1), i = i.substr(0, i.length - 1), S = P) : S = S.substr(0, S.length - 1), this.options.transformTagName && (P = this.options.transformTagName(P)); var _ = new u(P); P !== S && E && (_[":@"] = this.buildAttributesMap(S, i, P)), this.addChild(r, _, i), i = i.substr(0, i.lastIndexOf(".")); } else { var R = new u(P); this.tagsNodeStack.push(r), P !== S && E && (R[":@"] = this.buildAttributesMap(S, i, P)), this.addChild(r, R, i), r = R; } o = "", a = N; } } } else o += t[a]; return e.child; }; function m(t, e, r) { var n = this.options.updateTag(e.tagname, r, e[":@"]); !1 === n || ("string" == typeof n ? (e.tagname = n, t.addChild(e)) : t.addChild(e)); } var b = function (t) { if (this.options.processEntities) { for (var e in this.docTypeEntities) { var r = this.docTypeEntities[e]; t = t.replace(r.regx, r.val); } for (var n in this.lastEntities) { var o = this.lastEntities[n]; t = t.replace(o.regex, o.val); } if (this.options.htmlEntities) for (var i in this.htmlEntities) { var a = this.htmlEntities[i]; t = t.replace(a.regex, a.val); } t = t.replace(this.ampEntity.regex, this.ampEntity.val); } return t; }; function w(t, e, r, n) { return t && (void 0 === n && (n = 0 === Object.keys(e.child).length), void 0 !== (t = this.parseTextData(t, e.tagname, r, !1, !!e[":@"] && 0 !== Object.keys(e[":@"]).length, n)) && "" !== t && e.add(this.options.textNodeName, t), t = ""), t; } function x(t, e, r) { var n = "*." + r; for (var o in t) { var i = t[o]; if (n === i || e === i) return !0; } return !1; } function O(t, e, r, n) { var o = t.indexOf(e, r); if (-1 === o) throw new Error(n); return o + e.length - 1; } function A(t, e, r) { var n = function (t, e) { for (var r, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : ">", o = "", i = e; i < t.length; i++) { var a = t[i]; if (r) a === r && (r = "");else if ('"' === a || "'" === a) r = a;else if (a === n[0]) { if (!n[1]) return { data: o, index: i }; if (t[i + 1] === n[1]) return { data: o, index: i }; } else "\t" === a && (a = " "); o += a; } }(t, e + 1, arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : ">"); if (n) { var o = n.data, i = n.index, a = o.search(/\s/), s = o, u = !0; if (-1 !== a && (s = o.substr(0, a).replace(/\s\s*$/, ""), o = o.substr(a + 1)), r) { var c = s.indexOf(":"); -1 !== c && (u = (s = s.substr(c + 1)) !== n.data.substr(c + 1)); } return { tagName: s, tagExp: o, closeIndex: i, attrExpPresent: u }; } } function j(t, e, r) { for (var n = r, o = 1; r < t.length; r++) if ("<" === t[r]) if ("/" === t[r + 1]) { var i = O(t, ">", r, "".concat(e, " is not closed")); if (t.substring(r + 2, i).trim() === e && 0 == --o) return { tagContent: t.substring(n, r), i }; r = i; } else if ("?" === t[r + 1]) r = O(t, "?>", r + 1, "StopNode is not closed.");else if ("!--" === t.substr(r + 1, 3)) r = O(t, "--\x3e", r + 3, "StopNode is not closed.");else if ("![" === t.substr(r + 1, 2)) r = O(t, "]]>", r, "StopNode is not closed.") - 2;else { var a = A(t, r, ">"); a && ((a && a.tagName) === e && "/" !== a.tagExp[a.tagExp.length - 1] && o++, r = a.closeIndex); } } function P(t, e, r) { if (e && "string" == typeof t) { var n = t.trim(); return "true" === n || "false" !== n && l(t, r); } return s.isExist(t) ? t : ""; } t.exports = f; }, 586: (t, e, r) => { function n(t, e) { for (var r = 0; r < e.length; r++) { var n = e[r]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); } } var o = r(282).buildOptions, i = r(502), a = r(869).prettify, s = r(135), u = function () { function t(e) { !function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); }(this, t), this.externalEntities = {}, this.options = o(e); } var e, r; return e = t, (r = [{ key: "parse", value: function (t, e) { if ("string" == typeof t) ;else { if (!t.toString) throw new Error("XML data is accepted in String or Bytes[] form."); t = t.toString(); } if (e) { !0 === e && (e = {}); var r = s.validate(t, e); if (!0 !== r) throw Error("".concat(r.err.msg, ":").concat(r.err.line, ":").concat(r.err.col)); } var n = new i(this.options); n.addExternalEntities(this.externalEntities); var o = n.parseXml(t); return this.options.preserveOrder || void 0 === o ? o : a(o, this.options); } }, { key: "addEntity", value: function (t, e) { if (-1 !== e.indexOf("&")) throw new Error("Entity value can't have '&'"); if (-1 !== t.indexOf("&") || -1 !== t.indexOf(";")) throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for ' '"); if ("&" === e) throw new Error("An entity with value '&' is not permitted"); this.externalEntities[t] = e; } }]) && n(e.prototype, r), Object.defineProperty(e, "prototype", { writable: !1 }), t; }(); t.exports = u; }, 869: (t, e) => { function r(t, e, a) { for (var s, u = {}, c = 0; c < t.length; c++) { var l, f = t[c], h = n(f); if (l = void 0 === a ? h : a + "." + h, h === e.textNodeName) void 0 === s ? s = f[h] : s += "" + f[h];else { if (void 0 === h) continue; if (f[h]) { var p = r(f[h], e, l), d = i(p, e); f[":@"] ? o(p, f[":@"], l, e) : 1 !== Object.keys(p).length || void 0 === p[e.textNodeName] || e.alwaysCreateTextNode ? 0 === Object.keys(p).length && (e.alwaysCreateTextNode ? p[e.textNodeName] = "" : p = "") : p = p[e.textNodeName], void 0 !== u[h] && u.hasOwnProperty(h) ? (Array.isArray(u[h]) || (u[h] = [u[h]]), u[h].push(p)) : e.isArray(h, l, d) ? u[h] = [p] : u[h] = p; } } } return "string" == typeof s ? s.length > 0 && (u[e.textNodeName] = s) : void 0 !== s && (u[e.textNodeName] = s), u; } function n(t) { for (var e = Object.keys(t), r = 0; r < e.length; r++) { var n = e[r]; if (":@" !== n) return n; } } function o(t, e, r, n) { if (e) for (var o = Object.keys(e), i = o.length, a = 0; a < i; a++) { var s = o[a]; n.isArray(s, r + "." + s, !0, !0) ? t[s] = [e[s]] : t[s] = e[s]; } } function i(t, e) { var r = e.textNodeName, n = Object.keys(t).length; return 0 === n || !(1 !== n || !t[r] && "boolean" != typeof t[r] && 0 !== t[r]); } e.prettify = function (t, e) { return r(t, e); }; }, 961: t => { function e(t, e, r) { return e in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t; } function r(t, e) { for (var r = 0; r < e.length; r++) { var n = e[r]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); } } var n = function () { function t(e) { !function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); }(this, t), this.tagname = e, this.child = [], this[":@"] = {}; } var n, o; return n = t, (o = [{ key: "add", value: function (t, r) { "__proto__" === t && (t = "#__proto__"), this.child.push(e({}, t, r)); } }, { key: "addChild", value: function (t) { var r; "__proto__" === t.tagname && (t.tagname = "#__proto__"), t[":@"] && Object.keys(t[":@"]).length > 0 ? this.child.push((e(r = {}, t.tagname, t.child), e(r, ":@", t[":@"]), r)) : this.child.push(e({}, t.tagname, t.child)); } }]) && r(n.prototype, o), Object.defineProperty(n, "prototype", { writable: !1 }), t; }(); t.exports = n; }, 163: t => { function e(t) { return !!t.constructor && "function" == typeof t.constructor.isBuffer && t.constructor.isBuffer(t); } t.exports = function (t) { return null != t && (e(t) || function (t) { return "function" == typeof t.readFloatLE && "function" == typeof t.slice && e(t.slice(0, 0)); }(t) || !!t._isBuffer); }; }, 243: (t, e, r) => { var n, o, i, a, s; n = r(718), o = r(106).utf8, i = r(163), a = r(106).bin, (s = function t(e, r) { e.constructor == String ? e = r && "binary" === r.encoding ? a.stringToBytes(e) : o.stringToBytes(e) : i(e) ? e = Array.prototype.slice.call(e, 0) : Array.isArray(e) || e.constructor === Uint8Array || (e = e.toString()); for (var s = n.bytesToWords(e), u = 8 * e.length, c = 1732584193, l = -271733879, f = -1732584194, h = 271733878, p = 0; p < s.length; p++) s[p] = 16711935 & (s[p] << 8 | s[p] >>> 24) | 4278255360 & (s[p] << 24 | s[p] >>> 8); s[u >>> 5] |= 128 << u % 32, s[14 + (u + 64 >>> 9 << 4)] = u; var d = t._ff, g = t._gg, v = t._hh, y = t._ii; for (p = 0; p < s.length; p += 16) { var m = c, b = l, w = f, x = h; c = d(c, l, f, h, s[p + 0], 7, -680876936), h = d(h, c, l, f, s[p + 1], 12, -389564586), f = d(f, h, c, l, s[p + 2], 17, 606105819), l = d(l, f, h, c, s[p + 3], 22, -1044525330), c = d(c, l, f, h, s[p + 4], 7, -176418897), h = d(h, c, l, f, s[p + 5], 12, 1200080426), f = d(f, h, c, l, s[p + 6], 17, -1473231341), l = d(l, f, h, c, s[p + 7], 22, -45705983), c = d(c, l, f, h, s[p + 8], 7, 1770035416), h = d(h, c, l, f, s[p + 9], 12, -1958414417), f = d(f, h, c, l, s[p + 10], 17, -42063), l = d(l, f, h, c, s[p + 11], 22, -1990404162), c = d(c, l, f, h, s[p + 12], 7, 1804603682), h = d(h, c, l, f, s[p + 13], 12, -40341101), f = d(f, h, c, l, s[p + 14], 17, -1502002290), c = g(c, l = d(l, f, h, c, s[p + 15], 22, 1236535329), f, h, s[p + 1], 5, -165796510), h = g(h, c, l, f, s[p + 6], 9, -1069501632), f = g(f, h, c, l, s[p + 11], 14, 643717713), l = g(l, f, h, c, s[p + 0], 20, -373897302), c = g(c, l, f, h, s[p + 5], 5, -701558691), h = g(h, c, l, f, s[p + 10], 9, 38016083), f = g(f, h, c, l, s[p + 15], 14, -660478335), l = g(l, f, h, c, s[p + 4], 20, -405537848), c = g(c, l, f, h, s[p + 9], 5, 568446438), h = g(h, c, l, f, s[p + 14], 9, -1019803690), f = g(f, h, c, l, s[p + 3], 14, -187363961), l = g(l, f, h, c, s[p + 8], 20, 1163531501), c = g(c, l, f, h, s[p + 13], 5, -1444681467), h = g(h, c, l, f, s[p + 2], 9, -51403784), f = g(f, h, c, l, s[p + 7], 14, 1735328473), c = v(c, l = g(l, f, h, c, s[p + 12], 20, -1926607734), f, h, s[p + 5], 4, -378558), h = v(h, c, l, f, s[p + 8], 11, -2022574463), f = v(f, h, c, l, s[p + 11], 16, 1839030562), l = v(l, f, h, c, s[p + 14], 23, -35309556), c = v(c, l, f, h, s[p + 1], 4, -1530992060), h = v(h, c, l, f, s[p + 4], 11, 1272893353), f = v(f, h, c, l, s[p + 7], 16, -155497632), l = v(l, f, h, c, s[p + 10], 23, -1094730640), c = v(c, l, f, h, s[p + 13], 4, 681279174), h = v(h, c, l, f, s[p + 0], 11, -358537222), f = v(f, h, c, l, s[p + 3], 16, -722521979), l = v(l, f, h, c, s[p + 6], 23, 76029189), c = v(c, l, f, h, s[p + 9], 4, -640364487), h = v(h, c, l, f, s[p + 12], 11, -421815835), f = v(f, h, c, l, s[p + 15], 16, 530742520), c = y(c, l = v(l, f, h, c, s[p + 2], 23, -995338651), f, h, s[p + 0], 6, -198630844), h = y(h, c, l, f, s[p + 7], 10, 1126891415), f = y(f, h, c, l, s[p + 14], 15, -1416354905), l = y(l, f, h, c, s[p + 5], 21, -57434055), c = y(c, l, f, h, s[p + 12], 6, 1700485571), h = y(h, c, l, f, s[p + 3], 10, -1894986606), f = y(f, h, c, l, s[p + 10], 15, -1051523), l = y(l, f, h, c, s[p + 1], 21, -2054922799), c = y(c, l, f, h, s[p + 8], 6, 1873313359), h = y(h, c, l, f, s[p + 15], 10, -30611744), f = y(f, h, c, l, s[p + 6], 15, -1560198380), l = y(l, f, h, c, s[p + 13], 21, 1309151649), c = y(c, l, f, h, s[p + 4], 6, -145523070), h = y(h, c, l, f, s[p + 11], 10, -1120210379), f = y(f, h, c, l, s[p + 2], 15, 718787259), l = y(l, f, h, c, s[p + 9], 21, -343485551), c = c + m >>> 0, l = l + b >>> 0, f = f + w >>> 0, h = h + x >>> 0; } return n.endian([c, l, f, h]); })._ff = function (t, e, r, n, o, i, a) { var s = t + (e & r | ~e & n) + (o >>> 0) + a; return (s << i | s >>> 32 - i) + e; }, s._gg = function (t, e, r, n, o, i, a) { var s = t + (e & n | r & ~n) + (o >>> 0) + a; return (s << i | s >>> 32 - i) + e; }, s._hh = function (t, e, r, n, o, i, a) { var s = t + (e ^ r ^ n) + (o >>> 0) + a; return (s << i | s >>> 32 - i) + e; }, s._ii = function (t, e, r, n, o, i, a) { var s = t + (r ^ (e | ~n)) + (o >>> 0) + a; return (s << i | s >>> 32 - i) + e; }, s._blocksize = 16, s._digestsize = 16, t.exports = function (t, e) { if (null == t) throw new Error("Illegal argument " + t); var r = n.wordsToBytes(s(t, e)); return e && e.asBytes ? r : e && e.asString ? a.bytesToString(r) : n.bytesToHex(r); }; }, 637: (t, e, r) => { var n = r(584); t.exports = function (t) { return t ? ("{}" === t.substr(0, 2) && (t = "\\{\\}" + t.substr(2)), v(function (t) { return t.split("\\\\").join(o).split("\\{").join(i).split("\\}").join(a).split("\\,").join(s).split("\\.").join(u); }(t), !0).map(l)) : []; }; var o = "\0SLASH" + Math.random() + "\0", i = "\0OPEN" + Math.random() + "\0", a = "\0CLOSE" + Math.random() + "\0", s = "\0COMMA" + Math.random() + "\0", u = "\0PERIOD" + Math.random() + "\0"; function c(t) { return parseInt(t, 10) == t ? parseInt(t, 10) : t.charCodeAt(0); } function l(t) { return t.split(o).join("\\").split(i).join("{").split(a).join("}").split(s).join(",").split(u).join("."); } function f(t) { if (!t) return [""]; var e = [], r = n("{", "}", t); if (!r) return t.split(","); var o = r.pre, i = r.body, a = r.post, s = o.split(","); s[s.length - 1] += "{" + i + "}"; var u = f(a); return a.length && (s[s.length - 1] += u.shift(), s.push.apply(s, u)), e.push.apply(e, s), e; } function h(t) { return "{" + t + "}"; } function p(t) { return /^-?0\d/.test(t); } function d(t, e) { return t <= e; } function g(t, e) { return t >= e; } function v(t, e) { var r = [], o = n("{", "}", t); if (!o) return [t]; var i = o.pre, s = o.post.length ? v(o.post, !1) : [""]; if (/\$$/.test(o.pre)) for (var u = 0; u < s.length; u++) { var l = i + "{" + o.body + "}" + s[u]; r.push(l); } else { var y, m, b = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(o.body), w = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(o.body), x = b || w, O = o.body.indexOf(",") >= 0; if (!x && !O) return o.post.match(/,.*\}/) ? v(t = o.pre + "{" + o.body + a + o.post) : [t]; if (x) y = o.body.split(/\.\./);else if (1 === (y = f(o.body)).length && 1 === (y = v(y[0], !1).map(h)).length) return s.map(function (t) { return o.pre + y[0] + t; }); if (x) { var A = c(y[0]), j = c(y[1]), P = Math.max(y[0].length, y[1].length), S = 3 == y.length ? Math.abs(c(y[2])) : 1, E = d; j < A && (S *= -1, E = g); var N = y.some(p); m = []; for (var T = A; E(T, j); T += S) { var k; if (w) "\\" === (k = String.fromCharCode(T)) && (k = "");else if (k = String(T), N) { var C = P - k.length; if (C > 0) { var I = new Array(C + 1).join("0"); k = T < 0 ? "-" + I + k.slice(1) : I + k; } } m.push(k); } } else { m = []; for (var _ = 0; _ < y.length; _++) m.push.apply(m, v(y[_], !1)); } for (_ = 0; _ < m.length; _++) for (u = 0; u < s.length; u++) l = i + m[_] + s[u], (!e || x || l) && r.push(l); } return r; } }, 421: t => { function e(t) { return e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, e(t); } function r(t) { var e = "function" == typeof Map ? new Map() : void 0; return r = function (t) { if (null === t || (r = t, -1 === Function.toString.call(r).indexOf("[native code]"))) return t; var r; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== e) { if (e.has(t)) return e.get(t); e.set(t, a); } function a() { return n(t, arguments, i(this).constructor); } return a.prototype = Object.create(t.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), o(a, t); }, r(t); } function n(t, e, r) { return n = function () { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; if ("function" == typeof Proxy) return !0; try { return Date.prototype.toString.call(Reflect.construct(Date, [], function () {})), !0; } catch (t) { return !1; } }() ? Reflect.construct : function (t, e, r) { var n = [null]; n.push.apply(n, e); var i = new (Function.bind.apply(t, n))(); return r && o(i, r.prototype), i; }, n.apply(null, arguments); } function o(t, e) { return o = Object.setPrototypeOf || function (t, e) { return t.__proto__ = e, t; }, o(t, e); } function i(t) { return i = Object.setPrototypeOf ? Object.getPrototypeOf : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, i(t); } var a = "+", s = function (t) { function r(t) { var n; return function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); }(this, r), (n = function (t, r) { return !r || "object" !== e(r) && "function" != typeof r ? function (t) { if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t; }(t) : r; }(this, i(r).call(this, t))).name = "ObjectPrototypeMutationError", n; } return function (t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), e && o(t, e); }(r, t), r; }(r(Error)); function u(t, r) { for (var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : function () {}, o = r.split("."), i = o.length, s = function (e) { var r = o[e]; if (!t) return { v: void 0 }; if (r === a) { if (Array.isArray(t)) return { v: t.map(function (r, i) { var a = o.slice(e + 1); return a.length > 0 ? u(r, a.join("."), n) : n(t, i, o, e); }) }; var i = o.slice(0, e).join("."); throw new Error("Object at wildcard (".concat(i, ") is not an array")); } t = n(t, r, o, e); }, c = 0; c < i; c++) { var l = s(c); if ("object" === e(l)) return l.v; } return t; } function c(t, e) { return t.length === e + 1; } t.exports = { set: function (t, r, n) { if ("object" != e(t) || null === t) return t; if (void 0 === r) return t; if ("number" == typeof r) return t[r] = n, t[r]; try { return u(t, r, function (t, e, r, o) { if (t === Reflect.getPrototypeOf({})) throw new s("Attempting to mutate Object.prototype"); if (!t[e]) { var i = Number.isInteger(Number(r[o + 1])), u = r[o + 1] === a; t[e] = i || u ? [] : {}; } return c(r, o) && (t[e] = n), t[e]; }); } catch (e) { if (e instanceof s) throw e; return t; } }, get: function (t, r) { if ("object" != e(t) || null === t) return t; if (void 0 === r) return t; if ("number" == typeof r) return t[r]; try { return u(t, r, function (t, e) { return t[e]; }); } catch (e) { return t; } }, has: function (t, r) { var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; if ("object" != e(t) || null === t) return !1; if (void 0 === r) return !1; if ("number" == typeof r) return r in t; try { var o = !1; return u(t, r, function (t, e, r, i) { if (!c(r, i)) return t && t[e]; o = n.own ? t.hasOwnProperty(e) : e in t; }), o; } catch (t) { return !1; } }, hasOwn: function (t, e, r) { return this.has(t, e, r || { own: !0 }); }, isIn: function (t, r, n) { var o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}; if ("object" != e(t) || null === t) return !1; if (void 0 === r) return !1; try { var i = !1, a = !1; return u(t, r, function (t, r, o, s) { return i = i || t === n || !!t && t[r] === n, a = c(o, s) && "object" === e(t) && r in t, t && t[r]; }), o.validPath ? i && a : i; } catch (t) { return !1; } }, ObjectPrototypeMutationError: s }; }, 441: (t, e, r) => { function n(t) { return n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, n(t); } var o = r(930), i = function (t) { return "string" == typeof t; }; function a(t, e) { for (var r = [], n = 0; n < t.length; n++) { var o = t[n]; o && "." !== o && (".." === o ? r.length && ".." !== r[r.length - 1] ? r.pop() : e && r.push("..") : r.push(o)); } return r; } var s = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/, u = {}; function c(t) { return s.exec(t).slice(1); } u.resolve = function () { for (var t = "", e = !1, r = arguments.length - 1; r >= -1 && !e; r--) { var n = r >= 0 ? arguments[r] : process.cwd(); if (!i(n)) throw new TypeError("Arguments to path.resolve must be strings"); n && (t = n + "/" + t, e = "/" === n.charAt(0)); } return (e ? "/" : "") + (t = a(t.split("/"), !e).join("/")) || "."; }, u.normalize = function (t) { var e = u.isAbsolute(t), r = "/" === t.substr(-1); return (t = a(t.split("/"), !e).join("/")) || e || (t = "."), t && r && (t += "/"), (e ? "/" : "") + t; }, u.isAbsolute = function (t) { return "/" === t.charAt(0); }, u.join = function () { for (var t = "", e = 0; e < arguments.length; e++) { var r = arguments[e]; if (!i(r)) throw new TypeError("Arguments to path.join must be strings"); r && (t += t ? "/" + r : r); } return u.normalize(t); }, u.relative = function (t, e) { function r(t) { for (var e = 0; e < t.length && "" === t[e]; e++); for (var r = t.length - 1; r >= 0 && "" === t[r]; r--); return e > r ? [] : t.slice(e, r + 1); } t = u.resolve(t).substr(1), e = u.resolve(e).substr(1); for (var n = r(t.split("/")), o = r(e.split("/")), i = Math.min(n.length, o.length), a = i, s = 0; s < i; s++) if (n[s] !== o[s]) { a = s; break; } var c = []; for (s = a; s < n.length; s++) c.push(".."); return (c = c.concat(o.slice(a))).join("/"); }, u._makeLong = function (t) { return t; }, u.dirname = function (t) { var e = c(t), r = e[0], n = e[1]; return r || n ? (n && (n = n.substr(0, n.length - 1)), r + n) : "."; }, u.basename = function (t, e) { var r = c(t)[2]; return e && r.substr(-1 * e.length) === e && (r = r.substr(0, r.length - e.length)), r; }, u.extname = function (t) { return c(t)[3]; }, u.format = function (t) { if (!o.isObject(t)) throw new TypeError("Parameter 'pathObject' must be an object, not " + n(t)); var e = t.root || ""; if (!i(e)) throw new TypeError("'pathObject.root' must be a string or undefined, not " + n(t.root)); return (t.dir ? t.dir + u.sep : "") + (t.base || ""); }, u.parse = function (t) { if (!i(t)) throw new TypeError("Parameter 'pathString' must be a string, not " + n(t)); var e = c(t); if (!e || 4 !== e.length) throw new TypeError("Invalid path '" + t + "'"); return e[1] = e[1] || "", e[2] = e[2] || "", e[3] = e[3] || "", { root: e[0], dir: e[0] + e[1].slice(0, e[1].length - 1), base: e[2], ext: e[3], name: e[2].slice(0, e[2].length - e[3].length) }; }, u.sep = "/", u.delimiter = ":", t.exports = u; }, 361: (t, e) => { var r = Object.prototype.hasOwnProperty; function n(t) { try { return decodeURIComponent(t.replace(/\+/g, " ")); } catch (t) { return null; } } function o(t) { try { return encodeURIComponent(t); } catch (t) { return null; } } e.stringify = function (t, e) { e = e || ""; var n, i, a = []; for (i in "string" != typeof e && (e = "?"), t) if (r.call(t, i)) { if ((n = t[i]) || null != n && !isNaN(n) || (n = ""), i = o(i), n = o(n), null === i || null === n) continue; a.push(i + "=" + n); } return a.length ? e + a.join("&") : ""; }, e.parse = function (t) { for (var e, r = /([^=?#&]+)=?([^&]*)/g, o = {}; e = r.exec(t);) { var i = n(e[1]), a = n(e[2]); null === i || null === a || i in o || (o[i] = a); } return o; }; }, 620: t => { t.exports = function (t, e) { if (e = e.split(":")[0], !(t = +t)) return !1; switch (e) { case "http": case "ws": return 80 !== t; case "https": case "wss": return 443 !== t; case "ftp": return 21 !== t; case "gopher": return 70 !== t; case "file": return !1; } return 0 !== t; }; }, 512: t => { var e = /^[-+]?0x[a-fA-F0-9]+$/, r = /^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/; !Number.parseInt && window.parseInt && (Number.parseInt = window.parseInt), !Number.parseFloat && window.parseFloat && (Number.parseFloat = window.parseFloat); var n = { hex: !0, leadingZeros: !0, decimalPoint: ".", eNotation: !0 }; t.exports = function (t) { var o = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; if (o = Object.assign({}, n, o), !t || "string" != typeof t) return t; var i = t.trim(); if (void 0 !== o.skipLike && o.skipLike.test(i)) return t; if (o.hex && e.test(i)) return Number.parseInt(i, 16); var a = r.exec(i); if (a) { var s = a[1], u = a[2], c = function (t) { return t && -1 !== t.indexOf(".") ? ("." === (t = t.replace(/0+$/, "")) ? t = "0" : "." === t[0] ? t = "0" + t : "." === t[t.length - 1] && (t = t.substr(0, t.length - 1)), t) : t; }(a[3]), l = a[4] || a[6]; if (!o.leadingZeros && u.length > 0 && s && "." !== i[2]) return t; if (!o.leadingZeros && u.length > 0 && !s && "." !== i[1]) return t; var f = Number(i), h = "" + f; return -1 !== h.search(/[eE]/) || l ? o.eNotation ? f : t : -1 !== i.indexOf(".") ? "0" === h && "" === c || h === c || s && h === "-" + c ? f : t : u ? c === h || s + c === h ? f : t : i === h || i === s + h ? f : t; } return t; }; }, 95: (t, e, r) => { function n(t) { return n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, n(t); } var o = r(620), i = r(361), a = /^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/, s = /[\n\r\t]/g, u = /^[A-Za-z][A-Za-z0-9+-.]*:\/\//, c = /:\d+$/, l = /^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i, f = /^[a-zA-Z]:/; function h(t) { return (t || "").toString().replace(a, ""); } var p = [["#", "hash"], ["?", "query"], function (t, e) { return v(e.protocol) ? t.replace(/\\/g, "/") : t; }, ["/", "pathname"], ["@", "auth", 1], [NaN, "host", void 0, 1, 1], [/:(\d*)$/, "port", void 0, 1], [NaN, "hostname", void 0, 1, 1]], d = { hash: 1, query: 1 }; function g(t) { var e, r = ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {}).location || {}, o = {}, i = n(t = t || r); if ("blob:" === t.protocol) o = new m(unescape(t.pathname), {});else if ("string" === i) for (e in o = new m(t, {}), d) delete o[e];else if ("object" === i) { for (e in t) e in d || (o[e] = t[e]); void 0 === o.slashes && (o.slashes = u.test(t.href)); } return o; } function v(t) { return "file:" === t || "ftp:" === t || "http:" === t || "https:" === t || "ws:" === t || "wss:" === t; } function y(t, e) { t = (t = h(t)).replace(s, ""), e = e || {}; var r, n = l.exec(t), o = n[1] ? n[1].toLowerCase() : "", i = !!n[2], a = !!n[3], u = 0; return i ? a ? (r = n[2] + n[3] + n[4], u = n[2].length + n[3].length) : (r = n[2] + n[4], u = n[2].length) : a ? (r = n[3] + n[4], u = n[3].length) : r = n[4], "file:" === o ? u >= 2 && (r = r.slice(2)) : v(o) ? r = n[4] : o ? i && (r = r.slice(2)) : u >= 2 && v(e.protocol) && (r = n[4]), { protocol: o, slashes: i || v(o), slashesCount: u, rest: r }; } function m(t, e, r) { if (t = (t = h(t)).replace(s, ""), !(this instanceof m)) return new m(t, e, r); var a, u, c, l, d, b, w = p.slice(), x = n(e), O = this, A = 0; for ("object" !== x && "string" !== x && (r = e, e = null), r && "function" != typeof r && (r = i.parse), a = !(u = y(t || "", e = g(e))).protocol && !u.slashes, O.slashes = u.slashes || a && e.slashes, O.protocol = u.protocol || e.protocol || "", t = u.rest, ("file:" === u.protocol && (2 !== u.slashesCount || f.test(t)) || !u.slashes && (u.protocol || u.slashesCount < 2 || !v(O.protocol))) && (w[3] = [/(.*)/, "pathname"]); A < w.length; A++) "function" != typeof (l = w[A]) ? (c = l[0], b = l[1], c != c ? O[b] = t : "string" == typeof c ? ~(d = "@" === c ? t.lastIndexOf(c) : t.indexOf(c)) && ("number" == typeof l[2] ? (O[b] = t.slice(0, d), t = t.slice(d + l[2])) : (O[b] = t.slice(d), t = t.slice(0, d))) : (d = c.exec(t)) && (O[b] = d[1], t = t.slice(0, d.index)), O[b] = O[b] || a && l[3] && e[b] || "", l[4] && (O[b] = O[b].toLowerCase())) : t = l(t, O); r && (O.query = r(O.query)), a && e.slashes && "/" !== O.pathname.charAt(0) && ("" !== O.pathname || "" !== e.pathname) && (O.pathname = function (t, e) { if ("" === t) return e; for (var r = (e || "/").split("/").slice(0, -1).concat(t.split("/")), n = r.length, o = r[n - 1], i = !1, a = 0; n--;) "." === r[n] ? r.splice(n, 1) : ".." === r[n] ? (r.splice(n, 1), a++) : a && (0 === n && (i = !0), r.splice(n, 1), a--); return i && r.unshift(""), "." !== o && ".." !== o || r.push(""), r.join("/"); }(O.pathname, e.pathname)), "/" !== O.pathname.charAt(0) && v(O.protocol) && (O.pathname = "/" + O.pathname), o(O.port, O.protocol) || (O.host = O.hostname, O.port = ""), O.username = O.password = "", O.auth && (~(d = O.auth.indexOf(":")) ? (O.username = O.auth.slice(0, d), O.username = encodeURIComponent(decodeURIComponent(O.username)), O.password = O.auth.slice(d + 1), O.password = encodeURIComponent(decodeURIComponent(O.password))) : O.username = encodeURIComponent(decodeURIComponent(O.auth)), O.auth = O.password ? O.username + ":" + O.password : O.username), O.origin = "file:" !== O.protocol && v(O.protocol) && O.host ? O.protocol + "//" + O.host : "null", O.href = O.toString(); } m.prototype = { set: function (t, e, r) { var n = this; switch (t) { case "query": "string" == typeof e && e.length && (e = (r || i.parse)(e)), n[t] = e; break; case "port": n[t] = e, o(e, n.protocol) ? e && (n.host = n.hostname + ":" + e) : (n.host = n.hostname, n[t] = ""); break; case "hostname": n[t] = e, n.port && (e += ":" + n.port), n.host = e; break; case "host": n[t] = e, c.test(e) ? (e = e.split(":"), n.port = e.pop(), n.hostname = e.join(":")) : (n.hostname = e, n.port = ""); break; case "protocol": n.protocol = e.toLowerCase(), n.slashes = !r; break; case "pathname": case "hash": if (e) { var a = "pathname" === t ? "/" : "#"; n[t] = e.charAt(0) !== a ? a + e : e; } else n[t] = e; break; case "username": case "password": n[t] = encodeURIComponent(e); break; case "auth": var s = e.indexOf(":"); ~s ? (n.username = e.slice(0, s), n.username = encodeURIComponent(decodeURIComponent(n.username)), n.password = e.slice(s + 1), n.password = encodeURIComponent(decodeURIComponent(n.password))) : n.username = encodeURIComponent(decodeURIComponent(e)); } for (var u = 0; u < p.length; u++) { var l = p[u]; l[4] && (n[l[1]] = n[l[1]].toLowerCase()); } return n.auth = n.password ? n.username + ":" + n.password : n.username, n.origin = "file:" !== n.protocol && v(n.protocol) && n.host ? n.protocol + "//" + n.host : "null", n.href = n.toString(), n; }, toString: function (t) { t && "function" == typeof t || (t = i.stringify); var e, r = this, o = r.host, a = r.protocol; a && ":" !== a.charAt(a.length - 1) && (a += ":"); var s = a + (r.protocol && r.slashes || v(r.protocol) ? "//" : ""); return r.username ? (s += r.username, r.password && (s += ":" + r.password), s += "@") : r.password ? (s += ":" + r.password, s += "@") : "file:" !== r.protocol && v(r.protocol) && !o && "/" !== r.pathname && (s += "@"), (":" === o[o.length - 1] || c.test(r.hostname) && !r.port) && (o += ":"), s += o + r.pathname, (e = "object" === n(r.query) ? t(r.query) : r.query) && (s += "?" !== e.charAt(0) ? "?" + e : e), r.hash && (s += r.hash), s; } }, m.extractProtocol = y, m.location = g, m.trimLeft = h, m.qs = i, t.exports = m; }, 930: () => {}, 227: () => {}, 347: () => {}, 724: () => {} }, e = {}; function r(n) { var o = e[n]; if (void 0 !== o) return o.exports; var i = e[n] = { id: n, loaded: !1, exports: {} }; return t[n].call(i.exports, i, i.exports, r), i.loaded = !0, i.exports; } r.amdO = {}, r.n = t => { var e = t && t.__esModule ? () => t.default : () => t; return r.d(e, { a: e }), e; }, r.d = (t, e) => { for (var n in e) r.o(e, n) && !r.o(t, n) && Object.defineProperty(t, n, { enumerable: !0, get: e[n] }); }, r.o = (t, e) => Object.prototype.hasOwnProperty.call(t, e), r.nmd = t => (t.paths = [], t.children || (t.children = []), t); var n = {}; (() => { r.d(n, { Gr: () => I, jK: () => _, cf: () => M, HM: () => U, eI: () => Pr, lD: () => G, yY: () => Ee, sw: () => Pe, np: () => ve, _M: () => Ne }); var t = r(95), e = r.n(t); function o(t) { if (!i(t)) throw new Error("Parameter was not an error"); } function i(t) { return "[object Error]" === (e = t, Object.prototype.toString.call(e)) || t instanceof Error; var e; } function a(t) { return a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, a(t); } function s(t) { return s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, s(t); } function u(t, e) { for (var r = 0; r < e.length; r++) { var n = e[r]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); } } function c(t) { if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t; } function l(t) { var e = "function" == typeof Map ? new Map() : void 0; return l = function (t) { if (null === t || (r = t, -1 === Function.toString.call(r).indexOf("[native code]"))) return t; var r; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== e) { if (e.has(t)) return e.get(t); e.set(t, n); } function n() { return f(t, arguments, d(this).constructor); } return n.prototype = Object.create(t.prototype, { constructor: { value: n, enumerable: !1, writable: !0, configurable: !0 } }), p(n, t); }, l(t); } function f(t, e, r) { return f = h() ? Reflect.construct.bind() : function (t, e, r) { var n = [null]; n.push.apply(n, e); var o = new (Function.bind.apply(t, n))(); return r && p(o, r.prototype), o; }, f.apply(null, arguments); } function h() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; if ("function" == typeof Proxy) return !0; try { return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0; } catch (t) { return !1; } } function p(t, e) { return p = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, p(t, e); } function d(t) { return d = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, d(t); } var g = function (t) { !function (t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && p(t, e); }(v, t); var e, r, n, l, f, g = (l = v, f = h(), function () { var t, e = d(l); if (f) { var r = d(this).constructor; t = Reflect.construct(e, arguments, r); } else t = e.apply(this, arguments); return function (t, e) { if (e && ("object" === s(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return c(t); }(this, t); }); function v(t, e) { var r; !function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); }(this, v); var n = function (t) { var e, r = ""; if (0 === t.length) e = {};else if (i(t[0])) e = { cause: t[0] }, r = t.slice(1).join(" ") || "";else if (t[0] && "object" === a(t[0])) e = Object.assign({}, t[0]), r = t.slice(1).join(" ") || "";else { if ("string" != typeof t[0]) throw new Error("Invalid arguments passed to Layerr"); e = {}, r = r = t.join(" ") || ""; } return { options: e, shortMessage: r }; }(Array.prototype.slice.call(arguments)), o = n.options, u = n.shortMessage; if (o.cause && (u = "".concat(u, ": ").concat(o.cause.message)), (r = g.call(this, u)).message = u, o.name && "string" == typeof o.name ? r.name = o.name : r.name = "Layerr", o.cause && Object.defineProperty(c(r), "_cause", { value: o.cause }), Object.defineProperty(c(r), "_info", { value: {} }), o.info && "object" === s(o.info) && Object.assign(r._info, o.info), Error.captureStackTrace) { var l = o.constructorOpt || r.constructor; Error.captureStackTrace(c(r), l); } return r; } return e = v, n = [{ key: "cause", value: function (t) { return o(t), t._cause && i(t._cause) ? t._cause : null; } }, { key: "fullStack", value: function (t) { o(t); var e = v.cause(t); return e ? "".concat(t.stack, "\ncaused by: ").concat(v.fullStack(e)) : t.stack; } }, { key: "info", value: function (t) { o(t); var e = {}, r = v.cause(t); return r && Object.assign(e, v.info(r)), t._info && Object.assign(e, t._info), e; } }], (r = [{ key: "cause", value: function () { return v.cause(this); } }, { key: "toString", value: function () { var t = this.name || this.constructor.name || this.constructor.prototype.name; return this.message && (t = "".concat(t, ": ").concat(this.message)), t; } }]) && u(e.prototype, r), n && u(e, n), Object.defineProperty(e, "prototype", { writable: !1 }), v; }(l(Error)); function v(t) { return v = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, v(t); } var y = r(441), m = r.n(y), b = "__PATH_SEPARATOR_POSIX__", w = "__PATH_SEPARATOR_WINDOWS__"; function x(t) { try { var e = t.replace(/\//g, b).replace(/\\\\/g, w); return encodeURIComponent(e).split(w).join("\\\\").split(b).join("/"); } catch (t) { throw new g(t, "Failed encoding path"); } } function O(t) { return t.startsWith("/") ? t : "/" + t; } function A(t) { var e = t; return "/" !== e[0] && (e = "/" + e), /^.+\/$/.test(e) && (e = e.substr(0, e.length - 1)), e; } function j() { for (var t = arguments.length, e = new Array(t), r = 0; r < t; r++) e[r] = arguments[r]; return function () { return function (t) { var e = []; if (0 === t.length) return ""; if ("string" != typeof t[0]) throw new TypeError("Url must be a string. Received " + t[0]); if (t[0].match(/^[^/:]+:\/*$/) && t.length > 1) { var r = t.shift(); t[0] = r + t[0]; } t[0].match(/^file:\/\/\//) ? t[0] = t[0].replace(/^([^/:]+):\/*/, "$1:///") : t[0] = t[0].replace(/^([^/:]+):\/*/, "$1://"); for (var n = 0; n < t.length; n++) { var o = t[n]; if ("string" != typeof o) throw new TypeError("Url must be a string. Received " + o); "" !== o && (n > 0 && (o = o.replace(/^[\/]+/, "")), o = n < t.length - 1 ? o.replace(/[\/]+$/, "") : o.replace(/[\/]+$/, "/"), e.push(o)); } var i = e.join("/"), a = (i = i.replace(/\/(\?|&|#[^!])/g, "$1")).split("?"); return a.shift() + (a.length > 0 ? "?" : "") + a.join("&"); }("object" === v(arguments[0]) ? arguments[0] : [].slice.call(arguments)); }(e.reduce(function (t, e, r) { return (0 === r || "/" !== e || "/" === e && "/" !== t[t.length - 1]) && t.push(e), t; }, [])); } var P = r(243), S = r.n(P), E = "abcdef0123456789"; function N(t, e) { var r = t.url.replace("//", ""), n = -1 == r.indexOf("/") ? "/" : r.slice(r.indexOf("/")), o = t.method ? t.method.toUpperCase() : "GET", i = !!/(^|,)\s*auth\s*($|,)/.test(e.qop) && "auth", a = "00000000".concat(e.nc).slice(-8), s = function (t, e, r, n, o, i, a) { var s = a || S()("".concat(e, ":").concat(r, ":").concat(n)); return t && "md5-sess" === t.toLowerCase() ? S()("".concat(s, ":").concat(o, ":").concat(i)) : s; }(e.algorithm, e.username, e.realm, e.password, e.nonce, e.cnonce, e.ha1), u = S()("".concat(o, ":").concat(n)), c = i ? S()("".concat(s, ":").concat(e.nonce, ":").concat(a, ":").concat(e.cnonce, ":").concat(i, ":").concat(u)) : S()("".concat(s, ":").concat(e.nonce, ":").concat(u)), l = { username: e.username, realm: e.realm, nonce: e.nonce, uri: n, qop: i, response: c, nc: a, cnonce: e.cnonce, algorithm: e.algorithm, opaque: e.opaque }, f = []; for (var h in l) l[h] && ("qop" === h || "nc" === h || "algorithm" === h ? f.push("".concat(h, "=").concat(l[h])) : f.push("".concat(h, '="').concat(l[h], '"'))); return "Digest ".concat(f.join(", ")); } var T = r(146), k = r.n(T); function C(t) { return k().decode(t); } var I, _, R = "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope ? self : "undefined" != typeof window ? window : globalThis, L = R.fetch.bind(R), M = (R.Headers, R.Request), U = R.Response; function D() { for (var t = arguments.length, e = new Array(t), r = 0; r < t; r++) e[r] = arguments[r]; if (0 === e.length) throw new Error("Failed creating sequence: No functions provided"); return function () { for (var t = arguments.length, r = new Array(t), n = 0; n < t; n++) r[n] = arguments[n]; for (var o = r; e.length > 0;) o = [e.shift().apply(this, o)]; return o[0]; }; } function F(t, e) { (null == e || e > t.length) && (e = t.length); for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r]; return n; } function $(t, e) { for (var r = 0; r < e.length; r++) { var n = e[r]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); } } !function (t) { t.Digest = "digest", t.None = "none", t.Password = "password", t.Token = "token"; }(I || (I = {})), function (t) { t.DataTypeNoLength = "data-type-no-length", t.InvalidAuthType = "invalid-auth-type", t.InvalidOutputFormat = "invalid-output-format", t.LinkUnsupportedAuthType = "link-unsupported-auth"; }(_ || (_ = {})), r(724); var B = "@@HOTPATCHER", W = function () {}; function V(t) { return { original: t, methods: [t], final: !1 }; } var z = function () { function t() { !function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); }(this, t), this._configuration = { registry: {}, getEmptyAction: "null" }, this.__type__ = B; } var e, r; return e = t, r = [{ key: "configuration", get: function () { return this._configuration; } }, { key: "getEmptyAction", get: function () { return this.configuration.getEmptyAction; }, set: function (t) { this.configuration.getEmptyAction = t; } }, { key: "control", value: function (t) { var e = this, r = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; if (!t || t.__type__ !== B) throw new Error("Failed taking control of target HotPatcher instance: Invalid type or object"); return Object.keys(t.configuration.registry).forEach(function (n) { e.configuration.registry.hasOwnProperty(n) ? r && (e.configuration.registry[n] = Object.assign({}, t.configuration.registry[n])) : e.configuration.registry[n] = Object.assign({}, t.configuration.registry[n]); }), t._configuration = this.configuration, this; } }, { key: "execute", value: function (t) { for (var e = this.get(t) || W, r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), o = 1; o < r; o++) n[o - 1] = arguments[o]; return e.apply(void 0, n); } }, { key: "get", value: function (t) { var e, r = this.configuration.registry[t]; if (!r) switch (this.getEmptyAction) { case "null": return null; case "throw": throw new Error("Failed handling method request: No method provided for override: ".concat(t)); default: throw new Error("Failed handling request which resulted in an empty method: Invalid empty-action specified: ".concat(this.getEmptyAction)); } return D.apply(void 0, function (t) { if (Array.isArray(t)) return F(t); }(e = r.methods) || function (t) { if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"]) return Array.from(t); }(e) || function (t, e) { if (t) { if ("string" == typeof t) return F(t, e); var r = Object.prototype.toString.call(t).slice(8, -1); return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? F(t, e) : void 0; } }(e) || function () { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }()); } }, { key: "isPatched", value: function (t) { return !!this.configuration.registry[t]; } }, { key: "patch", value: function (t, e) { var r = (arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}).chain, n = void 0 !== r && r; if (this.configuration.registry[t] && this.configuration.registry[t].final) throw new Error("Failed patching '".concat(t, "': Method marked as being final")); if ("function" != typeof e) throw new Error("Failed patching '".concat(t, "': Provided method is not a function")); if (n) this.configuration.registry[t] ? this.configuration.registry[t].methods.push(e) : this.configuration.registry[t] = V(e);else if (this.isPatched(t)) { var o = this.configuration.registry[t].original; this.configuration.registry[t] = Object.assign(V(e), { original: o }); } else this.configuration.registry[t] = V(e); return this; } }, { key: "patchInline", value: function (t, e) { this.isPatched(t) || this.patch(t, e); for (var r = arguments.length, n = new Array(r > 2 ? r - 2 : 0), o = 2; o < r; o++) n[o - 2] = arguments[o]; return this.execute.apply(this, [t].concat(n)); } }, { key: "plugin", value: function (t) { for (var e = this, r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), o = 1; o < r; o++) n[o - 1] = arguments[o]; return n.forEach(function (r) { e.patch(t, r, { chain: !0 }); }), this; } }, { key: "restore", value: function (t) { if (!this.isPatched(t)) throw new Error("Failed restoring method: No method present for key: ".concat(t)); if ("function" != typeof this.configuration.registry[t].original) throw new Error("Failed restoring method: Original method not found or of invalid type for key: ".concat(t)); return this.configuration.registry[t].methods = [this.configuration.registry[t].original], this; } }, { key: "setFinal", value: function (t) { if (!this.configuration.registry.hasOwnProperty(t)) throw new Error("Failed marking '".concat(t, "' as final: No method found for key")); return this.configuration.registry[t].final = !0, this; } }], r && $(e.prototype, r), Object.defineProperty(e, "prototype", { writable: !1 }), t; }(), q = null; function G() { return q || (q = new z()), q; } function H(t) { return function (t) { if (Array.isArray(t)) return X(t); }(t) || function (t) { if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"]) return Array.from(t); }(t) || function (t, e) { if (t) { if ("string" == typeof t) return X(t, e); var r = Object.prototype.toString.call(t).slice(8, -1); return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? X(t, e) : void 0; } }(t) || function () { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); } function X(t, e) { (null == e || e > t.length) && (e = t.length); for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r]; return n; } function Z(t) { return Z = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, Z(t); } function Y(t) { return function (t) { if ("object" !== Z(t) || null === t || "[object Object]" != Object.prototype.toString.call(t)) return !1; if (null === Object.getPrototypeOf(t)) return !0; for (var e = t; null !== Object.getPrototypeOf(e);) e = Object.getPrototypeOf(e); return Object.getPrototypeOf(t) === e; }(t) ? Object.assign({}, t) : Object.setPrototypeOf(Object.assign({}, t), Object.getPrototypeOf(t)); } function K() { for (var t = arguments.length, e = new Array(t), r = 0; r < t; r++) e[r] = arguments[r]; for (var n = null, o = [].concat(e); o.length > 0;) { var i = o.shift(); n = n ? J(n, i) : Y(i); } return n; } function J(t, e) { var r = Y(t); return Object.keys(e).forEach(function (t) { r.hasOwnProperty(t) ? Array.isArray(e[t]) ? r[t] = Array.isArray(r[t]) ? [].concat(H(r[t]), H(e[t])) : H(e[t]) : "object" === Z(e[t]) && e[t] ? r[t] = "object" === Z(r[t]) && r[t] ? J(r[t], e[t]) : Y(e[t]) : r[t] = e[t] : r[t] = e[t]; }), r; } function Q(t, e) { (null == e || e > t.length) && (e = t.length); for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r]; return n; } function tt(t) { var e, r = {}, n = function (t, e) { var r = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (!r) { if (Array.isArray(t) || (r = function (t, e) { if (t) { if ("string" == typeof t) return Q(t, e); var r = Object.prototype.toString.call(t).slice(8, -1); return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? Q(t, e) : void 0; } }(t)) || e && t && "number" == typeof t.length) { r && (t = r); var n = 0, o = function () {}; return { s: o, n: function () { return n >= t.length ? { done: !0 } : { done: !1, value: t[n++] }; }, e: function (t) { throw t; }, f: o }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var i, a = !0, s = !1; return { s: function () { r = r.call(t); }, n: function () { var t = r.next(); return a = t.done, t; }, e: function (t) { s = !0, i = t; }, f: function () { try { a || null == r.return || r.return(); } finally { if (s) throw i; } } }; }(t.keys()); try { for (n.s(); !(e = n.n()).done;) { var o = e.value; r[o] = t.get(o); } } catch (t) { n.e(t); } finally { n.f(); } return r; } function et() { for (var t = arguments.length, e = new Array(t), r = 0; r < t; r++) e[r] = arguments[r]; if (0 === e.length) return {}; var n = {}; return e.reduce(function (t, e) { return Object.keys(e).forEach(function (r) { var o = r.toLowerCase(); n.hasOwnProperty(o) ? t[n[o]] = e[r] : (n[o] = r, t[r] = e[r]); }), t; }, {}); } r(347); var rt = "function" == typeof ArrayBuffer, nt = Object.prototype.toString; function ot(t) { return rt && (t instanceof ArrayBuffer || "[object ArrayBuffer]" === nt.call(t)); } function it(t) { return null != t && null != t.constructor && "function" == typeof t.constructor.isBuffer && t.constructor.isBuffer(t); } function at(t) { return at = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, at(t); } function st(t, e, r) { return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t); } function ut(t, e) { (null == e || e > t.length) && (e = t.length); for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r]; return n; } function ct(t) { var e = G(); return e.patchInline("request", function (t) { return e.patchInline("fetch", L, t.url, function (t) { var e, r, n = {}, o = { method: t.method }; if (t.headers && (n = et(n, t.headers)), void 0 !== t.data) { var i = (e = function (t) { if ("string" == typeof t) return [t, {}]; if (it(t)) return [t, {}]; if (ot(t)) return [t, {}]; if (t && "object" === at(t)) return [JSON.stringify(t), { "content-type": "application/json" }]; throw new Error("Unable to convert request body: Unexpected body type: ".concat(at(t))); }(t.data), r = 2, function (t) { if (Array.isArray(t)) return t; }(e) || function (t, e) { var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (null != r) { var n, o, i = [], a = !0, s = !1; try { for (r = r.call(t); !(a = (n = r.next()).done) && (i.push(n.value), !e || i.length !== e); a = !0); } catch (t) { s = !0, o = t; } finally { try { a || null == r.return || r.return(); } finally { if (s) throw o; } } return i; } }(e, r) || function (t, e) { if (t) { if ("string" == typeof t) return ut(t, e); var r = Object.prototype.toString.call(t).slice(8, -1); return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? ut(t, e) : void 0; } }(e, r) || function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }()), a = i[0], s = i[1]; o.body = a, n = et(n, s); } return t.signal && (o.signal = t.signal), t.withCredentials && (o.credentials = "include"), o.headers = n, o; }(t)); }, t); } var lt, ft = (lt = function (t) { if (!t._digest) return ct(t); var e = t._digest; return delete t._digest, e.hasDigestAuth && (t = K(t, { headers: { Authorization: N(t, e) } })), st(ct(t), function (r) { var n, o, i = !1; return n = function (t) { return i ? t : r; }, (o = function () { if (401 == r.status) return e.hasDigestAuth = function (t, e) { var r = t.headers && t.headers.get("www-authenticate") || ""; if ("digest" !== r.split(/\s/)[0].toLowerCase()) return !1; for (var n = /([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi;;) { var o = n.exec(r); if (!o) break; e[o[1]] = o[2] || o[3]; } return e.nc += 1, e.cnonce = function () { for (var t = "", e = 0; e < 32; ++e) t = "".concat(t).concat(E[Math.floor(16 * Math.random())]); return t; }(), !0; }(r, e), function () { if (e.hasDigestAuth) return st(ct(t = K(t, { headers: { Authorization: N(t, e) } })), function (t) { return 401 == t.status ? e.hasDigestAuth = !1 : e.nc++, i = !0, t; }); }(); e.nc++; }()) && o.then ? o.then(n) : n(o); }); }, function () { for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; try { return Promise.resolve(lt.apply(this, t)); } catch (t) { return Promise.reject(t); } }); function ht(t, e, r) { var n = Y(t); return n.headers = et(e.headers, n.headers || {}, r.headers || {}), void 0 !== r.data && (n.data = r.data), r.signal && (n.signal = r.signal), e.httpAgent && (n.httpAgent = e.httpAgent), e.httpsAgent && (n.httpsAgent = e.httpsAgent), e.digest && (n._digest = e.digest), "boolean" == typeof e.withCredentials && (n.withCredentials = e.withCredentials), n; } var pt = r(637); function dt(t, e) { return function (t) { if (Array.isArray(t)) return t; }(t) || function (t, e) { var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (null != r) { var n, o, i = [], a = !0, s = !1; try { for (r = r.call(t); !(a = (n = r.next()).done) && (i.push(n.value), !e || i.length !== e); a = !0); } catch (t) { s = !0, o = t; } finally { try { a || null == r.return || r.return(); } finally { if (s) throw o; } } return i; } }(t, e) || function (t, e) { if (t) { if ("string" == typeof t) return gt(t, e); var r = Object.prototype.toString.call(t).slice(8, -1); return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? gt(t, e) : void 0; } }(t, e) || function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); } function gt(t, e) { (null == e || e > t.length) && (e = t.length); for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r]; return n; } var vt = { "[:alnum:]": ["\\p{L}\\p{Nl}\\p{Nd}", !0], "[:alpha:]": ["\\p{L}\\p{Nl}", !0], "[:ascii:]": ["\\x00-\\x7f", !1], "[:blank:]": ["\\p{Zs}\\t", !0], "[:cntrl:]": ["\\p{Cc}", !0], "[:digit:]": ["\\p{Nd}", !0], "[:graph:]": ["\\p{Z}\\p{C}", !0, !0], "[:lower:]": ["\\p{Ll}", !0], "[:print:]": ["\\p{C}", !0], "[:punct:]": ["\\p{P}", !0], "[:space:]": ["\\p{Z}\\t\\r\\n\\v\\f", !0], "[:upper:]": ["\\p{Lu}", !0], "[:word:]": ["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}", !0], "[:xdigit:]": ["A-Fa-f0-9", !1] }, yt = function (t) { return t.replace(/[[\]\\-]/g, "\\$&"); }, mt = function (t) { return t.join(""); }, bt = function (t, e) { var r = e; if ("[" !== t.charAt(r)) throw new Error("not in a brace expression"); var n, o = [], i = [], a = r + 1, s = !1, u = !1, c = !1, l = !1, f = r, h = ""; t: for (; a < t.length;) { var p = t.charAt(a); if ("!" !== p && "^" !== p || a !== r + 1) { if ("]" === p && s && !c) { f = a + 1; break; } if (s = !0, "\\" !== p || c) { if ("[" === p && !c) for (var d = 0, g = Object.entries(vt); d < g.length; d++) { var v = dt(g[d], 2), y = v[0], m = dt(v[1], 3), b = m[0], w = m[1], x = m[2]; if (t.startsWith(y, a)) { if (h) return ["$.", !1, t.length - r, !0]; a += y.length, x ? i.push(b) : o.push(b), u = u || w; continue t; } } c = !1, h ? (p > h ? o.push(yt(h) + "-" + yt(p)) : p === h && o.push(yt(p)), h = "", a++) : t.startsWith("-]", a + 1) ? (o.push(yt(p + "-")), a += 2) : t.startsWith("-", a + 1) ? (h = p, a += 2) : (o.push(yt(p)), a++); } else c = !0, a++; } else l = !0, a++; } if (f < a) return ["", !1, 0, !1]; if (!o.length && !i.length) return ["$.", !1, t.length - r, !0]; if (0 === i.length && 1 === o.length && /^\\?.$/.test(o[0]) && !l) return [(n = 2 === o[0].length ? o[0].slice(-1) : o[0], n.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&")), !1, f - r, !1]; var O = "[" + (l ? "^" : "") + mt(o) + "]", A = "[" + (l ? "" : "^") + mt(i) + "]"; return [o.length && i.length ? "(" + O + "|" + A + ")" : o.length ? O : A, u, f - r, !0]; }; function wt(t) { return function (t) { if (Array.isArray(t)) return Ct(t); }(t) || function (t) { if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"]) return Array.from(t); }(t) || kt(t) || function () { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); } function xt(t, e) { var r = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (!r) { if (Array.isArray(t) || (r = kt(t)) || e && t && "number" == typeof t.length) { r && (t = r); var n = 0, o = function () {}; return { s: o, n: function () { return n >= t.length ? { done: !0 } : { done: !1, value: t[n++] }; }, e: function (t) { throw t; }, f: o }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var i, a = !0, s = !1; return { s: function () { r = r.call(t); }, n: function () { var t = r.next(); return a = t.done, t; }, e: function (t) { s = !0, i = t; }, f: function () { try { a || null == r.return || r.return(); } finally { if (s) throw i; } } }; } function Ot(t, e, r) { return e in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t; } function At(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); } function jt(t, e) { for (var r = 0; r < e.length; r++) { var n = e[r]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); } } function Pt(t, e, r) { return e && jt(t.prototype, e), r && jt(t, r), Object.defineProperty(t, "prototype", { writable: !1 }), t; } function St(t, e) { return St = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, St(t, e); } function Et(t) { return Et = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Et(t); } function Nt(t) { return Nt = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, Nt(t); } function Tt(t, e) { return function (t) { if (Array.isArray(t)) return t; }(t) || function (t, e) { var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (null != r) { var n, o, i = [], a = !0, s = !1; try { for (r = r.call(t); !(a = (n = r.next()).done) && (i.push(n.value), !e || i.length !== e); a = !0); } catch (t) { s = !0, o = t; } finally { try { a || null == r.return || r.return(); } finally { if (s) throw o; } } return i; } }(t, e) || kt(t, e) || function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); } function kt(t, e) { if (t) { if ("string" == typeof t) return Ct(t, e); var r = Object.prototype.toString.call(t).slice(8, -1); return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? Ct(t, e) : void 0; } } function Ct(t, e) { (null == e || e > t.length) && (e = t.length); for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r]; return n; } var It = function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; return le(e), !(!r.nocomment && "#" === e.charAt(0)) && new pe(e, r).match(t); }; const _t = It; var Rt = /^\*+([^+@!?\*\[\(]*)$/, Lt = function (t) { return function (e) { return !e.startsWith(".") && e.endsWith(t); }; }, Mt = function (t) { return function (e) { return e.endsWith(t); }; }, Ut = function (t) { return t = t.toLowerCase(), function (e) { return !e.startsWith(".") && e.toLowerCase().endsWith(t); }; }, Dt = function (t) { return t = t.toLowerCase(), function (e) { return e.toLowerCase().endsWith(t); }; }, Ft = /^\*+\.\*+$/, $t = function (t) { return !t.startsWith(".") && t.includes("."); }, Bt = function (t) { return "." !== t && ".." !== t && t.includes("."); }, Wt = /^\.\*+$/, Vt = function (t) { return "." !== t && ".." !== t && t.startsWith("."); }, zt = /^\*+$/, qt = function (t) { return 0 !== t.length && !t.startsWith("."); }, Gt = function (t) { return 0 !== t.length && "." !== t && ".." !== t; }, Ht = /^\?+([^+@!?\*\[\(]*)?$/, Xt = function (t) { var e = Tt(t, 2), r = e[0], n = e[1], o = void 0 === n ? "" : n, i = Jt([r]); return o ? (o = o.toLowerCase(), function (t) { return i(t) && t.toLowerCase().endsWith(o); }) : i; }, Zt = function (t) { var e = Tt(t, 2), r = e[0], n = e[1], o = void 0 === n ? "" : n, i = Qt([r]); return o ? (o = o.toLowerCase(), function (t) { return i(t) && t.toLowerCase().endsWith(o); }) : i; }, Yt = function (t) { var e = Tt(t, 2), r = e[0], n = e[1], o = void 0 === n ? "" : n, i = Qt([r]); return o ? function (t) { return i(t) && t.endsWith(o); } : i; }, Kt = function (t) { var e = Tt(t, 2), r = e[0], n = e[1], o = void 0 === n ? "" : n, i = Jt([r]); return o ? function (t) { return i(t) && t.endsWith(o); } : i; }, Jt = function (t) { var e = Tt(t, 1)[0].length; return function (t) { return t.length === e && !t.startsWith("."); }; }, Qt = function (t) { var e = Tt(t, 1)[0].length; return function (t) { return t.length === e && "." !== t && ".." !== t; }; }, te = "object" === ("undefined" == typeof process ? "undefined" : Nt(process)) && process ? "object" === Nt(({"NODE_ENV":"production","PUBLIC_URL":"","WDS_SOCKET_HOST":undefined,"WDS_SOCKET_PATH":undefined,"WDS_SOCKET_PORT":undefined,"FAST_REFRESH":true,"REACT_APP_CLIENT":"userscript","REACT_APP_NAME":"KISS Translator","REACT_APP_NAME_CN":"简约翻译","REACT_APP_VERSION":"2.0.1","REACT_APP_HOMEPAGE":"https://github.com/fishjar/kiss-translator","REACT_APP_OPTIONSPAGE":"https://fishjar.github.io/kiss-translator/options.html","REACT_APP_OPTIONSPAGE_DEV":"http://localhost:3000/options.html","REACT_APP_LOGOURL":"https://fishjar.github.io/kiss-translator/images/logo192.png","REACT_APP_RULESURL":"https://fishjar.github.io/kiss-rules/kiss-rules_v2.json","REACT_APP_RULESURL_ON":"https://fishjar.github.io/kiss-rules/kiss-rules-on_v2.json","REACT_APP_RULESURL_OFF":"https://fishjar.github.io/kiss-rules/kiss-rules-off_v2.json","REACT_APP_USERSCRIPT_DOWNLOADURL":"https://fishjar.github.io/kiss-translator/kiss-translator.user.js","REACT_APP_USERSCRIPT_IOS_DOWNLOADURL":"https://fishjar.github.io/kiss-translator/kiss-translator-ios-safari.user.js"})) && ({"NODE_ENV":"production","PUBLIC_URL":"","WDS_SOCKET_HOST":undefined,"WDS_SOCKET_PATH":undefined,"WDS_SOCKET_PORT":undefined,"FAST_REFRESH":true,"REACT_APP_CLIENT":"userscript","REACT_APP_NAME":"KISS Translator","REACT_APP_NAME_CN":"简约翻译","REACT_APP_VERSION":"2.0.1","REACT_APP_HOMEPAGE":"https://github.com/fishjar/kiss-translator","REACT_APP_OPTIONSPAGE":"https://fishjar.github.io/kiss-translator/options.html","REACT_APP_OPTIONSPAGE_DEV":"http://localhost:3000/options.html","REACT_APP_LOGOURL":"https://fishjar.github.io/kiss-translator/images/logo192.png","REACT_APP_RULESURL":"https://fishjar.github.io/kiss-rules/kiss-rules_v2.json","REACT_APP_RULESURL_ON":"https://fishjar.github.io/kiss-rules/kiss-rules-on_v2.json","REACT_APP_RULESURL_OFF":"https://fishjar.github.io/kiss-rules/kiss-rules-off_v2.json","REACT_APP_USERSCRIPT_DOWNLOADURL":"https://fishjar.github.io/kiss-translator/kiss-translator.user.js","REACT_APP_USERSCRIPT_IOS_DOWNLOADURL":"https://fishjar.github.io/kiss-translator/kiss-translator-ios-safari.user.js"}) && ({"NODE_ENV":"production","PUBLIC_URL":"","WDS_SOCKET_HOST":undefined,"WDS_SOCKET_PATH":undefined,"WDS_SOCKET_PORT":undefined,"FAST_REFRESH":true,"REACT_APP_CLIENT":"userscript","REACT_APP_NAME":"KISS Translator","REACT_APP_NAME_CN":"简约翻译","REACT_APP_VERSION":"2.0.1","REACT_APP_HOMEPAGE":"https://github.com/fishjar/kiss-translator","REACT_APP_OPTIONSPAGE":"https://fishjar.github.io/kiss-translator/options.html","REACT_APP_OPTIONSPAGE_DEV":"http://localhost:3000/options.html","REACT_APP_LOGOURL":"https://fishjar.github.io/kiss-translator/images/logo192.png","REACT_APP_RULESURL":"https://fishjar.github.io/kiss-rules/kiss-rules_v2.json","REACT_APP_RULESURL_ON":"https://fishjar.github.io/kiss-rules/kiss-rules-on_v2.json","REACT_APP_RULESURL_OFF":"https://fishjar.github.io/kiss-rules/kiss-rules-off_v2.json","REACT_APP_USERSCRIPT_DOWNLOADURL":"https://fishjar.github.io/kiss-translator/kiss-translator.user.js","REACT_APP_USERSCRIPT_IOS_DOWNLOADURL":"https://fishjar.github.io/kiss-translator/kiss-translator-ios-safari.user.js"}).__MINIMATCH_TESTING_PLATFORM__ || process.platform : "posix"; It.sep = "win32" === te ? "\\" : "/"; var ee = Symbol("globstar **"); It.GLOBSTAR = ee; var re = { "!": { open: "(?:(?!(?:", close: "))[^/]*?)" }, "?": { open: "(?:", close: ")?" }, "+": { open: "(?:", close: ")+" }, "*": { open: "(?:", close: ")*" }, "@": { open: "(?:", close: ")" } }, ne = "[^/]", oe = ne + "*?", ie = function (t) { return t.split("").reduce(function (t, e) { return t[e] = !0, t; }, {}); }, ae = ie("().*{}+?[]^$\\!"), se = ie("[.("); It.filter = function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return function (r) { return It(r, t, e); }; }; var ue = function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return Object.assign({}, t, e); }; It.defaults = function (t) { if (!t || "object" !== Nt(t) || !Object.keys(t).length) return It; var e = It; return Object.assign(function (r, n) { return e(r, n, ue(t, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {})); }, { Minimatch: function (r) { !function (t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && St(t, e); }(a, r); var n, o, i = (n = a, o = function () { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; if ("function" == typeof Proxy) return !0; try { return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0; } catch (t) { return !1; } }(), function () { var t, e = Et(n); if (o) { var r = Et(this).constructor; t = Reflect.construct(e, arguments, r); } else t = e.apply(this, arguments); return function (t, e) { if (e && ("object" === Nt(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return function (t) { if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t; }(t); }(this, t); }); function a(e) { var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return At(this, a), i.call(this, e, ue(t, r)); } return Pt(a, null, [{ key: "defaults", value: function (r) { return e.defaults(ue(t, r)).Minimatch; } }]), a; }(e.Minimatch), unescape: function (r) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return e.unescape(r, ue(t, n)); }, escape: function (r) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return e.escape(r, ue(t, n)); }, filter: function (r) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return e.filter(r, ue(t, n)); }, defaults: function (r) { return e.defaults(ue(t, r)); }, makeRe: function (r) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return e.makeRe(r, ue(t, n)); }, braceExpand: function (r) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return e.braceExpand(r, ue(t, n)); }, match: function (r, n) { var o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; return e.match(r, n, ue(t, o)); }, sep: e.sep, GLOBSTAR: ee }); }; var ce = function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return le(t), e.nobrace || !/\{(?:(?!\{).)*\}/.test(t) ? [t] : pt(t); }; It.braceExpand = ce; var le = function (t) { if ("string" != typeof t) throw new TypeError("invalid pattern"); if (t.length > 65536) throw new TypeError("pattern is too long"); }; It.makeRe = function (t) { return new pe(t, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}).makeRe(); }, It.match = function (t, e) { var r = new pe(e, arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}); return t = t.filter(function (t) { return r.match(t); }), r.options.nonull && !t.length && t.push(e), t; }; var fe = /[?*]|[+@!]\(.*?\)|\[|\]/, he = function (t) { return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); }, pe = function () { function t(e) { var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; At(this, t), Ot(this, "options", void 0), Ot(this, "set", void 0), Ot(this, "pattern", void 0), Ot(this, "windowsPathsNoEscape", void 0), Ot(this, "nonegate", void 0), Ot(this, "negate", void 0), Ot(this, "comment", void 0), Ot(this, "empty", void 0), Ot(this, "preserveMultipleSlashes", void 0), Ot(this, "partial", void 0), Ot(this, "globSet", void 0), Ot(this, "globParts", void 0), Ot(this, "nocase", void 0), Ot(this, "isWindows", void 0), Ot(this, "platform", void 0), Ot(this, "windowsNoMagicRoot", void 0), Ot(this, "regexp", void 0), le(e), r = r || {}, this.options = r, this.pattern = e, this.platform = r.platform || te, this.isWindows = "win32" === this.platform, this.windowsPathsNoEscape = !!r.windowsPathsNoEscape || !1 === r.allowWindowsEscape, this.windowsPathsNoEscape && (this.pattern = this.pattern.replace(/\\/g, "/")), this.preserveMultipleSlashes = !!r.preserveMultipleSlashes, this.regexp = null, this.negate = !1, this.nonegate = !!r.nonegate, this.comment = !1, this.empty = !1, this.partial = !!r.partial, this.nocase = !!this.options.nocase, this.windowsNoMagicRoot = void 0 !== r.windowsNoMagicRoot ? r.windowsNoMagicRoot : !(!this.isWindows || !this.nocase), this.globSet = [], this.globParts = [], this.set = [], this.make(); } return Pt(t, [{ key: "hasMagic", value: function () { if (this.options.magicalBraces && this.set.length > 1) return !0; var t, e = xt(this.set); try { for (e.s(); !(t = e.n()).done;) { var r, n = xt(t.value); try { for (n.s(); !(r = n.n()).done;) if ("string" != typeof r.value) return !0; } catch (t) { n.e(t); } finally { n.f(); } } } catch (t) { e.e(t); } finally { e.f(); } return !1; } }, { key: "debug", value: function () {} }, { key: "make", value: function () { var t = this, e = this.pattern, r = this.options; if (r.nocomment || "#" !== e.charAt(0)) { if (e) { this.parseNegate(), this.globSet = wt(new Set(this.braceExpand())), r.debug && (this.debug = function () { var t; return (t = console).error.apply(t, arguments); }), this.debug(this.pattern, this.globSet); var n = this.globSet.map(function (e) { return t.slashSplit(e); }); this.globParts = this.preprocess(n), this.debug(this.pattern, this.globParts); var o = this.globParts.map(function (e, r, n) { if (t.isWindows && t.windowsNoMagicRoot) { var o = !("" !== e[0] || "" !== e[1] || "?" !== e[2] && fe.test(e[2]) || fe.test(e[3])), i = /^[a-z]:/i.test(e[0]); if (o) return [].concat(wt(e.slice(0, 4)), wt(e.slice(4).map(function (e) { return t.parse(e); }))); if (i) return [e[0]].concat(wt(e.slice(1).map(function (e) { return t.parse(e); }))); } return e.map(function (e) { return t.parse(e); }); }); if (this.debug(this.pattern, o), this.set = o.filter(function (t) { return -1 === t.indexOf(!1); }), this.isWindows) for (var i = 0; i < this.set.length; i++) { var a = this.set[i]; "" === a[0] && "" === a[1] && "?" === this.globParts[i][2] && "string" == typeof a[3] && /^[a-z]:$/i.test(a[3]) && (a[2] = "?"); } this.debug(this.pattern, this.set); } else this.empty = !0; } else this.comment = !0; } }, { key: "preprocess", value: function (t) { if (this.options.noglobstar) for (var e = 0; e < t.length; e++) for (var r = 0; r < t[e].length; r++) "**" === t[e][r] && (t[e][r] = "*"); var n = this.options.optimizationLevel, o = void 0 === n ? 1 : n; return o >= 2 ? (t = this.firstPhasePreProcess(t), t = this.secondPhasePreProcess(t)) : t = o >= 1 ? this.levelOneOptimize(t) : this.adjascentGlobstarOptimize(t), t; } }, { key: "adjascentGlobstarOptimize", value: function (t) { return t.map(function (t) { for (var e = -1; -1 !== (e = t.indexOf("**", e + 1));) { for (var r = e; "**" === t[r + 1];) r++; r !== e && t.splice(e, r - e); } return t; }); } }, { key: "levelOneOptimize", value: function (t) { return t.map(function (t) { return 0 === (t = t.reduce(function (t, e) { var r = t[t.length - 1]; return "**" === e && "**" === r ? t : ".." === e && r && ".." !== r && "." !== r && "**" !== r ? (t.pop(), t) : (t.push(e), t); }, [])).length ? [""] : t; }); } }, { key: "levelTwoFileOptimize", value: function (t) { Array.isArray(t) || (t = this.slashSplit(t)); var e = !1; do { if (e = !1, !this.preserveMultipleSlashes) { for (var r = 1; r < t.length - 1; r++) { var n = t[r]; 1 === r && "" === n && "" === t[0] || "." !== n && "" !== n || (e = !0, t.splice(r, 1), r--); } "." !== t[0] || 2 !== t.length || "." !== t[1] && "" !== t[1] || (e = !0, t.pop()); } for (var o = 0; -1 !== (o = t.indexOf("..", o + 1));) { var i = t[o - 1]; i && "." !== i && ".." !== i && "**" !== i && (e = !0, t.splice(o - 1, 2), o -= 2); } } while (e); return 0 === t.length ? [""] : t; } }, { key: "firstPhasePreProcess", value: function (t) { var e = !1; do { e = !1; var r, n = xt(t); try { for (n.s(); !(r = n.n()).done;) { for (var o = r.value, i = -1; -1 !== (i = o.indexOf("**", i + 1));) { for (var a = i; "**" === o[a + 1];) a++; a > i && o.splice(i + 1, a - i); var s = o[i + 1], u = o[i + 2], c = o[i + 3]; if (".." === s && u && "." !== u && ".." !== u && c && "." !== c && ".." !== c) { e = !0, o.splice(i, 1); var l = o.slice(0); l[i] = "**", t.push(l), i--; } } if (!this.preserveMultipleSlashes) { for (var f = 1; f < o.length - 1; f++) { var h = o[f]; 1 === f && "" === h && "" === o[0] || "." !== h && "" !== h || (e = !0, o.splice(f, 1), f--); } "." !== o[0] || 2 !== o.length || "." !== o[1] && "" !== o[1] || (e = !0, o.pop()); } for (var p = 0; -1 !== (p = o.indexOf("..", p + 1));) { var d = o[p - 1]; if (d && "." !== d && ".." !== d && "**" !== d) { e = !0; var g = 1 === p && "**" === o[p + 1] ? ["."] : []; o.splice.apply(o, [p - 1, 2].concat(g)), 0 === o.length && o.push(""), p -= 2; } } } } catch (t) { n.e(t); } finally { n.f(); } } while (e); return t; } }, { key: "secondPhasePreProcess", value: function (t) { for (var e = 0; e < t.length - 1; e++) for (var r = e + 1; r < t.length; r++) { var n = this.partsMatch(t[e], t[r], !this.preserveMultipleSlashes); n && (t[e] = n, t[r] = []); } return t.filter(function (t) { return t.length; }); } }, { key: "partsMatch", value: function (t, e) { for (var r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], n = 0, o = 0, i = [], a = ""; n < t.length && o < e.length;) if (t[n] === e[o]) i.push("b" === a ? e[o] : t[n]), n++, o++;else if (r && "**" === t[n] && e[o] === t[n + 1]) i.push(t[n]), n++;else if (r && "**" === e[o] && t[n] === e[o + 1]) i.push(e[o]), o++;else if ("*" !== t[n] || !e[o] || !this.options.dot && e[o].startsWith(".") || "**" === e[o]) { if ("*" !== e[o] || !t[n] || !this.options.dot && t[n].startsWith(".") || "**" === t[n]) return !1; if ("a" === a) return !1; a = "b", i.push(e[o]), n++, o++; } else { if ("b" === a) return !1; a = "a", i.push(t[n]), n++, o++; } return t.length === e.length && i; } }, { key: "parseNegate", value: function () { if (!this.nonegate) { for (var t = this.pattern, e = !1, r = 0, n = 0; n < t.length && "!" === t.charAt(n); n++) e = !e, r++; r && (this.pattern = t.slice(r)), this.negate = e; } } }, { key: "matchOne", value: function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], n = this.options; if (this.isWindows) { var o = "" === t[0] && "" === t[1] && "?" === t[2] && "string" == typeof t[3] && /^[a-z]:$/i.test(t[3]), i = "" === e[0] && "" === e[1] && "?" === e[2] && "string" == typeof e[3] && /^[a-z]:$/i.test(e[3]); if (o && i) { var a = t[3], s = e[3]; a.toLowerCase() === s.toLowerCase() && (t[3] = s); } else if (i && "string" == typeof t[0]) { var u = e[3], c = t[0]; u.toLowerCase() === c.toLowerCase() && (e[3] = c, e = e.slice(3)); } else if (o && "string" == typeof e[0]) { var l = t[3]; l.toLowerCase() === e[0].toLowerCase() && (e[0] = l, t = t.slice(3)); } } var f = this.options.optimizationLevel; (void 0 === f ? 1 : f) >= 2 && (t = this.levelTwoFileOptimize(t)), this.debug("matchOne", this, { file: t, pattern: e }), this.debug("matchOne", t.length, e.length); for (var h = 0, p = 0, d = t.length, g = e.length; h < d && p < g; h++, p++) { this.debug("matchOne loop"); var v = e[p], y = t[h]; if (this.debug(e, v, y), !1 === v) return !1; if (v === ee) { this.debug("GLOBSTAR", [e, v, y]); var m = h, b = p + 1; if (b === g) { for (this.debug("** at the end"); h < d; h++) if ("." === t[h] || ".." === t[h] || !n.dot && "." === t[h].charAt(0)) return !1; return !0; } for (; m < d;) { var w = t[m]; if (this.debug("\nglobstar while", t, m, e, b, w), this.matchOne(t.slice(m), e.slice(b), r)) return this.debug("globstar found match!", m, d, w), !0; if ("." === w || ".." === w || !n.dot && "." === w.charAt(0)) { this.debug("dot detected!", t, m, e, b); break; } this.debug("globstar swallow a segment, and continue"), m++; } return !(!r || (this.debug("\n>>> no match, partial?", t, m, e, b), m !== d)); } var x = void 0; if ("string" == typeof v ? (x = y === v, this.debug("string match", v, y, x)) : (x = v.test(y), this.debug("pattern match", v, y, x)), !x) return !1; } if (h === d && p === g) return !0; if (h === d) return r; if (p === g) return h === d - 1 && "" === t[h]; throw new Error("wtf?"); } }, { key: "braceExpand", value: function () { return ce(this.pattern, this.options); } }, { key: "parse", value: function (t) { var e = this; le(t); var r, n = this.options; if ("**" === t) return ee; if ("" === t) return ""; var o = null; (r = t.match(zt)) ? o = n.dot ? Gt : qt : (r = t.match(Rt)) ? o = (n.nocase ? n.dot ? Dt : Ut : n.dot ? Mt : Lt)(r[1]) : (r = t.match(Ht)) ? o = (n.nocase ? n.dot ? Zt : Xt : n.dot ? Yt : Kt)(r) : (r = t.match(Ft)) ? o = n.dot ? Bt : $t : (r = t.match(Wt)) && (o = Vt); for (var i, a, s = "", u = !1, c = !1, l = [], f = [], h = !1, p = !1, d = "." === t.charAt(0), g = n.dot || d, v = function (t) { return "." === t.charAt(0) ? "" : n.dot ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)"; }, y = function () { if (h) { switch (h) { case "*": s += oe, u = !0; break; case "?": s += ne, u = !0; break; default: s += "\\" + h; } e.debug("clearStateChar %j %j", h, s), h = !1; } }, m = 0; m < t.length && (a = t.charAt(m)); m++) if (this.debug("%s\t%s %s %j", t, m, s, a), c) { if ("/" === a) return !1; ae[a] && (s += "\\"), s += a, c = !1; } else switch (a) { case "/": return !1; case "\\": y(), c = !0; continue; case "?": case "*": case "+": case "@": case "!": this.debug("%s\t%s %s %j <-- stateChar", t, m, s, a), this.debug("call clearStateChar %j", h), y(), h = a, n.noext && y(); continue; case "(": if (!h) { s += "\\("; continue; } var b = { type: h, start: m - 1, reStart: s.length, open: re[h].open, close: re[h].close }; this.debug(this.pattern, "\t", b), l.push(b), s += b.open, 0 === b.start && "!" !== b.type && (d = !0, s += v(t.slice(m + 1))), this.debug("plType %j %j", h, s), h = !1; continue; case ")": var w = l[l.length - 1]; if (!w) { s += "\\)"; continue; } l.pop(), y(), u = !0, s += (i = w).close, "!" === i.type && f.push(Object.assign(i, { reEnd: s.length })); continue; case "|": var x = l[l.length - 1]; if (!x) { s += "\\|"; continue; } y(), s += "|", 0 === x.start && "!" !== x.type && (d = !0, s += v(t.slice(m + 1))); continue; case "[": y(); var O = Tt(bt(t, m), 4), A = O[0], j = O[1], P = O[2], S = O[3]; P ? (s += A, p = p || j, m += P - 1, u = u || S) : s += "\\["; continue; case "]": s += "\\" + a; continue; default: y(), s += he(a); } for (i = l.pop(); i; i = l.pop()) { var E = void 0; E = s.slice(i.reStart + i.open.length), this.debug(this.pattern, "setting tail", s, i), E = E.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (t, e, r) { return r || (r = "\\"), e + e + r + "|"; }), this.debug("tail=%j\n %s", E, E, i, s); var N = "*" === i.type ? oe : "?" === i.type ? ne : "\\" + i.type; u = !0, s = s.slice(0, i.reStart) + N + "\\(" + E; } y(), c && (s += "\\\\"); for (var T = se[s.charAt(0)], k = f.length - 1; k > -1; k--) { for (var C = f[k], I = s.slice(0, C.reStart), _ = s.slice(C.reStart, C.reEnd - 8), R = s.slice(C.reEnd), L = s.slice(C.reEnd - 8, C.reEnd) + R, M = I.split(")").length, U = I.split("(").length - M, D = R, F = 0; F < U; F++) D = D.replace(/\)[+*?]?/, ""); s = I + _ + (R = D) + ("" === R ? "(?:$|\\/)" : "") + L; } if ("" !== s && u && (s = "(?=.)" + s), T && (s = (d ? "" : g ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)") + s), !n.nocase || u || n.nocaseMagicOnly || (u = t.toUpperCase() !== t.toLowerCase()), !u) return s.replace(/\\(.)/g, "$1"); var $ = (n.nocase ? "i" : "") + (p ? "u" : ""); try { var B = o ? { _glob: t, _src: s, test: o } : { _glob: t, _src: s }; return Object.assign(new RegExp("^" + s + "$", $), B); } catch (t) { return this.debug("invalid regexp", t), new RegExp("$."); } } }, { key: "makeRe", value: function () { if (this.regexp || !1 === this.regexp) return this.regexp; var t = this.set; if (!t.length) return this.regexp = !1, this.regexp; var e = this.options, r = e.noglobstar ? oe : e.dot ? "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?" : "(?:(?!(?:\\/|^)\\.).)*?", n = e.nocase ? "i" : "", o = t.map(function (t) { var e = t.map(function (t) { return "string" == typeof t ? he(t) : t === ee ? ee : t._src; }); return e.forEach(function (t, n) { var o = e[n + 1], i = e[n - 1]; t === ee && i !== ee && (void 0 === i ? void 0 !== o && o !== ee ? e[n + 1] = "(?:\\/|" + r + "\\/)?" + o : e[n] = r : void 0 === o ? e[n - 1] = i + "(?:\\/|" + r + ")?" : o !== ee && (e[n - 1] = i + "(?:\\/|\\/" + r + "\\/)" + o, e[n + 1] = ee)); }), e.filter(function (t) { return t !== ee; }).join("/"); }).join("|"); o = "^(?:" + o + ")$", this.negate && (o = "^(?!" + o + ").*$"); try { this.regexp = new RegExp(o, n); } catch (t) { this.regexp = !1; } return this.regexp; } }, { key: "slashSplit", value: function (t) { return this.preserveMultipleSlashes ? t.split("/") : this.isWindows && /^\/\/[^\/]+/.test(t) ? [""].concat(wt(t.split(/\/+/))) : t.split(/\/+/); } }, { key: "match", value: function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.partial; if (this.debug("match", t, this.pattern), this.comment) return !1; if (this.empty) return "" === t; if ("/" === t && e) return !0; var r = this.options; this.isWindows && (t = t.split("\\").join("/")); var n = this.slashSplit(t); this.debug(this.pattern, "split", n); var o = this.set; this.debug(this.pattern, "set", o); var i = n[n.length - 1]; if (!i) for (var a = n.length - 2; !i && a >= 0; a--) i = n[a]; for (var s = 0; s < o.length; s++) { var u = o[s], c = n; if (r.matchBase && 1 === u.length && (c = [i]), this.matchOne(c, u, e)) return !!r.flipNegate || !this.negate; } return !r.flipNegate && this.negate; } }], [{ key: "defaults", value: function (t) { return It.defaults(t).Minimatch; } }]), t; }(); function de(t) { var e = new Error("".concat(arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "", "Invalid response: ").concat(t.status, " ").concat(t.statusText)); return e.status = t.status, e.response = t, e; } function ge(t, e) { var r = e.status; if (401 === r && t.digest) return e; if (r >= 400) throw de(e); return e; } function ve(t, e) { return arguments.length > 2 && void 0 !== arguments[2] && arguments[2] ? { data: e, headers: t.headers ? tt(t.headers) : {}, status: t.status, statusText: t.statusText } : e; } It.Minimatch = pe, It.escape = function (t) { var e = (arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}).windowsPathsNoEscape; return void 0 !== e && e ? t.replace(/[?*()[\]]/g, "[$&]") : t.replace(/[?*()[\]\\]/g, "\\$&"); }, It.unescape = function (t) { var e = (arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}).windowsPathsNoEscape; return void 0 !== e && e ? t.replace(/\[([^\/\\])\]/g, "$1") : t.replace(/((?!\\).|^)\[([^\/\\])\]/g, "$1$2").replace(/\\([^\/])/g, "$1"); }; var ye, me = function (t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; }(function (t, e, r) { var n, o, i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, a = ht({ url: j(t.remoteURL, x(e)), method: "COPY", headers: { Destination: j(t.remoteURL, x(r)) } }, t, i); return o = function (e) { ge(t, e); }, (n = ft(a)) && n.then || (n = Promise.resolve(n)), o ? n.then(o) : n; }), be = r(5), we = r(421), xe = r.n(we); function Oe(t, e) { (null == e || e > t.length) && (e = t.length); for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r]; return n; } function Ae(t) { return Ae = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, Ae(t); } function je(t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : ye.Original, n = xe().get(t, e); return "array" === r && !1 === Array.isArray(n) ? [n] : "object" === r && Array.isArray(n) ? n[0] : n; } function Pe(t) { return new Promise(function (e) { e(function (t) { var e = t.multistatus; if ("" === e) return { multistatus: { response: [] } }; if (!e) throw new Error("Invalid response: No root multistatus found"); var r = { multistatus: Array.isArray(e) ? e[0] : e }; return xe().set(r, "multistatus.response", je(r, "multistatus.response", ye.Array)), xe().set(r, "multistatus.response", xe().get(r, "multistatus.response").map(function (t) { return function (t) { var e = Object.assign({}, t); return e.status ? xe().set(e, "status", je(e, "status", ye.Object)) : (xe().set(e, "propstat", je(e, "propstat", ye.Object)), xe().set(e, "propstat.prop", je(e, "propstat.prop", ye.Object))), e; }(t); })), r; }(new be.XMLParser({ removeNSPrefix: !0, numberParseOptions: { hex: !0, leadingZeros: !1 } }).parse(t))); }); } function Se(t, e) { var r, n, o = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], i = t.getlastmodified, a = void 0 === i ? null : i, s = t.getcontentlength, u = void 0 === s ? "0" : s, c = t.resourcetype, l = void 0 === c ? null : c, f = t.getcontenttype, h = void 0 === f ? null : f, p = t.getetag, d = void 0 === p ? null : p, g = l && "object" === Ae(l) && void 0 !== l.collection ? "directory" : "file", v = (r = e, (n = document.createElement("textarea")).innerHTML = r, n.value), y = { filename: v, basename: m().basename(v), lastmod: a, size: parseInt(u, 10), type: g, etag: "string" == typeof d ? d.replace(/"/g, "") : null }; return "file" === g && (y.mime = h && "string" == typeof h ? h.split(";")[0] : ""), o && (y.props = t), y; } function Ee(t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], n = null; try { t.multistatus.response[0].propstat && (n = t.multistatus.response[0]); } catch (t) {} if (!n) throw new Error("Failed getting item stat: bad response"); var o, i, a = n.propstat, s = a.prop, u = (o = a.status.split(" ", 3), i = 3, function (t) { if (Array.isArray(t)) return t; }(o) || function (t, e) { var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (null != r) { var n, o, i = [], a = !0, s = !1; try { for (r = r.call(t); !(a = (n = r.next()).done) && (i.push(n.value), !e || i.length !== e); a = !0); } catch (t) { s = !0, o = t; } finally { try { a || null == r.return || r.return(); } finally { if (s) throw o; } } return i; } }(o, i) || function (t, e) { if (t) { if ("string" == typeof t) return Oe(t, e); var r = Object.prototype.toString.call(t).slice(8, -1); return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? Oe(t, e) : void 0; } }(o, i) || function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }()), c = (u[0], u[1]), l = u[2], f = parseInt(c, 10); if (f >= 400) { var h = new Error("Invalid response: ".concat(f, " ").concat(l)); throw h.status = f, h; } return Se(s, A(e), r); } function Ne(t) { switch (t.toString()) { case "-3": return "unlimited"; case "-2": case "-1": return "unknown"; default: return parseInt(t, 10); } } function Te(t, e, r) { return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t); } !function (t) { t.Array = "array", t.Object = "object", t.Original = "original"; }(ye || (ye = {})); var ke = function (t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; }(function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, n = r.details, o = void 0 !== n && n, i = ht({ url: j(t.remoteURL, x(e)), method: "PROPFIND", headers: { Accept: "text/plain,application/xml", Depth: "0" } }, t, r); return Te(ft(i), function (r) { return ge(t, r), Te(r.text(), function (t) { return Te(Pe(t), function (t) { var n = Ee(t, e, o); return ve(r, n, o); }); }); }); }); function Ce(t, e, r) { return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t); } function Ie(t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; } function _e() {} function Re(t, e) { if (!e) return t && t.then ? t.then(_e) : Promise.resolve(); } var Le = "undefined" != typeof Symbol ? Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator")) : "@@iterator"; function Me(t, e, r) { if (!t.s) { if (r instanceof Ue) { if (!r.s) return void (r.o = Me.bind(null, t, e)); 1 & e && (e = r.s), r = r.v; } if (r && r.then) return void r.then(Me.bind(null, t, e), Me.bind(null, t, 2)); t.s = e, t.v = r; var n = t.o; n && n(t); } } var Ue = function () { function t() {} return t.prototype.then = function (e, r) { var n = new t(), o = this.s; if (o) { var i = 1 & o ? e : r; if (i) { try { Me(n, 1, i(this.v)); } catch (t) { Me(n, 2, t); } return n; } return this; } return this.o = function (t) { try { var o = t.v; 1 & t.s ? Me(n, 1, e ? e(o) : o) : r ? Me(n, 1, r(o)) : Me(n, 2, o); } catch (t) { Me(n, 2, t); } }, n; }, t; }(); function De(t) { return t instanceof Ue && 1 & t.s; } function Fe(t, e) { var r = Object.keys(t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(t); e && (n = n.filter(function (e) { return Object.getOwnPropertyDescriptor(t, e).enumerable; })), r.push.apply(r, n); } return r; } function $e(t) { for (var e = 1; e < arguments.length; e++) { var r = null != arguments[e] ? arguments[e] : {}; e % 2 ? Fe(Object(r), !0).forEach(function (e) { Be(t, e, r[e]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(r)) : Fe(Object(r)).forEach(function (e) { Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(r, e)); }); } return t; } function Be(t, e, r) { return e in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t; } var We = Ie(function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, n = function (t) { if (!t || "/" === t) return []; var e = t, r = []; do { r.push(e), e = m().dirname(e); } while (e && "/" !== e); return r; }(A(e)); n.sort(function (t, e) { return t.length > e.length ? 1 : e.length > t.length ? -1 : 0; }); var o = !1; return function (t, e, r) { if ("function" == typeof t[Le]) { var n, o, i, a = t[Le](); if (function t(s) { try { for (; !((n = a.next()).done || r && r());) if ((s = e(n.value)) && s.then) { if (!De(s)) return void s.then(t, i || (i = Me.bind(null, o = new Ue(), 2))); s = s.v; } o ? Me(o, 1, s) : o = s; } catch (t) { Me(o || (o = new Ue()), 2, t); } }(), a.return) { var s = function (t) { try { n.done || a.return(); } catch (t) {} return t; }; if (o && o.then) return o.then(s, function (t) { throw s(t); }); s(); } return o; } if (!("length" in t)) throw new TypeError("Object is not iterable"); for (var u = [], c = 0; c < t.length; c++) u.push(t[c]); return function (t, e, r) { var n, o, i = -1; return function a(s) { try { for (; ++i < t.length && (!r || !r());) if ((s = e(i)) && s.then) { if (!De(s)) return void s.then(a, o || (o = Me.bind(null, n = new Ue(), 2))); s = s.v; } n ? Me(n, 1, s) : n = s; } catch (t) { Me(n || (n = new Ue()), 2, t); } }(), n; }(u, function (t) { return e(u[t]); }, r); }(n, function (n) { return i = function () { return function (r, o) { try { var i = Ce(ke(t, n), function (t) { if ("directory" !== t.type) throw new Error("Path includes a file: ".concat(e)); }); } catch (t) { return o(t); } return i && i.then ? i.then(void 0, o) : i; }(0, function (e) { var i = e; return function () { if (404 === i.status) return o = !0, Re(Ve(t, n, $e($e({}, r), {}, { recursive: !1 }))); throw e; }(); }); }, (a = function () { if (o) return Re(Ve(t, n, $e($e({}, r), {}, { recursive: !1 }))); }()) && a.then ? a.then(i) : i(); var i, a; }, function () { return !1; }); }), Ve = Ie(function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; if (!0 === r.recursive) return We(t, e, r); var n, o = ht({ url: j(t.remoteURL, (n = x(e), n.endsWith("/") ? n : n + "/")), method: "MKCOL" }, t, r); return Ce(ft(o), function (e) { ge(t, e); }); }); var ze = r(227), qe = r.n(ze); function Ge(t) { return Ge = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, Ge(t); } var He = function (t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; }(function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, n = {}; if ("object" === Ge(r.range) && "number" == typeof r.range.start) { var o = "bytes=".concat(r.range.start, "-"); "number" == typeof r.range.end && (o = "".concat(o).concat(r.range.end)), n.Range = o; } var i, a, s = ht({ url: j(t.remoteURL, x(e)), method: "GET", headers: n }, t, r); return a = function (e) { if (ge(t, e), n.Range && 206 !== e.status) { var o = new Error("Invalid response code for partial request: ".concat(e.status)); throw o.status = e.status, o; } return r.callback && setTimeout(function () { r.callback(e); }, 0), e.body; }, (i = ft(s)) && i.then || (i = Promise.resolve(i)), a ? i.then(a) : i; }), Xe = function () {}, Ze = function (t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; }(function (t, e, r) { r.url || (r.url = j(t.remoteURL, x(e))); var n, o, i = ht(r, t, {}); return o = function (e) { return ge(t, e), e; }, (n = ft(i)) && n.then || (n = Promise.resolve(n)), o ? n.then(o) : n; }), Ye = function (t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; }(function (t, e) { var r, n, o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, i = ht({ url: j(t.remoteURL, x(e)), method: "DELETE" }, t, o); return n = function (e) { ge(t, e); }, (r = ft(i)) && r.then || (r = Promise.resolve(r)), n ? r.then(n) : r; }), Ke = function (t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; }(function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; return function (n, o) { try { var i = (a = ke(t, e, r), s = function () { return !0; }, u ? s ? s(a) : a : (a && a.then || (a = Promise.resolve(a)), s ? a.then(s) : a)); } catch (t) { return o(t); } var a, s, u; return i && i.then ? i.then(void 0, o) : i; }(0, function (t) { if (404 === t.status) return !1; throw t; }); }); function Je(t, e, r) { return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t); } var Qe = function (t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; }(function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, n = ht({ url: j(t.remoteURL, x(e), "/"), method: "PROPFIND", headers: { Accept: "text/plain,application/xml", Depth: r.deep ? "infinity" : "1" } }, t, r); return Je(ft(n), function (n) { return ge(t, n), Je(n.text(), function (o) { if (!o) throw new Error("Failed parsing directory contents: Empty response"); return Je(Pe(o), function (o) { var i = O(e), a = function (t, e, r) { var n = arguments.length > 3 && void 0 !== arguments[3] && arguments[3], o = arguments.length > 4 && void 0 !== arguments[4] && arguments[4], i = m().join(e, "/"), a = t.multistatus.response.map(function (t) { var e = function (t) { try { return t.replace(/^https?:\/\/[^\/]+/, ""); } catch (t) { throw new g(t, "Failed normalising HREF"); } }(t.href); return Se(t.propstat.prop, "/" === i ? decodeURIComponent(A(e)) : decodeURIComponent(A(m().relative(i, e))), n); }); return o ? a : a.filter(function (t) { return t.basename && ("file" === t.type || t.filename !== r.replace(/\/$/, "")); }); }(o, O(t.remoteBasePath || t.remotePath), i, r.details, r.includeSelf); return r.glob && (a = function (t, e) { return t.filter(function (t) { return _t(t.filename, e, { matchBase: !0 }); }); }(a, r.glob)), ve(n, a, r.details); }); }); }); }); function tr(t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; } var er = tr(function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, n = ht({ url: j(t.remoteURL, x(e)), method: "GET", headers: { Accept: "text/plain" }, transformResponse: [ir] }, t, r); return rr(ft(n), function (e) { return ge(t, e), rr(e.text(), function (t) { return ve(e, t, r.details); }); }); }); function rr(t, e, r) { return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t); } var nr = tr(function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, n = ht({ url: j(t.remoteURL, x(e)), method: "GET" }, t, r); return rr(ft(n), function (e) { var n; return ge(t, e), function (t, e) { var r = t(); return r && r.then ? r.then(e) : e(); }(function () { return rr(e.arrayBuffer(), function (t) { n = t; }); }, function () { return ve(e, n, r.details); }); }); }), or = tr(function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, n = r.format, o = void 0 === n ? "binary" : n; if ("binary" !== o && "text" !== o) throw new g({ info: { code: _.InvalidOutputFormat } }, "Invalid output format: ".concat(o)); return "text" === o ? er(t, e, r) : nr(t, e, r); }), ir = function (t) { return t; }; function ar(t) { return ar = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t; } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; }, ar(t); } function sr(t, e) { var r = Object.keys(t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(t); e && (n = n.filter(function (e) { return Object.getOwnPropertyDescriptor(t, e).enumerable; })), r.push.apply(r, n); } return r; } function ur(t, e, r) { return e in t ? Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = r, t; } function cr(t) { return new be.XMLBuilder({ attributeNamePrefix: "@_", format: !0, ignoreAttributes: !1, suppressEmptyNode: !0 }).build(lr({ lockinfo: { "@_xmlns:d": "DAV:", lockscope: { exclusive: {} }, locktype: { write: {} }, owner: { href: t } } }, "d")); } function lr(t, e) { var r = function (t) { for (var e = 1; e < arguments.length; e++) { var r = null != arguments[e] ? arguments[e] : {}; e % 2 ? sr(Object(r), !0).forEach(function (e) { ur(t, e, r[e]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(r)) : sr(Object(r)).forEach(function (e) { Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(r, e)); }); } return t; }({}, t); for (var n in r) r.hasOwnProperty(n) && (r[n] && "object" === ar(r[n]) && -1 === n.indexOf(":") ? (r["".concat(e, ":").concat(n)] = lr(r[n], e), delete r[n]) : !1 === /^@_/.test(n) && (r["".concat(e, ":").concat(n)] = r[n], delete r[n])); return r; } function fr(t, e, r) { return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t); } function hr(t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; } var pr = hr(function (t, e, r) { var n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, o = ht({ url: j(t.remoteURL, x(e)), method: "UNLOCK", headers: { "Lock-Token": r } }, t, n); return fr(ft(o), function (e) { if (ge(t, e), 204 !== e.status && 200 !== e.status) throw de(e); }); }), dr = hr(function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, n = r.refreshToken, o = r.timeout, i = { Accept: "text/plain,application/xml", Timeout: void 0 === o ? gr : o }; n && (i.If = n); var a = ht({ url: j(t.remoteURL, x(e)), method: "LOCK", headers: i, data: cr(t.contactHref) }, t, r); return fr(ft(a), function (e) { return ge(t, e), fr(e.text(), function (t) { var r, n = (r = t, new be.XMLParser({ removeNSPrefix: !0, parseAttributeValue: !0, parseTagValue: !0 }).parse(r)), o = xe().get(n, "prop.lockdiscovery.activelock.locktoken.href"), i = xe().get(n, "prop.lockdiscovery.activelock.timeout"); if (!o) throw de(e, "No lock token received: "); return { token: o, serverTimeout: i }; }); }); }), gr = "Infinite, Second-4100000000"; function vr(t, e) { (null == e || e > t.length) && (e = t.length); for (var r = 0, n = new Array(e); r < e; r++) n[r] = t[r]; return n; } function yr(t, e, r) { return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t); } var mr = function (t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; }(function (t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, r = e.path || "/", n = ht({ url: j(t.remoteURL, r), method: "PROPFIND", headers: { Accept: "text/plain,application/xml", Depth: "0" } }, t, e); return yr(ft(n), function (r) { return ge(t, r), yr(r.text(), function (t) { return yr(Pe(t), function (t) { var n = function (t) { try { var e = (o = t.multistatus.response, i = 1, function (t) { if (Array.isArray(t)) return t; }(o) || function (t, e) { var r = null == t ? null : "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (null != r) { var n, o, i = [], a = !0, s = !1; try { for (r = r.call(t); !(a = (n = r.next()).done) && (i.push(n.value), !e || i.length !== e); a = !0); } catch (t) { s = !0, o = t; } finally { try { a || null == r.return || r.return(); } finally { if (s) throw o; } } return i; } }(o, i) || function (t, e) { if (t) { if ("string" == typeof t) return vr(t, e); var r = Object.prototype.toString.call(t).slice(8, -1); return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? vr(t, e) : void 0; } }(o, i) || function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }())[0].propstat.prop, r = e["quota-used-bytes"], n = e["quota-available-bytes"]; return void 0 !== r && void 0 !== n ? { used: parseInt(r, 10), available: Ne(n) } : null; } catch (t) {} var o, i; return null; }(t); return ve(r, n, e.details); }); }); }); }); function br(t, e, r) { return r ? e ? e(t) : t : (t && t.then || (t = Promise.resolve(t)), e ? t.then(e) : t); } var wr = function (t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; }(function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, n = r.details, o = void 0 !== n && n, i = ht({ url: j(t.remoteURL, x(e)), method: "SEARCH", headers: { Accept: "text/plain,application/xml", "Content-Type": t.headers["Content-Type"] || "application/xml; charset=utf-8" } }, t, r); return br(ft(i), function (r) { return ge(t, r), br(r.text(), function (t) { return br(Pe(t), function (t) { var n = function (t, e, r) { var n = { truncated: !1, results: [] }; return n.truncated = t.multistatus.response.some(function (t) { var r, n; return "507" === (null === (r = (t.status || (null === (n = t.propstat) || void 0 === n ? void 0 : n.status)).split(" ", 3)) || void 0 === r ? void 0 : r[1]) && t.href.replace(/\/$/, "").endsWith(x(e).replace(/\/$/, "")); }), t.multistatus.response.forEach(function (t) { if (void 0 !== t.propstat) { var e = t.href.split("/").map(decodeURIComponent).join("/"); n.results.push(Se(t.propstat.prop, e, r)); } }), n; }(t, e, o); return ve(r, n, o); }); }); }); }), xr = function (t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; }(function (t, e, r) { var n, o, i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, a = ht({ url: j(t.remoteURL, x(e)), method: "MOVE", headers: { Destination: j(t.remoteURL, x(r)) } }, t, i); return o = function (e) { ge(t, e); }, (n = ft(a)) && n.then || (n = Promise.resolve(n)), o ? n.then(o) : n; }), Or = r(918), Ar = function (t) { return function () { for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r]; try { return Promise.resolve(t.apply(this, e)); } catch (t) { return Promise.reject(t); } }; }(function (t, e, r) { var n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, o = n.contentLength, i = void 0 === o || o, a = n.overwrite, s = void 0 === a || a, u = { "Content-Type": "application/octet-stream" }; !1 === i || (u["Content-Length"] = "".concat("number" == typeof i ? i : function (t) { if (ot(t)) return t.byteLength; if (it(t)) return t.length; if ("string" == typeof t) return (0, Or.k)(t); throw new g({ info: { code: _.DataTypeNoLength } }, "Cannot calculate data length: Invalid type"); }(r))), s || (u["If-None-Match"] = "*"); var c, l, f = ht({ url: j(t.remoteURL, x(e)), method: "PUT", headers: u, data: r }, t, n); return l = function (e) { try { ge(t, e); } catch (t) { var r = t; if (412 !== r.status || s) throw r; return !1; } return !0; }, (c = ft(f)) && c.then || (c = Promise.resolve(c)), l ? c.then(l) : c; }), jr = "https://github.com/perry-mitchell/webdav-client/blob/master/LOCK_CONTACT.md"; function Pr(t) { var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = r.authType, o = void 0 === n ? null : n, i = r.remoteBasePath, a = r.contactHref, s = void 0 === a ? jr : a, u = r.ha1, c = r.headers, l = void 0 === c ? {} : c, f = r.httpAgent, h = r.httpsAgent, p = r.password, d = r.token, v = r.username, y = r.withCredentials, m = o; m || (m = v || p ? I.Password : I.None); var b, w, O = { authType: m, remoteBasePath: i, contactHref: s, ha1: u, headers: Object.assign({}, l), httpAgent: f, httpsAgent: h, password: p, remotePath: (b = t, w = new (e())(b).pathname, w.length <= 0 && (w = "/"), A(w)), remoteURL: t, token: d, username: v, withCredentials: y }; return function (t, e, r, n, o) { switch (t.authType) { case I.Digest: t.digest = function (t, e, r) { return { username: t, password: e, ha1: r, nc: 0, algorithm: "md5", hasDigestAuth: !1 }; }(e, r, o); break; case I.None: break; case I.Password: t.headers.Authorization = function (t, e) { var r, n = (r = "".concat(t, ":").concat(e), k().encode(r)); return "Basic ".concat(n); }(e, r); break; case I.Token: t.headers.Authorization = "".concat((i = n).token_type, " ").concat(i.access_token); break; default: throw new g({ info: { code: _.InvalidAuthType } }, "Invalid auth type: ".concat(t.authType)); } var i; }(O, v, p, d, u), { copyFile: function (t, e, r) { return me(O, t, e, r); }, createDirectory: function (t, e) { return Ve(O, t, e); }, createReadStream: function (t, e) { return function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, n = new (0, qe().PassThrough)(); return He(t, e, r).then(function (t) { t.pipe(n); }).catch(function (t) { n.emit("error", t); }), n; }(O, t, e); }, createWriteStream: function (t, e, r) { return function (t, e) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : Xe, o = new (0, qe().PassThrough)(), i = {}; !1 === r.overwrite && (i["If-None-Match"] = "*"); var a = ht({ url: j(t.remoteURL, x(e)), method: "PUT", headers: i, data: o, maxRedirects: 0 }, t, r); return ft(a).then(function (e) { return ge(t, e); }).then(function (t) { setTimeout(function () { n(t); }, 0); }).catch(function (t) { o.emit("error", t); }), o; }(O, t, e, r); }, customRequest: function (t, e) { return Ze(O, t, e); }, deleteFile: function (t, e) { return Ye(O, t, e); }, exists: function (t, e) { return Ke(O, t, e); }, getDirectoryContents: function (t, e) { return Qe(O, t, e); }, getFileContents: function (t, e) { return or(O, t, e); }, getFileDownloadLink: function (t) { return function (t, e) { var r = j(t.remoteURL, x(e)), n = /^https:/i.test(r) ? "https" : "http"; switch (t.authType) { case I.None: break; case I.Password: var o = C(t.headers.Authorization.replace(/^Basic /i, "").trim()); r = r.replace(/^https?:\/\//, "".concat(n, "://").concat(o, "@")); break; default: throw new g({ info: { code: _.LinkUnsupportedAuthType } }, "Unsupported auth type for file link: ".concat(t.authType)); } return r; }(O, t); }, getFileUploadLink: function (t) { return function (t, e) { var r = "".concat(j(t.remoteURL, x(e)), "?Content-Type=application/octet-stream"), n = /^https:/i.test(r) ? "https" : "http"; switch (t.authType) { case I.None: break; case I.Password: var o = C(t.headers.Authorization.replace(/^Basic /i, "").trim()); r = r.replace(/^https?:\/\//, "".concat(n, "://").concat(o, "@")); break; default: throw new g({ info: { code: _.LinkUnsupportedAuthType } }, "Unsupported auth type for file link: ".concat(t.authType)); } return r; }(O, t); }, getHeaders: function () { return Object.assign({}, O.headers); }, getQuota: function (t) { return mr(O, t); }, lock: function (t, e) { return dr(O, t, e); }, moveFile: function (t, e, r) { return xr(O, t, e, r); }, putFileContents: function (t, e, r) { return Ar(O, t, e, r); }, search: function (t, e) { return wr(O, t, e); }, setHeaders: function (t) { O.headers = Object.assign({}, t); }, stat: function (t, e) { return ke(O, t, e); }, unlock: function (t, e, r) { return pr(O, t, e, r); } }; } })(); var o = n.Gr, i = n.jK, a = n.cf, s = n.HM, u = n.eI, c = n.lD, l = n.yY, f = n.sw, h = n.np, p = n._M; ;// CONCATENATED MODULE: ./src/libs/sync.js c().patch("request",opts=>{return fetchPatcher(opts.url,{method:opts.method,headers:opts.headers,body:opts.data});});const syncByWebdav=async(data,_ref)=>{let{syncUrl,syncUser,syncKey}=_ref;const client=u(syncUrl,{username:syncUser,password:syncKey});const pathname="/".concat(APP_LCNAME);const filename="/".concat(APP_LCNAME,"/").concat(data.key);if((await client.exists(pathname))===false){await client.createDirectory(pathname);}const isExist=await client.exists(filename);if(isExist){const cont=await client.getFileContents(filename,{format:"text"});const webData=JSON.parse(cont);if(webData.updateAt>=data.updateAt){return webData;}}await client.putFileContents(filename,JSON.stringify(data,null,2));return data;};const syncByWorker=async(data,_ref2)=>{let{syncUrl,syncKey}=_ref2;syncUrl=removeEndchar(syncUrl,"/");return await apiSyncData("".concat(syncUrl,"/sync"),syncKey,data);};const syncData=async(key,value)=>{const{syncType,syncUrl,syncUser,syncKey,syncMeta={}}=await getSyncWithDefault();if(!syncUrl||!syncKey||syncType===OPT_SYNCTYPE_WEBDAV&&!syncUser){// throw new Error("sync args err"); return;}let{updateAt=0,syncAt=0}=syncMeta[key]||{};if(syncAt===0){updateAt=0;// 没有同步过,更新时间置零 }const data={key,value:JSON.stringify(value),updateAt};const args={syncUrl,syncUser,syncKey};const res=syncType===OPT_SYNCTYPE_WEBDAV?await syncByWebdav(data,args):await syncByWorker(data,args);if(!res){throw new Error("sync data got err",key);}const newVal=JSON.parse(res.value);const isNew=res.updateAt>updateAt;syncMeta[key]={updateAt:res.updateAt,syncAt:Date.now()};await putSync({syncMeta});return{value:newVal,isNew};};/** * 同步设置 * @returns */const syncSetting=async()=>{const value=await getSettingWithDefault();const res=await syncData(KV_SETTING_KEY,value);if(res!==null&&res!==void 0&&res.isNew){await setSetting(res.value);}};const trySyncSetting=async()=>{try{await syncSetting();}catch(err){kissLog("sync setting",err.message);}};/** * 同步规则 * @returns */const syncRules=async()=>{const value=await getRulesWithDefault();const res=await syncData(KV_RULES_KEY,value);if(res!==null&&res!==void 0&&res.isNew){await setRules(res.value);}};const trySyncRules=async()=>{try{await syncRules();}catch(err){log_kissLog("sync user rules",err.message);}};/** * 同步词汇 * @returns */const syncWords=async()=>{const value=await getWordsWithDefault();const res=await syncData(KV_WORDS_KEY,value);if(res!==null&&res!==void 0&&res.isNew){await setWords(res.value);}};const trySyncWords=async()=>{try{await syncWords();}catch(err){kissLog("sync fav words",err.message);}};/** * 同步分享规则 * @param {*} param0 * @returns */const syncShareRules=async _ref3=>{let{rules,syncUrl,syncKey}=_ref3;const data={key:KV_RULES_SHARE_KEY,value:JSON.stringify(rules,null,2),updateAt:Date.now()};const args={syncUrl,syncKey};await syncByWorker(data,args);const psk=await sha256(syncKey,KV_SALT_SHARE);const shareUrl="".concat(syncUrl,"/rules?psk=").concat(psk);return shareUrl;};/** * 同步个人设置和规则 * @returns */const syncSettingAndRules=async()=>{await syncSetting();await syncRules();await syncWords();};const trySyncSettingAndRules=async()=>{await trySyncSetting();await trySyncRules();await trySyncWords();}; ;// CONCATENATED MODULE: ./src/hooks/DebouncedCallback.js function useDebouncedCallback(callback,delay){const callbackRef=(0,react.useRef)(callback);(0,react.useEffect)(()=>{callbackRef.current=callback;},[callback]);const debouncedCallback=(0,react.useMemo)(()=>debounce(function(){return callbackRef.current(...arguments);},delay),[delay]);return debouncedCallback;} ;// CONCATENATED MODULE: ./src/hooks/Storage.js /** * 用于将组件状态与 Storage 同步 * * @param {string} key 用于在 Storage 中存取值的键 * @param {*} defaultVal 默认值。建议在组件外定义为常量。 * @param {string} [syncKey=""] 用于远端同步的可选键名 * @returns {{ * data: *, * save: (valueOrFn: any | ((prevData: any) => any)) => void, * update: (partialDataOrFn: object | ((prevData: object) => object)) => void, * remove: () => Promise, * reload: () => Promise * }} */function useStorage(key){let defaultVal=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;let syncKey=arguments.length>2&&arguments[2]!==undefined?arguments[2]:"";const[isLoading,setIsLoading]=(0,react.useState)(true);const[data,setData]=(0,react.useState)(defaultVal);// 首次加载数据 (0,react.useEffect)(()=>{let isMounted=true;const loadInitialData=async()=>{try{const storedVal=await storage.getObj(key);if(storedVal===undefined||storedVal===null){await storage.setObj(key,defaultVal);}else if(isMounted){setData(storedVal);}}catch(err){log_kissLog("storage load error for key: ".concat(key),err);}finally{if(isMounted){setIsLoading(false);}}};loadInitialData();return()=>{isMounted=false;};},[key,defaultVal]);// 远端同步 const runSync=(0,react.useCallback)(async(keyToSync,valueToSync)=>{try{const res=await syncData(keyToSync,valueToSync);if(res!==null&&res!==void 0&&res.isNew){setData(res.value);}}catch(error){log_kissLog("Sync failed",keyToSync);}},[]);const debouncedSync=useDebouncedCallback(runSync,3000);// 持久化 (0,react.useEffect)(()=>{if(isLoading){return;}if(data===null){return;}storage.setObj(key,data).catch(err=>{log_kissLog("storage save error for key: ".concat(key),err);});// 触发远端同步 if(syncKey){debouncedSync(syncKey,data);}},[key,syncKey,isLoading,data,debouncedSync]);/** * 全量替换状态值 * @param {any | ((prevData: any) => any)} valueOrFn 新的值或一个返回新值的函数。 */const save=(0,react.useCallback)(valueOrFn=>{// kissLog("save storage:", valueOrFn); setData(prevData=>typeof valueOrFn==="function"?valueOrFn(prevData):valueOrFn);},[]);/** * 合并对象到当前状态(假设状态是一个对象)。 * @param {object | ((prevData: object) => object)} partialDataOrFn 要合并的对象或一个返回该对象的函数。 */const update=(0,react.useCallback)(partialDataOrFn=>{// kissLog("update storage:", partialDataOrFn); setData(prevData=>{const partialData=typeof partialDataOrFn==="function"?partialDataOrFn(prevData):partialDataOrFn;// 确保 preData 是一个对象,避免展开 null 或 undefined const baseObj=typeof prevData==="object"&&prevData!==null?prevData:{};return{...baseObj,...partialData};});},[]);/** * 从 Storage 中删除该值,并将状态重置为 null。 */const remove=(0,react.useCallback)(async()=>{// kissLog("remove storage:"); try{await storage.del(key);setData(null);}catch(err){log_kissLog("storage remove error for key: ".concat(key),err);}},[key]);/** * 从 Storage 重新加载数据以覆盖当前状态。 */const reload=(0,react.useCallback)(async()=>{// kissLog("reload storage:"); try{const storedVal=await storage.getObj(key);setData(storedVal!==null&&storedVal!==void 0?storedVal:defaultVal);}catch(err){log_kissLog("storage reload error for key: ".concat(key),err);// setData(defaultVal); }},[key,defaultVal]);return{data,save,update,remove,reload,isLoading};} ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/CircularProgress/circularProgressClasses.js function getCircularProgressUtilityClass(slot) { return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiCircularProgress', slot); } const circularProgressClasses = (0,generateUtilityClasses/* default */.Z)('MuiCircularProgress', ['root', 'determinate', 'indeterminate', 'colorPrimary', 'colorSecondary', 'svg', 'circle', 'circleDeterminate', 'circleIndeterminate', 'circleDisableShrink']); /* harmony default export */ const CircularProgress_circularProgressClasses = ((/* unused pure expression or super */ null && (circularProgressClasses))); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/CircularProgress/CircularProgress.js 'use client'; var CircularProgress_templateObject, CircularProgress_templateObject2, CircularProgress_templateObject3, CircularProgress_templateObject4; const CircularProgress_excluded = ["className", "color", "disableShrink", "size", "style", "thickness", "value", "variant"]; let CircularProgress_ = t => t, CircularProgress_t, CircularProgress_t2, CircularProgress_t3, CircularProgress_t4; const SIZE = 44; const circularRotateKeyframe = (0,emotion_react_browser_esm/* keyframes */.F4)(CircularProgress_t || (CircularProgress_t = CircularProgress_(CircularProgress_templateObject || (CircularProgress_templateObject = _taggedTemplateLiteral(["\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n"]))))); const circularDashKeyframe = (0,emotion_react_browser_esm/* keyframes */.F4)(CircularProgress_t2 || (CircularProgress_t2 = CircularProgress_(CircularProgress_templateObject2 || (CircularProgress_templateObject2 = _taggedTemplateLiteral(["\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n"]))))); const CircularProgress_useUtilityClasses = ownerState => { const { classes, variant, color, disableShrink } = ownerState; const slots = { root: ['root', variant, "color".concat((0,capitalize/* default */.Z)(color))], svg: ['svg'], circle: ['circle', "circle".concat((0,capitalize/* default */.Z)(variant)), disableShrink && 'circleDisableShrink'] }; return (0,composeClasses/* default */.Z)(slots, getCircularProgressUtilityClass, classes); }; const CircularProgressRoot = (0,styled/* default */.ZP)('span', { name: 'MuiCircularProgress', slot: 'Root', overridesResolver: (props, styles) => { const { ownerState } = props; return [styles.root, styles[ownerState.variant], styles["color".concat((0,capitalize/* default */.Z)(ownerState.color))]]; } })(_ref => { let { ownerState, theme } = _ref; return (0,esm_extends/* default */.Z)({ display: 'inline-block' }, ownerState.variant === 'determinate' && { transition: theme.transitions.create('transform') }, ownerState.color !== 'inherit' && { color: (theme.vars || theme).palette[ownerState.color].main }); }, _ref2 => { let { ownerState } = _ref2; return ownerState.variant === 'indeterminate' && (0,emotion_react_browser_esm/* css */.iv)(CircularProgress_t3 || (CircularProgress_t3 = CircularProgress_(CircularProgress_templateObject3 || (CircularProgress_templateObject3 = _taggedTemplateLiteral(["\n animation: ", " 1.4s linear infinite;\n "])), 0)), circularRotateKeyframe); }); const CircularProgressSVG = (0,styled/* default */.ZP)('svg', { name: 'MuiCircularProgress', slot: 'Svg', overridesResolver: (props, styles) => styles.svg })({ display: 'block' // Keeps the progress centered }); const CircularProgressCircle = (0,styled/* default */.ZP)('circle', { name: 'MuiCircularProgress', slot: 'Circle', overridesResolver: (props, styles) => { const { ownerState } = props; return [styles.circle, styles["circle".concat((0,capitalize/* default */.Z)(ownerState.variant))], ownerState.disableShrink && styles.circleDisableShrink]; } })(_ref3 => { let { ownerState, theme } = _ref3; return (0,esm_extends/* default */.Z)({ stroke: 'currentColor' }, ownerState.variant === 'determinate' && { transition: theme.transitions.create('stroke-dashoffset') }, ownerState.variant === 'indeterminate' && { // Some default value that looks fine waiting for the animation to kicks in. strokeDasharray: '80px, 200px', strokeDashoffset: 0 // Add the unit to fix a Edge 16 and below bug. }); }, _ref4 => { let { ownerState } = _ref4; return ownerState.variant === 'indeterminate' && !ownerState.disableShrink && (0,emotion_react_browser_esm/* css */.iv)(CircularProgress_t4 || (CircularProgress_t4 = CircularProgress_(CircularProgress_templateObject4 || (CircularProgress_templateObject4 = _taggedTemplateLiteral(["\n animation: ", " 1.4s ease-in-out infinite;\n "])), 0)), circularDashKeyframe); }); /** * ## ARIA * * If the progress bar is describing the loading progress of a particular region of a page, * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy` * attribute to `true` on that region until it has finished loading. */ const CircularProgress = /*#__PURE__*/react.forwardRef(function CircularProgress(inProps, ref) { const props = (0,useThemeProps/* default */.Z)({ props: inProps, name: 'MuiCircularProgress' }); const { className, color = 'primary', disableShrink = false, size = 40, style, thickness = 3.6, value = 0, variant = 'indeterminate' } = props, other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, CircularProgress_excluded); const ownerState = (0,esm_extends/* default */.Z)({}, props, { color, disableShrink, size, thickness, value, variant }); const classes = CircularProgress_useUtilityClasses(ownerState); const circleStyle = {}; const rootStyle = {}; const rootProps = {}; if (variant === 'determinate') { const circumference = 2 * Math.PI * ((SIZE - thickness) / 2); circleStyle.strokeDasharray = circumference.toFixed(3); rootProps['aria-valuenow'] = Math.round(value); circleStyle.strokeDashoffset = "".concat(((100 - value) / 100 * circumference).toFixed(3), "px"); rootStyle.transform = 'rotate(-90deg)'; } return /*#__PURE__*/(0,jsx_runtime.jsx)(CircularProgressRoot, (0,esm_extends/* default */.Z)({ className: (0,clsx/* default */.Z)(classes.root, className), style: (0,esm_extends/* default */.Z)({ width: size, height: size }, rootStyle, style), ownerState: ownerState, ref: ref, role: "progressbar" }, rootProps, other, { children: /*#__PURE__*/(0,jsx_runtime.jsx)(CircularProgressSVG, { className: classes.svg, ownerState: ownerState, viewBox: "".concat(SIZE / 2, " ").concat(SIZE / 2, " ").concat(SIZE, " ").concat(SIZE), children: /*#__PURE__*/(0,jsx_runtime.jsx)(CircularProgressCircle, { className: classes.circle, style: circleStyle, ownerState: ownerState, cx: SIZE, cy: SIZE, r: (SIZE - thickness) / 2, fill: "none", strokeWidth: thickness }) }) })); }); false ? 0 : void 0; /* harmony default export */ const CircularProgress_CircularProgress = (CircularProgress); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+system@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotion+_c57ab6d9ade3633fb3ee97c5c0a1d690/node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js var extendSxProp = __webpack_require__(416); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/Typography/typographyClasses.js function getTypographyUtilityClass(slot) { return (0,generateUtilityClass_generateUtilityClass/* default */.ZP)('MuiTypography', slot); } const typographyClasses = (0,generateUtilityClasses/* default */.Z)('MuiTypography', ['root', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'inherit', 'button', 'caption', 'overline', 'alignLeft', 'alignRight', 'alignCenter', 'alignJustify', 'noWrap', 'gutterBottom', 'paragraph']); /* harmony default export */ const Typography_typographyClasses = ((/* unused pure expression or super */ null && (typographyClasses))); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/Typography/Typography.js 'use client'; const Typography_excluded = ["align", "className", "component", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"]; const Typography_useUtilityClasses = ownerState => { const { align, gutterBottom, noWrap, paragraph, variant, classes } = ownerState; const slots = { root: ['root', variant, ownerState.align !== 'inherit' && "align".concat((0,capitalize/* default */.Z)(align)), gutterBottom && 'gutterBottom', noWrap && 'noWrap', paragraph && 'paragraph'] }; return (0,composeClasses/* default */.Z)(slots, getTypographyUtilityClass, classes); }; const TypographyRoot = (0,styled/* default */.ZP)('span', { name: 'MuiTypography', slot: 'Root', overridesResolver: (props, styles) => { const { ownerState } = props; return [styles.root, ownerState.variant && styles[ownerState.variant], ownerState.align !== 'inherit' && styles["align".concat((0,capitalize/* default */.Z)(ownerState.align))], ownerState.noWrap && styles.noWrap, ownerState.gutterBottom && styles.gutterBottom, ownerState.paragraph && styles.paragraph]; } })(_ref => { let { theme, ownerState } = _ref; return (0,esm_extends/* default */.Z)({ margin: 0 }, ownerState.variant === 'inherit' && { // Some elements, like *
* ); * } * ``` * * When the button is clicked the component will shift to the `'entering'` state * and stay there for 500ms (the value of `timeout`) before it finally switches * to `'entered'`. * * When `in` is `false` the same thing happens except the state moves from * `'exiting'` to `'exited'`. */ var Transition = /*#__PURE__*/function (_React$Component) { _inheritsLoose(Transition, _React$Component); function Transition(props, context) { var _this; _this = _React$Component.call(this, props, context) || this; var parentGroup = context; // In the context of a TransitionGroup all enters are really appears var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear; var initialStatus; _this.appearStatus = null; if (props.in) { if (appear) { initialStatus = EXITED; _this.appearStatus = ENTERING; } else { initialStatus = ENTERED; } } else { if (props.unmountOnExit || props.mountOnEnter) { initialStatus = UNMOUNTED; } else { initialStatus = EXITED; } } _this.state = { status: initialStatus }; _this.nextCallback = null; return _this; } Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) { var nextIn = _ref.in; if (nextIn && prevState.status === UNMOUNTED) { return { status: EXITED }; } return null; } // getSnapshotBeforeUpdate(prevProps) { // let nextStatus = null // if (prevProps !== this.props) { // const { status } = this.state // if (this.props.in) { // if (status !== ENTERING && status !== ENTERED) { // nextStatus = ENTERING // } // } else { // if (status === ENTERING || status === ENTERED) { // nextStatus = EXITING // } // } // } // return { nextStatus } // } ; var _proto = Transition.prototype; _proto.componentDidMount = function componentDidMount() { this.updateStatus(true, this.appearStatus); }; _proto.componentDidUpdate = function componentDidUpdate(prevProps) { var nextStatus = null; if (prevProps !== this.props) { var status = this.state.status; if (this.props.in) { if (status !== ENTERING && status !== ENTERED) { nextStatus = ENTERING; } } else { if (status === ENTERING || status === ENTERED) { nextStatus = EXITING; } } } this.updateStatus(false, nextStatus); }; _proto.componentWillUnmount = function componentWillUnmount() { this.cancelNextCallback(); }; _proto.getTimeouts = function getTimeouts() { var timeout = this.props.timeout; var exit, enter, appear; exit = enter = appear = timeout; if (timeout != null && typeof timeout !== 'number') { exit = timeout.exit; enter = timeout.enter; // TODO: remove fallback for next major appear = timeout.appear !== undefined ? timeout.appear : enter; } return { exit: exit, enter: enter, appear: appear }; }; _proto.updateStatus = function updateStatus(mounting, nextStatus) { if (mounting === void 0) { mounting = false; } if (nextStatus !== null) { // nextStatus will always be ENTERING or EXITING. this.cancelNextCallback(); if (nextStatus === ENTERING) { if (this.props.unmountOnExit || this.props.mountOnEnter) { var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749 // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`. // To make the animation happen, we have to separate each rendering and avoid being processed as batched. if (node) forceReflow(node); } this.performEnter(mounting); } else { this.performExit(); } } else if (this.props.unmountOnExit && this.state.status === EXITED) { this.setState({ status: UNMOUNTED }); } }; _proto.performEnter = function performEnter(mounting) { var _this2 = this; var enter = this.props.enter; var appearing = this.context ? this.context.isMounting : mounting; var _ref2 = this.props.nodeRef ? [appearing] : [react_dom.findDOMNode(this), appearing], maybeNode = _ref2[0], maybeAppearing = _ref2[1]; var timeouts = this.getTimeouts(); var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED // if we are mounting and running this it means appear _must_ be set if (!mounting && !enter || config.disabled) { this.safeSetState({ status: ENTERED }, function () { _this2.props.onEntered(maybeNode); }); return; } this.props.onEnter(maybeNode, maybeAppearing); this.safeSetState({ status: ENTERING }, function () { _this2.props.onEntering(maybeNode, maybeAppearing); _this2.onTransitionEnd(enterTimeout, function () { _this2.safeSetState({ status: ENTERED }, function () { _this2.props.onEntered(maybeNode, maybeAppearing); }); }); }); }; _proto.performExit = function performExit() { var _this3 = this; var exit = this.props.exit; var timeouts = this.getTimeouts(); var maybeNode = this.props.nodeRef ? undefined : react_dom.findDOMNode(this); // no exit animation skip right to EXITED if (!exit || config.disabled) { this.safeSetState({ status: EXITED }, function () { _this3.props.onExited(maybeNode); }); return; } this.props.onExit(maybeNode); this.safeSetState({ status: EXITING }, function () { _this3.props.onExiting(maybeNode); _this3.onTransitionEnd(timeouts.exit, function () { _this3.safeSetState({ status: EXITED }, function () { _this3.props.onExited(maybeNode); }); }); }); }; _proto.cancelNextCallback = function cancelNextCallback() { if (this.nextCallback !== null) { this.nextCallback.cancel(); this.nextCallback = null; } }; _proto.safeSetState = function safeSetState(nextState, callback) { // This shouldn't be necessary, but there are weird race conditions with // setState callbacks and unmounting in testing, so always make sure that // we can cancel any pending setState callbacks after we unmount. callback = this.setNextCallback(callback); this.setState(nextState, callback); }; _proto.setNextCallback = function setNextCallback(callback) { var _this4 = this; var active = true; this.nextCallback = function (event) { if (active) { active = false; _this4.nextCallback = null; callback(event); } }; this.nextCallback.cancel = function () { active = false; }; return this.nextCallback; }; _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) { this.setNextCallback(handler); var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom.findDOMNode(this); var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener; if (!node || doesNotHaveTimeoutOrListener) { setTimeout(this.nextCallback, 0); return; } if (this.props.addEndListener) { var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback], maybeNode = _ref3[0], maybeNextCallback = _ref3[1]; this.props.addEndListener(maybeNode, maybeNextCallback); } if (timeout != null) { setTimeout(this.nextCallback, timeout); } }; _proto.render = function render() { var status = this.state.status; if (status === UNMOUNTED) { return null; } var _this$props = this.props, children = _this$props.children, _in = _this$props.in, _mountOnEnter = _this$props.mountOnEnter, _unmountOnExit = _this$props.unmountOnExit, _appear = _this$props.appear, _enter = _this$props.enter, _exit = _this$props.exit, _timeout = _this$props.timeout, _addEndListener = _this$props.addEndListener, _onEnter = _this$props.onEnter, _onEntering = _this$props.onEntering, _onEntered = _this$props.onEntered, _onExit = _this$props.onExit, _onExiting = _this$props.onExiting, _onExited = _this$props.onExited, _nodeRef = _this$props.nodeRef, childProps = (0,objectWithoutPropertiesLoose/* default */.Z)(_this$props, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"]); return /*#__PURE__*/( // allows for nested Transitions react.createElement(TransitionGroupContext.Provider, { value: null }, typeof children === 'function' ? children(status, childProps) : react.cloneElement(react.Children.only(children), childProps)) ); }; return Transition; }(react.Component); Transition.contextType = TransitionGroupContext; Transition.propTypes = false ? 0 : {}; // Name the function so it is clearer in the documentation function noop() {} Transition.defaultProps = { in: false, mountOnEnter: false, unmountOnExit: false, appear: false, enter: true, exit: true, onEnter: noop, onEntering: noop, onEntered: noop, onExit: noop, onExiting: noop, onExited: noop }; Transition.UNMOUNTED = UNMOUNTED; Transition.EXITED = EXITED; Transition.ENTERING = ENTERING; Transition.ENTERED = ENTERED; Transition.EXITING = EXITING; /* harmony default export */ const esm_Transition = (Transition); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/transitions/utils.js const reflow = node => node.scrollTop; function getTransitionProps(props, options) { var _style$transitionDura, _style$transitionTimi; const { timeout, easing, style = {} } = props; return { duration: (_style$transitionDura = style.transitionDuration) != null ? _style$transitionDura : typeof timeout === 'number' ? timeout : timeout[options.mode] || 0, easing: (_style$transitionTimi = style.transitionTimingFunction) != null ? _style$transitionTimi : typeof easing === 'object' ? easing[options.mode] : easing, delay: style.transitionDelay }; } ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.15.15_@emotion+react@11.11.1_@types+react@18.2.79_react@18.2.0__@emotio_d9048b84de05bb23a91868a7ef37c0cc/node_modules/@mui/material/Grow/Grow.js 'use client'; const Grow_excluded = ["addEndListener", "appear", "children", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"]; function getScale(value) { return "scale(".concat(value, ", ").concat(value ** 2, ")"); } const Grow_styles = { entering: { opacity: 1, transform: getScale(1) }, entered: { opacity: 1, transform: 'none' } }; /* TODO v6: remove Conditionally apply a workaround for the CSS transition bug in Safari 15.4 / WebKit browsers. */ const isWebKit154 = typeof navigator !== 'undefined' && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\/)15(.|_)4/i.test(navigator.userAgent); /** * The Grow transition is used by the [Tooltip](/material-ui/react-tooltip/) and * [Popover](/material-ui/react-popover/) components. * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally. */ const Grow = /*#__PURE__*/react.forwardRef(function Grow(props, ref) { const { addEndListener, appear = true, children, easing, in: inProp, onEnter, onEntered, onEntering, onExit, onExited, onExiting, style, timeout = 'auto', // eslint-disable-next-line react/prop-types TransitionComponent = esm_Transition } = props, other = (0,objectWithoutPropertiesLoose/* default */.Z)(props, Grow_excluded); const timer = (0,useTimeout/* default */.Z)(); const autoTimeout = react.useRef(); const theme = useTheme_useTheme(); const nodeRef = react.useRef(null); const handleRef = (0,useForkRef/* default */.Z)(nodeRef, children.ref, ref); const normalizedTransitionCallback = callback => maybeIsAppearing => { if (callback) { const node = nodeRef.current; // onEnterXxx and onExitXxx callbacks have a different arguments.length value. if (maybeIsAppearing === undefined) { callback(node); } else { callback(node, maybeIsAppearing); } } }; const handleEntering = normalizedTransitionCallback(onEntering); const handleEnter = normalizedTransitionCallback((node, isAppearing) => { reflow(node); // So the animation always start from the start. const { duration: transitionDuration, delay, easing: transitionTimingFunction } = getTransitionProps({ style, timeout, easing }, { mode: 'enter' }); let duration; if (timeout === 'auto') { duration = theme.transitions.getAutoHeightDuration(node.clientHeight); autoTimeout.current = duration; } else { duration = transitionDuration; } node.style.transition = [theme.transitions.create('opacity', { duration, delay }), theme.transitions.create('transform', { duration: isWebKit154 ? duration : duration * 0.666, delay, easing: transitionTimingFunction })].join(','); if (onEnter) { onEnter(node, isAppearing); } }); const handleEntered = normalizedTransitionCallback(onEntered); const handleExiting = normalizedTransitionCallback(onExiting); const handleExit = normalizedTransitionCallback(node => { const { duration: transitionDuration, delay, easing: transitionTimingFunction } = getTransitionProps({ style, timeout, easing }, { mode: 'exit' }); let duration; if (timeout === 'auto') { duration = theme.transitions.getAutoHeightDuration(node.clientHeight); autoTimeout.current = duration; } else { duration = transitionDuration; } node.style.transition = [theme.transitions.create('opacity', { duration, delay }), theme.transitions.create('transform', { duration: isWebKit154 ? duration : duration * 0.666, delay: isWebKit154 ? delay : delay || duration * 0.333, easing: transitionTimingFunction })].join(','); node.style.opacity = 0; node.style.transform = getScale(0.75); if (onExit) { onExit(node); } }); const handleExited = normalizedTransitionCallback(onExited); const handleAddEndListener = next => { if (timeout === 'auto') { timer.start(autoTimeout.current || 0, next); } if (addEndListener) { // Old call signature before `react-transition-group` implemented `nodeRef` addEndListener(nodeRef.current, next); } }; return /*#__PURE__*/(0,jsx_runtime.jsx)(TransitionComponent, (0,esm_extends/* default */.Z)({ appear: appear, in: inProp, nodeRef: nodeRef, onEnter: handleEnter, onEntered: handleEntered, onEntering: handleEntering, onExit: handleExit, onExited: handleExited, onExiting: handleExiting, addEndListener: handleAddEndListener, timeout: timeout === 'auto' ? null : timeout }, other, { children: (state, childProps) => { return /*#__PURE__*/react.cloneElement(children, (0,esm_extends/* default */.Z)({ style: (0,esm_extends/* default */.Z)({ opacity: 0, transform: getScale(0.75), visibility: state === 'exited' && !inProp ? 'hidden' : undefined }, Grow_styles[state], style, children.props.style), ref: handleRef }, childProps)); } })); }); false ? 0 : void 0; Grow.muiSupportAuto = true; /* harmony default export */ const Grow_Grow = (Grow); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/ownerDocument/ownerDocument.js var ownerDocument_ownerDocument = __webpack_require__(1563); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/useEventCallback/useEventCallback.js var useEventCallback_useEventCallback = __webpack_require__(9210); // EXTERNAL MODULE: ./node_modules/.pnpm/@mui+utils@5.15.14_@types+react@18.2.79_react@18.2.0/node_modules/@mui/utils/createChainedFunction/createChainedFunction.js var createChainedFunction = __webpack_require__(3444); ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@mui/base/unstable_useModal/ModalManager.js // Is a vertical scrollbar displayed? function isOverflowing(container) { const doc = (0,ownerDocument_ownerDocument/* default */.Z)(container); if (doc.body === container) { return (0,ownerWindow/* default */.Z)(container).innerWidth > doc.documentElement.clientWidth; } return container.scrollHeight > container.clientHeight; } function ariaHidden(element, show) { if (show) { element.setAttribute('aria-hidden', 'true'); } else { element.removeAttribute('aria-hidden'); } } function getPaddingRight(element) { return parseInt((0,ownerWindow/* default */.Z)(element).getComputedStyle(element).paddingRight, 10) || 0; } function isAriaHiddenForbiddenOnElement(element) { // The forbidden HTML tags are the ones from ARIA specification that // can be children of body and can't have aria-hidden attribute. // cf. https://www.w3.org/TR/html-aria/#docconformance const forbiddenTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE', 'LINK', 'MAP', 'META', 'NOSCRIPT', 'PICTURE', 'COL', 'COLGROUP', 'PARAM', 'SLOT', 'SOURCE', 'TRACK']; const isForbiddenTagName = forbiddenTagNames.indexOf(element.tagName) !== -1; const isInputHidden = element.tagName === 'INPUT' && element.getAttribute('type') === 'hidden'; return isForbiddenTagName || isInputHidden; } function ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, show) { const blacklist = [mountElement, currentElement, ...elementsToExclude]; [].forEach.call(container.children, element => { const isNotExcludedElement = blacklist.indexOf(element) === -1; const isNotForbiddenElement = !isAriaHiddenForbiddenOnElement(element); if (isNotExcludedElement && isNotForbiddenElement) { ariaHidden(element, show); } }); } function findIndexOf(items, callback) { let idx = -1; items.some((item, index) => { if (callback(item)) { idx = index; return true; } return false; }); return idx; } function handleContainer(containerInfo, props) { const restoreStyle = []; const container = containerInfo.container; if (!props.disableScrollLock) { if (isOverflowing(container)) { // Compute the size before applying overflow hidden to avoid any scroll jumps. const scrollbarSize = getScrollbarSize((0,ownerDocument_ownerDocument/* default */.Z)(container)); restoreStyle.push({ value: container.style.paddingRight, property: 'padding-right', el: container }); // Use computed style, here to get the real padding to add our scrollbar width. container.style.paddingRight = "".concat(getPaddingRight(container) + scrollbarSize, "px"); // .mui-fixed is a global helper. const fixedElements = (0,ownerDocument_ownerDocument/* default */.Z)(container).querySelectorAll('.mui-fixed'); [].forEach.call(fixedElements, element => { restoreStyle.push({ value: element.style.paddingRight, property: 'padding-right', el: element }); element.style.paddingRight = "".concat(getPaddingRight(element) + scrollbarSize, "px"); }); } let scrollContainer; if (container.parentNode instanceof DocumentFragment) { scrollContainer = (0,ownerDocument_ownerDocument/* default */.Z)(container).body; } else { // Support html overflow-y: auto for scroll stability between pages // https://css-tricks.com/snippets/css/force-vertical-scrollbar/ const parent = container.parentElement; const containerWindow = (0,ownerWindow/* default */.Z)(container); scrollContainer = (parent == null ? void 0 : parent.nodeName) === 'HTML' && containerWindow.getComputedStyle(parent).overflowY === 'scroll' ? parent : container; } // Block the scroll even if no scrollbar is visible to account for mobile keyboard // screensize shrink. restoreStyle.push({ value: scrollContainer.style.overflow, property: 'overflow', el: scrollContainer }, { value: scrollContainer.style.overflowX, property: 'overflow-x', el: scrollContainer }, { value: scrollContainer.style.overflowY, property: 'overflow-y', el: scrollContainer }); scrollContainer.style.overflow = 'hidden'; } const restore = () => { restoreStyle.forEach(_ref => { let { value, el, property } = _ref; if (value) { el.style.setProperty(property, value); } else { el.style.removeProperty(property); } }); }; return restore; } function getHiddenSiblings(container) { const hiddenSiblings = []; [].forEach.call(container.children, element => { if (element.getAttribute('aria-hidden') === 'true') { hiddenSiblings.push(element); } }); return hiddenSiblings; } /** * @ignore - do not document. * * Proper state management for containers and the modals in those containers. * Simplified, but inspired by react-overlay's ModalManager class. * Used by the Modal to ensure proper styling of containers. */ class ModalManager { constructor() { this.containers = void 0; this.modals = void 0; this.modals = []; this.containers = []; } add(modal, container) { let modalIndex = this.modals.indexOf(modal); if (modalIndex !== -1) { return modalIndex; } modalIndex = this.modals.length; this.modals.push(modal); // If the modal we are adding is already in the DOM. if (modal.modalRef) { ariaHidden(modal.modalRef, false); } const hiddenSiblings = getHiddenSiblings(container); ariaHiddenSiblings(container, modal.mount, modal.modalRef, hiddenSiblings, true); const containerIndex = findIndexOf(this.containers, item => item.container === container); if (containerIndex !== -1) { this.containers[containerIndex].modals.push(modal); return modalIndex; } this.containers.push({ modals: [modal], container, restore: null, hiddenSiblings }); return modalIndex; } mount(modal, props) { const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1); const containerInfo = this.containers[containerIndex]; if (!containerInfo.restore) { containerInfo.restore = handleContainer(containerInfo, props); } } remove(modal) { let ariaHiddenState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; const modalIndex = this.modals.indexOf(modal); if (modalIndex === -1) { return modalIndex; } const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1); const containerInfo = this.containers[containerIndex]; containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1); this.modals.splice(modalIndex, 1); // If that was the last modal in a container, clean up the container. if (containerInfo.modals.length === 0) { // The modal might be closed before it had the chance to be mounted in the DOM. if (containerInfo.restore) { containerInfo.restore(); } if (modal.modalRef) { // In case the modal wasn't in the DOM yet. ariaHidden(modal.modalRef, ariaHiddenState); } ariaHiddenSiblings(containerInfo.container, modal.mount, modal.modalRef, containerInfo.hiddenSiblings, false); this.containers.splice(containerIndex, 1); } else { // Otherwise make sure the next top modal is visible to a screen reader. const nextTop = containerInfo.modals[containerInfo.modals.length - 1]; // as soon as a modal is adding its modalRef is undefined. it can't set // aria-hidden because the dom element doesn't exist either // when modal was unmounted before modalRef gets null if (nextTop.modalRef) { ariaHidden(nextTop.modalRef, false); } } return modalIndex; } isTopModal(modal) { return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal; } } ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@mui/base/unstable_useModal/useModal.js 'use client'; function getContainer(container) { return typeof container === 'function' ? container() : container; } function getHasTransition(children) { return children ? children.props.hasOwnProperty('in') : false; } // A modal manager used to track and manage the state of open Modals. // Modals don't open on the server so this won't conflict with concurrent requests. const defaultManager = new ModalManager(); /** * * Demos: * * - [Modal](https://mui.com/base-ui/react-modal/#hook) * * API: * * - [useModal API](https://mui.com/base-ui/react-modal/hooks-api/#use-modal) */ function useModal(parameters) { const { container, disableEscapeKeyDown = false, disableScrollLock = false, // @ts-ignore internal logic - Base UI supports the manager as a prop too manager = defaultManager, closeAfterTransition = false, onTransitionEnter, onTransitionExited, children, onClose, open, rootRef } = parameters; // @ts-ignore internal logic const modal = react.useRef({}); const mountNodeRef = react.useRef(null); const modalRef = react.useRef(null); const handleRef = (0,useForkRef_useForkRef/* default */.Z)(modalRef, rootRef); const [exited, setExited] = react.useState(!open); const hasTransition = getHasTransition(children); let ariaHiddenProp = true; if (parameters['aria-hidden'] === 'false' || parameters['aria-hidden'] === false) { ariaHiddenProp = false; } const getDoc = () => (0,ownerDocument_ownerDocument/* default */.Z)(mountNodeRef.current); const getModal = () => { modal.current.modalRef = modalRef.current; modal.current.mount = mountNodeRef.current; return modal.current; }; const handleMounted = () => { manager.mount(getModal(), { disableScrollLock }); // Fix a bug on Chrome where the scroll isn't initially 0. if (modalRef.current) { modalRef.current.scrollTop = 0; } }; const handleOpen = (0,useEventCallback_useEventCallback/* default */.Z)(() => { const resolvedContainer = getContainer(container) || getDoc().body; manager.add(getModal(), resolvedContainer); // The element was already mounted. if (modalRef.current) { handleMounted(); } }); const isTopModal = react.useCallback(() => manager.isTopModal(getModal()), [manager]); const handlePortalRef = (0,useEventCallback_useEventCallback/* default */.Z)(node => { mountNodeRef.current = node; if (!node) { return; } if (open && isTopModal()) { handleMounted(); } else if (modalRef.current) { ariaHidden(modalRef.current, ariaHiddenProp); } }); const handleClose = react.useCallback(() => { manager.remove(getModal(), ariaHiddenProp); }, [ariaHiddenProp, manager]); react.useEffect(() => { return () => { handleClose(); }; }, [handleClose]); react.useEffect(() => { if (open) { handleOpen(); } else if (!hasTransition || !closeAfterTransition) { handleClose(); } }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]); const createHandleKeyDown = otherHandlers => event => { var _otherHandlers$onKeyD; (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event); // The handler doesn't take event.defaultPrevented into account: // // event.preventDefault() is meant to stop default behaviors like // clicking a checkbox to check it, hitting a button to submit a form, // and hitting left arrow to move the cursor in a text input etc. // Only special HTML elements have these default behaviors. if (event.key !== 'Escape' || event.which === 229 || // Wait until IME is settled. !isTopModal()) { return; } if (!disableEscapeKeyDown) { // Swallow the event, in case someone is listening for the escape key on the body. event.stopPropagation(); if (onClose) { onClose(event, 'escapeKeyDown'); } } }; const createHandleBackdropClick = otherHandlers => event => { var _otherHandlers$onClic; (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event); if (event.target !== event.currentTarget) { return; } if (onClose) { onClose(event, 'backdropClick'); } }; const getRootProps = function () { let otherHandlers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; const propsEventHandlers = extractEventHandlers(parameters); // The custom event handlers shouldn't be spread on the root element delete propsEventHandlers.onTransitionEnter; delete propsEventHandlers.onTransitionExited; const externalEventHandlers = (0,esm_extends/* default */.Z)({}, propsEventHandlers, otherHandlers); return (0,esm_extends/* default */.Z)({ role: 'presentation' }, externalEventHandlers, { onKeyDown: createHandleKeyDown(externalEventHandlers), ref: handleRef }); }; const getBackdropProps = function () { let otherHandlers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; const externalEventHandlers = otherHandlers; return (0,esm_extends/* default */.Z)({ 'aria-hidden': true }, externalEventHandlers, { onClick: createHandleBackdropClick(externalEventHandlers), open }); }; const getTransitionProps = () => { const handleEnter = () => { setExited(false); if (onTransitionEnter) { onTransitionEnter(); } }; const handleExited = () => { setExited(true); if (onTransitionExited) { onTransitionExited(); } if (closeAfterTransition) { handleClose(); } }; return { onEnter: (0,createChainedFunction/* default */.Z)(handleEnter, children == null ? void 0 : children.props.onEnter), onExited: (0,createChainedFunction/* default */.Z)(handleExited, children == null ? void 0 : children.props.onExited) }; }; return { getRootProps, getBackdropProps, getTransitionProps, rootRef: handleRef, portalRef: handlePortalRef, isTopModal, exited, hasTransition }; } ;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+base@5.0.0-beta.40_@types+react@18.2.79_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/@mui/base/FocusTrap/FocusTrap.js 'use client'; /* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex */ // Inspired by https://github.com/focus-trap/tabbable const candidatesSelector = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])'].join(','); function getTabIndex(node) { const tabindexAttr = parseInt(node.getAttribute('tabindex') || '', 10); if (!Number.isNaN(tabindexAttr)) { return tabindexAttr; } // Browsers do not return `tabIndex` correctly for contentEditable nodes; // https://bugs.chromium.org/p/chromium/issues/detail?id=661108&q=contenteditable%20tabindex&can=2 // so if they don't have a tabindex attribute specifically set, assume it's 0. // in Chrome,
,