Greasy Fork is available in English.

iciba划词翻译

小巧简洁实用的划词翻译。选择单词或段落进行查词或翻译,或手动输入文本查词翻译。支持iciba,google字典,google翻译,百度翻译等多个查词翻译接口

作者のサイトでサポートを受ける。または、このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @name               iciba划词翻译
// @namespace          noe132.com
// @author             noe132
// @include            http://*
// @include            https://*
// @include            file://*
// @exclude            http://www.iciba.com*
// @grant              GM_xmlhttpRequest
// @grant              GM_getValue
// @grant              GM_setValue
// @grant              GM_registerMenuCommand
// @grant              GM.xmlHttpRequest
// @grant              GM.getValue
// @grant              GM.setValue
// @grant              unsafeWindow
// @license            MIT
// @icon               http://tb.himg.baidu.com/sys/portrait/item/d4346e6f65313332ac06
// @version            4.11.18
// @supportURL         https://github.com/Firefox-Pro-Coding/iciba-translate-userscript
// @description        小巧简洁实用的划词翻译。选择单词或段落进行查词或翻译,或手动输入文本查词翻译。支持iciba,google字典,google翻译,百度翻译等多个查词翻译接口
// ==/UserScript==

// this file was compiled by webpack.

// corejs@3 polyfill bug in tampermonkey env
if (!window.Symbol) {
  window.Symbol = unsafeWindow.Symbol
}


var Promise = Reflect.getPrototypeOf(Response.prototype.text().catch(() => {})).constructor;
window.Promise = Promise;
var self = window;
if (typeof GM !== 'undefined' || typeof GM_setValue !== 'undefined') {
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ 6040:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".the-app[data-v-63465bcb]{color:#000;font-family:Source Han Sans SC,Microsoft Yahei UI,Microsoft Yahei,Arial,sans-serif;font-size:16px;font-weight:400;line-height:1.5}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 1517:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, "*,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(33,150,243,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{bottom:0;left:0;right:0;top:0}.right-0{right:0}.top-auto{top:auto}.left-auto{left:auto}.bottom-0{bottom:0}.z-20{z-index:20}.m-2px{margin:2px}.my-1{margin-bottom:4px;margin-top:4px}.my-2px{margin-bottom:2px;margin-top:2px}.mx-2{margin-left:8px;margin-right:8px}.my-px{margin-bottom:1px;margin-top:1px}.my-2{margin-bottom:8px;margin-top:8px}.mr-2{margin-right:8px}.mt-6{margin-top:24px}.mt-1{margin-top:4px}.mb-0{margin-bottom:0}.mr-4{margin-right:16px}.mb-1{margin-bottom:4px}.mt-4{margin-top:16px}.ml-1{margin-left:4px}.mt-2px{margin-top:2px}.ml-2{margin-left:8px}.mb-2px{margin-bottom:2px}.mb-2{margin-bottom:8px}.mt-0{margin-top:0}.mt-2{margin-top:8px}.-mt-2px{margin-top:-2px}.mt-5{margin-top:20px}.mt-12{margin-top:48px}.mb-3px{margin-bottom:3px}.mt-6px{margin-top:6px}.mt-3px{margin-top:3px}.mr-1{margin-right:4px}.mr-3{margin-right:12px}.mt-8{margin-top:32px}.ml-2px{margin-left:2px}.mt-5px{margin-top:5px}.mr-5px{margin-right:5px}.ml-5px{margin-left:5px}.mt-px{margin-top:1px}.ml-4{margin-left:16px}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-0{height:0}.h-auto{height:auto}.w-full{width:100%}.w-0{width:0}.w-6{width:24px}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.grow-0{flex-grow:0}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.select-none{user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded-full{border-radius:9999px}.rounded-6{border-radius:6px}.rounded-4{border-radius:4px}.rounded-5{border-radius:5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-grey-300{border-color:#e0e0e0}.border-grey-350{border-color:#d5d5d5}.border-grey-400{border-color:#bdbdbd}.bg-grey-200{background-color:#eee}.bg-white{background-color:#fff}.bg-blue-700{background-color:#1976d2}.bg-grey-400{background-color:#bdbdbd}.bg-indigo-500{background-color:#3f51b5}.bg-bg-5{background-color:#f7f7f7}.bg-grey-300{background-color:#e0e0e0}.bg-grey-500{background-color:#9e9e9e}.p-2{padding:8px}.p-4{padding:16px}.p-10px{padding:10px}.py-5px{padding-bottom:5px;padding-top:5px}.px-2{padding-left:8px;padding-right:8px}.px-4{padding-left:16px;padding-right:16px}.py-3{padding-bottom:12px;padding-top:12px}.py-4{padding-bottom:16px;padding-top:16px}.px-3{padding-left:12px;padding-right:12px}.py-1{padding-bottom:4px;padding-top:4px}.py-10px{padding-bottom:10px;padding-top:10px}.px-1{padding-left:4px;padding-right:4px}.px-5{padding-left:20px;padding-right:20px}.py-px{padding-bottom:1px;padding-top:1px}.px-6px{padding-left:6px;padding-right:6px}.pr-10px{padding-right:10px}.pt-2{padding-top:8px}.pl-10px{padding-left:10px}.pr-14px{padding-right:14px}.pt-1{padding-top:4px}.pr-12{padding-right:48px}.pr-6{padding-right:24px}.pt-5{padding-top:20px}.pb-7{padding-bottom:28px}.pr-5{padding-right:20px}.pr-7{padding-right:28px}.pr-6px{padding-right:6px}.pr-3px{padding-right:3px}.pr-1{padding-right:4px}.pt-2px{padding-top:2px}.pl-1{padding-left:4px}.pr-2{padding-right:8px}.pt-4{padding-top:16px}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-14{font-size:14px}.text-20{font-size:20px}.text-12{font-size:12px}.text-16{font-size:16px}.text-13{font-size:13px}.text-15{font-size:15px}.text-28{font-size:28px}.text-18{font-size:18px}.text-0{font-size:0}.font-medium{font-weight:500}.font-bold{font-weight:700}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.leading-normal{line-height:1.5}.leading-snug{line-height:1.375}.text-grey-700{color:#616161}.text-grey-400{color:#bdbdbd}.text-grey-800{color:#424242}.text-grey-600{color:#757575}.text-white{color:#fff}.text-grey-500{color:#9e9e9e}.text-gray-800{color:#1f2937}.text-primary{color:#409eff}.text-grey-900{color:#212121}.text-red-500{color:#f44336}.text-blue-500{color:#2196f3}.text-link{color:#77a9dd}.text-orange-400{color:#ffa726}.text-green-600{color:#43a047}.text-red-400{color:#ef5350}.no-underline{text-decoration-line:none}.opacity-75{opacity:.75}.shadow-8{--tw-shadow:0px 5px 5px -3px rgba(0,0,0,.2),0px 8px 10px 1px rgba(0,0,0,.14),0px 3px 14px 2px rgba(0,0,0,.12);--tw-shadow-colored:0px 5px 5px -3px var(--tw-shadow-color),0px 8px 10px 1px var(--tw-shadow-color),0px 3px 14px 2px var(--tw-shadow-color)}.shadow-16,.shadow-8{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-16{--tw-shadow:0px 8px 10px -5px rgba(0,0,0,.2),0px 16px 24px 2px rgba(0,0,0,.14),0px 6px 30px 5px rgba(0,0,0,.12);--tw-shadow-colored:0px 8px 10px -5px var(--tw-shadow-color),0px 16px 24px 2px var(--tw-shadow-color),0px 6px 30px 5px var(--tw-shadow-color)}.shadow-2{--tw-shadow:0px 3px 1px -2px rgba(0,0,0,.2),0px 2px 2px 0px rgba(0,0,0,.14),0px 1px 5px 0px rgba(0,0,0,.12);--tw-shadow-colored:0px 3px 1px -2px var(--tw-shadow-color),0px 2px 2px 0px var(--tw-shadow-color),0px 1px 5px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.hover\\:bg-grey-100:hover{background-color:#f5f5f5}.hover\\:bg-bg-2:hover,.hover\\:bg-grey-300:hover{background-color:#e0e0e0}.hover\\:text-primary:hover{color:#409eff}.hover\\:text-grey-600:hover{color:#757575}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-100:hover{opacity:1}.group:hover .group-hover\\:bg-grey-300{background-color:#e0e0e0}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 9615:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".flex-col{display:flex}.flex-center{align-items:center;justify-content:center}html{-webkit-text-size-adjust:100%;box-sizing:border-box;overflow-y:scroll}*,:after,:before{border:0 solid #e2e8f0;box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{background-repeat:no-repeat;box-sizing:border-box;margin:0;padding:0}audio:not([controls]){display:none;height:0}hr{overflow:visible}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}summary{display:list-item}small{font-size:80%}[hidden],template{display:none}abbr[title]{border-bottom:1px dotted;text-decoration:none}a{-webkit-text-decoration-skip:objects;background-color:initial}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}input{border-radius:0}[type=button],[type=reset],[type=submit] [role=button],button{cursor:pointer}[disabled]{cursor:default}[type=number]{width:auto}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:0;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{border:0;outline:0}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,select{text-transform:none}button,input,select,textarea{background-color:initial;border-style:none;color:inherit}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;max-width:100%;white-space:normal}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}img{border-style:none}progress{vertical-align:initial}svg:not(:root){overflow:hidden}audio,canvas,progress,video{display:inline-block}@media screen{[hidden~=screen]{display:inherit}[hidden~=screen]:not(:active):not(:focus):not(:target){clip:rect(0 0 0 0)!important;position:absolute!important}}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled]{cursor:default}::-moz-selection{background-color:#b3d4fc;color:#000;text-shadow:none}::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.v-ripple__container{border-radius:inherit;contain:strict;height:100%;width:100%;z-index:0}.v-ripple__animation,.v-ripple__container{color:inherit;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0}.v-ripple__animation{background:currentColor;border-radius:50%;opacity:0;will-change:transform,opacity}.v-ripple__animation--enter{transition:none}.v-ripple__animation--in{transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .1s cubic-bezier(.4,0,.2,1)}.v-ripple__animation--out{transition:opacity .3s cubic-bezier(.4,0,.2,1)}a{color:#1976d2}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 4196:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".icon-box[data-v-fc866c20]{cursor:pointer;height:48px;width:48px}.icon-box[data-v-fc866c20]:hover{background:#ddd}.check-icon[data-v-fc866c20]{height:20px;right:0;top:0;width:20px}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 367:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".scrollable .scroll-bar-track[data-v-5ec67402]{bottom:3px;top:3px;width:12px;z-index:200}.scrollable .scroll-bar-track .scroll-bar-thumb[data-v-5ec67402]{background:rgba(0,0,0,.15);cursor:pointer;height:0;left:3px;top:0;transition-property:width,left;width:6px}.scrollable .scroll-bar-track.moving .scroll-bar-thumb[data-v-5ec67402],.scrollable .scroll-bar-track:hover .scroll-bar-thumb[data-v-5ec67402]{background:rgba(0,0,0,.25);left:2px;width:8px}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 6641:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".icon[data-v-5a9d8295]{height:24px;width:24px}.icon .ripple[data-v-5a9d8295]{height:48px;left:50%;pointer-events:none;top:50%;transform:translate(-50%,-50%);width:48px}.icon .ripple.checked[data-v-5a9d8295] .v-ripple__container{color:#1976d2}.icon .ripple .ripple-trigger[data-v-5a9d8295]{height:24px;left:50%;pointer-events:all;top:50%;transform:translate(-50%,-50%);width:24px}.icon .ripple[data-v-5a9d8295] .v-ripple__container{height:48px;width:48px}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 8529:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".input[data-v-3651d216]{width:200px}.input[data-v-3651d216]:focus{outline:2px solid #48f}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 5071:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".modal-component[data-v-76591e7d]{background:rgba(0,0,0,.3)}.modal-component.m-enter-from[data-v-76591e7d],.modal-component.m-leave-to[data-v-76591e7d]{background:transparent}.modal-component.m-enter-from .modal-container[data-v-76591e7d],.modal-component.m-leave-to .modal-container[data-v-76591e7d]{opacity:0}.modal-component.m-enter-from .modal-container[data-v-76591e7d]{transform:scale(.9)}.modal-component.m-enter-to[data-v-76591e7d],.modal-component.m-leave-from[data-v-76591e7d]{background:rgba(0,0,0,.3)}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 3195:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".icon[data-v-86d4bb56]{height:24px;width:24px}.icon .ripple[data-v-86d4bb56]{height:48px;left:50%;pointer-events:none;top:50%;transform:translate(-50%,-50%);width:48px}.icon .ripple.checked[data-v-86d4bb56] .v-ripple__container{color:#1976d2}.icon .ripple .ripple-trigger[data-v-86d4bb56]{height:24px;left:50%;pointer-events:all;top:50%;transform:translate(-50%,-50%);width:24px}.icon .ripple[data-v-86d4bb56] .v-ripple__container{height:48px;width:48px}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 2053:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".track[data-v-629e59a4]{height:32px}.track-left[data-v-629e59a4],.track-right[data-v-629e59a4]{height:2px;width:50%}.notch[data-v-629e59a4]{height:15px;top:50%;transform:translate(-50%,-50%);transition-property:width,height;width:15px}.notch.dragging[data-v-629e59a4]{height:0;width:0}.bubble[data-v-629e59a4]{border-radius:50% 50% 0;height:26px;margin-left:-13px;top:50%;transform:translate(-50%,-150%) rotate(45deg) scale(0);transform-origin:100% 100%;width:26px}.bubble.dragging[data-v-629e59a4]{transform:translate(-50%,-150%) rotate(45deg)}.bubble .text[data-v-629e59a4]{transform:rotate(-45deg)}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 4460:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".i-tabs-items .window-container{min-height:100%;overflow:hidden;transition-property:height;width:100%}.i-tabs-items .vnode-window{width:100%}.i-tabs-items .vnode-window.animating{transition:.3s ease}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 3102:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".i-tabs{-moz-user-select:none;user-select:none}.i-tabs .slider{background:hsla(0,0%,100%,.6);width:3px}.i-tabs .tab{color:hsla(0,0%,100%,.7);cursor:pointer;font-weight:500;line-height:22px;padding:12px;text-transform:uppercase;transition:color .1s ease}.i-tabs .tab.active{color:#fff}.i-tabs .tab .active-ripple .v-ripple__animation--in{opacity:.25!important}.i-tabs .tab .inactive-ripple .v-ripple__animation--in{opacity:.2}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 1464:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".input[data-v-16445f67]{border-bottom:2px solid #757575;outline:0;width:200px}.input[data-v-16445f67]:focus{border-bottom:2px solid #48f}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 413:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".scroll-container[data-v-97a84f04]{max-height:250px}.language-select-box .title-box .cancel-button[data-v-97a84f04]{cursor:pointer;padding:1px 6px}.language-select-box .title-box .cancel-button[data-v-97a84f04]:hover{background:#e0e0e0}.language-select-box .language-item[data-v-97a84f04]{cursor:pointer;flex:0 0 33.3333%;padding:1px 0}.language-select-box .language-item.active[data-v-97a84f04]{background:#e8e8e8}.language-select-box .language-item[data-v-97a84f04]:hover{background:#e0e0e0}.bottom-info-box .language-info-box[data-v-97a84f04]{color:#bbb;-moz-user-select:none;user-select:none}.bottom-info-box .language-info-box .language[data-v-97a84f04]{cursor:pointer}.bottom-info-box .language-info-box .language[data-v-97a84f04]:hover{color:#409eff}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 9941:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".app-info-text-input[data-v-529beb18] .label{width:120px}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 7066:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".scroll-container[data-v-27d91445]{max-height:250px}.language-select-box .title-box .cancel-button[data-v-27d91445]{cursor:pointer;padding:1px 6px}.language-select-box .title-box .cancel-button[data-v-27d91445]:hover{background:#e0e0e0}.language-select-box .language-item[data-v-27d91445]{cursor:pointer;flex:0 0 33.3333%;padding:1px 0}.language-select-box .language-item.active[data-v-27d91445]{background:#e8e8e8}.language-select-box .language-item[data-v-27d91445]:hover{background:#e0e0e0}.bottom-info-box .tts-box[data-v-27d91445]{opacity:.9;-moz-user-select:none;user-select:none}.bottom-info-box .tts-box .play-sound[data-v-27d91445]{cursor:pointer;opacity:.45}.bottom-info-box .tts-box .play-sound .audio-icon[data-v-27d91445]{margin:0 0 0 2px;opacity:.8}.bottom-info-box .tts-box .play-sound[data-v-27d91445]:hover{opacity:.7}.bottom-info-box .tts-box .play-sound[data-v-27d91445]:active{background-position:center calc(50% + 1px);opacity:1}.bottom-info-box .language-info-box[data-v-27d91445]{color:#bbb;-moz-user-select:none;user-select:none}.bottom-info-box .language-info-box .language[data-v-27d91445]{cursor:pointer}.bottom-info-box .language-info-box .language[data-v-27d91445]:hover{color:#409eff}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 8038:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".google-dict-box[data-v-21539aa9]{font-family:Arial,Microsoft Yahei UI,sans-serif}.scroll-container[data-v-21539aa9]{max-height:250px}.expand-button[data-v-21539aa9]{cursor:pointer;height:24px;opacity:.3;right:5px;top:5px;width:24px;z-index:2}.expand-button.with-scroll-bar[data-v-21539aa9]{right:12px}.expand-button[data-v-21539aa9]:hover{opacity:.6}.expand-button[data-v-21539aa9]:active{opacity:.9}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 1543:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".google-dict-modal[data-v-ea3555cc]{font-family:Arial,Microsoft Yahei UI,sans-serif;height:100vh;max-width:800px;width:80vw}.fold-control[data-v-ea3555cc]{left:50%;top:0;transform:translate(-50%)}.fold-control .control-btn[data-v-ea3555cc]{height:32px;width:32px}.fold-control .control-btn.disable[data-v-ea3555cc]{opacity:.2;pointer-events:none}.fold-control .control-btn[data-v-ea3555cc]:hover{background-color:#f0f0f0}.fold-control .control-btn:hover .tooltip[data-v-ea3555cc]{opacity:1}.fold-control .control-btn[data-v-ea3555cc]:active{box-shadow:inset 0 1px 3px rgba(0,0,0,.3)}.fold-control .tooltip[data-v-ea3555cc]{background:rgba(0,0,0,.5);border-radius:4px;bottom:-8px;color:#fff;font-size:12px;left:50%;opacity:0;padding:1px 6px;pointer-events:none;position:absolute;transform:translate(-50%,100%);transition:.3s cubic-bezier(.4,0,.2,1)}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 2942:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".phonetics-box[data-v-80abc988]{font-family:Noto Sans,Arial,sans-serif;height:20px;line-height:20px}.phonetics-box .play-button[data-v-80abc988]{cursor:pointer;height:20px;opacity:.45;width:22px}.phonetics-box .play-button[data-v-80abc988]:hover{opacity:.7}.phonetics-box .play-button[data-v-80abc988]:active{background-position:center calc(50% + 1px);opacity:1}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 6646:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".entry-item .sense-item-number[data-v-13c640e0]{flex:0 0 30px}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 1995:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".image-loader.loading[data-v-c0604a02]{border-radius:4px;box-shadow:0 0 0 3px #e9f4fb}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 2015:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".label-box.size-small[data-v-58734797] .label{font-size:12px;padding:1px 4px}.label-box.size-medium[data-v-58734797] .label{font-size:12px;padding:2px 6px}.label-box.size-large[data-v-58734797] .label{font-size:14px;padding:3px 8px}.label-box.color-plain[data-v-58734797] .label{background:#f0f0f0}.label-box.color-lightpink[data-v-58734797] .label{background:#fbe0e0}.label-box.color-lightblue[data-v-58734797] .label{background:#d7eaf9}.label-box.color-geographic[data-v-58734797] .label{background:#ddf7ba;text-transform:uppercase}.label-box.color-register[data-v-58734797] .label,.label-box.color-registers[data-v-58734797] .label{background:#f0f0f0;text-transform:uppercase}.label-box.color-subject[data-v-58734797] .label{background:#f2e0fa;text-transform:uppercase}.label-box .label[data-v-58734797]{margin-right:5px}.label-box .label.last[data-v-58734797]{margin-right:0}.label-box .label .tooltip[data-v-58734797]{background:rgba(0,0,0,.5);filter:drop-shadow(0 0 .5px black);line-height:16px;margin-right:-7px;padding:0 4px 0 3px;pointer-events:none;right:0;top:50%;transform:translate(100%,-50%);transition:.12s;white-space:nowrap;z-index:200000}.label-box .label .tooltip[data-v-58734797]:after{border:6px solid transparent;border-right-color:rgba(0,0,0,.5);content:\"\";left:0;margin-left:1px;position:absolute;top:50%;transform:translate(-100%,-50%);z-index:1}.label-box .label .tooltip.p-enter[data-v-58734797],.label-box .label .tooltip.p-leave-to[data-v-58734797]{opacity:0}.label-box .label .tooltip.p-enter-to[data-v-58734797],.label-box .label .tooltip.p-leave[data-v-58734797]{opacity:1}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 269:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".sense-item .sense-item-number[data-v-b981c738]{flex:0 0 32px;padding:0 10px 0 0}.sense-item .subsense-item .subsense-number[data-v-b981c738]{font-family:consolas,monospace}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 5698:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".thesaurus-syn-ant .type-synonyms[data-v-2759b815]{color:#78b07b}.thesaurus-syn-ant .type-antonyms[data-v-2759b815]{color:#ce8383}.thesaurus-syn-ant .show-more-or-less[data-v-2759b815]{opacity:.7}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 1176:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".scroll-container[data-v-29b37c76]{max-height:250px}.language-select-box .language-item[data-v-29b37c76]{flex:0 0 33.3333%;padding:1px 0}.language-select-box .language-item.active[data-v-29b37c76]{background:#e8e8e8}.language-select-box .language-item[data-v-29b37c76]:hover{background:#e0e0e0}.bottom-info-box .tts-box[data-v-29b37c76]{opacity:.9}.bottom-info-box .tts-box .play-sound[data-v-29b37c76]{opacity:.45}.bottom-info-box .tts-box .play-sound .audio-icon[data-v-29b37c76]{margin:0 0 0 2px;opacity:.8}.bottom-info-box .tts-box .play-sound[data-v-29b37c76]:hover{opacity:.7}.bottom-info-box .tts-box .play-sound[data-v-29b37c76]:active{background-position:center calc(50% + 1px);opacity:1}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 38:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".pronunciation-item[data-v-267555b4]{flex:0 0 20px;height:20px;line-height:20px}.pronunciation-item .play-sound[data-v-267555b4]{cursor:pointer;height:20px;opacity:.45;width:20px}.pronunciation-item .play-sound[data-v-267555b4]:hover{opacity:.7}.pronunciation-item .play-sound[data-v-267555b4]:active{background-position:center calc(50% + 1px);opacity:1}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 876:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".scroll-container[data-v-08018802]{max-height:250px}.main-box>div[data-v-08018802]:first-child{margin-top:0!important}.symbols-box .part-item[data-v-08018802]{line-height:20px}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 4444:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".scroll-container[data-v-4129bac5]{max-height:250px}.content-box[data-v-4129bac5]{font-family:Source Han Sans SC,Source Sans Pro,Helvetica Neue,Helvetica,Arial,sans-serif}.content-box .row .keyword[data-v-4129bac5]{cursor:pointer;text-decoration:underline}.content-box .row .keyword.definition-keyword[data-v-4129bac5]{color:#6cace0}.content-box .row .keyword.example-keyword[data-v-4129bac5]{color:#99c3e6}.content-box .row .definition[data-v-4129bac5]{line-height:20px}.content-box .divider[data-v-4129bac5]{height:1px;width:100%}.content-box .thumb[data-v-4129bac5]{opacity:.7}.content-box .thumb.thumb-down[data-v-4129bac5]{transform:translateY(3px) rotate(180deg)}.u-toolip[data-v-4129bac5]{filter:drop-shadow(0 2px 1px rgba(0,0,0,.15)) drop-shadow(0 2px 1.2px rgba(0,0,0,.16)) drop-shadow(0 1px 2.2px rgba(0,0,0,.12));max-width:280px;padding:5px 8px;transform:translate(calc(-50% + 10px),17px);z-index:2}.u-toolip .inner-content[data-v-4129bac5]{max-height:105px;overflow:hidden}.u-toolip .loadin-spinner[data-v-4129bac5]{margin:6px 0}@keyframes rotate-4129bac5{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.u-toolip .rotate[data-v-4129bac5]{animation-duration:1.2s;animation-iteration-count:infinite;animation-name:rotate-4129bac5;animation-timing-function:linear}.u-toolip[data-v-4129bac5]:before{border-bottom:10px solid #fff;border-left:10px solid transparent;border-right:10px solid transparent;content:\"\";left:50%;position:absolute;top:-10px;transform:translate(-50%) scaleY(1.5) skewX(40deg);transform-origin:50% bottom}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 7772:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".scroll-container[data-v-45930c7a]{max-height:250px}.main-box .play-sound[data-v-45930c7a]{cursor:pointer;height:20px;opacity:.45;width:20px}.main-box .play-sound[data-v-45930c7a]:hover{opacity:.7}.main-box .play-sound[data-v-45930c7a]:active{background-position:center calc(50% + 1px);opacity:1}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 3136:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".toast-box[data-v-22ad7e37]{background:rgba(0,0,0,.5);border-radius:6px;bottom:10%;left:50%;padding:10px 18px;transform:translate(-50%,-50%);transform-origin:left top;z-index:2147483647}.t-enter-from[data-v-22ad7e37],.t-leave-to[data-v-22ad7e37]{opacity:0}.toast-box.t-enter-from[data-v-22ad7e37]{transform:scale(.9) translate(-50%,-50%)}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 180:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".history-window[data-v-2d428882]{height:560px;width:480px}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 7843:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".iciba-circle[data-v-b769a32c]{height:22px;opacity:.9;width:22px;z-index:10000}.iciba-circle.circle[data-v-b769a32c]{border-radius:9999px}.iciba-circle[data-v-b769a32c]:not(.has-icon){background:#a8c6f0;border:1px solid #0f0f0f;box-shadow:0 1px 1px -1px rgba(0,0,0,.2),0 0 1px 0 rgba(0,0,0,.14),0 0 3px 0 rgba(0,0,0,.12);opacity:.7}.iciba-circle[data-v-b769a32c]:not(.has-icon):active{box-shadow:0 1px 1px -1px rgba(0,0,0,.2),0 0 1px 0 rgba(0,0,0,.14),0 0 3px 0 rgba(0,0,0,.12),inset 1px 1px 1px rgba(0,0,0,.4)}.iciba-circle.c-leave-active[data-v-b769a32c]{transition:.15s cubic-bezier(.4,0,.2,1);transition-property:opacity,transform}.iciba-circle.c-leave-to[data-v-b769a32c]{opacity:0;transform:scale(.9)}.iciba-circle.c-leave[data-v-b769a32c]{opacity:1;transform:scale(1)}.iciba-circle[data-v-b769a32c]:hover{opacity:1}.iciba-circle[data-v-b769a32c]:active{filter:brightness(.7)}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 370:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".iciba-main-wrap[data-v-becc6b2c]{z-index:9999}.iciba-main-wrap.m-enter-from[data-v-becc6b2c]{opacity:0}.iciba-main-wrap.m-enter-from .iciba-main[data-v-becc6b2c]{transform:translateY(-6px)}.iciba-main-wrap.m-leave-to[data-v-becc6b2c]{opacity:0}.iciba-main-wrap.m-enter-to[data-v-becc6b2c],.iciba-main-wrap.m-leave-from[data-v-becc6b2c]{opacity:1}.iciba-main[data-v-becc6b2c]{filter:drop-shadow(0 2px 1.5px rgba(0,0,0,.14)) drop-shadow(0 4px 2.5px rgba(0,0,0,.15)) drop-shadow(0 1px 5px rgba(0,0,0,.12));left:0;letter-spacing:0;top:0;width:300px}.input-box[data-v-becc6b2c]{height:28px;z-index:1}.input-box .iciba-input-box .search-input[data-v-becc6b2c]{height:27px;letter-spacing:0;line-height:27px;padding:0 4px 0 7px;z-index:2}.input-box .iciba-input-box .search-input[data-v-becc6b2c]:focus{outline:none}.input-box .iciba-input-box.focused[data-v-becc6b2c]:before{content:\"\";height:calc(100% - 1px);left:1px;outline:2px solid #48f;outline-offset:-1px;position:absolute;top:1px;width:calc(100% - 1px)}.input-box .iciba-input-box .input-button[data-v-becc6b2c]{height:27px;opacity:.2;width:27px;z-index:2}.input-box .iciba-input-box .input-button[data-v-becc6b2c]:hover{opacity:.6}.input-box .iciba-input-box .input-button[data-v-becc6b2c]:active{background-position:center calc(50% + 1px);opacity:.9}.input-box .provider-box[data-v-becc6b2c]{height:28px}.input-box .provider-box .provider-button[data-v-becc6b2c]{background-color:#f7f7f7;flex:0 0 28px;height:27px;width:28px}.input-box .provider-box .provider-button[data-v-becc6b2c]:focus{outline:none}.input-box .provider-box .provider-button[data-v-becc6b2c]:focus:before{content:\"\";height:calc(100% - 1px);left:0;outline:2px solid #48f;outline-offset:-1px;position:absolute;top:1px;width:100%}.input-box .provider-box .provider-button[data-v-becc6b2c]:last-child:focus:before{width:calc(100% - 1px)}.input-box .provider-box .provider-button[data-v-becc6b2c]:hover{background-color:#fcfcfc}.input-box .provider-box .provider-button[data-v-becc6b2c]:active{background-color:#f0f0f0;background-position:center calc(50% + 1px);box-shadow:inset 0 0 6px #aaa}.content-box[data-v-becc6b2c]{background:#f7f7f7;z-index:2}.content-box .content-item[data-v-becc6b2c]{padding:7px 10px 10px}.stick-box[data-v-becc6b2c]{background:#eee;background-color:#f7f7f7;height:56px;right:0;top:0;transform:translate(100%);transition-duration:.1s;width:28px;z-index:0}.stick-box.s-enter[data-v-becc6b2c],.stick-box.s-leave-to[data-v-becc6b2c]{transform:translate(0);transition-delay:.3s}.stick-box.s-enter-to[data-v-becc6b2c],.stick-box.s-leave[data-v-becc6b2c]{transform:translate(100%)}.stick-box .drag[data-v-becc6b2c]{cursor:-webkit-grab;cursor:grab}.stick-box .drag[data-v-becc6b2c],.stick-box .stick[data-v-becc6b2c]{height:28px;width:28px}.stick-box .stick .i-icon[data-v-becc6b2c]{opacity:.4;transform:rotate(45deg)}.stick-box .stick.pinned .i-icon[data-v-becc6b2c]{opacity:1;transform:rotate(0)}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 9502:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".setting-window[data-v-52c940b4]{height:580px;width:580px}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 5832:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".default-iciba-circle[data-v-d6c1cc28]{background:#a8c6f0;border:1px solid #0f0f0f;border-radius:9999px;box-shadow:0 1px 1px -1px rgba(0,0,0,.2),0 0 1px 0 rgba(0,0,0,.14),0 0 3px 0 rgba(0,0,0,.12);opacity:.7}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 1392:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Imports
var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(3116);
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(3759);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
// Module
___CSS_LOADER_EXPORT___.push([module.id, ".icon-box-container .icon-item[data-v-be105b76]{height:44px;width:44px}.icon-box-container .icon-item.icon-move[data-v-be105b76]{transition:transform .3s cubic-bezier(.4,0,.2,1)}.icon-box-container .icon-item .mask-box[data-v-be105b76]{background:#eee;border:1px solid #aaa;border-radius:3px;height:44px;left:0;top:0;width:44px;z-index:2}.icon-box-container .icon-item .mask-box.mask-enter-to[data-v-be105b76],.icon-box-container .icon-item .mask-box.mask-leave[data-v-be105b76]{opacity:1}.icon-box-container .icon-item .mask-box.mask-enter[data-v-be105b76],.icon-box-container .icon-item .mask-box.mask-leave-to[data-v-be105b76]{opacity:0}.icon-box-container .icon-item .mask-box.mask-leave-active[data-v-be105b76]{transition-delay:.2s}.icon-box-container .icon-item .icon-box[data-v-be105b76]{height:44px;width:44px;z-index:3}.icon-box-container .icon-item .icon-box .icon.inactive[data-v-be105b76]{opacity:.25}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ }),

/***/ 2751:
/***/ ((module) => {

var charenc = {
  // UTF-8 encoding
  utf8: {
    // Convert a string to a byte array
    stringToBytes: function(str) {
      return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));
    },

    // Convert a byte array to a string
    bytesToString: function(bytes) {
      return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));
    }
  },

  // Binary encoding
  bin: {
    // Convert a string to a byte array
    stringToBytes: function(str) {
      for (var bytes = [], i = 0; i < str.length; i++)
        bytes.push(str.charCodeAt(i) & 0xFF);
      return bytes;
    },

    // Convert a byte array to a string
    bytesToString: function(bytes) {
      for (var str = [], i = 0; i < bytes.length; i++)
        str.push(String.fromCharCode(bytes[i]));
      return str.join('');
    }
  }
};

module.exports = charenc;


/***/ }),

/***/ 5816:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var parent = __webpack_require__(7419);

module.exports = parent;


/***/ }),

/***/ 1902:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(3618);
__webpack_require__(1780);
var entryVirtual = __webpack_require__(1298);

module.exports = entryVirtual('Array').flatMap;


/***/ }),

/***/ 5519:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(4428);
__webpack_require__(9365);
var entryVirtual = __webpack_require__(1298);

module.exports = entryVirtual('Array').keys;


/***/ }),

/***/ 2557:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(5460);
var entryVirtual = __webpack_require__(1298);

module.exports = entryVirtual('Array').reduce;


/***/ }),

/***/ 1622:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isPrototypeOf = __webpack_require__(1064);
var method = __webpack_require__(1902);

var ArrayPrototype = Array.prototype;

module.exports = function (it) {
  var own = it.flatMap;
  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.flatMap) ? method : own;
};


/***/ }),

/***/ 5011:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isPrototypeOf = __webpack_require__(1064);
var method = __webpack_require__(3838);

var StringPrototype = String.prototype;

module.exports = function (it) {
  var own = it.matchAll;
  return typeof it == 'string' || it === StringPrototype
    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.matchAll) ? method : own;
};


/***/ }),

/***/ 4133:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isPrototypeOf = __webpack_require__(1064);
var method = __webpack_require__(2557);

var ArrayPrototype = Array.prototype;

module.exports = function (it) {
  var own = it.reduce;
  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.reduce) ? method : own;
};


/***/ }),

/***/ 249:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isPrototypeOf = __webpack_require__(1064);
var method = __webpack_require__(2154);

var StringPrototype = String.prototype;

module.exports = function (it) {
  var own = it.trim;
  return typeof it == 'string' || it === StringPrototype
    || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.trim) ? method : own;
};


/***/ }),

/***/ 9971:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(4428);
__webpack_require__(6830);
var path = __webpack_require__(1559);

module.exports = path.Object.fromEntries;


/***/ }),

/***/ 4556:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(9889);
__webpack_require__(4428);
__webpack_require__(9365);
__webpack_require__(1025);
__webpack_require__(1305);
__webpack_require__(2229);
__webpack_require__(3000);
__webpack_require__(597);
var path = __webpack_require__(1559);

module.exports = path.Promise;


/***/ }),

/***/ 3838:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(9365);
__webpack_require__(6756);
__webpack_require__(7293);
var entryVirtual = __webpack_require__(1298);

module.exports = entryVirtual('String').matchAll;


/***/ }),

/***/ 2154:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(4586);
var entryVirtual = __webpack_require__(1298);

module.exports = entryVirtual('String').trim;


/***/ }),

/***/ 7611:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// TODO: remove from `core-js@4`
__webpack_require__(8129);

var parent = __webpack_require__(5816);

module.exports = parent;


/***/ }),

/***/ 8709:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var isCallable = __webpack_require__(6811);
var tryToString = __webpack_require__(5986);

var TypeError = global.TypeError;

// `Assert: IsCallable(argument) is true`
module.exports = function (argument) {
  if (isCallable(argument)) return argument;
  throw TypeError(tryToString(argument) + ' is not a function');
};


/***/ }),

/***/ 9904:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var isConstructor = __webpack_require__(6033);
var tryToString = __webpack_require__(5986);

var TypeError = global.TypeError;

// `Assert: IsConstructor(argument) is true`
module.exports = function (argument) {
  if (isConstructor(argument)) return argument;
  throw TypeError(tryToString(argument) + ' is not a constructor');
};


/***/ }),

/***/ 3908:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var isCallable = __webpack_require__(6811);

var String = global.String;
var TypeError = global.TypeError;

module.exports = function (argument) {
  if (typeof argument == 'object' || isCallable(argument)) return argument;
  throw TypeError("Can't set " + String(argument) + ' as a prototype');
};


/***/ }),

/***/ 5254:
/***/ ((module) => {

module.exports = function () { /* empty */ };


/***/ }),

/***/ 9557:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var charAt = (__webpack_require__(5422).charAt);

// `AdvanceStringIndex` abstract operation
// https://tc39.es/ecma262/#sec-advancestringindex
module.exports = function (S, index, unicode) {
  return index + (unicode ? charAt(S, index).length : 1);
};


/***/ }),

/***/ 4117:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var isPrototypeOf = __webpack_require__(1064);

var TypeError = global.TypeError;

module.exports = function (it, Prototype) {
  if (isPrototypeOf(Prototype, it)) return it;
  throw TypeError('Incorrect invocation');
};


/***/ }),

/***/ 5863:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var isObject = __webpack_require__(280);

var String = global.String;
var TypeError = global.TypeError;

// `Assert: Type(argument) is Object`
module.exports = function (argument) {
  if (isObject(argument)) return argument;
  throw TypeError(String(argument) + ' is not an object');
};


/***/ }),

/***/ 1235:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toIndexedObject = __webpack_require__(7728);
var toAbsoluteIndex = __webpack_require__(5035);
var lengthOfArrayLike = __webpack_require__(502);

// `Array.prototype.{ indexOf, includes }` methods implementation
var createMethod = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIndexedObject($this);
    var length = lengthOfArrayLike(O);
    var index = toAbsoluteIndex(fromIndex, length);
    var value;
    // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare -- NaN check
    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++];
      // eslint-disable-next-line no-self-compare -- NaN check
      if (value != value) return true;
    // Array#indexOf ignores holes, Array#includes - not
    } else for (;length > index; index++) {
      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
    } return !IS_INCLUDES && -1;
  };
};

module.exports = {
  // `Array.prototype.includes` method
  // https://tc39.es/ecma262/#sec-array.prototype.includes
  includes: createMethod(true),
  // `Array.prototype.indexOf` method
  // https://tc39.es/ecma262/#sec-array.prototype.indexof
  indexOf: createMethod(false)
};


/***/ }),

/***/ 8127:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var fails = __webpack_require__(5907);

module.exports = function (METHOD_NAME, argument) {
  var method = [][METHOD_NAME];
  return !!method && fails(function () {
    // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing
    method.call(null, argument || function () { throw 1; }, 1);
  });
};


/***/ }),

/***/ 2421:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var aCallable = __webpack_require__(8709);
var toObject = __webpack_require__(5041);
var IndexedObject = __webpack_require__(3125);
var lengthOfArrayLike = __webpack_require__(502);

var TypeError = global.TypeError;

// `Array.prototype.{ reduce, reduceRight }` methods implementation
var createMethod = function (IS_RIGHT) {
  return function (that, callbackfn, argumentsLength, memo) {
    aCallable(callbackfn);
    var O = toObject(that);
    var self = IndexedObject(O);
    var length = lengthOfArrayLike(O);
    var index = IS_RIGHT ? length - 1 : 0;
    var i = IS_RIGHT ? -1 : 1;
    if (argumentsLength < 2) while (true) {
      if (index in self) {
        memo = self[index];
        index += i;
        break;
      }
      index += i;
      if (IS_RIGHT ? index < 0 : length <= index) {
        throw TypeError('Reduce of empty array with no initial value');
      }
    }
    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {
      memo = callbackfn(memo, self[index], index, O);
    }
    return memo;
  };
};

module.exports = {
  // `Array.prototype.reduce` method
  // https://tc39.es/ecma262/#sec-array.prototype.reduce
  left: createMethod(false),
  // `Array.prototype.reduceRight` method
  // https://tc39.es/ecma262/#sec-array.prototype.reduceright
  right: createMethod(true)
};


/***/ }),

/***/ 5924:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var toAbsoluteIndex = __webpack_require__(5035);
var lengthOfArrayLike = __webpack_require__(502);
var createProperty = __webpack_require__(3699);

var Array = global.Array;
var max = Math.max;

module.exports = function (O, start, end) {
  var length = lengthOfArrayLike(O);
  var k = toAbsoluteIndex(start, length);
  var fin = toAbsoluteIndex(end === undefined ? length : end, length);
  var result = Array(max(fin - k, 0));
  for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);
  result.length = n;
  return result;
};


/***/ }),

/***/ 106:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var uncurryThis = __webpack_require__(9320);

module.exports = uncurryThis([].slice);


/***/ }),

/***/ 2539:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arraySlice = __webpack_require__(5924);

var floor = Math.floor;

var mergeSort = function (array, comparefn) {
  var length = array.length;
  var middle = floor(length / 2);
  return length < 8 ? insertionSort(array, comparefn) : merge(
    array,
    mergeSort(arraySlice(array, 0, middle), comparefn),
    mergeSort(arraySlice(array, middle), comparefn),
    comparefn
  );
};

var insertionSort = function (array, comparefn) {
  var length = array.length;
  var i = 1;
  var element, j;

  while (i < length) {
    j = i;
    element = array[i];
    while (j && comparefn(array[j - 1], element) > 0) {
      array[j] = array[--j];
    }
    if (j !== i++) array[j] = element;
  } return array;
};

var merge = function (array, left, right, comparefn) {
  var llength = left.length;
  var rlength = right.length;
  var lindex = 0;
  var rindex = 0;

  while (lindex < llength || rindex < rlength) {
    array[lindex + rindex] = (lindex < llength && rindex < rlength)
      ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]
      : lindex < llength ? left[lindex++] : right[rindex++];
  } return array;
};

module.exports = mergeSort;


/***/ }),

/***/ 8621:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var isArray = __webpack_require__(9087);
var isConstructor = __webpack_require__(6033);
var isObject = __webpack_require__(280);
var wellKnownSymbol = __webpack_require__(2618);

var SPECIES = wellKnownSymbol('species');
var Array = global.Array;

// a part of `ArraySpeciesCreate` abstract operation
// https://tc39.es/ecma262/#sec-arrayspeciescreate
module.exports = function (originalArray) {
  var C;
  if (isArray(originalArray)) {
    C = originalArray.constructor;
    // cross-realm fallback
    if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;
    else if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  } return C === undefined ? Array : C;
};


/***/ }),

/***/ 432:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var arraySpeciesConstructor = __webpack_require__(8621);

// `ArraySpeciesCreate` abstract operation
// https://tc39.es/ecma262/#sec-arrayspeciescreate
module.exports = function (originalArray, length) {
  return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
};


/***/ }),

/***/ 8955:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var wellKnownSymbol = __webpack_require__(2618);

var ITERATOR = wellKnownSymbol('iterator');
var SAFE_CLOSING = false;

try {
  var called = 0;
  var iteratorWithReturn = {
    next: function () {
      return { done: !!called++ };
    },
    'return': function () {
      SAFE_CLOSING = true;
    }
  };
  iteratorWithReturn[ITERATOR] = function () {
    return this;
  };
  // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing
  Array.from(iteratorWithReturn, function () { throw 2; });
} catch (error) { /* empty */ }

module.exports = function (exec, SKIP_CLOSING) {
  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
  var ITERATION_SUPPORT = false;
  try {
    var object = {};
    object[ITERATOR] = function () {
      return {
        next: function () {
          return { done: ITERATION_SUPPORT = true };
        }
      };
    };
    exec(object);
  } catch (error) { /* empty */ }
  return ITERATION_SUPPORT;
};


/***/ }),

/***/ 8362:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var uncurryThis = __webpack_require__(9320);

var toString = uncurryThis({}.toString);
var stringSlice = uncurryThis(''.slice);

module.exports = function (it) {
  return stringSlice(toString(it), 8, -1);
};


/***/ }),

/***/ 3603:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var TO_STRING_TAG_SUPPORT = __webpack_require__(5864);
var isCallable = __webpack_require__(6811);
var classofRaw = __webpack_require__(8362);
var wellKnownSymbol = __webpack_require__(2618);

var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var Object = global.Object;

// ES3 wrong here
var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';

// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (error) { /* empty */ }
};

// getting tag from ES6+ `Object.prototype.toString`
module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
  var O, tag, result;
  return it === undefined ? 'Undefined' : it === null ? 'Null'
    // @@toStringTag case
    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag
    // builtinTag case
    : CORRECT_ARGUMENTS ? classofRaw(O)
    // ES3 arguments fallback
    : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;
};


/***/ }),

/***/ 1401:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var uncurryThis = __webpack_require__(9320);

var replace = uncurryThis(''.replace);

var TEST = (function (arg) { return String(Error(arg).stack); })('zxcasd');
var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/;
var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);

module.exports = function (stack, dropEntries) {
  if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string') {
    while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');
  } return stack;
};


/***/ }),

/***/ 9114:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var hasOwn = __webpack_require__(757);
var ownKeys = __webpack_require__(6914);
var getOwnPropertyDescriptorModule = __webpack_require__(9379);
var definePropertyModule = __webpack_require__(2067);

module.exports = function (target, source, exceptions) {
  var keys = ownKeys(source);
  var defineProperty = definePropertyModule.f;
  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
  for (var i = 0; i < keys.length; i++) {
    var key = keys[i];
    if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {
      defineProperty(target, key, getOwnPropertyDescriptor(source, key));
    }
  }
};


/***/ }),

/***/ 2346:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var fails = __webpack_require__(5907);

module.exports = !fails(function () {
  function F() { /* empty */ }
  F.prototype.constructor = null;
  // eslint-disable-next-line es/no-object-getprototypeof -- required for testing
  return Object.getPrototypeOf(new F()) !== F.prototype;
});


/***/ }),

/***/ 3968:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var IteratorPrototype = (__webpack_require__(3826).IteratorPrototype);
var create = __webpack_require__(9977);
var createPropertyDescriptor = __webpack_require__(4221);
var setToStringTag = __webpack_require__(6973);
var Iterators = __webpack_require__(2815);

var returnThis = function () { return this; };

module.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {
  var TO_STRING_TAG = NAME + ' Iterator';
  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });
  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
  Iterators[TO_STRING_TAG] = returnThis;
  return IteratorConstructor;
};


/***/ }),

/***/ 8171:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var DESCRIPTORS = __webpack_require__(4155);
var definePropertyModule = __webpack_require__(2067);
var createPropertyDescriptor = __webpack_require__(4221);

module.exports = DESCRIPTORS ? function (object, key, value) {
  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};


/***/ }),

/***/ 4221:
/***/ ((module) => {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};


/***/ }),

/***/ 3699:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var toPropertyKey = __webpack_require__(3793);
var definePropertyModule = __webpack_require__(2067);
var createPropertyDescriptor = __webpack_require__(4221);

module.exports = function (object, key, value) {
  var propertyKey = toPropertyKey(key);
  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
  else object[propertyKey] = value;
};


/***/ }),

/***/ 2313:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $ = __webpack_require__(9523);
var call = __webpack_require__(132);
var IS_PURE = __webpack_require__(5313);
var FunctionName = __webpack_require__(9667);
var isCallable = __webpack_require__(6811);
var createIteratorConstructor = __webpack_require__(3968);
var getPrototypeOf = __webpack_require__(2833);
var setPrototypeOf = __webpack_require__(3200);
var setToStringTag = __webpack_require__(6973);
var createNonEnumerableProperty = __webpack_require__(8171);
var redefine = __webpack_require__(8090);
var wellKnownSymbol = __webpack_require__(2618);
var Iterators = __webpack_require__(2815);
var IteratorsCore = __webpack_require__(3826);

var PROPER_FUNCTION_NAME = FunctionName.PROPER;
var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
var IteratorPrototype = IteratorsCore.IteratorPrototype;
var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
var ITERATOR = wellKnownSymbol('iterator');
var KEYS = 'keys';
var VALUES = 'values';
var ENTRIES = 'entries';

var returnThis = function () { return this; };

module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
  createIteratorConstructor(IteratorConstructor, NAME, next);

  var getIterationMethod = function (KIND) {
    if (KIND === DEFAULT && defaultIterator) return defaultIterator;
    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];
    switch (KIND) {
      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };
      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };
      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };
    } return function () { return new IteratorConstructor(this); };
  };

  var TO_STRING_TAG = NAME + ' Iterator';
  var INCORRECT_VALUES_NAME = false;
  var IterablePrototype = Iterable.prototype;
  var nativeIterator = IterablePrototype[ITERATOR]
    || IterablePrototype['@@iterator']
    || DEFAULT && IterablePrototype[DEFAULT];
  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;
  var CurrentIteratorPrototype, methods, KEY;

  // fix native
  if (anyNativeIterator) {
    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));
    if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
        if (setPrototypeOf) {
          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
        } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {
          redefine(CurrentIteratorPrototype, ITERATOR, returnThis);
        }
      }
      // Set @@toStringTag to native iterators
      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);
      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;
    }
  }

  // fix Array.prototype.{ values, @@iterator }.name in V8 / FF
  if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
    if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {
      createNonEnumerableProperty(IterablePrototype, 'name', VALUES);
    } else {
      INCORRECT_VALUES_NAME = true;
      defaultIterator = function values() { return call(nativeIterator, this); };
    }
  }

  // export additional methods
  if (DEFAULT) {
    methods = {
      values: getIterationMethod(VALUES),
      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
      entries: getIterationMethod(ENTRIES)
    };
    if (FORCED) for (KEY in methods) {
      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
        redefine(IterablePrototype, KEY, methods[KEY]);
      }
    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
  }

  // define iterator
  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {
    redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });
  }
  Iterators[NAME] = defaultIterator;

  return methods;
};


/***/ }),

/***/ 4155:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var fails = __webpack_require__(5907);

// Detect IE8's incomplete defineProperty implementation
module.exports = !fails(function () {
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
});


/***/ }),

/***/ 1884:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var isObject = __webpack_require__(280);

var document = global.document;
// typeof document.createElement is 'object' in old IE
var EXISTS = isObject(document) && isObject(document.createElement);

module.exports = function (it) {
  return EXISTS ? document.createElement(it) : {};
};


/***/ }),

/***/ 2176:
/***/ ((module) => {

// iterable DOM collections
// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
module.exports = {
  CSSRuleList: 0,
  CSSStyleDeclaration: 0,
  CSSValueList: 0,
  ClientRectList: 0,
  DOMRectList: 0,
  DOMStringList: 0,
  DOMTokenList: 1,
  DataTransferItemList: 0,
  FileList: 0,
  HTMLAllCollection: 0,
  HTMLCollection: 0,
  HTMLFormElement: 0,
  HTMLSelectElement: 0,
  MediaList: 0,
  MimeTypeArray: 0,
  NamedNodeMap: 0,
  NodeList: 1,
  PaintRequestList: 0,
  Plugin: 0,
  PluginArray: 0,
  SVGLengthList: 0,
  SVGNumberList: 0,
  SVGPathSegList: 0,
  SVGPointList: 0,
  SVGStringList: 0,
  SVGTransformList: 0,
  SourceBufferList: 0,
  StyleSheetList: 0,
  TextTrackCueList: 0,
  TextTrackList: 0,
  TouchList: 0
};


/***/ }),

/***/ 6701:
/***/ ((module) => {

module.exports = typeof window == 'object';


/***/ }),

/***/ 6486:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var userAgent = __webpack_require__(9580);
var global = __webpack_require__(9790);

module.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;


/***/ }),

/***/ 4805:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var userAgent = __webpack_require__(9580);

module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);


/***/ }),

/***/ 8799:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var classof = __webpack_require__(8362);
var global = __webpack_require__(9790);

module.exports = classof(global.process) == 'process';


/***/ }),

/***/ 5704:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var userAgent = __webpack_require__(9580);

module.exports = /web0s(?!.*chrome)/i.test(userAgent);


/***/ }),

/***/ 9580:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var getBuiltIn = __webpack_require__(7697);

module.exports = getBuiltIn('navigator', 'userAgent') || '';


/***/ }),

/***/ 4740:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var userAgent = __webpack_require__(9580);

var process = global.process;
var Deno = global.Deno;
var versions = process && process.versions || Deno && Deno.version;
var v8 = versions && versions.v8;
var match, version;

if (v8) {
  match = v8.split('.');
  // in old Chrome, versions of V8 isn't V8 = Chrome / 10
  // but their correct versions are not interesting for us
  version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
}

// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`
// so check `userAgent` even if `.v8` exists, but 0
if (!version && userAgent) {
  match = userAgent.match(/Edge\/(\d+)/);
  if (!match || match[1] >= 74) {
    match = userAgent.match(/Chrome\/(\d+)/);
    if (match) version = +match[1];
  }
}

module.exports = version;


/***/ }),

/***/ 1298:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var path = __webpack_require__(1559);

module.exports = function (CONSTRUCTOR) {
  return path[CONSTRUCTOR + 'Prototype'];
};


/***/ }),

/***/ 538:
/***/ ((module) => {

// IE8- don't enum bug keys
module.exports = [
  'constructor',
  'hasOwnProperty',
  'isPrototypeOf',
  'propertyIsEnumerable',
  'toLocaleString',
  'toString',
  'valueOf'
];


/***/ }),

/***/ 6935:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var fails = __webpack_require__(5907);
var createPropertyDescriptor = __webpack_require__(4221);

module.exports = !fails(function () {
  var error = Error('a');
  if (!('stack' in error)) return true;
  // eslint-disable-next-line es/no-object-defineproperty -- safe
  Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));
  return error.stack !== 7;
});


/***/ }),

/***/ 9523:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(9790);
var apply = __webpack_require__(1541);
var uncurryThis = __webpack_require__(9320);
var isCallable = __webpack_require__(6811);
var getOwnPropertyDescriptor = (__webpack_require__(9379).f);
var isForced = __webpack_require__(1434);
var path = __webpack_require__(1559);
var bind = __webpack_require__(9037);
var createNonEnumerableProperty = __webpack_require__(8171);
var hasOwn = __webpack_require__(757);

var wrapConstructor = function (NativeConstructor) {
  var Wrapper = function (a, b, c) {
    if (this instanceof Wrapper) {
      switch (arguments.length) {
        case 0: return new NativeConstructor();
        case 1: return new NativeConstructor(a);
        case 2: return new NativeConstructor(a, b);
      } return new NativeConstructor(a, b, c);
    } return apply(NativeConstructor, this, arguments);
  };
  Wrapper.prototype = NativeConstructor.prototype;
  return Wrapper;
};

/*
  options.target      - name of the target object
  options.global      - target is the global object
  options.stat        - export as static methods of target
  options.proto       - export as prototype methods of target
  options.real        - real prototype method for the `pure` version
  options.forced      - export even if the native feature is available
  options.bind        - bind methods to the target, required for the `pure` version
  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version
  options.unsafe      - use the simple assignment of property instead of delete + defineProperty
  options.sham        - add a flag to not completely full polyfills
  options.enumerable  - export as enumerable property
  options.noTargetGet - prevent calling a getter on target
  options.name        - the .name of the function if it does not match the key
*/
module.exports = function (options, source) {
  var TARGET = options.target;
  var GLOBAL = options.global;
  var STATIC = options.stat;
  var PROTO = options.proto;

  var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype;

  var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET];
  var targetPrototype = target.prototype;

  var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;
  var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;

  for (key in source) {
    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
    // contains in native
    USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key);

    targetProperty = target[key];

    if (USE_NATIVE) if (options.noTargetGet) {
      descriptor = getOwnPropertyDescriptor(nativeSource, key);
      nativeProperty = descriptor && descriptor.value;
    } else nativeProperty = nativeSource[key];

    // export native or implementation
    sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];

    if (USE_NATIVE && typeof targetProperty == typeof sourceProperty) continue;

    // bind timers to global for call from export context
    if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global);
    // wrap global constructors for prevent changs in this version
    else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);
    // make static versions for prototype methods
    else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty);
    // default case
    else resultProperty = sourceProperty;

    // add a flag to not completely full polyfills
    if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {
      createNonEnumerableProperty(resultProperty, 'sham', true);
    }

    createNonEnumerableProperty(target, key, resultProperty);

    if (PROTO) {
      VIRTUAL_PROTOTYPE = TARGET + 'Prototype';
      if (!hasOwn(path, VIRTUAL_PROTOTYPE)) {
        createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});
      }
      // export virtual prototype methods
      createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty);
      // export real prototype methods
      if (options.real && targetPrototype && !targetPrototype[key]) {
        createNonEnumerableProperty(targetPrototype, key, sourceProperty);
      }
    }
  }
};


/***/ }),

/***/ 5907:
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (error) {
    return true;
  }
};


/***/ }),

/***/ 493:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var global = __webpack_require__(9790);
var isArray = __webpack_require__(9087);
var lengthOfArrayLike = __webpack_require__(502);
var bind = __webpack_require__(9037);

var TypeError = global.TypeError;

// `FlattenIntoArray` abstract operation
// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {
  var targetIndex = start;
  var sourceIndex = 0;
  var mapFn = mapper ? bind(mapper, thisArg) : false;
  var element, elementLen;

  while (sourceIndex < sourceLen) {
    if (sourceIndex in source) {
      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];

      if (depth > 0 && isArray(element)) {
        elementLen = lengthOfArrayLike(element);
        targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;
      } else {
        if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');
        target[targetIndex] = element;
      }

      targetIndex++;
    }
    sourceIndex++;
  }
  return targetIndex;
};

module.exports = flattenIntoArray;


/***/ }),

/***/ 1541:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var NATIVE_BIND = __webpack_require__(386);

var FunctionPrototype = Function.prototype;
var apply = FunctionPrototype.apply;
var call = FunctionPrototype.call;

// eslint-disable-next-line es/no-reflect -- safe
module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {
  return call.apply(apply, arguments);
});


/***/ }),

/***/ 9037:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var uncurryThis = __webpack_require__(9320);
var aCallable = __webpack_require__(8709);
var NATIVE_BIND = __webpack_require__(386);

var bind = uncurryThis(uncurryThis.bind);

// optional / simple context binding
module.exports = function (fn, that) {
  aCallable(fn);
  return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {
    return fn.apply(that, arguments);
  };
};


/***/ }),

/***/ 386:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var fails = __webpack_require__(5907);

module.exports = !fails(function () {
  var test = (function () { /* empty */ }).bind();
  // eslint-disable-next-line no-prototype-builtins -- safe
  return typeof test != 'function' || test.hasOwnProperty('prototype');
});


/***/ }),

/***/ 132:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var NATIVE_BIND = __webpack_require__(386);

var call = Function.prototype.call;

module.exports = NATIVE_BIND ? call.bind(call) : function () {
  return call.apply(call, arguments);
};


/***/ }),

/***/ 9667:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var DESCRIPTORS = __webpack_require__(4155);
var hasOwn = __webpack_require__(757);

var FunctionPrototype = Function.prototype;
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;

var EXISTS = hasOwn(FunctionPrototype, 'name');
// additional protection from minified / mangled / dropped function names
var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';
var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));

module.exports = {
  EXISTS: EXISTS,
  PROPER: PROPER,
  CONFIGURABLE: CONFIGURABLE
};


/***/ }),

/***/ 9320:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var NATIVE_BIND = __webpack_require__(386);

var FunctionPrototype = Function.prototype;
var bind = FunctionPrototype.bind;
var call = FunctionPrototype.call;
var uncurryThis = NATIVE_BIND && bind.bind(call, call);

module.exports = NATIVE_BIND ? function (fn) {
  return fn && uncurryThis(fn);
} : function (fn) {
  return fn && function () {
    return call.apply(fn, arguments);
  };
};


/***/ }),

/***/ 7697:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var path = __webpack_require__(1559);
var global = __webpack_require__(9790);
var isCallable = __webpack_require__(6811);

var aFunction = function (variable) {
  return isCallable(variable) ? variable : undefined;
};

module.exports = function (namespace, method) {
  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])
    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];
};


/***/ }),

/***/ 7936:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var classof = __webpack_require__(3603);
var getMethod = __webpack_require__(9562);
var Iterators = __webpack_require__(2815);
var wellKnownSymbol = __webpack_require__(2618);

var ITERATOR = wellKnownSymbol('iterator');

module.exports = function (it) {
  if (it != undefined) return getMethod(it, ITERATOR)
    || getMethod(it, '@@iterator')
    || Iterators[classof(it)];
};


/***/ }),

/***/ 5748:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var call = __webpack_require__(132);
var aCallable = __webpack_require__(8709);
var anObject = __webpack_require__(5863);
var tryToString = __webpack_require__(5986);
var getIteratorMethod = __webpack_require__(7936);

var TypeError = global.TypeError;

module.exports = function (argument, usingIterator) {
  var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
  if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));
  throw TypeError(tryToString(argument) + ' is not iterable');
};


/***/ }),

/***/ 9562:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var aCallable = __webpack_require__(8709);

// `GetMethod` abstract operation
// https://tc39.es/ecma262/#sec-getmethod
module.exports = function (V, P) {
  var func = V[P];
  return func == null ? undefined : aCallable(func);
};


/***/ }),

/***/ 9790:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var check = function (it) {
  return it && it.Math == Math && it;
};

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
module.exports =
  // eslint-disable-next-line es/no-global-this -- safe
  check(typeof globalThis == 'object' && globalThis) ||
  check(typeof window == 'object' && window) ||
  // eslint-disable-next-line no-restricted-globals -- safe
  check(typeof self == 'object' && self) ||
  check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) ||
  // eslint-disable-next-line no-new-func -- fallback
  (function () { return this; })() || Function('return this')();


/***/ }),

/***/ 757:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var uncurryThis = __webpack_require__(9320);
var toObject = __webpack_require__(5041);

var hasOwnProperty = uncurryThis({}.hasOwnProperty);

// `HasOwnProperty` abstract operation
// https://tc39.es/ecma262/#sec-hasownproperty
module.exports = Object.hasOwn || function hasOwn(it, key) {
  return hasOwnProperty(toObject(it), key);
};


/***/ }),

/***/ 6064:
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ 637:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);

module.exports = function (a, b) {
  var console = global.console;
  if (console && console.error) {
    arguments.length == 1 ? console.error(a) : console.error(a, b);
  }
};


/***/ }),

/***/ 4933:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var getBuiltIn = __webpack_require__(7697);

module.exports = getBuiltIn('document', 'documentElement');


/***/ }),

/***/ 4071:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var DESCRIPTORS = __webpack_require__(4155);
var fails = __webpack_require__(5907);
var createElement = __webpack_require__(1884);

// Thanks to IE8 for its funny defineProperty
module.exports = !DESCRIPTORS && !fails(function () {
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
  return Object.defineProperty(createElement('div'), 'a', {
    get: function () { return 7; }
  }).a != 7;
});


/***/ }),

/***/ 3125:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var uncurryThis = __webpack_require__(9320);
var fails = __webpack_require__(5907);
var classof = __webpack_require__(8362);

var Object = global.Object;
var split = uncurryThis(''.split);

// fallback for non-array-like ES3 and non-enumerable old V8 strings
module.exports = fails(function () {
  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
  // eslint-disable-next-line no-prototype-builtins -- safe
  return !Object('z').propertyIsEnumerable(0);
}) ? function (it) {
  return classof(it) == 'String' ? split(it, '') : Object(it);
} : Object;


/***/ }),

/***/ 9808:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var uncurryThis = __webpack_require__(9320);
var isCallable = __webpack_require__(6811);
var store = __webpack_require__(7387);

var functionToString = uncurryThis(Function.toString);

// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
if (!isCallable(store.inspectSource)) {
  store.inspectSource = function (it) {
    return functionToString(it);
  };
}

module.exports = store.inspectSource;


/***/ }),

/***/ 3361:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(280);
var createNonEnumerableProperty = __webpack_require__(8171);

// `InstallErrorCause` abstract operation
// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause
module.exports = function (O, options) {
  if (isObject(options) && 'cause' in options) {
    createNonEnumerableProperty(O, 'cause', options.cause);
  }
};


/***/ }),

/***/ 9468:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var NATIVE_WEAK_MAP = __webpack_require__(222);
var global = __webpack_require__(9790);
var uncurryThis = __webpack_require__(9320);
var isObject = __webpack_require__(280);
var createNonEnumerableProperty = __webpack_require__(8171);
var hasOwn = __webpack_require__(757);
var shared = __webpack_require__(7387);
var sharedKey = __webpack_require__(1657);
var hiddenKeys = __webpack_require__(6064);

var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
var TypeError = global.TypeError;
var WeakMap = global.WeakMap;
var set, get, has;

var enforce = function (it) {
  return has(it) ? get(it) : set(it, {});
};

var getterFor = function (TYPE) {
  return function (it) {
    var state;
    if (!isObject(it) || (state = get(it)).type !== TYPE) {
      throw TypeError('Incompatible receiver, ' + TYPE + ' required');
    } return state;
  };
};

if (NATIVE_WEAK_MAP || shared.state) {
  var store = shared.state || (shared.state = new WeakMap());
  var wmget = uncurryThis(store.get);
  var wmhas = uncurryThis(store.has);
  var wmset = uncurryThis(store.set);
  set = function (it, metadata) {
    if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
    metadata.facade = it;
    wmset(store, it, metadata);
    return metadata;
  };
  get = function (it) {
    return wmget(store, it) || {};
  };
  has = function (it) {
    return wmhas(store, it);
  };
} else {
  var STATE = sharedKey('state');
  hiddenKeys[STATE] = true;
  set = function (it, metadata) {
    if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
    metadata.facade = it;
    createNonEnumerableProperty(it, STATE, metadata);
    return metadata;
  };
  get = function (it) {
    return hasOwn(it, STATE) ? it[STATE] : {};
  };
  has = function (it) {
    return hasOwn(it, STATE);
  };
}

module.exports = {
  set: set,
  get: get,
  has: has,
  enforce: enforce,
  getterFor: getterFor
};


/***/ }),

/***/ 8593:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var wellKnownSymbol = __webpack_require__(2618);
var Iterators = __webpack_require__(2815);

var ITERATOR = wellKnownSymbol('iterator');
var ArrayPrototype = Array.prototype;

// check on default Array iterator
module.exports = function (it) {
  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
};


/***/ }),

/***/ 9087:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var classof = __webpack_require__(8362);

// `IsArray` abstract operation
// https://tc39.es/ecma262/#sec-isarray
// eslint-disable-next-line es/no-array-isarray -- safe
module.exports = Array.isArray || function isArray(argument) {
  return classof(argument) == 'Array';
};


/***/ }),

/***/ 6811:
/***/ ((module) => {

// `IsCallable` abstract operation
// https://tc39.es/ecma262/#sec-iscallable
module.exports = function (argument) {
  return typeof argument == 'function';
};


/***/ }),

/***/ 6033:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var uncurryThis = __webpack_require__(9320);
var fails = __webpack_require__(5907);
var isCallable = __webpack_require__(6811);
var classof = __webpack_require__(3603);
var getBuiltIn = __webpack_require__(7697);
var inspectSource = __webpack_require__(9808);

var noop = function () { /* empty */ };
var empty = [];
var construct = getBuiltIn('Reflect', 'construct');
var constructorRegExp = /^\s*(?:class|function)\b/;
var exec = uncurryThis(constructorRegExp.exec);
var INCORRECT_TO_STRING = !constructorRegExp.exec(noop);

var isConstructorModern = function isConstructor(argument) {
  if (!isCallable(argument)) return false;
  try {
    construct(noop, empty, argument);
    return true;
  } catch (error) {
    return false;
  }
};

var isConstructorLegacy = function isConstructor(argument) {
  if (!isCallable(argument)) return false;
  switch (classof(argument)) {
    case 'AsyncFunction':
    case 'GeneratorFunction':
    case 'AsyncGeneratorFunction': return false;
  }
  try {
    // we can't check .prototype since constructors produced by .bind haven't it
    // `Function#toString` throws on some built-it function in some legacy engines
    // (for example, `DOMQuad` and similar in FF41-)
    return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));
  } catch (error) {
    return true;
  }
};

isConstructorLegacy.sham = true;

// `IsConstructor` abstract operation
// https://tc39.es/ecma262/#sec-isconstructor
module.exports = !construct || fails(function () {
  var called;
  return isConstructorModern(isConstructorModern.call)
    || !isConstructorModern(Object)
    || !isConstructorModern(function () { called = true; })
    || called;
}) ? isConstructorLegacy : isConstructorModern;


/***/ }),

/***/ 1434:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var fails = __webpack_require__(5907);
var isCallable = __webpack_require__(6811);

var replacement = /#|\.prototype\./;

var isForced = function (feature, detection) {
  var value = data[normalize(feature)];
  return value == POLYFILL ? true
    : value == NATIVE ? false
    : isCallable(detection) ? fails(detection)
    : !!detection;
};

var normalize = isForced.normalize = function (string) {
  return String(string).replace(replacement, '.').toLowerCase();
};

var data = isForced.data = {};
var NATIVE = isForced.NATIVE = 'N';
var POLYFILL = isForced.POLYFILL = 'P';

module.exports = isForced;


/***/ }),

/***/ 280:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isCallable = __webpack_require__(6811);

module.exports = function (it) {
  return typeof it == 'object' ? it !== null : isCallable(it);
};


/***/ }),

/***/ 5313:
/***/ ((module) => {

module.exports = true;


/***/ }),

/***/ 3591:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var isObject = __webpack_require__(280);
var classof = __webpack_require__(8362);
var wellKnownSymbol = __webpack_require__(2618);

var MATCH = wellKnownSymbol('match');

// `IsRegExp` abstract operation
// https://tc39.es/ecma262/#sec-isregexp
module.exports = function (it) {
  var isRegExp;
  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');
};


/***/ }),

/***/ 2648:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var getBuiltIn = __webpack_require__(7697);
var isCallable = __webpack_require__(6811);
var isPrototypeOf = __webpack_require__(1064);
var USE_SYMBOL_AS_UID = __webpack_require__(221);

var Object = global.Object;

module.exports = USE_SYMBOL_AS_UID ? function (it) {
  return typeof it == 'symbol';
} : function (it) {
  var $Symbol = getBuiltIn('Symbol');
  return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));
};


/***/ }),

/***/ 2357:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var bind = __webpack_require__(9037);
var call = __webpack_require__(132);
var anObject = __webpack_require__(5863);
var tryToString = __webpack_require__(5986);
var isArrayIteratorMethod = __webpack_require__(8593);
var lengthOfArrayLike = __webpack_require__(502);
var isPrototypeOf = __webpack_require__(1064);
var getIterator = __webpack_require__(5748);
var getIteratorMethod = __webpack_require__(7936);
var iteratorClose = __webpack_require__(9826);

var TypeError = global.TypeError;

var Result = function (stopped, result) {
  this.stopped = stopped;
  this.result = result;
};

var ResultPrototype = Result.prototype;

module.exports = function (iterable, unboundFunction, options) {
  var that = options && options.that;
  var AS_ENTRIES = !!(options && options.AS_ENTRIES);
  var IS_ITERATOR = !!(options && options.IS_ITERATOR);
  var INTERRUPTED = !!(options && options.INTERRUPTED);
  var fn = bind(unboundFunction, that);
  var iterator, iterFn, index, length, result, next, step;

  var stop = function (condition) {
    if (iterator) iteratorClose(iterator, 'normal', condition);
    return new Result(true, condition);
  };

  var callFn = function (value) {
    if (AS_ENTRIES) {
      anObject(value);
      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
    } return INTERRUPTED ? fn(value, stop) : fn(value);
  };

  if (IS_ITERATOR) {
    iterator = iterable;
  } else {
    iterFn = getIteratorMethod(iterable);
    if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');
    // optimisation for array iterators
    if (isArrayIteratorMethod(iterFn)) {
      for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {
        result = callFn(iterable[index]);
        if (result && isPrototypeOf(ResultPrototype, result)) return result;
      } return new Result(false);
    }
    iterator = getIterator(iterable, iterFn);
  }

  next = iterator.next;
  while (!(step = call(next, iterator)).done) {
    try {
      result = callFn(step.value);
    } catch (error) {
      iteratorClose(iterator, 'throw', error);
    }
    if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;
  } return new Result(false);
};


/***/ }),

/***/ 9826:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var call = __webpack_require__(132);
var anObject = __webpack_require__(5863);
var getMethod = __webpack_require__(9562);

module.exports = function (iterator, kind, value) {
  var innerResult, innerError;
  anObject(iterator);
  try {
    innerResult = getMethod(iterator, 'return');
    if (!innerResult) {
      if (kind === 'throw') throw value;
      return value;
    }
    innerResult = call(innerResult, iterator);
  } catch (error) {
    innerError = true;
    innerResult = error;
  }
  if (kind === 'throw') throw value;
  if (innerError) throw innerResult;
  anObject(innerResult);
  return value;
};


/***/ }),

/***/ 3826:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var fails = __webpack_require__(5907);
var isCallable = __webpack_require__(6811);
var create = __webpack_require__(9977);
var getPrototypeOf = __webpack_require__(2833);
var redefine = __webpack_require__(8090);
var wellKnownSymbol = __webpack_require__(2618);
var IS_PURE = __webpack_require__(5313);

var ITERATOR = wellKnownSymbol('iterator');
var BUGGY_SAFARI_ITERATORS = false;

// `%IteratorPrototype%` object
// https://tc39.es/ecma262/#sec-%iteratorprototype%-object
var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;

/* eslint-disable es/no-array-prototype-keys -- safe */
if ([].keys) {
  arrayIterator = [].keys();
  // Safari 8 has buggy iterators w/o `next`
  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;
  else {
    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
  }
}

var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {
  var test = {};
  // FF44- legacy iterators case
  return IteratorPrototype[ITERATOR].call(test) !== test;
});

if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};
else if (IS_PURE) IteratorPrototype = create(IteratorPrototype);

// `%IteratorPrototype%[@@iterator]()` method
// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
if (!isCallable(IteratorPrototype[ITERATOR])) {
  redefine(IteratorPrototype, ITERATOR, function () {
    return this;
  });
}

module.exports = {
  IteratorPrototype: IteratorPrototype,
  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
};


/***/ }),

/***/ 2815:
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ 502:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toLength = __webpack_require__(8491);

// `LengthOfArrayLike` abstract operation
// https://tc39.es/ecma262/#sec-lengthofarraylike
module.exports = function (obj) {
  return toLength(obj.length);
};


/***/ }),

/***/ 5168:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var bind = __webpack_require__(9037);
var getOwnPropertyDescriptor = (__webpack_require__(9379).f);
var macrotask = (__webpack_require__(2772).set);
var IS_IOS = __webpack_require__(4805);
var IS_IOS_PEBBLE = __webpack_require__(6486);
var IS_WEBOS_WEBKIT = __webpack_require__(5704);
var IS_NODE = __webpack_require__(8799);

var MutationObserver = global.MutationObserver || global.WebKitMutationObserver;
var document = global.document;
var process = global.process;
var Promise = global.Promise;
// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`
var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');
var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;

var flush, head, last, notify, toggle, node, promise, then;

// modern engines have queueMicrotask method
if (!queueMicrotask) {
  flush = function () {
    var parent, fn;
    if (IS_NODE && (parent = process.domain)) parent.exit();
    while (head) {
      fn = head.fn;
      head = head.next;
      try {
        fn();
      } catch (error) {
        if (head) notify();
        else last = undefined;
        throw error;
      }
    } last = undefined;
    if (parent) parent.enter();
  };

  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339
  // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898
  if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {
    toggle = true;
    node = document.createTextNode('');
    new MutationObserver(flush).observe(node, { characterData: true });
    notify = function () {
      node.data = toggle = !toggle;
    };
  // environments with maybe non-completely correct, but existent Promise
  } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {
    // Promise.resolve without an argument throws an error in LG WebOS 2
    promise = Promise.resolve(undefined);
    // workaround of WebKit ~ iOS Safari 10.1 bug
    promise.constructor = Promise;
    then = bind(promise.then, promise);
    notify = function () {
      then(flush);
    };
  // Node.js without promises
  } else if (IS_NODE) {
    notify = function () {
      process.nextTick(flush);
    };
  // for other environments - macrotask based on:
  // - setImmediate
  // - MessageChannel
  // - window.postMessag
  // - onreadystatechange
  // - setTimeout
  } else {
    // strange IE + webpack dev server bug - use .bind(global)
    macrotask = bind(macrotask, global);
    notify = function () {
      macrotask(flush);
    };
  }
}

module.exports = queueMicrotask || function (fn) {
  var task = { fn: fn, next: undefined };
  if (last) last.next = task;
  if (!head) {
    head = task;
    notify();
  } last = task;
};


/***/ }),

/***/ 517:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);

module.exports = global.Promise;


/***/ }),

/***/ 4027:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

/* eslint-disable es/no-symbol -- required for testing */
var V8_VERSION = __webpack_require__(4740);
var fails = __webpack_require__(5907);

// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
  var symbol = Symbol();
  // Chrome 38 Symbol has incorrect toString conversion
  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
  return !String(symbol) || !(Object(symbol) instanceof Symbol) ||
    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
    !Symbol.sham && V8_VERSION && V8_VERSION < 41;
});


/***/ }),

/***/ 5981:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var fails = __webpack_require__(5907);
var wellKnownSymbol = __webpack_require__(2618);
var IS_PURE = __webpack_require__(5313);

var ITERATOR = wellKnownSymbol('iterator');

module.exports = !fails(function () {
  // eslint-disable-next-line unicorn/relative-url-style -- required for testing
  var url = new URL('b?a=1&b=2&c=3', 'http://a');
  var searchParams = url.searchParams;
  var result = '';
  url.pathname = 'c%20d';
  searchParams.forEach(function (value, key) {
    searchParams['delete']('b');
    result += key + value;
  });
  return (IS_PURE && !url.toJSON)
    || !searchParams.sort
    || url.href !== 'http://a/c%20d?a=1&c=3'
    || searchParams.get('c') !== '3'
    || String(new URLSearchParams('?a=1')) !== 'a=1'
    || !searchParams[ITERATOR]
    // throws in Edge
    || new URL('https://a@b').username !== 'a'
    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'
    // not punycoded in Edge
    || new URL('http://тест').host !== 'xn--e1aybc'
    // not escaped in Chrome 62-
    || new URL('http://a#б').hash !== '#%D0%B1'
    // fails in Chrome 66-
    || result !== 'a1c3'
    // throws in Safari
    || new URL('http://x', undefined).host !== 'x';
});


/***/ }),

/***/ 222:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var isCallable = __webpack_require__(6811);
var inspectSource = __webpack_require__(9808);

var WeakMap = global.WeakMap;

module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));


/***/ }),

/***/ 318:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var aCallable = __webpack_require__(8709);

var PromiseCapability = function (C) {
  var resolve, reject;
  this.promise = new C(function ($$resolve, $$reject) {
    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
    resolve = $$resolve;
    reject = $$reject;
  });
  this.resolve = aCallable(resolve);
  this.reject = aCallable(reject);
};

// `NewPromiseCapability` abstract operation
// https://tc39.es/ecma262/#sec-newpromisecapability
module.exports.f = function (C) {
  return new PromiseCapability(C);
};


/***/ }),

/***/ 9306:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toString = __webpack_require__(3889);

module.exports = function (argument, $default) {
  return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);
};


/***/ }),

/***/ 9977:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

/* global ActiveXObject -- old IE, WSH */
var anObject = __webpack_require__(5863);
var definePropertiesModule = __webpack_require__(6168);
var enumBugKeys = __webpack_require__(538);
var hiddenKeys = __webpack_require__(6064);
var html = __webpack_require__(4933);
var documentCreateElement = __webpack_require__(1884);
var sharedKey = __webpack_require__(1657);

var GT = '>';
var LT = '<';
var PROTOTYPE = 'prototype';
var SCRIPT = 'script';
var IE_PROTO = sharedKey('IE_PROTO');

var EmptyConstructor = function () { /* empty */ };

var scriptTag = function (content) {
  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
};

// Create object with fake `null` prototype: use ActiveX Object with cleared prototype
var NullProtoObjectViaActiveX = function (activeXDocument) {
  activeXDocument.write(scriptTag(''));
  activeXDocument.close();
  var temp = activeXDocument.parentWindow.Object;
  activeXDocument = null; // avoid memory leak
  return temp;
};

// Create object with fake `null` prototype: use iframe Object with cleared prototype
var NullProtoObjectViaIFrame = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = documentCreateElement('iframe');
  var JS = 'java' + SCRIPT + ':';
  var iframeDocument;
  iframe.style.display = 'none';
  html.appendChild(iframe);
  // https://github.com/zloirock/core-js/issues/475
  iframe.src = String(JS);
  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(scriptTag('document.F=Object'));
  iframeDocument.close();
  return iframeDocument.F;
};

// Check for document.domain and active x support
// No need to use active x approach when document.domain is not set
// see https://github.com/es-shims/es5-shim/issues/150
// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
// avoid IE GC bug
var activeXDocument;
var NullProtoObject = function () {
  try {
    activeXDocument = new ActiveXObject('htmlfile');
  } catch (error) { /* ignore */ }
  NullProtoObject = typeof document != 'undefined'
    ? document.domain && activeXDocument
      ? NullProtoObjectViaActiveX(activeXDocument) // old IE
      : NullProtoObjectViaIFrame()
    : NullProtoObjectViaActiveX(activeXDocument); // WSH
  var length = enumBugKeys.length;
  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
  return NullProtoObject();
};

hiddenKeys[IE_PROTO] = true;

// `Object.create` method
// https://tc39.es/ecma262/#sec-object.create
module.exports = Object.create || function create(O, Properties) {
  var result;
  if (O !== null) {
    EmptyConstructor[PROTOTYPE] = anObject(O);
    result = new EmptyConstructor();
    EmptyConstructor[PROTOTYPE] = null;
    // add "__proto__" for Object.getPrototypeOf polyfill
    result[IE_PROTO] = O;
  } else result = NullProtoObject();
  return Properties === undefined ? result : definePropertiesModule.f(result, Properties);
};


/***/ }),

/***/ 6168:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var DESCRIPTORS = __webpack_require__(4155);
var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(7954);
var definePropertyModule = __webpack_require__(2067);
var anObject = __webpack_require__(5863);
var toIndexedObject = __webpack_require__(7728);
var objectKeys = __webpack_require__(8922);

// `Object.defineProperties` method
// https://tc39.es/ecma262/#sec-object.defineproperties
// eslint-disable-next-line es/no-object-defineproperties -- safe
exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var props = toIndexedObject(Properties);
  var keys = objectKeys(Properties);
  var length = keys.length;
  var index = 0;
  var key;
  while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);
  return O;
};


/***/ }),

/***/ 2067:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var DESCRIPTORS = __webpack_require__(4155);
var IE8_DOM_DEFINE = __webpack_require__(4071);
var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(7954);
var anObject = __webpack_require__(5863);
var toPropertyKey = __webpack_require__(3793);

var TypeError = global.TypeError;
// eslint-disable-next-line es/no-object-defineproperty -- safe
var $defineProperty = Object.defineProperty;
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var ENUMERABLE = 'enumerable';
var CONFIGURABLE = 'configurable';
var WRITABLE = 'writable';

// `Object.defineProperty` method
// https://tc39.es/ecma262/#sec-object.defineproperty
exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPropertyKey(P);
  anObject(Attributes);
  if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
    var current = $getOwnPropertyDescriptor(O, P);
    if (current && current[WRITABLE]) {
      O[P] = Attributes.value;
      Attributes = {
        configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],
        enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],
        writable: false
      };
    }
  } return $defineProperty(O, P, Attributes);
} : $defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPropertyKey(P);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return $defineProperty(O, P, Attributes);
  } catch (error) { /* empty */ }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};


/***/ }),

/***/ 9379:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var DESCRIPTORS = __webpack_require__(4155);
var call = __webpack_require__(132);
var propertyIsEnumerableModule = __webpack_require__(7530);
var createPropertyDescriptor = __webpack_require__(4221);
var toIndexedObject = __webpack_require__(7728);
var toPropertyKey = __webpack_require__(3793);
var hasOwn = __webpack_require__(757);
var IE8_DOM_DEFINE = __webpack_require__(4071);

// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;

// `Object.getOwnPropertyDescriptor` method
// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
  O = toIndexedObject(O);
  P = toPropertyKey(P);
  if (IE8_DOM_DEFINE) try {
    return $getOwnPropertyDescriptor(O, P);
  } catch (error) { /* empty */ }
  if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);
};


/***/ }),

/***/ 2020:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var internalObjectKeys = __webpack_require__(1482);
var enumBugKeys = __webpack_require__(538);

var hiddenKeys = enumBugKeys.concat('length', 'prototype');

// `Object.getOwnPropertyNames` method
// https://tc39.es/ecma262/#sec-object.getownpropertynames
// eslint-disable-next-line es/no-object-getownpropertynames -- safe
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
  return internalObjectKeys(O, hiddenKeys);
};


/***/ }),

/***/ 3684:
/***/ ((__unused_webpack_module, exports) => {

// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
exports.f = Object.getOwnPropertySymbols;


/***/ }),

/***/ 2833:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var hasOwn = __webpack_require__(757);
var isCallable = __webpack_require__(6811);
var toObject = __webpack_require__(5041);
var sharedKey = __webpack_require__(1657);
var CORRECT_PROTOTYPE_GETTER = __webpack_require__(2346);

var IE_PROTO = sharedKey('IE_PROTO');
var Object = global.Object;
var ObjectPrototype = Object.prototype;

// `Object.getPrototypeOf` method
// https://tc39.es/ecma262/#sec-object.getprototypeof
module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
  var object = toObject(O);
  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
  var constructor = object.constructor;
  if (isCallable(constructor) && object instanceof constructor) {
    return constructor.prototype;
  } return object instanceof Object ? ObjectPrototype : null;
};


/***/ }),

/***/ 1064:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var uncurryThis = __webpack_require__(9320);

module.exports = uncurryThis({}.isPrototypeOf);


/***/ }),

/***/ 1482:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var uncurryThis = __webpack_require__(9320);
var hasOwn = __webpack_require__(757);
var toIndexedObject = __webpack_require__(7728);
var indexOf = (__webpack_require__(1235).indexOf);
var hiddenKeys = __webpack_require__(6064);

var push = uncurryThis([].push);

module.exports = function (object, names) {
  var O = toIndexedObject(object);
  var i = 0;
  var result = [];
  var key;
  for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);
  // Don't enum bug & hidden keys
  while (names.length > i) if (hasOwn(O, key = names[i++])) {
    ~indexOf(result, key) || push(result, key);
  }
  return result;
};


/***/ }),

/***/ 8922:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var internalObjectKeys = __webpack_require__(1482);
var enumBugKeys = __webpack_require__(538);

// `Object.keys` method
// https://tc39.es/ecma262/#sec-object.keys
// eslint-disable-next-line es/no-object-keys -- safe
module.exports = Object.keys || function keys(O) {
  return internalObjectKeys(O, enumBugKeys);
};


/***/ }),

/***/ 7530:
/***/ ((__unused_webpack_module, exports) => {

"use strict";

var $propertyIsEnumerable = {}.propertyIsEnumerable;
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;

// Nashorn ~ JDK8 bug
var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);

// `Object.prototype.propertyIsEnumerable` method implementation
// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
  var descriptor = getOwnPropertyDescriptor(this, V);
  return !!descriptor && descriptor.enumerable;
} : $propertyIsEnumerable;


/***/ }),

/***/ 3200:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

/* eslint-disable no-proto -- safe */
var uncurryThis = __webpack_require__(9320);
var anObject = __webpack_require__(5863);
var aPossiblePrototype = __webpack_require__(3908);

// `Object.setPrototypeOf` method
// https://tc39.es/ecma262/#sec-object.setprototypeof
// Works with __proto__ only. Old v8 can't work with null proto objects.
// eslint-disable-next-line es/no-object-setprototypeof -- safe
module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
  var CORRECT_SETTER = false;
  var test = {};
  var setter;
  try {
    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
    setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);
    setter(test, []);
    CORRECT_SETTER = test instanceof Array;
  } catch (error) { /* empty */ }
  return function setPrototypeOf(O, proto) {
    anObject(O);
    aPossiblePrototype(proto);
    if (CORRECT_SETTER) setter(O, proto);
    else O.__proto__ = proto;
    return O;
  };
}() : undefined);


/***/ }),

/***/ 873:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var TO_STRING_TAG_SUPPORT = __webpack_require__(5864);
var classof = __webpack_require__(3603);

// `Object.prototype.toString` method implementation
// https://tc39.es/ecma262/#sec-object.prototype.tostring
module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {
  return '[object ' + classof(this) + ']';
};


/***/ }),

/***/ 5692:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var call = __webpack_require__(132);
var isCallable = __webpack_require__(6811);
var isObject = __webpack_require__(280);

var TypeError = global.TypeError;

// `OrdinaryToPrimitive` abstract operation
// https://tc39.es/ecma262/#sec-ordinarytoprimitive
module.exports = function (input, pref) {
  var fn, val;
  if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
  if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;
  if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
  throw TypeError("Can't convert object to primitive value");
};


/***/ }),

/***/ 6914:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var getBuiltIn = __webpack_require__(7697);
var uncurryThis = __webpack_require__(9320);
var getOwnPropertyNamesModule = __webpack_require__(2020);
var getOwnPropertySymbolsModule = __webpack_require__(3684);
var anObject = __webpack_require__(5863);

var concat = uncurryThis([].concat);

// all object keys, includes non-enumerable and symbols
module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
  var keys = getOwnPropertyNamesModule.f(anObject(it));
  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
  return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
};


/***/ }),

/***/ 1559:
/***/ ((module) => {

module.exports = {};


/***/ }),

/***/ 6171:
/***/ ((module) => {

module.exports = function (exec) {
  try {
    return { error: false, value: exec() };
  } catch (error) {
    return { error: true, value: error };
  }
};


/***/ }),

/***/ 9227:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var anObject = __webpack_require__(5863);
var isObject = __webpack_require__(280);
var newPromiseCapability = __webpack_require__(318);

module.exports = function (C, x) {
  anObject(C);
  if (isObject(x) && x.constructor === C) return x;
  var promiseCapability = newPromiseCapability.f(C);
  var resolve = promiseCapability.resolve;
  resolve(x);
  return promiseCapability.promise;
};


/***/ }),

/***/ 3608:
/***/ ((module) => {

var Queue = function () {
  this.head = null;
  this.tail = null;
};

Queue.prototype = {
  add: function (item) {
    var entry = { item: item, next: null };
    if (this.head) this.tail.next = entry;
    else this.head = entry;
    this.tail = entry;
  },
  get: function () {
    var entry = this.head;
    if (entry) {
      this.head = entry.next;
      if (this.tail === entry) this.tail = null;
      return entry.item;
    }
  }
};

module.exports = Queue;


/***/ }),

/***/ 1924:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var redefine = __webpack_require__(8090);

module.exports = function (target, src, options) {
  for (var key in src) {
    if (options && options.unsafe && target[key]) target[key] = src[key];
    else redefine(target, key, src[key], options);
  } return target;
};


/***/ }),

/***/ 8090:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var createNonEnumerableProperty = __webpack_require__(8171);

module.exports = function (target, key, value, options) {
  if (options && options.enumerable) target[key] = value;
  else createNonEnumerableProperty(target, key, value);
};


/***/ }),

/***/ 1313:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var call = __webpack_require__(132);
var anObject = __webpack_require__(5863);
var isCallable = __webpack_require__(6811);
var classof = __webpack_require__(8362);
var regexpExec = __webpack_require__(7958);

var TypeError = global.TypeError;

// `RegExpExec` abstract operation
// https://tc39.es/ecma262/#sec-regexpexec
module.exports = function (R, S) {
  var exec = R.exec;
  if (isCallable(exec)) {
    var result = call(exec, R, S);
    if (result !== null) anObject(result);
    return result;
  }
  if (classof(R) === 'RegExp') return call(regexpExec, R, S);
  throw TypeError('RegExp#exec called on incompatible receiver');
};


/***/ }),

/***/ 7958:
/***/ ((module) => {

module.exports = /./.exec;


/***/ }),

/***/ 5712:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var anObject = __webpack_require__(5863);

// `RegExp.prototype.flags` getter implementation
// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
module.exports = function () {
  var that = anObject(this);
  var result = '';
  if (that.global) result += 'g';
  if (that.ignoreCase) result += 'i';
  if (that.multiline) result += 'm';
  if (that.dotAll) result += 's';
  if (that.unicode) result += 'u';
  if (that.sticky) result += 'y';
  return result;
};


/***/ }),

/***/ 2190:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);

var TypeError = global.TypeError;

// `RequireObjectCoercible` abstract operation
// https://tc39.es/ecma262/#sec-requireobjectcoercible
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on " + it);
  return it;
};


/***/ }),

/***/ 7506:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);

// eslint-disable-next-line es/no-object-defineproperty -- safe
var defineProperty = Object.defineProperty;

module.exports = function (key, value) {
  try {
    defineProperty(global, key, { value: value, configurable: true, writable: true });
  } catch (error) {
    global[key] = value;
  } return value;
};


/***/ }),

/***/ 4974:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var getBuiltIn = __webpack_require__(7697);
var definePropertyModule = __webpack_require__(2067);
var wellKnownSymbol = __webpack_require__(2618);
var DESCRIPTORS = __webpack_require__(4155);

var SPECIES = wellKnownSymbol('species');

module.exports = function (CONSTRUCTOR_NAME) {
  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);
  var defineProperty = definePropertyModule.f;

  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {
    defineProperty(Constructor, SPECIES, {
      configurable: true,
      get: function () { return this; }
    });
  }
};


/***/ }),

/***/ 6973:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var TO_STRING_TAG_SUPPORT = __webpack_require__(5864);
var defineProperty = (__webpack_require__(2067).f);
var createNonEnumerableProperty = __webpack_require__(8171);
var hasOwn = __webpack_require__(757);
var toString = __webpack_require__(873);
var wellKnownSymbol = __webpack_require__(2618);

var TO_STRING_TAG = wellKnownSymbol('toStringTag');

module.exports = function (it, TAG, STATIC, SET_METHOD) {
  if (it) {
    var target = STATIC ? it : it.prototype;
    if (!hasOwn(target, TO_STRING_TAG)) {
      defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });
    }
    if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {
      createNonEnumerableProperty(target, 'toString', toString);
    }
  }
};


/***/ }),

/***/ 1657:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var shared = __webpack_require__(2898);
var uid = __webpack_require__(720);

var keys = shared('keys');

module.exports = function (key) {
  return keys[key] || (keys[key] = uid(key));
};


/***/ }),

/***/ 7387:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var setGlobal = __webpack_require__(7506);

var SHARED = '__core-js_shared__';
var store = global[SHARED] || setGlobal(SHARED, {});

module.exports = store;


/***/ }),

/***/ 2898:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var IS_PURE = __webpack_require__(5313);
var store = __webpack_require__(7387);

(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: '3.21.0',
  mode: IS_PURE ? 'pure' : 'global',
  copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',
  license: 'https://github.com/zloirock/core-js/blob/v3.21.0/LICENSE',
  source: 'https://github.com/zloirock/core-js'
});


/***/ }),

/***/ 1186:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var anObject = __webpack_require__(5863);
var aConstructor = __webpack_require__(9904);
var wellKnownSymbol = __webpack_require__(2618);

var SPECIES = wellKnownSymbol('species');

// `SpeciesConstructor` abstract operation
// https://tc39.es/ecma262/#sec-speciesconstructor
module.exports = function (O, defaultConstructor) {
  var C = anObject(O).constructor;
  var S;
  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);
};


/***/ }),

/***/ 5422:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var uncurryThis = __webpack_require__(9320);
var toIntegerOrInfinity = __webpack_require__(1422);
var toString = __webpack_require__(3889);
var requireObjectCoercible = __webpack_require__(2190);

var charAt = uncurryThis(''.charAt);
var charCodeAt = uncurryThis(''.charCodeAt);
var stringSlice = uncurryThis(''.slice);

var createMethod = function (CONVERT_TO_STRING) {
  return function ($this, pos) {
    var S = toString(requireObjectCoercible($this));
    var position = toIntegerOrInfinity(pos);
    var size = S.length;
    var first, second;
    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
    first = charCodeAt(S, position);
    return first < 0xD800 || first > 0xDBFF || position + 1 === size
      || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF
        ? CONVERT_TO_STRING
          ? charAt(S, position)
          : first
        : CONVERT_TO_STRING
          ? stringSlice(S, position, position + 2)
          : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
  };
};

module.exports = {
  // `String.prototype.codePointAt` method
  // https://tc39.es/ecma262/#sec-string.prototype.codepointat
  codeAt: createMethod(false),
  // `String.prototype.at` method
  // https://github.com/mathiasbynens/String.prototype.at
  charAt: createMethod(true)
};


/***/ }),

/***/ 377:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var PROPER_FUNCTION_NAME = (__webpack_require__(9667).PROPER);
var fails = __webpack_require__(5907);
var whitespaces = __webpack_require__(624);

var non = '\u200B\u0085\u180E';

// check that a method works with the correct list
// of whitespaces and has a correct name
module.exports = function (METHOD_NAME) {
  return fails(function () {
    return !!whitespaces[METHOD_NAME]()
      || non[METHOD_NAME]() !== non
      || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);
  });
};


/***/ }),

/***/ 7614:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var uncurryThis = __webpack_require__(9320);
var requireObjectCoercible = __webpack_require__(2190);
var toString = __webpack_require__(3889);
var whitespaces = __webpack_require__(624);

var replace = uncurryThis(''.replace);
var whitespace = '[' + whitespaces + ']';
var ltrim = RegExp('^' + whitespace + whitespace + '*');
var rtrim = RegExp(whitespace + whitespace + '*$');

// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
var createMethod = function (TYPE) {
  return function ($this) {
    var string = toString(requireObjectCoercible($this));
    if (TYPE & 1) string = replace(string, ltrim, '');
    if (TYPE & 2) string = replace(string, rtrim, '');
    return string;
  };
};

module.exports = {
  // `String.prototype.{ trimLeft, trimStart }` methods
  // https://tc39.es/ecma262/#sec-string.prototype.trimstart
  start: createMethod(1),
  // `String.prototype.{ trimRight, trimEnd }` methods
  // https://tc39.es/ecma262/#sec-string.prototype.trimend
  end: createMethod(2),
  // `String.prototype.trim` method
  // https://tc39.es/ecma262/#sec-string.prototype.trim
  trim: createMethod(3)
};


/***/ }),

/***/ 2772:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var apply = __webpack_require__(1541);
var bind = __webpack_require__(9037);
var isCallable = __webpack_require__(6811);
var hasOwn = __webpack_require__(757);
var fails = __webpack_require__(5907);
var html = __webpack_require__(4933);
var arraySlice = __webpack_require__(106);
var createElement = __webpack_require__(1884);
var validateArgumentsLength = __webpack_require__(4936);
var IS_IOS = __webpack_require__(4805);
var IS_NODE = __webpack_require__(8799);

var set = global.setImmediate;
var clear = global.clearImmediate;
var process = global.process;
var Dispatch = global.Dispatch;
var Function = global.Function;
var MessageChannel = global.MessageChannel;
var String = global.String;
var counter = 0;
var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
var location, defer, channel, port;

try {
  // Deno throws a ReferenceError on `location` access without `--location` flag
  location = global.location;
} catch (error) { /* empty */ }

var run = function (id) {
  if (hasOwn(queue, id)) {
    var fn = queue[id];
    delete queue[id];
    fn();
  }
};

var runner = function (id) {
  return function () {
    run(id);
  };
};

var listener = function (event) {
  run(event.data);
};

var post = function (id) {
  // old engines have not location.origin
  global.postMessage(String(id), location.protocol + '//' + location.host);
};

// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
if (!set || !clear) {
  set = function setImmediate(handler) {
    validateArgumentsLength(arguments.length, 1);
    var fn = isCallable(handler) ? handler : Function(handler);
    var args = arraySlice(arguments, 1);
    queue[++counter] = function () {
      apply(fn, undefined, args);
    };
    defer(counter);
    return counter;
  };
  clear = function clearImmediate(id) {
    delete queue[id];
  };
  // Node.js 0.8-
  if (IS_NODE) {
    defer = function (id) {
      process.nextTick(runner(id));
    };
  // Sphere (JS game engine) Dispatch API
  } else if (Dispatch && Dispatch.now) {
    defer = function (id) {
      Dispatch.now(runner(id));
    };
  // Browsers with MessageChannel, includes WebWorkers
  // except iOS - https://github.com/zloirock/core-js/issues/624
  } else if (MessageChannel && !IS_IOS) {
    channel = new MessageChannel();
    port = channel.port2;
    channel.port1.onmessage = listener;
    defer = bind(port.postMessage, port);
  // Browsers with postMessage, skip WebWorkers
  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
  } else if (
    global.addEventListener &&
    isCallable(global.postMessage) &&
    !global.importScripts &&
    location && location.protocol !== 'file:' &&
    !fails(post)
  ) {
    defer = post;
    global.addEventListener('message', listener, false);
  // IE8-
  } else if (ONREADYSTATECHANGE in createElement('script')) {
    defer = function (id) {
      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {
        html.removeChild(this);
        run(id);
      };
    };
  // Rest old browsers
  } else {
    defer = function (id) {
      setTimeout(runner(id), 0);
    };
  }
}

module.exports = {
  set: set,
  clear: clear
};


/***/ }),

/***/ 5035:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toIntegerOrInfinity = __webpack_require__(1422);

var max = Math.max;
var min = Math.min;

// Helper for a popular repeating case of the spec:
// Let integer be ? ToInteger(index).
// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
module.exports = function (index, length) {
  var integer = toIntegerOrInfinity(index);
  return integer < 0 ? max(integer + length, 0) : min(integer, length);
};


/***/ }),

/***/ 7728:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// toObject with fallback for non-array-like ES3 strings
var IndexedObject = __webpack_require__(3125);
var requireObjectCoercible = __webpack_require__(2190);

module.exports = function (it) {
  return IndexedObject(requireObjectCoercible(it));
};


/***/ }),

/***/ 1422:
/***/ ((module) => {

var ceil = Math.ceil;
var floor = Math.floor;

// `ToIntegerOrInfinity` abstract operation
// https://tc39.es/ecma262/#sec-tointegerorinfinity
module.exports = function (argument) {
  var number = +argument;
  // eslint-disable-next-line no-self-compare -- safe
  return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);
};


/***/ }),

/***/ 8491:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toIntegerOrInfinity = __webpack_require__(1422);

var min = Math.min;

// `ToLength` abstract operation
// https://tc39.es/ecma262/#sec-tolength
module.exports = function (argument) {
  return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
};


/***/ }),

/***/ 5041:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var requireObjectCoercible = __webpack_require__(2190);

var Object = global.Object;

// `ToObject` abstract operation
// https://tc39.es/ecma262/#sec-toobject
module.exports = function (argument) {
  return Object(requireObjectCoercible(argument));
};


/***/ }),

/***/ 9743:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var call = __webpack_require__(132);
var isObject = __webpack_require__(280);
var isSymbol = __webpack_require__(2648);
var getMethod = __webpack_require__(9562);
var ordinaryToPrimitive = __webpack_require__(5692);
var wellKnownSymbol = __webpack_require__(2618);

var TypeError = global.TypeError;
var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');

// `ToPrimitive` abstract operation
// https://tc39.es/ecma262/#sec-toprimitive
module.exports = function (input, pref) {
  if (!isObject(input) || isSymbol(input)) return input;
  var exoticToPrim = getMethod(input, TO_PRIMITIVE);
  var result;
  if (exoticToPrim) {
    if (pref === undefined) pref = 'default';
    result = call(exoticToPrim, input, pref);
    if (!isObject(result) || isSymbol(result)) return result;
    throw TypeError("Can't convert object to primitive value");
  }
  if (pref === undefined) pref = 'number';
  return ordinaryToPrimitive(input, pref);
};


/***/ }),

/***/ 3793:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var toPrimitive = __webpack_require__(9743);
var isSymbol = __webpack_require__(2648);

// `ToPropertyKey` abstract operation
// https://tc39.es/ecma262/#sec-topropertykey
module.exports = function (argument) {
  var key = toPrimitive(argument, 'string');
  return isSymbol(key) ? key : key + '';
};


/***/ }),

/***/ 5864:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var wellKnownSymbol = __webpack_require__(2618);

var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var test = {};

test[TO_STRING_TAG] = 'z';

module.exports = String(test) === '[object z]';


/***/ }),

/***/ 3889:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var classof = __webpack_require__(3603);

var String = global.String;

module.exports = function (argument) {
  if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');
  return String(argument);
};


/***/ }),

/***/ 5986:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);

var String = global.String;

module.exports = function (argument) {
  try {
    return String(argument);
  } catch (error) {
    return 'Object';
  }
};


/***/ }),

/***/ 720:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var uncurryThis = __webpack_require__(9320);

var id = 0;
var postfix = Math.random();
var toString = uncurryThis(1.0.toString);

module.exports = function (key) {
  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);
};


/***/ }),

/***/ 221:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

/* eslint-disable es/no-symbol -- required for testing */
var NATIVE_SYMBOL = __webpack_require__(4027);

module.exports = NATIVE_SYMBOL
  && !Symbol.sham
  && typeof Symbol.iterator == 'symbol';


/***/ }),

/***/ 7954:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var DESCRIPTORS = __webpack_require__(4155);
var fails = __webpack_require__(5907);

// V8 ~ Chrome 36-
// https://bugs.chromium.org/p/v8/issues/detail?id=3334
module.exports = DESCRIPTORS && fails(function () {
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
  return Object.defineProperty(function () { /* empty */ }, 'prototype', {
    value: 42,
    writable: false
  }).prototype != 42;
});


/***/ }),

/***/ 4936:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);

var TypeError = global.TypeError;

module.exports = function (passed, required) {
  if (passed < required) throw TypeError('Not enough arguments');
  return passed;
};


/***/ }),

/***/ 2618:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var global = __webpack_require__(9790);
var shared = __webpack_require__(2898);
var hasOwn = __webpack_require__(757);
var uid = __webpack_require__(720);
var NATIVE_SYMBOL = __webpack_require__(4027);
var USE_SYMBOL_AS_UID = __webpack_require__(221);

var WellKnownSymbolsStore = shared('wks');
var Symbol = global.Symbol;
var symbolFor = Symbol && Symbol['for'];
var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;

module.exports = function (name) {
  if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {
    var description = 'Symbol.' + name;
    if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {
      WellKnownSymbolsStore[name] = Symbol[name];
    } else if (USE_SYMBOL_AS_UID && symbolFor) {
      WellKnownSymbolsStore[name] = symbolFor(description);
    } else {
      WellKnownSymbolsStore[name] = createWellKnownSymbol(description);
    }
  } return WellKnownSymbolsStore[name];
};


/***/ }),

/***/ 624:
/***/ ((module) => {

// a string of all valid unicode whitespaces
module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' +
  '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';


/***/ }),

/***/ 9889:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $ = __webpack_require__(9523);
var global = __webpack_require__(9790);
var isPrototypeOf = __webpack_require__(1064);
var getPrototypeOf = __webpack_require__(2833);
var setPrototypeOf = __webpack_require__(3200);
var copyConstructorProperties = __webpack_require__(9114);
var create = __webpack_require__(9977);
var createNonEnumerableProperty = __webpack_require__(8171);
var createPropertyDescriptor = __webpack_require__(4221);
var clearErrorStack = __webpack_require__(1401);
var installErrorCause = __webpack_require__(3361);
var iterate = __webpack_require__(2357);
var normalizeStringArgument = __webpack_require__(9306);
var wellKnownSymbol = __webpack_require__(2618);
var ERROR_STACK_INSTALLABLE = __webpack_require__(6935);

var TO_STRING_TAG = wellKnownSymbol('toStringTag');
var Error = global.Error;
var push = [].push;

var $AggregateError = function AggregateError(errors, message /* , options */) {
  var options = arguments.length > 2 ? arguments[2] : undefined;
  var isInstance = isPrototypeOf(AggregateErrorPrototype, this);
  var that;
  if (setPrototypeOf) {
    that = setPrototypeOf(new Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);
  } else {
    that = isInstance ? this : create(AggregateErrorPrototype);
    createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');
  }
  if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));
  if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));
  installErrorCause(that, options);
  var errorsArray = [];
  iterate(errors, push, { that: errorsArray });
  createNonEnumerableProperty(that, 'errors', errorsArray);
  return that;
};

if (setPrototypeOf) setPrototypeOf($AggregateError, Error);
else copyConstructorProperties($AggregateError, Error, { name: true });

var AggregateErrorPrototype = $AggregateError.prototype = create(Error.prototype, {
  constructor: createPropertyDescriptor(1, $AggregateError),
  message: createPropertyDescriptor(1, ''),
  name: createPropertyDescriptor(1, 'AggregateError')
});

// `AggregateError` constructor
// https://tc39.es/ecma262/#sec-aggregate-error-constructor
$({ global: true }, {
  AggregateError: $AggregateError
});


/***/ }),

/***/ 3618:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $ = __webpack_require__(9523);
var flattenIntoArray = __webpack_require__(493);
var aCallable = __webpack_require__(8709);
var toObject = __webpack_require__(5041);
var lengthOfArrayLike = __webpack_require__(502);
var arraySpeciesCreate = __webpack_require__(432);

// `Array.prototype.flatMap` method
// https://tc39.es/ecma262/#sec-array.prototype.flatmap
$({ target: 'Array', proto: true }, {
  flatMap: function flatMap(callbackfn /* , thisArg */) {
    var O = toObject(this);
    var sourceLen = lengthOfArrayLike(O);
    var A;
    aCallable(callbackfn);
    A = arraySpeciesCreate(O, 0);
    A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
    return A;
  }
});


/***/ }),

/***/ 4428:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var toIndexedObject = __webpack_require__(7728);
var addToUnscopables = __webpack_require__(5254);
var Iterators = __webpack_require__(2815);
var InternalStateModule = __webpack_require__(9468);
var defineProperty = (__webpack_require__(2067).f);
var defineIterator = __webpack_require__(2313);
var IS_PURE = __webpack_require__(5313);
var DESCRIPTORS = __webpack_require__(4155);

var ARRAY_ITERATOR = 'Array Iterator';
var setInternalState = InternalStateModule.set;
var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);

// `Array.prototype.entries` method
// https://tc39.es/ecma262/#sec-array.prototype.entries
// `Array.prototype.keys` method
// https://tc39.es/ecma262/#sec-array.prototype.keys
// `Array.prototype.values` method
// https://tc39.es/ecma262/#sec-array.prototype.values
// `Array.prototype[@@iterator]` method
// https://tc39.es/ecma262/#sec-array.prototype-@@iterator
// `CreateArrayIterator` internal method
// https://tc39.es/ecma262/#sec-createarrayiterator
module.exports = defineIterator(Array, 'Array', function (iterated, kind) {
  setInternalState(this, {
    type: ARRAY_ITERATOR,
    target: toIndexedObject(iterated), // target
    index: 0,                          // next index
    kind: kind                         // kind
  });
// `%ArrayIteratorPrototype%.next` method
// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next
}, function () {
  var state = getInternalState(this);
  var target = state.target;
  var kind = state.kind;
  var index = state.index++;
  if (!target || index >= target.length) {
    state.target = undefined;
    return { value: undefined, done: true };
  }
  if (kind == 'keys') return { value: index, done: false };
  if (kind == 'values') return { value: target[index], done: false };
  return { value: [index, target[index]], done: false };
}, 'values');

// argumentsList[@@iterator] is %ArrayProto_values%
// https://tc39.es/ecma262/#sec-createunmappedargumentsobject
// https://tc39.es/ecma262/#sec-createmappedargumentsobject
var values = Iterators.Arguments = Iterators.Array;

// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');

// V8 ~ Chrome 45- bug
if (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {
  defineProperty(values, 'name', { value: 'values' });
} catch (error) { /* empty */ }


/***/ }),

/***/ 5460:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $ = __webpack_require__(9523);
var $reduce = (__webpack_require__(2421).left);
var arrayMethodIsStrict = __webpack_require__(8127);
var CHROME_VERSION = __webpack_require__(4740);
var IS_NODE = __webpack_require__(8799);

var STRICT_METHOD = arrayMethodIsStrict('reduce');
// Chrome 80-82 has a critical bug
// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982
var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;

// `Array.prototype.reduce` method
// https://tc39.es/ecma262/#sec-array.prototype.reduce
$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {
  reduce: function reduce(callbackfn /* , initialValue */) {
    var length = arguments.length;
    return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);
  }
});


/***/ }),

/***/ 1780:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// this method was added to unscopables after implementation
// in popular engines, so it's moved to a separate module
var addToUnscopables = __webpack_require__(5254);

// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
addToUnscopables('flatMap');


/***/ }),

/***/ 6830:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

var $ = __webpack_require__(9523);
var iterate = __webpack_require__(2357);
var createProperty = __webpack_require__(3699);

// `Object.fromEntries` method
// https://github.com/tc39/proposal-object-from-entries
$({ target: 'Object', stat: true }, {
  fromEntries: function fromEntries(iterable) {
    var obj = {};
    iterate(iterable, function (k, v) {
      createProperty(obj, k, v);
    }, { AS_ENTRIES: true });
    return obj;
  }
});


/***/ }),

/***/ 9365:
/***/ (() => {

// empty


/***/ }),

/***/ 1305:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $ = __webpack_require__(9523);
var call = __webpack_require__(132);
var aCallable = __webpack_require__(8709);
var newPromiseCapabilityModule = __webpack_require__(318);
var perform = __webpack_require__(6171);
var iterate = __webpack_require__(2357);

// `Promise.allSettled` method
// https://tc39.es/ecma262/#sec-promise.allsettled
$({ target: 'Promise', stat: true }, {
  allSettled: function allSettled(iterable) {
    var C = this;
    var capability = newPromiseCapabilityModule.f(C);
    var resolve = capability.resolve;
    var reject = capability.reject;
    var result = perform(function () {
      var promiseResolve = aCallable(C.resolve);
      var values = [];
      var counter = 0;
      var remaining = 1;
      iterate(iterable, function (promise) {
        var index = counter++;
        var alreadyCalled = false;
        remaining++;
        call(promiseResolve, C, promise).then(function (value) {
          if (alreadyCalled) return;
          alreadyCalled = true;
          values[index] = { status: 'fulfilled', value: value };
          --remaining || resolve(values);
        }, function (error) {
          if (alreadyCalled) return;
          alreadyCalled = true;
          values[index] = { status: 'rejected', reason: error };
          --remaining || resolve(values);
        });
      });
      --remaining || resolve(values);
    });
    if (result.error) reject(result.value);
    return capability.promise;
  }
});


/***/ }),

/***/ 2229:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $ = __webpack_require__(9523);
var aCallable = __webpack_require__(8709);
var getBuiltIn = __webpack_require__(7697);
var call = __webpack_require__(132);
var newPromiseCapabilityModule = __webpack_require__(318);
var perform = __webpack_require__(6171);
var iterate = __webpack_require__(2357);

var PROMISE_ANY_ERROR = 'No one promise resolved';

// `Promise.any` method
// https://tc39.es/ecma262/#sec-promise.any
$({ target: 'Promise', stat: true }, {
  any: function any(iterable) {
    var C = this;
    var AggregateError = getBuiltIn('AggregateError');
    var capability = newPromiseCapabilityModule.f(C);
    var resolve = capability.resolve;
    var reject = capability.reject;
    var result = perform(function () {
      var promiseResolve = aCallable(C.resolve);
      var errors = [];
      var counter = 0;
      var remaining = 1;
      var alreadyResolved = false;
      iterate(iterable, function (promise) {
        var index = counter++;
        var alreadyRejected = false;
        remaining++;
        call(promiseResolve, C, promise).then(function (value) {
          if (alreadyRejected || alreadyResolved) return;
          alreadyResolved = true;
          resolve(value);
        }, function (error) {
          if (alreadyRejected || alreadyResolved) return;
          alreadyRejected = true;
          errors[index] = error;
          --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));
        });
      });
      --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));
    });
    if (result.error) reject(result.value);
    return capability.promise;
  }
});


/***/ }),

/***/ 3000:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $ = __webpack_require__(9523);
var IS_PURE = __webpack_require__(5313);
var NativePromise = __webpack_require__(517);
var fails = __webpack_require__(5907);
var getBuiltIn = __webpack_require__(7697);
var isCallable = __webpack_require__(6811);
var speciesConstructor = __webpack_require__(1186);
var promiseResolve = __webpack_require__(9227);
var redefine = __webpack_require__(8090);

// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829
var NON_GENERIC = !!NativePromise && fails(function () {
  // eslint-disable-next-line unicorn/no-thenable -- required for testing
  NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });
});

// `Promise.prototype.finally` method
// https://tc39.es/ecma262/#sec-promise.prototype.finally
$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
  'finally': function (onFinally) {
    var C = speciesConstructor(this, getBuiltIn('Promise'));
    var isFunction = isCallable(onFinally);
    return this.then(
      isFunction ? function (x) {
        return promiseResolve(C, onFinally()).then(function () { return x; });
      } : onFinally,
      isFunction ? function (e) {
        return promiseResolve(C, onFinally()).then(function () { throw e; });
      } : onFinally
    );
  }
});

// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`
if (!IS_PURE && isCallable(NativePromise)) {
  var method = getBuiltIn('Promise').prototype['finally'];
  if (NativePromise.prototype['finally'] !== method) {
    redefine(NativePromise.prototype, 'finally', method, { unsafe: true });
  }
}


/***/ }),

/***/ 1025:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $ = __webpack_require__(9523);
var IS_PURE = __webpack_require__(5313);
var global = __webpack_require__(9790);
var getBuiltIn = __webpack_require__(7697);
var call = __webpack_require__(132);
var NativePromise = __webpack_require__(517);
var redefine = __webpack_require__(8090);
var redefineAll = __webpack_require__(1924);
var setPrototypeOf = __webpack_require__(3200);
var setToStringTag = __webpack_require__(6973);
var setSpecies = __webpack_require__(4974);
var aCallable = __webpack_require__(8709);
var isCallable = __webpack_require__(6811);
var isObject = __webpack_require__(280);
var anInstance = __webpack_require__(4117);
var inspectSource = __webpack_require__(9808);
var iterate = __webpack_require__(2357);
var checkCorrectnessOfIteration = __webpack_require__(8955);
var speciesConstructor = __webpack_require__(1186);
var task = (__webpack_require__(2772).set);
var microtask = __webpack_require__(5168);
var promiseResolve = __webpack_require__(9227);
var hostReportErrors = __webpack_require__(637);
var newPromiseCapabilityModule = __webpack_require__(318);
var perform = __webpack_require__(6171);
var Queue = __webpack_require__(3608);
var InternalStateModule = __webpack_require__(9468);
var isForced = __webpack_require__(1434);
var wellKnownSymbol = __webpack_require__(2618);
var IS_BROWSER = __webpack_require__(6701);
var IS_NODE = __webpack_require__(8799);
var V8_VERSION = __webpack_require__(4740);

var SPECIES = wellKnownSymbol('species');
var PROMISE = 'Promise';

var getInternalState = InternalStateModule.getterFor(PROMISE);
var setInternalState = InternalStateModule.set;
var getInternalPromiseState = InternalStateModule.getterFor(PROMISE);
var NativePromisePrototype = NativePromise && NativePromise.prototype;
var PromiseConstructor = NativePromise;
var PromisePrototype = NativePromisePrototype;
var TypeError = global.TypeError;
var document = global.document;
var process = global.process;
var newPromiseCapability = newPromiseCapabilityModule.f;
var newGenericPromiseCapability = newPromiseCapability;

var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);
var NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);
var UNHANDLED_REJECTION = 'unhandledrejection';
var REJECTION_HANDLED = 'rejectionhandled';
var PENDING = 0;
var FULFILLED = 1;
var REJECTED = 2;
var HANDLED = 1;
var UNHANDLED = 2;
var SUBCLASSING = false;

var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;

var FORCED = isForced(PROMISE, function () {
  var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);
  var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);
  // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
  // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
  // We can't detect it synchronously, so just check versions
  if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;
  // We need Promise#finally in the pure version for preventing prototype pollution
  if (IS_PURE && !PromisePrototype['finally']) return true;
  // We can't use @@species feature detection in V8 since it causes
  // deoptimization and performance degradation
  // https://github.com/zloirock/core-js/issues/679
  if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;
  // Detect correctness of subclassing with @@species support
  var promise = new PromiseConstructor(function (resolve) { resolve(1); });
  var FakePromise = function (exec) {
    exec(function () { /* empty */ }, function () { /* empty */ });
  };
  var constructor = promise.constructor = {};
  constructor[SPECIES] = FakePromise;
  SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;
  if (!SUBCLASSING) return true;
  // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test
  return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;
});

var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {
  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });
});

// helpers
var isThenable = function (it) {
  var then;
  return isObject(it) && isCallable(then = it.then) ? then : false;
};

var callReaction = function (reaction, state) {
  var value = state.value;
  var ok = state.state == FULFILLED;
  var handler = ok ? reaction.ok : reaction.fail;
  var resolve = reaction.resolve;
  var reject = reaction.reject;
  var domain = reaction.domain;
  var result, then, exited;
  try {
    if (handler) {
      if (!ok) {
        if (state.rejection === UNHANDLED) onHandleUnhandled(state);
        state.rejection = HANDLED;
      }
      if (handler === true) result = value;
      else {
        if (domain) domain.enter();
        result = handler(value); // can throw
        if (domain) {
          domain.exit();
          exited = true;
        }
      }
      if (result === reaction.promise) {
        reject(TypeError('Promise-chain cycle'));
      } else if (then = isThenable(result)) {
        call(then, result, resolve, reject);
      } else resolve(result);
    } else reject(value);
  } catch (error) {
    if (domain && !exited) domain.exit();
    reject(error);
  }
};

var notify = function (state, isReject) {
  if (state.notified) return;
  state.notified = true;
  microtask(function () {
    var reactions = state.reactions;
    var reaction;
    while (reaction = reactions.get()) {
      callReaction(reaction, state);
    }
    state.notified = false;
    if (isReject && !state.rejection) onUnhandled(state);
  });
};

var dispatchEvent = function (name, promise, reason) {
  var event, handler;
  if (DISPATCH_EVENT) {
    event = document.createEvent('Event');
    event.promise = promise;
    event.reason = reason;
    event.initEvent(name, false, true);
    global.dispatchEvent(event);
  } else event = { promise: promise, reason: reason };
  if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);
  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);
};

var onUnhandled = function (state) {
  call(task, global, function () {
    var promise = state.facade;
    var value = state.value;
    var IS_UNHANDLED = isUnhandled(state);
    var result;
    if (IS_UNHANDLED) {
      result = perform(function () {
        if (IS_NODE) {
          process.emit('unhandledRejection', value, promise);
        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);
      });
      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;
      if (result.error) throw result.value;
    }
  });
};

var isUnhandled = function (state) {
  return state.rejection !== HANDLED && !state.parent;
};

var onHandleUnhandled = function (state) {
  call(task, global, function () {
    var promise = state.facade;
    if (IS_NODE) {
      process.emit('rejectionHandled', promise);
    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);
  });
};

var bind = function (fn, state, unwrap) {
  return function (value) {
    fn(state, value, unwrap);
  };
};

var internalReject = function (state, value, unwrap) {
  if (state.done) return;
  state.done = true;
  if (unwrap) state = unwrap;
  state.value = value;
  state.state = REJECTED;
  notify(state, true);
};

var internalResolve = function (state, value, unwrap) {
  if (state.done) return;
  state.done = true;
  if (unwrap) state = unwrap;
  try {
    if (state.facade === value) throw TypeError("Promise can't be resolved itself");
    var then = isThenable(value);
    if (then) {
      microtask(function () {
        var wrapper = { done: false };
        try {
          call(then, value,
            bind(internalResolve, wrapper, state),
            bind(internalReject, wrapper, state)
          );
        } catch (error) {
          internalReject(wrapper, error, state);
        }
      });
    } else {
      state.value = value;
      state.state = FULFILLED;
      notify(state, false);
    }
  } catch (error) {
    internalReject({ done: false }, error, state);
  }
};

// constructor polyfill
if (FORCED) {
  // 25.4.3.1 Promise(executor)
  PromiseConstructor = function Promise(executor) {
    anInstance(this, PromisePrototype);
    aCallable(executor);
    call(Internal, this);
    var state = getInternalState(this);
    try {
      executor(bind(internalResolve, state), bind(internalReject, state));
    } catch (error) {
      internalReject(state, error);
    }
  };
  PromisePrototype = PromiseConstructor.prototype;
  // eslint-disable-next-line no-unused-vars -- required for `.length`
  Internal = function Promise(executor) {
    setInternalState(this, {
      type: PROMISE,
      done: false,
      notified: false,
      parent: false,
      reactions: new Queue(),
      rejection: false,
      state: PENDING,
      value: undefined
    });
  };
  Internal.prototype = redefineAll(PromisePrototype, {
    // `Promise.prototype.then` method
    // https://tc39.es/ecma262/#sec-promise.prototype.then
    // eslint-disable-next-line unicorn/no-thenable -- safe
    then: function then(onFulfilled, onRejected) {
      var state = getInternalPromiseState(this);
      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
      state.parent = true;
      reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;
      reaction.fail = isCallable(onRejected) && onRejected;
      reaction.domain = IS_NODE ? process.domain : undefined;
      if (state.state == PENDING) state.reactions.add(reaction);
      else microtask(function () {
        callReaction(reaction, state);
      });
      return reaction.promise;
    },
    // `Promise.prototype.catch` method
    // https://tc39.es/ecma262/#sec-promise.prototype.catch
    'catch': function (onRejected) {
      return this.then(undefined, onRejected);
    }
  });
  OwnPromiseCapability = function () {
    var promise = new Internal();
    var state = getInternalState(promise);
    this.promise = promise;
    this.resolve = bind(internalResolve, state);
    this.reject = bind(internalReject, state);
  };
  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
    return C === PromiseConstructor || C === PromiseWrapper
      ? new OwnPromiseCapability(C)
      : newGenericPromiseCapability(C);
  };

  if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {
    nativeThen = NativePromisePrototype.then;

    if (!SUBCLASSING) {
      // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs
      redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {
        var that = this;
        return new PromiseConstructor(function (resolve, reject) {
          call(nativeThen, that, resolve, reject);
        }).then(onFulfilled, onRejected);
      // https://github.com/zloirock/core-js/issues/640
      }, { unsafe: true });

      // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`
      redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { unsafe: true });
    }

    // make `.constructor === Promise` work for native promise-based APIs
    try {
      delete NativePromisePrototype.constructor;
    } catch (error) { /* empty */ }

    // make `instanceof Promise` work for native promise-based APIs
    if (setPrototypeOf) {
      setPrototypeOf(NativePromisePrototype, PromisePrototype);
    }
  }
}

$({ global: true, wrap: true, forced: FORCED }, {
  Promise: PromiseConstructor
});

setToStringTag(PromiseConstructor, PROMISE, false, true);
setSpecies(PROMISE);

PromiseWrapper = getBuiltIn(PROMISE);

// statics
$({ target: PROMISE, stat: true, forced: FORCED }, {
  // `Promise.reject` method
  // https://tc39.es/ecma262/#sec-promise.reject
  reject: function reject(r) {
    var capability = newPromiseCapability(this);
    call(capability.reject, undefined, r);
    return capability.promise;
  }
});

$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {
  // `Promise.resolve` method
  // https://tc39.es/ecma262/#sec-promise.resolve
  resolve: function resolve(x) {
    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);
  }
});

$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
  // `Promise.all` method
  // https://tc39.es/ecma262/#sec-promise.all
  all: function all(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var resolve = capability.resolve;
    var reject = capability.reject;
    var result = perform(function () {
      var $promiseResolve = aCallable(C.resolve);
      var values = [];
      var counter = 0;
      var remaining = 1;
      iterate(iterable, function (promise) {
        var index = counter++;
        var alreadyCalled = false;
        remaining++;
        call($promiseResolve, C, promise).then(function (value) {
          if (alreadyCalled) return;
          alreadyCalled = true;
          values[index] = value;
          --remaining || resolve(values);
        }, reject);
      });
      --remaining || resolve(values);
    });
    if (result.error) reject(result.value);
    return capability.promise;
  },
  // `Promise.race` method
  // https://tc39.es/ecma262/#sec-promise.race
  race: function race(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var reject = capability.reject;
    var result = perform(function () {
      var $promiseResolve = aCallable(C.resolve);
      iterate(iterable, function (promise) {
        call($promiseResolve, C, promise).then(capability.resolve, reject);
      });
    });
    if (result.error) reject(result.value);
    return capability.promise;
  }
});


/***/ }),

/***/ 6756:
/***/ (() => {

// empty


/***/ }),

/***/ 597:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var charAt = (__webpack_require__(5422).charAt);
var toString = __webpack_require__(3889);
var InternalStateModule = __webpack_require__(9468);
var defineIterator = __webpack_require__(2313);

var STRING_ITERATOR = 'String Iterator';
var setInternalState = InternalStateModule.set;
var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);

// `String.prototype[@@iterator]` method
// https://tc39.es/ecma262/#sec-string.prototype-@@iterator
defineIterator(String, 'String', function (iterated) {
  setInternalState(this, {
    type: STRING_ITERATOR,
    string: toString(iterated),
    index: 0
  });
// `%StringIteratorPrototype%.next` method
// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next
}, function next() {
  var state = getInternalState(this);
  var string = state.string;
  var index = state.index;
  var point;
  if (index >= string.length) return { value: undefined, done: true };
  point = charAt(string, index);
  state.index += point.length;
  return { value: point, done: false };
});


/***/ }),

/***/ 7293:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

/* eslint-disable es/no-string-prototype-matchall -- safe */
var $ = __webpack_require__(9523);
var global = __webpack_require__(9790);
var call = __webpack_require__(132);
var uncurryThis = __webpack_require__(9320);
var createIteratorConstructor = __webpack_require__(3968);
var requireObjectCoercible = __webpack_require__(2190);
var toLength = __webpack_require__(8491);
var toString = __webpack_require__(3889);
var anObject = __webpack_require__(5863);
var classof = __webpack_require__(8362);
var isPrototypeOf = __webpack_require__(1064);
var isRegExp = __webpack_require__(3591);
var regExpFlags = __webpack_require__(5712);
var getMethod = __webpack_require__(9562);
var redefine = __webpack_require__(8090);
var fails = __webpack_require__(5907);
var wellKnownSymbol = __webpack_require__(2618);
var speciesConstructor = __webpack_require__(1186);
var advanceStringIndex = __webpack_require__(9557);
var regExpExec = __webpack_require__(1313);
var InternalStateModule = __webpack_require__(9468);
var IS_PURE = __webpack_require__(5313);

var MATCH_ALL = wellKnownSymbol('matchAll');
var REGEXP_STRING = 'RegExp String';
var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';
var setInternalState = InternalStateModule.set;
var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
var RegExpPrototype = RegExp.prototype;
var TypeError = global.TypeError;
var getFlags = uncurryThis(regExpFlags);
var stringIndexOf = uncurryThis(''.indexOf);
var un$MatchAll = uncurryThis(''.matchAll);

var WORKS_WITH_NON_GLOBAL_REGEX = !!un$MatchAll && !fails(function () {
  un$MatchAll('a', /./);
});

var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) {
  setInternalState(this, {
    type: REGEXP_STRING_ITERATOR,
    regexp: regexp,
    string: string,
    global: $global,
    unicode: fullUnicode,
    done: false
  });
}, REGEXP_STRING, function next() {
  var state = getInternalState(this);
  if (state.done) return { value: undefined, done: true };
  var R = state.regexp;
  var S = state.string;
  var match = regExpExec(R, S);
  if (match === null) return { value: undefined, done: state.done = true };
  if (state.global) {
    if (toString(match[0]) === '') R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode);
    return { value: match, done: false };
  }
  state.done = true;
  return { value: match, done: false };
});

var $matchAll = function (string) {
  var R = anObject(this);
  var S = toString(string);
  var C, flagsValue, flags, matcher, $global, fullUnicode;
  C = speciesConstructor(R, RegExp);
  flagsValue = R.flags;
  if (flagsValue === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype)) {
    flagsValue = getFlags(R);
  }
  flags = flagsValue === undefined ? '' : toString(flagsValue);
  matcher = new C(C === RegExp ? R.source : R, flags);
  $global = !!~stringIndexOf(flags, 'g');
  fullUnicode = !!~stringIndexOf(flags, 'u');
  matcher.lastIndex = toLength(R.lastIndex);
  return new $RegExpStringIterator(matcher, S, $global, fullUnicode);
};

// `String.prototype.matchAll` method
// https://tc39.es/ecma262/#sec-string.prototype.matchall
$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
  matchAll: function matchAll(regexp) {
    var O = requireObjectCoercible(this);
    var flags, S, matcher, rx;
    if (regexp != null) {
      if (isRegExp(regexp)) {
        flags = toString(requireObjectCoercible('flags' in RegExpPrototype
          ? regexp.flags
          : getFlags(regexp)
        ));
        if (!~stringIndexOf(flags, 'g')) throw TypeError('`.matchAll` does not allow non-global regexes');
      }
      if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);
      matcher = getMethod(regexp, MATCH_ALL);
      if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
      if (matcher) return call(matcher, regexp, O);
    } else if (WORKS_WITH_NON_GLOBAL_REGEX) return un$MatchAll(O, regexp);
    S = toString(O);
    rx = new RegExp(regexp, 'g');
    return IS_PURE ? call($matchAll, rx, S) : rx[MATCH_ALL](S);
  }
});

IS_PURE || MATCH_ALL in RegExpPrototype || redefine(RegExpPrototype, MATCH_ALL, $matchAll);


/***/ }),

/***/ 4586:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

var $ = __webpack_require__(9523);
var $trim = (__webpack_require__(7614).trim);
var forcedStringTrimMethod = __webpack_require__(377);

// `String.prototype.trim` method
// https://tc39.es/ecma262/#sec-string.prototype.trim
$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {
  trim: function trim() {
    return $trim(this);
  }
});


/***/ }),

/***/ 8129:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

// TODO: Remove from `core-js@4`
__webpack_require__(7293);


/***/ }),

/***/ 4989:
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(4428);
var DOMIterables = __webpack_require__(2176);
var global = __webpack_require__(9790);
var classof = __webpack_require__(3603);
var createNonEnumerableProperty = __webpack_require__(8171);
var Iterators = __webpack_require__(2815);
var wellKnownSymbol = __webpack_require__(2618);

var TO_STRING_TAG = wellKnownSymbol('toStringTag');

for (var COLLECTION_NAME in DOMIterables) {
  var Collection = global[COLLECTION_NAME];
  var CollectionPrototype = Collection && Collection.prototype;
  if (CollectionPrototype && classof(CollectionPrototype) !== TO_STRING_TAG) {
    createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
  }
  Iterators[COLLECTION_NAME] = Iterators.Array;
}


/***/ }),

/***/ 8040:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";

// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
__webpack_require__(4428);
var $ = __webpack_require__(9523);
var global = __webpack_require__(9790);
var getBuiltIn = __webpack_require__(7697);
var call = __webpack_require__(132);
var uncurryThis = __webpack_require__(9320);
var USE_NATIVE_URL = __webpack_require__(5981);
var redefine = __webpack_require__(8090);
var redefineAll = __webpack_require__(1924);
var setToStringTag = __webpack_require__(6973);
var createIteratorConstructor = __webpack_require__(3968);
var InternalStateModule = __webpack_require__(9468);
var anInstance = __webpack_require__(4117);
var isCallable = __webpack_require__(6811);
var hasOwn = __webpack_require__(757);
var bind = __webpack_require__(9037);
var classof = __webpack_require__(3603);
var anObject = __webpack_require__(5863);
var isObject = __webpack_require__(280);
var $toString = __webpack_require__(3889);
var create = __webpack_require__(9977);
var createPropertyDescriptor = __webpack_require__(4221);
var getIterator = __webpack_require__(5748);
var getIteratorMethod = __webpack_require__(7936);
var validateArgumentsLength = __webpack_require__(4936);
var wellKnownSymbol = __webpack_require__(2618);
var arraySort = __webpack_require__(2539);

var ITERATOR = wellKnownSymbol('iterator');
var URL_SEARCH_PARAMS = 'URLSearchParams';
var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';
var setInternalState = InternalStateModule.set;
var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);
var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);

var n$Fetch = getBuiltIn('fetch');
var N$Request = getBuiltIn('Request');
var Headers = getBuiltIn('Headers');
var RequestPrototype = N$Request && N$Request.prototype;
var HeadersPrototype = Headers && Headers.prototype;
var RegExp = global.RegExp;
var TypeError = global.TypeError;
var decodeURIComponent = global.decodeURIComponent;
var encodeURIComponent = global.encodeURIComponent;
var charAt = uncurryThis(''.charAt);
var join = uncurryThis([].join);
var push = uncurryThis([].push);
var replace = uncurryThis(''.replace);
var shift = uncurryThis([].shift);
var splice = uncurryThis([].splice);
var split = uncurryThis(''.split);
var stringSlice = uncurryThis(''.slice);

var plus = /\+/g;
var sequences = Array(4);

var percentSequence = function (bytes) {
  return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi'));
};

var percentDecode = function (sequence) {
  try {
    return decodeURIComponent(sequence);
  } catch (error) {
    return sequence;
  }
};

var deserialize = function (it) {
  var result = replace(it, plus, ' ');
  var bytes = 4;
  try {
    return decodeURIComponent(result);
  } catch (error) {
    while (bytes) {
      result = replace(result, percentSequence(bytes--), percentDecode);
    }
    return result;
  }
};

var find = /[!'()~]|%20/g;

var replacements = {
  '!': '%21',
  "'": '%27',
  '(': '%28',
  ')': '%29',
  '~': '%7E',
  '%20': '+'
};

var replacer = function (match) {
  return replacements[match];
};

var serialize = function (it) {
  return replace(encodeURIComponent(it), find, replacer);
};

var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {
  setInternalState(this, {
    type: URL_SEARCH_PARAMS_ITERATOR,
    iterator: getIterator(getInternalParamsState(params).entries),
    kind: kind
  });
}, 'Iterator', function next() {
  var state = getInternalIteratorState(this);
  var kind = state.kind;
  var step = state.iterator.next();
  var entry = step.value;
  if (!step.done) {
    step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];
  } return step;
}, true);

var URLSearchParamsState = function (init) {
  this.entries = [];
  this.url = null;

  if (init !== undefined) {
    if (isObject(init)) this.parseObject(init);
    else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));
  }
};

URLSearchParamsState.prototype = {
  type: URL_SEARCH_PARAMS,
  bindURL: function (url) {
    this.url = url;
    this.update();
  },
  parseObject: function (object) {
    var iteratorMethod = getIteratorMethod(object);
    var iterator, next, step, entryIterator, entryNext, first, second;

    if (iteratorMethod) {
      iterator = getIterator(object, iteratorMethod);
      next = iterator.next;
      while (!(step = call(next, iterator)).done) {
        entryIterator = getIterator(anObject(step.value));
        entryNext = entryIterator.next;
        if (
          (first = call(entryNext, entryIterator)).done ||
          (second = call(entryNext, entryIterator)).done ||
          !call(entryNext, entryIterator).done
        ) throw TypeError('Expected sequence with length 2');
        push(this.entries, { key: $toString(first.value), value: $toString(second.value) });
      }
    } else for (var key in object) if (hasOwn(object, key)) {
      push(this.entries, { key: key, value: $toString(object[key]) });
    }
  },
  parseQuery: function (query) {
    if (query) {
      var attributes = split(query, '&');
      var index = 0;
      var attribute, entry;
      while (index < attributes.length) {
        attribute = attributes[index++];
        if (attribute.length) {
          entry = split(attribute, '=');
          push(this.entries, {
            key: deserialize(shift(entry)),
            value: deserialize(join(entry, '='))
          });
        }
      }
    }
  },
  serialize: function () {
    var entries = this.entries;
    var result = [];
    var index = 0;
    var entry;
    while (index < entries.length) {
      entry = entries[index++];
      push(result, serialize(entry.key) + '=' + serialize(entry.value));
    } return join(result, '&');
  },
  update: function () {
    this.entries.length = 0;
    this.parseQuery(this.url.query);
  },
  updateURL: function () {
    if (this.url) this.url.update();
  }
};

// `URLSearchParams` constructor
// https://url.spec.whatwg.org/#interface-urlsearchparams
var URLSearchParamsConstructor = function URLSearchParams(/* init */) {
  anInstance(this, URLSearchParamsPrototype);
  var init = arguments.length > 0 ? arguments[0] : undefined;
  setInternalState(this, new URLSearchParamsState(init));
};

var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;

redefineAll(URLSearchParamsPrototype, {
  // `URLSearchParams.prototype.append` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-append
  append: function append(name, value) {
    validateArgumentsLength(arguments.length, 2);
    var state = getInternalParamsState(this);
    push(state.entries, { key: $toString(name), value: $toString(value) });
    state.updateURL();
  },
  // `URLSearchParams.prototype.delete` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete
  'delete': function (name) {
    validateArgumentsLength(arguments.length, 1);
    var state = getInternalParamsState(this);
    var entries = state.entries;
    var key = $toString(name);
    var index = 0;
    while (index < entries.length) {
      if (entries[index].key === key) splice(entries, index, 1);
      else index++;
    }
    state.updateURL();
  },
  // `URLSearchParams.prototype.get` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-get
  get: function get(name) {
    validateArgumentsLength(arguments.length, 1);
    var entries = getInternalParamsState(this).entries;
    var key = $toString(name);
    var index = 0;
    for (; index < entries.length; index++) {
      if (entries[index].key === key) return entries[index].value;
    }
    return null;
  },
  // `URLSearchParams.prototype.getAll` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall
  getAll: function getAll(name) {
    validateArgumentsLength(arguments.length, 1);
    var entries = getInternalParamsState(this).entries;
    var key = $toString(name);
    var result = [];
    var index = 0;
    for (; index < entries.length; index++) {
      if (entries[index].key === key) push(result, entries[index].value);
    }
    return result;
  },
  // `URLSearchParams.prototype.has` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-has
  has: function has(name) {
    validateArgumentsLength(arguments.length, 1);
    var entries = getInternalParamsState(this).entries;
    var key = $toString(name);
    var index = 0;
    while (index < entries.length) {
      if (entries[index++].key === key) return true;
    }
    return false;
  },
  // `URLSearchParams.prototype.set` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-set
  set: function set(name, value) {
    validateArgumentsLength(arguments.length, 1);
    var state = getInternalParamsState(this);
    var entries = state.entries;
    var found = false;
    var key = $toString(name);
    var val = $toString(value);
    var index = 0;
    var entry;
    for (; index < entries.length; index++) {
      entry = entries[index];
      if (entry.key === key) {
        if (found) splice(entries, index--, 1);
        else {
          found = true;
          entry.value = val;
        }
      }
    }
    if (!found) push(entries, { key: key, value: val });
    state.updateURL();
  },
  // `URLSearchParams.prototype.sort` method
  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort
  sort: function sort() {
    var state = getInternalParamsState(this);
    arraySort(state.entries, function (a, b) {
      return a.key > b.key ? 1 : -1;
    });
    state.updateURL();
  },
  // `URLSearchParams.prototype.forEach` method
  forEach: function forEach(callback /* , thisArg */) {
    var entries = getInternalParamsState(this).entries;
    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);
    var index = 0;
    var entry;
    while (index < entries.length) {
      entry = entries[index++];
      boundFunction(entry.value, entry.key, this);
    }
  },
  // `URLSearchParams.prototype.keys` method
  keys: function keys() {
    return new URLSearchParamsIterator(this, 'keys');
  },
  // `URLSearchParams.prototype.values` method
  values: function values() {
    return new URLSearchParamsIterator(this, 'values');
  },
  // `URLSearchParams.prototype.entries` method
  entries: function entries() {
    return new URLSearchParamsIterator(this, 'entries');
  }
}, { enumerable: true });

// `URLSearchParams.prototype[@@iterator]` method
redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });

// `URLSearchParams.prototype.toString` method
// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior
redefine(URLSearchParamsPrototype, 'toString', function toString() {
  return getInternalParamsState(this).serialize();
}, { enumerable: true });

setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);

$({ global: true, forced: !USE_NATIVE_URL }, {
  URLSearchParams: URLSearchParamsConstructor
});

// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`
if (!USE_NATIVE_URL && isCallable(Headers)) {
  var headersHas = uncurryThis(HeadersPrototype.has);
  var headersSet = uncurryThis(HeadersPrototype.set);

  var wrapRequestOptions = function (init) {
    if (isObject(init)) {
      var body = init.body;
      var headers;
      if (classof(body) === URL_SEARCH_PARAMS) {
        headers = init.headers ? new Headers(init.headers) : new Headers();
        if (!headersHas(headers, 'content-type')) {
          headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
        }
        return create(init, {
          body: createPropertyDescriptor(0, $toString(body)),
          headers: createPropertyDescriptor(0, headers)
        });
      }
    } return init;
  };

  if (isCallable(n$Fetch)) {
    $({ global: true, enumerable: true, forced: true }, {
      fetch: function fetch(input /* , init */) {
        return n$Fetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});
      }
    });
  }

  if (isCallable(N$Request)) {
    var RequestConstructor = function Request(input /* , init */) {
      anInstance(this, RequestPrototype);
      return new N$Request(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});
    };

    RequestPrototype.constructor = RequestConstructor;
    RequestConstructor.prototype = RequestPrototype;

    $({ global: true, forced: true }, {
      Request: RequestConstructor
    });
  }
}

module.exports = {
  URLSearchParams: URLSearchParamsConstructor,
  getState: getInternalParamsState
};


/***/ }),

/***/ 3659:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var parent = __webpack_require__(5519);

module.exports = parent;


/***/ }),

/***/ 5302:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var parent = __webpack_require__(1622);

module.exports = parent;


/***/ }),

/***/ 1748:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(4989);
var classof = __webpack_require__(3603);
var hasOwn = __webpack_require__(757);
var isPrototypeOf = __webpack_require__(1064);
var method = __webpack_require__(3659);

var ArrayPrototype = Array.prototype;

var DOMIterables = {
  DOMTokenList: true,
  NodeList: true
};

module.exports = function (it) {
  var own = it.keys;
  return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.keys)
    || hasOwn(DOMIterables, classof(it)) ? method : own;
};


/***/ }),

/***/ 7419:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var parent = __webpack_require__(5011);

module.exports = parent;


/***/ }),

/***/ 1458:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var parent = __webpack_require__(4133);

module.exports = parent;


/***/ }),

/***/ 7995:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var parent = __webpack_require__(249);

module.exports = parent;


/***/ }),

/***/ 5239:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var parent = __webpack_require__(9971);
__webpack_require__(4989);

module.exports = parent;


/***/ }),

/***/ 2436:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var parent = __webpack_require__(4556);
__webpack_require__(4989);

module.exports = parent;


/***/ }),

/***/ 5765:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

var parent = __webpack_require__(2913);
__webpack_require__(4989);

module.exports = parent;


/***/ }),

/***/ 2913:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

__webpack_require__(8040);
var path = __webpack_require__(1559);

module.exports = path.URLSearchParams;


/***/ }),

/***/ 6415:
/***/ ((module) => {

(function() {
  var base64map
      = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',

  crypt = {
    // Bit-wise rotation left
    rotl: function(n, b) {
      return (n << b) | (n >>> (32 - b));
    },

    // Bit-wise rotation right
    rotr: function(n, b) {
      return (n << (32 - b)) | (n >>> b);
    },

    // Swap big-endian to little-endian and vice versa
    endian: function(n) {
      // If number given, swap endian
      if (n.constructor == Number) {
        return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;
      }

      // Else, assume array and swap all items
      for (var i = 0; i < n.length; i++)
        n[i] = crypt.endian(n[i]);
      return n;
    },

    // Generate an array of any length of random bytes
    randomBytes: function(n) {
      for (var bytes = []; n > 0; n--)
        bytes.push(Math.floor(Math.random() * 256));
      return bytes;
    },

    // Convert a byte array to big-endian 32-bit words
    bytesToWords: function(bytes) {
      for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)
        words[b >>> 5] |= bytes[i] << (24 - b % 32);
      return words;
    },

    // Convert big-endian 32-bit words to a byte array
    wordsToBytes: function(words) {
      for (var bytes = [], b = 0; b < words.length * 32; b += 8)
        bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);
      return bytes;
    },

    // Convert a byte array to a hex string
    bytesToHex: function(bytes) {
      for (var hex = [], i = 0; i < bytes.length; i++) {
        hex.push((bytes[i] >>> 4).toString(16));
        hex.push((bytes[i] & 0xF).toString(16));
      }
      return hex.join('');
    },

    // Convert a hex string to a byte array
    hexToBytes: function(hex) {
      for (var bytes = [], c = 0; c < hex.length; c += 2)
        bytes.push(parseInt(hex.substr(c, 2), 16));
      return bytes;
    },

    // Convert a byte array to a base-64 string
    bytesToBase64: function(bytes) {
      for (var base64 = [], i = 0; i < bytes.length; i += 3) {
        var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];
        for (var j = 0; j < 4; j++)
          if (i * 8 + j * 6 <= bytes.length * 8)
            base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));
          else
            base64.push('=');
      }
      return base64.join('');
    },

    // Convert a base-64 string to a byte array
    base64ToBytes: function(base64) {
      // Remove non-base-64 characters
      base64 = base64.replace(/[^A-Z0-9+\/]/ig, '');

      for (var bytes = [], i = 0, imod4 = 0; i < base64.length;
          imod4 = ++i % 4) {
        if (imod4 == 0) continue;
        bytes.push(((base64map.indexOf(base64.charAt(i - 1))
            & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))
            | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));
      }
      return bytes;
    }
  };

  module.exports = crypt;
})();


/***/ }),

/***/ 5700:
/***/ (function(module, exports, __webpack_require__) {

;(function (root, factory) {
	if (true) {
		// CommonJS
		module.exports = exports = factory();
	}
	else {}
}(this, function () {

	/*globals window, global, require*/

	/**
	 * CryptoJS core components.
	 */
	var CryptoJS = CryptoJS || (function (Math, undefined) {

	    var crypto;

	    // Native crypto from window (Browser)
	    if (typeof window !== 'undefined' && window.crypto) {
	        crypto = window.crypto;
	    }

	    // Native crypto in web worker (Browser)
	    if (typeof self !== 'undefined' && self.crypto) {
	        crypto = self.crypto;
	    }

	    // Native crypto from worker
	    if (typeof globalThis !== 'undefined' && globalThis.crypto) {
	        crypto = globalThis.crypto;
	    }

	    // Native (experimental IE 11) crypto from window (Browser)
	    if (!crypto && typeof window !== 'undefined' && window.msCrypto) {
	        crypto = window.msCrypto;
	    }

	    // Native crypto from global (NodeJS)
	    if (!crypto && typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.crypto) {
	        crypto = __webpack_require__.g.crypto;
	    }

	    // Native crypto import via require (NodeJS)
	    if (!crypto && "function" === 'function') {
	        try {
	            crypto = __webpack_require__(2480);
	        } catch (err) {}
	    }

	    /*
	     * Cryptographically secure pseudorandom number generator
	     *
	     * As Math.random() is cryptographically not safe to use
	     */
	    var cryptoSecureRandomInt = function () {
	        if (crypto) {
	            // Use getRandomValues method (Browser)
	            if (typeof crypto.getRandomValues === 'function') {
	                try {
	                    return crypto.getRandomValues(new Uint32Array(1))[0];
	                } catch (err) {}
	            }

	            // Use randomBytes method (NodeJS)
	            if (typeof crypto.randomBytes === 'function') {
	                try {
	                    return crypto.randomBytes(4).readInt32LE();
	                } catch (err) {}
	            }
	        }

	        throw new Error('Native crypto module could not be used to get secure random number.');
	    };

	    /*
	     * Local polyfill of Object.create

	     */
	    var create = Object.create || (function () {
	        function F() {}

	        return function (obj) {
	            var subtype;

	            F.prototype = obj;

	            subtype = new F();

	            F.prototype = null;

	            return subtype;
	        };
	    }());

	    /**
	     * CryptoJS namespace.
	     */
	    var C = {};

	    /**
	     * Library namespace.
	     */
	    var C_lib = C.lib = {};

	    /**
	     * Base object for prototypal inheritance.
	     */
	    var Base = C_lib.Base = (function () {


	        return {
	            /**
	             * Creates a new object that inherits from this object.
	             *
	             * @param {Object} overrides Properties to copy into the new object.
	             *
	             * @return {Object} The new object.
	             *
	             * @static
	             *
	             * @example
	             *
	             *     var MyType = CryptoJS.lib.Base.extend({
	             *         field: 'value',
	             *
	             *         method: function () {
	             *         }
	             *     });
	             */
	            extend: function (overrides) {
	                // Spawn
	                var subtype = create(this);

	                // Augment
	                if (overrides) {
	                    subtype.mixIn(overrides);
	                }

	                // Create default initializer
	                if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {
	                    subtype.init = function () {
	                        subtype.$super.init.apply(this, arguments);
	                    };
	                }

	                // Initializer's prototype is the subtype object
	                subtype.init.prototype = subtype;

	                // Reference supertype
	                subtype.$super = this;

	                return subtype;
	            },

	            /**
	             * Extends this object and runs the init method.
	             * Arguments to create() will be passed to init().
	             *
	             * @return {Object} The new object.
	             *
	             * @static
	             *
	             * @example
	             *
	             *     var instance = MyType.create();
	             */
	            create: function () {
	                var instance = this.extend();
	                instance.init.apply(instance, arguments);

	                return instance;
	            },

	            /**
	             * Initializes a newly created object.
	             * Override this method to add some logic when your objects are created.
	             *
	             * @example
	             *
	             *     var MyType = CryptoJS.lib.Base.extend({
	             *         init: function () {
	             *             // ...
	             *         }
	             *     });
	             */
	            init: function () {
	            },

	            /**
	             * Copies properties into this object.
	             *
	             * @param {Object} properties The properties to mix in.
	             *
	             * @example
	             *
	             *     MyType.mixIn({
	             *         field: 'value'
	             *     });
	             */
	            mixIn: function (properties) {
	                for (var propertyName in properties) {
	                    if (properties.hasOwnProperty(propertyName)) {
	                        this[propertyName] = properties[propertyName];
	                    }
	                }

	                // IE won't copy toString using the loop above
	                if (properties.hasOwnProperty('toString')) {
	                    this.toString = properties.toString;
	                }
	            },

	            /**
	             * Creates a copy of this object.
	             *
	             * @return {Object} The clone.
	             *
	             * @example
	             *
	             *     var clone = instance.clone();
	             */
	            clone: function () {
	                return this.init.prototype.extend(this);
	            }
	        };
	    }());

	    /**
	     * An array of 32-bit words.
	     *
	     * @property {Array} words The array of 32-bit words.
	     * @property {number} sigBytes The number of significant bytes in this word array.
	     */
	    var WordArray = C_lib.WordArray = Base.extend({
	        /**
	         * Initializes a newly created word array.
	         *
	         * @param {Array} words (Optional) An array of 32-bit words.
	         * @param {number} sigBytes (Optional) The number of significant bytes in the words.
	         *
	         * @example
	         *
	         *     var wordArray = CryptoJS.lib.WordArray.create();
	         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
	         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
	         */
	        init: function (words, sigBytes) {
	            words = this.words = words || [];

	            if (sigBytes != undefined) {
	                this.sigBytes = sigBytes;
	            } else {
	                this.sigBytes = words.length * 4;
	            }
	        },

	        /**
	         * Converts this word array to a string.
	         *
	         * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
	         *
	         * @return {string} The stringified word array.
	         *
	         * @example
	         *
	         *     var string = wordArray + '';
	         *     var string = wordArray.toString();
	         *     var string = wordArray.toString(CryptoJS.enc.Utf8);
	         */
	        toString: function (encoder) {
	            return (encoder || Hex).stringify(this);
	        },

	        /**
	         * Concatenates a word array to this word array.
	         *
	         * @param {WordArray} wordArray The word array to append.
	         *
	         * @return {WordArray} This word array.
	         *
	         * @example
	         *
	         *     wordArray1.concat(wordArray2);
	         */
	        concat: function (wordArray) {
	            // Shortcuts
	            var thisWords = this.words;
	            var thatWords = wordArray.words;
	            var thisSigBytes = this.sigBytes;
	            var thatSigBytes = wordArray.sigBytes;

	            // Clamp excess bits
	            this.clamp();

	            // Concat
	            if (thisSigBytes % 4) {
	                // Copy one byte at a time
	                for (var i = 0; i < thatSigBytes; i++) {
	                    var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
	                    thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);
	                }
	            } else {
	                // Copy one word at a time
	                for (var j = 0; j < thatSigBytes; j += 4) {
	                    thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];
	                }
	            }
	            this.sigBytes += thatSigBytes;

	            // Chainable
	            return this;
	        },

	        /**
	         * Removes insignificant bits.
	         *
	         * @example
	         *
	         *     wordArray.clamp();
	         */
	        clamp: function () {
	            // Shortcuts
	            var words = this.words;
	            var sigBytes = this.sigBytes;

	            // Clamp
	            words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);
	            words.length = Math.ceil(sigBytes / 4);
	        },

	        /**
	         * Creates a copy of this word array.
	         *
	         * @return {WordArray} The clone.
	         *
	         * @example
	         *
	         *     var clone = wordArray.clone();
	         */
	        clone: function () {
	            var clone = Base.clone.call(this);
	            clone.words = this.words.slice(0);

	            return clone;
	        },

	        /**
	         * Creates a word array filled with random bytes.
	         *
	         * @param {number} nBytes The number of random bytes to generate.
	         *
	         * @return {WordArray} The random word array.
	         *
	         * @static
	         *
	         * @example
	         *
	         *     var wordArray = CryptoJS.lib.WordArray.random(16);
	         */
	        random: function (nBytes) {
	            var words = [];

	            for (var i = 0; i < nBytes; i += 4) {
	                words.push(cryptoSecureRandomInt());
	            }

	            return new WordArray.init(words, nBytes);
	        }
	    });

	    /**
	     * Encoder namespace.
	     */
	    var C_enc = C.enc = {};

	    /**
	     * Hex encoding strategy.
	     */
	    var Hex = C_enc.Hex = {
	        /**
	         * Converts a word array to a hex string.
	         *
	         * @param {WordArray} wordArray The word array.
	         *
	         * @return {string} The hex string.
	         *
	         * @static
	         *
	         * @example
	         *
	         *     var hexString = CryptoJS.enc.Hex.stringify(wordArray);
	         */
	        stringify: function (wordArray) {
	            // Shortcuts
	            var words = wordArray.words;
	            var sigBytes = wordArray.sigBytes;

	            // Convert
	            var hexChars = [];
	            for (var i = 0; i < sigBytes; i++) {
	                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
	                hexChars.push((bite >>> 4).toString(16));
	                hexChars.push((bite & 0x0f).toString(16));
	            }

	            return hexChars.join('');
	        },

	        /**
	         * Converts a hex string to a word array.
	         *
	         * @param {string} hexStr The hex string.
	         *
	         * @return {WordArray} The word array.
	         *
	         * @static
	         *
	         * @example
	         *
	         *     var wordArray = CryptoJS.enc.Hex.parse(hexString);
	         */
	        parse: function (hexStr) {
	            // Shortcut
	            var hexStrLength = hexStr.length;

	            // Convert
	            var words = [];
	            for (var i = 0; i < hexStrLength; i += 2) {
	                words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
	            }

	            return new WordArray.init(words, hexStrLength / 2);
	        }
	    };

	    /**
	     * Latin1 encoding strategy.
	     */
	    var Latin1 = C_enc.Latin1 = {
	        /**
	         * Converts a word array to a Latin1 string.
	         *
	         * @param {WordArray} wordArray The word array.
	         *
	         * @return {string} The Latin1 string.
	         *
	         * @static
	         *
	         * @example
	         *
	         *     var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
	         */
	        stringify: function (wordArray) {
	            // Shortcuts
	            var words = wordArray.words;
	            var sigBytes = wordArray.sigBytes;

	            // Convert
	            var latin1Chars = [];
	            for (var i = 0; i < sigBytes; i++) {
	                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
	                latin1Chars.push(String.fromCharCode(bite));
	            }

	            return latin1Chars.join('');
	        },

	        /**
	         * Converts a Latin1 string to a word array.
	         *
	         * @param {string} latin1Str The Latin1 string.
	         *
	         * @return {WordArray} The word array.
	         *
	         * @static
	         *
	         * @example
	         *
	         *     var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
	         */
	        parse: function (latin1Str) {
	            // Shortcut
	            var latin1StrLength = latin1Str.length;

	            // Convert
	            var words = [];
	            for (var i = 0; i < latin1StrLength; i++) {
	                words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);
	            }

	            return new WordArray.init(words, latin1StrLength);
	        }
	    };

	    /**
	     * UTF-8 encoding strategy.
	     */
	    var Utf8 = C_enc.Utf8 = {
	        /**
	         * Converts a word array to a UTF-8 string.
	         *
	         * @param {WordArray} wordArray The word array.
	         *
	         * @return {string} The UTF-8 string.
	         *
	         * @static
	         *
	         * @example
	         *
	         *     var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
	         */
	        stringify: function (wordArray) {
	            try {
	                return decodeURIComponent(escape(Latin1.stringify(wordArray)));
	            } catch (e) {
	                throw new Error('Malformed UTF-8 data');
	            }
	        },

	        /**
	         * Converts a UTF-8 string to a word array.
	         *
	         * @param {string} utf8Str The UTF-8 string.
	         *
	         * @return {WordArray} The word array.
	         *
	         * @static
	         *
	         * @example
	         *
	         *     var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
	         */
	        parse: function (utf8Str) {
	            return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
	        }
	    };

	    /**
	     * Abstract buffered block algorithm template.
	     *
	     * The property blockSize must be implemented in a concrete subtype.
	     *
	     * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0
	     */
	    var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({
	        /**
	         * Resets this block algorithm's data buffer to its initial state.
	         *
	         * @example
	         *
	         *     bufferedBlockAlgorithm.reset();
	         */
	        reset: function () {
	            // Initial values
	            this._data = new WordArray.init();
	            this._nDataBytes = 0;
	        },

	        /**
	         * Adds new data to this block algorithm's buffer.
	         *
	         * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
	         *
	         * @example
	         *
	         *     bufferedBlockAlgorithm._append('data');
	         *     bufferedBlockAlgorithm._append(wordArray);
	         */
	        _append: function (data) {
	            // Convert string to WordArray, else assume WordArray already
	            if (typeof data == 'string') {
	                data = Utf8.parse(data);
	            }

	            // Append
	            this._data.concat(data);
	            this._nDataBytes += data.sigBytes;
	        },

	        /**
	         * Processes available data blocks.
	         *
	         * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
	         *
	         * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
	         *
	         * @return {WordArray} The processed data.
	         *
	         * @example
	         *
	         *     var processedData = bufferedBlockAlgorithm._process();
	         *     var processedData = bufferedBlockAlgorithm._process(!!'flush');
	         */
	        _process: function (doFlush) {
	            var processedWords;

	            // Shortcuts
	            var data = this._data;
	            var dataWords = data.words;
	            var dataSigBytes = data.sigBytes;
	            var blockSize = this.blockSize;
	            var blockSizeBytes = blockSize * 4;

	            // Count blocks ready
	            var nBlocksReady = dataSigBytes / blockSizeBytes;
	            if (doFlush) {
	                // Round up to include partial blocks
	                nBlocksReady = Math.ceil(nBlocksReady);
	            } else {
	                // Round down to include only full blocks,
	                // less the number of blocks that must remain in the buffer
	                nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
	            }

	            // Count words ready
	            var nWordsReady = nBlocksReady * blockSize;

	            // Count bytes ready
	            var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);

	            // Process blocks
	            if (nWordsReady) {
	                for (var offset = 0; offset < nWordsReady; offset += blockSize) {
	                    // Perform concrete-algorithm logic
	                    this._doProcessBlock(dataWords, offset);
	                }

	                // Remove processed words
	                processedWords = dataWords.splice(0, nWordsReady);
	                data.sigBytes -= nBytesReady;
	            }

	            // Return processed words
	            return new WordArray.init(processedWords, nBytesReady);
	        },

	        /**
	         * Creates a copy of this object.
	         *
	         * @return {Object} The clone.
	         *
	         * @example
	         *
	         *     var clone = bufferedBlockAlgorithm.clone();
	         */
	        clone: function () {
	            var clone = Base.clone.call(this);
	            clone._data = this._data.clone();

	            return clone;
	        },

	        _minBufferSize: 0
	    });

	    /**
	     * Abstract hasher template.
	     *
	     * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)
	     */
	    var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({
	        /**
	         * Configuration options.
	         */
	        cfg: Base.extend(),

	        /**
	         * Initializes a newly created hasher.
	         *
	         * @param {Object} cfg (Optional) The configuration options to use for this hash computation.
	         *
	         * @example
	         *
	         *     var hasher = CryptoJS.algo.SHA256.create();
	         */
	        init: function (cfg) {
	            // Apply config defaults
	            this.cfg = this.cfg.extend(cfg);

	            // Set initial values
	            this.reset();
	        },

	        /**
	         * Resets this hasher to its initial state.
	         *
	         * @example
	         *
	         *     hasher.reset();
	         */
	        reset: function () {
	            // Reset data buffer
	            BufferedBlockAlgorithm.reset.call(this);

	            // Perform concrete-hasher logic
	            this._doReset();
	        },

	        /**
	         * Updates this hasher with a message.
	         *
	         * @param {WordArray|string} messageUpdate The message to append.
	         *
	         * @return {Hasher} This hasher.
	         *
	         * @example
	         *
	         *     hasher.update('message');
	         *     hasher.update(wordArray);
	         */
	        update: function (messageUpdate) {
	            // Append
	            this._append(messageUpdate);

	            // Update the hash
	            this._process();

	            // Chainable
	            return this;
	        },

	        /**
	         * Finalizes the hash computation.
	         * Note that the finalize operation is effectively a destructive, read-once operation.
	         *
	         * @param {WordArray|string} messageUpdate (Optional) A final message update.
	         *
	         * @return {WordArray} The hash.
	         *
	         * @example
	         *
	         *     var hash = hasher.finalize();
	         *     var hash = hasher.finalize('message');
	         *     var hash = hasher.finalize(wordArray);
	         */
	        finalize: function (messageUpdate) {
	            // Final message update
	            if (messageUpdate) {
	                this._append(messageUpdate);
	            }

	            // Perform concrete-hasher logic
	            var hash = this._doFinalize();

	            return hash;
	        },

	        blockSize: 512/32,

	        /**
	         * Creates a shortcut function to a hasher's object interface.
	         *
	         * @param {Hasher} hasher The hasher to create a helper for.
	         *
	         * @return {Function} The shortcut function.
	         *
	         * @static
	         *
	         * @example
	         *
	         *     var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
	         */
	        _createHelper: function (hasher) {
	            return function (message, cfg) {
	                return new hasher.init(cfg).finalize(message);
	            };
	        },

	        /**
	         * Creates a shortcut function to the HMAC's object interface.
	         *
	         * @param {Hasher} hasher The hasher to use in this HMAC helper.
	         *
	         * @return {Function} The shortcut function.
	         *
	         * @static
	         *
	         * @example
	         *
	         *     var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
	         */
	        _createHmacHelper: function (hasher) {
	            return function (message, key) {
	                return new C_algo.HMAC.init(hasher, key).finalize(message);
	            };
	        }
	    });

	    /**
	     * Algorithm namespace.
	     */
	    var C_algo = C.algo = {};

	    return C;
	}(Math));


	return CryptoJS;

}));

/***/ }),

/***/ 7334:
/***/ (function(module, exports, __webpack_require__) {

;(function (root, factory, undef) {
	if (true) {
		// CommonJS
		module.exports = exports = factory(__webpack_require__(5700), __webpack_require__(8960), __webpack_require__(6132));
	}
	else {}
}(this, function (CryptoJS) {

	return CryptoJS.HmacSHA1;

}));

/***/ }),

/***/ 6132:
/***/ (function(module, exports, __webpack_require__) {

;(function (root, factory) {
	if (true) {
		// CommonJS
		module.exports = exports = factory(__webpack_require__(5700));
	}
	else {}
}(this, function (CryptoJS) {

	(function () {
	    // Shortcuts
	    var C = CryptoJS;
	    var C_lib = C.lib;
	    var Base = C_lib.Base;
	    var C_enc = C.enc;
	    var Utf8 = C_enc.Utf8;
	    var C_algo = C.algo;

	    /**
	     * HMAC algorithm.
	     */
	    var HMAC = C_algo.HMAC = Base.extend({
	        /**
	         * Initializes a newly created HMAC.
	         *
	         * @param {Hasher} hasher The hash algorithm to use.
	         * @param {WordArray|string} key The secret key.
	         *
	         * @example
	         *
	         *     var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
	         */
	        init: function (hasher, key) {
	            // Init hasher
	            hasher = this._hasher = new hasher.init();

	            // Convert string to WordArray, else assume WordArray already
	            if (typeof key == 'string') {
	                key = Utf8.parse(key);
	            }

	            // Shortcuts
	            var hasherBlockSize = hasher.blockSize;
	            var hasherBlockSizeBytes = hasherBlockSize * 4;

	            // Allow arbitrary length keys
	            if (key.sigBytes > hasherBlockSizeBytes) {
	                key = hasher.finalize(key);
	            }

	            // Clamp excess bits
	            key.clamp();

	            // Clone key for inner and outer pads
	            var oKey = this._oKey = key.clone();
	            var iKey = this._iKey = key.clone();

	            // Shortcuts
	            var oKeyWords = oKey.words;
	            var iKeyWords = iKey.words;

	            // XOR keys with pad constants
	            for (var i = 0; i < hasherBlockSize; i++) {
	                oKeyWords[i] ^= 0x5c5c5c5c;
	                iKeyWords[i] ^= 0x36363636;
	            }
	            oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;

	            // Set initial values
	            this.reset();
	        },

	        /**
	         * Resets this HMAC to its initial state.
	         *
	         * @example
	         *
	         *     hmacHasher.reset();
	         */
	        reset: function () {
	            // Shortcut
	            var hasher = this._hasher;

	            // Reset
	            hasher.reset();
	            hasher.update(this._iKey);
	        },

	        /**
	         * Updates this HMAC with a message.
	         *
	         * @param {WordArray|string} messageUpdate The message to append.
	         *
	         * @return {HMAC} This HMAC instance.
	         *
	         * @example
	         *
	         *     hmacHasher.update('message');
	         *     hmacHasher.update(wordArray);
	         */
	        update: function (messageUpdate) {
	            this._hasher.update(messageUpdate);

	            // Chainable
	            return this;
	        },

	        /**
	         * Finalizes the HMAC computation.
	         * Note that the finalize operation is effectively a destructive, read-once operation.
	         *
	         * @param {WordArray|string} messageUpdate (Optional) A final message update.
	         *
	         * @return {WordArray} The HMAC.
	         *
	         * @example
	         *
	         *     var hmac = hmacHasher.finalize();
	         *     var hmac = hmacHasher.finalize('message');
	         *     var hmac = hmacHasher.finalize(wordArray);
	         */
	        finalize: function (messageUpdate) {
	            // Shortcut
	            var hasher = this._hasher;

	            // Compute HMAC
	            var innerHash = hasher.finalize(messageUpdate);
	            hasher.reset();
	            var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));

	            return hmac;
	        }
	    });
	}());


}));

/***/ }),

/***/ 8960:
/***/ (function(module, exports, __webpack_require__) {

;(function (root, factory) {
	if (true) {
		// CommonJS
		module.exports = exports = factory(__webpack_require__(5700));
	}
	else {}
}(this, function (CryptoJS) {

	(function () {
	    // Shortcuts
	    var C = CryptoJS;
	    var C_lib = C.lib;
	    var WordArray = C_lib.WordArray;
	    var Hasher = C_lib.Hasher;
	    var C_algo = C.algo;

	    // Reusable object
	    var W = [];

	    /**
	     * SHA-1 hash algorithm.
	     */
	    var SHA1 = C_algo.SHA1 = Hasher.extend({
	        _doReset: function () {
	            this._hash = new WordArray.init([
	                0x67452301, 0xefcdab89,
	                0x98badcfe, 0x10325476,
	                0xc3d2e1f0
	            ]);
	        },

	        _doProcessBlock: function (M, offset) {
	            // Shortcut
	            var H = this._hash.words;

	            // Working variables
	            var a = H[0];
	            var b = H[1];
	            var c = H[2];
	            var d = H[3];
	            var e = H[4];

	            // Computation
	            for (var i = 0; i < 80; i++) {
	                if (i < 16) {
	                    W[i] = M[offset + i] | 0;
	                } else {
	                    var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];
	                    W[i] = (n << 1) | (n >>> 31);
	                }

	                var t = ((a << 5) | (a >>> 27)) + e + W[i];
	                if (i < 20) {
	                    t += ((b & c) | (~b & d)) + 0x5a827999;
	                } else if (i < 40) {
	                    t += (b ^ c ^ d) + 0x6ed9eba1;
	                } else if (i < 60) {
	                    t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;
	                } else /* if (i < 80) */ {
	                    t += (b ^ c ^ d) - 0x359d3e2a;
	                }

	                e = d;
	                d = c;
	                c = (b << 30) | (b >>> 2);
	                b = a;
	                a = t;
	            }

	            // Intermediate hash value
	            H[0] = (H[0] + a) | 0;
	            H[1] = (H[1] + b) | 0;
	            H[2] = (H[2] + c) | 0;
	            H[3] = (H[3] + d) | 0;
	            H[4] = (H[4] + e) | 0;
	        },

	        _doFinalize: function () {
	            // Shortcuts
	            var data = this._data;
	            var dataWords = data.words;

	            var nBitsTotal = this._nDataBytes * 8;
	            var nBitsLeft = data.sigBytes * 8;

	            // Add padding
	            dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);
	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
	            dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
	            data.sigBytes = dataWords.length * 4;

	            // Hash final blocks
	            this._process();

	            // Return final computed hash
	            return this._hash;
	        },

	        clone: function () {
	            var clone = Hasher.clone.call(this);
	            clone._hash = this._hash.clone();

	            return clone;
	        }
	    });

	    /**
	     * Shortcut function to the hasher's object interface.
	     *
	     * @param {WordArray|string} message The message to hash.
	     *
	     * @return {WordArray} The hash.
	     *
	     * @static
	     *
	     * @example
	     *
	     *     var hash = CryptoJS.SHA1('message');
	     *     var hash = CryptoJS.SHA1(wordArray);
	     */
	    C.SHA1 = Hasher._createHelper(SHA1);

	    /**
	     * Shortcut function to the HMAC's object interface.
	     *
	     * @param {WordArray|string} message The message to hash.
	     * @param {WordArray|string} key The secret key.
	     *
	     * @return {WordArray} The HMAC.
	     *
	     * @static
	     *
	     * @example
	     *
	     *     var hmac = CryptoJS.HmacSHA1(message, key);
	     */
	    C.HmacSHA1 = Hasher._createHmacHelper(SHA1);
	}());


	return CryptoJS.SHA1;

}));

/***/ }),

/***/ 3759:
/***/ ((module) => {

"use strict";


/*
  MIT License http://www.opensource.org/licenses/mit-license.php
  Author Tobias Koppers @sokra
*/
module.exports = function (cssWithMappingToString) {
  var list = []; // return the list of modules as css string

  list.toString = function toString() {
    return this.map(function (item) {
      var content = "";
      var needLayer = typeof item[5] !== "undefined";

      if (item[4]) {
        content += "@supports (".concat(item[4], ") {");
      }

      if (item[2]) {
        content += "@media ".concat(item[2], " {");
      }

      if (needLayer) {
        content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
      }

      content += cssWithMappingToString(item);

      if (needLayer) {
        content += "}";
      }

      if (item[2]) {
        content += "}";
      }

      if (item[4]) {
        content += "}";
      }

      return content;
    }).join("");
  }; // import a list of modules into the list


  list.i = function i(modules, media, dedupe, supports, layer) {
    if (typeof modules === "string") {
      modules = [[null, modules, undefined]];
    }

    var alreadyImportedModules = {};

    if (dedupe) {
      for (var k = 0; k < this.length; k++) {
        var id = this[k][0];

        if (id != null) {
          alreadyImportedModules[id] = true;
        }
      }
    }

    for (var _k = 0; _k < modules.length; _k++) {
      var item = [].concat(modules[_k]);

      if (dedupe && alreadyImportedModules[item[0]]) {
        continue;
      }

      if (typeof layer !== "undefined") {
        if (typeof item[5] === "undefined") {
          item[5] = layer;
        } else {
          item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
          item[5] = layer;
        }
      }

      if (media) {
        if (!item[2]) {
          item[2] = media;
        } else {
          item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
          item[2] = media;
        }
      }

      if (supports) {
        if (!item[4]) {
          item[4] = "".concat(supports);
        } else {
          item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
          item[4] = supports;
        }
      }

      list.push(item);
    }
  };

  return list;
};

/***/ }),

/***/ 3116:
/***/ ((module) => {

"use strict";


module.exports = function (i) {
  return i[1];
};

/***/ }),

/***/ 9052:
/***/ ((module) => {

/*!
 * Determine if an object is a Buffer
 *
 * @author   Feross Aboukhadijeh <https://feross.org>
 * @license  MIT
 */

// The _isBuffer check is for Safari 5-7 support, because it's missing
// Object.prototype.constructor. Remove this eventually
module.exports = function (obj) {
  return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
}

function isBuffer (obj) {
  return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
}

// For Node v0.10 support. Remove this eventually.
function isSlowBuffer (obj) {
  return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
}


/***/ }),

/***/ 5377:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

(function(){
  var crypt = __webpack_require__(6415),
      utf8 = (__webpack_require__(2751).utf8),
      isBuffer = __webpack_require__(9052),
      bin = (__webpack_require__(2751).bin),

  // The core
  md5 = function (message, options) {
    // Convert to byte array
    if (message.constructor == String)
      if (options && options.encoding === 'binary')
        message = bin.stringToBytes(message);
      else
        message = utf8.stringToBytes(message);
    else if (isBuffer(message))
      message = Array.prototype.slice.call(message, 0);
    else if (!Array.isArray(message) && message.constructor !== Uint8Array)
      message = message.toString();
    // else, assume byte array already

    var m = crypt.bytesToWords(message),
        l = message.length * 8,
        a =  1732584193,
        b = -271733879,
        c = -1732584194,
        d =  271733878;

    // Swap endian
    for (var i = 0; i < m.length; i++) {
      m[i] = ((m[i] <<  8) | (m[i] >>> 24)) & 0x00FF00FF |
             ((m[i] << 24) | (m[i] >>>  8)) & 0xFF00FF00;
    }

    // Padding
    m[l >>> 5] |= 0x80 << (l % 32);
    m[(((l + 64) >>> 9) << 4) + 14] = l;

    // Method shortcuts
    var FF = md5._ff,
        GG = md5._gg,
        HH = md5._hh,
        II = md5._ii;

    for (var i = 0; i < m.length; i += 16) {

      var aa = a,
          bb = b,
          cc = c,
          dd = d;

      a = FF(a, b, c, d, m[i+ 0],  7, -680876936);
      d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
      c = FF(c, d, a, b, m[i+ 2], 17,  606105819);
      b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
      a = FF(a, b, c, d, m[i+ 4],  7, -176418897);
      d = FF(d, a, b, c, m[i+ 5], 12,  1200080426);
      c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
      b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
      a = FF(a, b, c, d, m[i+ 8],  7,  1770035416);
      d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
      c = FF(c, d, a, b, m[i+10], 17, -42063);
      b = FF(b, c, d, a, m[i+11], 22, -1990404162);
      a = FF(a, b, c, d, m[i+12],  7,  1804603682);
      d = FF(d, a, b, c, m[i+13], 12, -40341101);
      c = FF(c, d, a, b, m[i+14], 17, -1502002290);
      b = FF(b, c, d, a, m[i+15], 22,  1236535329);

      a = GG(a, b, c, d, m[i+ 1],  5, -165796510);
      d = GG(d, a, b, c, m[i+ 6],  9, -1069501632);
      c = GG(c, d, a, b, m[i+11], 14,  643717713);
      b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
      a = GG(a, b, c, d, m[i+ 5],  5, -701558691);
      d = GG(d, a, b, c, m[i+10],  9,  38016083);
      c = GG(c, d, a, b, m[i+15], 14, -660478335);
      b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
      a = GG(a, b, c, d, m[i+ 9],  5,  568446438);
      d = GG(d, a, b, c, m[i+14],  9, -1019803690);
      c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
      b = GG(b, c, d, a, m[i+ 8], 20,  1163531501);
      a = GG(a, b, c, d, m[i+13],  5, -1444681467);
      d = GG(d, a, b, c, m[i+ 2],  9, -51403784);
      c = GG(c, d, a, b, m[i+ 7], 14,  1735328473);
      b = GG(b, c, d, a, m[i+12], 20, -1926607734);

      a = HH(a, b, c, d, m[i+ 5],  4, -378558);
      d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
      c = HH(c, d, a, b, m[i+11], 16,  1839030562);
      b = HH(b, c, d, a, m[i+14], 23, -35309556);
      a = HH(a, b, c, d, m[i+ 1],  4, -1530992060);
      d = HH(d, a, b, c, m[i+ 4], 11,  1272893353);
      c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
      b = HH(b, c, d, a, m[i+10], 23, -1094730640);
      a = HH(a, b, c, d, m[i+13],  4,  681279174);
      d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
      c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
      b = HH(b, c, d, a, m[i+ 6], 23,  76029189);
      a = HH(a, b, c, d, m[i+ 9],  4, -640364487);
      d = HH(d, a, b, c, m[i+12], 11, -421815835);
      c = HH(c, d, a, b, m[i+15], 16,  530742520);
      b = HH(b, c, d, a, m[i+ 2], 23, -995338651);

      a = II(a, b, c, d, m[i+ 0],  6, -198630844);
      d = II(d, a, b, c, m[i+ 7], 10,  1126891415);
      c = II(c, d, a, b, m[i+14], 15, -1416354905);
      b = II(b, c, d, a, m[i+ 5], 21, -57434055);
      a = II(a, b, c, d, m[i+12],  6,  1700485571);
      d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
      c = II(c, d, a, b, m[i+10], 15, -1051523);
      b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
      a = II(a, b, c, d, m[i+ 8],  6,  1873313359);
      d = II(d, a, b, c, m[i+15], 10, -30611744);
      c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
      b = II(b, c, d, a, m[i+13], 21,  1309151649);
      a = II(a, b, c, d, m[i+ 4],  6, -145523070);
      d = II(d, a, b, c, m[i+11], 10, -1120210379);
      c = II(c, d, a, b, m[i+ 2], 15,  718787259);
      b = II(b, c, d, a, m[i+ 9], 21, -343485551);

      a = (a + aa) >>> 0;
      b = (b + bb) >>> 0;
      c = (c + cc) >>> 0;
      d = (d + dd) >>> 0;
    }

    return crypt.endian([a, b, c, d]);
  };

  // Auxiliary functions
  md5._ff  = function (a, b, c, d, x, s, t) {
    var n = a + (b & c | ~b & d) + (x >>> 0) + t;
    return ((n << s) | (n >>> (32 - s))) + b;
  };
  md5._gg  = function (a, b, c, d, x, s, t) {
    var n = a + (b & d | c & ~d) + (x >>> 0) + t;
    return ((n << s) | (n >>> (32 - s))) + b;
  };
  md5._hh  = function (a, b, c, d, x, s, t) {
    var n = a + (b ^ c ^ d) + (x >>> 0) + t;
    return ((n << s) | (n >>> (32 - s))) + b;
  };
  md5._ii  = function (a, b, c, d, x, s, t) {
    var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
    return ((n << s) | (n >>> (32 - s))) + b;
  };

  // Package private blocksize
  md5._blocksize = 16;
  md5._digestsize = 16;

  module.exports = function (message, options) {
    if (message === undefined || message === null)
      throw new Error('Illegal argument ' + message);

    var digestbytes = crypt.wordsToBytes(md5(message, options));
    return options && options.asBytes ? digestbytes :
        options && options.asString ? bin.bytesToString(digestbytes) :
        crypt.bytesToHex(digestbytes);
  };

})();


/***/ }),

/***/ 3721:
/***/ ((__unused_webpack_module, exports) => {

"use strict";
var __webpack_unused_export__;

__webpack_unused_export__ = ({ value: true });
// runtime helper for setting properties on components
// in a tree-shakable way
exports.Z = (sfc, props) => {
    const target = sfc.__vccOpts || sfc;
    for (const [key, val] of props) {
        target[key] = val;
    }
    return target;
};


/***/ }),

/***/ 8334:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "P": () => (/* binding */ stringify)
/* harmony export */ });
/** fix prototype.js Array.prototype.toJSON pollution */
const stringify = (...args) => {
  const stringyfy = JSON.stringify;
  const arrayToJSON = Array.prototype.toJSON;
  const hasToJSON = ('toJSON' in Array.prototype);

  if (hasToJSON) {
    Array.prototype.toJSON = undefined;
  }

  const result = stringyfy.call(JSON, ...args);

  if (hasToJSON) {
    Array.prototype.toJSON = arrayToJSON;
  }

  return result;
};

/***/ }),

/***/ 2585:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(6040);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("61f6ac54", content, true);

/***/ }),

/***/ 8769:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(1517);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("5984f254", content, true);

/***/ }),

/***/ 3295:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(9615);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("665b75da", content, true);

/***/ }),

/***/ 3959:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(4196);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("5206f8dc", content, true);

/***/ }),

/***/ 5428:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(367);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("4614f998", content, true);

/***/ }),

/***/ 685:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(6641);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("50f72d42", content, true);

/***/ }),

/***/ 4259:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(8529);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("2039f04b", content, true);

/***/ }),

/***/ 5660:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(5071);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("054561c8", content, true);

/***/ }),

/***/ 9346:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(3195);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("79e76bf6", content, true);

/***/ }),

/***/ 993:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(2053);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("170325a2", content, true);

/***/ }),

/***/ 1783:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(4460);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("0b654ebe", content, true);

/***/ }),

/***/ 8375:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(3102);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("16db0e1c", content, true);

/***/ }),

/***/ 9902:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(1464);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("8f53862a", content, true);

/***/ }),

/***/ 5421:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(413);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("532563d0", content, true);

/***/ }),

/***/ 2661:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(9941);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("6ec83bf1", content, true);

/***/ }),

/***/ 881:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(7066);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("0fbc82e6", content, true);

/***/ }),

/***/ 2750:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(8038);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("c645fbea", content, true);

/***/ }),

/***/ 5937:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(1543);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("1fccd0f2", content, true);

/***/ }),

/***/ 9255:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(2942);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("d6778a1e", content, true);

/***/ }),

/***/ 5044:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(6646);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("3b73e02b", content, true);

/***/ }),

/***/ 2708:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(1995);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("9b122c2a", content, true);

/***/ }),

/***/ 7882:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(2015);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("82714740", content, true);

/***/ }),

/***/ 9731:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(269);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("062bc42a", content, true);

/***/ }),

/***/ 6210:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(5698);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("93d1bf68", content, true);

/***/ }),

/***/ 7183:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(1176);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("7f3145e5", content, true);

/***/ }),

/***/ 8122:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(38);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("94adbae6", content, true);

/***/ }),

/***/ 5112:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(876);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("0defba54", content, true);

/***/ }),

/***/ 1855:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(4444);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("20c3cd84", content, true);

/***/ }),

/***/ 6446:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(7772);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("a482810e", content, true);

/***/ }),

/***/ 1853:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(3136);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("4ef719cd", content, true);

/***/ }),

/***/ 6532:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(180);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("4b9b7a83", content, true);

/***/ }),

/***/ 4632:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(7843);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("c86d5502", content, true);

/***/ }),

/***/ 4558:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(370);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("5aa227ca", content, true);

/***/ }),

/***/ 7908:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(9502);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("34844824", content, true);

/***/ }),

/***/ 7981:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(5832);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("1930f0b2", content, true);

/***/ }),

/***/ 3922:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(1392);
if(typeof content === 'string') content = [[module.id, content, '']];
if(content.locals) module.exports = content.locals;
// add the styles to the DOM
var add = (__webpack_require__(5815)/* ["default"] */ .Z)
var update = add("e5463610", content, true);

/***/ }),

/***/ 5815:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "Z": () => (/* binding */ addStylesClient)
});

;// CONCATENATED MODULE: ./utils/vue-style-loader/lib/listToStyles.js
/**
 * Translates the list format produced by css-loader into something
 * easier to manipulate.
 */
function listToStyles(parentId, list) {
  var styles = [];
  var newStyles = {};

  for (var i = 0; i < list.length; i++) {
    var item = list[i];
    var id = item[0];
    var css = item[1];
    var media = item[2];
    var sourceMap = item[3];
    var part = {
      id: parentId + ':' + i,
      css: css,
      media: media,
      sourceMap: sourceMap
    };

    if (!newStyles[id]) {
      styles.push(newStyles[id] = {
        id: id,
        parts: [part]
      });
    } else {
      newStyles[id].parts.push(part);
    }
  }

  return styles;
}
;// CONCATENATED MODULE: ./utils/vue-style-loader/lib/addStylesClient.js
/*
  MIT License http://www.opensource.org/licenses/mit-license.php
  Author Tobias Koppers @sokra
  Modified by Evan You @yyx990803
*/


var hasDocument = typeof document !== 'undefined'

if (typeof DEBUG !== 'undefined' && DEBUG) {
  if (!hasDocument) {
    throw new Error(
    'vue-style-loader cannot be used in a non-browser environment. ' +
    "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment."
  ) }
}

/*
type StyleObject = {
  id: number;
  parts: Array<StyleObjectPart>
}

type StyleObjectPart = {
  css: string;
  media: string;
  sourceMap: ?string
}
*/

var stylesInDom = {/*
  [id: number]: {
    id: number,
    refs: number,
    parts: Array<(obj?: StyleObjectPart) => void>
  }
*/}

// var head = hasDocument && (document.head || document.getElementsByTagName('head')[0])
var head = document.querySelector('.iciba-root').shadowRoot
var singletonElement = null
var singletonCounter = 0
var isProduction = false
var noop = function () {}
var options = null
var ssrIdKey = 'data-vue-ssr-id'

// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
// tags it will allow on a page
var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase())

function addStylesClient (parentId, list, _isProduction, _options) {
  isProduction = _isProduction

  options = _options || {}

  var styles = listToStyles(parentId, list)
  addStylesToDom(styles)

  return function update (newList) {
    var mayRemove = []
    for (var i = 0; i < styles.length; i++) {
      var item = styles[i]
      var domStyle = stylesInDom[item.id]
      domStyle.refs--
      mayRemove.push(domStyle)
    }
    if (newList) {
      styles = listToStyles(parentId, newList)
      addStylesToDom(styles)
    } else {
      styles = []
    }
    for (var i = 0; i < mayRemove.length; i++) {
      var domStyle = mayRemove[i]
      if (domStyle.refs === 0) {
        for (var j = 0; j < domStyle.parts.length; j++) {
          domStyle.parts[j]()
        }
        delete stylesInDom[domStyle.id]
      }
    }
  }
}

function addStylesToDom (styles /* Array<StyleObject> */) {
  for (var i = 0; i < styles.length; i++) {
    var item = styles[i]
    var domStyle = stylesInDom[item.id]
    if (domStyle) {
      domStyle.refs++
      for (var j = 0; j < domStyle.parts.length; j++) {
        domStyle.parts[j](item.parts[j])
      }
      for (; j < item.parts.length; j++) {
        domStyle.parts.push(addStyle(item.parts[j]))
      }
      if (domStyle.parts.length > item.parts.length) {
        domStyle.parts.length = item.parts.length
      }
    } else {
      var parts = []
      for (var j = 0; j < item.parts.length; j++) {
        parts.push(addStyle(item.parts[j]))
      }
      stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }
    }
  }
}

function createStyleElement () {
  var root = options.insertInto ? options.insertInto() : head
  var styleElement = document.createElement('style')
  styleElement.type = 'text/css'
  root.appendChild(styleElement)
  return styleElement
}

function addStyle (obj /* StyleObjectPart */) {
  var update, remove
  var root = options.insertInto ? options.insertInto() : document
  var styleElement = root.querySelector('style[' + ssrIdKey + '~="' + obj.id + '"]')

  if (styleElement) {
    if (isProduction) {
      // has SSR styles and in production mode.
      // simply do nothing.
      return noop
    } else {
      // has SSR styles but in dev mode.
      // for some reason Chrome can't handle source map in server-rendered
      // style tags - source maps in <style> only works if the style tag is
      // created and inserted dynamically. So we remove the server rendered
      // styles and inject new ones.
      styleElement.parentNode.removeChild(styleElement)
    }
  }

  if (isOldIE) {
    // use singleton mode for IE9.
    var styleIndex = singletonCounter++
    styleElement = singletonElement || (singletonElement = createStyleElement())
    update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)
    remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)
  } else {
    // use multi-style-tag mode in all other cases
    styleElement = createStyleElement()
    update = applyToTag.bind(null, styleElement)
    remove = function () {
      styleElement.parentNode.removeChild(styleElement)
    }
  }

  update(obj)

  return function updateStyle (newObj /* StyleObjectPart */) {
    if (newObj) {
      if (newObj.css === obj.css &&
          newObj.media === obj.media &&
          newObj.sourceMap === obj.sourceMap) {
        return
      }
      update(obj = newObj)
    } else {
      remove()
    }
  }
}

var replaceText = (function () {
  var textStore = []

  return function (index, replacement) {
    textStore[index] = replacement
    return textStore.filter(Boolean).join('\n')
  }
})()

function applyToSingletonTag (styleElement, index, remove, obj) {
  var css = remove ? '' : obj.css

  if (styleElement.styleSheet) {
    styleElement.styleSheet.cssText = replaceText(index, css)
  } else {
    var cssNode = document.createTextNode(css)
    var childNodes = styleElement.childNodes
    if (childNodes[index]) styleElement.removeChild(childNodes[index])
    if (childNodes.length) {
      styleElement.insertBefore(cssNode, childNodes[index])
    } else {
      styleElement.appendChild(cssNode)
    }
  }
}

function applyToTag (styleElement, obj) {
  var css = obj.css
  var media = obj.media
  var sourceMap = obj.sourceMap

  if (media) {
    styleElement.setAttribute('media', media)
  }
  if (options.ssrId) {
    styleElement.setAttribute(ssrIdKey, obj.id)
  }

  if (sourceMap) {
    // https://developer.chrome.com/devtools/docs/javascript-debugging
    // this makes source maps inside style tags work properly in Chrome
    css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */'
    // http://stackoverflow.com/a/26603875
    css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'
  }

  if (styleElement.styleSheet) {
    styleElement.styleSheet.cssText = css
  } else {
    while (styleElement.firstChild) {
      styleElement.removeChild(styleElement.firstChild)
    }
    styleElement.appendChild(document.createTextNode(css))
  }
}


/***/ }),

/***/ 2480:
/***/ (() => {

/* (ignored) */

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			id: moduleId,
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/global */
/******/ 	(() => {
/******/ 		__webpack_require__.g = (function() {
/******/ 			if (typeof globalThis === 'object') return globalThis;
/******/ 			try {
/******/ 				return this || new Function('return this')();
/******/ 			} catch (e) {
/******/ 				if (typeof window === 'object') return window;
/******/ 			}
/******/ 		})();
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
(() => {
"use strict";

;// CONCATENATED MODULE: ./src/service/shadowRoot/index.ts
const icibaRoot = document.createElement('div');
icibaRoot.className = 'iciba-root';
icibaRoot.style.all = 'initial';
document.body.append(icibaRoot);
const mo = new MutationObserver(() => {
  if (!document.body.contains(icibaRoot)) {
    document.body.append(icibaRoot);
  }
});
mo.observe(document.body, {
  childList: true
});

const pollingCheck = () => {
  if (!document.body.contains(icibaRoot)) {
    document.body.append(icibaRoot);
  }

  setTimeout(pollingCheck, 500);
};

pollingCheck();
const shadowRoot = (() => {
  let sr;

  if (icibaRoot.attachShadow) {
    sr = icibaRoot.attachShadow({
      mode: 'open'
    });
  } else {
    // shadow dom v0
    // < firefox 59
    // eslint-disable-next-line @typescript-eslint/no-unsafe-call
    sr = icibaRoot.createShadowRoot();
  }

  return sr;
})();
;// CONCATENATED MODULE: ./node_modules/@vue/shared/dist/shared.esm-bundler.js
/**
 * Make a map and return a function for checking if a key
 * is in that map.
 * IMPORTANT: all calls of this function must be prefixed with
 * \/\*#\_\_PURE\_\_\*\/
 * So that rollup can tree-shake them if necessary.
 */
function shared_esm_bundler_makeMap(str, expectsLowerCase) {
    const map = Object.create(null);
    const list = str.split(',');
    for (let i = 0; i < list.length; i++) {
        map[list[i]] = true;
    }
    return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];
}

/**
 * dev only flag -> name mapping
 */
const PatchFlagNames = {
    [1 /* TEXT */]: `TEXT`,
    [2 /* CLASS */]: `CLASS`,
    [4 /* STYLE */]: `STYLE`,
    [8 /* PROPS */]: `PROPS`,
    [16 /* FULL_PROPS */]: `FULL_PROPS`,
    [32 /* HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,
    [64 /* STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,
    [128 /* KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,
    [256 /* UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,
    [512 /* NEED_PATCH */]: `NEED_PATCH`,
    [1024 /* DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,
    [2048 /* DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,
    [-1 /* HOISTED */]: `HOISTED`,
    [-2 /* BAIL */]: `BAIL`
};

/**
 * Dev only
 */
const slotFlagsText = {
    [1 /* STABLE */]: 'STABLE',
    [2 /* DYNAMIC */]: 'DYNAMIC',
    [3 /* FORWARDED */]: 'FORWARDED'
};

const GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +
    'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +
    'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';
const isGloballyWhitelisted = /*#__PURE__*/ shared_esm_bundler_makeMap(GLOBALS_WHITE_LISTED);

const range = 2;
function generateCodeFrame(source, start = 0, end = source.length) {
    // Split the content into individual lines but capture the newline sequence
    // that separated each line. This is important because the actual sequence is
    // needed to properly take into account the full line length for offset
    // comparison
    let lines = source.split(/(\r?\n)/);
    // Separate the lines and newline sequences into separate arrays for easier referencing
    const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);
    lines = lines.filter((_, idx) => idx % 2 === 0);
    let count = 0;
    const res = [];
    for (let i = 0; i < lines.length; i++) {
        count +=
            lines[i].length +
                ((newlineSequences[i] && newlineSequences[i].length) || 0);
        if (count >= start) {
            for (let j = i - range; j <= i + range || end > count; j++) {
                if (j < 0 || j >= lines.length)
                    continue;
                const line = j + 1;
                res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}|  ${lines[j]}`);
                const lineLength = lines[j].length;
                const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;
                if (j === i) {
                    // push underline
                    const pad = start - (count - (lineLength + newLineSeqLength));
                    const length = Math.max(1, end > count ? lineLength - pad : end - start);
                    res.push(`   |  ` + ' '.repeat(pad) + '^'.repeat(length));
                }
                else if (j > i) {
                    if (end > count) {
                        const length = Math.max(Math.min(end - count, lineLength), 1);
                        res.push(`   |  ` + '^'.repeat(length));
                    }
                    count += lineLength + newLineSeqLength;
                }
            }
            break;
        }
    }
    return res.join('\n');
}

/**
 * On the client we only need to offer special cases for boolean attributes that
 * have different names from their corresponding dom properties:
 * - itemscope -> N/A
 * - allowfullscreen -> allowFullscreen
 * - formnovalidate -> formNoValidate
 * - ismap -> isMap
 * - nomodule -> noModule
 * - novalidate -> noValidate
 * - readonly -> readOnly
 */
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
const isSpecialBooleanAttr = /*#__PURE__*/ shared_esm_bundler_makeMap(specialBooleanAttrs);
/**
 * The full list is needed during SSR to produce the correct initial markup.
 */
const isBooleanAttr = /*#__PURE__*/ shared_esm_bundler_makeMap(specialBooleanAttrs +
    `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +
    `loop,open,required,reversed,scoped,seamless,` +
    `checked,muted,multiple,selected`);
/**
 * Boolean attributes should be included if the value is truthy or ''.
 * e.g. `<select multiple>` compiles to `{ multiple: '' }`
 */
function includeBooleanAttr(value) {
    return !!value || value === '';
}
const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/;
const attrValidationCache = {};
function isSSRSafeAttrName(name) {
    if (attrValidationCache.hasOwnProperty(name)) {
        return attrValidationCache[name];
    }
    const isUnsafe = unsafeAttrCharRE.test(name);
    if (isUnsafe) {
        console.error(`unsafe attribute name: ${name}`);
    }
    return (attrValidationCache[name] = !isUnsafe);
}
const propsToAttrMap = {
    acceptCharset: 'accept-charset',
    className: 'class',
    htmlFor: 'for',
    httpEquiv: 'http-equiv'
};
/**
 * CSS properties that accept plain numbers
 */
const isNoUnitNumericStyleProp = /*#__PURE__*/ (/* unused pure expression or super */ null && (shared_esm_bundler_makeMap(`animation-iteration-count,border-image-outset,border-image-slice,` +
    `border-image-width,box-flex,box-flex-group,box-ordinal-group,column-count,` +
    `columns,flex,flex-grow,flex-positive,flex-shrink,flex-negative,flex-order,` +
    `grid-row,grid-row-end,grid-row-span,grid-row-start,grid-column,` +
    `grid-column-end,grid-column-span,grid-column-start,font-weight,line-clamp,` +
    `line-height,opacity,order,orphans,tab-size,widows,z-index,zoom,` +
    // SVG
    `fill-opacity,flood-opacity,stop-opacity,stroke-dasharray,stroke-dashoffset,` +
    `stroke-miterlimit,stroke-opacity,stroke-width`)));
/**
 * Known attributes, this is used for stringification of runtime static nodes
 * so that we don't stringify bindings that cannot be set from HTML.
 * Don't also forget to allow `data-*` and `aria-*`!
 * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
 */
const isKnownHtmlAttr = /*#__PURE__*/ (/* unused pure expression or super */ null && (shared_esm_bundler_makeMap(`accept,accept-charset,accesskey,action,align,allow,alt,async,` +
    `autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,` +
    `border,buffered,capture,challenge,charset,checked,cite,class,code,` +
    `codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,` +
    `coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,` +
    `disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,` +
    `formaction,formenctype,formmethod,formnovalidate,formtarget,headers,` +
    `height,hidden,high,href,hreflang,http-equiv,icon,id,importance,integrity,` +
    `ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,` +
    `manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,` +
    `open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,` +
    `referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,` +
    `selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,` +
    `start,step,style,summary,tabindex,target,title,translate,type,usemap,` +
    `value,width,wrap`)));
/**
 * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
 */
const isKnownSvgAttr = /*#__PURE__*/ (/* unused pure expression or super */ null && (shared_esm_bundler_makeMap(`xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,` +
    `arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,` +
    `baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,` +
    `clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,` +
    `color-interpolation-filters,color-profile,color-rendering,` +
    `contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,` +
    `descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,` +
    `dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,` +
    `fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,` +
    `font-family,font-size,font-size-adjust,font-stretch,font-style,` +
    `font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,` +
    `glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,` +
    `gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,` +
    `horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,` +
    `k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,` +
    `lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,` +
    `marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,` +
    `mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,` +
    `name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,` +
    `overflow,overline-position,overline-thickness,panose-1,paint-order,path,` +
    `pathLength,patternContentUnits,patternTransform,patternUnits,ping,` +
    `pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,` +
    `preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,` +
    `rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,` +
    `restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,` +
    `specularConstant,specularExponent,speed,spreadMethod,startOffset,` +
    `stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,` +
    `strikethrough-position,strikethrough-thickness,string,stroke,` +
    `stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,` +
    `stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,` +
    `systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,` +
    `text-decoration,text-rendering,textLength,to,transform,transform-origin,` +
    `type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,` +
    `unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,` +
    `v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,` +
    `vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,` +
    `writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,` +
    `xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,` +
    `xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`)));

function normalizeStyle(value) {
    if (shared_esm_bundler_isArray(value)) {
        const res = {};
        for (let i = 0; i < value.length; i++) {
            const item = value[i];
            const normalized = shared_esm_bundler_isString(item)
                ? parseStringStyle(item)
                : normalizeStyle(item);
            if (normalized) {
                for (const key in normalized) {
                    res[key] = normalized[key];
                }
            }
        }
        return res;
    }
    else if (shared_esm_bundler_isString(value)) {
        return value;
    }
    else if (shared_esm_bundler_isObject(value)) {
        return value;
    }
}
const listDelimiterRE = /;(?![^(]*\))/g;
const propertyDelimiterRE = /:(.+)/;
function parseStringStyle(cssText) {
    const ret = {};
    cssText.split(listDelimiterRE).forEach(item => {
        if (item) {
            const tmp = item.split(propertyDelimiterRE);
            tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
        }
    });
    return ret;
}
function stringifyStyle(styles) {
    let ret = '';
    if (!styles || shared_esm_bundler_isString(styles)) {
        return ret;
    }
    for (const key in styles) {
        const value = styles[key];
        const normalizedKey = key.startsWith(`--`) ? key : shared_esm_bundler_hyphenate(key);
        if (shared_esm_bundler_isString(value) ||
            (typeof value === 'number' && isNoUnitNumericStyleProp(normalizedKey))) {
            // only render valid values
            ret += `${normalizedKey}:${value};`;
        }
    }
    return ret;
}
function normalizeClass(value) {
    let res = '';
    if (shared_esm_bundler_isString(value)) {
        res = value;
    }
    else if (shared_esm_bundler_isArray(value)) {
        for (let i = 0; i < value.length; i++) {
            const normalized = normalizeClass(value[i]);
            if (normalized) {
                res += normalized + ' ';
            }
        }
    }
    else if (shared_esm_bundler_isObject(value)) {
        for (const name in value) {
            if (value[name]) {
                res += name + ' ';
            }
        }
    }
    return res.trim();
}
function normalizeProps(props) {
    if (!props)
        return null;
    let { class: klass, style } = props;
    if (klass && !shared_esm_bundler_isString(klass)) {
        props.class = normalizeClass(klass);
    }
    if (style) {
        props.style = normalizeStyle(style);
    }
    return props;
}

// These tag configs are shared between compiler-dom and runtime-dom, so they
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element
const HTML_TAGS = (/* unused pure expression or super */ null && ('html,body,base,head,link,meta,style,title,address,article,aside,footer,' +
    'header,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' +
    'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' +
    'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' +
    'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' +
    'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' +
    'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' +
    'option,output,progress,select,textarea,details,dialog,menu,' +
    'summary,template,blockquote,iframe,tfoot'));
// https://developer.mozilla.org/en-US/docs/Web/SVG/Element
const SVG_TAGS = (/* unused pure expression or super */ null && ('svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' +
    'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' +
    'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' +
    'feDistanceLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' +
    'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' +
    'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' +
    'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' +
    'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' +
    'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' +
    'text,textPath,title,tspan,unknown,use,view'));
const VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr';
/**
 * Compiler only.
 * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.
 */
const shared_esm_bundler_isHTMLTag = /*#__PURE__*/ (/* unused pure expression or super */ null && (shared_esm_bundler_makeMap(HTML_TAGS)));
/**
 * Compiler only.
 * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.
 */
const shared_esm_bundler_isSVGTag = /*#__PURE__*/ (/* unused pure expression or super */ null && (shared_esm_bundler_makeMap(SVG_TAGS)));
/**
 * Compiler only.
 * Do NOT use in runtime code paths unless behind `(process.env.NODE_ENV !== 'production')` flag.
 */
const isVoidTag = /*#__PURE__*/ (/* unused pure expression or super */ null && (shared_esm_bundler_makeMap(VOID_TAGS)));

const escapeRE = /["'&<>]/;
function escapeHtml(string) {
    const str = '' + string;
    const match = escapeRE.exec(str);
    if (!match) {
        return str;
    }
    let html = '';
    let escaped;
    let index;
    let lastIndex = 0;
    for (index = match.index; index < str.length; index++) {
        switch (str.charCodeAt(index)) {
            case 34: // "
                escaped = '&quot;';
                break;
            case 38: // &
                escaped = '&amp;';
                break;
            case 39: // '
                escaped = '&#39;';
                break;
            case 60: // <
                escaped = '&lt;';
                break;
            case 62: // >
                escaped = '&gt;';
                break;
            default:
                continue;
        }
        if (lastIndex !== index) {
            html += str.slice(lastIndex, index);
        }
        lastIndex = index + 1;
        html += escaped;
    }
    return lastIndex !== index ? html + str.slice(lastIndex, index) : html;
}
// https://www.w3.org/TR/html52/syntax.html#comments
const commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;
function escapeHtmlComment(src) {
    return src.replace(commentStripRE, '');
}

function looseCompareArrays(a, b) {
    if (a.length !== b.length)
        return false;
    let equal = true;
    for (let i = 0; equal && i < a.length; i++) {
        equal = shared_esm_bundler_looseEqual(a[i], b[i]);
    }
    return equal;
}
function shared_esm_bundler_looseEqual(a, b) {
    if (a === b)
        return true;
    let aValidType = isDate(a);
    let bValidType = isDate(b);
    if (aValidType || bValidType) {
        return aValidType && bValidType ? a.getTime() === b.getTime() : false;
    }
    aValidType = shared_esm_bundler_isArray(a);
    bValidType = shared_esm_bundler_isArray(b);
    if (aValidType || bValidType) {
        return aValidType && bValidType ? looseCompareArrays(a, b) : false;
    }
    aValidType = shared_esm_bundler_isObject(a);
    bValidType = shared_esm_bundler_isObject(b);
    if (aValidType || bValidType) {
        /* istanbul ignore if: this if will probably never be called */
        if (!aValidType || !bValidType) {
            return false;
        }
        const aKeysCount = Object.keys(a).length;
        const bKeysCount = Object.keys(b).length;
        if (aKeysCount !== bKeysCount) {
            return false;
        }
        for (const key in a) {
            const aHasKey = a.hasOwnProperty(key);
            const bHasKey = b.hasOwnProperty(key);
            if ((aHasKey && !bHasKey) ||
                (!aHasKey && bHasKey) ||
                !shared_esm_bundler_looseEqual(a[key], b[key])) {
                return false;
            }
        }
    }
    return String(a) === String(b);
}
function shared_esm_bundler_looseIndexOf(arr, val) {
    return arr.findIndex(item => shared_esm_bundler_looseEqual(item, val));
}

/**
 * For converting {{ interpolation }} values to displayed strings.
 * @private
 */
const toDisplayString = (val) => {
    return shared_esm_bundler_isString(val)
        ? val
        : val == null
            ? ''
            : shared_esm_bundler_isArray(val) ||
                (shared_esm_bundler_isObject(val) &&
                    (val.toString === objectToString || !shared_esm_bundler_isFunction(val.toString)))
                ? (__webpack_require__(8334)/* .stringify */ .P)(val, replacer, 2)
                : String(val);
};
const replacer = (_key, val) => {
    // can't use isRef here since @vue/shared has no deps
    if (val && val.__v_isRef) {
        return replacer(_key, val.value);
    }
    else if (isMap(val)) {
        return {
            [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val]) => {
                entries[`${key} =>`] = val;
                return entries;
            }, {})
        };
    }
    else if (shared_esm_bundler_isSet(val)) {
        return {
            [`Set(${val.size})`]: [...val.values()]
        };
    }
    else if (shared_esm_bundler_isObject(val) && !shared_esm_bundler_isArray(val) && !isPlainObject(val)) {
        return String(val);
    }
    return val;
};

const shared_esm_bundler_EMPTY_OBJ = ( false)
    ? 0
    : {};
const EMPTY_ARR = ( false) ? 0 : [];
const shared_esm_bundler_NOOP = () => { };
/**
 * Always return false.
 */
const shared_esm_bundler_NO = () => false;
const onRE = /^on[^a-z]/;
const shared_esm_bundler_isOn = (key) => onRE.test(key);
const isModelListener = (key) => key.startsWith('onUpdate:');
const shared_esm_bundler_extend = Object.assign;
const shared_esm_bundler_remove = (arr, el) => {
    const i = arr.indexOf(el);
    if (i > -1) {
        arr.splice(i, 1);
    }
};
const shared_esm_bundler_hasOwnProperty = Object.prototype.hasOwnProperty;
const shared_esm_bundler_hasOwn = (val, key) => shared_esm_bundler_hasOwnProperty.call(val, key);
const shared_esm_bundler_isArray = Array.isArray;
const isMap = (val) => toTypeString(val) === '[object Map]';
const shared_esm_bundler_isSet = (val) => toTypeString(val) === '[object Set]';
const isDate = (val) => val instanceof Date;
const shared_esm_bundler_isFunction = (val) => typeof val === 'function';
const shared_esm_bundler_isString = (val) => typeof val === 'string';
const isSymbol = (val) => typeof val === 'symbol';
const shared_esm_bundler_isObject = (val) => val !== null && typeof val === 'object';
const shared_esm_bundler_isPromise = (val) => {
    return shared_esm_bundler_isObject(val) && shared_esm_bundler_isFunction(val.then) && shared_esm_bundler_isFunction(val.catch);
};
const objectToString = Object.prototype.toString;
const toTypeString = (value) => objectToString.call(value);
const shared_esm_bundler_toRawType = (value) => {
    // extract "RawType" from strings like "[object RawType]"
    return toTypeString(value).slice(8, -1);
};
const isPlainObject = (val) => toTypeString(val) === '[object Object]';
const isIntegerKey = (key) => shared_esm_bundler_isString(key) &&
    key !== 'NaN' &&
    key[0] !== '-' &&
    '' + parseInt(key, 10) === key;
const shared_esm_bundler_isReservedProp = /*#__PURE__*/ shared_esm_bundler_makeMap(
// the leading comma is intentional so empty string "" is also included
',key,ref,ref_for,ref_key,' +
    'onVnodeBeforeMount,onVnodeMounted,' +
    'onVnodeBeforeUpdate,onVnodeUpdated,' +
    'onVnodeBeforeUnmount,onVnodeUnmounted');
const shared_esm_bundler_isBuiltInDirective = /*#__PURE__*/ (/* unused pure expression or super */ null && (shared_esm_bundler_makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo')));
const cacheStringFunction = (fn) => {
    const cache = Object.create(null);
    return ((str) => {
        const hit = cache[str];
        return hit || (cache[str] = fn(str));
    });
};
const camelizeRE = /-(\w)/g;
/**
 * @private
 */
const camelize = cacheStringFunction((str) => {
    return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));
});
const hyphenateRE = /\B([A-Z])/g;
/**
 * @private
 */
const shared_esm_bundler_hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, '-$1').toLowerCase());
/**
 * @private
 */
const shared_esm_bundler_capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));
/**
 * @private
 */
const shared_esm_bundler_toHandlerKey = cacheStringFunction((str) => str ? `on${shared_esm_bundler_capitalize(str)}` : ``);
// compare whether a value has changed, accounting for NaN.
const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
const invokeArrayFns = (fns, arg) => {
    for (let i = 0; i < fns.length; i++) {
        fns[i](arg);
    }
};
const def = (obj, key, value) => {
    Object.defineProperty(obj, key, {
        configurable: true,
        enumerable: false,
        value
    });
};
const shared_esm_bundler_toNumber = (val) => {
    const n = parseFloat(val);
    return isNaN(n) ? val : n;
};
let _globalThis;
const getGlobalThis = () => {
    return (_globalThis ||
        (_globalThis =
            typeof globalThis !== 'undefined'
                ? globalThis
                : typeof self !== 'undefined'
                    ? self
                    : typeof window !== 'undefined'
                        ? window
                        : typeof __webpack_require__.g !== 'undefined'
                            ? __webpack_require__.g
                            : {}));
};



;// CONCATENATED MODULE: ./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js


function reactivity_esm_bundler_warn(msg, ...args) {
    console.warn(`[Vue warn] ${msg}`, ...args);
}

let activeEffectScope;
class EffectScope {
    constructor(detached = false) {
        this.active = true;
        this.effects = [];
        this.cleanups = [];
        if (!detached && activeEffectScope) {
            this.parent = activeEffectScope;
            this.index =
                (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;
        }
    }
    run(fn) {
        if (this.active) {
            try {
                activeEffectScope = this;
                return fn();
            }
            finally {
                activeEffectScope = this.parent;
            }
        }
        else if ((false)) {}
    }
    on() {
        activeEffectScope = this;
    }
    off() {
        activeEffectScope = this.parent;
    }
    stop(fromParent) {
        if (this.active) {
            let i, l;
            for (i = 0, l = this.effects.length; i < l; i++) {
                this.effects[i].stop();
            }
            for (i = 0, l = this.cleanups.length; i < l; i++) {
                this.cleanups[i]();
            }
            if (this.scopes) {
                for (i = 0, l = this.scopes.length; i < l; i++) {
                    this.scopes[i].stop(true);
                }
            }
            // nested scope, dereference from parent to avoid memory leaks
            if (this.parent && !fromParent) {
                // optimized O(1) removal
                const last = this.parent.scopes.pop();
                if (last && last !== this) {
                    this.parent.scopes[this.index] = last;
                    last.index = this.index;
                }
            }
            this.active = false;
        }
    }
}
function effectScope(detached) {
    return new EffectScope(detached);
}
function recordEffectScope(effect, scope = activeEffectScope) {
    if (scope && scope.active) {
        scope.effects.push(effect);
    }
}
function getCurrentScope() {
    return activeEffectScope;
}
function onScopeDispose(fn) {
    if (activeEffectScope) {
        activeEffectScope.cleanups.push(fn);
    }
    else if ((false)) {}
}

const createDep = (effects) => {
    const dep = new Set(effects);
    dep.w = 0;
    dep.n = 0;
    return dep;
};
const wasTracked = (dep) => (dep.w & trackOpBit) > 0;
const newTracked = (dep) => (dep.n & trackOpBit) > 0;
const initDepMarkers = ({ deps }) => {
    if (deps.length) {
        for (let i = 0; i < deps.length; i++) {
            deps[i].w |= trackOpBit; // set was tracked
        }
    }
};
const finalizeDepMarkers = (effect) => {
    const { deps } = effect;
    if (deps.length) {
        let ptr = 0;
        for (let i = 0; i < deps.length; i++) {
            const dep = deps[i];
            if (wasTracked(dep) && !newTracked(dep)) {
                dep.delete(effect);
            }
            else {
                deps[ptr++] = dep;
            }
            // clear bits
            dep.w &= ~trackOpBit;
            dep.n &= ~trackOpBit;
        }
        deps.length = ptr;
    }
};

const targetMap = new WeakMap();
// The number of effects currently being tracked recursively.
let effectTrackDepth = 0;
let trackOpBit = 1;
/**
 * The bitwise track markers support at most 30 levels of recursion.
 * This value is chosen to enable modern JS engines to use a SMI on all platforms.
 * When recursion depth is greater, fall back to using a full cleanup.
 */
const maxMarkerBits = 30;
let activeEffect;
const ITERATE_KEY = Symbol(( false) ? 0 : '');
const MAP_KEY_ITERATE_KEY = Symbol(( false) ? 0 : '');
class ReactiveEffect {
    constructor(fn, scheduler = null, scope) {
        this.fn = fn;
        this.scheduler = scheduler;
        this.active = true;
        this.deps = [];
        this.parent = undefined;
        recordEffectScope(this, scope);
    }
    run() {
        if (!this.active) {
            return this.fn();
        }
        let parent = activeEffect;
        let lastShouldTrack = shouldTrack;
        while (parent) {
            if (parent === this) {
                return;
            }
            parent = parent.parent;
        }
        try {
            this.parent = activeEffect;
            activeEffect = this;
            shouldTrack = true;
            trackOpBit = 1 << ++effectTrackDepth;
            if (effectTrackDepth <= maxMarkerBits) {
                initDepMarkers(this);
            }
            else {
                cleanupEffect(this);
            }
            return this.fn();
        }
        finally {
            if (effectTrackDepth <= maxMarkerBits) {
                finalizeDepMarkers(this);
            }
            trackOpBit = 1 << --effectTrackDepth;
            activeEffect = this.parent;
            shouldTrack = lastShouldTrack;
            this.parent = undefined;
        }
    }
    stop() {
        if (this.active) {
            cleanupEffect(this);
            if (this.onStop) {
                this.onStop();
            }
            this.active = false;
        }
    }
}
function cleanupEffect(effect) {
    const { deps } = effect;
    if (deps.length) {
        for (let i = 0; i < deps.length; i++) {
            deps[i].delete(effect);
        }
        deps.length = 0;
    }
}
function effect(fn, options) {
    if (fn.effect) {
        fn = fn.effect.fn;
    }
    const _effect = new ReactiveEffect(fn);
    if (options) {
        extend(_effect, options);
        if (options.scope)
            recordEffectScope(_effect, options.scope);
    }
    if (!options || !options.lazy) {
        _effect.run();
    }
    const runner = _effect.run.bind(_effect);
    runner.effect = _effect;
    return runner;
}
function stop(runner) {
    runner.effect.stop();
}
let shouldTrack = true;
const trackStack = [];
function pauseTracking() {
    trackStack.push(shouldTrack);
    shouldTrack = false;
}
function enableTracking() {
    trackStack.push(shouldTrack);
    shouldTrack = true;
}
function resetTracking() {
    const last = trackStack.pop();
    shouldTrack = last === undefined ? true : last;
}
function track(target, type, key) {
    if (shouldTrack && activeEffect) {
        let depsMap = targetMap.get(target);
        if (!depsMap) {
            targetMap.set(target, (depsMap = new Map()));
        }
        let dep = depsMap.get(key);
        if (!dep) {
            depsMap.set(key, (dep = createDep()));
        }
        const eventInfo = ( false)
            ? 0
            : undefined;
        trackEffects(dep, eventInfo);
    }
}
function trackEffects(dep, debuggerEventExtraInfo) {
    let shouldTrack = false;
    if (effectTrackDepth <= maxMarkerBits) {
        if (!newTracked(dep)) {
            dep.n |= trackOpBit; // set newly tracked
            shouldTrack = !wasTracked(dep);
        }
    }
    else {
        // Full cleanup mode.
        shouldTrack = !dep.has(activeEffect);
    }
    if (shouldTrack) {
        dep.add(activeEffect);
        activeEffect.deps.push(dep);
        if (false) {}
    }
}
function trigger(target, type, key, newValue, oldValue, oldTarget) {
    const depsMap = targetMap.get(target);
    if (!depsMap) {
        // never been tracked
        return;
    }
    let deps = [];
    if (type === "clear" /* CLEAR */) {
        // collection being cleared
        // trigger all effects for target
        deps = [...depsMap.values()];
    }
    else if (key === 'length' && shared_esm_bundler_isArray(target)) {
        depsMap.forEach((dep, key) => {
            if (key === 'length' || key >= newValue) {
                deps.push(dep);
            }
        });
    }
    else {
        // schedule runs for SET | ADD | DELETE
        if (key !== void 0) {
            deps.push(depsMap.get(key));
        }
        // also run for iteration key on ADD | DELETE | Map.SET
        switch (type) {
            case "add" /* ADD */:
                if (!shared_esm_bundler_isArray(target)) {
                    deps.push(depsMap.get(ITERATE_KEY));
                    if (isMap(target)) {
                        deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));
                    }
                }
                else if (isIntegerKey(key)) {
                    // new index added to array -> length changes
                    deps.push(depsMap.get('length'));
                }
                break;
            case "delete" /* DELETE */:
                if (!shared_esm_bundler_isArray(target)) {
                    deps.push(depsMap.get(ITERATE_KEY));
                    if (isMap(target)) {
                        deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));
                    }
                }
                break;
            case "set" /* SET */:
                if (isMap(target)) {
                    deps.push(depsMap.get(ITERATE_KEY));
                }
                break;
        }
    }
    const eventInfo = ( false)
        ? 0
        : undefined;
    if (deps.length === 1) {
        if (deps[0]) {
            if ((false)) {}
            else {
                triggerEffects(deps[0]);
            }
        }
    }
    else {
        const effects = [];
        for (const dep of deps) {
            if (dep) {
                effects.push(...dep);
            }
        }
        if ((false)) {}
        else {
            triggerEffects(createDep(effects));
        }
    }
}
function triggerEffects(dep, debuggerEventExtraInfo) {
    // spread into array for stabilization
    for (const effect of shared_esm_bundler_isArray(dep) ? dep : [...dep]) {
        if (effect !== activeEffect || effect.allowRecurse) {
            if (false) {}
            if (effect.scheduler) {
                effect.scheduler();
            }
            else {
                effect.run();
            }
        }
    }
}

const isNonTrackableKeys = /*#__PURE__*/ shared_esm_bundler_makeMap(`__proto__,__v_isRef,__isVue`);
const builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol)
    .map(key => Symbol[key])
    .filter(isSymbol));
const get = /*#__PURE__*/ createGetter();
const shallowGet = /*#__PURE__*/ createGetter(false, true);
const readonlyGet = /*#__PURE__*/ createGetter(true);
const shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);
const arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();
function createArrayInstrumentations() {
    const instrumentations = {};
    ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {
        instrumentations[key] = function (...args) {
            const arr = reactivity_esm_bundler_toRaw(this);
            for (let i = 0, l = this.length; i < l; i++) {
                track(arr, "get" /* GET */, i + '');
            }
            // we run the method using the original args first (which may be reactive)
            const res = arr[key](...args);
            if (res === -1 || res === false) {
                // if that didn't work, run it again using raw values.
                return arr[key](...args.map(reactivity_esm_bundler_toRaw));
            }
            else {
                return res;
            }
        };
    });
    ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {
        instrumentations[key] = function (...args) {
            pauseTracking();
            const res = reactivity_esm_bundler_toRaw(this)[key].apply(this, args);
            resetTracking();
            return res;
        };
    });
    return instrumentations;
}
function createGetter(isReadonly = false, shallow = false) {
    return function get(target, key, receiver) {
        if (key === "__v_isReactive" /* IS_REACTIVE */) {
            return !isReadonly;
        }
        else if (key === "__v_isReadonly" /* IS_READONLY */) {
            return isReadonly;
        }
        else if (key === "__v_isShallow" /* IS_SHALLOW */) {
            return shallow;
        }
        else if (key === "__v_raw" /* RAW */ &&
            receiver ===
                (isReadonly
                    ? shallow
                        ? shallowReadonlyMap
                        : readonlyMap
                    : shallow
                        ? shallowReactiveMap
                        : reactiveMap).get(target)) {
            return target;
        }
        const targetIsArray = shared_esm_bundler_isArray(target);
        if (!isReadonly && targetIsArray && shared_esm_bundler_hasOwn(arrayInstrumentations, key)) {
            return Reflect.get(arrayInstrumentations, key, receiver);
        }
        const res = Reflect.get(target, key, receiver);
        if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {
            return res;
        }
        if (!isReadonly) {
            track(target, "get" /* GET */, key);
        }
        if (shallow) {
            return res;
        }
        if (reactivity_esm_bundler_isRef(res)) {
            // ref unwrapping - does not apply for Array + integer key.
            const shouldUnwrap = !targetIsArray || !isIntegerKey(key);
            return shouldUnwrap ? res.value : res;
        }
        if (shared_esm_bundler_isObject(res)) {
            // Convert returned value into a proxy as well. we do the isObject check
            // here to avoid invalid value warning. Also need to lazy access readonly
            // and reactive here to avoid circular dependency.
            return isReadonly ? readonly(res) : reactivity_esm_bundler_reactive(res);
        }
        return res;
    };
}
const set = /*#__PURE__*/ createSetter();
const shallowSet = /*#__PURE__*/ createSetter(true);
function createSetter(shallow = false) {
    return function set(target, key, value, receiver) {
        let oldValue = target[key];
        if (reactivity_esm_bundler_isReadonly(oldValue) && reactivity_esm_bundler_isRef(oldValue) && !reactivity_esm_bundler_isRef(value)) {
            return false;
        }
        if (!shallow && !reactivity_esm_bundler_isReadonly(value)) {
            if (!isShallow(value)) {
                value = reactivity_esm_bundler_toRaw(value);
                oldValue = reactivity_esm_bundler_toRaw(oldValue);
            }
            if (!shared_esm_bundler_isArray(target) && reactivity_esm_bundler_isRef(oldValue) && !reactivity_esm_bundler_isRef(value)) {
                oldValue.value = value;
                return true;
            }
        }
        const hadKey = shared_esm_bundler_isArray(target) && isIntegerKey(key)
            ? Number(key) < target.length
            : shared_esm_bundler_hasOwn(target, key);
        const result = Reflect.set(target, key, value, receiver);
        // don't trigger if target is something up in the prototype chain of original
        if (target === reactivity_esm_bundler_toRaw(receiver)) {
            if (!hadKey) {
                trigger(target, "add" /* ADD */, key, value);
            }
            else if (hasChanged(value, oldValue)) {
                trigger(target, "set" /* SET */, key, value, oldValue);
            }
        }
        return result;
    };
}
function deleteProperty(target, key) {
    const hadKey = shared_esm_bundler_hasOwn(target, key);
    const oldValue = target[key];
    const result = Reflect.deleteProperty(target, key);
    if (result && hadKey) {
        trigger(target, "delete" /* DELETE */, key, undefined, oldValue);
    }
    return result;
}
function has(target, key) {
    const result = Reflect.has(target, key);
    if (!isSymbol(key) || !builtInSymbols.has(key)) {
        track(target, "has" /* HAS */, key);
    }
    return result;
}
function ownKeys(target) {
    track(target, "iterate" /* ITERATE */, shared_esm_bundler_isArray(target) ? 'length' : ITERATE_KEY);
    return Reflect.ownKeys(target);
}
const mutableHandlers = {
    get,
    set,
    deleteProperty,
    has,
    ownKeys
};
const readonlyHandlers = {
    get: readonlyGet,
    set(target, key) {
        if ((false)) {}
        return true;
    },
    deleteProperty(target, key) {
        if ((false)) {}
        return true;
    }
};
const shallowReactiveHandlers = /*#__PURE__*/ shared_esm_bundler_extend({}, mutableHandlers, {
    get: shallowGet,
    set: shallowSet
});
// Props handlers are special in the sense that it should not unwrap top-level
// refs (in order to allow refs to be explicitly passed down), but should
// retain the reactivity of the normal readonly object.
const shallowReadonlyHandlers = /*#__PURE__*/ shared_esm_bundler_extend({}, readonlyHandlers, {
    get: shallowReadonlyGet
});

const toShallow = (value) => value;
const getProto = (v) => Reflect.getPrototypeOf(v);
function get$1(target, key, isReadonly = false, isShallow = false) {
    // #1772: readonly(reactive(Map)) should return readonly + reactive version
    // of the value
    target = target["__v_raw" /* RAW */];
    const rawTarget = reactivity_esm_bundler_toRaw(target);
    const rawKey = reactivity_esm_bundler_toRaw(key);
    if (key !== rawKey) {
        !isReadonly && track(rawTarget, "get" /* GET */, key);
    }
    !isReadonly && track(rawTarget, "get" /* GET */, rawKey);
    const { has } = getProto(rawTarget);
    const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
    if (has.call(rawTarget, key)) {
        return wrap(target.get(key));
    }
    else if (has.call(rawTarget, rawKey)) {
        return wrap(target.get(rawKey));
    }
    else if (target !== rawTarget) {
        // #3602 readonly(reactive(Map))
        // ensure that the nested reactive `Map` can do tracking for itself
        target.get(key);
    }
}
function has$1(key, isReadonly = false) {
    const target = this["__v_raw" /* RAW */];
    const rawTarget = reactivity_esm_bundler_toRaw(target);
    const rawKey = reactivity_esm_bundler_toRaw(key);
    if (key !== rawKey) {
        !isReadonly && track(rawTarget, "has" /* HAS */, key);
    }
    !isReadonly && track(rawTarget, "has" /* HAS */, rawKey);
    return key === rawKey
        ? target.has(key)
        : target.has(key) || target.has(rawKey);
}
function size(target, isReadonly = false) {
    target = target["__v_raw" /* RAW */];
    !isReadonly && track(reactivity_esm_bundler_toRaw(target), "iterate" /* ITERATE */, ITERATE_KEY);
    return Reflect.get(target, 'size', target);
}
function add(value) {
    value = reactivity_esm_bundler_toRaw(value);
    const target = reactivity_esm_bundler_toRaw(this);
    const proto = getProto(target);
    const hadKey = proto.has.call(target, value);
    if (!hadKey) {
        target.add(value);
        trigger(target, "add" /* ADD */, value, value);
    }
    return this;
}
function set$1(key, value) {
    value = reactivity_esm_bundler_toRaw(value);
    const target = reactivity_esm_bundler_toRaw(this);
    const { has, get } = getProto(target);
    let hadKey = has.call(target, key);
    if (!hadKey) {
        key = reactivity_esm_bundler_toRaw(key);
        hadKey = has.call(target, key);
    }
    else if ((false)) {}
    const oldValue = get.call(target, key);
    target.set(key, value);
    if (!hadKey) {
        trigger(target, "add" /* ADD */, key, value);
    }
    else if (hasChanged(value, oldValue)) {
        trigger(target, "set" /* SET */, key, value, oldValue);
    }
    return this;
}
function deleteEntry(key) {
    const target = reactivity_esm_bundler_toRaw(this);
    const { has, get } = getProto(target);
    let hadKey = has.call(target, key);
    if (!hadKey) {
        key = reactivity_esm_bundler_toRaw(key);
        hadKey = has.call(target, key);
    }
    else if ((false)) {}
    const oldValue = get ? get.call(target, key) : undefined;
    // forward the operation before queueing reactions
    const result = target.delete(key);
    if (hadKey) {
        trigger(target, "delete" /* DELETE */, key, undefined, oldValue);
    }
    return result;
}
function clear() {
    const target = reactivity_esm_bundler_toRaw(this);
    const hadItems = target.size !== 0;
    const oldTarget = ( false)
        ? 0
        : undefined;
    // forward the operation before queueing reactions
    const result = target.clear();
    if (hadItems) {
        trigger(target, "clear" /* CLEAR */, undefined, undefined, oldTarget);
    }
    return result;
}
function createForEach(isReadonly, isShallow) {
    return function forEach(callback, thisArg) {
        const observed = this;
        const target = observed["__v_raw" /* RAW */];
        const rawTarget = reactivity_esm_bundler_toRaw(target);
        const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
        !isReadonly && track(rawTarget, "iterate" /* ITERATE */, ITERATE_KEY);
        return target.forEach((value, key) => {
            // important: make sure the callback is
            // 1. invoked with the reactive map as `this` and 3rd arg
            // 2. the value received should be a corresponding reactive/readonly.
            return callback.call(thisArg, wrap(value), wrap(key), observed);
        });
    };
}
function createIterableMethod(method, isReadonly, isShallow) {
    return function (...args) {
        const target = this["__v_raw" /* RAW */];
        const rawTarget = reactivity_esm_bundler_toRaw(target);
        const targetIsMap = isMap(rawTarget);
        const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);
        const isKeyOnly = method === 'keys' && targetIsMap;
        const innerIterator = target[method](...args);
        const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;
        !isReadonly &&
            track(rawTarget, "iterate" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);
        // return a wrapped iterator which returns observed versions of the
        // values emitted from the real iterator
        return {
            // iterator protocol
            next() {
                const { value, done } = innerIterator.next();
                return done
                    ? { value, done }
                    : {
                        value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),
                        done
                    };
            },
            // iterable protocol
            [Symbol.iterator]() {
                return this;
            }
        };
    };
}
function createReadonlyMethod(type) {
    return function (...args) {
        if ((false)) {}
        return type === "delete" /* DELETE */ ? false : this;
    };
}
function createInstrumentations() {
    const mutableInstrumentations = {
        get(key) {
            return get$1(this, key);
        },
        get size() {
            return size(this);
        },
        has: has$1,
        add,
        set: set$1,
        delete: deleteEntry,
        clear,
        forEach: createForEach(false, false)
    };
    const shallowInstrumentations = {
        get(key) {
            return get$1(this, key, false, true);
        },
        get size() {
            return size(this);
        },
        has: has$1,
        add,
        set: set$1,
        delete: deleteEntry,
        clear,
        forEach: createForEach(false, true)
    };
    const readonlyInstrumentations = {
        get(key) {
            return get$1(this, key, true);
        },
        get size() {
            return size(this, true);
        },
        has(key) {
            return has$1.call(this, key, true);
        },
        add: createReadonlyMethod("add" /* ADD */),
        set: createReadonlyMethod("set" /* SET */),
        delete: createReadonlyMethod("delete" /* DELETE */),
        clear: createReadonlyMethod("clear" /* CLEAR */),
        forEach: createForEach(true, false)
    };
    const shallowReadonlyInstrumentations = {
        get(key) {
            return get$1(this, key, true, true);
        },
        get size() {
            return size(this, true);
        },
        has(key) {
            return has$1.call(this, key, true);
        },
        add: createReadonlyMethod("add" /* ADD */),
        set: createReadonlyMethod("set" /* SET */),
        delete: createReadonlyMethod("delete" /* DELETE */),
        clear: createReadonlyMethod("clear" /* CLEAR */),
        forEach: createForEach(true, true)
    };
    const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];
    iteratorMethods.forEach(method => {
        mutableInstrumentations[method] = createIterableMethod(method, false, false);
        readonlyInstrumentations[method] = createIterableMethod(method, true, false);
        shallowInstrumentations[method] = createIterableMethod(method, false, true);
        shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);
    });
    return [
        mutableInstrumentations,
        readonlyInstrumentations,
        shallowInstrumentations,
        shallowReadonlyInstrumentations
    ];
}
const [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();
function createInstrumentationGetter(isReadonly, shallow) {
    const instrumentations = shallow
        ? isReadonly
            ? shallowReadonlyInstrumentations
            : shallowInstrumentations
        : isReadonly
            ? readonlyInstrumentations
            : mutableInstrumentations;
    return (target, key, receiver) => {
        if (key === "__v_isReactive" /* IS_REACTIVE */) {
            return !isReadonly;
        }
        else if (key === "__v_isReadonly" /* IS_READONLY */) {
            return isReadonly;
        }
        else if (key === "__v_raw" /* RAW */) {
            return target;
        }
        return Reflect.get(shared_esm_bundler_hasOwn(instrumentations, key) && key in target
            ? instrumentations
            : target, key, receiver);
    };
}
const mutableCollectionHandlers = {
    get: /*#__PURE__*/ createInstrumentationGetter(false, false)
};
const shallowCollectionHandlers = {
    get: /*#__PURE__*/ createInstrumentationGetter(false, true)
};
const readonlyCollectionHandlers = {
    get: /*#__PURE__*/ createInstrumentationGetter(true, false)
};
const shallowReadonlyCollectionHandlers = {
    get: /*#__PURE__*/ createInstrumentationGetter(true, true)
};
function checkIdentityKeys(target, has, key) {
    const rawKey = reactivity_esm_bundler_toRaw(key);
    if (rawKey !== key && has.call(target, rawKey)) {
        const type = toRawType(target);
        console.warn(`Reactive ${type} contains both the raw and reactive ` +
            `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +
            `which can lead to inconsistencies. ` +
            `Avoid differentiating between the raw and reactive versions ` +
            `of an object and only use the reactive version if possible.`);
    }
}

const reactiveMap = new WeakMap();
const shallowReactiveMap = new WeakMap();
const readonlyMap = new WeakMap();
const shallowReadonlyMap = new WeakMap();
function targetTypeMap(rawType) {
    switch (rawType) {
        case 'Object':
        case 'Array':
            return 1 /* COMMON */;
        case 'Map':
        case 'Set':
        case 'WeakMap':
        case 'WeakSet':
            return 2 /* COLLECTION */;
        default:
            return 0 /* INVALID */;
    }
}
function getTargetType(value) {
    return value["__v_skip" /* SKIP */] || !Object.isExtensible(value)
        ? 0 /* INVALID */
        : targetTypeMap(shared_esm_bundler_toRawType(value));
}
function reactivity_esm_bundler_reactive(target) {
    // if trying to observe a readonly proxy, return the readonly version.
    if (reactivity_esm_bundler_isReadonly(target)) {
        return target;
    }
    return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
}
/**
 * Return a shallowly-reactive copy of the original object, where only the root
 * level properties are reactive. It also does not auto-unwrap refs (even at the
 * root level).
 */
function shallowReactive(target) {
    return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
}
/**
 * Creates a readonly copy of the original object. Note the returned copy is not
 * made reactive, but `readonly` can be called on an already reactive object.
 */
function readonly(target) {
    return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
}
/**
 * Returns a reactive-copy of the original object, where only the root level
 * properties are readonly, and does NOT unwrap refs nor recursively convert
 * returned properties.
 * This is used for creating the props proxy object for stateful components.
 */
function shallowReadonly(target) {
    return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
}
function createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {
    if (!shared_esm_bundler_isObject(target)) {
        if ((false)) {}
        return target;
    }
    // target is already a Proxy, return it.
    // exception: calling readonly() on a reactive object
    if (target["__v_raw" /* RAW */] &&
        !(isReadonly && target["__v_isReactive" /* IS_REACTIVE */])) {
        return target;
    }
    // target already has corresponding Proxy
    const existingProxy = proxyMap.get(target);
    if (existingProxy) {
        return existingProxy;
    }
    // only a whitelist of value types can be observed.
    const targetType = getTargetType(target);
    if (targetType === 0 /* INVALID */) {
        return target;
    }
    const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers);
    proxyMap.set(target, proxy);
    return proxy;
}
function reactivity_esm_bundler_isReactive(value) {
    if (reactivity_esm_bundler_isReadonly(value)) {
        return reactivity_esm_bundler_isReactive(value["__v_raw" /* RAW */]);
    }
    return !!(value && value["__v_isReactive" /* IS_REACTIVE */]);
}
function reactivity_esm_bundler_isReadonly(value) {
    return !!(value && value["__v_isReadonly" /* IS_READONLY */]);
}
function isShallow(value) {
    return !!(value && value["__v_isShallow" /* IS_SHALLOW */]);
}
function isProxy(value) {
    return reactivity_esm_bundler_isReactive(value) || reactivity_esm_bundler_isReadonly(value);
}
function reactivity_esm_bundler_toRaw(observed) {
    const raw = observed && observed["__v_raw" /* RAW */];
    return raw ? reactivity_esm_bundler_toRaw(raw) : observed;
}
function markRaw(value) {
    def(value, "__v_skip" /* SKIP */, true);
    return value;
}
const toReactive = (value) => shared_esm_bundler_isObject(value) ? reactivity_esm_bundler_reactive(value) : value;
const toReadonly = (value) => shared_esm_bundler_isObject(value) ? readonly(value) : value;

function trackRefValue(ref) {
    if (shouldTrack && activeEffect) {
        ref = reactivity_esm_bundler_toRaw(ref);
        if ((false)) {}
        else {
            trackEffects(ref.dep || (ref.dep = createDep()));
        }
    }
}
function triggerRefValue(ref, newVal) {
    ref = reactivity_esm_bundler_toRaw(ref);
    if (ref.dep) {
        if ((false)) {}
        else {
            triggerEffects(ref.dep);
        }
    }
}
function reactivity_esm_bundler_isRef(r) {
    return !!(r && r.__v_isRef === true);
}
function reactivity_esm_bundler_ref(value) {
    return createRef(value, false);
}
function shallowRef(value) {
    return createRef(value, true);
}
function createRef(rawValue, shallow) {
    if (reactivity_esm_bundler_isRef(rawValue)) {
        return rawValue;
    }
    return new RefImpl(rawValue, shallow);
}
class RefImpl {
    constructor(value, __v_isShallow) {
        this.__v_isShallow = __v_isShallow;
        this.dep = undefined;
        this.__v_isRef = true;
        this._rawValue = __v_isShallow ? value : reactivity_esm_bundler_toRaw(value);
        this._value = __v_isShallow ? value : toReactive(value);
    }
    get value() {
        trackRefValue(this);
        return this._value;
    }
    set value(newVal) {
        newVal = this.__v_isShallow ? newVal : reactivity_esm_bundler_toRaw(newVal);
        if (hasChanged(newVal, this._rawValue)) {
            this._rawValue = newVal;
            this._value = this.__v_isShallow ? newVal : toReactive(newVal);
            triggerRefValue(this, newVal);
        }
    }
}
function triggerRef(ref) {
    triggerRefValue(ref, ( false) ? 0 : void 0);
}
function unref(ref) {
    return reactivity_esm_bundler_isRef(ref) ? ref.value : ref;
}
const shallowUnwrapHandlers = {
    get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),
    set: (target, key, value, receiver) => {
        const oldValue = target[key];
        if (reactivity_esm_bundler_isRef(oldValue) && !reactivity_esm_bundler_isRef(value)) {
            oldValue.value = value;
            return true;
        }
        else {
            return Reflect.set(target, key, value, receiver);
        }
    }
};
function proxyRefs(objectWithRefs) {
    return reactivity_esm_bundler_isReactive(objectWithRefs)
        ? objectWithRefs
        : new Proxy(objectWithRefs, shallowUnwrapHandlers);
}
class CustomRefImpl {
    constructor(factory) {
        this.dep = undefined;
        this.__v_isRef = true;
        const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));
        this._get = get;
        this._set = set;
    }
    get value() {
        return this._get();
    }
    set value(newVal) {
        this._set(newVal);
    }
}
function customRef(factory) {
    return new CustomRefImpl(factory);
}
function toRefs(object) {
    if (false) {}
    const ret = isArray(object) ? new Array(object.length) : {};
    for (const key in object) {
        ret[key] = toRef(object, key);
    }
    return ret;
}
class ObjectRefImpl {
    constructor(_object, _key, _defaultValue) {
        this._object = _object;
        this._key = _key;
        this._defaultValue = _defaultValue;
        this.__v_isRef = true;
    }
    get value() {
        const val = this._object[this._key];
        return val === undefined ? this._defaultValue : val;
    }
    set value(newVal) {
        this._object[this._key] = newVal;
    }
}
function toRef(object, key, defaultValue) {
    const val = object[key];
    return reactivity_esm_bundler_isRef(val)
        ? val
        : new ObjectRefImpl(object, key, defaultValue);
}

class ComputedRefImpl {
    constructor(getter, _setter, isReadonly, isSSR) {
        this._setter = _setter;
        this.dep = undefined;
        this.__v_isRef = true;
        this._dirty = true;
        this.effect = new ReactiveEffect(getter, () => {
            if (!this._dirty) {
                this._dirty = true;
                triggerRefValue(this);
            }
        });
        this.effect.computed = this;
        this.effect.active = this._cacheable = !isSSR;
        this["__v_isReadonly" /* IS_READONLY */] = isReadonly;
    }
    get value() {
        // the computed ref may get wrapped by other proxies e.g. readonly() #3376
        const self = reactivity_esm_bundler_toRaw(this);
        trackRefValue(self);
        if (self._dirty || !self._cacheable) {
            self._dirty = false;
            self._value = self.effect.run();
        }
        return self._value;
    }
    set value(newValue) {
        this._setter(newValue);
    }
}
function computed(getterOrOptions, debugOptions, isSSR = false) {
    let getter;
    let setter;
    const onlyGetter = shared_esm_bundler_isFunction(getterOrOptions);
    if (onlyGetter) {
        getter = getterOrOptions;
        setter = ( false)
            ? 0
            : shared_esm_bundler_NOOP;
    }
    else {
        getter = getterOrOptions.get;
        setter = getterOrOptions.set;
    }
    const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);
    if (false) {}
    return cRef;
}

var _a;
const tick = Promise.resolve();
const queue = (/* unused pure expression or super */ null && ([]));
let queued = false;
const scheduler = (fn) => {
    queue.push(fn);
    if (!queued) {
        queued = true;
        tick.then(flush);
    }
};
const flush = () => {
    for (let i = 0; i < queue.length; i++) {
        queue[i]();
    }
    queue.length = 0;
    queued = false;
};
class DeferredComputedRefImpl {
    constructor(getter) {
        this.dep = undefined;
        this._dirty = true;
        this.__v_isRef = true;
        this[_a] = true;
        let compareTarget;
        let hasCompareTarget = false;
        let scheduled = false;
        this.effect = new ReactiveEffect(getter, (computedTrigger) => {
            if (this.dep) {
                if (computedTrigger) {
                    compareTarget = this._value;
                    hasCompareTarget = true;
                }
                else if (!scheduled) {
                    const valueToCompare = hasCompareTarget ? compareTarget : this._value;
                    scheduled = true;
                    hasCompareTarget = false;
                    scheduler(() => {
                        if (this.effect.active && this._get() !== valueToCompare) {
                            triggerRefValue(this);
                        }
                        scheduled = false;
                    });
                }
                // chained upstream computeds are notified synchronously to ensure
                // value invalidation in case of sync access; normal effects are
                // deferred to be triggered in scheduler.
                for (const e of this.dep) {
                    if (e.computed instanceof DeferredComputedRefImpl) {
                        e.scheduler(true /* computedTrigger */);
                    }
                }
            }
            this._dirty = true;
        });
        this.effect.computed = this;
    }
    _get() {
        if (this._dirty) {
            this._dirty = false;
            return (this._value = this.effect.run());
        }
        return this._value;
    }
    get value() {
        trackRefValue(this);
        // the computed ref may get wrapped by other proxies e.g. readonly() #3376
        return reactivity_esm_bundler_toRaw(this)._get();
    }
}
_a = "__v_isReadonly" /* IS_READONLY */;
function deferredComputed(getter) {
    return new DeferredComputedRefImpl(getter);
}



;// CONCATENATED MODULE: ./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js





const stack = [];
function pushWarningContext(vnode) {
    stack.push(vnode);
}
function popWarningContext() {
    stack.pop();
}
function runtime_core_esm_bundler_warn(msg, ...args) {
    // avoid props formatting or warn handler tracking deps that might be mutated
    // during patch, leading to infinite recursion.
    pauseTracking();
    const instance = stack.length ? stack[stack.length - 1].component : null;
    const appWarnHandler = instance && instance.appContext.config.warnHandler;
    const trace = getComponentTrace();
    if (appWarnHandler) {
        callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [
            msg + args.join(''),
            instance && instance.proxy,
            trace
                .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)
                .join('\n'),
            trace
        ]);
    }
    else {
        const warnArgs = [`[Vue warn]: ${msg}`, ...args];
        /* istanbul ignore if */
        if (trace.length &&
            // avoid spamming console during tests
            !false) {
            warnArgs.push(`\n`, ...formatTrace(trace));
        }
        console.warn(...warnArgs);
    }
    resetTracking();
}
function getComponentTrace() {
    let currentVNode = stack[stack.length - 1];
    if (!currentVNode) {
        return [];
    }
    // we can't just use the stack because it will be incomplete during updates
    // that did not start from the root. Re-construct the parent chain using
    // instance parent pointers.
    const normalizedStack = [];
    while (currentVNode) {
        const last = normalizedStack[0];
        if (last && last.vnode === currentVNode) {
            last.recurseCount++;
        }
        else {
            normalizedStack.push({
                vnode: currentVNode,
                recurseCount: 0
            });
        }
        const parentInstance = currentVNode.component && currentVNode.component.parent;
        currentVNode = parentInstance && parentInstance.vnode;
    }
    return normalizedStack;
}
/* istanbul ignore next */
function formatTrace(trace) {
    const logs = [];
    trace.forEach((entry, i) => {
        logs.push(...(i === 0 ? [] : [`\n`]), ...formatTraceEntry(entry));
    });
    return logs;
}
function formatTraceEntry({ vnode, recurseCount }) {
    const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;
    const isRoot = vnode.component ? vnode.component.parent == null : false;
    const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;
    const close = `>` + postfix;
    return vnode.props
        ? [open, ...formatProps(vnode.props), close]
        : [open + close];
}
/* istanbul ignore next */
function formatProps(props) {
    const res = [];
    const keys = Object.keys(props);
    keys.slice(0, 3).forEach(key => {
        res.push(...formatProp(key, props[key]));
    });
    if (keys.length > 3) {
        res.push(` ...`);
    }
    return res;
}
/* istanbul ignore next */
function formatProp(key, value, raw) {
    if (shared_esm_bundler_isString(value)) {
        value = (__webpack_require__(8334)/* .stringify */ .P)(value);
        return raw ? value : [`${key}=${value}`];
    }
    else if (typeof value === 'number' ||
        typeof value === 'boolean' ||
        value == null) {
        return raw ? value : [`${key}=${value}`];
    }
    else if (reactivity_esm_bundler_isRef(value)) {
        value = formatProp(key, reactivity_esm_bundler_toRaw(value.value), true);
        return raw ? value : [`${key}=Ref<`, value, `>`];
    }
    else if (shared_esm_bundler_isFunction(value)) {
        return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];
    }
    else {
        value = reactivity_esm_bundler_toRaw(value);
        return raw ? value : [`${key}=`, value];
    }
}

const ErrorTypeStrings = {
    ["sp" /* SERVER_PREFETCH */]: 'serverPrefetch hook',
    ["bc" /* BEFORE_CREATE */]: 'beforeCreate hook',
    ["c" /* CREATED */]: 'created hook',
    ["bm" /* BEFORE_MOUNT */]: 'beforeMount hook',
    ["m" /* MOUNTED */]: 'mounted hook',
    ["bu" /* BEFORE_UPDATE */]: 'beforeUpdate hook',
    ["u" /* UPDATED */]: 'updated',
    ["bum" /* BEFORE_UNMOUNT */]: 'beforeUnmount hook',
    ["um" /* UNMOUNTED */]: 'unmounted hook',
    ["a" /* ACTIVATED */]: 'activated hook',
    ["da" /* DEACTIVATED */]: 'deactivated hook',
    ["ec" /* ERROR_CAPTURED */]: 'errorCaptured hook',
    ["rtc" /* RENDER_TRACKED */]: 'renderTracked hook',
    ["rtg" /* RENDER_TRIGGERED */]: 'renderTriggered hook',
    [0 /* SETUP_FUNCTION */]: 'setup function',
    [1 /* RENDER_FUNCTION */]: 'render function',
    [2 /* WATCH_GETTER */]: 'watcher getter',
    [3 /* WATCH_CALLBACK */]: 'watcher callback',
    [4 /* WATCH_CLEANUP */]: 'watcher cleanup function',
    [5 /* NATIVE_EVENT_HANDLER */]: 'native event handler',
    [6 /* COMPONENT_EVENT_HANDLER */]: 'component event handler',
    [7 /* VNODE_HOOK */]: 'vnode hook',
    [8 /* DIRECTIVE_HOOK */]: 'directive hook',
    [9 /* TRANSITION_HOOK */]: 'transition hook',
    [10 /* APP_ERROR_HANDLER */]: 'app errorHandler',
    [11 /* APP_WARN_HANDLER */]: 'app warnHandler',
    [12 /* FUNCTION_REF */]: 'ref function',
    [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',
    [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +
        'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'
};
function callWithErrorHandling(fn, instance, type, args) {
    let res;
    try {
        res = args ? fn(...args) : fn();
    }
    catch (err) {
        handleError(err, instance, type);
    }
    return res;
}
function callWithAsyncErrorHandling(fn, instance, type, args) {
    if (shared_esm_bundler_isFunction(fn)) {
        const res = callWithErrorHandling(fn, instance, type, args);
        if (res && shared_esm_bundler_isPromise(res)) {
            res.catch(err => {
                handleError(err, instance, type);
            });
        }
        return res;
    }
    const values = [];
    for (let i = 0; i < fn.length; i++) {
        values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));
    }
    return values;
}
function handleError(err, instance, type, throwInDev = true) {
    const contextVNode = instance ? instance.vnode : null;
    if (instance) {
        let cur = instance.parent;
        // the exposed instance is the render proxy to keep it consistent with 2.x
        const exposedInstance = instance.proxy;
        // in production the hook receives only the error code
        const errorInfo = ( false) ? 0 : type;
        while (cur) {
            const errorCapturedHooks = cur.ec;
            if (errorCapturedHooks) {
                for (let i = 0; i < errorCapturedHooks.length; i++) {
                    if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {
                        return;
                    }
                }
            }
            cur = cur.parent;
        }
        // app-level handling
        const appErrorHandler = instance.appContext.config.errorHandler;
        if (appErrorHandler) {
            callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);
            return;
        }
    }
    logError(err, type, contextVNode, throwInDev);
}
function logError(err, type, contextVNode, throwInDev = true) {
    if ((false)) {}
    else {
        // recover in prod to reduce the impact on end-user
        console.error(err);
    }
}

let isFlushing = false;
let isFlushPending = false;
const runtime_core_esm_bundler_queue = [];
let flushIndex = 0;
const pendingPreFlushCbs = [];
let activePreFlushCbs = null;
let preFlushIndex = 0;
const pendingPostFlushCbs = [];
let activePostFlushCbs = null;
let postFlushIndex = 0;
const resolvedPromise = Promise.resolve();
let currentFlushPromise = null;
let currentPreFlushParentJob = null;
const RECURSION_LIMIT = 100;
function runtime_core_esm_bundler_nextTick(fn) {
    const p = currentFlushPromise || resolvedPromise;
    return fn ? p.then(this ? fn.bind(this) : fn) : p;
}
// #2768
// Use binary-search to find a suitable position in the queue,
// so that the queue maintains the increasing order of job's id,
// which can prevent the job from being skipped and also can avoid repeated patching.
function findInsertionIndex(id) {
    // the start index should be `flushIndex + 1`
    let start = flushIndex + 1;
    let end = runtime_core_esm_bundler_queue.length;
    while (start < end) {
        const middle = (start + end) >>> 1;
        const middleJobId = getId(runtime_core_esm_bundler_queue[middle]);
        middleJobId < id ? (start = middle + 1) : (end = middle);
    }
    return start;
}
function queueJob(job) {
    // the dedupe search uses the startIndex argument of Array.includes()
    // by default the search index includes the current job that is being run
    // so it cannot recursively trigger itself again.
    // if the job is a watch() callback, the search will start with a +1 index to
    // allow it recursively trigger itself - it is the user's responsibility to
    // ensure it doesn't end up in an infinite loop.
    if ((!runtime_core_esm_bundler_queue.length ||
        !runtime_core_esm_bundler_queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) &&
        job !== currentPreFlushParentJob) {
        if (job.id == null) {
            runtime_core_esm_bundler_queue.push(job);
        }
        else {
            runtime_core_esm_bundler_queue.splice(findInsertionIndex(job.id), 0, job);
        }
        queueFlush();
    }
}
function queueFlush() {
    if (!isFlushing && !isFlushPending) {
        isFlushPending = true;
        currentFlushPromise = resolvedPromise.then(flushJobs);
    }
}
function invalidateJob(job) {
    const i = runtime_core_esm_bundler_queue.indexOf(job);
    if (i > flushIndex) {
        runtime_core_esm_bundler_queue.splice(i, 1);
    }
}
function queueCb(cb, activeQueue, pendingQueue, index) {
    if (!shared_esm_bundler_isArray(cb)) {
        if (!activeQueue ||
            !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {
            pendingQueue.push(cb);
        }
    }
    else {
        // if cb is an array, it is a component lifecycle hook which can only be
        // triggered by a job, which is already deduped in the main queue, so
        // we can skip duplicate check here to improve perf
        pendingQueue.push(...cb);
    }
    queueFlush();
}
function queuePreFlushCb(cb) {
    queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);
}
function queuePostFlushCb(cb) {
    queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);
}
function flushPreFlushCbs(seen, parentJob = null) {
    if (pendingPreFlushCbs.length) {
        currentPreFlushParentJob = parentJob;
        activePreFlushCbs = [...new Set(pendingPreFlushCbs)];
        pendingPreFlushCbs.length = 0;
        if ((false)) {}
        for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {
            if (false) {}
            activePreFlushCbs[preFlushIndex]();
        }
        activePreFlushCbs = null;
        preFlushIndex = 0;
        currentPreFlushParentJob = null;
        // recursively flush until it drains
        flushPreFlushCbs(seen, parentJob);
    }
}
function flushPostFlushCbs(seen) {
    if (pendingPostFlushCbs.length) {
        const deduped = [...new Set(pendingPostFlushCbs)];
        pendingPostFlushCbs.length = 0;
        // #1947 already has active queue, nested flushPostFlushCbs call
        if (activePostFlushCbs) {
            activePostFlushCbs.push(...deduped);
            return;
        }
        activePostFlushCbs = deduped;
        if ((false)) {}
        activePostFlushCbs.sort((a, b) => getId(a) - getId(b));
        for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
            if (false) {}
            activePostFlushCbs[postFlushIndex]();
        }
        activePostFlushCbs = null;
        postFlushIndex = 0;
    }
}
const getId = (job) => job.id == null ? Infinity : job.id;
function flushJobs(seen) {
    isFlushPending = false;
    isFlushing = true;
    if ((false)) {}
    flushPreFlushCbs(seen);
    // Sort queue before flush.
    // This ensures that:
    // 1. Components are updated from parent to child. (because parent is always
    //    created before the child so its render effect will have smaller
    //    priority number)
    // 2. If a component is unmounted during a parent component's update,
    //    its update can be skipped.
    runtime_core_esm_bundler_queue.sort((a, b) => getId(a) - getId(b));
    // conditional usage of checkRecursiveUpdate must be determined out of
    // try ... catch block since Rollup by default de-optimizes treeshaking
    // inside try-catch. This can leave all warning code unshaked. Although
    // they would get eventually shaken by a minifier like terser, some minifiers
    // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)
    const check = ( false)
        ? 0
        : shared_esm_bundler_NOOP;
    try {
        for (flushIndex = 0; flushIndex < runtime_core_esm_bundler_queue.length; flushIndex++) {
            const job = runtime_core_esm_bundler_queue[flushIndex];
            if (job && job.active !== false) {
                if (false) {}
                // console.log(`running:`, job.id)
                callWithErrorHandling(job, null, 14 /* SCHEDULER */);
            }
        }
    }
    finally {
        flushIndex = 0;
        runtime_core_esm_bundler_queue.length = 0;
        flushPostFlushCbs(seen);
        isFlushing = false;
        currentFlushPromise = null;
        // some postFlushCb queued jobs!
        // keep flushing until it drains.
        if (runtime_core_esm_bundler_queue.length ||
            pendingPreFlushCbs.length ||
            pendingPostFlushCbs.length) {
            flushJobs(seen);
        }
    }
}
function checkRecursiveUpdates(seen, fn) {
    if (!seen.has(fn)) {
        seen.set(fn, 1);
    }
    else {
        const count = seen.get(fn);
        if (count > RECURSION_LIMIT) {
            const instance = fn.ownerInstance;
            const componentName = instance && getComponentName(instance.type);
            runtime_core_esm_bundler_warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +
                `This means you have a reactive effect that is mutating its own ` +
                `dependencies and thus recursively triggering itself. Possible sources ` +
                `include component template, render function, updated hook or ` +
                `watcher source function.`);
            return true;
        }
        else {
            seen.set(fn, count + 1);
        }
    }
}

/* eslint-disable no-restricted-globals */
let isHmrUpdating = false;
const hmrDirtyComponents = new Set();
// Expose the HMR runtime on the global object
// This makes it entirely tree-shakable without polluting the exports and makes
// it easier to be used in toolings like vue-loader
// Note: for a component to be eligible for HMR it also needs the __hmrId option
// to be set so that its instances can be registered / removed.
if ((false)) {}
const map = new Map();
function registerHMR(instance) {
    const id = instance.type.__hmrId;
    let record = map.get(id);
    if (!record) {
        createRecord(id, instance.type);
        record = map.get(id);
    }
    record.instances.add(instance);
}
function unregisterHMR(instance) {
    map.get(instance.type.__hmrId).instances.delete(instance);
}
function createRecord(id, initialDef) {
    if (map.has(id)) {
        return false;
    }
    map.set(id, {
        initialDef: normalizeClassComponent(initialDef),
        instances: new Set()
    });
    return true;
}
function normalizeClassComponent(component) {
    return isClassComponent(component) ? component.__vccOpts : component;
}
function rerender(id, newRender) {
    const record = map.get(id);
    if (!record) {
        return;
    }
    // update initial record (for not-yet-rendered component)
    record.initialDef.render = newRender;
    [...record.instances].forEach(instance => {
        if (newRender) {
            instance.render = newRender;
            normalizeClassComponent(instance.type).render = newRender;
        }
        instance.renderCache = [];
        // this flag forces child components with slot content to update
        isHmrUpdating = true;
        instance.update();
        isHmrUpdating = false;
    });
}
function reload(id, newComp) {
    const record = map.get(id);
    if (!record)
        return;
    newComp = normalizeClassComponent(newComp);
    // update initial def (for not-yet-rendered components)
    updateComponentDef(record.initialDef, newComp);
    // create a snapshot which avoids the set being mutated during updates
    const instances = [...record.instances];
    for (const instance of instances) {
        const oldComp = normalizeClassComponent(instance.type);
        if (!hmrDirtyComponents.has(oldComp)) {
            // 1. Update existing comp definition to match new one
            if (oldComp !== record.initialDef) {
                updateComponentDef(oldComp, newComp);
            }
            // 2. mark definition dirty. This forces the renderer to replace the
            // component on patch.
            hmrDirtyComponents.add(oldComp);
        }
        // 3. invalidate options resolution cache
        instance.appContext.optionsCache.delete(instance.type);
        // 4. actually update
        if (instance.ceReload) {
            // custom element
            hmrDirtyComponents.add(oldComp);
            instance.ceReload(newComp.styles);
            hmrDirtyComponents.delete(oldComp);
        }
        else if (instance.parent) {
            // 4. Force the parent instance to re-render. This will cause all updated
            // components to be unmounted and re-mounted. Queue the update so that we
            // don't end up forcing the same parent to re-render multiple times.
            queueJob(instance.parent.update);
            // instance is the inner component of an async custom element
            // invoke to reset styles
            if (instance.parent.type.__asyncLoader &&
                instance.parent.ceReload) {
                instance.parent.ceReload(newComp.styles);
            }
        }
        else if (instance.appContext.reload) {
            // root instance mounted via createApp() has a reload method
            instance.appContext.reload();
        }
        else if (typeof window !== 'undefined') {
            // root instance inside tree created via raw render(). Force reload.
            window.location.reload();
        }
        else {
            console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');
        }
    }
    // 5. make sure to cleanup dirty hmr components after update
    queuePostFlushCb(() => {
        for (const instance of instances) {
            hmrDirtyComponents.delete(normalizeClassComponent(instance.type));
        }
    });
}
function updateComponentDef(oldComp, newComp) {
    extend(oldComp, newComp);
    for (const key in oldComp) {
        if (key !== '__file' && !(key in newComp)) {
            delete oldComp[key];
        }
    }
}
function tryWrap(fn) {
    return (id, arg) => {
        try {
            return fn(id, arg);
        }
        catch (e) {
            console.error(e);
            console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +
                `Full reload required.`);
        }
    };
}

let devtools;
let buffer = (/* unused pure expression or super */ null && ([]));
let devtoolsNotInstalled = false;
function emit(event, ...args) {
    if (devtools) {
        devtools.emit(event, ...args);
    }
    else if (!devtoolsNotInstalled) {
        buffer.push({ event, args });
    }
}
function setDevtoolsHook(hook, target) {
    var _a, _b;
    devtools = hook;
    if (devtools) {
        devtools.enabled = true;
        buffer.forEach(({ event, args }) => devtools.emit(event, ...args));
        buffer = [];
    }
    else if (
    // handle late devtools injection - only do this if we are in an actual
    // browser environment to avoid the timer handle stalling test runner exit
    // (#4815)
    // eslint-disable-next-line no-restricted-globals
    typeof window !== 'undefined' &&
        // some envs mock window but not fully
        window.HTMLElement &&
        // also exclude jsdom
        !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {
        const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =
            target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);
        replay.push((newHook) => {
            setDevtoolsHook(newHook, target);
        });
        // clear buffer after 3s - the user probably doesn't have devtools installed
        // at all, and keeping the buffer will cause memory leaks (#4738)
        setTimeout(() => {
            if (!devtools) {
                target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
                devtoolsNotInstalled = true;
                buffer = [];
            }
        }, 3000);
    }
    else {
        // non-browser env, assume not installed
        devtoolsNotInstalled = true;
        buffer = [];
    }
}
function devtoolsInitApp(app, version) {
    emit("app:init" /* APP_INIT */, app, version, {
        Fragment: runtime_core_esm_bundler_Fragment,
        Text,
        Comment,
        Static: runtime_core_esm_bundler_Static
    });
}
function devtoolsUnmountApp(app) {
    emit("app:unmount" /* APP_UNMOUNT */, app);
}
const devtoolsComponentAdded = /*#__PURE__*/ (/* unused pure expression or super */ null && (createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */)));
const devtoolsComponentUpdated = 
/*#__PURE__*/ (/* unused pure expression or super */ null && (createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */)));
const devtoolsComponentRemoved = 
/*#__PURE__*/ (/* unused pure expression or super */ null && (createDevtoolsComponentHook("component:removed" /* COMPONENT_REMOVED */)));
function createDevtoolsComponentHook(hook) {
    return (component) => {
        emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);
    };
}
const devtoolsPerfStart = /*#__PURE__*/ (/* unused pure expression or super */ null && (createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */)));
const devtoolsPerfEnd = /*#__PURE__*/ (/* unused pure expression or super */ null && (createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */)));
function createDevtoolsPerformanceHook(hook) {
    return (component, type, time) => {
        emit(hook, component.appContext.app, component.uid, component, type, time);
    };
}
function devtoolsComponentEmit(component, event, params) {
    emit("component:emit" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);
}

function emit$1(instance, event, ...rawArgs) {
    const props = instance.vnode.props || shared_esm_bundler_EMPTY_OBJ;
    if ((false)) {}
    let args = rawArgs;
    const isModelListener = event.startsWith('update:');
    // for v-model update:xxx events, apply modifiers on args
    const modelArg = isModelListener && event.slice(7);
    if (modelArg && modelArg in props) {
        const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;
        const { number, trim } = props[modifiersKey] || shared_esm_bundler_EMPTY_OBJ;
        if (trim) {
            args = rawArgs.map(a => a.trim());
        }
        else if (number) {
            args = rawArgs.map(shared_esm_bundler_toNumber);
        }
    }
    if (false) {}
    if ((false)) {}
    let handlerName;
    let handler = props[(handlerName = shared_esm_bundler_toHandlerKey(event))] ||
        // also try camelCase event handler (#2249)
        props[(handlerName = shared_esm_bundler_toHandlerKey(camelize(event)))];
    // for v-model update:xxx events, also trigger kebab-case equivalent
    // for props passed via kebab-case
    if (!handler && isModelListener) {
        handler = props[(handlerName = shared_esm_bundler_toHandlerKey(shared_esm_bundler_hyphenate(event)))];
    }
    if (handler) {
        callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);
    }
    const onceHandler = props[handlerName + `Once`];
    if (onceHandler) {
        if (!instance.emitted) {
            instance.emitted = {};
        }
        else if (instance.emitted[handlerName]) {
            return;
        }
        instance.emitted[handlerName] = true;
        callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);
    }
}
function normalizeEmitsOptions(comp, appContext, asMixin = false) {
    const cache = appContext.emitsCache;
    const cached = cache.get(comp);
    if (cached !== undefined) {
        return cached;
    }
    const raw = comp.emits;
    let normalized = {};
    // apply mixin/extends props
    let hasExtends = false;
    if (false) {}
    if (!raw && !hasExtends) {
        cache.set(comp, null);
        return null;
    }
    if (shared_esm_bundler_isArray(raw)) {
        raw.forEach(key => (normalized[key] = null));
    }
    else {
        shared_esm_bundler_extend(normalized, raw);
    }
    cache.set(comp, normalized);
    return normalized;
}
// Check if an incoming prop key is a declared emit event listener.
// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are
// both considered matched listeners.
function isEmitListener(options, key) {
    if (!options || !shared_esm_bundler_isOn(key)) {
        return false;
    }
    key = key.slice(2).replace(/Once$/, '');
    return (shared_esm_bundler_hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||
        shared_esm_bundler_hasOwn(options, shared_esm_bundler_hyphenate(key)) ||
        shared_esm_bundler_hasOwn(options, key));
}

/**
 * mark the current rendering instance for asset resolution (e.g.
 * resolveComponent, resolveDirective) during render
 */
let currentRenderingInstance = null;
let currentScopeId = null;
/**
 * Note: rendering calls maybe nested. The function returns the parent rendering
 * instance if present, which should be restored after the render is done:
 *
 * ```js
 * const prev = setCurrentRenderingInstance(i)
 * // ...render
 * setCurrentRenderingInstance(prev)
 * ```
 */
function setCurrentRenderingInstance(instance) {
    const prev = currentRenderingInstance;
    currentRenderingInstance = instance;
    currentScopeId = (instance && instance.type.__scopeId) || null;
    return prev;
}
/**
 * Set scope id when creating hoisted vnodes.
 * @private compiler helper
 */
function pushScopeId(id) {
    currentScopeId = id;
}
/**
 * Technically we no longer need this after 3.0.8 but we need to keep the same
 * API for backwards compat w/ code generated by compilers.
 * @private
 */
function popScopeId() {
    currentScopeId = null;
}
/**
 * Only for backwards compat
 * @private
 */
const withScopeId = (_id) => withCtx;
/**
 * Wrap a slot function to memoize current rendering instance
 * @private compiler helper
 */
function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only
) {
    if (!ctx)
        return fn;
    // already normalized
    if (fn._n) {
        return fn;
    }
    const renderFnWithContext = (...args) => {
        // If a user calls a compiled slot inside a template expression (#1745), it
        // can mess up block tracking, so by default we disable block tracking and
        // force bail out when invoking a compiled slot (indicated by the ._d flag).
        // This isn't necessary if rendering a compiled `<slot>`, so we flip the
        // ._d flag off when invoking the wrapped fn inside `renderSlot`.
        if (renderFnWithContext._d) {
            setBlockTracking(-1);
        }
        const prevInstance = setCurrentRenderingInstance(ctx);
        const res = fn(...args);
        setCurrentRenderingInstance(prevInstance);
        if (renderFnWithContext._d) {
            setBlockTracking(1);
        }
        if (false) {}
        return res;
    };
    // mark normalized to avoid duplicated wrapping
    renderFnWithContext._n = true;
    // mark this as compiled by default
    // this is used in vnode.ts -> normalizeChildren() to set the slot
    // rendering flag.
    renderFnWithContext._c = true;
    // disable block tracking by default
    renderFnWithContext._d = true;
    return renderFnWithContext;
}

/**
 * dev only flag to track whether $attrs was used during render.
 * If $attrs was used during render then the warning for failed attrs
 * fallthrough can be suppressed.
 */
let accessedAttrs = false;
function markAttrsAccessed() {
    accessedAttrs = true;
}
function renderComponentRoot(instance) {
    const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;
    let result;
    let fallthroughAttrs;
    const prev = setCurrentRenderingInstance(instance);
    if ((false)) {}
    try {
        if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {
            // withProxy is a proxy with a different `has` trap only for
            // runtime-compiled render functions using `with` block.
            const proxyToUse = withProxy || proxy;
            result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));
            fallthroughAttrs = attrs;
        }
        else {
            // functional
            const render = Component;
            // in dev, mark attrs accessed if optional props (attrs === props)
            if (false) {}
            result = normalizeVNode(render.length > 1
                ? render(props, ( false)
                    ? 0
                    : { attrs, slots, emit })
                : render(props, null /* we know it doesn't need it */));
            fallthroughAttrs = Component.props
                ? attrs
                : getFunctionalFallthrough(attrs);
        }
    }
    catch (err) {
        blockStack.length = 0;
        handleError(err, instance, 1 /* RENDER_FUNCTION */);
        result = runtime_core_esm_bundler_createVNode(Comment);
    }
    // attr merging
    // in dev mode, comments are preserved, and it's possible for a template
    // to have comments along side the root element which makes it a fragment
    let root = result;
    let setRoot = undefined;
    if (false /* DEV_ROOT_FRAGMENT */) {}
    if (fallthroughAttrs && inheritAttrs !== false) {
        const keys = Object.keys(fallthroughAttrs);
        const { shapeFlag } = root;
        if (keys.length) {
            if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {
                if (propsOptions && keys.some(isModelListener)) {
                    // If a v-model listener (onUpdate:xxx) has a corresponding declared
                    // prop, it indicates this component expects to handle v-model and
                    // it should not fallthrough.
                    // related: #1543, #1643, #1989
                    fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);
                }
                root = cloneVNode(root, fallthroughAttrs);
            }
            else if (false) {}
        }
    }
    // inherit directives
    if (vnode.dirs) {
        if (false) {}
        root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
    }
    // inherit transition data
    if (vnode.transition) {
        if (false) {}
        root.transition = vnode.transition;
    }
    if (false) {}
    else {
        result = root;
    }
    setCurrentRenderingInstance(prev);
    return result;
}
/**
 * dev only
 * In dev mode, template root level comments are rendered, which turns the
 * template into a fragment root, but we need to locate the single element
 * root for attrs and scope id processing.
 */
const getChildRoot = (vnode) => {
    const rawChildren = vnode.children;
    const dynamicChildren = vnode.dynamicChildren;
    const childRoot = filterSingleRoot(rawChildren);
    if (!childRoot) {
        return [vnode, undefined];
    }
    const index = rawChildren.indexOf(childRoot);
    const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;
    const setRoot = (updatedRoot) => {
        rawChildren[index] = updatedRoot;
        if (dynamicChildren) {
            if (dynamicIndex > -1) {
                dynamicChildren[dynamicIndex] = updatedRoot;
            }
            else if (updatedRoot.patchFlag > 0) {
                vnode.dynamicChildren = [...dynamicChildren, updatedRoot];
            }
        }
    };
    return [normalizeVNode(childRoot), setRoot];
};
function filterSingleRoot(children) {
    let singleRoot;
    for (let i = 0; i < children.length; i++) {
        const child = children[i];
        if (isVNode(child)) {
            // ignore user comment
            if (child.type !== Comment || child.children === 'v-if') {
                if (singleRoot) {
                    // has more than 1 non-comment child, return now
                    return;
                }
                else {
                    singleRoot = child;
                }
            }
        }
        else {
            return;
        }
    }
    return singleRoot;
}
const getFunctionalFallthrough = (attrs) => {
    let res;
    for (const key in attrs) {
        if (key === 'class' || key === 'style' || shared_esm_bundler_isOn(key)) {
            (res || (res = {}))[key] = attrs[key];
        }
    }
    return res;
};
const filterModelListeners = (attrs, props) => {
    const res = {};
    for (const key in attrs) {
        if (!isModelListener(key) || !(key.slice(9) in props)) {
            res[key] = attrs[key];
        }
    }
    return res;
};
const isElementRoot = (vnode) => {
    return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||
        vnode.type === Comment // potential v-if branch switch
    );
};
function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
    const { props: prevProps, children: prevChildren, component } = prevVNode;
    const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;
    const emits = component.emitsOptions;
    // Parent component's render function was hot-updated. Since this may have
    // caused the child component's slots content to have changed, we need to
    // force the child to update as well.
    if (false) {}
    // force child update for runtime directive or transition on component vnode.
    if (nextVNode.dirs || nextVNode.transition) {
        return true;
    }
    if (optimized && patchFlag >= 0) {
        if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {
            // slot content that references values that might have changed,
            // e.g. in a v-for
            return true;
        }
        if (patchFlag & 16 /* FULL_PROPS */) {
            if (!prevProps) {
                return !!nextProps;
            }
            // presence of this flag indicates props are always non-null
            return hasPropsChanged(prevProps, nextProps, emits);
        }
        else if (patchFlag & 8 /* PROPS */) {
            const dynamicProps = nextVNode.dynamicProps;
            for (let i = 0; i < dynamicProps.length; i++) {
                const key = dynamicProps[i];
                if (nextProps[key] !== prevProps[key] &&
                    !isEmitListener(emits, key)) {
                    return true;
                }
            }
        }
    }
    else {
        // this path is only taken by manually written render functions
        // so presence of any children leads to a forced update
        if (prevChildren || nextChildren) {
            if (!nextChildren || !nextChildren.$stable) {
                return true;
            }
        }
        if (prevProps === nextProps) {
            return false;
        }
        if (!prevProps) {
            return !!nextProps;
        }
        if (!nextProps) {
            return true;
        }
        return hasPropsChanged(prevProps, nextProps, emits);
    }
    return false;
}
function hasPropsChanged(prevProps, nextProps, emitsOptions) {
    const nextKeys = Object.keys(nextProps);
    if (nextKeys.length !== Object.keys(prevProps).length) {
        return true;
    }
    for (let i = 0; i < nextKeys.length; i++) {
        const key = nextKeys[i];
        if (nextProps[key] !== prevProps[key] &&
            !isEmitListener(emitsOptions, key)) {
            return true;
        }
    }
    return false;
}
function updateHOCHostEl({ vnode, parent }, el // HostNode
) {
    while (parent && parent.subTree === vnode) {
        (vnode = parent.vnode).el = el;
        parent = parent.parent;
    }
}

const isSuspense = (type) => type.__isSuspense;
// Suspense exposes a component-like API, and is treated like a component
// in the compiler, but internally it's a special built-in type that hooks
// directly into the renderer.
const SuspenseImpl = {
    name: 'Suspense',
    // In order to make Suspense tree-shakable, we need to avoid importing it
    // directly in the renderer. The renderer checks for the __isSuspense flag
    // on a vnode's type and calls the `process` method, passing in renderer
    // internals.
    __isSuspense: true,
    process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, 
    // platform-specific impl passed from renderer
    rendererInternals) {
        if (n1 == null) {
            mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);
        }
        else {
            patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);
        }
    },
    hydrate: hydrateSuspense,
    create: createSuspenseBoundary,
    normalize: normalizeSuspenseChildren
};
// Force-casted public typing for h and TSX props inference
const Suspense = ((/* unused pure expression or super */ null && (SuspenseImpl)) );
function triggerEvent(vnode, name) {
    const eventListener = vnode.props && vnode.props[name];
    if (shared_esm_bundler_isFunction(eventListener)) {
        eventListener();
    }
}
function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {
    const { p: patch, o: { createElement } } = rendererInternals;
    const hiddenContainer = createElement('div');
    const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));
    // start mounting the content subtree in an off-dom container
    patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);
    // now check if we have encountered any async deps
    if (suspense.deps > 0) {
        // has async
        // invoke @fallback event
        triggerEvent(vnode, 'onPending');
        triggerEvent(vnode, 'onFallback');
        // mount the fallback tree
        patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context
        isSVG, slotScopeIds);
        setActiveBranch(suspense, vnode.ssFallback);
    }
    else {
        // Suspense has no async deps. Just resolve.
        suspense.resolve();
    }
}
function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {
    const suspense = (n2.suspense = n1.suspense);
    suspense.vnode = n2;
    n2.el = n1.el;
    const newBranch = n2.ssContent;
    const newFallback = n2.ssFallback;
    const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;
    if (pendingBranch) {
        suspense.pendingBranch = newBranch;
        if (isSameVNodeType(newBranch, pendingBranch)) {
            // same root type but content may have changed.
            patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);
            if (suspense.deps <= 0) {
                suspense.resolve();
            }
            else if (isInFallback) {
                patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context
                isSVG, slotScopeIds, optimized);
                setActiveBranch(suspense, newFallback);
            }
        }
        else {
            // toggled before pending tree is resolved
            suspense.pendingId++;
            if (isHydrating) {
                // if toggled before hydration is finished, the current DOM tree is
                // no longer valid. set it as the active branch so it will be unmounted
                // when resolved
                suspense.isHydrating = false;
                suspense.activeBranch = pendingBranch;
            }
            else {
                unmount(pendingBranch, parentComponent, suspense);
            }
            // increment pending ID. this is used to invalidate async callbacks
            // reset suspense state
            suspense.deps = 0;
            // discard effects from pending branch
            suspense.effects.length = 0;
            // discard previous container
            suspense.hiddenContainer = createElement('div');
            if (isInFallback) {
                // already in fallback state
                patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);
                if (suspense.deps <= 0) {
                    suspense.resolve();
                }
                else {
                    patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context
                    isSVG, slotScopeIds, optimized);
                    setActiveBranch(suspense, newFallback);
                }
            }
            else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
                // toggled "back" to current active branch
                patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);
                // force resolve
                suspense.resolve(true);
            }
            else {
                // switched to a 3rd branch
                patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);
                if (suspense.deps <= 0) {
                    suspense.resolve();
                }
            }
        }
    }
    else {
        if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
            // root did not change, just normal patch
            patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);
            setActiveBranch(suspense, newBranch);
        }
        else {
            // root node toggled
            // invoke @pending event
            triggerEvent(n2, 'onPending');
            // mount pending branch in off-dom container
            suspense.pendingBranch = newBranch;
            suspense.pendingId++;
            patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);
            if (suspense.deps <= 0) {
                // incoming branch has no async deps, resolve now.
                suspense.resolve();
            }
            else {
                const { timeout, pendingId } = suspense;
                if (timeout > 0) {
                    setTimeout(() => {
                        if (suspense.pendingId === pendingId) {
                            suspense.fallback(newFallback);
                        }
                    }, timeout);
                }
                else if (timeout === 0) {
                    suspense.fallback(newFallback);
                }
            }
        }
    }
}
let hasWarned = false;
function createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {
    /* istanbul ignore if */
    if (false) {}
    const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;
    const timeout = shared_esm_bundler_toNumber(vnode.props && vnode.props.timeout);
    const suspense = {
        vnode,
        parent,
        parentComponent,
        isSVG,
        container,
        hiddenContainer,
        anchor,
        deps: 0,
        pendingId: 0,
        timeout: typeof timeout === 'number' ? timeout : -1,
        activeBranch: null,
        pendingBranch: null,
        isInFallback: true,
        isHydrating,
        isUnmounted: false,
        effects: [],
        resolve(resume = false) {
            if ((false)) {}
            const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;
            if (suspense.isHydrating) {
                suspense.isHydrating = false;
            }
            else if (!resume) {
                const delayEnter = activeBranch &&
                    pendingBranch.transition &&
                    pendingBranch.transition.mode === 'out-in';
                if (delayEnter) {
                    activeBranch.transition.afterLeave = () => {
                        if (pendingId === suspense.pendingId) {
                            move(pendingBranch, container, anchor, 0 /* ENTER */);
                        }
                    };
                }
                // this is initial anchor on mount
                let { anchor } = suspense;
                // unmount current active tree
                if (activeBranch) {
                    // if the fallback tree was mounted, it may have been moved
                    // as part of a parent suspense. get the latest anchor for insertion
                    anchor = next(activeBranch);
                    unmount(activeBranch, parentComponent, suspense, true);
                }
                if (!delayEnter) {
                    // move content from off-dom container to actual container
                    move(pendingBranch, container, anchor, 0 /* ENTER */);
                }
            }
            setActiveBranch(suspense, pendingBranch);
            suspense.pendingBranch = null;
            suspense.isInFallback = false;
            // flush buffered effects
            // check if there is a pending parent suspense
            let parent = suspense.parent;
            let hasUnresolvedAncestor = false;
            while (parent) {
                if (parent.pendingBranch) {
                    // found a pending parent suspense, merge buffered post jobs
                    // into that parent
                    parent.effects.push(...effects);
                    hasUnresolvedAncestor = true;
                    break;
                }
                parent = parent.parent;
            }
            // no pending parent suspense, flush all jobs
            if (!hasUnresolvedAncestor) {
                queuePostFlushCb(effects);
            }
            suspense.effects = [];
            // invoke @resolve event
            triggerEvent(vnode, 'onResolve');
        },
        fallback(fallbackVNode) {
            if (!suspense.pendingBranch) {
                return;
            }
            const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;
            // invoke @fallback event
            triggerEvent(vnode, 'onFallback');
            const anchor = next(activeBranch);
            const mountFallback = () => {
                if (!suspense.isInFallback) {
                    return;
                }
                // mount the fallback tree
                patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context
                isSVG, slotScopeIds, optimized);
                setActiveBranch(suspense, fallbackVNode);
            };
            const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';
            if (delayEnter) {
                activeBranch.transition.afterLeave = mountFallback;
            }
            suspense.isInFallback = true;
            // unmount current active branch
            unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now
            true // shouldRemove
            );
            if (!delayEnter) {
                mountFallback();
            }
        },
        move(container, anchor, type) {
            suspense.activeBranch &&
                move(suspense.activeBranch, container, anchor, type);
            suspense.container = container;
        },
        next() {
            return suspense.activeBranch && next(suspense.activeBranch);
        },
        registerDep(instance, setupRenderEffect) {
            const isInPendingSuspense = !!suspense.pendingBranch;
            if (isInPendingSuspense) {
                suspense.deps++;
            }
            const hydratedEl = instance.vnode.el;
            instance
                .asyncDep.catch(err => {
                handleError(err, instance, 0 /* SETUP_FUNCTION */);
            })
                .then(asyncSetupResult => {
                // retry when the setup() promise resolves.
                // component may have been unmounted before resolve.
                if (instance.isUnmounted ||
                    suspense.isUnmounted ||
                    suspense.pendingId !== instance.suspenseId) {
                    return;
                }
                // retry from this component
                instance.asyncResolved = true;
                const { vnode } = instance;
                if ((false)) {}
                handleSetupResult(instance, asyncSetupResult, false);
                if (hydratedEl) {
                    // vnode may have been replaced if an update happened before the
                    // async dep is resolved.
                    vnode.el = hydratedEl;
                }
                const placeholder = !hydratedEl && instance.subTree.el;
                setupRenderEffect(instance, vnode, 
                // component may have been moved before resolve.
                // if this is not a hydration, instance.subTree will be the comment
                // placeholder.
                parentNode(hydratedEl || instance.subTree.el), 
                // anchor will not be used if this is hydration, so only need to
                // consider the comment placeholder case.
                hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);
                if (placeholder) {
                    remove(placeholder);
                }
                updateHOCHostEl(instance, vnode.el);
                if ((false)) {}
                // only decrease deps count if suspense is not already resolved
                if (isInPendingSuspense && --suspense.deps === 0) {
                    suspense.resolve();
                }
            });
        },
        unmount(parentSuspense, doRemove) {
            suspense.isUnmounted = true;
            if (suspense.activeBranch) {
                unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);
            }
            if (suspense.pendingBranch) {
                unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);
            }
        }
    };
    return suspense;
}
function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {
    /* eslint-disable no-restricted-globals */
    const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));
    // there are two possible scenarios for server-rendered suspense:
    // - success: ssr content should be fully resolved
    // - failure: ssr content should be the fallback branch.
    // however, on the client we don't really know if it has failed or not
    // attempt to hydrate the DOM assuming it has succeeded, but we still
    // need to construct a suspense boundary first
    const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);
    if (suspense.deps === 0) {
        suspense.resolve();
    }
    return result;
    /* eslint-enable no-restricted-globals */
}
function normalizeSuspenseChildren(vnode) {
    const { shapeFlag, children } = vnode;
    const isSlotChildren = shapeFlag & 32 /* SLOTS_CHILDREN */;
    vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);
    vnode.ssFallback = isSlotChildren
        ? normalizeSuspenseSlot(children.fallback)
        : runtime_core_esm_bundler_createVNode(Comment);
}
function normalizeSuspenseSlot(s) {
    let block;
    if (shared_esm_bundler_isFunction(s)) {
        const trackBlock = isBlockTreeEnabled && s._c;
        if (trackBlock) {
            // disableTracking: false
            // allow block tracking for compiled slots
            // (see ./componentRenderContext.ts)
            s._d = false;
            openBlock();
        }
        s = s();
        if (trackBlock) {
            s._d = true;
            block = currentBlock;
            closeBlock();
        }
    }
    if (shared_esm_bundler_isArray(s)) {
        const singleChild = filterSingleRoot(s);
        if (false) {}
        s = singleChild;
    }
    s = normalizeVNode(s);
    if (block && !s.dynamicChildren) {
        s.dynamicChildren = block.filter(c => c !== s);
    }
    return s;
}
function queueEffectWithSuspense(fn, suspense) {
    if (suspense && suspense.pendingBranch) {
        if (shared_esm_bundler_isArray(fn)) {
            suspense.effects.push(...fn);
        }
        else {
            suspense.effects.push(fn);
        }
    }
    else {
        queuePostFlushCb(fn);
    }
}
function setActiveBranch(suspense, branch) {
    suspense.activeBranch = branch;
    const { vnode, parentComponent } = suspense;
    const el = (vnode.el = branch.el);
    // in case suspense is the root node of a component,
    // recursively update the HOC el
    if (parentComponent && parentComponent.subTree === vnode) {
        parentComponent.vnode.el = el;
        updateHOCHostEl(parentComponent, el);
    }
}

function provide(key, value) {
    if (!currentInstance) {
        if ((false)) {}
    }
    else {
        let provides = currentInstance.provides;
        // by default an instance inherits its parent's provides object
        // but when it needs to provide values of its own, it creates its
        // own provides object using parent provides object as prototype.
        // this way in `inject` we can simply look up injections from direct
        // parent and let the prototype chain do the work.
        const parentProvides = currentInstance.parent && currentInstance.parent.provides;
        if (parentProvides === provides) {
            provides = currentInstance.provides = Object.create(parentProvides);
        }
        // TS doesn't allow symbol as index type
        provides[key] = value;
    }
}
function inject(key, defaultValue, treatDefaultAsFactory = false) {
    // fallback to `currentRenderingInstance` so that this can be called in
    // a functional component
    const instance = currentInstance || currentRenderingInstance;
    if (instance) {
        // #2400
        // to support `app.use` plugins,
        // fallback to appContext's `provides` if the instance is at root
        const provides = instance.parent == null
            ? instance.vnode.appContext && instance.vnode.appContext.provides
            : instance.parent.provides;
        if (provides && key in provides) {
            // TS doesn't allow symbol as index type
            return provides[key];
        }
        else if (arguments.length > 1) {
            return treatDefaultAsFactory && shared_esm_bundler_isFunction(defaultValue)
                ? defaultValue.call(instance.proxy)
                : defaultValue;
        }
        else if ((false)) {}
    }
    else if ((false)) {}
}

// Simple effect.
function watchEffect(effect, options) {
    return doWatch(effect, null, options);
}
function runtime_core_esm_bundler_watchPostEffect(effect, options) {
    return doWatch(effect, null, (( false)
        ? 0
        : { flush: 'post' }));
}
function watchSyncEffect(effect, options) {
    return doWatch(effect, null, (( false)
        ? 0
        : { flush: 'sync' }));
}
// initial value for watchers to trigger on undefined initial values
const INITIAL_WATCHER_VALUE = {};
// implementation
function watch(source, cb, options) {
    if (false) {}
    return doWatch(source, cb, options);
}
function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = shared_esm_bundler_EMPTY_OBJ) {
    if (false) {}
    const warnInvalidSource = (s) => {
        runtime_core_esm_bundler_warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +
            `a reactive object, or an array of these types.`);
    };
    const instance = currentInstance;
    let getter;
    let forceTrigger = false;
    let isMultiSource = false;
    if (reactivity_esm_bundler_isRef(source)) {
        getter = () => source.value;
        forceTrigger = isShallow(source);
    }
    else if (reactivity_esm_bundler_isReactive(source)) {
        getter = () => source;
        deep = true;
    }
    else if (shared_esm_bundler_isArray(source)) {
        isMultiSource = true;
        forceTrigger = source.some(reactivity_esm_bundler_isReactive);
        getter = () => source.map(s => {
            if (reactivity_esm_bundler_isRef(s)) {
                return s.value;
            }
            else if (reactivity_esm_bundler_isReactive(s)) {
                return traverse(s);
            }
            else if (shared_esm_bundler_isFunction(s)) {
                return callWithErrorHandling(s, instance, 2 /* WATCH_GETTER */);
            }
            else {
                ( false) && 0;
            }
        });
    }
    else if (shared_esm_bundler_isFunction(source)) {
        if (cb) {
            // getter with cb
            getter = () => callWithErrorHandling(source, instance, 2 /* WATCH_GETTER */);
        }
        else {
            // no cb -> simple effect
            getter = () => {
                if (instance && instance.isUnmounted) {
                    return;
                }
                if (cleanup) {
                    cleanup();
                }
                return callWithAsyncErrorHandling(source, instance, 3 /* WATCH_CALLBACK */, [onCleanup]);
            };
        }
    }
    else {
        getter = shared_esm_bundler_NOOP;
        ( false) && 0;
    }
    if (cb && deep) {
        const baseGetter = getter;
        getter = () => traverse(baseGetter());
    }
    let cleanup;
    let onCleanup = (fn) => {
        cleanup = effect.onStop = () => {
            callWithErrorHandling(fn, instance, 4 /* WATCH_CLEANUP */);
        };
    };
    // in SSR there is no need to setup an actual effect, and it should be noop
    // unless it's eager
    if (isInSSRComponentSetup) {
        // we will also not call the invalidate callback (+ runner is not set up)
        onCleanup = shared_esm_bundler_NOOP;
        if (!cb) {
            getter();
        }
        else if (immediate) {
            callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [
                getter(),
                isMultiSource ? [] : undefined,
                onCleanup
            ]);
        }
        return shared_esm_bundler_NOOP;
    }
    let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;
    const job = () => {
        if (!effect.active) {
            return;
        }
        if (cb) {
            // watch(source, cb)
            const newValue = effect.run();
            if (deep ||
                forceTrigger ||
                (isMultiSource
                    ? newValue.some((v, i) => hasChanged(v, oldValue[i]))
                    : hasChanged(newValue, oldValue)) ||
                (false  )) {
                // cleanup before running cb again
                if (cleanup) {
                    cleanup();
                }
                callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [
                    newValue,
                    // pass undefined as the old value when it's changed for the first time
                    oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,
                    onCleanup
                ]);
                oldValue = newValue;
            }
        }
        else {
            // watchEffect
            effect.run();
        }
    };
    // important: mark the job as a watcher callback so that scheduler knows
    // it is allowed to self-trigger (#1727)
    job.allowRecurse = !!cb;
    let scheduler;
    if (flush === 'sync') {
        scheduler = job; // the scheduler function gets called directly
    }
    else if (flush === 'post') {
        scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);
    }
    else {
        // default: 'pre'
        scheduler = () => {
            if (!instance || instance.isMounted) {
                queuePreFlushCb(job);
            }
            else {
                // with 'pre' option, the first call must happen before
                // the component is mounted so it is called synchronously.
                job();
            }
        };
    }
    const effect = new ReactiveEffect(getter, scheduler);
    if ((false)) {}
    // initial run
    if (cb) {
        if (immediate) {
            job();
        }
        else {
            oldValue = effect.run();
        }
    }
    else if (flush === 'post') {
        queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);
    }
    else {
        effect.run();
    }
    return () => {
        effect.stop();
        if (instance && instance.scope) {
            shared_esm_bundler_remove(instance.scope.effects, effect);
        }
    };
}
// this.$watch
function instanceWatch(source, value, options) {
    const publicThis = this.proxy;
    const getter = isString(source)
        ? source.includes('.')
            ? createPathGetter(publicThis, source)
            : () => publicThis[source]
        : source.bind(publicThis, publicThis);
    let cb;
    if (isFunction(value)) {
        cb = value;
    }
    else {
        cb = value.handler;
        options = value;
    }
    const cur = currentInstance;
    setCurrentInstance(this);
    const res = doWatch(getter, cb.bind(publicThis), options);
    if (cur) {
        setCurrentInstance(cur);
    }
    else {
        unsetCurrentInstance();
    }
    return res;
}
function createPathGetter(ctx, path) {
    const segments = path.split('.');
    return () => {
        let cur = ctx;
        for (let i = 0; i < segments.length && cur; i++) {
            cur = cur[segments[i]];
        }
        return cur;
    };
}
function traverse(value, seen) {
    if (!shared_esm_bundler_isObject(value) || value["__v_skip" /* SKIP */]) {
        return value;
    }
    seen = seen || new Set();
    if (seen.has(value)) {
        return value;
    }
    seen.add(value);
    if (reactivity_esm_bundler_isRef(value)) {
        traverse(value.value, seen);
    }
    else if (shared_esm_bundler_isArray(value)) {
        for (let i = 0; i < value.length; i++) {
            traverse(value[i], seen);
        }
    }
    else if (shared_esm_bundler_isSet(value) || isMap(value)) {
        value.forEach((v) => {
            traverse(v, seen);
        });
    }
    else if (isPlainObject(value)) {
        for (const key in value) {
            traverse(value[key], seen);
        }
    }
    return value;
}

function useTransitionState() {
    const state = {
        isMounted: false,
        isLeaving: false,
        isUnmounting: false,
        leavingVNodes: new Map()
    };
    runtime_core_esm_bundler_onMounted(() => {
        state.isMounted = true;
    });
    onBeforeUnmount(() => {
        state.isUnmounting = true;
    });
    return state;
}
const TransitionHookValidator = [Function, Array];
const BaseTransitionImpl = {
    name: `BaseTransition`,
    props: {
        mode: String,
        appear: Boolean,
        persisted: Boolean,
        // enter
        onBeforeEnter: TransitionHookValidator,
        onEnter: TransitionHookValidator,
        onAfterEnter: TransitionHookValidator,
        onEnterCancelled: TransitionHookValidator,
        // leave
        onBeforeLeave: TransitionHookValidator,
        onLeave: TransitionHookValidator,
        onAfterLeave: TransitionHookValidator,
        onLeaveCancelled: TransitionHookValidator,
        // appear
        onBeforeAppear: TransitionHookValidator,
        onAppear: TransitionHookValidator,
        onAfterAppear: TransitionHookValidator,
        onAppearCancelled: TransitionHookValidator
    },
    setup(props, { slots }) {
        const instance = runtime_core_esm_bundler_getCurrentInstance();
        const state = useTransitionState();
        let prevTransitionKey;
        return () => {
            const children = slots.default && getTransitionRawChildren(slots.default(), true);
            if (!children || !children.length) {
                return;
            }
            // warn multiple elements
            if (false) {}
            // there's no need to track reactivity for these props so use the raw
            // props for a bit better perf
            const rawProps = reactivity_esm_bundler_toRaw(props);
            const { mode } = rawProps;
            // check mode
            if (false) {}
            // at this point children has a guaranteed length of 1.
            const child = children[0];
            if (state.isLeaving) {
                return emptyPlaceholder(child);
            }
            // in the case of <transition><keep-alive/></transition>, we need to
            // compare the type of the kept-alive children.
            const innerChild = getKeepAliveChild(child);
            if (!innerChild) {
                return emptyPlaceholder(child);
            }
            const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);
            setTransitionHooks(innerChild, enterHooks);
            const oldChild = instance.subTree;
            const oldInnerChild = oldChild && getKeepAliveChild(oldChild);
            let transitionKeyChanged = false;
            const { getTransitionKey } = innerChild.type;
            if (getTransitionKey) {
                const key = getTransitionKey();
                if (prevTransitionKey === undefined) {
                    prevTransitionKey = key;
                }
                else if (key !== prevTransitionKey) {
                    prevTransitionKey = key;
                    transitionKeyChanged = true;
                }
            }
            // handle mode
            if (oldInnerChild &&
                oldInnerChild.type !== Comment &&
                (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {
                const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
                // update old tree's hooks in case of dynamic transition
                setTransitionHooks(oldInnerChild, leavingHooks);
                // switching between different views
                if (mode === 'out-in') {
                    state.isLeaving = true;
                    // return placeholder node and queue update when leave finishes
                    leavingHooks.afterLeave = () => {
                        state.isLeaving = false;
                        instance.update();
                    };
                    return emptyPlaceholder(child);
                }
                else if (mode === 'in-out' && innerChild.type !== Comment) {
                    leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
                        const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
                        leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
                        // early removal callback
                        el._leaveCb = () => {
                            earlyRemove();
                            el._leaveCb = undefined;
                            delete enterHooks.delayedLeave;
                        };
                        enterHooks.delayedLeave = delayedLeave;
                    };
                }
            }
            return child;
        };
    }
};
// export the public type for h/tsx inference
// also to avoid inline import() in generated d.ts files
const BaseTransition = BaseTransitionImpl;
function getLeavingNodesForType(state, vnode) {
    const { leavingVNodes } = state;
    let leavingVNodesCache = leavingVNodes.get(vnode.type);
    if (!leavingVNodesCache) {
        leavingVNodesCache = Object.create(null);
        leavingVNodes.set(vnode.type, leavingVNodesCache);
    }
    return leavingVNodesCache;
}
// The transition hooks are attached to the vnode as vnode.transition
// and will be called at appropriate timing in the renderer.
function resolveTransitionHooks(vnode, props, state, instance) {
    const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;
    const key = String(vnode.key);
    const leavingVNodesCache = getLeavingNodesForType(state, vnode);
    const callHook = (hook, args) => {
        hook &&
            callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);
    };
    const hooks = {
        mode,
        persisted,
        beforeEnter(el) {
            let hook = onBeforeEnter;
            if (!state.isMounted) {
                if (appear) {
                    hook = onBeforeAppear || onBeforeEnter;
                }
                else {
                    return;
                }
            }
            // for same element (v-show)
            if (el._leaveCb) {
                el._leaveCb(true /* cancelled */);
            }
            // for toggled element with same key (v-if)
            const leavingVNode = leavingVNodesCache[key];
            if (leavingVNode &&
                isSameVNodeType(vnode, leavingVNode) &&
                leavingVNode.el._leaveCb) {
                // force early removal (not cancelled)
                leavingVNode.el._leaveCb();
            }
            callHook(hook, [el]);
        },
        enter(el) {
            let hook = onEnter;
            let afterHook = onAfterEnter;
            let cancelHook = onEnterCancelled;
            if (!state.isMounted) {
                if (appear) {
                    hook = onAppear || onEnter;
                    afterHook = onAfterAppear || onAfterEnter;
                    cancelHook = onAppearCancelled || onEnterCancelled;
                }
                else {
                    return;
                }
            }
            let called = false;
            const done = (el._enterCb = (cancelled) => {
                if (called)
                    return;
                called = true;
                if (cancelled) {
                    callHook(cancelHook, [el]);
                }
                else {
                    callHook(afterHook, [el]);
                }
                if (hooks.delayedLeave) {
                    hooks.delayedLeave();
                }
                el._enterCb = undefined;
            });
            if (hook) {
                hook(el, done);
                if (hook.length <= 1) {
                    done();
                }
            }
            else {
                done();
            }
        },
        leave(el, remove) {
            const key = String(vnode.key);
            if (el._enterCb) {
                el._enterCb(true /* cancelled */);
            }
            if (state.isUnmounting) {
                return remove();
            }
            callHook(onBeforeLeave, [el]);
            let called = false;
            const done = (el._leaveCb = (cancelled) => {
                if (called)
                    return;
                called = true;
                remove();
                if (cancelled) {
                    callHook(onLeaveCancelled, [el]);
                }
                else {
                    callHook(onAfterLeave, [el]);
                }
                el._leaveCb = undefined;
                if (leavingVNodesCache[key] === vnode) {
                    delete leavingVNodesCache[key];
                }
            });
            leavingVNodesCache[key] = vnode;
            if (onLeave) {
                onLeave(el, done);
                if (onLeave.length <= 1) {
                    done();
                }
            }
            else {
                done();
            }
        },
        clone(vnode) {
            return resolveTransitionHooks(vnode, props, state, instance);
        }
    };
    return hooks;
}
// the placeholder really only handles one special case: KeepAlive
// in the case of a KeepAlive in a leave phase we need to return a KeepAlive
// placeholder with empty content to avoid the KeepAlive instance from being
// unmounted.
function emptyPlaceholder(vnode) {
    if (isKeepAlive(vnode)) {
        vnode = cloneVNode(vnode);
        vnode.children = null;
        return vnode;
    }
}
function getKeepAliveChild(vnode) {
    return isKeepAlive(vnode)
        ? vnode.children
            ? vnode.children[0]
            : undefined
        : vnode;
}
function setTransitionHooks(vnode, hooks) {
    if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {
        setTransitionHooks(vnode.component.subTree, hooks);
    }
    else if (vnode.shapeFlag & 128 /* SUSPENSE */) {
        vnode.ssContent.transition = hooks.clone(vnode.ssContent);
        vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
    }
    else {
        vnode.transition = hooks;
    }
}
function getTransitionRawChildren(children, keepComment = false) {
    let ret = [];
    let keyedFragmentCount = 0;
    for (let i = 0; i < children.length; i++) {
        const child = children[i];
        // handle fragment children case, e.g. v-for
        if (child.type === runtime_core_esm_bundler_Fragment) {
            if (child.patchFlag & 128 /* KEYED_FRAGMENT */)
                keyedFragmentCount++;
            ret = ret.concat(getTransitionRawChildren(child.children, keepComment));
        }
        // comment placeholders should be skipped, e.g. v-if
        else if (keepComment || child.type !== Comment) {
            ret.push(child);
        }
    }
    // #1126 if a transition children list contains multiple sub fragments, these
    // fragments will be merged into a flat children array. Since each v-for
    // fragment may contain different static bindings inside, we need to de-op
    // these children to force full diffs to ensure correct behavior.
    if (keyedFragmentCount > 1) {
        for (let i = 0; i < ret.length; i++) {
            ret[i].patchFlag = -2 /* BAIL */;
        }
    }
    return ret;
}

// implementation, close to no-op
function runtime_core_esm_bundler_defineComponent(options) {
    return shared_esm_bundler_isFunction(options) ? { setup: options, name: options.name } : options;
}

const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
function defineAsyncComponent(source) {
    if (isFunction(source)) {
        source = { loader: source };
    }
    const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out
    suspensible = true, onError: userOnError } = source;
    let pendingRequest = null;
    let resolvedComp;
    let retries = 0;
    const retry = () => {
        retries++;
        pendingRequest = null;
        return load();
    };
    const load = () => {
        let thisRequest;
        return (pendingRequest ||
            (thisRequest = pendingRequest =
                loader()
                    .catch(err => {
                    err = err instanceof Error ? err : new Error(String(err));
                    if (userOnError) {
                        return new Promise((resolve, reject) => {
                            const userRetry = () => resolve(retry());
                            const userFail = () => reject(err);
                            userOnError(err, userRetry, userFail, retries + 1);
                        });
                    }
                    else {
                        throw err;
                    }
                })
                    .then((comp) => {
                    if (thisRequest !== pendingRequest && pendingRequest) {
                        return pendingRequest;
                    }
                    if (false) {}
                    // interop module default
                    if (comp &&
                        (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {
                        comp = comp.default;
                    }
                    if (false) {}
                    resolvedComp = comp;
                    return comp;
                })));
    };
    return runtime_core_esm_bundler_defineComponent({
        name: 'AsyncComponentWrapper',
        __asyncLoader: load,
        get __asyncResolved() {
            return resolvedComp;
        },
        setup() {
            const instance = currentInstance;
            // already resolved
            if (resolvedComp) {
                return () => createInnerComp(resolvedComp, instance);
            }
            const onError = (err) => {
                pendingRequest = null;
                handleError(err, instance, 13 /* ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);
            };
            // suspense-controlled or SSR.
            if ((suspensible && instance.suspense) ||
                (isInSSRComponentSetup)) {
                return load()
                    .then(comp => {
                    return () => createInnerComp(comp, instance);
                })
                    .catch(err => {
                    onError(err);
                    return () => errorComponent
                        ? runtime_core_esm_bundler_createVNode(errorComponent, {
                            error: err
                        })
                        : null;
                });
            }
            const loaded = ref(false);
            const error = ref();
            const delayed = ref(!!delay);
            if (delay) {
                setTimeout(() => {
                    delayed.value = false;
                }, delay);
            }
            if (timeout != null) {
                setTimeout(() => {
                    if (!loaded.value && !error.value) {
                        const err = new Error(`Async component timed out after ${timeout}ms.`);
                        onError(err);
                        error.value = err;
                    }
                }, timeout);
            }
            load()
                .then(() => {
                loaded.value = true;
                if (instance.parent && isKeepAlive(instance.parent.vnode)) {
                    // parent is keep-alive, force update so the loaded component's
                    // name is taken into account
                    queueJob(instance.parent.update);
                }
            })
                .catch(err => {
                onError(err);
                error.value = err;
            });
            return () => {
                if (loaded.value && resolvedComp) {
                    return createInnerComp(resolvedComp, instance);
                }
                else if (error.value && errorComponent) {
                    return runtime_core_esm_bundler_createVNode(errorComponent, {
                        error: error.value
                    });
                }
                else if (loadingComponent && !delayed.value) {
                    return runtime_core_esm_bundler_createVNode(loadingComponent);
                }
            };
        }
    });
}
function createInnerComp(comp, { vnode: { ref, props, children } }) {
    const vnode = runtime_core_esm_bundler_createVNode(comp, props, children);
    // ensure inner component inherits the async wrapper's ref owner
    vnode.ref = ref;
    return vnode;
}

const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
const KeepAliveImpl = {
    name: `KeepAlive`,
    // Marker for special handling inside the renderer. We are not using a ===
    // check directly on KeepAlive in the renderer, because importing it directly
    // would prevent it from being tree-shaken.
    __isKeepAlive: true,
    props: {
        include: [String, RegExp, Array],
        exclude: [String, RegExp, Array],
        max: [String, Number]
    },
    setup(props, { slots }) {
        const instance = runtime_core_esm_bundler_getCurrentInstance();
        // KeepAlive communicates with the instantiated renderer via the
        // ctx where the renderer passes in its internals,
        // and the KeepAlive instance exposes activate/deactivate implementations.
        // The whole point of this is to avoid importing KeepAlive directly in the
        // renderer to facilitate tree-shaking.
        const sharedContext = instance.ctx;
        // if the internal renderer is not registered, it indicates that this is server-side rendering,
        // for KeepAlive, we just need to render its children
        if (!sharedContext.renderer) {
            return slots.default;
        }
        const cache = new Map();
        const keys = new Set();
        let current = null;
        if (false) {}
        const parentSuspense = instance.suspense;
        const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;
        const storageContainer = createElement('div');
        sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {
            const instance = vnode.component;
            move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);
            // in case props have changed
            patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);
            queuePostRenderEffect(() => {
                instance.isDeactivated = false;
                if (instance.a) {
                    invokeArrayFns(instance.a);
                }
                const vnodeHook = vnode.props && vnode.props.onVnodeMounted;
                if (vnodeHook) {
                    invokeVNodeHook(vnodeHook, instance.parent, vnode);
                }
            }, parentSuspense);
            if (false) {}
        };
        sharedContext.deactivate = (vnode) => {
            const instance = vnode.component;
            move(vnode, storageContainer, null, 1 /* LEAVE */, parentSuspense);
            queuePostRenderEffect(() => {
                if (instance.da) {
                    invokeArrayFns(instance.da);
                }
                const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;
                if (vnodeHook) {
                    invokeVNodeHook(vnodeHook, instance.parent, vnode);
                }
                instance.isDeactivated = true;
            }, parentSuspense);
            if (false) {}
        };
        function unmount(vnode) {
            // reset the shapeFlag so it can be properly unmounted
            resetShapeFlag(vnode);
            _unmount(vnode, instance, parentSuspense, true);
        }
        function pruneCache(filter) {
            cache.forEach((vnode, key) => {
                const name = getComponentName(vnode.type);
                if (name && (!filter || !filter(name))) {
                    pruneCacheEntry(key);
                }
            });
        }
        function pruneCacheEntry(key) {
            const cached = cache.get(key);
            if (!current || cached.type !== current.type) {
                unmount(cached);
            }
            else if (current) {
                // current active instance should no longer be kept-alive.
                // we can't unmount it now but it might be later, so reset its flag now.
                resetShapeFlag(current);
            }
            cache.delete(key);
            keys.delete(key);
        }
        // prune cache on include/exclude prop change
        watch(() => [props.include, props.exclude], ([include, exclude]) => {
            include && pruneCache(name => matches(include, name));
            exclude && pruneCache(name => !matches(exclude, name));
        }, 
        // prune post-render after `current` has been updated
        { flush: 'post', deep: true });
        // cache sub tree after render
        let pendingCacheKey = null;
        const cacheSubtree = () => {
            // fix #1621, the pendingCacheKey could be 0
            if (pendingCacheKey != null) {
                cache.set(pendingCacheKey, getInnerChild(instance.subTree));
            }
        };
        runtime_core_esm_bundler_onMounted(cacheSubtree);
        onUpdated(cacheSubtree);
        onBeforeUnmount(() => {
            cache.forEach(cached => {
                const { subTree, suspense } = instance;
                const vnode = getInnerChild(subTree);
                if (cached.type === vnode.type) {
                    // current instance will be unmounted as part of keep-alive's unmount
                    resetShapeFlag(vnode);
                    // but invoke its deactivated hook here
                    const da = vnode.component.da;
                    da && queuePostRenderEffect(da, suspense);
                    return;
                }
                unmount(cached);
            });
        });
        return () => {
            pendingCacheKey = null;
            if (!slots.default) {
                return null;
            }
            const children = slots.default();
            const rawVNode = children[0];
            if (children.length > 1) {
                if ((false)) {}
                current = null;
                return children;
            }
            else if (!isVNode(rawVNode) ||
                (!(rawVNode.shapeFlag & 4 /* STATEFUL_COMPONENT */) &&
                    !(rawVNode.shapeFlag & 128 /* SUSPENSE */))) {
                current = null;
                return rawVNode;
            }
            let vnode = getInnerChild(rawVNode);
            const comp = vnode.type;
            // for async components, name check should be based in its loaded
            // inner component if available
            const name = getComponentName(isAsyncWrapper(vnode)
                ? vnode.type.__asyncResolved || {}
                : comp);
            const { include, exclude, max } = props;
            if ((include && (!name || !matches(include, name))) ||
                (exclude && name && matches(exclude, name))) {
                current = vnode;
                return rawVNode;
            }
            const key = vnode.key == null ? comp : vnode.key;
            const cachedVNode = cache.get(key);
            // clone vnode if it's reused because we are going to mutate it
            if (vnode.el) {
                vnode = cloneVNode(vnode);
                if (rawVNode.shapeFlag & 128 /* SUSPENSE */) {
                    rawVNode.ssContent = vnode;
                }
            }
            // #1513 it's possible for the returned vnode to be cloned due to attr
            // fallthrough or scopeId, so the vnode here may not be the final vnode
            // that is mounted. Instead of caching it directly, we store the pending
            // key and cache `instance.subTree` (the normalized vnode) in
            // beforeMount/beforeUpdate hooks.
            pendingCacheKey = key;
            if (cachedVNode) {
                // copy over mounted state
                vnode.el = cachedVNode.el;
                vnode.component = cachedVNode.component;
                if (vnode.transition) {
                    // recursively update transition hooks on subTree
                    setTransitionHooks(vnode, vnode.transition);
                }
                // avoid vnode being mounted as fresh
                vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;
                // make this key the freshest
                keys.delete(key);
                keys.add(key);
            }
            else {
                keys.add(key);
                // prune oldest entry
                if (max && keys.size > parseInt(max, 10)) {
                    pruneCacheEntry(keys.values().next().value);
                }
            }
            // avoid vnode being unmounted
            vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;
            current = vnode;
            return rawVNode;
        };
    }
};
// export the public type for h/tsx inference
// also to avoid inline import() in generated d.ts files
const KeepAlive = (/* unused pure expression or super */ null && (KeepAliveImpl));
function matches(pattern, name) {
    if (shared_esm_bundler_isArray(pattern)) {
        return pattern.some((p) => matches(p, name));
    }
    else if (shared_esm_bundler_isString(pattern)) {
        return pattern.split(',').includes(name);
    }
    else if (pattern.test) {
        return pattern.test(name);
    }
    /* istanbul ignore next */
    return false;
}
function onActivated(hook, target) {
    registerKeepAliveHook(hook, "a" /* ACTIVATED */, target);
}
function onDeactivated(hook, target) {
    registerKeepAliveHook(hook, "da" /* DEACTIVATED */, target);
}
function registerKeepAliveHook(hook, type, target = currentInstance) {
    // cache the deactivate branch check wrapper for injected hooks so the same
    // hook can be properly deduped by the scheduler. "__wdc" stands for "with
    // deactivation check".
    const wrappedHook = hook.__wdc ||
        (hook.__wdc = () => {
            // only fire the hook if the target instance is NOT in a deactivated branch.
            let current = target;
            while (current) {
                if (current.isDeactivated) {
                    return;
                }
                current = current.parent;
            }
            return hook();
        });
    injectHook(type, wrappedHook, target);
    // In addition to registering it on the target instance, we walk up the parent
    // chain and register it on all ancestor instances that are keep-alive roots.
    // This avoids the need to walk the entire component tree when invoking these
    // hooks, and more importantly, avoids the need to track child components in
    // arrays.
    if (target) {
        let current = target.parent;
        while (current && current.parent) {
            if (isKeepAlive(current.parent.vnode)) {
                injectToKeepAliveRoot(wrappedHook, type, target, current);
            }
            current = current.parent;
        }
    }
}
function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
    // injectHook wraps the original for error handling, so make sure to remove
    // the wrapped version.
    const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);
    runtime_core_esm_bundler_onUnmounted(() => {
        remove(keepAliveRoot[type], injected);
    }, target);
}
function resetShapeFlag(vnode) {
    let shapeFlag = vnode.shapeFlag;
    if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {
        shapeFlag -= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;
    }
    if (shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {
        shapeFlag -= 512 /* COMPONENT_KEPT_ALIVE */;
    }
    vnode.shapeFlag = shapeFlag;
}
function getInnerChild(vnode) {
    return vnode.shapeFlag & 128 /* SUSPENSE */ ? vnode.ssContent : vnode;
}

function injectHook(type, hook, target = currentInstance, prepend = false) {
    if (target) {
        const hooks = target[type] || (target[type] = []);
        // cache the error handling wrapper for injected hooks so the same hook
        // can be properly deduped by the scheduler. "__weh" stands for "with error
        // handling".
        const wrappedHook = hook.__weh ||
            (hook.__weh = (...args) => {
                if (target.isUnmounted) {
                    return;
                }
                // disable tracking inside all lifecycle hooks
                // since they can potentially be called inside effects.
                pauseTracking();
                // Set currentInstance during hook invocation.
                // This assumes the hook does not synchronously trigger other hooks, which
                // can only be false when the user does something really funky.
                setCurrentInstance(target);
                const res = callWithAsyncErrorHandling(hook, target, type, args);
                unsetCurrentInstance();
                resetTracking();
                return res;
            });
        if (prepend) {
            hooks.unshift(wrappedHook);
        }
        else {
            hooks.push(wrappedHook);
        }
        return wrappedHook;
    }
    else if ((false)) {}
}
const createHook = (lifecycle) => (hook, target = currentInstance) => 
// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)
(!isInSSRComponentSetup || lifecycle === "sp" /* SERVER_PREFETCH */) &&
    injectHook(lifecycle, hook, target);
const onBeforeMount = createHook("bm" /* BEFORE_MOUNT */);
const runtime_core_esm_bundler_onMounted = createHook("m" /* MOUNTED */);
const onBeforeUpdate = createHook("bu" /* BEFORE_UPDATE */);
const onUpdated = createHook("u" /* UPDATED */);
const onBeforeUnmount = createHook("bum" /* BEFORE_UNMOUNT */);
const runtime_core_esm_bundler_onUnmounted = createHook("um" /* UNMOUNTED */);
const onServerPrefetch = createHook("sp" /* SERVER_PREFETCH */);
const onRenderTriggered = createHook("rtg" /* RENDER_TRIGGERED */);
const onRenderTracked = createHook("rtc" /* RENDER_TRACKED */);
function onErrorCaptured(hook, target = currentInstance) {
    injectHook("ec" /* ERROR_CAPTURED */, hook, target);
}

function createDuplicateChecker() {
    const cache = Object.create(null);
    return (type, key) => {
        if (cache[key]) {
            runtime_core_esm_bundler_warn(`${type} property "${key}" is already defined in ${cache[key]}.`);
        }
        else {
            cache[key] = type;
        }
    };
}
let shouldCacheAccess = true;
function applyOptions(instance) {
    const options = resolveMergedOptions(instance);
    const publicThis = instance.proxy;
    const ctx = instance.ctx;
    // do not cache property access on public proxy during state initialization
    shouldCacheAccess = false;
    // call beforeCreate first before accessing other options since
    // the hook may mutate resolved options (#2791)
    if (options.beforeCreate) {
        callHook(options.beforeCreate, instance, "bc" /* BEFORE_CREATE */);
    }
    const { 
    // state
    data: dataOptions, computed: computedOptions, methods, watch: watchOptions, provide: provideOptions, inject: injectOptions, 
    // lifecycle
    created, beforeMount, mounted, beforeUpdate, updated, activated, deactivated, beforeDestroy, beforeUnmount, destroyed, unmounted, render, renderTracked, renderTriggered, errorCaptured, serverPrefetch, 
    // public API
    expose, inheritAttrs, 
    // assets
    components, directives, filters } = options;
    const checkDuplicateProperties = ( false) ? 0 : null;
    if ((false)) {}
    // options initialization order (to be consistent with Vue 2):
    // - props (already done outside of this function)
    // - inject
    // - methods
    // - data (deferred since it relies on `this` access)
    // - computed
    // - watch (deferred since it relies on `this` access)
    if (injectOptions) {
        resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance.appContext.config.unwrapInjectedRef);
    }
    if (methods) {
        for (const key in methods) {
            const methodHandler = methods[key];
            if (isFunction(methodHandler)) {
                // In dev mode, we use the `createRenderContext` function to define
                // methods to the proxy target, and those are read-only but
                // reconfigurable, so it needs to be redefined here
                if ((false)) {}
                else {
                    ctx[key] = methodHandler.bind(publicThis);
                }
                if ((false)) {}
            }
            else if ((false)) {}
        }
    }
    if (dataOptions) {
        if (false) {}
        const data = dataOptions.call(publicThis, publicThis);
        if (false) {}
        if (!isObject(data)) {
            ( false) && 0;
        }
        else {
            instance.data = reactive(data);
            if ((false)) {}
        }
    }
    // state initialization complete at this point - start caching access
    shouldCacheAccess = true;
    if (computedOptions) {
        for (const key in computedOptions) {
            const opt = computedOptions[key];
            const get = isFunction(opt)
                ? opt.bind(publicThis, publicThis)
                : isFunction(opt.get)
                    ? opt.get.bind(publicThis, publicThis)
                    : NOOP;
            if (false) {}
            const set = !isFunction(opt) && isFunction(opt.set)
                ? opt.set.bind(publicThis)
                : ( false)
                    ? 0
                    : NOOP;
            const c = runtime_core_esm_bundler_computed({
                get,
                set
            });
            Object.defineProperty(ctx, key, {
                enumerable: true,
                configurable: true,
                get: () => c.value,
                set: v => (c.value = v)
            });
            if ((false)) {}
        }
    }
    if (watchOptions) {
        for (const key in watchOptions) {
            createWatcher(watchOptions[key], ctx, publicThis, key);
        }
    }
    if (provideOptions) {
        const provides = isFunction(provideOptions)
            ? provideOptions.call(publicThis)
            : provideOptions;
        Reflect.ownKeys(provides).forEach(key => {
            provide(key, provides[key]);
        });
    }
    if (created) {
        callHook(created, instance, "c" /* CREATED */);
    }
    function registerLifecycleHook(register, hook) {
        if (isArray(hook)) {
            hook.forEach(_hook => register(_hook.bind(publicThis)));
        }
        else if (hook) {
            register(hook.bind(publicThis));
        }
    }
    registerLifecycleHook(onBeforeMount, beforeMount);
    registerLifecycleHook(runtime_core_esm_bundler_onMounted, mounted);
    registerLifecycleHook(onBeforeUpdate, beforeUpdate);
    registerLifecycleHook(onUpdated, updated);
    registerLifecycleHook(onActivated, activated);
    registerLifecycleHook(onDeactivated, deactivated);
    registerLifecycleHook(onErrorCaptured, errorCaptured);
    registerLifecycleHook(onRenderTracked, renderTracked);
    registerLifecycleHook(onRenderTriggered, renderTriggered);
    registerLifecycleHook(onBeforeUnmount, beforeUnmount);
    registerLifecycleHook(runtime_core_esm_bundler_onUnmounted, unmounted);
    registerLifecycleHook(onServerPrefetch, serverPrefetch);
    if (isArray(expose)) {
        if (expose.length) {
            const exposed = instance.exposed || (instance.exposed = {});
            expose.forEach(key => {
                Object.defineProperty(exposed, key, {
                    get: () => publicThis[key],
                    set: val => (publicThis[key] = val)
                });
            });
        }
        else if (!instance.exposed) {
            instance.exposed = {};
        }
    }
    // options that are handled when creating the instance but also need to be
    // applied from mixins
    if (render && instance.render === NOOP) {
        instance.render = render;
    }
    if (inheritAttrs != null) {
        instance.inheritAttrs = inheritAttrs;
    }
    // asset options.
    if (components)
        instance.components = components;
    if (directives)
        instance.directives = directives;
}
function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {
    if (isArray(injectOptions)) {
        injectOptions = normalizeInject(injectOptions);
    }
    for (const key in injectOptions) {
        const opt = injectOptions[key];
        let injected;
        if (isObject(opt)) {
            if ('default' in opt) {
                injected = inject(opt.from || key, opt.default, true /* treat default function as factory */);
            }
            else {
                injected = inject(opt.from || key);
            }
        }
        else {
            injected = inject(opt);
        }
        if (isRef(injected)) {
            // TODO remove the check in 3.3
            if (unwrapRef) {
                Object.defineProperty(ctx, key, {
                    enumerable: true,
                    configurable: true,
                    get: () => injected.value,
                    set: v => (injected.value = v)
                });
            }
            else {
                if ((false)) {}
                ctx[key] = injected;
            }
        }
        else {
            ctx[key] = injected;
        }
        if ((false)) {}
    }
}
function callHook(hook, instance, type) {
    callWithAsyncErrorHandling(isArray(hook)
        ? hook.map(h => h.bind(instance.proxy))
        : hook.bind(instance.proxy), instance, type);
}
function createWatcher(raw, ctx, publicThis, key) {
    const getter = key.includes('.')
        ? createPathGetter(publicThis, key)
        : () => publicThis[key];
    if (isString(raw)) {
        const handler = ctx[raw];
        if (isFunction(handler)) {
            watch(getter, handler);
        }
        else if ((false)) {}
    }
    else if (isFunction(raw)) {
        watch(getter, raw.bind(publicThis));
    }
    else if (isObject(raw)) {
        if (isArray(raw)) {
            raw.forEach(r => createWatcher(r, ctx, publicThis, key));
        }
        else {
            const handler = isFunction(raw.handler)
                ? raw.handler.bind(publicThis)
                : ctx[raw.handler];
            if (isFunction(handler)) {
                watch(getter, handler, raw);
            }
            else if ((false)) {}
        }
    }
    else if ((false)) {}
}
/**
 * Resolve merged options and cache it on the component.
 * This is done only once per-component since the merging does not involve
 * instances.
 */
function resolveMergedOptions(instance) {
    const base = instance.type;
    const { mixins, extends: extendsOptions } = base;
    const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance.appContext;
    const cached = cache.get(base);
    let resolved;
    if (cached) {
        resolved = cached;
    }
    else if (!globalMixins.length && !mixins && !extendsOptions) {
        {
            resolved = base;
        }
    }
    else {
        resolved = {};
        if (globalMixins.length) {
            globalMixins.forEach(m => mergeOptions(resolved, m, optionMergeStrategies, true));
        }
        mergeOptions(resolved, base, optionMergeStrategies);
    }
    cache.set(base, resolved);
    return resolved;
}
function mergeOptions(to, from, strats, asMixin = false) {
    const { mixins, extends: extendsOptions } = from;
    if (extendsOptions) {
        mergeOptions(to, extendsOptions, strats, true);
    }
    if (mixins) {
        mixins.forEach((m) => mergeOptions(to, m, strats, true));
    }
    for (const key in from) {
        if (asMixin && key === 'expose') {
            ( false) &&
                0;
        }
        else {
            const strat = internalOptionMergeStrats[key] || (strats && strats[key]);
            to[key] = strat ? strat(to[key], from[key]) : from[key];
        }
    }
    return to;
}
const internalOptionMergeStrats = {
    data: mergeDataFn,
    props: mergeObjectOptions,
    emits: mergeObjectOptions,
    // objects
    methods: mergeObjectOptions,
    computed: mergeObjectOptions,
    // lifecycle
    beforeCreate: mergeAsArray,
    created: mergeAsArray,
    beforeMount: mergeAsArray,
    mounted: mergeAsArray,
    beforeUpdate: mergeAsArray,
    updated: mergeAsArray,
    beforeDestroy: mergeAsArray,
    beforeUnmount: mergeAsArray,
    destroyed: mergeAsArray,
    unmounted: mergeAsArray,
    activated: mergeAsArray,
    deactivated: mergeAsArray,
    errorCaptured: mergeAsArray,
    serverPrefetch: mergeAsArray,
    // assets
    components: mergeObjectOptions,
    directives: mergeObjectOptions,
    // watch
    watch: mergeWatchOptions,
    // provide / inject
    provide: mergeDataFn,
    inject: mergeInject
};
function mergeDataFn(to, from) {
    if (!from) {
        return to;
    }
    if (!to) {
        return from;
    }
    return function mergedDataFn() {
        return (shared_esm_bundler_extend)(shared_esm_bundler_isFunction(to) ? to.call(this, this) : to, shared_esm_bundler_isFunction(from) ? from.call(this, this) : from);
    };
}
function mergeInject(to, from) {
    return mergeObjectOptions(normalizeInject(to), normalizeInject(from));
}
function normalizeInject(raw) {
    if (shared_esm_bundler_isArray(raw)) {
        const res = {};
        for (let i = 0; i < raw.length; i++) {
            res[raw[i]] = raw[i];
        }
        return res;
    }
    return raw;
}
function mergeAsArray(to, from) {
    return to ? [...new Set([].concat(to, from))] : from;
}
function mergeObjectOptions(to, from) {
    return to ? shared_esm_bundler_extend(shared_esm_bundler_extend(Object.create(null), to), from) : from;
}
function mergeWatchOptions(to, from) {
    if (!to)
        return from;
    if (!from)
        return to;
    const merged = shared_esm_bundler_extend(Object.create(null), to);
    for (const key in from) {
        merged[key] = mergeAsArray(to[key], from[key]);
    }
    return merged;
}

function initProps(instance, rawProps, isStateful, // result of bitwise flag comparison
isSSR = false) {
    const props = {};
    const attrs = {};
    def(attrs, InternalObjectKey, 1);
    instance.propsDefaults = Object.create(null);
    setFullProps(instance, rawProps, props, attrs);
    // ensure all declared prop keys are present
    for (const key in instance.propsOptions[0]) {
        if (!(key in props)) {
            props[key] = undefined;
        }
    }
    // validation
    if ((false)) {}
    if (isStateful) {
        // stateful
        instance.props = isSSR ? props : shallowReactive(props);
    }
    else {
        if (!instance.type.props) {
            // functional w/ optional props, props === attrs
            instance.props = attrs;
        }
        else {
            // functional w/ declared props
            instance.props = props;
        }
    }
    instance.attrs = attrs;
}
function updateProps(instance, rawProps, rawPrevProps, optimized) {
    const { props, attrs, vnode: { patchFlag } } = instance;
    const rawCurrentProps = reactivity_esm_bundler_toRaw(props);
    const [options] = instance.propsOptions;
    let hasAttrsChanged = false;
    if (
    // always force full diff in dev
    // - #1942 if hmr is enabled with sfc component
    // - vite#872 non-sfc component used by sfc component
     true &&
        (optimized || patchFlag > 0) &&
        !(patchFlag & 16 /* FULL_PROPS */)) {
        if (patchFlag & 8 /* PROPS */) {
            // Compiler-generated props & no keys change, just set the updated
            // the props.
            const propsToUpdate = instance.vnode.dynamicProps;
            for (let i = 0; i < propsToUpdate.length; i++) {
                let key = propsToUpdate[i];
                // PROPS flag guarantees rawProps to be non-null
                const value = rawProps[key];
                if (options) {
                    // attr / props separation was done on init and will be consistent
                    // in this code path, so just check if attrs have it.
                    if (shared_esm_bundler_hasOwn(attrs, key)) {
                        if (value !== attrs[key]) {
                            attrs[key] = value;
                            hasAttrsChanged = true;
                        }
                    }
                    else {
                        const camelizedKey = camelize(key);
                        props[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance, false /* isAbsent */);
                    }
                }
                else {
                    if (value !== attrs[key]) {
                        attrs[key] = value;
                        hasAttrsChanged = true;
                    }
                }
            }
        }
    }
    else {
        // full props update.
        if (setFullProps(instance, rawProps, props, attrs)) {
            hasAttrsChanged = true;
        }
        // in case of dynamic props, check if we need to delete keys from
        // the props object
        let kebabKey;
        for (const key in rawCurrentProps) {
            if (!rawProps ||
                // for camelCase
                (!shared_esm_bundler_hasOwn(rawProps, key) &&
                    // it's possible the original props was passed in as kebab-case
                    // and converted to camelCase (#955)
                    ((kebabKey = shared_esm_bundler_hyphenate(key)) === key || !shared_esm_bundler_hasOwn(rawProps, kebabKey)))) {
                if (options) {
                    if (rawPrevProps &&
                        // for camelCase
                        (rawPrevProps[key] !== undefined ||
                            // for kebab-case
                            rawPrevProps[kebabKey] !== undefined)) {
                        props[key] = resolvePropValue(options, rawCurrentProps, key, undefined, instance, true /* isAbsent */);
                    }
                }
                else {
                    delete props[key];
                }
            }
        }
        // in the case of functional component w/o props declaration, props and
        // attrs point to the same object so it should already have been updated.
        if (attrs !== rawCurrentProps) {
            for (const key in attrs) {
                if (!rawProps ||
                    (!shared_esm_bundler_hasOwn(rawProps, key) &&
                        (!false ))) {
                    delete attrs[key];
                    hasAttrsChanged = true;
                }
            }
        }
    }
    // trigger updates for $attrs in case it's used in component slots
    if (hasAttrsChanged) {
        trigger(instance, "set" /* SET */, '$attrs');
    }
    if ((false)) {}
}
function setFullProps(instance, rawProps, props, attrs) {
    const [options, needCastKeys] = instance.propsOptions;
    let hasAttrsChanged = false;
    let rawCastValues;
    if (rawProps) {
        for (let key in rawProps) {
            // key, ref are reserved and never passed down
            if (shared_esm_bundler_isReservedProp(key)) {
                continue;
            }
            const value = rawProps[key];
            // prop option names are camelized during normalization, so to support
            // kebab -> camel conversion here we need to camelize the key.
            let camelKey;
            if (options && shared_esm_bundler_hasOwn(options, (camelKey = camelize(key)))) {
                if (!needCastKeys || !needCastKeys.includes(camelKey)) {
                    props[camelKey] = value;
                }
                else {
                    (rawCastValues || (rawCastValues = {}))[camelKey] = value;
                }
            }
            else if (!isEmitListener(instance.emitsOptions, key)) {
                if (!(key in attrs) || value !== attrs[key]) {
                    attrs[key] = value;
                    hasAttrsChanged = true;
                }
            }
        }
    }
    if (needCastKeys) {
        const rawCurrentProps = reactivity_esm_bundler_toRaw(props);
        const castValues = rawCastValues || shared_esm_bundler_EMPTY_OBJ;
        for (let i = 0; i < needCastKeys.length; i++) {
            const key = needCastKeys[i];
            props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance, !shared_esm_bundler_hasOwn(castValues, key));
        }
    }
    return hasAttrsChanged;
}
function resolvePropValue(options, props, key, value, instance, isAbsent) {
    const opt = options[key];
    if (opt != null) {
        const hasDefault = shared_esm_bundler_hasOwn(opt, 'default');
        // default values
        if (hasDefault && value === undefined) {
            const defaultValue = opt.default;
            if (opt.type !== Function && shared_esm_bundler_isFunction(defaultValue)) {
                const { propsDefaults } = instance;
                if (key in propsDefaults) {
                    value = propsDefaults[key];
                }
                else {
                    setCurrentInstance(instance);
                    value = propsDefaults[key] = defaultValue.call(null, props);
                    unsetCurrentInstance();
                }
            }
            else {
                value = defaultValue;
            }
        }
        // boolean casting
        if (opt[0 /* shouldCast */]) {
            if (isAbsent && !hasDefault) {
                value = false;
            }
            else if (opt[1 /* shouldCastTrue */] &&
                (value === '' || value === shared_esm_bundler_hyphenate(key))) {
                value = true;
            }
        }
    }
    return value;
}
function normalizePropsOptions(comp, appContext, asMixin = false) {
    const cache = appContext.propsCache;
    const cached = cache.get(comp);
    if (cached) {
        return cached;
    }
    const raw = comp.props;
    const normalized = {};
    const needCastKeys = [];
    // apply mixin/extends props
    let hasExtends = false;
    if (false) {}
    if (!raw && !hasExtends) {
        cache.set(comp, EMPTY_ARR);
        return EMPTY_ARR;
    }
    if (shared_esm_bundler_isArray(raw)) {
        for (let i = 0; i < raw.length; i++) {
            if (false) {}
            const normalizedKey = camelize(raw[i]);
            if (validatePropName(normalizedKey)) {
                normalized[normalizedKey] = shared_esm_bundler_EMPTY_OBJ;
            }
        }
    }
    else if (raw) {
        if (false) {}
        for (const key in raw) {
            const normalizedKey = camelize(key);
            if (validatePropName(normalizedKey)) {
                const opt = raw[key];
                const prop = (normalized[normalizedKey] =
                    shared_esm_bundler_isArray(opt) || shared_esm_bundler_isFunction(opt) ? { type: opt } : opt);
                if (prop) {
                    const booleanIndex = getTypeIndex(Boolean, prop.type);
                    const stringIndex = getTypeIndex(String, prop.type);
                    prop[0 /* shouldCast */] = booleanIndex > -1;
                    prop[1 /* shouldCastTrue */] =
                        stringIndex < 0 || booleanIndex < stringIndex;
                    // if the prop needs boolean casting or default value
                    if (booleanIndex > -1 || shared_esm_bundler_hasOwn(prop, 'default')) {
                        needCastKeys.push(normalizedKey);
                    }
                }
            }
        }
    }
    const res = [normalized, needCastKeys];
    cache.set(comp, res);
    return res;
}
function validatePropName(key) {
    if (key[0] !== '$') {
        return true;
    }
    else if ((false)) {}
    return false;
}
// use function string name to check type constructors
// so that it works across vms / iframes.
function getType(ctor) {
    const match = ctor && ctor.toString().match(/^\s*function (\w+)/);
    return match ? match[1] : ctor === null ? 'null' : '';
}
function isSameType(a, b) {
    return getType(a) === getType(b);
}
function getTypeIndex(type, expectedTypes) {
    if (shared_esm_bundler_isArray(expectedTypes)) {
        return expectedTypes.findIndex(t => isSameType(t, type));
    }
    else if (shared_esm_bundler_isFunction(expectedTypes)) {
        return isSameType(expectedTypes, type) ? 0 : -1;
    }
    return -1;
}
/**
 * dev only
 */
function validateProps(rawProps, props, instance) {
    const resolvedValues = toRaw(props);
    const options = instance.propsOptions[0];
    for (const key in options) {
        let opt = options[key];
        if (opt == null)
            continue;
        validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key)));
    }
}
/**
 * dev only
 */
function validateProp(name, value, prop, isAbsent) {
    const { type, required, validator } = prop;
    // required!
    if (required && isAbsent) {
        runtime_core_esm_bundler_warn('Missing required prop: "' + name + '"');
        return;
    }
    // missing but optional
    if (value == null && !prop.required) {
        return;
    }
    // type check
    if (type != null && type !== true) {
        let isValid = false;
        const types = isArray(type) ? type : [type];
        const expectedTypes = [];
        // value is valid as long as one of the specified types match
        for (let i = 0; i < types.length && !isValid; i++) {
            const { valid, expectedType } = assertType(value, types[i]);
            expectedTypes.push(expectedType || '');
            isValid = valid;
        }
        if (!isValid) {
            runtime_core_esm_bundler_warn(getInvalidTypeMessage(name, value, expectedTypes));
            return;
        }
    }
    // custom validator
    if (validator && !validator(value)) {
        runtime_core_esm_bundler_warn('Invalid prop: custom validator check failed for prop "' + name + '".');
    }
}
const isSimpleType = /*#__PURE__*/ (/* unused pure expression or super */ null && (makeMap('String,Number,Boolean,Function,Symbol,BigInt')));
/**
 * dev only
 */
function assertType(value, type) {
    let valid;
    const expectedType = getType(type);
    if (isSimpleType(expectedType)) {
        const t = typeof value;
        valid = t === expectedType.toLowerCase();
        // for primitive wrapper objects
        if (!valid && t === 'object') {
            valid = value instanceof type;
        }
    }
    else if (expectedType === 'Object') {
        valid = isObject(value);
    }
    else if (expectedType === 'Array') {
        valid = isArray(value);
    }
    else if (expectedType === 'null') {
        valid = value === null;
    }
    else {
        valid = value instanceof type;
    }
    return {
        valid,
        expectedType
    };
}
/**
 * dev only
 */
function getInvalidTypeMessage(name, value, expectedTypes) {
    let message = `Invalid prop: type check failed for prop "${name}".` +
        ` Expected ${expectedTypes.map(capitalize).join(' | ')}`;
    const expectedType = expectedTypes[0];
    const receivedType = toRawType(value);
    const expectedValue = styleValue(value, expectedType);
    const receivedValue = styleValue(value, receivedType);
    // check if we need to specify expected value
    if (expectedTypes.length === 1 &&
        isExplicable(expectedType) &&
        !isBoolean(expectedType, receivedType)) {
        message += ` with value ${expectedValue}`;
    }
    message += `, got ${receivedType} `;
    // check if we need to specify received value
    if (isExplicable(receivedType)) {
        message += `with value ${receivedValue}.`;
    }
    return message;
}
/**
 * dev only
 */
function styleValue(value, type) {
    if (type === 'String') {
        return `"${value}"`;
    }
    else if (type === 'Number') {
        return `${Number(value)}`;
    }
    else {
        return `${value}`;
    }
}
/**
 * dev only
 */
function isExplicable(type) {
    const explicitTypes = ['string', 'number', 'boolean'];
    return explicitTypes.some(elem => type.toLowerCase() === elem);
}
/**
 * dev only
 */
function isBoolean(...args) {
    return args.some(elem => elem.toLowerCase() === 'boolean');
}

const isInternalKey = (key) => key[0] === '_' || key === '$stable';
const normalizeSlotValue = (value) => shared_esm_bundler_isArray(value)
    ? value.map(normalizeVNode)
    : [normalizeVNode(value)];
const normalizeSlot = (key, rawSlot, ctx) => {
    const normalized = withCtx((...args) => {
        if (false) {}
        return normalizeSlotValue(rawSlot(...args));
    }, ctx);
    normalized._c = false;
    return normalized;
};
const normalizeObjectSlots = (rawSlots, slots, instance) => {
    const ctx = rawSlots._ctx;
    for (const key in rawSlots) {
        if (isInternalKey(key))
            continue;
        const value = rawSlots[key];
        if (shared_esm_bundler_isFunction(value)) {
            slots[key] = normalizeSlot(key, value, ctx);
        }
        else if (value != null) {
            if (false) {}
            const normalized = normalizeSlotValue(value);
            slots[key] = () => normalized;
        }
    }
};
const normalizeVNodeSlots = (instance, children) => {
    if (false) {}
    const normalized = normalizeSlotValue(children);
    instance.slots.default = () => normalized;
};
const initSlots = (instance, children) => {
    if (instance.vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {
        const type = children._;
        if (type) {
            // users can get the shallow readonly version of the slots object through `this.$slots`,
            // we should avoid the proxy object polluting the slots of the internal instance
            instance.slots = reactivity_esm_bundler_toRaw(children);
            // make compiler marker non-enumerable
            def(children, '_', type);
        }
        else {
            normalizeObjectSlots(children, (instance.slots = {}));
        }
    }
    else {
        instance.slots = {};
        if (children) {
            normalizeVNodeSlots(instance, children);
        }
    }
    def(instance.slots, InternalObjectKey, 1);
};
const updateSlots = (instance, children, optimized) => {
    const { vnode, slots } = instance;
    let needDeletionCheck = true;
    let deletionComparisonTarget = shared_esm_bundler_EMPTY_OBJ;
    if (vnode.shapeFlag & 32 /* SLOTS_CHILDREN */) {
        const type = children._;
        if (type) {
            // compiled slots.
            if (false) {}
            else if (optimized && type === 1 /* STABLE */) {
                // compiled AND stable.
                // no need to update, and skip stale slots removal.
                needDeletionCheck = false;
            }
            else {
                // compiled but dynamic (v-if/v-for on slots) - update slots, but skip
                // normalization.
                shared_esm_bundler_extend(slots, children);
                // #2893
                // when rendering the optimized slots by manually written render function,
                // we need to delete the `slots._` flag if necessary to make subsequent updates reliable,
                // i.e. let the `renderSlot` create the bailed Fragment
                if (!optimized && type === 1 /* STABLE */) {
                    delete slots._;
                }
            }
        }
        else {
            needDeletionCheck = !children.$stable;
            normalizeObjectSlots(children, slots);
        }
        deletionComparisonTarget = children;
    }
    else if (children) {
        // non slot object children (direct value) passed to a component
        normalizeVNodeSlots(instance, children);
        deletionComparisonTarget = { default: 1 };
    }
    // delete stale slots
    if (needDeletionCheck) {
        for (const key in slots) {
            if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {
                delete slots[key];
            }
        }
    }
};

/**
Runtime helper for applying directives to a vnode. Example usage:

const comp = resolveComponent('comp')
const foo = resolveDirective('foo')
const bar = resolveDirective('bar')

return withDirectives(h(comp), [
  [foo, this.x],
  [bar, this.y]
])
*/
function validateDirectiveName(name) {
    if (isBuiltInDirective(name)) {
        runtime_core_esm_bundler_warn('Do not use built-in directive ids as custom directive id: ' + name);
    }
}
/**
 * Adds directives to a VNode.
 */
function withDirectives(vnode, directives) {
    const internalInstance = currentRenderingInstance;
    if (internalInstance === null) {
        ( false) && 0;
        return vnode;
    }
    const instance = internalInstance.proxy;
    const bindings = vnode.dirs || (vnode.dirs = []);
    for (let i = 0; i < directives.length; i++) {
        let [dir, value, arg, modifiers = shared_esm_bundler_EMPTY_OBJ] = directives[i];
        if (shared_esm_bundler_isFunction(dir)) {
            dir = {
                mounted: dir,
                updated: dir
            };
        }
        if (dir.deep) {
            traverse(value);
        }
        bindings.push({
            dir,
            instance,
            value,
            oldValue: void 0,
            arg,
            modifiers
        });
    }
    return vnode;
}
function invokeDirectiveHook(vnode, prevVNode, instance, name) {
    const bindings = vnode.dirs;
    const oldBindings = prevVNode && prevVNode.dirs;
    for (let i = 0; i < bindings.length; i++) {
        const binding = bindings[i];
        if (oldBindings) {
            binding.oldValue = oldBindings[i].value;
        }
        let hook = binding.dir[name];
        if (hook) {
            // disable tracking inside all lifecycle hooks
            // since they can potentially be called inside effects.
            pauseTracking();
            callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [
                vnode.el,
                binding,
                vnode,
                prevVNode
            ]);
            resetTracking();
        }
    }
}

function createAppContext() {
    return {
        app: null,
        config: {
            isNativeTag: shared_esm_bundler_NO,
            performance: false,
            globalProperties: {},
            optionMergeStrategies: {},
            errorHandler: undefined,
            warnHandler: undefined,
            compilerOptions: {}
        },
        mixins: [],
        components: {},
        directives: {},
        provides: Object.create(null),
        optionsCache: new WeakMap(),
        propsCache: new WeakMap(),
        emitsCache: new WeakMap()
    };
}
let uid = 0;
function createAppAPI(render, hydrate) {
    return function createApp(rootComponent, rootProps = null) {
        if (rootProps != null && !shared_esm_bundler_isObject(rootProps)) {
            ( false) && 0;
            rootProps = null;
        }
        const context = createAppContext();
        const installedPlugins = new Set();
        let isMounted = false;
        const app = (context.app = {
            _uid: uid++,
            _component: rootComponent,
            _props: rootProps,
            _container: null,
            _context: context,
            _instance: null,
            version,
            get config() {
                return context.config;
            },
            set config(v) {
                if ((false)) {}
            },
            use(plugin, ...options) {
                if (installedPlugins.has(plugin)) {
                    ( false) && 0;
                }
                else if (plugin && shared_esm_bundler_isFunction(plugin.install)) {
                    installedPlugins.add(plugin);
                    plugin.install(app, ...options);
                }
                else if (shared_esm_bundler_isFunction(plugin)) {
                    installedPlugins.add(plugin);
                    plugin(app, ...options);
                }
                else if ((false)) {}
                return app;
            },
            mixin(mixin) {
                if (false) {}
                else if ((false)) {}
                return app;
            },
            component(name, component) {
                if ((false)) {}
                if (!component) {
                    return context.components[name];
                }
                if (false) {}
                context.components[name] = component;
                return app;
            },
            directive(name, directive) {
                if ((false)) {}
                if (!directive) {
                    return context.directives[name];
                }
                if (false) {}
                context.directives[name] = directive;
                return app;
            },
            mount(rootContainer, isHydrate, isSVG) {
                if (!isMounted) {
                    const vnode = runtime_core_esm_bundler_createVNode(rootComponent, rootProps);
                    // store app context on the root VNode.
                    // this will be set on the root instance on initial mount.
                    vnode.appContext = context;
                    // HMR root reload
                    if ((false)) {}
                    if (isHydrate && hydrate) {
                        hydrate(vnode, rootContainer);
                    }
                    else {
                        render(vnode, rootContainer, isSVG);
                    }
                    isMounted = true;
                    app._container = rootContainer;
                    rootContainer.__vue_app__ = app;
                    if (false) {}
                    return getExposeProxy(vnode.component) || vnode.component.proxy;
                }
                else if ((false)) {}
            },
            unmount() {
                if (isMounted) {
                    render(null, app._container);
                    if (false) {}
                    delete app._container.__vue_app__;
                }
                else if ((false)) {}
            },
            provide(key, value) {
                if (false) {}
                // TypeScript doesn't allow symbols as index type
                // https://github.com/Microsoft/TypeScript/issues/24587
                context.provides[key] = value;
                return app;
            }
        });
        return app;
    };
}

/**
 * Function for handling a template ref
 */
function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
    if (shared_esm_bundler_isArray(rawRef)) {
        rawRef.forEach((r, i) => setRef(r, oldRawRef && (shared_esm_bundler_isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));
        return;
    }
    if (isAsyncWrapper(vnode) && !isUnmount) {
        // when mounting async components, nothing needs to be done,
        // because the template ref is forwarded to inner component
        return;
    }
    const refValue = vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */
        ? getExposeProxy(vnode.component) || vnode.component.proxy
        : vnode.el;
    const value = isUnmount ? null : refValue;
    const { i: owner, r: ref } = rawRef;
    if (false) {}
    const oldRef = oldRawRef && oldRawRef.r;
    const refs = owner.refs === shared_esm_bundler_EMPTY_OBJ ? (owner.refs = {}) : owner.refs;
    const setupState = owner.setupState;
    // dynamic ref changed. unset old ref
    if (oldRef != null && oldRef !== ref) {
        if (shared_esm_bundler_isString(oldRef)) {
            refs[oldRef] = null;
            if (shared_esm_bundler_hasOwn(setupState, oldRef)) {
                setupState[oldRef] = null;
            }
        }
        else if (reactivity_esm_bundler_isRef(oldRef)) {
            oldRef.value = null;
        }
    }
    if (shared_esm_bundler_isFunction(ref)) {
        callWithErrorHandling(ref, owner, 12 /* FUNCTION_REF */, [value, refs]);
    }
    else {
        const _isString = shared_esm_bundler_isString(ref);
        const _isRef = reactivity_esm_bundler_isRef(ref);
        if (_isString || _isRef) {
            const doSet = () => {
                if (rawRef.f) {
                    const existing = _isString ? refs[ref] : ref.value;
                    if (isUnmount) {
                        shared_esm_bundler_isArray(existing) && shared_esm_bundler_remove(existing, refValue);
                    }
                    else {
                        if (!shared_esm_bundler_isArray(existing)) {
                            if (_isString) {
                                refs[ref] = [refValue];
                            }
                            else {
                                ref.value = [refValue];
                                if (rawRef.k)
                                    refs[rawRef.k] = ref.value;
                            }
                        }
                        else if (!existing.includes(refValue)) {
                            existing.push(refValue);
                        }
                    }
                }
                else if (_isString) {
                    refs[ref] = value;
                    if (shared_esm_bundler_hasOwn(setupState, ref)) {
                        setupState[ref] = value;
                    }
                }
                else if (reactivity_esm_bundler_isRef(ref)) {
                    ref.value = value;
                    if (rawRef.k)
                        refs[rawRef.k] = value;
                }
                else if ((false)) {}
            };
            if (value) {
                doSet.id = -1;
                queuePostRenderEffect(doSet, parentSuspense);
            }
            else {
                doSet();
            }
        }
        else if ((false)) {}
    }
}

let hasMismatch = false;
const isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';
const isComment = (node) => node.nodeType === 8 /* COMMENT */;
// Note: hydration is DOM-specific
// But we have to place it in core due to tight coupling with core - splitting
// it out creates a ton of unnecessary complexity.
// Hydration also depends on some renderer internal logic which needs to be
// passed in via arguments.
function createHydrationFunctions(rendererInternals) {
    const { mt: mountComponent, p: patch, o: { patchProp, nextSibling, parentNode, remove, insert, createComment } } = rendererInternals;
    const hydrate = (vnode, container) => {
        if (!container.hasChildNodes()) {
            ( false) &&
                0;
            patch(null, vnode, container);
            flushPostFlushCbs();
            return;
        }
        hasMismatch = false;
        hydrateNode(container.firstChild, vnode, null, null, null);
        flushPostFlushCbs();
        if (hasMismatch && !false) {
            // this error should show up in production
            console.error(`Hydration completed but contains mismatches.`);
        }
    };
    const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
        const isFragmentStart = isComment(node) && node.data === '[';
        const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
        const { type, ref, shapeFlag } = vnode;
        const domType = node.nodeType;
        vnode.el = node;
        let nextNode = null;
        switch (type) {
            case Text:
                if (domType !== 3 /* TEXT */) {
                    nextNode = onMismatch();
                }
                else {
                    if (node.data !== vnode.children) {
                        hasMismatch = true;
                        ( false) &&
                            0;
                        node.data = vnode.children;
                    }
                    nextNode = nextSibling(node);
                }
                break;
            case Comment:
                if (domType !== 8 /* COMMENT */ || isFragmentStart) {
                    nextNode = onMismatch();
                }
                else {
                    nextNode = nextSibling(node);
                }
                break;
            case runtime_core_esm_bundler_Static:
                if (domType !== 1 /* ELEMENT */) {
                    nextNode = onMismatch();
                }
                else {
                    // determine anchor, adopt content
                    nextNode = node;
                    // if the static vnode has its content stripped during build,
                    // adopt it from the server-rendered HTML.
                    const needToAdoptContent = !vnode.children.length;
                    for (let i = 0; i < vnode.staticCount; i++) {
                        if (needToAdoptContent)
                            vnode.children += nextNode.outerHTML;
                        if (i === vnode.staticCount - 1) {
                            vnode.anchor = nextNode;
                        }
                        nextNode = nextSibling(nextNode);
                    }
                    return nextNode;
                }
                break;
            case runtime_core_esm_bundler_Fragment:
                if (!isFragmentStart) {
                    nextNode = onMismatch();
                }
                else {
                    nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
                }
                break;
            default:
                if (shapeFlag & 1 /* ELEMENT */) {
                    if (domType !== 1 /* ELEMENT */ ||
                        vnode.type.toLowerCase() !==
                            node.tagName.toLowerCase()) {
                        nextNode = onMismatch();
                    }
                    else {
                        nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
                    }
                }
                else if (shapeFlag & 6 /* COMPONENT */) {
                    // when setting up the render effect, if the initial vnode already
                    // has .el set, the component will perform hydration instead of mount
                    // on its sub-tree.
                    vnode.slotScopeIds = slotScopeIds;
                    const container = parentNode(node);
                    mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);
                    // component may be async, so in the case of fragments we cannot rely
                    // on component's rendered output to determine the end of the fragment
                    // instead, we do a lookahead to find the end anchor node.
                    nextNode = isFragmentStart
                        ? locateClosingAsyncAnchor(node)
                        : nextSibling(node);
                    // #3787
                    // if component is async, it may get moved / unmounted before its
                    // inner component is loaded, so we need to give it a placeholder
                    // vnode that matches its adopted DOM.
                    if (isAsyncWrapper(vnode)) {
                        let subTree;
                        if (isFragmentStart) {
                            subTree = runtime_core_esm_bundler_createVNode(runtime_core_esm_bundler_Fragment);
                            subTree.anchor = nextNode
                                ? nextNode.previousSibling
                                : container.lastChild;
                        }
                        else {
                            subTree =
                                node.nodeType === 3 ? createTextVNode('') : runtime_core_esm_bundler_createVNode('div');
                        }
                        subTree.el = node;
                        vnode.component.subTree = subTree;
                    }
                }
                else if (shapeFlag & 64 /* TELEPORT */) {
                    if (domType !== 8 /* COMMENT */) {
                        nextNode = onMismatch();
                    }
                    else {
                        nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
                    }
                }
                else if (shapeFlag & 128 /* SUSPENSE */) {
                    nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
                }
                else if ((false)) {}
        }
        if (ref != null) {
            setRef(ref, null, parentSuspense, vnode);
        }
        return nextNode;
    };
    const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
        optimized = optimized || !!vnode.dynamicChildren;
        const { type, props, patchFlag, shapeFlag, dirs } = vnode;
        // #4006 for form elements with non-string v-model value bindings
        // e.g. <option :value="obj">, <input type="checkbox" :true-value="1">
        const forcePatchValue = (type === 'input' && dirs) || type === 'option';
        // skip props & children if this is hoisted static nodes
        // #5405 in dev, always hydrate children for HMR
        if (( false) || forcePatchValue || patchFlag !== -1 /* HOISTED */) {
            if (dirs) {
                invokeDirectiveHook(vnode, null, parentComponent, 'created');
            }
            // props
            if (props) {
                if (forcePatchValue ||
                    !optimized ||
                    patchFlag & (16 /* FULL_PROPS */ | 32 /* HYDRATE_EVENTS */)) {
                    for (const key in props) {
                        if ((forcePatchValue && key.endsWith('value')) ||
                            (isOn(key) && !isReservedProp(key))) {
                            patchProp(el, key, null, props[key], false, undefined, parentComponent);
                        }
                    }
                }
                else if (props.onClick) {
                    // Fast path for click listeners (which is most often) to avoid
                    // iterating through props.
                    patchProp(el, 'onClick', null, props.onClick, false, undefined, parentComponent);
                }
            }
            // vnode / directive hooks
            let vnodeHooks;
            if ((vnodeHooks = props && props.onVnodeBeforeMount)) {
                invokeVNodeHook(vnodeHooks, parentComponent, vnode);
            }
            if (dirs) {
                invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');
            }
            if ((vnodeHooks = props && props.onVnodeMounted) || dirs) {
                queueEffectWithSuspense(() => {
                    vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);
                    dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');
                }, parentSuspense);
            }
            // children
            if (shapeFlag & 16 /* ARRAY_CHILDREN */ &&
                // skip if element has innerHTML / textContent
                !(props && (props.innerHTML || props.textContent))) {
                let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);
                let hasWarned = false;
                while (next) {
                    hasMismatch = true;
                    if (false) {}
                    // The SSRed DOM contains more nodes than it should. Remove them.
                    const cur = next;
                    next = next.nextSibling;
                    remove(cur);
                }
            }
            else if (shapeFlag & 8 /* TEXT_CHILDREN */) {
                if (el.textContent !== vnode.children) {
                    hasMismatch = true;
                    ( false) &&
                        0;
                    el.textContent = vnode.children;
                }
            }
        }
        return el.nextSibling;
    };
    const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {
        optimized = optimized || !!parentVNode.dynamicChildren;
        const children = parentVNode.children;
        const l = children.length;
        let hasWarned = false;
        for (let i = 0; i < l; i++) {
            const vnode = optimized
                ? children[i]
                : (children[i] = normalizeVNode(children[i]));
            if (node) {
                node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
            }
            else if (vnode.type === Text && !vnode.children) {
                continue;
            }
            else {
                hasMismatch = true;
                if (false) {}
                // the SSRed DOM didn't contain enough nodes. Mount the missing ones.
                patch(null, vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);
            }
        }
        return node;
    };
    const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
        const { slotScopeIds: fragmentSlotScopeIds } = vnode;
        if (fragmentSlotScopeIds) {
            slotScopeIds = slotScopeIds
                ? slotScopeIds.concat(fragmentSlotScopeIds)
                : fragmentSlotScopeIds;
        }
        const container = parentNode(node);
        const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
        if (next && isComment(next) && next.data === ']') {
            return nextSibling((vnode.anchor = next));
        }
        else {
            // fragment didn't hydrate successfully, since we didn't get a end anchor
            // back. This should have led to node/children mismatch warnings.
            hasMismatch = true;
            // since the anchor is missing, we need to create one and insert it
            insert((vnode.anchor = createComment(`]`)), container, next);
            return next;
        }
    };
    const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
        hasMismatch = true;
        ( false) &&
            0;
        vnode.el = null;
        if (isFragment) {
            // remove excessive fragment nodes
            const end = locateClosingAsyncAnchor(node);
            while (true) {
                const next = nextSibling(node);
                if (next && next !== end) {
                    remove(next);
                }
                else {
                    break;
                }
            }
        }
        const next = nextSibling(node);
        const container = parentNode(node);
        remove(node);
        patch(null, vnode, container, next, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);
        return next;
    };
    const locateClosingAsyncAnchor = (node) => {
        let match = 0;
        while (node) {
            node = nextSibling(node);
            if (node && isComment(node)) {
                if (node.data === '[')
                    match++;
                if (node.data === ']') {
                    if (match === 0) {
                        return nextSibling(node);
                    }
                    else {
                        match--;
                    }
                }
            }
        }
        return node;
    };
    return [hydrate, hydrateNode];
}

/* eslint-disable no-restricted-globals */
let supported;
let perf;
function startMeasure(instance, type) {
    if (instance.appContext.config.performance && isSupported()) {
        perf.mark(`vue-${type}-${instance.uid}`);
    }
    if (false) {}
}
function endMeasure(instance, type) {
    if (instance.appContext.config.performance && isSupported()) {
        const startTag = `vue-${type}-${instance.uid}`;
        const endTag = startTag + `:end`;
        perf.mark(endTag);
        perf.measure(`<${formatComponentName(instance, instance.type)}> ${type}`, startTag, endTag);
        perf.clearMarks(startTag);
        perf.clearMarks(endTag);
    }
    if (false) {}
}
function isSupported() {
    if (supported !== undefined) {
        return supported;
    }
    if (typeof window !== 'undefined' && window.performance) {
        supported = true;
        perf = window.performance;
    }
    else {
        supported = false;
    }
    return supported;
}

/**
 * This is only called in esm-bundler builds.
 * It is called when a renderer is created, in `baseCreateRenderer` so that
 * importing runtime-core is side-effects free.
 *
 * istanbul-ignore-next
 */
function initFeatureFlags() {
    const needWarn = [];
    if (false) {}
    if (false) {}
    if (false) {}
}

const queuePostRenderEffect = queueEffectWithSuspense
    ;
/**
 * The createRenderer function accepts two generic arguments:
 * HostNode and HostElement, corresponding to Node and Element types in the
 * host environment. For example, for runtime-dom, HostNode would be the DOM
 * `Node` interface and HostElement would be the DOM `Element` interface.
 *
 * Custom renderers can pass in the platform specific types like this:
 *
 * ``` js
 * const { render, createApp } = createRenderer<Node, Element>({
 *   patchProp,
 *   ...nodeOps
 * })
 * ```
 */
function createRenderer(options) {
    return baseCreateRenderer(options);
}
// Separate API for creating hydration-enabled renderer.
// Hydration logic is only used when calling this function, making it
// tree-shakable.
function runtime_core_esm_bundler_createHydrationRenderer(options) {
    return baseCreateRenderer(options, createHydrationFunctions);
}
// implementation
function baseCreateRenderer(options, createHydrationFns) {
    // compile-time feature flags check
    {
        initFeatureFlags();
    }
    const target = getGlobalThis();
    target.__VUE__ = true;
    if (false) {}
    const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = shared_esm_bundler_NOOP, cloneNode: hostCloneNode, insertStaticContent: hostInsertStaticContent } = options;
    // Note: functions inside this closure should use `const xxx = () => {}`
    // style in order to prevent being inlined by minifiers.
    const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized =  false ? 0 : !!n2.dynamicChildren) => {
        if (n1 === n2) {
            return;
        }
        // patching & not same type, unmount old tree
        if (n1 && !isSameVNodeType(n1, n2)) {
            anchor = getNextHostNode(n1);
            unmount(n1, parentComponent, parentSuspense, true);
            n1 = null;
        }
        if (n2.patchFlag === -2 /* BAIL */) {
            optimized = false;
            n2.dynamicChildren = null;
        }
        const { type, ref, shapeFlag } = n2;
        switch (type) {
            case Text:
                processText(n1, n2, container, anchor);
                break;
            case Comment:
                processCommentNode(n1, n2, container, anchor);
                break;
            case runtime_core_esm_bundler_Static:
                if (n1 == null) {
                    mountStaticNode(n2, container, anchor, isSVG);
                }
                else if ((false)) {}
                break;
            case runtime_core_esm_bundler_Fragment:
                processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
                break;
            default:
                if (shapeFlag & 1 /* ELEMENT */) {
                    processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
                }
                else if (shapeFlag & 6 /* COMPONENT */) {
                    processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
                }
                else if (shapeFlag & 64 /* TELEPORT */) {
                    type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);
                }
                else if (shapeFlag & 128 /* SUSPENSE */) {
                    type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);
                }
                else if ((false)) {}
        }
        // set ref
        if (ref != null && parentComponent) {
            setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);
        }
    };
    const processText = (n1, n2, container, anchor) => {
        if (n1 == null) {
            hostInsert((n2.el = hostCreateText(n2.children)), container, anchor);
        }
        else {
            const el = (n2.el = n1.el);
            if (n2.children !== n1.children) {
                hostSetText(el, n2.children);
            }
        }
    };
    const processCommentNode = (n1, n2, container, anchor) => {
        if (n1 == null) {
            hostInsert((n2.el = hostCreateComment(n2.children || '')), container, anchor);
        }
        else {
            // there's no support for dynamic comments
            n2.el = n1.el;
        }
    };
    const mountStaticNode = (n2, container, anchor, isSVG) => {
        [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG, n2.el, n2.anchor);
    };
    /**
     * Dev / HMR only
     */
    const patchStaticNode = (n1, n2, container, isSVG) => {
        // static nodes are only patched during dev for HMR
        if (n2.children !== n1.children) {
            const anchor = hostNextSibling(n1.anchor);
            // remove existing
            removeStaticNode(n1);
            [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG);
        }
        else {
            n2.el = n1.el;
            n2.anchor = n1.anchor;
        }
    };
    const moveStaticNode = ({ el, anchor }, container, nextSibling) => {
        let next;
        while (el && el !== anchor) {
            next = hostNextSibling(el);
            hostInsert(el, container, nextSibling);
            el = next;
        }
        hostInsert(anchor, container, nextSibling);
    };
    const removeStaticNode = ({ el, anchor }) => {
        let next;
        while (el && el !== anchor) {
            next = hostNextSibling(el);
            hostRemove(el);
            el = next;
        }
        hostRemove(anchor);
    };
    const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
        isSVG = isSVG || n2.type === 'svg';
        if (n1 == null) {
            mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        }
        else {
            patchElement(n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        }
    };
    const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
        let el;
        let vnodeHook;
        const { type, props, shapeFlag, transition, patchFlag, dirs } = vnode;
        if ( true &&
            vnode.el &&
            hostCloneNode !== undefined &&
            patchFlag === -1 /* HOISTED */) {
            // If a vnode has non-null el, it means it's being reused.
            // Only static vnodes can be reused, so its mounted DOM nodes should be
            // exactly the same, and we can simply do a clone here.
            // only do this in production since cloned trees cannot be HMR updated.
            el = vnode.el = hostCloneNode(vnode.el);
        }
        else {
            el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is, props);
            // mount children first, since some props may rely on child content
            // being already rendered, e.g. `<select value>`
            if (shapeFlag & 8 /* TEXT_CHILDREN */) {
                hostSetElementText(el, vnode.children);
            }
            else if (shapeFlag & 16 /* ARRAY_CHILDREN */) {
                mountChildren(vnode.children, el, null, parentComponent, parentSuspense, isSVG && type !== 'foreignObject', slotScopeIds, optimized);
            }
            if (dirs) {
                invokeDirectiveHook(vnode, null, parentComponent, 'created');
            }
            // props
            if (props) {
                for (const key in props) {
                    if (key !== 'value' && !shared_esm_bundler_isReservedProp(key)) {
                        hostPatchProp(el, key, null, props[key], isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);
                    }
                }
                /**
                 * Special case for setting value on DOM elements:
                 * - it can be order-sensitive (e.g. should be set *after* min/max, #2325, #4024)
                 * - it needs to be forced (#1471)
                 * #2353 proposes adding another renderer option to configure this, but
                 * the properties affects are so finite it is worth special casing it
                 * here to reduce the complexity. (Special casing it also should not
                 * affect non-DOM renderers)
                 */
                if ('value' in props) {
                    hostPatchProp(el, 'value', null, props.value);
                }
                if ((vnodeHook = props.onVnodeBeforeMount)) {
                    invokeVNodeHook(vnodeHook, parentComponent, vnode);
                }
            }
            // scopeId
            setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);
        }
        if (false) {}
        if (dirs) {
            invokeDirectiveHook(vnode, null, parentComponent, 'beforeMount');
        }
        // #1583 For inside suspense + suspense not resolved case, enter hook should call when suspense resolved
        // #1689 For inside suspense + suspense resolved case, just call it
        const needCallTransitionHooks = (!parentSuspense || (parentSuspense && !parentSuspense.pendingBranch)) &&
            transition &&
            !transition.persisted;
        if (needCallTransitionHooks) {
            transition.beforeEnter(el);
        }
        hostInsert(el, container, anchor);
        if ((vnodeHook = props && props.onVnodeMounted) ||
            needCallTransitionHooks ||
            dirs) {
            queuePostRenderEffect(() => {
                vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
                needCallTransitionHooks && transition.enter(el);
                dirs && invokeDirectiveHook(vnode, null, parentComponent, 'mounted');
            }, parentSuspense);
        }
    };
    const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {
        if (scopeId) {
            hostSetScopeId(el, scopeId);
        }
        if (slotScopeIds) {
            for (let i = 0; i < slotScopeIds.length; i++) {
                hostSetScopeId(el, slotScopeIds[i]);
            }
        }
        if (parentComponent) {
            let subTree = parentComponent.subTree;
            if (false /* DEV_ROOT_FRAGMENT */) {}
            if (vnode === subTree) {
                const parentVNode = parentComponent.vnode;
                setScopeId(el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent);
            }
        }
    };
    const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => {
        for (let i = start; i < children.length; i++) {
            const child = (children[i] = optimized
                ? cloneIfMounted(children[i])
                : normalizeVNode(children[i]));
            patch(null, child, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        }
    };
    const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
        const el = (n2.el = n1.el);
        let { patchFlag, dynamicChildren, dirs } = n2;
        // #1426 take the old vnode's patch flag into account since user may clone a
        // compiler-generated vnode, which de-opts to FULL_PROPS
        patchFlag |= n1.patchFlag & 16 /* FULL_PROPS */;
        const oldProps = n1.props || shared_esm_bundler_EMPTY_OBJ;
        const newProps = n2.props || shared_esm_bundler_EMPTY_OBJ;
        let vnodeHook;
        // disable recurse in beforeUpdate hooks
        parentComponent && toggleRecurse(parentComponent, false);
        if ((vnodeHook = newProps.onVnodeBeforeUpdate)) {
            invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
        }
        if (dirs) {
            invokeDirectiveHook(n2, n1, parentComponent, 'beforeUpdate');
        }
        parentComponent && toggleRecurse(parentComponent, true);
        if (false) {}
        const areChildrenSVG = isSVG && n2.type !== 'foreignObject';
        if (dynamicChildren) {
            patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds);
            if (false) {}
        }
        else if (!optimized) {
            // full diff
            patchChildren(n1, n2, el, null, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds, false);
        }
        if (patchFlag > 0) {
            // the presence of a patchFlag means this element's render code was
            // generated by the compiler and can take the fast path.
            // in this path old node and new node are guaranteed to have the same shape
            // (i.e. at the exact same position in the source template)
            if (patchFlag & 16 /* FULL_PROPS */) {
                // element props contain dynamic keys, full diff needed
                patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);
            }
            else {
                // class
                // this flag is matched when the element has dynamic class bindings.
                if (patchFlag & 2 /* CLASS */) {
                    if (oldProps.class !== newProps.class) {
                        hostPatchProp(el, 'class', null, newProps.class, isSVG);
                    }
                }
                // style
                // this flag is matched when the element has dynamic style bindings
                if (patchFlag & 4 /* STYLE */) {
                    hostPatchProp(el, 'style', oldProps.style, newProps.style, isSVG);
                }
                // props
                // This flag is matched when the element has dynamic prop/attr bindings
                // other than class and style. The keys of dynamic prop/attrs are saved for
                // faster iteration.
                // Note dynamic keys like :[foo]="bar" will cause this optimization to
                // bail out and go through a full diff because we need to unset the old key
                if (patchFlag & 8 /* PROPS */) {
                    // if the flag is present then dynamicProps must be non-null
                    const propsToUpdate = n2.dynamicProps;
                    for (let i = 0; i < propsToUpdate.length; i++) {
                        const key = propsToUpdate[i];
                        const prev = oldProps[key];
                        const next = newProps[key];
                        // #1471 force patch value
                        if (next !== prev || key === 'value') {
                            hostPatchProp(el, key, prev, next, isSVG, n1.children, parentComponent, parentSuspense, unmountChildren);
                        }
                    }
                }
            }
            // text
            // This flag is matched when the element has only dynamic text children.
            if (patchFlag & 1 /* TEXT */) {
                if (n1.children !== n2.children) {
                    hostSetElementText(el, n2.children);
                }
            }
        }
        else if (!optimized && dynamicChildren == null) {
            // unoptimized, full diff
            patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);
        }
        if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {
            queuePostRenderEffect(() => {
                vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
                dirs && invokeDirectiveHook(n2, n1, parentComponent, 'updated');
            }, parentSuspense);
        }
    };
    // The fast path for blocks.
    const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => {
        for (let i = 0; i < newChildren.length; i++) {
            const oldVNode = oldChildren[i];
            const newVNode = newChildren[i];
            // Determine the container (parent element) for the patch.
            const container = 
            // oldVNode may be an errored async setup() component inside Suspense
            // which will not have a mounted element
            oldVNode.el &&
                // - In the case of a Fragment, we need to provide the actual parent
                // of the Fragment itself so it can move its children.
                (oldVNode.type === runtime_core_esm_bundler_Fragment ||
                    // - In the case of different nodes, there is going to be a replacement
                    // which also requires the correct parent container
                    !isSameVNodeType(oldVNode, newVNode) ||
                    // - In the case of a component, it could contain anything.
                    oldVNode.shapeFlag & (6 /* COMPONENT */ | 64 /* TELEPORT */))
                ? hostParentNode(oldVNode.el)
                : // In other cases, the parent container is not actually used so we
                    // just pass the block element here to avoid a DOM parentNode call.
                    fallbackContainer;
            patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, true);
        }
    };
    const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => {
        if (oldProps !== newProps) {
            for (const key in newProps) {
                // empty string is not valid prop
                if (shared_esm_bundler_isReservedProp(key))
                    continue;
                const next = newProps[key];
                const prev = oldProps[key];
                // defer patching value
                if (next !== prev && key !== 'value') {
                    hostPatchProp(el, key, prev, next, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);
                }
            }
            if (oldProps !== shared_esm_bundler_EMPTY_OBJ) {
                for (const key in oldProps) {
                    if (!shared_esm_bundler_isReservedProp(key) && !(key in newProps)) {
                        hostPatchProp(el, key, oldProps[key], null, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);
                    }
                }
            }
            if ('value' in newProps) {
                hostPatchProp(el, 'value', oldProps.value, newProps.value);
            }
        }
    };
    const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
        const fragmentStartAnchor = (n2.el = n1 ? n1.el : hostCreateText(''));
        const fragmentEndAnchor = (n2.anchor = n1 ? n1.anchor : hostCreateText(''));
        let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;
        if (false) {}
        // check if this is a slot fragment with :slotted scope ids
        if (fragmentSlotScopeIds) {
            slotScopeIds = slotScopeIds
                ? slotScopeIds.concat(fragmentSlotScopeIds)
                : fragmentSlotScopeIds;
        }
        if (n1 == null) {
            hostInsert(fragmentStartAnchor, container, anchor);
            hostInsert(fragmentEndAnchor, container, anchor);
            // a fragment can only have array children
            // since they are either generated by the compiler, or implicitly created
            // from arrays.
            mountChildren(n2.children, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        }
        else {
            if (patchFlag > 0 &&
                patchFlag & 64 /* STABLE_FRAGMENT */ &&
                dynamicChildren &&
                // #2715 the previous fragment could've been a BAILed one as a result
                // of renderSlot() with no valid children
                n1.dynamicChildren) {
                // a stable fragment (template root or <template v-for>) doesn't need to
                // patch children order, but it may contain dynamicChildren.
                patchBlockChildren(n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, isSVG, slotScopeIds);
                if (false) {}
                else if (
                // #2080 if the stable fragment has a key, it's a <template v-for> that may
                //  get moved around. Make sure all root level vnodes inherit el.
                // #2134 or if it's a component root, it may also get moved around
                // as the component is being moved.
                n2.key != null ||
                    (parentComponent && n2 === parentComponent.subTree)) {
                    traverseStaticChildren(n1, n2, true /* shallow */);
                }
            }
            else {
                // keyed / unkeyed, or manual fragments.
                // for keyed & unkeyed, since they are compiler generated from v-for,
                // each child is guaranteed to be a block so the fragment will never
                // have dynamicChildren.
                patchChildren(n1, n2, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
            }
        }
    };
    const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
        n2.slotScopeIds = slotScopeIds;
        if (n1 == null) {
            if (n2.shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {
                parentComponent.ctx.activate(n2, container, anchor, isSVG, optimized);
            }
            else {
                mountComponent(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);
            }
        }
        else {
            updateComponent(n1, n2, optimized);
        }
    };
    const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {
        const instance = (initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense));
        if (false) {}
        if ((false)) {}
        // inject renderer internals for keepAlive
        if (isKeepAlive(initialVNode)) {
            instance.ctx.renderer = internals;
        }
        // resolve props and slots for setup context
        {
            if ((false)) {}
            setupComponent(instance);
            if ((false)) {}
        }
        // setup() is async. This component relies on async logic to be resolved
        // before proceeding
        if (instance.asyncDep) {
            parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect);
            // Give it a placeholder if this is not hydration
            // TODO handle self-defined fallback
            if (!initialVNode.el) {
                const placeholder = (instance.subTree = runtime_core_esm_bundler_createVNode(Comment));
                processCommentNode(null, placeholder, container, anchor);
            }
            return;
        }
        setupRenderEffect(instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized);
        if ((false)) {}
    };
    const updateComponent = (n1, n2, optimized) => {
        const instance = (n2.component = n1.component);
        if (shouldUpdateComponent(n1, n2, optimized)) {
            if (instance.asyncDep &&
                !instance.asyncResolved) {
                // async & still pending - just update props and slots
                // since the component's reactive effect for render isn't set-up yet
                if ((false)) {}
                updateComponentPreRender(instance, n2, optimized);
                if ((false)) {}
                return;
            }
            else {
                // normal update
                instance.next = n2;
                // in case the child component is also queued, remove it to avoid
                // double updating the same child component in the same flush.
                invalidateJob(instance.update);
                // instance.update is the reactive effect.
                instance.update();
            }
        }
        else {
            // no update needed. just copy over properties
            n2.component = n1.component;
            n2.el = n1.el;
            instance.vnode = n2;
        }
    };
    const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {
        const componentUpdateFn = () => {
            if (!instance.isMounted) {
                let vnodeHook;
                const { el, props } = initialVNode;
                const { bm, m, parent } = instance;
                const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);
                toggleRecurse(instance, false);
                // beforeMount hook
                if (bm) {
                    invokeArrayFns(bm);
                }
                // onVnodeBeforeMount
                if (!isAsyncWrapperVNode &&
                    (vnodeHook = props && props.onVnodeBeforeMount)) {
                    invokeVNodeHook(vnodeHook, parent, initialVNode);
                }
                toggleRecurse(instance, true);
                if (el && hydrateNode) {
                    // vnode has adopted host node - perform hydration instead of mount.
                    const hydrateSubTree = () => {
                        if ((false)) {}
                        instance.subTree = renderComponentRoot(instance);
                        if ((false)) {}
                        if ((false)) {}
                        hydrateNode(el, instance.subTree, instance, parentSuspense, null);
                        if ((false)) {}
                    };
                    if (isAsyncWrapperVNode) {
                        initialVNode.type.__asyncLoader().then(
                        // note: we are moving the render call into an async callback,
                        // which means it won't track dependencies - but it's ok because
                        // a server-rendered async wrapper is already in resolved state
                        // and it will never need to change.
                        () => !instance.isUnmounted && hydrateSubTree());
                    }
                    else {
                        hydrateSubTree();
                    }
                }
                else {
                    if ((false)) {}
                    const subTree = (instance.subTree = renderComponentRoot(instance));
                    if ((false)) {}
                    if ((false)) {}
                    patch(null, subTree, container, anchor, instance, parentSuspense, isSVG);
                    if ((false)) {}
                    initialVNode.el = subTree.el;
                }
                // mounted hook
                if (m) {
                    queuePostRenderEffect(m, parentSuspense);
                }
                // onVnodeMounted
                if (!isAsyncWrapperVNode &&
                    (vnodeHook = props && props.onVnodeMounted)) {
                    const scopedInitialVNode = initialVNode;
                    queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense);
                }
                // activated hook for keep-alive roots.
                // #1742 activated hook must be accessed after first render
                // since the hook may be injected by a child keep-alive
                if (initialVNode.shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {
                    instance.a && queuePostRenderEffect(instance.a, parentSuspense);
                }
                instance.isMounted = true;
                if (false) {}
                // #2458: deference mount-only object parameters to prevent memleaks
                initialVNode = container = anchor = null;
            }
            else {
                // updateComponent
                // This is triggered by mutation of component's own state (next: null)
                // OR parent calling processComponent (next: VNode)
                let { next, bu, u, parent, vnode } = instance;
                let originNext = next;
                let vnodeHook;
                if ((false)) {}
                // Disallow component effect recursion during pre-lifecycle hooks.
                toggleRecurse(instance, false);
                if (next) {
                    next.el = vnode.el;
                    updateComponentPreRender(instance, next, optimized);
                }
                else {
                    next = vnode;
                }
                // beforeUpdate hook
                if (bu) {
                    invokeArrayFns(bu);
                }
                // onVnodeBeforeUpdate
                if ((vnodeHook = next.props && next.props.onVnodeBeforeUpdate)) {
                    invokeVNodeHook(vnodeHook, parent, next, vnode);
                }
                toggleRecurse(instance, true);
                // render
                if ((false)) {}
                const nextTree = renderComponentRoot(instance);
                if ((false)) {}
                const prevTree = instance.subTree;
                instance.subTree = nextTree;
                if ((false)) {}
                patch(prevTree, nextTree, 
                // parent may have changed if it's in a teleport
                hostParentNode(prevTree.el), 
                // anchor may have changed if it's in a fragment
                getNextHostNode(prevTree), instance, parentSuspense, isSVG);
                if ((false)) {}
                next.el = nextTree.el;
                if (originNext === null) {
                    // self-triggered update. In case of HOC, update parent component
                    // vnode el. HOC is indicated by parent instance's subTree pointing
                    // to child component's vnode
                    updateHOCHostEl(instance, nextTree.el);
                }
                // updated hook
                if (u) {
                    queuePostRenderEffect(u, parentSuspense);
                }
                // onVnodeUpdated
                if ((vnodeHook = next.props && next.props.onVnodeUpdated)) {
                    queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), parentSuspense);
                }
                if (false) {}
                if ((false)) {}
            }
        };
        // create reactive effect for rendering
        const effect = (instance.effect = new ReactiveEffect(componentUpdateFn, () => queueJob(instance.update), instance.scope // track it in component's effect scope
        ));
        const update = (instance.update = effect.run.bind(effect));
        update.id = instance.uid;
        // allowRecurse
        // #1801, #2043 component render effects should allow recursive updates
        toggleRecurse(instance, true);
        if ((false)) {}
        update();
    };
    const updateComponentPreRender = (instance, nextVNode, optimized) => {
        nextVNode.component = instance;
        const prevProps = instance.vnode.props;
        instance.vnode = nextVNode;
        instance.next = null;
        updateProps(instance, nextVNode.props, prevProps, optimized);
        updateSlots(instance, nextVNode.children, optimized);
        pauseTracking();
        // props update may have triggered pre-flush watchers.
        // flush them before the render update.
        flushPreFlushCbs(undefined, instance.update);
        resetTracking();
    };
    const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {
        const c1 = n1 && n1.children;
        const prevShapeFlag = n1 ? n1.shapeFlag : 0;
        const c2 = n2.children;
        const { patchFlag, shapeFlag } = n2;
        // fast path
        if (patchFlag > 0) {
            if (patchFlag & 128 /* KEYED_FRAGMENT */) {
                // this could be either fully-keyed or mixed (some keyed some not)
                // presence of patchFlag means children are guaranteed to be arrays
                patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
                return;
            }
            else if (patchFlag & 256 /* UNKEYED_FRAGMENT */) {
                // unkeyed
                patchUnkeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
                return;
            }
        }
        // children has 3 possibilities: text, array or no children.
        if (shapeFlag & 8 /* TEXT_CHILDREN */) {
            // text children fast path
            if (prevShapeFlag & 16 /* ARRAY_CHILDREN */) {
                unmountChildren(c1, parentComponent, parentSuspense);
            }
            if (c2 !== c1) {
                hostSetElementText(container, c2);
            }
        }
        else {
            if (prevShapeFlag & 16 /* ARRAY_CHILDREN */) {
                // prev children was array
                if (shapeFlag & 16 /* ARRAY_CHILDREN */) {
                    // two arrays, cannot assume anything, do full diff
                    patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
                }
                else {
                    // no new children, just unmount old
                    unmountChildren(c1, parentComponent, parentSuspense, true);
                }
            }
            else {
                // prev children was text OR null
                // new children is array OR null
                if (prevShapeFlag & 8 /* TEXT_CHILDREN */) {
                    hostSetElementText(container, '');
                }
                // mount new if array
                if (shapeFlag & 16 /* ARRAY_CHILDREN */) {
                    mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
                }
            }
        }
    };
    const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
        c1 = c1 || EMPTY_ARR;
        c2 = c2 || EMPTY_ARR;
        const oldLength = c1.length;
        const newLength = c2.length;
        const commonLength = Math.min(oldLength, newLength);
        let i;
        for (i = 0; i < commonLength; i++) {
            const nextChild = (c2[i] = optimized
                ? cloneIfMounted(c2[i])
                : normalizeVNode(c2[i]));
            patch(c1[i], nextChild, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        }
        if (oldLength > newLength) {
            // remove old
            unmountChildren(c1, parentComponent, parentSuspense, true, false, commonLength);
        }
        else {
            // mount new
            mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, commonLength);
        }
    };
    // can be all-keyed or mixed
    const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
        let i = 0;
        const l2 = c2.length;
        let e1 = c1.length - 1; // prev ending index
        let e2 = l2 - 1; // next ending index
        // 1. sync from start
        // (a b) c
        // (a b) d e
        while (i <= e1 && i <= e2) {
            const n1 = c1[i];
            const n2 = (c2[i] = optimized
                ? cloneIfMounted(c2[i])
                : normalizeVNode(c2[i]));
            if (isSameVNodeType(n1, n2)) {
                patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
            }
            else {
                break;
            }
            i++;
        }
        // 2. sync from end
        // a (b c)
        // d e (b c)
        while (i <= e1 && i <= e2) {
            const n1 = c1[e1];
            const n2 = (c2[e2] = optimized
                ? cloneIfMounted(c2[e2])
                : normalizeVNode(c2[e2]));
            if (isSameVNodeType(n1, n2)) {
                patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
            }
            else {
                break;
            }
            e1--;
            e2--;
        }
        // 3. common sequence + mount
        // (a b)
        // (a b) c
        // i = 2, e1 = 1, e2 = 2
        // (a b)
        // c (a b)
        // i = 0, e1 = -1, e2 = 0
        if (i > e1) {
            if (i <= e2) {
                const nextPos = e2 + 1;
                const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;
                while (i <= e2) {
                    patch(null, (c2[i] = optimized
                        ? cloneIfMounted(c2[i])
                        : normalizeVNode(c2[i])), container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
                    i++;
                }
            }
        }
        // 4. common sequence + unmount
        // (a b) c
        // (a b)
        // i = 2, e1 = 2, e2 = 1
        // a (b c)
        // (b c)
        // i = 0, e1 = 0, e2 = -1
        else if (i > e2) {
            while (i <= e1) {
                unmount(c1[i], parentComponent, parentSuspense, true);
                i++;
            }
        }
        // 5. unknown sequence
        // [i ... e1 + 1]: a b [c d e] f g
        // [i ... e2 + 1]: a b [e d c h] f g
        // i = 2, e1 = 4, e2 = 5
        else {
            const s1 = i; // prev starting index
            const s2 = i; // next starting index
            // 5.1 build key:index map for newChildren
            const keyToNewIndexMap = new Map();
            for (i = s2; i <= e2; i++) {
                const nextChild = (c2[i] = optimized
                    ? cloneIfMounted(c2[i])
                    : normalizeVNode(c2[i]));
                if (nextChild.key != null) {
                    if (false) {}
                    keyToNewIndexMap.set(nextChild.key, i);
                }
            }
            // 5.2 loop through old children left to be patched and try to patch
            // matching nodes & remove nodes that are no longer present
            let j;
            let patched = 0;
            const toBePatched = e2 - s2 + 1;
            let moved = false;
            // used to track whether any node has moved
            let maxNewIndexSoFar = 0;
            // works as Map<newIndex, oldIndex>
            // Note that oldIndex is offset by +1
            // and oldIndex = 0 is a special value indicating the new node has
            // no corresponding old node.
            // used for determining longest stable subsequence
            const newIndexToOldIndexMap = new Array(toBePatched);
            for (i = 0; i < toBePatched; i++)
                newIndexToOldIndexMap[i] = 0;
            for (i = s1; i <= e1; i++) {
                const prevChild = c1[i];
                if (patched >= toBePatched) {
                    // all new children have been patched so this can only be a removal
                    unmount(prevChild, parentComponent, parentSuspense, true);
                    continue;
                }
                let newIndex;
                if (prevChild.key != null) {
                    newIndex = keyToNewIndexMap.get(prevChild.key);
                }
                else {
                    // key-less node, try to locate a key-less node of the same type
                    for (j = s2; j <= e2; j++) {
                        if (newIndexToOldIndexMap[j - s2] === 0 &&
                            isSameVNodeType(prevChild, c2[j])) {
                            newIndex = j;
                            break;
                        }
                    }
                }
                if (newIndex === undefined) {
                    unmount(prevChild, parentComponent, parentSuspense, true);
                }
                else {
                    newIndexToOldIndexMap[newIndex - s2] = i + 1;
                    if (newIndex >= maxNewIndexSoFar) {
                        maxNewIndexSoFar = newIndex;
                    }
                    else {
                        moved = true;
                    }
                    patch(prevChild, c2[newIndex], container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
                    patched++;
                }
            }
            // 5.3 move and mount
            // generate longest stable subsequence only when nodes have moved
            const increasingNewIndexSequence = moved
                ? getSequence(newIndexToOldIndexMap)
                : EMPTY_ARR;
            j = increasingNewIndexSequence.length - 1;
            // looping backwards so that we can use last patched node as anchor
            for (i = toBePatched - 1; i >= 0; i--) {
                const nextIndex = s2 + i;
                const nextChild = c2[nextIndex];
                const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;
                if (newIndexToOldIndexMap[i] === 0) {
                    // mount new
                    patch(null, nextChild, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
                }
                else if (moved) {
                    // move if:
                    // There is no stable subsequence (e.g. a reverse)
                    // OR current node is not among the stable sequence
                    if (j < 0 || i !== increasingNewIndexSequence[j]) {
                        move(nextChild, container, anchor, 2 /* REORDER */);
                    }
                    else {
                        j--;
                    }
                }
            }
        }
    };
    const move = (vnode, container, anchor, moveType, parentSuspense = null) => {
        const { el, type, transition, children, shapeFlag } = vnode;
        if (shapeFlag & 6 /* COMPONENT */) {
            move(vnode.component.subTree, container, anchor, moveType);
            return;
        }
        if (shapeFlag & 128 /* SUSPENSE */) {
            vnode.suspense.move(container, anchor, moveType);
            return;
        }
        if (shapeFlag & 64 /* TELEPORT */) {
            type.move(vnode, container, anchor, internals);
            return;
        }
        if (type === runtime_core_esm_bundler_Fragment) {
            hostInsert(el, container, anchor);
            for (let i = 0; i < children.length; i++) {
                move(children[i], container, anchor, moveType);
            }
            hostInsert(vnode.anchor, container, anchor);
            return;
        }
        if (type === runtime_core_esm_bundler_Static) {
            moveStaticNode(vnode, container, anchor);
            return;
        }
        // single nodes
        const needTransition = moveType !== 2 /* REORDER */ &&
            shapeFlag & 1 /* ELEMENT */ &&
            transition;
        if (needTransition) {
            if (moveType === 0 /* ENTER */) {
                transition.beforeEnter(el);
                hostInsert(el, container, anchor);
                queuePostRenderEffect(() => transition.enter(el), parentSuspense);
            }
            else {
                const { leave, delayLeave, afterLeave } = transition;
                const remove = () => hostInsert(el, container, anchor);
                const performLeave = () => {
                    leave(el, () => {
                        remove();
                        afterLeave && afterLeave();
                    });
                };
                if (delayLeave) {
                    delayLeave(el, remove, performLeave);
                }
                else {
                    performLeave();
                }
            }
        }
        else {
            hostInsert(el, container, anchor);
        }
    };
    const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
        const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs } = vnode;
        // unset ref
        if (ref != null) {
            setRef(ref, null, parentSuspense, vnode, true);
        }
        if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {
            parentComponent.ctx.deactivate(vnode);
            return;
        }
        const shouldInvokeDirs = shapeFlag & 1 /* ELEMENT */ && dirs;
        const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
        let vnodeHook;
        if (shouldInvokeVnodeHook &&
            (vnodeHook = props && props.onVnodeBeforeUnmount)) {
            invokeVNodeHook(vnodeHook, parentComponent, vnode);
        }
        if (shapeFlag & 6 /* COMPONENT */) {
            unmountComponent(vnode.component, parentSuspense, doRemove);
        }
        else {
            if (shapeFlag & 128 /* SUSPENSE */) {
                vnode.suspense.unmount(parentSuspense, doRemove);
                return;
            }
            if (shouldInvokeDirs) {
                invokeDirectiveHook(vnode, null, parentComponent, 'beforeUnmount');
            }
            if (shapeFlag & 64 /* TELEPORT */) {
                vnode.type.remove(vnode, parentComponent, parentSuspense, optimized, internals, doRemove);
            }
            else if (dynamicChildren &&
                // #1153: fast path should not be taken for non-stable (v-for) fragments
                (type !== runtime_core_esm_bundler_Fragment ||
                    (patchFlag > 0 && patchFlag & 64 /* STABLE_FRAGMENT */))) {
                // fast path for block nodes: only need to unmount dynamic children.
                unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
            }
            else if ((type === runtime_core_esm_bundler_Fragment &&
                patchFlag &
                    (128 /* KEYED_FRAGMENT */ | 256 /* UNKEYED_FRAGMENT */)) ||
                (!optimized && shapeFlag & 16 /* ARRAY_CHILDREN */)) {
                unmountChildren(children, parentComponent, parentSuspense);
            }
            if (doRemove) {
                remove(vnode);
            }
        }
        if ((shouldInvokeVnodeHook &&
            (vnodeHook = props && props.onVnodeUnmounted)) ||
            shouldInvokeDirs) {
            queuePostRenderEffect(() => {
                vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
                shouldInvokeDirs &&
                    invokeDirectiveHook(vnode, null, parentComponent, 'unmounted');
            }, parentSuspense);
        }
    };
    const remove = vnode => {
        const { type, el, anchor, transition } = vnode;
        if (type === runtime_core_esm_bundler_Fragment) {
            removeFragment(el, anchor);
            return;
        }
        if (type === runtime_core_esm_bundler_Static) {
            removeStaticNode(vnode);
            return;
        }
        const performRemove = () => {
            hostRemove(el);
            if (transition && !transition.persisted && transition.afterLeave) {
                transition.afterLeave();
            }
        };
        if (vnode.shapeFlag & 1 /* ELEMENT */ &&
            transition &&
            !transition.persisted) {
            const { leave, delayLeave } = transition;
            const performLeave = () => leave(el, performRemove);
            if (delayLeave) {
                delayLeave(vnode.el, performRemove, performLeave);
            }
            else {
                performLeave();
            }
        }
        else {
            performRemove();
        }
    };
    const removeFragment = (cur, end) => {
        // For fragments, directly remove all contained DOM nodes.
        // (fragment child nodes cannot have transition)
        let next;
        while (cur !== end) {
            next = hostNextSibling(cur);
            hostRemove(cur);
            cur = next;
        }
        hostRemove(end);
    };
    const unmountComponent = (instance, parentSuspense, doRemove) => {
        if (false) {}
        const { bum, scope, update, subTree, um } = instance;
        // beforeUnmount hook
        if (bum) {
            invokeArrayFns(bum);
        }
        // stop effects in component scope
        scope.stop();
        // update may be null if a component is unmounted before its async
        // setup has resolved.
        if (update) {
            // so that scheduler will no longer invoke it
            update.active = false;
            unmount(subTree, instance, parentSuspense, doRemove);
        }
        // unmounted hook
        if (um) {
            queuePostRenderEffect(um, parentSuspense);
        }
        queuePostRenderEffect(() => {
            instance.isUnmounted = true;
        }, parentSuspense);
        // A component with async dep inside a pending suspense is unmounted before
        // its async dep resolves. This should remove the dep from the suspense, and
        // cause the suspense to resolve immediately if that was the last dep.
        if (parentSuspense &&
            parentSuspense.pendingBranch &&
            !parentSuspense.isUnmounted &&
            instance.asyncDep &&
            !instance.asyncResolved &&
            instance.suspenseId === parentSuspense.pendingId) {
            parentSuspense.deps--;
            if (parentSuspense.deps === 0) {
                parentSuspense.resolve();
            }
        }
        if (false) {}
    };
    const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {
        for (let i = start; i < children.length; i++) {
            unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);
        }
    };
    const getNextHostNode = vnode => {
        if (vnode.shapeFlag & 6 /* COMPONENT */) {
            return getNextHostNode(vnode.component.subTree);
        }
        if (vnode.shapeFlag & 128 /* SUSPENSE */) {
            return vnode.suspense.next();
        }
        return hostNextSibling((vnode.anchor || vnode.el));
    };
    const render = (vnode, container, isSVG) => {
        if (vnode == null) {
            if (container._vnode) {
                unmount(container._vnode, null, null, true);
            }
        }
        else {
            patch(container._vnode || null, vnode, container, null, null, null, isSVG);
        }
        flushPostFlushCbs();
        container._vnode = vnode;
    };
    const internals = {
        p: patch,
        um: unmount,
        m: move,
        r: remove,
        mt: mountComponent,
        mc: mountChildren,
        pc: patchChildren,
        pbc: patchBlockChildren,
        n: getNextHostNode,
        o: options
    };
    let hydrate;
    let hydrateNode;
    if (createHydrationFns) {
        [hydrate, hydrateNode] = createHydrationFns(internals);
    }
    return {
        render,
        hydrate,
        createApp: createAppAPI(render, hydrate)
    };
}
function toggleRecurse({ effect, update }, allowed) {
    effect.allowRecurse = update.allowRecurse = allowed;
}
/**
 * #1156
 * When a component is HMR-enabled, we need to make sure that all static nodes
 * inside a block also inherit the DOM element from the previous tree so that
 * HMR updates (which are full updates) can retrieve the element for patching.
 *
 * #2080
 * Inside keyed `template` fragment static children, if a fragment is moved,
 * the children will always be moved. Therefore, in order to ensure correct move
 * position, el should be inherited from previous nodes.
 */
function traverseStaticChildren(n1, n2, shallow = false) {
    const ch1 = n1.children;
    const ch2 = n2.children;
    if (shared_esm_bundler_isArray(ch1) && shared_esm_bundler_isArray(ch2)) {
        for (let i = 0; i < ch1.length; i++) {
            // this is only called in the optimized path so array children are
            // guaranteed to be vnodes
            const c1 = ch1[i];
            let c2 = ch2[i];
            if (c2.shapeFlag & 1 /* ELEMENT */ && !c2.dynamicChildren) {
                if (c2.patchFlag <= 0 || c2.patchFlag === 32 /* HYDRATE_EVENTS */) {
                    c2 = ch2[i] = cloneIfMounted(ch2[i]);
                    c2.el = c1.el;
                }
                if (!shallow)
                    traverseStaticChildren(c1, c2);
            }
            // also inherit for comment nodes, but not placeholders (e.g. v-if which
            // would have received .el during block patch)
            if (false) {}
        }
    }
}
// https://en.wikipedia.org/wiki/Longest_increasing_subsequence
function getSequence(arr) {
    const p = arr.slice();
    const result = [0];
    let i, j, u, v, c;
    const len = arr.length;
    for (i = 0; i < len; i++) {
        const arrI = arr[i];
        if (arrI !== 0) {
            j = result[result.length - 1];
            if (arr[j] < arrI) {
                p[i] = j;
                result.push(i);
                continue;
            }
            u = 0;
            v = result.length - 1;
            while (u < v) {
                c = (u + v) >> 1;
                if (arr[result[c]] < arrI) {
                    u = c + 1;
                }
                else {
                    v = c;
                }
            }
            if (arrI < arr[result[u]]) {
                if (u > 0) {
                    p[i] = result[u - 1];
                }
                result[u] = i;
            }
        }
    }
    u = result.length;
    v = result[u - 1];
    while (u-- > 0) {
        result[u] = v;
        v = p[v];
    }
    return result;
}

const isTeleport = (type) => type.__isTeleport;
const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === '');
const isTargetSVG = (target) => typeof SVGElement !== 'undefined' && target instanceof SVGElement;
const resolveTarget = (props, select) => {
    const targetSelector = props && props.to;
    if (shared_esm_bundler_isString(targetSelector)) {
        if (!select) {
            ( false) &&
                0;
            return null;
        }
        else {
            const target = select(targetSelector);
            if (!target) {
                ( false) &&
                    0;
            }
            return target;
        }
    }
    else {
        if (false) {}
        return targetSelector;
    }
};
const TeleportImpl = {
    __isTeleport: true,
    process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals) {
        const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment } } = internals;
        const disabled = isTeleportDisabled(n2.props);
        let { shapeFlag, children, dynamicChildren } = n2;
        // #3302
        // HMR updated, force full diff
        if (false) {}
        if (n1 == null) {
            // insert anchors in the main view
            const placeholder = (n2.el = ( false)
                ? 0
                : createText(''));
            const mainAnchor = (n2.anchor = ( false)
                ? 0
                : createText(''));
            insert(placeholder, container, anchor);
            insert(mainAnchor, container, anchor);
            const target = (n2.target = resolveTarget(n2.props, querySelector));
            const targetAnchor = (n2.targetAnchor = createText(''));
            if (target) {
                insert(targetAnchor, target);
                // #2652 we could be teleporting from a non-SVG tree into an SVG tree
                isSVG = isSVG || isTargetSVG(target);
            }
            else if (false) {}
            const mount = (container, anchor) => {
                // Teleport *always* has Array children. This is enforced in both the
                // compiler and vnode children normalization.
                if (shapeFlag & 16 /* ARRAY_CHILDREN */) {
                    mountChildren(children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
                }
            };
            if (disabled) {
                mount(container, mainAnchor);
            }
            else if (target) {
                mount(target, targetAnchor);
            }
        }
        else {
            // update content
            n2.el = n1.el;
            const mainAnchor = (n2.anchor = n1.anchor);
            const target = (n2.target = n1.target);
            const targetAnchor = (n2.targetAnchor = n1.targetAnchor);
            const wasDisabled = isTeleportDisabled(n1.props);
            const currentContainer = wasDisabled ? container : target;
            const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
            isSVG = isSVG || isTargetSVG(target);
            if (dynamicChildren) {
                // fast path when the teleport happens to be a block root
                patchBlockChildren(n1.dynamicChildren, dynamicChildren, currentContainer, parentComponent, parentSuspense, isSVG, slotScopeIds);
                // even in block tree mode we need to make sure all root-level nodes
                // in the teleport inherit previous DOM references so that they can
                // be moved in future patches.
                traverseStaticChildren(n1, n2, true);
            }
            else if (!optimized) {
                patchChildren(n1, n2, currentContainer, currentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, false);
            }
            if (disabled) {
                if (!wasDisabled) {
                    // enabled -> disabled
                    // move into main container
                    moveTeleport(n2, container, mainAnchor, internals, 1 /* TOGGLE */);
                }
            }
            else {
                // target changed
                if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
                    const nextTarget = (n2.target = resolveTarget(n2.props, querySelector));
                    if (nextTarget) {
                        moveTeleport(n2, nextTarget, null, internals, 0 /* TARGET_CHANGE */);
                    }
                    else if ((false)) {}
                }
                else if (wasDisabled) {
                    // disabled -> enabled
                    // move into teleport target
                    moveTeleport(n2, target, targetAnchor, internals, 1 /* TOGGLE */);
                }
            }
        }
    },
    remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {
        const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;
        if (target) {
            hostRemove(targetAnchor);
        }
        // an unmounted teleport should always remove its children if not disabled
        if (doRemove || !isTeleportDisabled(props)) {
            hostRemove(anchor);
            if (shapeFlag & 16 /* ARRAY_CHILDREN */) {
                for (let i = 0; i < children.length; i++) {
                    const child = children[i];
                    unmount(child, parentComponent, parentSuspense, true, !!child.dynamicChildren);
                }
            }
        }
    },
    move: moveTeleport,
    hydrate: hydrateTeleport
};
function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2 /* REORDER */) {
    // move target anchor if this is a target change.
    if (moveType === 0 /* TARGET_CHANGE */) {
        insert(vnode.targetAnchor, container, parentAnchor);
    }
    const { el, anchor, shapeFlag, children, props } = vnode;
    const isReorder = moveType === 2 /* REORDER */;
    // move main view anchor if this is a re-order.
    if (isReorder) {
        insert(el, container, parentAnchor);
    }
    // if this is a re-order and teleport is enabled (content is in target)
    // do not move children. So the opposite is: only move children if this
    // is not a reorder, or the teleport is disabled
    if (!isReorder || isTeleportDisabled(props)) {
        // Teleport has either Array children or no children.
        if (shapeFlag & 16 /* ARRAY_CHILDREN */) {
            for (let i = 0; i < children.length; i++) {
                move(children[i], container, parentAnchor, 2 /* REORDER */);
            }
        }
    }
    // move main view anchor if this is a re-order.
    if (isReorder) {
        insert(anchor, container, parentAnchor);
    }
}
function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { o: { nextSibling, parentNode, querySelector } }, hydrateChildren) {
    const target = (vnode.target = resolveTarget(vnode.props, querySelector));
    if (target) {
        // if multiple teleports rendered to the same target element, we need to
        // pick up from where the last teleport finished instead of the first node
        const targetNode = target._lpa || target.firstChild;
        if (vnode.shapeFlag & 16 /* ARRAY_CHILDREN */) {
            if (isTeleportDisabled(vnode.props)) {
                vnode.anchor = hydrateChildren(nextSibling(node), vnode, parentNode(node), parentComponent, parentSuspense, slotScopeIds, optimized);
                vnode.targetAnchor = targetNode;
            }
            else {
                vnode.anchor = nextSibling(node);
                vnode.targetAnchor = hydrateChildren(targetNode, vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
            }
            target._lpa =
                vnode.targetAnchor && nextSibling(vnode.targetAnchor);
        }
    }
    return vnode.anchor && nextSibling(vnode.anchor);
}
// Force-casted public typing for h and TSX props inference
const Teleport = (/* unused pure expression or super */ null && (TeleportImpl));

const COMPONENTS = 'components';
const DIRECTIVES = 'directives';
/**
 * @private
 */
function resolveComponent(name, maybeSelfReference) {
    return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
}
const NULL_DYNAMIC_COMPONENT = Symbol();
/**
 * @private
 */
function resolveDynamicComponent(component) {
    if (shared_esm_bundler_isString(component)) {
        return resolveAsset(COMPONENTS, component, false) || component;
    }
    else {
        // invalid types will fallthrough to createVNode and raise warning
        return (component || NULL_DYNAMIC_COMPONENT);
    }
}
/**
 * @private
 */
function resolveDirective(name) {
    return resolveAsset(DIRECTIVES, name);
}
// implementation
function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
    const instance = currentRenderingInstance || currentInstance;
    if (instance) {
        const Component = instance.type;
        // explicit self name has highest priority
        if (type === COMPONENTS) {
            const selfName = getComponentName(Component);
            if (selfName &&
                (selfName === name ||
                    selfName === camelize(name) ||
                    selfName === shared_esm_bundler_capitalize(camelize(name)))) {
                return Component;
            }
        }
        const res = 
        // local registration
        // check instance[type] first which is resolved for options API
        resolve(instance[type] || Component[type], name) ||
            // global registration
            resolve(instance.appContext[type], name);
        if (!res && maybeSelfReference) {
            // fallback to implicit self-reference
            return Component;
        }
        if (false) {}
        return res;
    }
    else if ((false)) {}
}
function resolve(registry, name) {
    return (registry &&
        (registry[name] ||
            registry[camelize(name)] ||
            registry[shared_esm_bundler_capitalize(camelize(name))]));
}

const runtime_core_esm_bundler_Fragment = Symbol(( false) ? 0 : undefined);
const Text = Symbol(( false) ? 0 : undefined);
const Comment = Symbol(( false) ? 0 : undefined);
const runtime_core_esm_bundler_Static = Symbol(( false) ? 0 : undefined);
// Since v-if and v-for are the two possible ways node structure can dynamically
// change, once we consider v-if branches and each v-for fragment a block, we
// can divide a template into nested blocks, and within each block the node
// structure would be stable. This allows us to skip most children diffing
// and only worry about the dynamic nodes (indicated by patch flags).
const blockStack = [];
let currentBlock = null;
/**
 * Open a block.
 * This must be called before `createBlock`. It cannot be part of `createBlock`
 * because the children of the block are evaluated before `createBlock` itself
 * is called. The generated code typically looks like this:
 *
 * ```js
 * function render() {
 *   return (openBlock(),createBlock('div', null, [...]))
 * }
 * ```
 * disableTracking is true when creating a v-for fragment block, since a v-for
 * fragment always diffs its children.
 *
 * @private
 */
function openBlock(disableTracking = false) {
    blockStack.push((currentBlock = disableTracking ? null : []));
}
function closeBlock() {
    blockStack.pop();
    currentBlock = blockStack[blockStack.length - 1] || null;
}
// Whether we should be tracking dynamic child nodes inside a block.
// Only tracks when this value is > 0
// We are not using a simple boolean because this value may need to be
// incremented/decremented by nested usage of v-once (see below)
let isBlockTreeEnabled = 1;
/**
 * Block tracking sometimes needs to be disabled, for example during the
 * creation of a tree that needs to be cached by v-once. The compiler generates
 * code like this:
 *
 * ``` js
 * _cache[1] || (
 *   setBlockTracking(-1),
 *   _cache[1] = createVNode(...),
 *   setBlockTracking(1),
 *   _cache[1]
 * )
 * ```
 *
 * @private
 */
function setBlockTracking(value) {
    isBlockTreeEnabled += value;
}
function setupBlock(vnode) {
    // save current block children on the block vnode
    vnode.dynamicChildren =
        isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;
    // close block
    closeBlock();
    // a block is always going to be patched, so track it as a child of its
    // parent block
    if (isBlockTreeEnabled > 0 && currentBlock) {
        currentBlock.push(vnode);
    }
    return vnode;
}
/**
 * @private
 */
function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {
    return setupBlock(createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, true /* isBlock */));
}
/**
 * Create a block root vnode. Takes the same exact arguments as `createVNode`.
 * A block root keeps track of dynamic nodes within the block in the
 * `dynamicChildren` array.
 *
 * @private
 */
function createBlock(type, props, children, patchFlag, dynamicProps) {
    return setupBlock(runtime_core_esm_bundler_createVNode(type, props, children, patchFlag, dynamicProps, true /* isBlock: prevent a block from tracking itself */));
}
function isVNode(value) {
    return value ? value.__v_isVNode === true : false;
}
function isSameVNodeType(n1, n2) {
    if (false) {}
    return n1.type === n2.type && n1.key === n2.key;
}
let vnodeArgsTransformer;
/**
 * Internal API for registering an arguments transform for createVNode
 * used for creating stubs in the test-utils
 * It is *internal* but needs to be exposed for test-utils to pick up proper
 * typings
 */
function transformVNodeArgs(transformer) {
    vnodeArgsTransformer = transformer;
}
const createVNodeWithArgsTransform = (...args) => {
    return _createVNode(...(vnodeArgsTransformer
        ? vnodeArgsTransformer(args, currentRenderingInstance)
        : args));
};
const InternalObjectKey = `__vInternal`;
const normalizeKey = ({ key }) => key != null ? key : null;
const normalizeRef = ({ ref, ref_key, ref_for }) => {
    return (ref != null
        ? shared_esm_bundler_isString(ref) || reactivity_esm_bundler_isRef(ref) || shared_esm_bundler_isFunction(ref)
            ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for }
            : ref
        : null);
};
function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === runtime_core_esm_bundler_Fragment ? 0 : 1 /* ELEMENT */, isBlockNode = false, needFullChildrenNormalization = false) {
    const vnode = {
        __v_isVNode: true,
        __v_skip: true,
        type,
        props,
        key: props && normalizeKey(props),
        ref: props && normalizeRef(props),
        scopeId: currentScopeId,
        slotScopeIds: null,
        children,
        component: null,
        suspense: null,
        ssContent: null,
        ssFallback: null,
        dirs: null,
        transition: null,
        el: null,
        anchor: null,
        target: null,
        targetAnchor: null,
        staticCount: 0,
        shapeFlag,
        patchFlag,
        dynamicProps,
        dynamicChildren: null,
        appContext: null
    };
    if (needFullChildrenNormalization) {
        normalizeChildren(vnode, children);
        // normalize suspense children
        if (shapeFlag & 128 /* SUSPENSE */) {
            type.normalize(vnode);
        }
    }
    else if (children) {
        // compiled element vnode - if children is passed, only possible types are
        // string or Array.
        vnode.shapeFlag |= shared_esm_bundler_isString(children)
            ? 8 /* TEXT_CHILDREN */
            : 16 /* ARRAY_CHILDREN */;
    }
    // validate key
    if (false) {}
    // track vnode for block tree
    if (isBlockTreeEnabled > 0 &&
        // avoid a block node from tracking itself
        !isBlockNode &&
        // has current parent block
        currentBlock &&
        // presence of a patch flag indicates this node needs patching on updates.
        // component nodes also should always be patched, because even if the
        // component doesn't need to update, it needs to persist the instance on to
        // the next vnode so that it can be properly unmounted later.
        (vnode.patchFlag > 0 || shapeFlag & 6 /* COMPONENT */) &&
        // the EVENTS flag is only for hydration and if it is the only flag, the
        // vnode should not be considered dynamic due to handler caching.
        vnode.patchFlag !== 32 /* HYDRATE_EVENTS */) {
        currentBlock.push(vnode);
    }
    return vnode;
}
const runtime_core_esm_bundler_createVNode = (( false) ? 0 : _createVNode);
function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
    if (!type || type === NULL_DYNAMIC_COMPONENT) {
        if (false) {}
        type = Comment;
    }
    if (isVNode(type)) {
        // createVNode receiving an existing vnode. This happens in cases like
        // <component :is="vnode"/>
        // #2078 make sure to merge refs during the clone instead of overwriting it
        const cloned = cloneVNode(type, props, true /* mergeRef: true */);
        if (children) {
            normalizeChildren(cloned, children);
        }
        return cloned;
    }
    // class component normalization.
    if (isClassComponent(type)) {
        type = type.__vccOpts;
    }
    // class & style normalization.
    if (props) {
        // for reactive or proxy objects, we need to clone it to enable mutation.
        props = guardReactiveProps(props);
        let { class: klass, style } = props;
        if (klass && !shared_esm_bundler_isString(klass)) {
            props.class = normalizeClass(klass);
        }
        if (shared_esm_bundler_isObject(style)) {
            // reactive state objects need to be cloned since they are likely to be
            // mutated
            if (isProxy(style) && !shared_esm_bundler_isArray(style)) {
                style = shared_esm_bundler_extend({}, style);
            }
            props.style = normalizeStyle(style);
        }
    }
    // encode the vnode type information into a bitmap
    const shapeFlag = shared_esm_bundler_isString(type)
        ? 1 /* ELEMENT */
        : isSuspense(type)
            ? 128 /* SUSPENSE */
            : isTeleport(type)
                ? 64 /* TELEPORT */
                : shared_esm_bundler_isObject(type)
                    ? 4 /* STATEFUL_COMPONENT */
                    : shared_esm_bundler_isFunction(type)
                        ? 2 /* FUNCTIONAL_COMPONENT */
                        : 0;
    if (false) {}
    return createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, isBlockNode, true);
}
function guardReactiveProps(props) {
    if (!props)
        return null;
    return isProxy(props) || InternalObjectKey in props
        ? shared_esm_bundler_extend({}, props)
        : props;
}
function cloneVNode(vnode, extraProps, mergeRef = false) {
    // This is intentionally NOT using spread or extend to avoid the runtime
    // key enumeration cost.
    const { props, ref, patchFlag, children } = vnode;
    const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;
    const cloned = {
        __v_isVNode: true,
        __v_skip: true,
        type: vnode.type,
        props: mergedProps,
        key: mergedProps && normalizeKey(mergedProps),
        ref: extraProps && extraProps.ref
            ? // #2078 in the case of <component :is="vnode" ref="extra"/>
                // if the vnode itself already has a ref, cloneVNode will need to merge
                // the refs so the single vnode can be set on multiple refs
                mergeRef && ref
                    ? shared_esm_bundler_isArray(ref)
                        ? ref.concat(normalizeRef(extraProps))
                        : [ref, normalizeRef(extraProps)]
                    : normalizeRef(extraProps)
            : ref,
        scopeId: vnode.scopeId,
        slotScopeIds: vnode.slotScopeIds,
        children:  false
            ? 0
            : children,
        target: vnode.target,
        targetAnchor: vnode.targetAnchor,
        staticCount: vnode.staticCount,
        shapeFlag: vnode.shapeFlag,
        // if the vnode is cloned with extra props, we can no longer assume its
        // existing patch flag to be reliable and need to add the FULL_PROPS flag.
        // note: preserve flag for fragments since they use the flag for children
        // fast paths only.
        patchFlag: extraProps && vnode.type !== runtime_core_esm_bundler_Fragment
            ? patchFlag === -1 // hoisted node
                ? 16 /* FULL_PROPS */
                : patchFlag | 16 /* FULL_PROPS */
            : patchFlag,
        dynamicProps: vnode.dynamicProps,
        dynamicChildren: vnode.dynamicChildren,
        appContext: vnode.appContext,
        dirs: vnode.dirs,
        transition: vnode.transition,
        // These should technically only be non-null on mounted VNodes. However,
        // they *should* be copied for kept-alive vnodes. So we just always copy
        // them since them being non-null during a mount doesn't affect the logic as
        // they will simply be overwritten.
        component: vnode.component,
        suspense: vnode.suspense,
        ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),
        ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),
        el: vnode.el,
        anchor: vnode.anchor
    };
    return cloned;
}
/**
 * Dev only, for HMR of hoisted vnodes reused in v-for
 * https://github.com/vitejs/vite/issues/2022
 */
function deepCloneVNode(vnode) {
    const cloned = cloneVNode(vnode);
    if (isArray(vnode.children)) {
        cloned.children = vnode.children.map(deepCloneVNode);
    }
    return cloned;
}
/**
 * @private
 */
function createTextVNode(text = ' ', flag = 0) {
    return runtime_core_esm_bundler_createVNode(Text, null, text, flag);
}
/**
 * @private
 */
function createStaticVNode(content, numberOfNodes) {
    // A static vnode can contain multiple stringified elements, and the number
    // of elements is necessary for hydration.
    const vnode = runtime_core_esm_bundler_createVNode(runtime_core_esm_bundler_Static, null, content);
    vnode.staticCount = numberOfNodes;
    return vnode;
}
/**
 * @private
 */
function createCommentVNode(text = '', 
// when used as the v-else branch, the comment node must be created as a
// block to ensure correct updates.
asBlock = false) {
    return asBlock
        ? (openBlock(), createBlock(Comment, null, text))
        : runtime_core_esm_bundler_createVNode(Comment, null, text);
}
function normalizeVNode(child) {
    if (child == null || typeof child === 'boolean') {
        // empty placeholder
        return runtime_core_esm_bundler_createVNode(Comment);
    }
    else if (shared_esm_bundler_isArray(child)) {
        // fragment
        return runtime_core_esm_bundler_createVNode(runtime_core_esm_bundler_Fragment, null, 
        // #3666, avoid reference pollution when reusing vnode
        child.slice());
    }
    else if (typeof child === 'object') {
        // already vnode, this should be the most common since compiled templates
        // always produce all-vnode children arrays
        return cloneIfMounted(child);
    }
    else {
        // strings and numbers
        return runtime_core_esm_bundler_createVNode(Text, null, String(child));
    }
}
// optimized normalization for template-compiled render fns
function cloneIfMounted(child) {
    return child.el === null || child.memo ? child : cloneVNode(child);
}
function normalizeChildren(vnode, children) {
    let type = 0;
    const { shapeFlag } = vnode;
    if (children == null) {
        children = null;
    }
    else if (shared_esm_bundler_isArray(children)) {
        type = 16 /* ARRAY_CHILDREN */;
    }
    else if (typeof children === 'object') {
        if (shapeFlag & (1 /* ELEMENT */ | 64 /* TELEPORT */)) {
            // Normalize slot to plain children for plain element and Teleport
            const slot = children.default;
            if (slot) {
                // _c marker is added by withCtx() indicating this is a compiled slot
                slot._c && (slot._d = false);
                normalizeChildren(vnode, slot());
                slot._c && (slot._d = true);
            }
            return;
        }
        else {
            type = 32 /* SLOTS_CHILDREN */;
            const slotFlag = children._;
            if (!slotFlag && !(InternalObjectKey in children)) {
                children._ctx = currentRenderingInstance;
            }
            else if (slotFlag === 3 /* FORWARDED */ && currentRenderingInstance) {
                // a child component receives forwarded slots from the parent.
                // its slot type is determined by its parent's slot type.
                if (currentRenderingInstance.slots._ === 1 /* STABLE */) {
                    children._ = 1 /* STABLE */;
                }
                else {
                    children._ = 2 /* DYNAMIC */;
                    vnode.patchFlag |= 1024 /* DYNAMIC_SLOTS */;
                }
            }
        }
    }
    else if (shared_esm_bundler_isFunction(children)) {
        children = { default: children, _ctx: currentRenderingInstance };
        type = 32 /* SLOTS_CHILDREN */;
    }
    else {
        children = String(children);
        // force teleport children to array so it can be moved around
        if (shapeFlag & 64 /* TELEPORT */) {
            type = 16 /* ARRAY_CHILDREN */;
            children = [createTextVNode(children)];
        }
        else {
            type = 8 /* TEXT_CHILDREN */;
        }
    }
    vnode.children = children;
    vnode.shapeFlag |= type;
}
function mergeProps(...args) {
    const ret = {};
    for (let i = 0; i < args.length; i++) {
        const toMerge = args[i];
        for (const key in toMerge) {
            if (key === 'class') {
                if (ret.class !== toMerge.class) {
                    ret.class = normalizeClass([ret.class, toMerge.class]);
                }
            }
            else if (key === 'style') {
                ret.style = normalizeStyle([ret.style, toMerge.style]);
            }
            else if (shared_esm_bundler_isOn(key)) {
                const existing = ret[key];
                const incoming = toMerge[key];
                if (incoming &&
                    existing !== incoming &&
                    !(shared_esm_bundler_isArray(existing) && existing.includes(incoming))) {
                    ret[key] = existing
                        ? [].concat(existing, incoming)
                        : incoming;
                }
            }
            else if (key !== '') {
                ret[key] = toMerge[key];
            }
        }
    }
    return ret;
}
function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
    callWithAsyncErrorHandling(hook, instance, 7 /* VNODE_HOOK */, [
        vnode,
        prevVNode
    ]);
}

/**
 * Actual implementation
 */
function renderList(source, renderItem, cache, index) {
    let ret;
    const cached = (cache && cache[index]);
    if (shared_esm_bundler_isArray(source) || shared_esm_bundler_isString(source)) {
        ret = new Array(source.length);
        for (let i = 0, l = source.length; i < l; i++) {
            ret[i] = renderItem(source[i], i, undefined, cached && cached[i]);
        }
    }
    else if (typeof source === 'number') {
        if (false) {}
        ret = new Array(source);
        for (let i = 0; i < source; i++) {
            ret[i] = renderItem(i + 1, i, undefined, cached && cached[i]);
        }
    }
    else if (shared_esm_bundler_isObject(source)) {
        if (source[Symbol.iterator]) {
            ret = Array.from(source, (item, i) => renderItem(item, i, undefined, cached && cached[i]));
        }
        else {
            const keys = Object.keys(source);
            ret = new Array(keys.length);
            for (let i = 0, l = keys.length; i < l; i++) {
                const key = keys[i];
                ret[i] = renderItem(source[key], key, i, cached && cached[i]);
            }
        }
    }
    else {
        ret = [];
    }
    if (cache) {
        cache[index] = ret;
    }
    return ret;
}

/**
 * Compiler runtime helper for creating dynamic slots object
 * @private
 */
function createSlots(slots, dynamicSlots) {
    for (let i = 0; i < dynamicSlots.length; i++) {
        const slot = dynamicSlots[i];
        // array of dynamic slot generated by <template v-for="..." #[...]>
        if (isArray(slot)) {
            for (let j = 0; j < slot.length; j++) {
                slots[slot[j].name] = slot[j].fn;
            }
        }
        else if (slot) {
            // conditional single slot generated by <template v-if="..." #foo>
            slots[slot.name] = slot.fn;
        }
    }
    return slots;
}

/**
 * Compiler runtime helper for rendering `<slot/>`
 * @private
 */
function renderSlot(slots, name, props = {}, 
// this is not a user-facing function, so the fallback is always generated by
// the compiler and guaranteed to be a function returning an array
fallback, noSlotted) {
    if (currentRenderingInstance.isCE) {
        return runtime_core_esm_bundler_createVNode('slot', name === 'default' ? null : { name }, fallback && fallback());
    }
    let slot = slots[name];
    if (false) {}
    // a compiled slot disables block tracking by default to avoid manual
    // invocation interfering with template-based block tracking, but in
    // `renderSlot` we can be sure that it's template-based so we can force
    // enable it.
    if (slot && slot._c) {
        slot._d = false;
    }
    openBlock();
    const validSlotContent = slot && ensureValidVNode(slot(props));
    const rendered = createBlock(runtime_core_esm_bundler_Fragment, { key: props.key || `_${name}` }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 /* STABLE */
        ? 64 /* STABLE_FRAGMENT */
        : -2 /* BAIL */);
    if (!noSlotted && rendered.scopeId) {
        rendered.slotScopeIds = [rendered.scopeId + '-s'];
    }
    if (slot && slot._c) {
        slot._d = true;
    }
    return rendered;
}
function ensureValidVNode(vnodes) {
    return vnodes.some(child => {
        if (!isVNode(child))
            return true;
        if (child.type === Comment)
            return false;
        if (child.type === runtime_core_esm_bundler_Fragment &&
            !ensureValidVNode(child.children))
            return false;
        return true;
    })
        ? vnodes
        : null;
}

/**
 * For prefixing keys in v-on="obj" with "on"
 * @private
 */
function toHandlers(obj) {
    const ret = {};
    if (false) {}
    for (const key in obj) {
        ret[toHandlerKey(key)] = obj[key];
    }
    return ret;
}

/**
 * #2437 In Vue 3, functional components do not have a public instance proxy but
 * they exist in the internal parent chain. For code that relies on traversing
 * public $parent chains, skip functional ones and go to the parent instead.
 */
const getPublicInstance = (i) => {
    if (!i)
        return null;
    if (isStatefulComponent(i))
        return getExposeProxy(i) || i.proxy;
    return getPublicInstance(i.parent);
};
const publicPropertiesMap = shared_esm_bundler_extend(Object.create(null), {
    $: i => i,
    $el: i => i.vnode.el,
    $data: i => i.data,
    $props: i => (( false) ? 0 : i.props),
    $attrs: i => (( false) ? 0 : i.attrs),
    $slots: i => (( false) ? 0 : i.slots),
    $refs: i => (( false) ? 0 : i.refs),
    $parent: i => getPublicInstance(i.parent),
    $root: i => getPublicInstance(i.root),
    $emit: i => i.emit,
    $options: i => ( false ? 0 : i.type),
    $forceUpdate: i => () => queueJob(i.update),
    $nextTick: i => runtime_core_esm_bundler_nextTick.bind(i.proxy),
    $watch: i => ( false ? 0 : shared_esm_bundler_NOOP)
});
const PublicInstanceProxyHandlers = {
    get({ _: instance }, key) {
        const { ctx, setupState, data, props, accessCache, type, appContext } = instance;
        // for internal formatters to know that this is a Vue instance
        if (false) {}
        // prioritize <script setup> bindings during dev.
        // this allows even properties that start with _ or $ to be used - so that
        // it aligns with the production behavior where the render fn is inlined and
        // indeed has access to all declared variables.
        if (false) {}
        // data / props / ctx
        // This getter gets called for every property access on the render context
        // during render and is a major hotspot. The most expensive part of this
        // is the multiple hasOwn() calls. It's much faster to do a simple property
        // access on a plain object, so we use an accessCache object (with null
        // prototype) to memoize what access type a key corresponds to.
        let normalizedProps;
        if (key[0] !== '$') {
            const n = accessCache[key];
            if (n !== undefined) {
                switch (n) {
                    case 1 /* SETUP */:
                        return setupState[key];
                    case 2 /* DATA */:
                        return data[key];
                    case 4 /* CONTEXT */:
                        return ctx[key];
                    case 3 /* PROPS */:
                        return props[key];
                    // default: just fallthrough
                }
            }
            else if (setupState !== shared_esm_bundler_EMPTY_OBJ && shared_esm_bundler_hasOwn(setupState, key)) {
                accessCache[key] = 1 /* SETUP */;
                return setupState[key];
            }
            else if (data !== shared_esm_bundler_EMPTY_OBJ && shared_esm_bundler_hasOwn(data, key)) {
                accessCache[key] = 2 /* DATA */;
                return data[key];
            }
            else if (
            // only cache other properties when instance has declared (thus stable)
            // props
            (normalizedProps = instance.propsOptions[0]) &&
                shared_esm_bundler_hasOwn(normalizedProps, key)) {
                accessCache[key] = 3 /* PROPS */;
                return props[key];
            }
            else if (ctx !== shared_esm_bundler_EMPTY_OBJ && shared_esm_bundler_hasOwn(ctx, key)) {
                accessCache[key] = 4 /* CONTEXT */;
                return ctx[key];
            }
            else if (true) {
                accessCache[key] = 0 /* OTHER */;
            }
        }
        const publicGetter = publicPropertiesMap[key];
        let cssModule, globalProperties;
        // public $xxx properties
        if (publicGetter) {
            if (key === '$attrs') {
                track(instance, "get" /* GET */, key);
                ( false) && 0;
            }
            return publicGetter(instance);
        }
        else if (
        // css module (injected by vue-loader)
        (cssModule = type.__cssModules) &&
            (cssModule = cssModule[key])) {
            return cssModule;
        }
        else if (ctx !== shared_esm_bundler_EMPTY_OBJ && shared_esm_bundler_hasOwn(ctx, key)) {
            // user may set custom properties to `this` that start with `$`
            accessCache[key] = 4 /* CONTEXT */;
            return ctx[key];
        }
        else if (
        // global properties
        ((globalProperties = appContext.config.globalProperties),
            shared_esm_bundler_hasOwn(globalProperties, key))) {
            {
                return globalProperties[key];
            }
        }
        else if (false) {}
    },
    set({ _: instance }, key, value) {
        const { data, setupState, ctx } = instance;
        if (setupState !== shared_esm_bundler_EMPTY_OBJ && shared_esm_bundler_hasOwn(setupState, key)) {
            setupState[key] = value;
            return true;
        }
        else if (data !== shared_esm_bundler_EMPTY_OBJ && shared_esm_bundler_hasOwn(data, key)) {
            data[key] = value;
            return true;
        }
        else if (shared_esm_bundler_hasOwn(instance.props, key)) {
            ( false) &&
                0;
            return false;
        }
        if (key[0] === '$' && key.slice(1) in instance) {
            ( false) &&
                0;
            return false;
        }
        else {
            if (false) {}
            else {
                ctx[key] = value;
            }
        }
        return true;
    },
    has({ _: { data, setupState, accessCache, ctx, appContext, propsOptions } }, key) {
        let normalizedProps;
        return (!!accessCache[key] ||
            (data !== shared_esm_bundler_EMPTY_OBJ && shared_esm_bundler_hasOwn(data, key)) ||
            (setupState !== shared_esm_bundler_EMPTY_OBJ && shared_esm_bundler_hasOwn(setupState, key)) ||
            ((normalizedProps = propsOptions[0]) && shared_esm_bundler_hasOwn(normalizedProps, key)) ||
            shared_esm_bundler_hasOwn(ctx, key) ||
            shared_esm_bundler_hasOwn(publicPropertiesMap, key) ||
            shared_esm_bundler_hasOwn(appContext.config.globalProperties, key));
    },
    defineProperty(target, key, descriptor) {
        if (descriptor.get != null) {
            this.set(target, key, descriptor.get(), null);
        }
        else if (descriptor.value != null) {
            this.set(target, key, descriptor.value, null);
        }
        return Reflect.defineProperty(target, key, descriptor);
    }
};
if (false) {}
const RuntimeCompiledPublicInstanceProxyHandlers = /*#__PURE__*/ shared_esm_bundler_extend({}, PublicInstanceProxyHandlers, {
    get(target, key) {
        // fast path for unscopables when using `with` block
        if (key === Symbol.unscopables) {
            return;
        }
        return PublicInstanceProxyHandlers.get(target, key, target);
    },
    has(_, key) {
        const has = key[0] !== '_' && !isGloballyWhitelisted(key);
        if (false) {}
        return has;
    }
});
// dev only
// In dev mode, the proxy target exposes the same properties as seen on `this`
// for easier console inspection. In prod mode it will be an empty object so
// these properties definitions can be skipped.
function createDevRenderContext(instance) {
    const target = {};
    // expose internal instance for proxy handlers
    Object.defineProperty(target, `_`, {
        configurable: true,
        enumerable: false,
        get: () => instance
    });
    // expose public properties
    Object.keys(publicPropertiesMap).forEach(key => {
        Object.defineProperty(target, key, {
            configurable: true,
            enumerable: false,
            get: () => publicPropertiesMap[key](instance),
            // intercepted by the proxy so no need for implementation,
            // but needed to prevent set errors
            set: NOOP
        });
    });
    return target;
}
// dev only
function exposePropsOnRenderContext(instance) {
    const { ctx, propsOptions: [propsOptions] } = instance;
    if (propsOptions) {
        Object.keys(propsOptions).forEach(key => {
            Object.defineProperty(ctx, key, {
                enumerable: true,
                configurable: true,
                get: () => instance.props[key],
                set: NOOP
            });
        });
    }
}
// dev only
function exposeSetupStateOnRenderContext(instance) {
    const { ctx, setupState } = instance;
    Object.keys(toRaw(setupState)).forEach(key => {
        if (!setupState.__isScriptSetup) {
            if (key[0] === '$' || key[0] === '_') {
                runtime_core_esm_bundler_warn(`setup() return property ${JSON.stringify(key)} should not start with "$" or "_" ` +
                    `which are reserved prefixes for Vue internals.`);
                return;
            }
            Object.defineProperty(ctx, key, {
                enumerable: true,
                configurable: true,
                get: () => setupState[key],
                set: NOOP
            });
        }
    });
}

const emptyAppContext = createAppContext();
let uid$1 = 0;
function createComponentInstance(vnode, parent, suspense) {
    const type = vnode.type;
    // inherit parent app context - or - if root, adopt from root vnode
    const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
    const instance = {
        uid: uid$1++,
        vnode,
        type,
        parent,
        appContext,
        root: null,
        next: null,
        subTree: null,
        effect: null,
        update: null,
        scope: new EffectScope(true /* detached */),
        render: null,
        proxy: null,
        exposed: null,
        exposeProxy: null,
        withProxy: null,
        provides: parent ? parent.provides : Object.create(appContext.provides),
        accessCache: null,
        renderCache: [],
        // local resovled assets
        components: null,
        directives: null,
        // resolved props and emits options
        propsOptions: normalizePropsOptions(type, appContext),
        emitsOptions: normalizeEmitsOptions(type, appContext),
        // emit
        emit: null,
        emitted: null,
        // props default value
        propsDefaults: shared_esm_bundler_EMPTY_OBJ,
        // inheritAttrs
        inheritAttrs: type.inheritAttrs,
        // state
        ctx: shared_esm_bundler_EMPTY_OBJ,
        data: shared_esm_bundler_EMPTY_OBJ,
        props: shared_esm_bundler_EMPTY_OBJ,
        attrs: shared_esm_bundler_EMPTY_OBJ,
        slots: shared_esm_bundler_EMPTY_OBJ,
        refs: shared_esm_bundler_EMPTY_OBJ,
        setupState: shared_esm_bundler_EMPTY_OBJ,
        setupContext: null,
        // suspense related
        suspense,
        suspenseId: suspense ? suspense.pendingId : 0,
        asyncDep: null,
        asyncResolved: false,
        // lifecycle hooks
        // not using enums here because it results in computed properties
        isMounted: false,
        isUnmounted: false,
        isDeactivated: false,
        bc: null,
        c: null,
        bm: null,
        m: null,
        bu: null,
        u: null,
        um: null,
        bum: null,
        da: null,
        a: null,
        rtg: null,
        rtc: null,
        ec: null,
        sp: null
    };
    if ((false)) {}
    else {
        instance.ctx = { _: instance };
    }
    instance.root = parent ? parent.root : instance;
    instance.emit = emit$1.bind(null, instance);
    // apply custom element special handling
    if (vnode.ce) {
        vnode.ce(instance);
    }
    return instance;
}
let currentInstance = null;
const runtime_core_esm_bundler_getCurrentInstance = () => currentInstance || currentRenderingInstance;
const setCurrentInstance = (instance) => {
    currentInstance = instance;
    instance.scope.on();
};
const unsetCurrentInstance = () => {
    currentInstance && currentInstance.scope.off();
    currentInstance = null;
};
const isBuiltInTag = /*#__PURE__*/ (/* unused pure expression or super */ null && (makeMap('slot,component')));
function validateComponentName(name, config) {
    const appIsNativeTag = config.isNativeTag || NO;
    if (isBuiltInTag(name) || appIsNativeTag(name)) {
        runtime_core_esm_bundler_warn('Do not use built-in or reserved HTML elements as component id: ' + name);
    }
}
function isStatefulComponent(instance) {
    return instance.vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */;
}
let isInSSRComponentSetup = false;
function setupComponent(instance, isSSR = false) {
    isInSSRComponentSetup = isSSR;
    const { props, children } = instance.vnode;
    const isStateful = isStatefulComponent(instance);
    initProps(instance, props, isStateful, isSSR);
    initSlots(instance, children);
    const setupResult = isStateful
        ? setupStatefulComponent(instance, isSSR)
        : undefined;
    isInSSRComponentSetup = false;
    return setupResult;
}
function setupStatefulComponent(instance, isSSR) {
    const Component = instance.type;
    if ((false)) {}
    // 0. create render proxy property access cache
    instance.accessCache = Object.create(null);
    // 1. create public instance / render proxy
    // also mark it raw so it's never observed
    instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));
    if ((false)) {}
    // 2. call setup()
    const { setup } = Component;
    if (setup) {
        const setupContext = (instance.setupContext =
            setup.length > 1 ? createSetupContext(instance) : null);
        setCurrentInstance(instance);
        pauseTracking();
        const setupResult = callWithErrorHandling(setup, instance, 0 /* SETUP_FUNCTION */, [( false) ? 0 : instance.props, setupContext]);
        resetTracking();
        unsetCurrentInstance();
        if (shared_esm_bundler_isPromise(setupResult)) {
            setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
            if (isSSR) {
                // return the promise so server-renderer can wait on it
                return setupResult
                    .then((resolvedResult) => {
                    handleSetupResult(instance, resolvedResult, isSSR);
                })
                    .catch(e => {
                    handleError(e, instance, 0 /* SETUP_FUNCTION */);
                });
            }
            else {
                // async setup returned Promise.
                // bail here and wait for re-entry.
                instance.asyncDep = setupResult;
            }
        }
        else {
            handleSetupResult(instance, setupResult, isSSR);
        }
    }
    else {
        finishComponentSetup(instance, isSSR);
    }
}
function handleSetupResult(instance, setupResult, isSSR) {
    if (shared_esm_bundler_isFunction(setupResult)) {
        // setup returned an inline render function
        if (instance.type.__ssrInlineRender) {
            // when the function's name is `ssrRender` (compiled by SFC inline mode),
            // set it as ssrRender instead.
            instance.ssrRender = setupResult;
        }
        else {
            instance.render = setupResult;
        }
    }
    else if (shared_esm_bundler_isObject(setupResult)) {
        if (false) {}
        // setup returned bindings.
        // assuming a render function compiled from template is present.
        if (false) {}
        instance.setupState = proxyRefs(setupResult);
        if ((false)) {}
    }
    else if (false) {}
    finishComponentSetup(instance, isSSR);
}
let compile;
let installWithProxy;
/**
 * For runtime-dom to register the compiler.
 * Note the exported method uses any to avoid d.ts relying on the compiler types.
 */
function registerRuntimeCompiler(_compile) {
    compile = _compile;
    installWithProxy = i => {
        if (i.render._rc) {
            i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);
        }
    };
}
// dev only
const runtime_core_esm_bundler_isRuntimeOnly = () => !compile;
function finishComponentSetup(instance, isSSR, skipOptions) {
    const Component = instance.type;
    // template / render function normalization
    // could be already set when returned from setup()
    if (!instance.render) {
        // only do on-the-fly compile if not in SSR - SSR on-the-fly compilation
        // is done by server-renderer
        if (!isSSR && compile && !Component.render) {
            const template = Component.template;
            if (template) {
                if ((false)) {}
                const { isCustomElement, compilerOptions } = instance.appContext.config;
                const { delimiters, compilerOptions: componentCompilerOptions } = Component;
                const finalCompilerOptions = shared_esm_bundler_extend(shared_esm_bundler_extend({
                    isCustomElement,
                    delimiters
                }, compilerOptions), componentCompilerOptions);
                Component.render = compile(template, finalCompilerOptions);
                if ((false)) {}
            }
        }
        instance.render = (Component.render || shared_esm_bundler_NOOP);
        // for runtime-compiled render functions using `with` blocks, the render
        // proxy used needs a different `has` handler which is more performant and
        // also only allows a whitelist of globals to fallthrough.
        if (installWithProxy) {
            installWithProxy(instance);
        }
    }
    // support for 2.x options
    if (false) {}
    // warn missing template/render
    // the runtime compilation of template in SSR is done by server-render
    if (false) {}
}
function createAttrsProxy(instance) {
    return new Proxy(instance.attrs, ( false)
        ? 0
        : {
            get(target, key) {
                track(instance, "get" /* GET */, '$attrs');
                return target[key];
            }
        });
}
function createSetupContext(instance) {
    const expose = exposed => {
        if (false) {}
        instance.exposed = exposed || {};
    };
    let attrs;
    if ((false)) {}
    else {
        return {
            get attrs() {
                return attrs || (attrs = createAttrsProxy(instance));
            },
            slots: instance.slots,
            emit: instance.emit,
            expose
        };
    }
}
function getExposeProxy(instance) {
    if (instance.exposed) {
        return (instance.exposeProxy ||
            (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
                get(target, key) {
                    if (key in target) {
                        return target[key];
                    }
                    else if (key in publicPropertiesMap) {
                        return publicPropertiesMap[key](instance);
                    }
                }
            })));
    }
}
const classifyRE = /(?:^|[-_])(\w)/g;
const classify = (str) => str.replace(classifyRE, c => c.toUpperCase()).replace(/[-_]/g, '');
function getComponentName(Component) {
    return shared_esm_bundler_isFunction(Component)
        ? Component.displayName || Component.name
        : Component.name;
}
/* istanbul ignore next */
function formatComponentName(instance, Component, isRoot = false) {
    let name = getComponentName(Component);
    if (!name && Component.__file) {
        const match = Component.__file.match(/([^/\\]+)\.\w+$/);
        if (match) {
            name = match[1];
        }
    }
    if (!name && instance && instance.parent) {
        // try to infer the name based on reverse resolution
        const inferFromRegistry = (registry) => {
            for (const key in registry) {
                if (registry[key] === Component) {
                    return key;
                }
            }
        };
        name =
            inferFromRegistry(instance.components ||
                instance.parent.type.components) || inferFromRegistry(instance.appContext.components);
    }
    return name ? classify(name) : isRoot ? `App` : `Anonymous`;
}
function isClassComponent(value) {
    return shared_esm_bundler_isFunction(value) && '__vccOpts' in value;
}

const runtime_core_esm_bundler_computed = ((getterOrOptions, debugOptions) => {
    // @ts-ignore
    return computed(getterOrOptions, debugOptions, isInSSRComponentSetup);
});

// dev only
const warnRuntimeUsage = (method) => runtime_core_esm_bundler_warn(`${method}() is a compiler-hint helper that is only usable inside ` +
    `<script setup> of a single file component. Its arguments should be ` +
    `compiled away and passing it at runtime has no effect.`);
// implementation
function defineProps() {
    if ((false)) {}
    return null;
}
// implementation
function defineEmits() {
    if ((false)) {}
    return null;
}
/**
 * Vue `<script setup>` compiler macro for declaring a component's exposed
 * instance properties when it is accessed by a parent component via template
 * refs.
 *
 * `<script setup>` components are closed by default - i.e. variables inside
 * the `<script setup>` scope is not exposed to parent unless explicitly exposed
 * via `defineExpose`.
 *
 * This is only usable inside `<script setup>`, is compiled away in the
 * output and should **not** be actually called at runtime.
 */
function defineExpose(exposed) {
    if ((false)) {}
}
/**
 * Vue `<script setup>` compiler macro for providing props default values when
 * using type-based `defineProps` declaration.
 *
 * Example usage:
 * ```ts
 * withDefaults(defineProps<{
 *   size?: number
 *   labels?: string[]
 * }>(), {
 *   size: 3,
 *   labels: () => ['default label']
 * })
 * ```
 *
 * This is only usable inside `<script setup>`, is compiled away in the output
 * and should **not** be actually called at runtime.
 */
function withDefaults(props, defaults) {
    if ((false)) {}
    return null;
}
function useSlots() {
    return getContext().slots;
}
function useAttrs() {
    return getContext().attrs;
}
function getContext() {
    const i = runtime_core_esm_bundler_getCurrentInstance();
    if (false) {}
    return i.setupContext || (i.setupContext = createSetupContext(i));
}
/**
 * Runtime helper for merging default declarations. Imported by compiled code
 * only.
 * @internal
 */
function mergeDefaults(raw, defaults) {
    const props = isArray(raw)
        ? raw.reduce((normalized, p) => ((normalized[p] = {}), normalized), {})
        : raw;
    for (const key in defaults) {
        const opt = props[key];
        if (opt) {
            if (isArray(opt) || isFunction(opt)) {
                props[key] = { type: opt, default: defaults[key] };
            }
            else {
                opt.default = defaults[key];
            }
        }
        else if (opt === null) {
            props[key] = { default: defaults[key] };
        }
        else if ((false)) {}
    }
    return props;
}
/**
 * Used to create a proxy for the rest element when destructuring props with
 * defineProps().
 * @internal
 */
function createPropsRestProxy(props, excludedKeys) {
    const ret = {};
    for (const key in props) {
        if (!excludedKeys.includes(key)) {
            Object.defineProperty(ret, key, {
                enumerable: true,
                get: () => props[key]
            });
        }
    }
    return ret;
}
/**
 * `<script setup>` helper for persisting the current instance context over
 * async/await flows.
 *
 * `@vue/compiler-sfc` converts the following:
 *
 * ```ts
 * const x = await foo()
 * ```
 *
 * into:
 *
 * ```ts
 * let __temp, __restore
 * const x = (([__temp, __restore] = withAsyncContext(() => foo())),__temp=await __temp,__restore(),__temp)
 * ```
 * @internal
 */
function withAsyncContext(getAwaitable) {
    const ctx = runtime_core_esm_bundler_getCurrentInstance();
    if (false) {}
    let awaitable = getAwaitable();
    unsetCurrentInstance();
    if (isPromise(awaitable)) {
        awaitable = awaitable.catch(e => {
            setCurrentInstance(ctx);
            throw e;
        });
    }
    return [awaitable, () => setCurrentInstance(ctx)];
}

// Actual implementation
function h(type, propsOrChildren, children) {
    const l = arguments.length;
    if (l === 2) {
        if (shared_esm_bundler_isObject(propsOrChildren) && !shared_esm_bundler_isArray(propsOrChildren)) {
            // single vnode without props
            if (isVNode(propsOrChildren)) {
                return runtime_core_esm_bundler_createVNode(type, null, [propsOrChildren]);
            }
            // props without children
            return runtime_core_esm_bundler_createVNode(type, propsOrChildren);
        }
        else {
            // omit props
            return runtime_core_esm_bundler_createVNode(type, null, propsOrChildren);
        }
    }
    else {
        if (l > 3) {
            children = Array.prototype.slice.call(arguments, 2);
        }
        else if (l === 3 && isVNode(children)) {
            children = [children];
        }
        return runtime_core_esm_bundler_createVNode(type, propsOrChildren, children);
    }
}

const ssrContextKey = Symbol(( false) ? 0 : ``);
const useSSRContext = () => {
    {
        const ctx = inject(ssrContextKey);
        if (!ctx) {
            runtime_core_esm_bundler_warn(`Server rendering context not provided. Make sure to only call ` +
                `useSSRContext() conditionally in the server build.`);
        }
        return ctx;
    }
};

function runtime_core_esm_bundler_isShallow(value) {
    return !!(value && value["__v_isShallow" /* IS_SHALLOW */]);
}

function initCustomFormatter() {
    /* eslint-disable no-restricted-globals */
    if (true) {
        return;
    }
    const vueStyle = { style: 'color:#3ba776' };
    const numberStyle = { style: 'color:#0b1bc9' };
    const stringStyle = { style: 'color:#b62e24' };
    const keywordStyle = { style: 'color:#9d288c' };
    // custom formatter for Chrome
    // https://www.mattzeunert.com/2016/02/19/custom-chrome-devtools-object-formatters.html
    const formatter = {
        header(obj) {
            // TODO also format ComponentPublicInstance & ctx.slots/attrs in setup
            if (!isObject(obj)) {
                return null;
            }
            if (obj.__isVue) {
                return ['div', vueStyle, `VueInstance`];
            }
            else if (isRef(obj)) {
                return [
                    'div',
                    {},
                    ['span', vueStyle, genRefFlag(obj)],
                    '<',
                    formatValue(obj.value),
                    `>`
                ];
            }
            else if (isReactive(obj)) {
                return [
                    'div',
                    {},
                    ['span', vueStyle, runtime_core_esm_bundler_isShallow(obj) ? 'ShallowReactive' : 'Reactive'],
                    '<',
                    formatValue(obj),
                    `>${isReadonly(obj) ? ` (readonly)` : ``}`
                ];
            }
            else if (isReadonly(obj)) {
                return [
                    'div',
                    {},
                    ['span', vueStyle, runtime_core_esm_bundler_isShallow(obj) ? 'ShallowReadonly' : 'Readonly'],
                    '<',
                    formatValue(obj),
                    '>'
                ];
            }
            return null;
        },
        hasBody(obj) {
            return obj && obj.__isVue;
        },
        body(obj) {
            if (obj && obj.__isVue) {
                return [
                    'div',
                    {},
                    ...formatInstance(obj.$)
                ];
            }
        }
    };
    function formatInstance(instance) {
        const blocks = [];
        if (instance.type.props && instance.props) {
            blocks.push(createInstanceBlock('props', toRaw(instance.props)));
        }
        if (instance.setupState !== EMPTY_OBJ) {
            blocks.push(createInstanceBlock('setup', instance.setupState));
        }
        if (instance.data !== EMPTY_OBJ) {
            blocks.push(createInstanceBlock('data', toRaw(instance.data)));
        }
        const computed = extractKeys(instance, 'computed');
        if (computed) {
            blocks.push(createInstanceBlock('computed', computed));
        }
        const injected = extractKeys(instance, 'inject');
        if (injected) {
            blocks.push(createInstanceBlock('injected', injected));
        }
        blocks.push([
            'div',
            {},
            [
                'span',
                {
                    style: keywordStyle.style + ';opacity:0.66'
                },
                '$ (internal): '
            ],
            ['object', { object: instance }]
        ]);
        return blocks;
    }
    function createInstanceBlock(type, target) {
        target = extend({}, target);
        if (!Object.keys(target).length) {
            return ['span', {}];
        }
        return [
            'div',
            { style: 'line-height:1.25em;margin-bottom:0.6em' },
            [
                'div',
                {
                    style: 'color:#476582'
                },
                type
            ],
            [
                'div',
                {
                    style: 'padding-left:1.25em'
                },
                ...Object.keys(target).map(key => {
                    return [
                        'div',
                        {},
                        ['span', keywordStyle, key + ': '],
                        formatValue(target[key], false)
                    ];
                })
            ]
        ];
    }
    function formatValue(v, asRaw = true) {
        if (typeof v === 'number') {
            return ['span', numberStyle, v];
        }
        else if (typeof v === 'string') {
            return ['span', stringStyle, JSON.stringify(v)];
        }
        else if (typeof v === 'boolean') {
            return ['span', keywordStyle, v];
        }
        else if (isObject(v)) {
            return ['object', { object: asRaw ? toRaw(v) : v }];
        }
        else {
            return ['span', stringStyle, String(v)];
        }
    }
    function extractKeys(instance, type) {
        const Comp = instance.type;
        if (isFunction(Comp)) {
            return;
        }
        const extracted = {};
        for (const key in instance.ctx) {
            if (isKeyOfType(Comp, key, type)) {
                extracted[key] = instance.ctx[key];
            }
        }
        return extracted;
    }
    function isKeyOfType(Comp, key, type) {
        const opts = Comp[type];
        if ((isArray(opts) && opts.includes(key)) ||
            (isObject(opts) && key in opts)) {
            return true;
        }
        if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {
            return true;
        }
        if (Comp.mixins && Comp.mixins.some(m => isKeyOfType(m, key, type))) {
            return true;
        }
    }
    function genRefFlag(v) {
        if (runtime_core_esm_bundler_isShallow(v)) {
            return `ShallowRef`;
        }
        if (v.effect) {
            return `ComputedRef`;
        }
        return `Ref`;
    }
    if (window.devtoolsFormatters) {
        window.devtoolsFormatters.push(formatter);
    }
    else {
        window.devtoolsFormatters = [formatter];
    }
}

function withMemo(memo, render, cache, index) {
    const cached = cache[index];
    if (cached && isMemoSame(cached, memo)) {
        return cached;
    }
    const ret = render();
    // shallow clone
    ret.memo = memo.slice();
    return (cache[index] = ret);
}
function isMemoSame(cached, memo) {
    const prev = cached.memo;
    if (prev.length != memo.length) {
        return false;
    }
    for (let i = 0; i < prev.length; i++) {
        if (prev[i] !== memo[i]) {
            return false;
        }
    }
    // make sure to let parent block track it when returning cached
    if (isBlockTreeEnabled > 0 && currentBlock) {
        currentBlock.push(cached);
    }
    return true;
}

// Core API ------------------------------------------------------------------
const version = "3.2.31";
const _ssrUtils = {
    createComponentInstance,
    setupComponent,
    renderComponentRoot,
    setCurrentRenderingInstance,
    isVNode,
    normalizeVNode
};
/**
 * SSR utils for \@vue/server-renderer. Only exposed in cjs builds.
 * @internal
 */
const ssrUtils = ((/* unused pure expression or super */ null && (_ssrUtils)) );
/**
 * @internal only exposed in compat builds
 */
const resolveFilter = null;
/**
 * @internal only exposed in compat builds.
 */
const compatUtils = (null);



;// CONCATENATED MODULE: ./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js




const svgNS = 'http://www.w3.org/2000/svg';
const doc = (typeof document !== 'undefined' ? document : null);
const templateContainer = doc && doc.createElement('template');
const nodeOps = {
    insert: (child, parent, anchor) => {
        parent.insertBefore(child, anchor || null);
    },
    remove: child => {
        const parent = child.parentNode;
        if (parent) {
            parent.removeChild(child);
        }
    },
    createElement: (tag, isSVG, is, props) => {
        const el = isSVG
            ? doc.createElementNS(svgNS, tag)
            : doc.createElement(tag, is ? { is } : undefined);
        if (tag === 'select' && props && props.multiple != null) {
            el.setAttribute('multiple', props.multiple);
        }
        return el;
    },
    createText: text => doc.createTextNode(text),
    createComment: text => doc.createComment(text),
    setText: (node, text) => {
        node.nodeValue = text;
    },
    setElementText: (el, text) => {
        el.textContent = text;
    },
    parentNode: node => node.parentNode,
    nextSibling: node => node.nextSibling,
    querySelector: selector => doc.querySelector(selector),
    setScopeId(el, id) {
        el.setAttribute(id, '');
    },
    cloneNode(el) {
        const cloned = el.cloneNode(true);
        // #3072
        // - in `patchDOMProp`, we store the actual value in the `el._value` property.
        // - normally, elements using `:value` bindings will not be hoisted, but if
        //   the bound value is a constant, e.g. `:value="true"` - they do get
        //   hoisted.
        // - in production, hoisted nodes are cloned when subsequent inserts, but
        //   cloneNode() does not copy the custom property we attached.
        // - This may need to account for other custom DOM properties we attach to
        //   elements in addition to `_value` in the future.
        if (`_value` in el) {
            cloned._value = el._value;
        }
        return cloned;
    },
    // __UNSAFE__
    // Reason: innerHTML.
    // Static content here can only come from compiled templates.
    // As long as the user only uses trusted templates, this is safe.
    insertStaticContent(content, parent, anchor, isSVG, start, end) {
        // <parent> before | first ... last | anchor </parent>
        const before = anchor ? anchor.previousSibling : parent.lastChild;
        // #5308 can only take cached path if:
        // - has a single root node
        // - nextSibling info is still available
        if (start && (start === end || start.nextSibling)) {
            // cached
            while (true) {
                parent.insertBefore(start.cloneNode(true), anchor);
                if (start === end || !(start = start.nextSibling))
                    break;
            }
        }
        else {
            // fresh insert
            templateContainer.innerHTML = isSVG ? `<svg>${content}</svg>` : content;
            const template = templateContainer.content;
            if (isSVG) {
                // remove outer svg wrapper
                const wrapper = template.firstChild;
                while (wrapper.firstChild) {
                    template.appendChild(wrapper.firstChild);
                }
                template.removeChild(wrapper);
            }
            parent.insertBefore(template, anchor);
        }
        return [
            // first
            before ? before.nextSibling : parent.firstChild,
            // last
            anchor ? anchor.previousSibling : parent.lastChild
        ];
    }
};

// compiler should normalize class + :class bindings on the same element
// into a single binding ['staticClass', dynamic]
function patchClass(el, value, isSVG) {
    // directly setting className should be faster than setAttribute in theory
    // if this is an element during a transition, take the temporary transition
    // classes into account.
    const transitionClasses = el._vtc;
    if (transitionClasses) {
        value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(' ');
    }
    if (value == null) {
        el.removeAttribute('class');
    }
    else if (isSVG) {
        el.setAttribute('class', value);
    }
    else {
        el.className = value;
    }
}

function patchStyle(el, prev, next) {
    const style = el.style;
    const isCssString = shared_esm_bundler_isString(next);
    if (next && !isCssString) {
        for (const key in next) {
            setStyle(style, key, next[key]);
        }
        if (prev && !shared_esm_bundler_isString(prev)) {
            for (const key in prev) {
                if (next[key] == null) {
                    setStyle(style, key, '');
                }
            }
        }
    }
    else {
        const currentDisplay = style.display;
        if (isCssString) {
            if (prev !== next) {
                style.cssText = next;
            }
        }
        else if (prev) {
            el.removeAttribute('style');
        }
        // indicates that the `display` of the element is controlled by `v-show`,
        // so we always keep the current `display` value regardless of the `style`
        // value, thus handing over control to `v-show`.
        if ('_vod' in el) {
            style.display = currentDisplay;
        }
    }
}
const importantRE = /\s*!important$/;
function setStyle(style, name, val) {
    if (shared_esm_bundler_isArray(val)) {
        val.forEach(v => setStyle(style, name, v));
    }
    else {
        if (name.startsWith('--')) {
            // custom property definition
            style.setProperty(name, val);
        }
        else {
            const prefixed = autoPrefix(style, name);
            if (importantRE.test(val)) {
                // !important
                style.setProperty(shared_esm_bundler_hyphenate(prefixed), val.replace(importantRE, ''), 'important');
            }
            else {
                style[prefixed] = val;
            }
        }
    }
}
const prefixes = ['Webkit', 'Moz', 'ms'];
const prefixCache = {};
function autoPrefix(style, rawName) {
    const cached = prefixCache[rawName];
    if (cached) {
        return cached;
    }
    let name = camelize(rawName);
    if (name !== 'filter' && name in style) {
        return (prefixCache[rawName] = name);
    }
    name = shared_esm_bundler_capitalize(name);
    for (let i = 0; i < prefixes.length; i++) {
        const prefixed = prefixes[i] + name;
        if (prefixed in style) {
            return (prefixCache[rawName] = prefixed);
        }
    }
    return rawName;
}

const xlinkNS = 'http://www.w3.org/1999/xlink';
function patchAttr(el, key, value, isSVG, instance) {
    if (isSVG && key.startsWith('xlink:')) {
        if (value == null) {
            el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
        }
        else {
            el.setAttributeNS(xlinkNS, key, value);
        }
    }
    else {
        // note we are only checking boolean attributes that don't have a
        // corresponding dom prop of the same name here.
        const isBoolean = isSpecialBooleanAttr(key);
        if (value == null || (isBoolean && !includeBooleanAttr(value))) {
            el.removeAttribute(key);
        }
        else {
            el.setAttribute(key, isBoolean ? '' : value);
        }
    }
}

// __UNSAFE__
// functions. The user is responsible for using them with only trusted content.
function patchDOMProp(el, key, value, 
// the following args are passed only due to potential innerHTML/textContent
// overriding existing VNodes, in which case the old tree must be properly
// unmounted.
prevChildren, parentComponent, parentSuspense, unmountChildren) {
    if (key === 'innerHTML' || key === 'textContent') {
        if (prevChildren) {
            unmountChildren(prevChildren, parentComponent, parentSuspense);
        }
        el[key] = icibaUserscriptTrustedHTML(value == null ? '' : value);
        return;
    }
    if (key === 'value' &&
        el.tagName !== 'PROGRESS' &&
        // custom elements may use _value internally
        !el.tagName.includes('-')) {
        // store value as _value as well since
        // non-string values will be stringified.
        el._value = value;
        const newValue = value == null ? '' : value;
        if (el.value !== newValue ||
            // #4956: always set for OPTION elements because its value falls back to
            // textContent if no value attribute is present. And setting .value for
            // OPTION has no side effect
            el.tagName === 'OPTION') {
            el.value = newValue;
        }
        if (value == null) {
            el.removeAttribute(key);
        }
        return;
    }
    if (value === '' || value == null) {
        const type = typeof el[key];
        if (type === 'boolean') {
            // e.g. <select multiple> compiles to { multiple: '' }
            el[key] = includeBooleanAttr(value);
            return;
        }
        else if (value == null && type === 'string') {
            // e.g. <div :id="null">
            el[key] = '';
            el.removeAttribute(key);
            return;
        }
        else if (type === 'number') {
            // e.g. <img :width="null">
            // the value of some IDL attr must be greater than 0, e.g. input.size = 0 -> error
            try {
                el[key] = 0;
            }
            catch (_a) { }
            el.removeAttribute(key);
            return;
        }
    }
    // some properties perform value validation and throw
    try {
        el[key] = value;
    }
    catch (e) {
        if ((false)) {}
    }
}

// Async edge case fix requires storing an event listener's attach timestamp.
let _getNow = Date.now;
let skipTimestampCheck = false;
if (typeof window !== 'undefined') {
    // Determine what event timestamp the browser is using. Annoyingly, the
    // timestamp can either be hi-res (relative to page load) or low-res
    // (relative to UNIX epoch), so in order to compare time we have to use the
    // same timestamp type when saving the flush timestamp.
    if (_getNow() > document.createEvent('Event').timeStamp) {
        // if the low-res timestamp which is bigger than the event timestamp
        // (which is evaluated AFTER) it means the event is using a hi-res timestamp,
        // and we need to use the hi-res version for event listeners as well.
        _getNow = () => performance.now();
    }
    // #3485: Firefox <= 53 has incorrect Event.timeStamp implementation
    // and does not fire microtasks in between event propagation, so safe to exclude.
    const ffMatch = navigator.userAgent.match(/firefox\/(\d+)/i);
    skipTimestampCheck = !!(ffMatch && Number(ffMatch[1]) <= 53);
}
// To avoid the overhead of repeatedly calling performance.now(), we cache
// and use the same timestamp for all event listeners attached in the same tick.
let cachedNow = 0;
const p = Promise.resolve();
const runtime_dom_esm_bundler_reset = () => {
    cachedNow = 0;
};
const getNow = () => cachedNow || (p.then(runtime_dom_esm_bundler_reset), (cachedNow = _getNow()));
function addEventListener(el, event, handler, options) {
    el.addEventListener(event, handler, options);
}
function removeEventListener(el, event, handler, options) {
    el.removeEventListener(event, handler, options);
}
function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
    // vei = vue event invokers
    const invokers = el._vei || (el._vei = {});
    const existingInvoker = invokers[rawName];
    if (nextValue && existingInvoker) {
        // patch
        existingInvoker.value = nextValue;
    }
    else {
        const [name, options] = parseName(rawName);
        if (nextValue) {
            // add
            const invoker = (invokers[rawName] = createInvoker(nextValue, instance));
            addEventListener(el, name, invoker, options);
        }
        else if (existingInvoker) {
            // remove
            removeEventListener(el, name, existingInvoker, options);
            invokers[rawName] = undefined;
        }
    }
}
const optionsModifierRE = /(?:Once|Passive|Capture)$/;
function parseName(name) {
    let options;
    if (optionsModifierRE.test(name)) {
        options = {};
        let m;
        while ((m = name.match(optionsModifierRE))) {
            name = name.slice(0, name.length - m[0].length);
            options[m[0].toLowerCase()] = true;
        }
    }
    return [shared_esm_bundler_hyphenate(name.slice(2)), options];
}
function createInvoker(initialValue, instance) {
    const invoker = (e) => {
        // async edge case #6566: inner click event triggers patch, event handler
        // attached to outer element during patch, and triggered again. This
        // happens because browsers fire microtask ticks between event propagation.
        // the solution is simple: we save the timestamp when a handler is attached,
        // and the handler would only fire if the event passed to it was fired
        // AFTER it was attached.
        const timeStamp = e.timeStamp || _getNow();
        if (skipTimestampCheck || timeStamp >= invoker.attached - 1) {
            callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance, 5 /* NATIVE_EVENT_HANDLER */, [e]);
        }
    };
    invoker.value = initialValue;
    invoker.attached = getNow();
    return invoker;
}
function patchStopImmediatePropagation(e, value) {
    if (shared_esm_bundler_isArray(value)) {
        const originalStop = e.stopImmediatePropagation;
        e.stopImmediatePropagation = () => {
            originalStop.call(e);
            e._stopped = true;
        };
        return value.map(fn => (e) => !e._stopped && fn && fn(e));
    }
    else {
        return value;
    }
}

const nativeOnRE = /^on[a-z]/;
const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
    if (key === 'class') {
        patchClass(el, nextValue, isSVG);
    }
    else if (key === 'style') {
        patchStyle(el, prevValue, nextValue);
    }
    else if (shared_esm_bundler_isOn(key)) {
        // ignore v-model listeners
        if (!isModelListener(key)) {
            patchEvent(el, key, prevValue, nextValue, parentComponent);
        }
    }
    else if (key[0] === '.'
        ? ((key = key.slice(1)), true)
        : key[0] === '^'
            ? ((key = key.slice(1)), false)
            : shouldSetAsProp(el, key, nextValue, isSVG)) {
        patchDOMProp(el, key, nextValue, prevChildren, parentComponent, parentSuspense, unmountChildren);
    }
    else {
        // special case for <input v-model type="checkbox"> with
        // :true-value & :false-value
        // store value as dom properties since non-string values will be
        // stringified.
        if (key === 'true-value') {
            el._trueValue = nextValue;
        }
        else if (key === 'false-value') {
            el._falseValue = nextValue;
        }
        patchAttr(el, key, nextValue, isSVG);
    }
};
function shouldSetAsProp(el, key, value, isSVG) {
    if (isSVG) {
        // most keys must be set as attribute on svg elements to work
        // ...except innerHTML & textContent
        if (key === 'innerHTML' || key === 'textContent') {
            return true;
        }
        // or native onclick with function values
        if (key in el && nativeOnRE.test(key) && shared_esm_bundler_isFunction(value)) {
            return true;
        }
        return false;
    }
    // spellcheck and draggable are numerated attrs, however their
    // corresponding DOM properties are actually booleans - this leads to
    // setting it with a string "false" value leading it to be coerced to
    // `true`, so we need to always treat them as attributes.
    // Note that `contentEditable` doesn't have this problem: its DOM
    // property is also enumerated string values.
    if (key === 'spellcheck' || key === 'draggable') {
        return false;
    }
    // #1787, #2840 form property on form elements is readonly and must be set as
    // attribute.
    if (key === 'form') {
        return false;
    }
    // #1526 <input list> must be set as attribute
    if (key === 'list' && el.tagName === 'INPUT') {
        return false;
    }
    // #2766 <textarea type> must be set as attribute
    if (key === 'type' && el.tagName === 'TEXTAREA') {
        return false;
    }
    // native onclick with string value, must be set as attribute
    if (nativeOnRE.test(key) && shared_esm_bundler_isString(value)) {
        return false;
    }
    return key in el;
}

function defineCustomElement(options, hydate) {
    const Comp = defineComponent(options);
    class VueCustomElement extends VueElement {
        constructor(initialProps) {
            super(Comp, initialProps, hydate);
        }
    }
    VueCustomElement.def = Comp;
    return VueCustomElement;
}
const defineSSRCustomElement = ((options) => {
    // @ts-ignore
    return defineCustomElement(options, hydrate);
});
const BaseClass = (typeof HTMLElement !== 'undefined' ? HTMLElement : class {
});
class VueElement extends (/* unused pure expression or super */ null && (BaseClass)) {
    constructor(_def, _props = {}, hydrate) {
        super();
        this._def = _def;
        this._props = _props;
        /**
         * @internal
         */
        this._instance = null;
        this._connected = false;
        this._resolved = false;
        this._numberProps = null;
        if (this.shadowRoot && hydrate) {
            hydrate(this._createVNode(), this.shadowRoot);
        }
        else {
            if (false) {}
            this.attachShadow({ mode: 'open' });
        }
    }
    connectedCallback() {
        this._connected = true;
        if (!this._instance) {
            this._resolveDef();
        }
    }
    disconnectedCallback() {
        this._connected = false;
        nextTick(() => {
            if (!this._connected) {
                render(null, this.shadowRoot);
                this._instance = null;
            }
        });
    }
    /**
     * resolve inner component definition (handle possible async component)
     */
    _resolveDef() {
        if (this._resolved) {
            return;
        }
        this._resolved = true;
        // set initial attrs
        for (let i = 0; i < this.attributes.length; i++) {
            this._setAttr(this.attributes[i].name);
        }
        // watch future attr changes
        new MutationObserver(mutations => {
            for (const m of mutations) {
                this._setAttr(m.attributeName);
            }
        }).observe(this, { attributes: true });
        const resolve = (def) => {
            const { props, styles } = def;
            const hasOptions = !isArray(props);
            const rawKeys = props ? (hasOptions ? Object.keys(props) : props) : [];
            // cast Number-type props set before resolve
            let numberProps;
            if (hasOptions) {
                for (const key in this._props) {
                    const opt = props[key];
                    if (opt === Number || (opt && opt.type === Number)) {
                        this._props[key] = toNumber(this._props[key]);
                        (numberProps || (numberProps = Object.create(null)))[key] = true;
                    }
                }
            }
            this._numberProps = numberProps;
            // check if there are props set pre-upgrade or connect
            for (const key of Object.keys(this)) {
                if (key[0] !== '_') {
                    this._setProp(key, this[key], true, false);
                }
            }
            // defining getter/setters on prototype
            for (const key of rawKeys.map(camelize$1)) {
                Object.defineProperty(this, key, {
                    get() {
                        return this._getProp(key);
                    },
                    set(val) {
                        this._setProp(key, val);
                    }
                });
            }
            // apply CSS
            this._applyStyles(styles);
            // initial render
            this._update();
        };
        const asyncDef = this._def.__asyncLoader;
        if (asyncDef) {
            asyncDef().then(resolve);
        }
        else {
            resolve(this._def);
        }
    }
    _setAttr(key) {
        let value = this.getAttribute(key);
        if (this._numberProps && this._numberProps[key]) {
            value = toNumber(value);
        }
        this._setProp(camelize$1(key), value, false);
    }
    /**
     * @internal
     */
    _getProp(key) {
        return this._props[key];
    }
    /**
     * @internal
     */
    _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
        if (val !== this._props[key]) {
            this._props[key] = val;
            if (shouldUpdate && this._instance) {
                this._update();
            }
            // reflect
            if (shouldReflect) {
                if (val === true) {
                    this.setAttribute(hyphenate(key), '');
                }
                else if (typeof val === 'string' || typeof val === 'number') {
                    this.setAttribute(hyphenate(key), val + '');
                }
                else if (!val) {
                    this.removeAttribute(hyphenate(key));
                }
            }
        }
    }
    _update() {
        render(this._createVNode(), this.shadowRoot);
    }
    _createVNode() {
        const vnode = createVNode(this._def, extend({}, this._props));
        if (!this._instance) {
            vnode.ce = instance => {
                this._instance = instance;
                instance.isCE = true;
                // HMR
                if ((false)) {}
                // intercept emit
                instance.emit = (event, ...args) => {
                    this.dispatchEvent(new CustomEvent(event, {
                        detail: args
                    }));
                };
                // locate nearest Vue custom element parent for provide/inject
                let parent = this;
                while ((parent =
                    parent && (parent.parentNode || parent.host))) {
                    if (parent instanceof VueElement) {
                        instance.parent = parent._instance;
                        break;
                    }
                }
            };
        }
        return vnode;
    }
    _applyStyles(styles) {
        if (styles) {
            styles.forEach(css => {
                const s = document.createElement('style');
                s.textContent = css;
                this.shadowRoot.appendChild(s);
                // record for HMR
                if ((false)) {}
            });
        }
    }
}

function useCssModule(name = '$style') {
    /* istanbul ignore else */
    {
        const instance = getCurrentInstance();
        if (!instance) {
            ( false) && 0;
            return EMPTY_OBJ;
        }
        const modules = instance.type.__cssModules;
        if (!modules) {
            ( false) && 0;
            return EMPTY_OBJ;
        }
        const mod = modules[name];
        if (!mod) {
            ( false) &&
                0;
            return EMPTY_OBJ;
        }
        return mod;
    }
}

/**
 * Runtime helper for SFC's CSS variable injection feature.
 * @private
 */
function useCssVars(getter) {
    const instance = getCurrentInstance();
    /* istanbul ignore next */
    if (!instance) {
        ( false) &&
            0;
        return;
    }
    const setVars = () => setVarsOnVNode(instance.subTree, getter(instance.proxy));
    watchPostEffect(setVars);
    onMounted(() => {
        const ob = new MutationObserver(setVars);
        ob.observe(instance.subTree.el.parentNode, { childList: true });
        onUnmounted(() => ob.disconnect());
    });
}
function setVarsOnVNode(vnode, vars) {
    if (vnode.shapeFlag & 128 /* SUSPENSE */) {
        const suspense = vnode.suspense;
        vnode = suspense.activeBranch;
        if (suspense.pendingBranch && !suspense.isHydrating) {
            suspense.effects.push(() => {
                setVarsOnVNode(suspense.activeBranch, vars);
            });
        }
    }
    // drill down HOCs until it's a non-component vnode
    while (vnode.component) {
        vnode = vnode.component.subTree;
    }
    if (vnode.shapeFlag & 1 /* ELEMENT */ && vnode.el) {
        setVarsOnNode(vnode.el, vars);
    }
    else if (vnode.type === Fragment) {
        vnode.children.forEach(c => setVarsOnVNode(c, vars));
    }
    else if (vnode.type === Static) {
        let { el, anchor } = vnode;
        while (el) {
            setVarsOnNode(el, vars);
            if (el === anchor)
                break;
            el = el.nextSibling;
        }
    }
}
function setVarsOnNode(el, vars) {
    if (el.nodeType === 1) {
        const style = el.style;
        for (const key in vars) {
            style.setProperty(`--${key}`, vars[key]);
        }
    }
}

const TRANSITION = 'transition';
const ANIMATION = 'animation';
// DOM Transition is a higher-order-component based on the platform-agnostic
// base Transition component, with DOM-specific logic.
const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
Transition.displayName = 'Transition';
const DOMTransitionPropsValidators = {
    name: String,
    type: String,
    css: {
        type: Boolean,
        default: true
    },
    duration: [String, Number, Object],
    enterFromClass: String,
    enterActiveClass: String,
    enterToClass: String,
    appearFromClass: String,
    appearActiveClass: String,
    appearToClass: String,
    leaveFromClass: String,
    leaveActiveClass: String,
    leaveToClass: String
};
const TransitionPropsValidators = (Transition.props =
    /*#__PURE__*/ shared_esm_bundler_extend({}, BaseTransition.props, DOMTransitionPropsValidators));
/**
 * #3227 Incoming hooks may be merged into arrays when wrapping Transition
 * with custom HOCs.
 */
const runtime_dom_esm_bundler_callHook = (hook, args = []) => {
    if (shared_esm_bundler_isArray(hook)) {
        hook.forEach(h => h(...args));
    }
    else if (hook) {
        hook(...args);
    }
};
/**
 * Check if a hook expects a callback (2nd arg), which means the user
 * intends to explicitly control the end of the transition.
 */
const hasExplicitCallback = (hook) => {
    return hook
        ? shared_esm_bundler_isArray(hook)
            ? hook.some(h => h.length > 1)
            : hook.length > 1
        : false;
};
function resolveTransitionProps(rawProps) {
    const baseProps = {};
    for (const key in rawProps) {
        if (!(key in DOMTransitionPropsValidators)) {
            baseProps[key] = rawProps[key];
        }
    }
    if (rawProps.css === false) {
        return baseProps;
    }
    const { name = 'v', type, duration, enterFromClass = `${name}-enter-from`, enterActiveClass = `${name}-enter-active`, enterToClass = `${name}-enter-to`, appearFromClass = enterFromClass, appearActiveClass = enterActiveClass, appearToClass = enterToClass, leaveFromClass = `${name}-leave-from`, leaveActiveClass = `${name}-leave-active`, leaveToClass = `${name}-leave-to` } = rawProps;
    const durations = normalizeDuration(duration);
    const enterDuration = durations && durations[0];
    const leaveDuration = durations && durations[1];
    const { onBeforeEnter, onEnter, onEnterCancelled, onLeave, onLeaveCancelled, onBeforeAppear = onBeforeEnter, onAppear = onEnter, onAppearCancelled = onEnterCancelled } = baseProps;
    const finishEnter = (el, isAppear, done) => {
        removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
        removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
        done && done();
    };
    const finishLeave = (el, done) => {
        removeTransitionClass(el, leaveToClass);
        removeTransitionClass(el, leaveActiveClass);
        done && done();
    };
    const makeEnterHook = (isAppear) => {
        return (el, done) => {
            const hook = isAppear ? onAppear : onEnter;
            const resolve = () => finishEnter(el, isAppear, done);
            runtime_dom_esm_bundler_callHook(hook, [el, resolve]);
            nextFrame(() => {
                removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
                addTransitionClass(el, isAppear ? appearToClass : enterToClass);
                if (!hasExplicitCallback(hook)) {
                    whenTransitionEnds(el, type, enterDuration, resolve);
                }
            });
        };
    };
    return shared_esm_bundler_extend(baseProps, {
        onBeforeEnter(el) {
            runtime_dom_esm_bundler_callHook(onBeforeEnter, [el]);
            addTransitionClass(el, enterFromClass);
            addTransitionClass(el, enterActiveClass);
        },
        onBeforeAppear(el) {
            runtime_dom_esm_bundler_callHook(onBeforeAppear, [el]);
            addTransitionClass(el, appearFromClass);
            addTransitionClass(el, appearActiveClass);
        },
        onEnter: makeEnterHook(false),
        onAppear: makeEnterHook(true),
        onLeave(el, done) {
            const resolve = () => finishLeave(el, done);
            addTransitionClass(el, leaveFromClass);
            // force reflow so *-leave-from classes immediately take effect (#2593)
            forceReflow();
            addTransitionClass(el, leaveActiveClass);
            nextFrame(() => {
                removeTransitionClass(el, leaveFromClass);
                addTransitionClass(el, leaveToClass);
                if (!hasExplicitCallback(onLeave)) {
                    whenTransitionEnds(el, type, leaveDuration, resolve);
                }
            });
            runtime_dom_esm_bundler_callHook(onLeave, [el, resolve]);
        },
        onEnterCancelled(el) {
            finishEnter(el, false);
            runtime_dom_esm_bundler_callHook(onEnterCancelled, [el]);
        },
        onAppearCancelled(el) {
            finishEnter(el, true);
            runtime_dom_esm_bundler_callHook(onAppearCancelled, [el]);
        },
        onLeaveCancelled(el) {
            finishLeave(el);
            runtime_dom_esm_bundler_callHook(onLeaveCancelled, [el]);
        }
    });
}
function normalizeDuration(duration) {
    if (duration == null) {
        return null;
    }
    else if (shared_esm_bundler_isObject(duration)) {
        return [NumberOf(duration.enter), NumberOf(duration.leave)];
    }
    else {
        const n = NumberOf(duration);
        return [n, n];
    }
}
function NumberOf(val) {
    const res = shared_esm_bundler_toNumber(val);
    if ((false))
        {}
    return res;
}
function validateDuration(val) {
    if (typeof val !== 'number') {
        warn(`<transition> explicit duration is not a valid number - ` +
            `got ${(__webpack_require__(8334)/* .stringify */ .P)(val)}.`);
    }
    else if (isNaN(val)) {
        warn(`<transition> explicit duration is NaN - ` +
            'the duration expression might be incorrect.');
    }
}
function addTransitionClass(el, cls) {
    cls.split(/\s+/).forEach(c => c && el.classList.add(c));
    (el._vtc ||
        (el._vtc = new Set())).add(cls);
}
function removeTransitionClass(el, cls) {
    cls.split(/\s+/).forEach(c => c && el.classList.remove(c));
    const { _vtc } = el;
    if (_vtc) {
        _vtc.delete(cls);
        if (!_vtc.size) {
            el._vtc = undefined;
        }
    }
}
function nextFrame(cb) {
    requestAnimationFrame(() => {
        requestAnimationFrame(cb);
    });
}
let endId = 0;
function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
    const id = (el._endId = ++endId);
    const resolveIfNotStale = () => {
        if (id === el._endId) {
            resolve();
        }
    };
    if (explicitTimeout) {
        return setTimeout(resolveIfNotStale, explicitTimeout);
    }
    const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
    if (!type) {
        return resolve();
    }
    const endEvent = type + 'end';
    let ended = 0;
    const end = () => {
        el.removeEventListener(endEvent, onEnd);
        resolveIfNotStale();
    };
    const onEnd = (e) => {
        if (e.target === el && ++ended >= propCount) {
            end();
        }
    };
    setTimeout(() => {
        if (ended < propCount) {
            end();
        }
    }, timeout + 1);
    el.addEventListener(endEvent, onEnd);
}
function getTransitionInfo(el, expectedType) {
    const styles = window.getComputedStyle(el);
    // JSDOM may return undefined for transition properties
    const getStyleProperties = (key) => (styles[key] || '').split(', ');
    const transitionDelays = getStyleProperties(TRANSITION + 'Delay');
    const transitionDurations = getStyleProperties(TRANSITION + 'Duration');
    const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
    const animationDelays = getStyleProperties(ANIMATION + 'Delay');
    const animationDurations = getStyleProperties(ANIMATION + 'Duration');
    const animationTimeout = getTimeout(animationDelays, animationDurations);
    let type = null;
    let timeout = 0;
    let propCount = 0;
    /* istanbul ignore if */
    if (expectedType === TRANSITION) {
        if (transitionTimeout > 0) {
            type = TRANSITION;
            timeout = transitionTimeout;
            propCount = transitionDurations.length;
        }
    }
    else if (expectedType === ANIMATION) {
        if (animationTimeout > 0) {
            type = ANIMATION;
            timeout = animationTimeout;
            propCount = animationDurations.length;
        }
    }
    else {
        timeout = Math.max(transitionTimeout, animationTimeout);
        type =
            timeout > 0
                ? transitionTimeout > animationTimeout
                    ? TRANSITION
                    : ANIMATION
                : null;
        propCount = type
            ? type === TRANSITION
                ? transitionDurations.length
                : animationDurations.length
            : 0;
    }
    const hasTransform = type === TRANSITION &&
        /\b(transform|all)(,|$)/.test(styles[TRANSITION + 'Property']);
    return {
        type,
        timeout,
        propCount,
        hasTransform
    };
}
function getTimeout(delays, durations) {
    while (delays.length < durations.length) {
        delays = delays.concat(delays);
    }
    return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
}
// Old versions of Chromium (below 61.0.3163.100) formats floating pointer
// numbers in a locale-dependent way, using a comma instead of a dot.
// If comma is not replaced with a dot, the input will be rounded down
// (i.e. acting as a floor function) causing unexpected behaviors
function toMs(s) {
    return Number(s.slice(0, -1).replace(',', '.')) * 1000;
}
// synchronously force layout to put elements into a certain state
function forceReflow() {
    return document.body.offsetHeight;
}

const positionMap = new WeakMap();
const newPositionMap = new WeakMap();
const TransitionGroupImpl = {
    name: 'TransitionGroup',
    props: /*#__PURE__*/ shared_esm_bundler_extend({}, TransitionPropsValidators, {
        tag: String,
        moveClass: String
    }),
    setup(props, { slots }) {
        const instance = runtime_core_esm_bundler_getCurrentInstance();
        const state = useTransitionState();
        let prevChildren;
        let children;
        onUpdated(() => {
            // children is guaranteed to exist after initial render
            if (!prevChildren.length) {
                return;
            }
            const moveClass = props.moveClass || `${props.name || 'v'}-move`;
            if (!hasCSSTransform(prevChildren[0].el, instance.vnode.el, moveClass)) {
                return;
            }
            // we divide the work into three loops to avoid mixing DOM reads and writes
            // in each iteration - which helps prevent layout thrashing.
            prevChildren.forEach(callPendingCbs);
            prevChildren.forEach(recordPosition);
            const movedChildren = prevChildren.filter(applyTranslation);
            // force reflow to put everything in position
            forceReflow();
            movedChildren.forEach(c => {
                const el = c.el;
                const style = el.style;
                addTransitionClass(el, moveClass);
                style.transform = style.webkitTransform = style.transitionDuration = '';
                const cb = (el._moveCb = (e) => {
                    if (e && e.target !== el) {
                        return;
                    }
                    if (!e || /transform$/.test(e.propertyName)) {
                        el.removeEventListener('transitionend', cb);
                        el._moveCb = null;
                        removeTransitionClass(el, moveClass);
                    }
                });
                el.addEventListener('transitionend', cb);
            });
        });
        return () => {
            const rawProps = reactivity_esm_bundler_toRaw(props);
            const cssTransitionProps = resolveTransitionProps(rawProps);
            let tag = rawProps.tag || runtime_core_esm_bundler_Fragment;
            prevChildren = children;
            children = slots.default ? getTransitionRawChildren(slots.default()) : [];
            for (let i = 0; i < children.length; i++) {
                const child = children[i];
                if (child.key != null) {
                    setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
                }
                else if ((false)) {}
            }
            if (prevChildren) {
                for (let i = 0; i < prevChildren.length; i++) {
                    const child = prevChildren[i];
                    setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
                    positionMap.set(child, child.el.getBoundingClientRect());
                }
            }
            return runtime_core_esm_bundler_createVNode(tag, null, children);
        };
    }
};
const TransitionGroup = TransitionGroupImpl;
function callPendingCbs(c) {
    const el = c.el;
    if (el._moveCb) {
        el._moveCb();
    }
    if (el._enterCb) {
        el._enterCb();
    }
}
function recordPosition(c) {
    newPositionMap.set(c, c.el.getBoundingClientRect());
}
function applyTranslation(c) {
    const oldPos = positionMap.get(c);
    const newPos = newPositionMap.get(c);
    const dx = oldPos.left - newPos.left;
    const dy = oldPos.top - newPos.top;
    if (dx || dy) {
        const s = c.el.style;
        s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
        s.transitionDuration = '0s';
        return c;
    }
}
function hasCSSTransform(el, root, moveClass) {
    // Detect whether an element with the move class applied has
    // CSS transitions. Since the element may be inside an entering
    // transition at this very moment, we make a clone of it and remove
    // all other transition classes applied to ensure only the move class
    // is applied.
    const clone = el.cloneNode();
    if (el._vtc) {
        el._vtc.forEach(cls => {
            cls.split(/\s+/).forEach(c => c && clone.classList.remove(c));
        });
    }
    moveClass.split(/\s+/).forEach(c => c && clone.classList.add(c));
    clone.style.display = 'none';
    const container = (root.nodeType === 1 ? root : root.parentNode);
    container.appendChild(clone);
    const { hasTransform } = getTransitionInfo(clone);
    container.removeChild(clone);
    return hasTransform;
}

const getModelAssigner = (vnode) => {
    const fn = vnode.props['onUpdate:modelValue'];
    return shared_esm_bundler_isArray(fn) ? value => invokeArrayFns(fn, value) : fn;
};
function onCompositionStart(e) {
    e.target.composing = true;
}
function onCompositionEnd(e) {
    const target = e.target;
    if (target.composing) {
        target.composing = false;
        runtime_dom_esm_bundler_trigger(target, 'input');
    }
}
function runtime_dom_esm_bundler_trigger(el, type) {
    const e = document.createEvent('HTMLEvents');
    e.initEvent(type, true, true);
    el.dispatchEvent(e);
}
// We are exporting the v-model runtime directly as vnode hooks so that it can
// be tree-shaken in case v-model is never used.
const vModelText = {
    created(el, { modifiers: { lazy, trim, number } }, vnode) {
        el._assign = getModelAssigner(vnode);
        const castToNumber = number || (vnode.props && vnode.props.type === 'number');
        addEventListener(el, lazy ? 'change' : 'input', e => {
            if (e.target.composing)
                return;
            let domValue = el.value;
            if (trim) {
                domValue = domValue.trim();
            }
            else if (castToNumber) {
                domValue = shared_esm_bundler_toNumber(domValue);
            }
            el._assign(domValue);
        });
        if (trim) {
            addEventListener(el, 'change', () => {
                el.value = el.value.trim();
            });
        }
        if (!lazy) {
            addEventListener(el, 'compositionstart', onCompositionStart);
            addEventListener(el, 'compositionend', onCompositionEnd);
            // Safari < 10.2 & UIWebView doesn't fire compositionend when
            // switching focus before confirming composition choice
            // this also fixes the issue where some browsers e.g. iOS Chrome
            // fires "change" instead of "input" on autocomplete.
            addEventListener(el, 'change', onCompositionEnd);
        }
    },
    // set value on mounted so it's after min/max for type="range"
    mounted(el, { value }) {
        el.value = value == null ? '' : value;
    },
    beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {
        el._assign = getModelAssigner(vnode);
        // avoid clearing unresolved text. #2302
        if (el.composing)
            return;
        if (document.activeElement === el) {
            if (lazy) {
                return;
            }
            if (trim && el.value.trim() === value) {
                return;
            }
            if ((number || el.type === 'number') && shared_esm_bundler_toNumber(el.value) === value) {
                return;
            }
        }
        const newValue = value == null ? '' : value;
        if (el.value !== newValue) {
            el.value = newValue;
        }
    }
};
const vModelCheckbox = {
    // #4096 array checkboxes need to be deep traversed
    deep: true,
    created(el, _, vnode) {
        el._assign = getModelAssigner(vnode);
        addEventListener(el, 'change', () => {
            const modelValue = el._modelValue;
            const elementValue = getValue(el);
            const checked = el.checked;
            const assign = el._assign;
            if (shared_esm_bundler_isArray(modelValue)) {
                const index = shared_esm_bundler_looseIndexOf(modelValue, elementValue);
                const found = index !== -1;
                if (checked && !found) {
                    assign(modelValue.concat(elementValue));
                }
                else if (!checked && found) {
                    const filtered = [...modelValue];
                    filtered.splice(index, 1);
                    assign(filtered);
                }
            }
            else if (shared_esm_bundler_isSet(modelValue)) {
                const cloned = new Set(modelValue);
                if (checked) {
                    cloned.add(elementValue);
                }
                else {
                    cloned.delete(elementValue);
                }
                assign(cloned);
            }
            else {
                assign(getCheckboxValue(el, checked));
            }
        });
    },
    // set initial checked on mount to wait for true-value/false-value
    mounted: setChecked,
    beforeUpdate(el, binding, vnode) {
        el._assign = getModelAssigner(vnode);
        setChecked(el, binding, vnode);
    }
};
function setChecked(el, { value, oldValue }, vnode) {
    el._modelValue = value;
    if (shared_esm_bundler_isArray(value)) {
        el.checked = shared_esm_bundler_looseIndexOf(value, vnode.props.value) > -1;
    }
    else if (shared_esm_bundler_isSet(value)) {
        el.checked = value.has(vnode.props.value);
    }
    else if (value !== oldValue) {
        el.checked = shared_esm_bundler_looseEqual(value, getCheckboxValue(el, true));
    }
}
const vModelRadio = {
    created(el, { value }, vnode) {
        el.checked = shared_esm_bundler_looseEqual(value, vnode.props.value);
        el._assign = getModelAssigner(vnode);
        addEventListener(el, 'change', () => {
            el._assign(getValue(el));
        });
    },
    beforeUpdate(el, { value, oldValue }, vnode) {
        el._assign = getModelAssigner(vnode);
        if (value !== oldValue) {
            el.checked = shared_esm_bundler_looseEqual(value, vnode.props.value);
        }
    }
};
const vModelSelect = {
    // <select multiple> value need to be deep traversed
    deep: true,
    created(el, { value, modifiers: { number } }, vnode) {
        const isSetModel = shared_esm_bundler_isSet(value);
        addEventListener(el, 'change', () => {
            const selectedVal = Array.prototype.filter
                .call(el.options, (o) => o.selected)
                .map((o) => number ? shared_esm_bundler_toNumber(getValue(o)) : getValue(o));
            el._assign(el.multiple
                ? isSetModel
                    ? new Set(selectedVal)
                    : selectedVal
                : selectedVal[0]);
        });
        el._assign = getModelAssigner(vnode);
    },
    // set value in mounted & updated because <select> relies on its children
    // <option>s.
    mounted(el, { value }) {
        setSelected(el, value);
    },
    beforeUpdate(el, _binding, vnode) {
        el._assign = getModelAssigner(vnode);
    },
    updated(el, { value }) {
        setSelected(el, value);
    }
};
function setSelected(el, value) {
    const isMultiple = el.multiple;
    if (isMultiple && !shared_esm_bundler_isArray(value) && !shared_esm_bundler_isSet(value)) {
        ( false) &&
            0;
        return;
    }
    for (let i = 0, l = el.options.length; i < l; i++) {
        const option = el.options[i];
        const optionValue = getValue(option);
        if (isMultiple) {
            if (shared_esm_bundler_isArray(value)) {
                option.selected = shared_esm_bundler_looseIndexOf(value, optionValue) > -1;
            }
            else {
                option.selected = value.has(optionValue);
            }
        }
        else {
            if (shared_esm_bundler_looseEqual(getValue(option), value)) {
                if (el.selectedIndex !== i)
                    el.selectedIndex = i;
                return;
            }
        }
    }
    if (!isMultiple && el.selectedIndex !== -1) {
        el.selectedIndex = -1;
    }
}
// retrieve raw value set via :value bindings
function getValue(el) {
    return '_value' in el ? el._value : el.value;
}
// retrieve raw value for true-value and false-value set via :true-value or :false-value bindings
function getCheckboxValue(el, checked) {
    const key = checked ? '_trueValue' : '_falseValue';
    return key in el ? el[key] : checked;
}
const vModelDynamic = {
    created(el, binding, vnode) {
        callModelHook(el, binding, vnode, null, 'created');
    },
    mounted(el, binding, vnode) {
        callModelHook(el, binding, vnode, null, 'mounted');
    },
    beforeUpdate(el, binding, vnode, prevVNode) {
        callModelHook(el, binding, vnode, prevVNode, 'beforeUpdate');
    },
    updated(el, binding, vnode, prevVNode) {
        callModelHook(el, binding, vnode, prevVNode, 'updated');
    }
};
function callModelHook(el, binding, vnode, prevVNode, hook) {
    let modelToUse;
    switch (el.tagName) {
        case 'SELECT':
            modelToUse = vModelSelect;
            break;
        case 'TEXTAREA':
            modelToUse = vModelText;
            break;
        default:
            switch (vnode.props && vnode.props.type) {
                case 'checkbox':
                    modelToUse = vModelCheckbox;
                    break;
                case 'radio':
                    modelToUse = vModelRadio;
                    break;
                default:
                    modelToUse = vModelText;
            }
    }
    const fn = modelToUse[hook];
    fn && fn(el, binding, vnode, prevVNode);
}
// SSR vnode transforms, only used when user includes client-oriented render
// function in SSR
function initVModelForSSR() {
    vModelText.getSSRProps = ({ value }) => ({ value });
    vModelRadio.getSSRProps = ({ value }, vnode) => {
        if (vnode.props && looseEqual(vnode.props.value, value)) {
            return { checked: true };
        }
    };
    vModelCheckbox.getSSRProps = ({ value }, vnode) => {
        if (isArray(value)) {
            if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {
                return { checked: true };
            }
        }
        else if (isSet(value)) {
            if (vnode.props && value.has(vnode.props.value)) {
                return { checked: true };
            }
        }
        else if (value) {
            return { checked: true };
        }
    };
}

const systemModifiers = ['ctrl', 'shift', 'alt', 'meta'];
const modifierGuards = {
    stop: e => e.stopPropagation(),
    prevent: e => e.preventDefault(),
    self: e => e.target !== e.currentTarget,
    ctrl: e => !e.ctrlKey,
    shift: e => !e.shiftKey,
    alt: e => !e.altKey,
    meta: e => !e.metaKey,
    left: e => 'button' in e && e.button !== 0,
    middle: e => 'button' in e && e.button !== 1,
    right: e => 'button' in e && e.button !== 2,
    exact: (e, modifiers) => systemModifiers.some(m => e[`${m}Key`] && !modifiers.includes(m))
};
/**
 * @private
 */
const withModifiers = (fn, modifiers) => {
    return (event, ...args) => {
        for (let i = 0; i < modifiers.length; i++) {
            const guard = modifierGuards[modifiers[i]];
            if (guard && guard(event, modifiers))
                return;
        }
        return fn(event, ...args);
    };
};
// Kept for 2.x compat.
// Note: IE11 compat for `spacebar` and `del` is removed for now.
const keyNames = {
    esc: 'escape',
    space: ' ',
    up: 'arrow-up',
    left: 'arrow-left',
    right: 'arrow-right',
    down: 'arrow-down',
    delete: 'backspace'
};
/**
 * @private
 */
const withKeys = (fn, modifiers) => {
    return (event) => {
        if (!('key' in event)) {
            return;
        }
        const eventKey = shared_esm_bundler_hyphenate(event.key);
        if (modifiers.some(k => k === eventKey || keyNames[k] === eventKey)) {
            return fn(event);
        }
    };
};

const vShow = {
    beforeMount(el, { value }, { transition }) {
        el._vod = el.style.display === 'none' ? '' : el.style.display;
        if (transition && value) {
            transition.beforeEnter(el);
        }
        else {
            setDisplay(el, value);
        }
    },
    mounted(el, { value }, { transition }) {
        if (transition && value) {
            transition.enter(el);
        }
    },
    updated(el, { value, oldValue }, { transition }) {
        if (!value === !oldValue)
            return;
        if (transition) {
            if (value) {
                transition.beforeEnter(el);
                setDisplay(el, true);
                transition.enter(el);
            }
            else {
                transition.leave(el, () => {
                    setDisplay(el, false);
                });
            }
        }
        else {
            setDisplay(el, value);
        }
    },
    beforeUnmount(el, { value }) {
        setDisplay(el, value);
    }
};
function setDisplay(el, value) {
    el.style.display = value ? el._vod : 'none';
}
// SSR vnode transforms, only used when user includes client-oriented render
// function in SSR
function initVShowForSSR() {
    vShow.getSSRProps = ({ value }) => {
        if (!value) {
            return { style: { display: 'none' } };
        }
    };
}

const rendererOptions = shared_esm_bundler_extend({ patchProp }, nodeOps);
// lazy create the renderer - this makes core renderer logic tree-shakable
// in case the user only imports reactivity utilities from Vue.
let renderer;
let enabledHydration = false;
function ensureRenderer() {
    return (renderer ||
        (renderer = createRenderer(rendererOptions)));
}
function ensureHydrationRenderer() {
    renderer = enabledHydration
        ? renderer
        : createHydrationRenderer(rendererOptions);
    enabledHydration = true;
    return renderer;
}
// use explicit type casts here to avoid import() calls in rolled-up d.ts
const render = ((...args) => {
    ensureRenderer().render(...args);
});
const hydrate = ((...args) => {
    ensureHydrationRenderer().hydrate(...args);
});
const createApp = ((...args) => {
    const app = ensureRenderer().createApp(...args);
    if ((false)) {}
    const { mount } = app;
    app.mount = (containerOrSelector) => {
        const container = normalizeContainer(containerOrSelector);
        if (!container)
            return;
        const component = app._component;
        if (!shared_esm_bundler_isFunction(component) && !component.render && !component.template) {
            // __UNSAFE__
            // Reason: potential execution of JS expressions in in-DOM template.
            // The user must make sure the in-DOM template is trusted. If it's
            // rendered by the server, the template should not contain any user data.
            component.template = container.innerHTML;
        }
        // clear content before mounting
        container.childNodes.forEach(v => container.removeChild(v))
        const proxy = mount(container, false, container instanceof SVGElement);
        if (container instanceof Element) {
            container.removeAttribute('v-cloak');
            container.setAttribute('data-v-app', '');
        }
        return proxy;
    };
    return app;
});
const createSSRApp = ((...args) => {
    const app = ensureHydrationRenderer().createApp(...args);
    if ((false)) {}
    const { mount } = app;
    app.mount = (containerOrSelector) => {
        const container = normalizeContainer(containerOrSelector);
        if (container) {
            return mount(container, true, container instanceof SVGElement);
        }
    };
    return app;
});
function injectNativeTagCheck(app) {
    // Inject `isNativeTag`
    // this is used for component name validation (dev only)
    Object.defineProperty(app.config, 'isNativeTag', {
        value: (tag) => isHTMLTag(tag) || isSVGTag(tag),
        writable: false
    });
}
// dev only
function injectCompilerOptionsCheck(app) {
    if (isRuntimeOnly()) {
        const isCustomElement = app.config.isCustomElement;
        Object.defineProperty(app.config, 'isCustomElement', {
            get() {
                return isCustomElement;
            },
            set() {
                warn(`The \`isCustomElement\` config option is deprecated. Use ` +
                    `\`compilerOptions.isCustomElement\` instead.`);
            }
        });
        const compilerOptions = app.config.compilerOptions;
        const msg = `The \`compilerOptions\` config option is only respected when using ` +
            `a build of Vue.js that includes the runtime compiler (aka "full build"). ` +
            `Since you are using the runtime-only build, \`compilerOptions\` ` +
            `must be passed to \`@vue/compiler-dom\` in the build setup instead.\n` +
            `- For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option.\n` +
            `- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n` +
            `- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-dom`;
        Object.defineProperty(app.config, 'compilerOptions', {
            get() {
                warn(msg);
                return compilerOptions;
            },
            set() {
                warn(msg);
            }
        });
    }
}
function normalizeContainer(container) {
    if (shared_esm_bundler_isString(container)) {
        const res = document.querySelector(container);
        if (false) {}
        return res;
    }
    if (false) {}
    return container;
}
let ssrDirectiveInitialized = false;
/**
 * @internal
 */
const initDirectivesForSSR = () => {
        if (!ssrDirectiveInitialized) {
            ssrDirectiveInitialized = true;
            initVModelForSSR();
            initVShowForSSR();
        }
    }
    ;



// EXTERNAL MODULE: ./src/assets/styles/tailwind.sass
var tailwind = __webpack_require__(8769);
;// CONCATENATED MODULE: ./src/util/diretives/ripple.js
/* eslint-disable */
function transform(el, value) {
  el.style['transform'] = value;
  el.style['webkitTransform'] = value;
}

function opacity(el, value) {
  el.style['opacity'] = value.toString();
}

function isTouchEvent(e) {
  return e.constructor.name === 'TouchEvent';
}

var calculate = function calculate(e, el) {
  var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  var offset = el.getBoundingClientRect();
  var target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e;
  var localX = target.clientX - offset.left;
  var localY = target.clientY - offset.top;
  var radius = 0;
  var scale = 0.3;

  if (el._ripple && el._ripple.circle) {
    scale = 0.15;
    radius = el.clientWidth / 2;
    radius = value.center ? radius : radius + Math.sqrt(Math.pow(localX - radius, 2) + Math.pow(localY - radius, 2)) / 4;
  } else {
    radius = Math.sqrt(Math.pow(el.clientWidth, 2) + Math.pow(el.clientHeight, 2)) / 2;
  }

  var centerX = (el.clientWidth - radius * 2) / 2 + 'px';
  var centerY = (el.clientHeight - radius * 2) / 2 + 'px';
  var x = value.center ? centerX : localX - radius + 'px';
  var y = value.center ? centerY : localY - radius + 'px';
  return {
    radius: radius,
    scale: scale,
    x: x,
    y: y,
    centerX: centerX,
    centerY: centerY
  };
};

var ripple = {
  /* eslint-disable max-statements */
  show: function show(e, el) {
    var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};

    if (!el._ripple || !el._ripple.enabled) {
      return;
    }

    var container = document.createElement('span');
    var animation = document.createElement('span');
    container.appendChild(animation);
    container.className = 'v-ripple__container';

    if (value.class) {
      container.className += ' ' + value.class;
    }

    var _calculate = calculate(e, el, value),
        radius = _calculate.radius,
        scale = _calculate.scale,
        x = _calculate.x,
        y = _calculate.y,
        centerX = _calculate.centerX,
        centerY = _calculate.centerY;

    var size = radius * 2 + 'px';
    animation.className = 'v-ripple__animation';
    animation.style.width = size;
    animation.style.height = size;
    el.appendChild(container);
    var computed = window.getComputedStyle(el);

    if (computed && computed.position === 'static') {
      el.style.position = 'relative';
      el.dataset.previousPosition = 'static';
    }

    animation.classList.add('v-ripple__animation--enter');
    animation.classList.add('v-ripple__animation--visible');
    transform(animation, 'translate(' + x + ', ' + y + ') scale3d(' + scale + ',' + scale + ',' + scale + ')');
    opacity(animation, 0);
    animation.dataset.activated = String(performance.now());
    setTimeout(function () {
      animation.classList.remove('v-ripple__animation--enter');
      animation.classList.add('v-ripple__animation--in');
      transform(animation, 'translate(' + centerX + ', ' + centerY + ') scale3d(1,1,1)');
      opacity(animation, 0.25);
    }, 0);
  },
  hide: function hide(el) {
    if (!el || !el._ripple || !el._ripple.enabled) return;
    var ripples = el.getElementsByClassName('v-ripple__animation');
    if (ripples.length === 0) return;
    var animation = ripples[ripples.length - 1];
    if (animation.dataset.isHiding) return;else animation.dataset.isHiding = 'true';
    var diff = performance.now() - Number(animation.dataset.activated);
    var delay = Math.max(250 - diff, 0);
    setTimeout(function () {
      animation.classList.remove('v-ripple__animation--in');
      animation.classList.add('v-ripple__animation--out');
      opacity(animation, 0);
      setTimeout(function () {
        var ripples = el.getElementsByClassName('v-ripple__animation');

        if (ripples.length === 1 && el.dataset.previousPosition) {
          el.style.position = el.dataset.previousPosition;
          delete el.dataset.previousPosition;
        }

        animation.parentNode && el.removeChild(animation.parentNode);
      }, 300);
    }, delay);
  }
};

function isRippleEnabled(value) {
  return typeof value === 'undefined' || !!value;
}

function rippleShow(e) {
  var value = {};
  var element = e.currentTarget;
  if (!element || !element._ripple || element._ripple.touched) return;

  if (isTouchEvent(e)) {
    element._ripple.touched = true;
  }

  value.center = element._ripple.centered;

  if (element._ripple.class) {
    value.class = element._ripple.class;
  }

  ripple.show(e, element, value);
}

function rippleHide(e) {
  var element = e.currentTarget;
  if (!element) return;
  window.setTimeout(function () {
    if (element._ripple) {
      element._ripple.touched = false;
    }
  });
  ripple.hide(element);
}

function updateRipple(el, binding, wasEnabled) {
  var enabled = isRippleEnabled(binding.value);

  if (!enabled) {
    ripple.hide(el);
  }

  el._ripple = el._ripple || {};
  el._ripple.enabled = enabled;
  var value = binding.value || {};

  if (value.center) {
    el._ripple.centered = true;
  }

  if (value.class) {
    el._ripple.class = binding.value.class;
  }

  if (value.circle) {
    el._ripple.circle = value.circle;
  }

  if (enabled && !wasEnabled) {
    el.addEventListener('touchstart', rippleShow, {
      passive: true
    });
    el.addEventListener('touchend', rippleHide, {
      passive: true
    });
    el.addEventListener('touchcancel', rippleHide);
    el.addEventListener('mousedown', rippleShow);
    el.addEventListener('mouseup', rippleHide);
    el.addEventListener('mouseleave', rippleHide); // Anchor tags can be dragged, causes other hides to fail - #1537

    el.addEventListener('dragstart', rippleHide, {
      passive: true
    });
  } else if (!enabled && wasEnabled) {
    removeListeners(el);
  }
}

function removeListeners(el) {
  el.removeEventListener('mousedown', rippleShow);
  el.removeEventListener('touchstart', rippleHide);
  el.removeEventListener('touchend', rippleHide);
  el.removeEventListener('touchcancel', rippleHide);
  el.removeEventListener('mouseup', rippleHide);
  el.removeEventListener('mouseleave', rippleHide);
  el.removeEventListener('dragstart', rippleHide);
}

function directive(el, binding, node) {
  updateRipple(el, binding, false); // warn if an inline element is used, waiting for el to be in the DOM first

  node.context && node.context.$nextTick(function () {
    var computed = window.getComputedStyle(el);

    if (computed && computed.display === 'inline') {
      var context = node.fnOptions ? [node.fnOptions, node.context] : [node.componentInstance];
      console.warn(['v-ripple can only be used on block-level elements'].concat(context));
    }
  });
}

function unbind(el) {
  delete el._ripple;
  removeListeners(el);
}

function update(el, binding) {
  if (binding.value === binding.oldValue) {
    return;
  }

  var wasEnabled = isRippleEnabled(binding.oldValue);
  updateRipple(el, binding, wasEnabled);
}

/* harmony default export */ const diretives_ripple = ({
  mounted: directive,
  unmounted: unbind,
  updated: update
});
;// CONCATENATED MODULE: ./src/util/diretives/no-overscroll.ts
const handleScroll = _e => {
  const e = _e;
  const el = e.currentTarget;

  if (!el) {
    return;
  }

  const scrollBox = el;

  if (scrollBox) {
    // scroll down
    if (e.deltaY > 0 && scrollBox.scrollTop >= scrollBox.scrollHeight - scrollBox.clientHeight) {
      e.preventDefault();
    } // scroll up


    if (e.deltaY < 0 && scrollBox.scrollTop === 0) {
      e.preventDefault();
    }
  }
};

/* harmony default export */ const no_overscroll = ({
  mounted(el) {
    el.addEventListener('wheel', handleScroll);
  },

  unmounted(el) {
    el.removeEventListener('wheel', handleScroll);
  }

});
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/checkbox/checkbox.vue?vue&type=template&id=5a9d8295&scoped=true&ts=true


const _withScopeId = n => (pushScopeId("data-v-5a9d8295"), n = n(), popScopeId(), n);

const _hoisted_1 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "ripple-trigger absolute"
}, null, -1));

const _hoisted_2 = [_hoisted_1];
const _hoisted_3 = {
  class: "label text-grey-700"
};
function checkboxvue_type_template_id_5a9d8295_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  const _directive_ripple = resolveDirective("ripple");

  return openBlock(), createElementBlock("div", {
    class: "checkbox flex items-center select-none cursor-pointer",
    onClick: _cache[0] || (_cache[0] = //@ts-ignore
    (...args) => _ctx.toggle && _ctx.toggle(...args))
  }, [createBaseVNode("div", {
    class: normalizeClass(["icon relative", {
      checked: _ctx.props.modelValue,
      'mr-2': !!_ctx.label
    }])
  }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
    size: "100%",
    svg: _ctx.props.modelValue ? _ctx.icon.checked : _ctx.icon.unchecked
  }, null, 8, ["svg"]), withDirectives((openBlock(), createElementBlock("div", {
    class: normalizeClass(["ripple absolute rounded-full", {
      checked: _ctx.props.modelValue
    }])
  }, _hoisted_2, 2)), [[_directive_ripple, {
    center: true
  }]])], 2), createBaseVNode("div", _hoisted_3, toDisplayString(_ctx.label), 1)]);
}
;// CONCATENATED MODULE: ./src/components/checkbox/checkbox.vue?vue&type=template&id=5a9d8295&scoped=true&ts=true

;// CONCATENATED MODULE: ./src/assets/img/mdi/baseline-check_box-24px.svg
/* harmony default export */ const baseline_check_box_24px = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path fill=\"#1976D2\" d=\"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/mdi/baseline-check_box_outline_blank-24px.svg
/* harmony default export */ const baseline_check_box_outline_blank_24px = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"#777\" d=\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n");
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/checkbox/checkbox.ts?vue&type=script&lang=ts



/* harmony default export */ const checkboxvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'Checkbox',
  props: {
    modelValue: {
      type: Boolean,
      default: false
    },
    label: {
      type: String,
      default: ''
    }
  },
  setup: (props, ctx) => {
    const toggle = () => {
      ctx.emit('update:modelValue', !props.modelValue);
    };

    return {
      props,
      icon: {
        checked: baseline_check_box_24px,
        unchecked: baseline_check_box_outline_blank_24px
      },
      toggle
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/checkbox/checkbox.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/checkbox/checkbox.sass?vue&type=style&index=0&id=5a9d8295&lang=sass&scoped=true
var checkboxvue_type_style_index_0_id_5a9d8295_lang_sass_scoped_true = __webpack_require__(685);
;// CONCATENATED MODULE: ./src/components/checkbox/checkbox.sass?vue&type=style&index=0&id=5a9d8295&lang=sass&scoped=true

// EXTERNAL MODULE: ./node_modules/vue-loader/dist/exportHelper.js
var exportHelper = __webpack_require__(3721);
;// CONCATENATED MODULE: ./src/components/checkbox/checkbox.vue




;


const __exports__ = /*#__PURE__*/(0,exportHelper/* default */.Z)(checkboxvue_type_script_lang_ts, [['render',checkboxvue_type_template_id_5a9d8295_scoped_true_ts_true_render],['__scopeId',"data-v-5a9d8295"]])

/* harmony default export */ const checkbox_checkbox = (__exports__);
;// CONCATENATED MODULE: ./src/components/checkboxLine/checkboxLine.tsx


/* harmony default export */ const checkboxLine = (runtime_core_esm_bundler_defineComponent({
  name: 'CheckboxLine',
  props: {
    modelValue: Boolean,
    text: {
      type: String,
      default: ''
    },
    label: {
      type: String,
      default: ''
    },
    nomt: Boolean
  },
  setup: (props, ctx) => {
    const handleInput = v => {
      ctx.emit('update:modelValue', v);
    };

    return () => {
      var _props$label, _ctx$slots$default, _ctx$slots;

      return runtime_core_esm_bundler_createVNode("div", {
        "class": [!props.nomt && 'mt-6']
      }, [runtime_core_esm_bundler_createVNode(resolveComponent("i-checkbox"), mergeProps({
        "label": (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : '',
        "modelValue": props.modelValue
      }, {
        'onUpdate:modelValue': handleInput
      }), null), runtime_core_esm_bundler_createVNode("p", {
        "class": "text-14 text-grey-400 mt-1 mb-0"
      }, [(_ctx$slots$default = (_ctx$slots = ctx.slots).default) === null || _ctx$slots$default === void 0 ? void 0 : _ctx$slots$default.call(_ctx$slots), !ctx.slots.default && (props.text || '')])]);
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/radioGroup/radioGroup.tsx


/* harmony default export */ const radioGroup = (runtime_core_esm_bundler_defineComponent({
  props: {
    modelValue: {
      type: null,
      required: true
    }
  },
  setup: (props, ctx) => {
    const handleRadioClick = value => {
      ctx.emit('update:modelValue', value);
    };

    provide('radio-group-handle-radio-click', handleRadioClick);
    provide('radio-group-value', runtime_core_esm_bundler_computed(() => props.modelValue));
    return () => {
      var _ctx$slots$default, _ctx$slots;

      return runtime_core_esm_bundler_createVNode("div", {
        "class": 'radio-group flex-col items-start'
      }, [(_ctx$slots$default = (_ctx$slots = ctx.slots).default) === null || _ctx$slots$default === void 0 ? void 0 : _ctx$slots$default.call(_ctx$slots)]);
    };
  }
}));
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/radio/radio.vue?vue&type=template&id=86d4bb56&scoped=true&ts=true


const radiovue_type_template_id_86d4bb56_scoped_true_ts_true_withScopeId = n => (pushScopeId("data-v-86d4bb56"), n = n(), popScopeId(), n);

const radiovue_type_template_id_86d4bb56_scoped_true_ts_true_hoisted_1 = /*#__PURE__*/radiovue_type_template_id_86d4bb56_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "ripple-trigger absolute"
}, null, -1));

const radiovue_type_template_id_86d4bb56_scoped_true_ts_true_hoisted_2 = [radiovue_type_template_id_86d4bb56_scoped_true_ts_true_hoisted_1];
const radiovue_type_template_id_86d4bb56_scoped_true_ts_true_hoisted_3 = {
  class: "label text-grey-600"
};
function radiovue_type_template_id_86d4bb56_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  const _directive_ripple = resolveDirective("ripple");

  return openBlock(), createElementBlock("div", {
    class: "radio flex justify-center grow-0 select-none cursor-pointer mr-4 mt-1 mb-1",
    onClick: _cache[0] || (_cache[0] = //@ts-ignore
    (...args) => _ctx.handleClick && _ctx.handleClick(...args))
  }, [createBaseVNode("div", {
    class: normalizeClass(["icon relative mr-2", {
      checked: _ctx.checked
    }])
  }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
    size: "100%",
    svg: _ctx.checked ? _ctx.icon.checked : _ctx.icon.unchecked
  }, null, 8, ["svg"]), withDirectives((openBlock(), createElementBlock("div", {
    class: normalizeClass(["ripple absolute rounded-full", {
      checked: _ctx.checked
    }])
  }, radiovue_type_template_id_86d4bb56_scoped_true_ts_true_hoisted_2, 2)), [[_directive_ripple, {
    center: true
  }]])], 2), createBaseVNode("div", radiovue_type_template_id_86d4bb56_scoped_true_ts_true_hoisted_3, toDisplayString(_ctx.props.label), 1)]);
}
;// CONCATENATED MODULE: ./src/components/radio/radio.vue?vue&type=template&id=86d4bb56&scoped=true&ts=true

;// CONCATENATED MODULE: ./src/assets/img/mdi/baseline-radio_button_checked-24px.svg
/* harmony default export */ const baseline_radio_button_checked_24px = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"><path fill=\"#1976D2\" d=\"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/mdi/baseline-radio_button_unchecked-24px.svg
/* harmony default export */ const baseline_radio_button_unchecked_24px = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"><path fill=\"#777\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>\n");
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/radio/radio.ts?vue&type=script&lang=ts



const icon = {
  checked: baseline_radio_button_checked_24px,
  unchecked: baseline_radio_button_unchecked_24px
};
/* harmony default export */ const radiovue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  props: {
    value: {
      type: null,
      required: true
    },
    label: {
      type: String,
      default: ''
    }
  },
  setup: (props, ctx) => {
    const handleRadioClick = inject('radio-group-handle-radio-click');
    const currentValue = inject('radio-group-value');

    const handleClick = () => {
      ctx.emit('update:modelValue', props.value);

      if (handleRadioClick) {
        handleRadioClick(props.value);
      }
    };

    const checked = runtime_core_esm_bundler_computed(() => {
      if (!currentValue) {
        return false;
      }

      return props.value === currentValue.value;
    });
    return {
      handleClick,
      icon,
      props,
      checked
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/radio/radio.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/radio/radio.sass?vue&type=style&index=0&id=86d4bb56&lang=sass&scoped=true
var radiovue_type_style_index_0_id_86d4bb56_lang_sass_scoped_true = __webpack_require__(9346);
;// CONCATENATED MODULE: ./src/components/radio/radio.sass?vue&type=style&index=0&id=86d4bb56&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/components/radio/radio.vue




;


const radio_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(radiovue_type_script_lang_ts, [['render',radiovue_type_template_id_86d4bb56_scoped_true_ts_true_render],['__scopeId',"data-v-86d4bb56"]])

/* harmony default export */ const radio_radio = (radio_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/slider/slider.vue?vue&type=template&id=629e59a4&scoped=true&ts=true


const slidervue_type_template_id_629e59a4_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-629e59a4"), n = n(), _popScopeId(), n);

const slidervue_type_template_id_629e59a4_scoped_true_ts_true_hoisted_1 = {
  class: "slider select-none"
};
const slidervue_type_template_id_629e59a4_scoped_true_ts_true_hoisted_2 = {
  class: "text text-white text-12"
};
function slidervue_type_template_id_629e59a4_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", slidervue_type_template_id_629e59a4_scoped_true_ts_true_hoisted_1, [createBaseVNode("div", {
    class: "track flex items-center relative",
    ref: _ctx.refs.track,
    onClick: _cache[1] || (_cache[1] = //@ts-ignore
    (...args) => _ctx.handleTrackClick && _ctx.handleTrackClick(...args))
  }, [createBaseVNode("div", {
    class: "track-left bg-blue-700",
    style: normalizeStyle({
      width: `${_ctx.position}%`
    })
  }, null, 4), createBaseVNode("div", {
    class: "track-right bg-grey-400",
    style: normalizeStyle({
      width: `${100 - _ctx.position}%`
    })
  }, null, 4), createBaseVNode("div", {
    class: normalizeClass(["notch absolute bg-blue-700 rounded-full ease-in-out duration-300", {
      dragging: _ctx.state.drag.dragging
    }]),
    style: normalizeStyle({
      left: `${_ctx.position}%`
    }),
    ref: _ctx.refs.notch,
    onMousedown: _cache[0] || (_cache[0] = //@ts-ignore
    (...args) => _ctx.handleNotchMouseDown && _ctx.handleNotchMouseDown(...args))
  }, null, 38), createBaseVNode("div", {
    class: normalizeClass(["bubble flex flex-center bg-blue-700 absolute ease-in-out duration-300 transition-transform", {
      dragging: _ctx.state.drag.dragging
    }]),
    style: normalizeStyle({
      left: `${_ctx.position}%`
    })
  }, [createBaseVNode("div", slidervue_type_template_id_629e59a4_scoped_true_ts_true_hoisted_2, toDisplayString(_ctx.state.cachedValue), 1)], 6)], 512)]);
}
;// CONCATENATED MODULE: ./src/components/slider/slider.vue?vue&type=template&id=629e59a4&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/slider/slider.ts?vue&type=script&lang=ts

/* harmony default export */ const slidervue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'Slider',
  props: {
    modelValue: {
      type: Number,
      required: true
    },
    min: {
      type: Number,
      default: 0
    },
    max: {
      type: Number,
      default: 100
    },
    step: {
      type: Number,
      default: 1
    }
  },
  setup: (props, ctx) => {
    const refs = {
      track: reactivity_esm_bundler_ref(),
      notch: reactivity_esm_bundler_ref()
    };
    const state = reactivity_esm_bundler_reactive({
      drag: {
        startX: 0,
        dragging: false,
        afterDragging: false
      },
      cachedValue: 0
    });

    const getValueFromPercentage = percentage => {
      let newValue = percentage * (props.max - props.min) + props.min;
      const mod = (newValue - props.min) % props.step;

      if (mod) {
        if (mod < props.step / 2) {
          newValue -= mod;
        } else {
          newValue += props.step - mod;
        }
      }

      return newValue;
    };

    const getValueFromDeltaPercentage = percentage => {
      // return this.getValueFromPercentage(props.value / (props.max - props.min) + percentage)
      let newValue = props.modelValue + percentage * (props.max - props.min);
      newValue = newValue < props.min ? props.min : newValue;
      newValue = newValue > props.max ? props.max : newValue;
      const mod = (newValue - props.min) % props.step;

      if (mod) {
        if (mod < props.step / 2) {
          newValue -= mod;
        } else {
          newValue += props.step - mod;
        }
      }

      return newValue;
    };

    const handleNotchMouseDown = e => {
      state.drag.dragging = true;
      state.drag.afterDragging = true;
      state.drag.startX = e.clientX;
    };

    const handleMouseMove = e => {
      if (!state.drag.dragging || !refs.track.value) {
        return;
      }

      const deltaX = e.clientX - state.drag.startX;
      const width = refs.track.value.getBoundingClientRect().width;
      const deltaPercentage = deltaX / width;
      state.cachedValue = getValueFromDeltaPercentage(deltaPercentage);
    };

    const handleMouseUp = () => {
      state.drag.dragging = false;
      setTimeout(() => {
        state.drag.afterDragging = false;
      });
      ctx.emit('update:modelValue', state.cachedValue);
    };

    const handleTrackClick = e => {
      if (e.target === refs.notch.value || state.drag.afterDragging || !refs.track.value) {
        return;
      }

      const position = e.clientX - refs.track.value.getBoundingClientRect().left;
      const width = refs.track.value.getBoundingClientRect().width;
      const percentage = position / width;
      ctx.emit('update:modelValue', getValueFromPercentage(percentage));
    };

    const position = runtime_core_esm_bundler_computed(() => (state.cachedValue - props.min) / (props.max - props.min) * 100);
    watch(() => props.modelValue, () => {
      state.cachedValue = props.modelValue;
    }, {
      immediate: true
    });
    runtime_core_esm_bundler_onMounted(() => {
      window.addEventListener('mousemove', handleMouseMove);
      window.addEventListener('mouseup', handleMouseUp);
      state.cachedValue = props.modelValue;
    });
    runtime_core_esm_bundler_onUnmounted(() => {
      window.removeEventListener('mousemove', handleMouseMove);
      window.removeEventListener('mouseup', handleMouseUp);
    });
    return {
      state,
      refs,
      position,
      handleNotchMouseDown,
      handleTrackClick
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/slider/slider.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/slider/slider.sass?vue&type=style&index=0&id=629e59a4&lang=sass&scoped=true
var slidervue_type_style_index_0_id_629e59a4_lang_sass_scoped_true = __webpack_require__(993);
;// CONCATENATED MODULE: ./src/components/slider/slider.sass?vue&type=style&index=0&id=629e59a4&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/components/slider/slider.vue




;


const slider_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(slidervue_type_script_lang_ts, [['render',slidervue_type_template_id_629e59a4_scoped_true_ts_true_render],['__scopeId',"data-v-629e59a4"]])

/* harmony default export */ const slider = (slider_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/hotkeyInput/hotkeyInput.vue?vue&type=template&id=3651d216&scoped=true&ts=true


const hotkeyInputvue_type_template_id_3651d216_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-3651d216"), n = n(), _popScopeId(), n);

const hotkeyInputvue_type_template_id_3651d216_scoped_true_ts_true_hoisted_1 = ["value"];
function hotkeyInputvue_type_template_id_3651d216_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", null, [createBaseVNode("input", {
    class: "input py-5px px-2 bg-grey-200 text-grey-800 m-2px",
    type: "text",
    value: _ctx.inputString,
    onKeydown: _cache[0] || (_cache[0] = withModifiers( //@ts-ignore
    (...args) => _ctx.handleKeyDown && _ctx.handleKeyDown(...args), ["prevent", "stop"]))
  }, null, 40, hotkeyInputvue_type_template_id_3651d216_scoped_true_ts_true_hoisted_1)]);
}
// EXTERNAL MODULE: ./node_modules/core-js-pure/stable/instance/keys.js
var keys = __webpack_require__(1748);
var keys_default = /*#__PURE__*/__webpack_require__.n(keys);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/hotkeyInput/hotkeyInput.ts?vue&type=script&lang=ts



const hotkeyInputvue_type_script_lang_ts_normalizeKey = key => key >= 'a' && key <= 'z' ? key.toUpperCase() : key;

/* harmony default export */ const hotkeyInputvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'HotkeyInput',
  props: {
    modelValue: {
      type: null,
      required: true
    }
  },
  setup: (props, ctx) => {
    var _props$modelValue;

    const state = reactivity_esm_bundler_reactive({
      keys: (_props$modelValue = props.modelValue) !== null && _props$modelValue !== void 0 ? _props$modelValue : [],
      setKeys: []
    });

    const handleKeyDown = e => {
      const key = hotkeyInputvue_type_script_lang_ts_normalizeKey(e.key);

      if (e.repeat) {
        return;
      }

      if (key === 'Backspace') {
        state.keys = [];
        state.setKeys = [];
        return;
      }

      if (!keys_default()(state).includes(key)) {
        keys_default()(state).push(key);
      }

      state.setKeys = [...keys_default()(state)];
    };

    const handleKeyUp = e => {
      const key = hotkeyInputvue_type_script_lang_ts_normalizeKey(e.key);

      const index = keys_default()(state).indexOf(key);

      if (index !== -1) {
        keys_default()(state).splice(index, 1);
      }
    };

    const handleClear = () => {
      state.keys = [];
    };

    const sortedKeys = runtime_core_esm_bundler_computed(() => {
      const keys = state.setKeys;
      const hasCtrl = keys.includes('Control');
      const hasAlt = keys.includes('Alt');
      const hasShift = keys.includes('Shift');
      const inputs = [hasCtrl && 'Control', hasAlt && 'Alt', hasShift && 'Shift', ...keys.filter(v => !['Control', 'Alt', 'Shift'].includes(v))].filter(Boolean);
      return inputs;
    });
    const inputDisplayString = runtime_core_esm_bundler_computed(() => {
      if (!sortedKeys.value.length) {
        return '无';
      }

      return sortedKeys.value.map(v => v === 'Control' ? 'Ctrl' : v).join(' + ');
    });
    watch(() => sortedKeys.value, () => {
      ctx.emit('update:modelValue', sortedKeys.value);
    });
    watch(() => props.modelValue, () => {
      if (!props.modelValue) {
        return;
      }

      if (props.modelValue.every((v, i) => v === state.setKeys[i])) {
        return;
      }

      state.setKeys = [...props.modelValue];
    }, {
      immediate: true
    });
    runtime_core_esm_bundler_onMounted(() => {
      window.addEventListener('keyup', handleKeyUp);
      window.addEventListener('blur', handleClear);
      window.addEventListener('focus', handleClear);
    });
    runtime_core_esm_bundler_onUnmounted(() => {
      window.removeEventListener('keyup', handleKeyUp);
      window.removeEventListener('blur', handleClear);
      window.removeEventListener('focus', handleClear);
    });
    return {
      props,
      state,
      inputString: inputDisplayString,
      handleKeyDown,
      handleKeyUp
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/hotkeyInput/hotkeyInput.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/hotkeyInput/hotkeyInput.sass?vue&type=style&index=0&id=3651d216&lang=sass&scoped=true
var hotkeyInputvue_type_style_index_0_id_3651d216_lang_sass_scoped_true = __webpack_require__(4259);
;// CONCATENATED MODULE: ./src/components/hotkeyInput/hotkeyInput.sass?vue&type=style&index=0&id=3651d216&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/components/hotkeyInput/hotkeyInput.vue




;


const hotkeyInput_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(hotkeyInputvue_type_script_lang_ts, [['render',hotkeyInputvue_type_template_id_3651d216_scoped_true_ts_true_render],['__scopeId',"data-v-3651d216"]])

/* harmony default export */ const hotkeyInput = (hotkeyInput_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/IIcon/IIcon.vue?vue&type=template&id=4a9ea35f&ts=true

const IIconvue_type_template_id_4a9ea35f_ts_true_hoisted_1 = ["src"];
function IIconvue_type_template_id_4a9ea35f_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", {
    class: "i-icon flex flex-center",
    style: normalizeStyle({
      height: _ctx.computedSize,
      width: _ctx.computedSize
    })
  }, [createBaseVNode("img", {
    class: "svg-img flex-1 w-0",
    src: _ctx.svgUrl,
    alt: ""
  }, null, 8, IIconvue_type_template_id_4a9ea35f_ts_true_hoisted_1)], 4);
}
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/IIcon/IIcon.ts?vue&type=script&lang=ts

/* harmony default export */ const IIconvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  props: {
    svg: {
      type: String,
      default: ''
    },
    size: {
      type: null,
      default: 16
    },
    color: {
      type: String,
      default: ''
    }
  },
  setup: props => {
    const computedSize = runtime_core_esm_bundler_computed(() => {
      if (!props.size) {
        return undefined;
      }

      const size = parseInt(`${props.size}`, 10);

      if (`${size}` === `${props.size}`) {
        return `${size}px`;
      }

      return props.size;
    });
    const svgContent = runtime_core_esm_bundler_computed(() => props.color ? props.svg.replace(/(fill="#[a-fA-F0-9]{6}")/g, `fill="${props.color}"`) : props.svg);
    const svgUrl = runtime_core_esm_bundler_computed(() => `data:image/svg+xml;base64,${window.btoa(svgContent.value)}`);
    return {
      computedSize,
      svgContent,
      svgUrl
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/IIcon/IIcon.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/components/IIcon/IIcon.vue




;
const IIcon_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(IIconvue_type_script_lang_ts, [['render',IIconvue_type_template_id_4a9ea35f_ts_true_render]])

/* harmony default export */ const IIcon = (IIcon_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/textInput/textInput.vue?vue&type=template&id=16445f67&scoped=true&ts=true


const textInputvue_type_template_id_16445f67_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-16445f67"), n = n(), _popScopeId(), n);

const textInputvue_type_template_id_16445f67_scoped_true_ts_true_hoisted_1 = ["value", "type", "placeholder"];
function textInputvue_type_template_id_16445f67_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", null, [createBaseVNode("input", {
    value: _ctx.props.modelValue,
    class: "input py-5px px-2 m-2px",
    type: _ctx.props.inputType,
    placeholder: _ctx.props.placeholder,
    onInput: _cache[0] || (_cache[0] = $event => _ctx.handleInput($event)),
    onKeydownCapture: _cache[1] || (_cache[1] = withModifiers(() => {}, ["stop"]))
  }, null, 40, textInputvue_type_template_id_16445f67_scoped_true_ts_true_hoisted_1)]);
}
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/textInput/textInput.ts?vue&type=script&lang=ts

/* harmony default export */ const textInputvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'TextInput',
  props: {
    modelValue: {
      type: String,
      required: true
    },
    inputType: {
      type: String,
      required: true,
      default: 'text'
    },
    placeholder: String
  },
  setup: (props, ctx) => {
    const handleInput = e => {
      e.stopPropagation();
      const target = e.target;
      ctx.emit('update:modelValue', target.value);
    };

    return {
      props,
      handleInput
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/textInput/textInput.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/textInput/textInput.sass?vue&type=style&index=0&id=16445f67&lang=sass&scoped=true
var textInputvue_type_style_index_0_id_16445f67_lang_sass_scoped_true = __webpack_require__(9902);
;// CONCATENATED MODULE: ./src/components/textInput/textInput.sass?vue&type=style&index=0&id=16445f67&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/components/textInput/textInput.vue




;


const textInput_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(textInputvue_type_script_lang_ts, [['render',textInputvue_type_template_id_16445f67_scoped_true_ts_true_render],['__scopeId',"data-v-16445f67"]])

/* harmony default export */ const textInput = (textInput_exports_);
;// CONCATENATED MODULE: ./src/components/textInputLine/textInputLine.tsx


/* harmony default export */ const textInputLine = (runtime_core_esm_bundler_defineComponent({
  name: 'TextInputLine',
  props: {
    modelValue: {
      type: String,
      required: true
    },
    inputType: {
      type: String,
      default: 'text'
    },
    placeholder: String,
    label: {
      type: String,
      default: ''
    }
  },
  setup: (props, ctx) => {
    const handleInput = v => {
      ctx.emit('update:modelValue', v);
    };

    return () => {
      var _props$label;

      return runtime_core_esm_bundler_createVNode("div", {
        "class": 'flex mt-4'
      }, [runtime_core_esm_bundler_createVNode("label", {
        "class": 'label text-grey-700 py-5px pr-10px my-2px'
      }, [(_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : '']), runtime_core_esm_bundler_createVNode(resolveComponent("i-text-input"), mergeProps({
        "inputType": props.inputType,
        "placeholder": props.placeholder,
        "modelValue": props.modelValue
      }, {
        'onUpdate:modelValue': handleInput
      }), null)]);
    };
  }
}));
;// CONCATENATED MODULE: ./node_modules/fp-ts/es6/ChainRec.js
/**
 * @since 2.0.0
 */
var tailRec = function (startWith, f) {
    var ab = f(startWith);
    while (ab._tag === 'Left') {
        ab = f(ab.left);
    }
    return ab.right;
};

;// CONCATENATED MODULE: ./node_modules/fp-ts/es6/function.js
// -------------------------------------------------------------------------------------
// instances
// -------------------------------------------------------------------------------------
/**
 * @category instances
 * @since 2.10.0
 */
var getBooleanAlgebra = function (B) { return function () { return ({
    meet: function (x, y) { return function (a) { return B.meet(x(a), y(a)); }; },
    join: function (x, y) { return function (a) { return B.join(x(a), y(a)); }; },
    zero: function () { return B.zero; },
    one: function () { return B.one; },
    implies: function (x, y) { return function (a) { return B.implies(x(a), y(a)); }; },
    not: function (x) { return function (a) { return B.not(x(a)); }; }
}); }; };
/**
 * Unary functions form a semigroup as long as you can provide a semigroup for the codomain.
 *
 * @example
 * import { Predicate, getSemigroup } from 'fp-ts/function'
 * import * as B from 'fp-ts/boolean'
 *
 * const f: Predicate<number> = (n) => n <= 2
 * const g: Predicate<number> = (n) => n >= 0
 *
 * const S1 = getSemigroup(B.SemigroupAll)<number>()
 *
 * assert.deepStrictEqual(S1.concat(f, g)(1), true)
 * assert.deepStrictEqual(S1.concat(f, g)(3), false)
 *
 * const S2 = getSemigroup(B.SemigroupAny)<number>()
 *
 * assert.deepStrictEqual(S2.concat(f, g)(1), true)
 * assert.deepStrictEqual(S2.concat(f, g)(3), true)
 *
 * @category instances
 * @since 2.10.0
 */
var getSemigroup = function (S) { return function () { return ({
    concat: function (f, g) { return function (a) { return S.concat(f(a), g(a)); }; }
}); }; };
/**
 * Unary functions form a monoid as long as you can provide a monoid for the codomain.
 *
 * @example
 * import { Predicate } from 'fp-ts/Predicate'
 * import { getMonoid } from 'fp-ts/function'
 * import * as B from 'fp-ts/boolean'
 *
 * const f: Predicate<number> = (n) => n <= 2
 * const g: Predicate<number> = (n) => n >= 0
 *
 * const M1 = getMonoid(B.MonoidAll)<number>()
 *
 * assert.deepStrictEqual(M1.concat(f, g)(1), true)
 * assert.deepStrictEqual(M1.concat(f, g)(3), false)
 *
 * const M2 = getMonoid(B.MonoidAny)<number>()
 *
 * assert.deepStrictEqual(M2.concat(f, g)(1), true)
 * assert.deepStrictEqual(M2.concat(f, g)(3), true)
 *
 * @category instances
 * @since 2.10.0
 */
var getMonoid = function (M) {
    var getSemigroupM = getSemigroup(M);
    return function () { return ({
        concat: getSemigroupM().concat,
        empty: function () { return M.empty; }
    }); };
};
/**
 * @category instances
 * @since 2.10.0
 */
var getSemiring = function (S) { return ({
    add: function (f, g) { return function (x) { return S.add(f(x), g(x)); }; },
    zero: function () { return S.zero; },
    mul: function (f, g) { return function (x) { return S.mul(f(x), g(x)); }; },
    one: function () { return S.one; }
}); };
/**
 * @category instances
 * @since 2.10.0
 */
var getRing = function (R) {
    var S = getSemiring(R);
    return {
        add: S.add,
        mul: S.mul,
        one: S.one,
        zero: S.zero,
        sub: function (f, g) { return function (x) { return R.sub(f(x), g(x)); }; }
    };
};
// -------------------------------------------------------------------------------------
// utils
// -------------------------------------------------------------------------------------
/**
 * @since 2.11.0
 */
var apply = function (a) { return function (f) { return f(a); }; };
/**
 * @since 2.0.0
 */
function function_identity(a) {
    return a;
}
/**
 * @since 2.0.0
 */
var unsafeCoerce = (/* unused pure expression or super */ null && (function_identity));
/**
 * @since 2.0.0
 */
function constant(a) {
    return function () { return a; };
}
/**
 * A thunk that returns always `true`.
 *
 * @since 2.0.0
 */
var constTrue = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (constant(true)));
/**
 * A thunk that returns always `false`.
 *
 * @since 2.0.0
 */
var constFalse = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (constant(false)));
/**
 * A thunk that returns always `null`.
 *
 * @since 2.0.0
 */
var constNull = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (constant(null)));
/**
 * A thunk that returns always `undefined`.
 *
 * @since 2.0.0
 */
var constUndefined = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (constant(undefined)));
/**
 * A thunk that returns always `void`.
 *
 * @since 2.0.0
 */
var constVoid = (/* unused pure expression or super */ null && (constUndefined));
/**
 * Flips the order of the arguments of a function of two arguments.
 *
 * @since 2.0.0
 */
function flip(f) {
    return function (b, a) { return f(a, b); };
}
function function_flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {
    switch (arguments.length) {
        case 1:
            return ab;
        case 2:
            return function () {
                return bc(ab.apply(this, arguments));
            };
        case 3:
            return function () {
                return cd(bc(ab.apply(this, arguments)));
            };
        case 4:
            return function () {
                return de(cd(bc(ab.apply(this, arguments))));
            };
        case 5:
            return function () {
                return ef(de(cd(bc(ab.apply(this, arguments)))));
            };
        case 6:
            return function () {
                return fg(ef(de(cd(bc(ab.apply(this, arguments))))));
            };
        case 7:
            return function () {
                return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));
            };
        case 8:
            return function () {
                return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));
            };
        case 9:
            return function () {
                return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));
            };
    }
    return;
}
/**
 * @since 2.0.0
 */
function tuple() {
    var t = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        t[_i] = arguments[_i];
    }
    return t;
}
/**
 * @since 2.0.0
 */
function increment(n) {
    return n + 1;
}
/**
 * @since 2.0.0
 */
function decrement(n) {
    return n - 1;
}
/**
 * @since 2.0.0
 */
function absurd(_) {
    throw new Error('Called `absurd` function which should be uncallable');
}
/**
 * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument.
 *
 * @example
 * import { tupled } from 'fp-ts/function'
 *
 * const add = tupled((x: number, y: number): number => x + y)
 *
 * assert.strictEqual(add([1, 2]), 3)
 *
 * @since 2.4.0
 */
function tupled(f) {
    return function (a) { return f.apply(void 0, a); };
}
/**
 * Inverse function of `tupled`
 *
 * @since 2.4.0
 */
function untupled(f) {
    return function () {
        var a = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            a[_i] = arguments[_i];
        }
        return f(a);
    };
}
function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {
    switch (arguments.length) {
        case 1:
            return a;
        case 2:
            return ab(a);
        case 3:
            return bc(ab(a));
        case 4:
            return cd(bc(ab(a)));
        case 5:
            return de(cd(bc(ab(a))));
        case 6:
            return ef(de(cd(bc(ab(a)))));
        case 7:
            return fg(ef(de(cd(bc(ab(a))))));
        case 8:
            return gh(fg(ef(de(cd(bc(ab(a)))))));
        case 9:
            return hi(gh(fg(ef(de(cd(bc(ab(a))))))));
        default:
            var ret = arguments[0];
            for (var i = 1; i < arguments.length; i++) {
                ret = arguments[i](ret);
            }
            return ret;
    }
}
/**
 * Type hole simulation
 *
 * @since 2.7.0
 */
var hole = (/* unused pure expression or super */ null && (absurd));
/**
 * @since 2.11.0
 */
var SK = function (_, b) { return b; };
/**
 * Use `Predicate` module instead.
 *
 * @since 2.0.0
 * @deprecated
 */
function not(predicate) {
    return function (a) { return !predicate(a); };
}
/**
 * Use `Endomorphism` module instead.
 *
 * @category instances
 * @since 2.10.0
 * @deprecated
 */
var getEndomorphismMonoid = function () { return ({
    concat: function (first, second) { return function_flow(first, second); },
    empty: function_identity
}); };

;// CONCATENATED MODULE: ./node_modules/fp-ts/es6/internal.js
var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) {
    for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
        to[j] = from[i];
    return to;
};
// -------------------------------------------------------------------------------------
// Option
// -------------------------------------------------------------------------------------
/** @internal */
var isNone = function (fa) { return fa._tag === 'None'; };
/** @internal */
var isSome = function (fa) { return fa._tag === 'Some'; };
/** @internal */
var none = { _tag: 'None' };
/** @internal */
var some = function (a) { return ({ _tag: 'Some', value: a }); };
// -------------------------------------------------------------------------------------
// Either
// -------------------------------------------------------------------------------------
/** @internal */
var internal_isLeft = function (ma) { return ma._tag === 'Left'; };
/** @internal */
var isRight = function (ma) { return ma._tag === 'Right'; };
/** @internal */
var left = function (e) { return ({ _tag: 'Left', left: e }); };
/** @internal */
var internal_right = function (a) { return ({ _tag: 'Right', right: a }); };
// -------------------------------------------------------------------------------------
// ReadonlyNonEmptyArray
// -------------------------------------------------------------------------------------
/** @internal */
var singleton = function (a) { return [a]; };
/** @internal */
var isNonEmpty = function (as) { return as.length > 0; };
/** @internal */
var head = function (as) { return as[0]; };
/** @internal */
var tail = function (as) { return as.slice(1); };
// -------------------------------------------------------------------------------------
// empty
// -------------------------------------------------------------------------------------
/** @internal */
var emptyReadonlyArray = [];
/** @internal */
var emptyRecord = {};
// -------------------------------------------------------------------------------------
// Record
// -------------------------------------------------------------------------------------
/** @internal */
var internal_has = Object.prototype.hasOwnProperty;
// -------------------------------------------------------------------------------------
// NonEmptyArray
// -------------------------------------------------------------------------------------
/** @internal */
var fromReadonlyNonEmptyArray = function (as) { return __spreadArray([as[0]], as.slice(1)); };

;// CONCATENATED MODULE: ./node_modules/fp-ts/es6/Either.js










// -------------------------------------------------------------------------------------
// constructors
// -------------------------------------------------------------------------------------
/**
 * Constructs a new `Either` holding a `Left` value. This usually represents a failure, due to the right-bias of this
 * structure.
 *
 * @category constructors
 * @since 2.0.0
 */
var Either_left = left;
/**
 * Constructs a new `Either` holding a `Right` value. This usually represents a successful value due to the right bias
 * of this structure.
 *
 * @category constructors
 * @since 2.0.0
 */
var Either_right = internal_right;
// -------------------------------------------------------------------------------------
// non-pipeables
// -------------------------------------------------------------------------------------
var _map = function (fa, f) { return pipe(fa, Either_map(f)); };
var _ap = function (fab, fa) { return pipe(fab, ap(fa)); };
/* istanbul ignore next */
var _chain = function (ma, f) { return pipe(ma, chain(f)); };
/* istanbul ignore next */
var _reduce = function (fa, b, f) { return pipe(fa, reduce(b, f)); };
/* istanbul ignore next */
var _foldMap = function (M) { return function (fa, f) {
    var foldMapM = foldMap(M);
    return pipe(fa, foldMapM(f));
}; };
/* istanbul ignore next */
var _reduceRight = function (fa, b, f) { return pipe(fa, reduceRight(b, f)); };
var _traverse = function (F) {
    var traverseF = Either_traverse(F);
    return function (ta, f) { return pipe(ta, traverseF(f)); };
};
var _bimap = function (fa, f, g) { return pipe(fa, bimap(f, g)); };
var _mapLeft = function (fa, f) { return pipe(fa, mapLeft(f)); };
/* istanbul ignore next */
var _alt = function (fa, that) { return pipe(fa, alt(that)); };
/* istanbul ignore next */
var _extend = function (wa, f) { return pipe(wa, Either_extend(f)); };
var _chainRec = function (a, f) {
    return tailRec(f(a), function (e) {
        return Either_isLeft(e) ? Either_right(Either_left(e.left)) : Either_isLeft(e.right) ? Either_left(f(e.right.left)) : Either_right(Either_right(e.right.right));
    });
};
// -------------------------------------------------------------------------------------
// instances
// -------------------------------------------------------------------------------------
/**
 * @category instances
 * @since 2.0.0
 */
var URI = 'Either';
/**
 * @category instances
 * @since 2.0.0
 */
var getShow = function (SE, SA) { return ({
    show: function (ma) { return (Either_isLeft(ma) ? "left(" + SE.show(ma.left) + ")" : "right(" + SA.show(ma.right) + ")"); }
}); };
/**
 * @category instances
 * @since 2.0.0
 */
var getEq = function (EL, EA) { return ({
    equals: function (x, y) {
        return x === y || (Either_isLeft(x) ? Either_isLeft(y) && EL.equals(x.left, y.left) : Either_isRight(y) && EA.equals(x.right, y.right));
    }
}); };
/**
 * Semigroup returning the left-most non-`Left` value. If both operands are `Right`s then the inner values are
 * concatenated using the provided `Semigroup`
 *
 * @example
 * import { getSemigroup, left, right } from 'fp-ts/Either'
 * import { SemigroupSum } from 'fp-ts/number'
 *
 * const S = getSemigroup<string, number>(SemigroupSum)
 * assert.deepStrictEqual(S.concat(left('a'), left('b')), left('a'))
 * assert.deepStrictEqual(S.concat(left('a'), right(2)), right(2))
 * assert.deepStrictEqual(S.concat(right(1), left('b')), right(1))
 * assert.deepStrictEqual(S.concat(right(1), right(2)), right(3))
 *
 * @category instances
 * @since 2.0.0
 */
var Either_getSemigroup = function (S) { return ({
    concat: function (x, y) { return (Either_isLeft(y) ? x : Either_isLeft(x) ? y : Either_right(S.concat(x.right, y.right))); }
}); };
/**
 * Builds a `Compactable` instance for `Either` given `Monoid` for the left side.
 *
 * @category instances
 * @since 2.10.0
 */
var getCompactable = function (M) {
    var empty = Either_left(M.empty);
    return {
        URI: URI,
        _E: undefined,
        compact: function (ma) { return (Either_isLeft(ma) ? ma : ma.right._tag === 'None' ? empty : Either_right(ma.right.value)); },
        separate: function (ma) {
            return Either_isLeft(ma)
                ? separated(ma, ma)
                : Either_isLeft(ma.right)
                    ? separated(Either_right(ma.right.left), empty)
                    : separated(empty, Either_right(ma.right.right));
        }
    };
};
/**
 * Builds a `Filterable` instance for `Either` given `Monoid` for the left side
 *
 * @category instances
 * @since 2.10.0
 */
var getFilterable = function (M) {
    var empty = Either_left(M.empty);
    var _a = getCompactable(M), compact = _a.compact, separate = _a.separate;
    var filter = function (ma, predicate) {
        return Either_isLeft(ma) ? ma : predicate(ma.right) ? ma : empty;
    };
    var partition = function (ma, p) {
        return Either_isLeft(ma)
            ? separated(ma, ma)
            : p(ma.right)
                ? separated(empty, Either_right(ma.right))
                : separated(Either_right(ma.right), empty);
    };
    return {
        URI: URI,
        _E: undefined,
        map: _map,
        compact: compact,
        separate: separate,
        filter: filter,
        filterMap: function (ma, f) {
            if (Either_isLeft(ma)) {
                return ma;
            }
            var ob = f(ma.right);
            return ob._tag === 'None' ? empty : Either_right(ob.value);
        },
        partition: partition,
        partitionMap: function (ma, f) {
            if (Either_isLeft(ma)) {
                return separated(ma, ma);
            }
            var e = f(ma.right);
            return Either_isLeft(e) ? separated(Either_right(e.left), empty) : separated(empty, Either_right(e.right));
        }
    };
};
/**
 * Builds `Witherable` instance for `Either` given `Monoid` for the left side
 *
 * @category instances
 * @since 2.0.0
 */
var getWitherable = function (M) {
    var F_ = getFilterable(M);
    var C = getCompactable(M);
    return {
        URI: URI,
        _E: undefined,
        map: _map,
        compact: F_.compact,
        separate: F_.separate,
        filter: F_.filter,
        filterMap: F_.filterMap,
        partition: F_.partition,
        partitionMap: F_.partitionMap,
        traverse: _traverse,
        sequence: sequence,
        reduce: _reduce,
        foldMap: _foldMap,
        reduceRight: _reduceRight,
        wither: witherDefault(Traversable, C),
        wilt: wiltDefault(Traversable, C)
    };
};
/**
 * @category instances
 * @since 2.7.0
 */
var getApplicativeValidation = function (SE) { return ({
    URI: URI,
    _E: undefined,
    map: _map,
    ap: function (fab, fa) {
        return Either_isLeft(fab)
            ? Either_isLeft(fa)
                ? Either_left(SE.concat(fab.left, fa.left))
                : fab
            : Either_isLeft(fa)
                ? fa
                : Either_right(fab.right(fa.right));
    },
    of: of
}); };
/**
 * @category instances
 * @since 2.7.0
 */
var getAltValidation = function (SE) { return ({
    URI: URI,
    _E: undefined,
    map: _map,
    alt: function (me, that) {
        if (Either_isRight(me)) {
            return me;
        }
        var ea = that();
        return Either_isLeft(ea) ? Either_left(SE.concat(me.left, ea.left)) : ea;
    }
}); };
/**
 * @category instance operations
 * @since 2.0.0
 */
var Either_map = function (f) { return function (fa) {
    return Either_isLeft(fa) ? fa : Either_right(f(fa.right));
}; };
/**
 * @category instances
 * @since 2.7.0
 */
var Functor = {
    URI: URI,
    map: _map
};
/**
 * @category instance operations
 * @since 2.7.0
 */
var of = Either_right;
/**
 * @category instances
 * @since 2.10.0
 */
var Pointed = {
    URI: URI,
    of: of
};
/**
 * Less strict version of [`ap`](#ap).
 *
 * @category instance operations
 * @since 2.8.0
 */
var apW = function (fa) { return function (fab) { return (Either_isLeft(fab) ? fab : Either_isLeft(fa) ? fa : Either_right(fab.right(fa.right))); }; };
/**
 * Apply a function to an argument under a type constructor.
 *
 * @category instance operations
 * @since 2.0.0
 */
var ap = apW;
/**
 * @category instances
 * @since 2.10.0
 */
var Apply = {
    URI: URI,
    map: _map,
    ap: _ap
};
/**
 * @category instances
 * @since 2.7.0
 */
var Applicative = {
    URI: URI,
    map: _map,
    ap: _ap,
    of: of
};
/**
 * Less strict version of [`chain`](#chain).
 *
 * @category instance operations
 * @since 2.6.0
 */
var chainW = function (f) { return function (ma) {
    return Either_isLeft(ma) ? ma : f(ma.right);
}; };
/**
 * Composes computations in sequence, using the return value of one computation to determine the next computation.
 *
 * @category instance operations
 * @since 2.0.0
 */
var chain = chainW;
/**
 * @category instances
 * @since 2.10.0
 */
var Chain = {
    URI: URI,
    map: _map,
    ap: _ap,
    chain: _chain
};
/**
 * @category instances
 * @since 2.7.0
 */
var Monad = {
    URI: URI,
    map: _map,
    ap: _ap,
    of: of,
    chain: _chain
};
/**
 * Left-associative fold of a structure.
 *
 * @example
 * import { pipe } from 'fp-ts/function'
 * import * as E from 'fp-ts/Either'
 *
 * const startWith = 'prefix'
 * const concat = (a: string, b: string) => `${a}:${b}`
 *
 * assert.deepStrictEqual(
 *   pipe(E.right('a'), E.reduce(startWith, concat)),
 *   'prefix:a'
 * )
 *
 * assert.deepStrictEqual(
 *   pipe(E.left('e'), E.reduce(startWith, concat)),
 *   'prefix'
 * )
 *
 * @category instance operations
 * @since 2.0.0
 */
var reduce = function (b, f) { return function (fa) {
    return Either_isLeft(fa) ? b : f(b, fa.right);
}; };
/**
 * Map each element of the structure to a monoid, and combine the results.
 *
 * @example
 * import { pipe } from 'fp-ts/function'
 * import * as E from 'fp-ts/Either'
 * import * as S from 'fp-ts/string'
 *
 * const yell = (a: string) => `${a}!`
 *
 * assert.deepStrictEqual(
 *   pipe(E.right('a'), E.foldMap(S.Monoid)(yell)),
 *   'a!'
 * )
 *
 * assert.deepStrictEqual(
 *   pipe(E.left('e'), E.foldMap(S.Monoid)(yell)),
 *   S.Monoid.empty
 * )
 *
 * @category instance operations
 * @since 2.0.0
 */
var foldMap = function (M) { return function (f) { return function (fa) {
    return Either_isLeft(fa) ? M.empty : f(fa.right);
}; }; };
/**
 * Right-associative fold of a structure.
 *
 * @example
 * import { pipe } from 'fp-ts/function'
 * import * as E from 'fp-ts/Either'
 *
 * const startWith = 'postfix'
 * const concat = (a: string, b: string) => `${a}:${b}`
 *
 * assert.deepStrictEqual(
 *   pipe(E.right('a'), E.reduceRight(startWith, concat)),
 *   'a:postfix'
 * )
 *
 * assert.deepStrictEqual(
 *   pipe(E.left('e'), E.reduceRight(startWith, concat)),
 *   'postfix'
 * )
 *
 * @category instance operations
 * @since 2.0.0
 */
var reduceRight = function (b, f) { return function (fa) {
    return Either_isLeft(fa) ? b : f(fa.right, b);
}; };
/**
 * @category instances
 * @since 2.7.0
 */
var Foldable = {
    URI: URI,
    reduce: _reduce,
    foldMap: _foldMap,
    reduceRight: _reduceRight
};
/**
 * Map each element of a structure to an action, evaluate these actions from left to right, and collect the results.
 *
 * @example
 * import { pipe } from 'fp-ts/function'
 * import * as RA from 'fp-ts/ReadonlyArray'
 * import * as E from 'fp-ts/Either'
 * import * as O from 'fp-ts/Option'
 *
 * assert.deepStrictEqual(
 *   pipe(E.right(['a']), E.traverse(O.Applicative)(RA.head)),
 *   O.some(E.right('a'))
 *  )
 *
 * assert.deepStrictEqual(
 *   pipe(E.right([]), E.traverse(O.Applicative)(RA.head)),
 *   O.none
 * )
 *
 * @category instance operations
 * @since 2.6.3
 */
var Either_traverse = function (F) { return function (f) { return function (ta) { return (Either_isLeft(ta) ? F.of(Either_left(ta.left)) : F.map(f(ta.right), Either_right)); }; }; };
/**
 * Evaluate each monadic action in the structure from left to right, and collect the results.
 *
 * @example
 * import { pipe } from 'fp-ts/function'
 * import * as E from 'fp-ts/Either'
 * import * as O from 'fp-ts/Option'
 *
 * assert.deepStrictEqual(
 *   pipe(E.right(O.some('a')), E.sequence(O.Applicative)),
 *   O.some(E.right('a'))
 *  )
 *
 * assert.deepStrictEqual(
 *   pipe(E.right(O.none), E.sequence(O.Applicative)),
 *   O.none
 * )
 *
 * @category instance operations
 * @since 2.6.3
 */
var sequence = function (F) { return function (ma) {
    return Either_isLeft(ma) ? F.of(Either_left(ma.left)) : F.map(ma.right, Either_right);
}; };
/**
 * @category instances
 * @since 2.7.0
 */
var Traversable = {
    URI: URI,
    map: _map,
    reduce: _reduce,
    foldMap: _foldMap,
    reduceRight: _reduceRight,
    traverse: _traverse,
    sequence: sequence
};
/**
 * Map a pair of functions over the two type arguments of the bifunctor.
 *
 * @category instance operations
 * @since 2.0.0
 */
var bimap = function (f, g) { return function (fa) { return (Either_isLeft(fa) ? Either_left(f(fa.left)) : Either_right(g(fa.right))); }; };
/**
 * Map a function over the first type argument of a bifunctor.
 *
 * @category instance operations
 * @since 2.0.0
 */
var mapLeft = function (f) { return function (fa) {
    return Either_isLeft(fa) ? Either_left(f(fa.left)) : fa;
}; };
/**
 * @category instances
 * @since 2.7.0
 */
var Bifunctor = {
    URI: URI,
    bimap: _bimap,
    mapLeft: _mapLeft
};
/**
 * Less strict version of [`alt`](#alt).
 *
 * @category instance operations
 * @since 2.9.0
 */
var altW = function (that) { return function (fa) { return (Either_isLeft(fa) ? that() : fa); }; };
/**
 * Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to
 * types of kind `* -> *`.
 *
 * @category instance operations
 * @since 2.0.0
 */
var alt = altW;
/**
 * @category instances
 * @since 2.7.0
 */
var Alt = {
    URI: URI,
    map: _map,
    alt: _alt
};
/**
 * @category instance operations
 * @since 2.0.0
 */
var Either_extend = function (f) { return function (wa) {
    return Either_isLeft(wa) ? wa : Either_right(f(wa));
}; };
/**
 * @category instances
 * @since 2.7.0
 */
var Extend = {
    URI: URI,
    map: _map,
    extend: _extend
};
/**
 * @category instances
 * @since 2.7.0
 */
var ChainRec = {
    URI: URI,
    map: _map,
    ap: _ap,
    chain: _chain,
    chainRec: _chainRec
};
/**
 * @category instance operations
 * @since 2.6.3
 */
var throwError = Either_left;
/**
 * @category instances
 * @since 2.7.0
 */
var MonadThrow = {
    URI: URI,
    map: _map,
    ap: _ap,
    of: of,
    chain: _chain,
    throwError: throwError
};
/**
 * @category instances
 * @since 2.10.0
 */
var FromEither = {
    URI: URI,
    fromEither: function_identity
};
/**
 * @example
 * import { fromPredicate, left, right } from 'fp-ts/Either'
 * import { pipe } from 'fp-ts/function'
 *
 * assert.deepStrictEqual(
 *   pipe(
 *     1,
 *     fromPredicate(
 *       (n) => n > 0,
 *       () => 'error'
 *     )
 *   ),
 *   right(1)
 * )
 * assert.deepStrictEqual(
 *   pipe(
 *     -1,
 *     fromPredicate(
 *       (n) => n > 0,
 *       () => 'error'
 *     )
 *   ),
 *   left('error')
 * )
 *
 * @category constructors
 * @since 2.0.0
 */
var fromPredicate = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (fromPredicate_(FromEither)));
// -------------------------------------------------------------------------------------
// natural transformations
// -------------------------------------------------------------------------------------
/**
 * @example
 * import * as E from 'fp-ts/Either'
 * import { pipe } from 'fp-ts/function'
 * import * as O from 'fp-ts/Option'
 *
 * assert.deepStrictEqual(
 *   pipe(
 *     O.some(1),
 *     E.fromOption(() => 'error')
 *   ),
 *   E.right(1)
 * )
 * assert.deepStrictEqual(
 *   pipe(
 *     O.none,
 *     E.fromOption(() => 'error')
 *   ),
 *   E.left('error')
 * )
 *
 * @category natural transformations
 * @since 2.0.0
 */
var fromOption = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (fromOption_(FromEither)));
// -------------------------------------------------------------------------------------
// refinements
// -------------------------------------------------------------------------------------
/**
 * Returns `true` if the either is an instance of `Left`, `false` otherwise.
 *
 * @category refinements
 * @since 2.0.0
 */
var Either_isLeft = internal_isLeft;
/**
 * Returns `true` if the either is an instance of `Right`, `false` otherwise.
 *
 * @category refinements
 * @since 2.0.0
 */
var Either_isRight = isRight;
// -------------------------------------------------------------------------------------
// destructors
// -------------------------------------------------------------------------------------
/**
 * Less strict version of [`match`](#match).
 *
 * @category destructors
 * @since 2.10.0
 */
var matchW = function (onLeft, onRight) { return function (ma) {
    return Either_isLeft(ma) ? onLeft(ma.left) : onRight(ma.right);
}; };
/**
 * Alias of [`matchW`](#matchw).
 *
 * @category destructors
 * @since 2.10.0
 */
var foldW = (/* unused pure expression or super */ null && (matchW));
/**
 * Takes two functions and an `Either` value, if the value is a `Left` the inner value is applied to the first function,
 * if the value is a `Right` the inner value is applied to the second function.
 *
 * @example
 * import { match, left, right } from 'fp-ts/Either'
 * import { pipe } from 'fp-ts/function'
 *
 * function onLeft(errors: Array<string>): string {
 *   return `Errors: ${errors.join(', ')}`
 * }
 *
 * function onRight(value: number): string {
 *   return `Ok: ${value}`
 * }
 *
 * assert.strictEqual(
 *   pipe(
 *     right(1),
 *     match(onLeft, onRight)
 *   ),
 *   'Ok: 1'
 * )
 * assert.strictEqual(
 *   pipe(
 *     left(['error 1', 'error 2']),
 *     match(onLeft, onRight)
 *   ),
 *   'Errors: error 1, error 2'
 * )
 *
 * @category destructors
 * @since 2.10.0
 */
var match = (/* unused pure expression or super */ null && (matchW));
/**
 * Alias of [`match`](#match).
 *
 * @category destructors
 * @since 2.0.0
 */
var fold = (/* unused pure expression or super */ null && (match));
/**
 * Less strict version of [`getOrElse`](#getorelse).
 *
 * @category destructors
 * @since 2.6.0
 */
var getOrElseW = function (onLeft) { return function (ma) {
    return Either_isLeft(ma) ? onLeft(ma.left) : ma.right;
}; };
/**
 * Returns the wrapped value if it's a `Right` or a default value if is a `Left`.
 *
 * @example
 * import { getOrElse, left, right } from 'fp-ts/Either'
 * import { pipe } from 'fp-ts/function'
 *
 * assert.deepStrictEqual(
 *   pipe(
 *     right(1),
 *     getOrElse(() => 0)
 *   ),
 *   1
 * )
 * assert.deepStrictEqual(
 *   pipe(
 *     left('error'),
 *     getOrElse(() => 0)
 *   ),
 *   0
 * )
 *
 * @category destructors
 * @since 2.0.0
 */
var getOrElse = (/* unused pure expression or super */ null && (getOrElseW));
// -------------------------------------------------------------------------------------
// combinators
// -------------------------------------------------------------------------------------
/**
 * Derivable from `Functor`.
 *
 * @category combinators
 * @since 2.10.0
 */
var flap = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (flap_(Functor)));
/**
 * Combine two effectful actions, keeping only the result of the first.
 *
 * Derivable from `Apply`.
 *
 * @category combinators
 * @since 2.0.0
 */
var apFirst = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (apFirst_(Apply)));
/**
 * Combine two effectful actions, keeping only the result of the second.
 *
 * Derivable from `Apply`.
 *
 * @category combinators
 * @since 2.0.0
 */
var apSecond = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (apSecond_(Apply)));
/**
 * Composes computations in sequence, using the return value of one computation to determine the next computation and
 * keeping only the result of the first.
 *
 * Derivable from `Chain`.
 *
 * @category combinators
 * @since 2.0.0
 */
var chainFirst = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (chainFirst_(Chain)));
/**
 * Less strict version of [`chainFirst`](#chainfirst)
 *
 * Derivable from `Chain`.
 *
 * @category combinators
 * @since 2.8.0
 */
var chainFirstW = (/* unused pure expression or super */ null && (chainFirst));
/**
 * Less strict version of [`flatten`](#flatten).
 *
 * @category combinators
 * @since 2.11.0
 */
var flattenW = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (chainW(identity)));
/**
 * The `flatten` function is the conventional monad join operator. It is used to remove one level of monadic structure, projecting its bound argument into the outer level.
 *
 * Derivable from `Chain`.
 *
 * @example
 * import * as E from 'fp-ts/Either'
 *
 * assert.deepStrictEqual(E.flatten(E.right(E.right('a'))), E.right('a'))
 * assert.deepStrictEqual(E.flatten(E.right(E.left('e'))), E.left('e'))
 * assert.deepStrictEqual(E.flatten(E.left('e')), E.left('e'))
 *
 * @category combinators
 * @since 2.0.0
 */
var flatten = (/* unused pure expression or super */ null && (flattenW));
/**
 * Derivable from `Extend`.
 *
 * @category combinators
 * @since 2.0.0
 */
var duplicate = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (Either_extend(identity)));
/**
 * @category combinators
 * @since 2.10.0
 */
var fromOptionK = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (fromOptionK_(FromEither)));
/**
 * @category combinators
 * @since 2.11.0
 */
var chainOptionK = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (chainOptionK_(FromEither, Chain)));
/**
 * @example
 * import * as E from 'fp-ts/Either'
 * import { pipe } from 'fp-ts/function'
 *
 * assert.deepStrictEqual(
 *   pipe(
 *     E.right(1),
 *     E.filterOrElse(
 *       (n) => n > 0,
 *       () => 'error'
 *     )
 *   ),
 *   E.right(1)
 * )
 * assert.deepStrictEqual(
 *   pipe(
 *     E.right(-1),
 *     E.filterOrElse(
 *       (n) => n > 0,
 *       () => 'error'
 *     )
 *   ),
 *   E.left('error')
 * )
 * assert.deepStrictEqual(
 *   pipe(
 *     E.left('a'),
 *     E.filterOrElse(
 *       (n) => n > 0,
 *       () => 'error'
 *     )
 *   ),
 *   E.left('a')
 * )
 *
 * @category combinators
 * @since 2.0.0
 */
var filterOrElse = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (filterOrElse_(FromEither, Chain)));
/**
 * Less strict version of [`filterOrElse`](#filterorelse).
 *
 * @category combinators
 * @since 2.9.0
 */
var filterOrElseW = (/* unused pure expression or super */ null && (filterOrElse));
/**
 * Returns a `Right` if is a `Left` (and vice versa).
 *
 * @category combinators
 * @since 2.0.0
 */
var swap = function (ma) { return (Either_isLeft(ma) ? Either_right(ma.left) : Either_left(ma.right)); };
/**
 * Less strict version of [`orElse`](#orelse).
 *
 * @category combinators
 * @since 2.10.0
 */
var orElseW = function (onLeft) { return function (ma) {
    return Either_isLeft(ma) ? onLeft(ma.left) : ma;
}; };
/**
 * Useful for recovering from errors.
 *
 * @category combinators
 * @since 2.0.0
 */
var orElse = (/* unused pure expression or super */ null && (orElseW));
// -------------------------------------------------------------------------------------
// interop
// -------------------------------------------------------------------------------------
/**
 * Takes a default and a nullable value, if the value is not nully, turn it into a `Right`, if the value is nully use
 * the provided default as a `Left`.
 *
 * @example
 * import { fromNullable, left, right } from 'fp-ts/Either'
 *
 * const parse = fromNullable('nully')
 *
 * assert.deepStrictEqual(parse(1), right(1))
 * assert.deepStrictEqual(parse(null), left('nully'))
 *
 * @category interop
 * @since 2.0.0
 */
var fromNullable = function (e) { return function (a) {
    return a == null ? Either_left(e) : Either_right(a);
}; };
/**
 * Constructs a new `Either` from a function that might throw.
 *
 * See also [`tryCatchK`](#trycatchk).
 *
 * @example
 * import * as E from 'fp-ts/Either'
 *
 * const unsafeHead = <A>(as: ReadonlyArray<A>): A => {
 *   if (as.length > 0) {
 *     return as[0]
 *   } else {
 *     throw new Error('empty array')
 *   }
 * }
 *
 * const head = <A>(as: ReadonlyArray<A>): E.Either<Error, A> =>
 *   E.tryCatch(() => unsafeHead(as), e => (e instanceof Error ? e : new Error('unknown error')))
 *
 * assert.deepStrictEqual(head([]), E.left(new Error('empty array')))
 * assert.deepStrictEqual(head([1, 2, 3]), E.right(1))
 *
 * @category interop
 * @since 2.0.0
 */
var tryCatch = function (f, onThrow) {
    try {
        return Either_right(f());
    }
    catch (e) {
        return Either_left(onThrow(e));
    }
};
/**
 * Converts a function that may throw to one returning a `Either`.
 *
 * @category interop
 * @since 2.10.0
 */
var tryCatchK = function (f, onThrow) { return function () {
    var a = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        a[_i] = arguments[_i];
    }
    return tryCatch(function () { return f.apply(void 0, a); }, onThrow);
}; };
/**
 * @category interop
 * @since 2.9.0
 */
var fromNullableK = function (e) {
    var from = fromNullable(e);
    return function (f) { return flow(f, from); };
};
/**
 * @category interop
 * @since 2.9.0
 */
var chainNullableK = function (e) {
    var from = fromNullableK(e);
    return function (f) { return chain(from(f)); };
};
/**
 * @category interop
 * @since 2.10.0
 */
var toUnion = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (foldW(identity, identity)));
// -------------------------------------------------------------------------------------
// utils
// -------------------------------------------------------------------------------------
/**
 * Default value for the `onError` argument of `tryCatch`
 *
 * @since 2.0.0
 */
function toError(e) {
    return e instanceof Error ? e : new Error(String(e));
}
function elem(E) {
    return function (a, ma) {
        if (ma === undefined) {
            var elemE_1 = elem(E);
            return function (ma) { return elemE_1(a, ma); };
        }
        return Either_isLeft(ma) ? false : E.equals(a, ma.right);
    };
}
/**
 * Returns `false` if `Left` or returns the result of the application of the given predicate to the `Right` value.
 *
 * @example
 * import { exists, left, right } from 'fp-ts/Either'
 *
 * const gt2 = exists((n: number) => n > 2)
 *
 * assert.strictEqual(gt2(left('a')), false)
 * assert.strictEqual(gt2(right(1)), false)
 * assert.strictEqual(gt2(right(3)), true)
 *
 * @since 2.0.0
 */
var exists = function (predicate) { return function (ma) {
    return Either_isLeft(ma) ? false : predicate(ma.right);
}; };
// -------------------------------------------------------------------------------------
// do notation
// -------------------------------------------------------------------------------------
/**
 * @since 2.9.0
 */
var Do = 
/*#__PURE__*/
of(emptyRecord);
/**
 * @since 2.8.0
 */
var bindTo = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (bindTo_(Functor)));
/**
 * @since 2.8.0
 */
var bind = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (bind_(Chain)));
/**
 * @since 2.8.0
 */
var bindW = (/* unused pure expression or super */ null && (bind));
// -------------------------------------------------------------------------------------
// pipeable sequence S
// -------------------------------------------------------------------------------------
/**
 * @since 2.8.0
 */
var apS = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (apS_(Apply)));
/**
 * @since 2.8.0
 */
var apSW = (/* unused pure expression or super */ null && (apS));
// -------------------------------------------------------------------------------------
// sequence T
// -------------------------------------------------------------------------------------
/**
 * @since 2.11.0
 */
var ApT = 
/*#__PURE__*/
of(emptyReadonlyArray);
// -------------------------------------------------------------------------------------
// array utils
// -------------------------------------------------------------------------------------
/**
 * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(Applicative)`.
 *
 * @since 2.11.0
 */
var traverseReadonlyNonEmptyArrayWithIndex = function (f) { return function (as) {
    var e = f(0, _.head(as));
    if (Either_isLeft(e)) {
        return e;
    }
    var out = [e.right];
    for (var i = 1; i < as.length; i++) {
        var e_1 = f(i, as[i]);
        if (Either_isLeft(e_1)) {
            return e_1;
        }
        out.push(e_1.right);
    }
    return Either_right(out);
}; };
/**
 * Equivalent to `ReadonlyArray#traverseWithIndex(Applicative)`.
 *
 * @since 2.11.0
 */
var traverseReadonlyArrayWithIndex = function (f) {
    var g = traverseReadonlyNonEmptyArrayWithIndex(f);
    return function (as) { return (_.isNonEmpty(as) ? g(as) : ApT); };
};
/**
 * @since 2.9.0
 */
var traverseArrayWithIndex = (/* unused pure expression or super */ null && (traverseReadonlyArrayWithIndex));
/**
 * @since 2.9.0
 */
var traverseArray = function (f) { return traverseReadonlyArrayWithIndex(function (_, a) { return f(a); }); };
/**
 * @since 2.9.0
 */
var sequenceArray = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (traverseArray(identity)));
/**
 * Use [`parse`](./Json.ts.html#parse) instead.
 *
 * @category constructors
 * @since 2.0.0
 * @deprecated
 */
function parseJSON(s, onError) {
    return tryCatch(function () { return JSON.parse(s); }, onError);
}
/**
 * Use [`stringify`](./Json.ts.html#stringify) instead.
 *
 * @category constructors
 * @since 2.0.0
 * @deprecated
 */
var stringifyJSON = function (u, onError) {
    return tryCatch(function () {
        var s = (__webpack_require__(8334)/* .stringify */ .P)(u);
        if (typeof s !== 'string') {
            throw new Error('Converting unsupported structure to JSON');
        }
        return s;
    }, onError);
};
/**
 * Use small, specific instances instead.
 *
 * @category instances
 * @since 2.0.0
 * @deprecated
 */
var either = {
    URI: URI,
    map: _map,
    of: of,
    ap: _ap,
    chain: _chain,
    reduce: _reduce,
    foldMap: _foldMap,
    reduceRight: _reduceRight,
    traverse: _traverse,
    sequence: sequence,
    bimap: _bimap,
    mapLeft: _mapLeft,
    alt: _alt,
    extend: _extend,
    chainRec: _chainRec,
    throwError: throwError
};
/**
 * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.
 *
 * Semigroup returning the left-most `Left` value. If both operands are `Right`s then the inner values
 * are concatenated using the provided `Semigroup`
 *
 * @category instances
 * @since 2.0.0
 * @deprecated
 */
var getApplySemigroup = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (getApplySemigroup_(Apply)));
/**
 * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.
 *
 * @category instances
 * @since 2.0.0
 * @deprecated
 */
var getApplyMonoid = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (getApplicativeMonoid(Applicative)));
/**
 * Use [`getApplySemigroup`](./Apply.ts.html#getapplysemigroup) instead.
 *
 * @category instances
 * @since 2.0.0
 * @deprecated
 */
var getValidationSemigroup = function (SE, SA) {
    return getApplySemigroup_(getApplicativeValidation(SE))(SA);
};
/**
 * Use [`getApplicativeMonoid`](./Applicative.ts.html#getapplicativemonoid) instead.
 *
 * @category instances
 * @since 2.0.0
 * @deprecated
 */
var getValidationMonoid = function (SE, MA) {
    return getApplicativeMonoid(getApplicativeValidation(SE))(MA);
};
/**
 * Use [`getApplicativeValidation`](#getapplicativevalidation) and [`getAltValidation`](#getaltvalidation) instead.
 *
 * @category instances
 * @since 2.0.0
 * @deprecated
 */
function getValidation(SE) {
    var ap = getApplicativeValidation(SE).ap;
    var alt = getAltValidation(SE).alt;
    return {
        URI: URI,
        _E: undefined,
        map: _map,
        of: of,
        chain: _chain,
        bimap: _bimap,
        mapLeft: _mapLeft,
        reduce: _reduce,
        foldMap: _foldMap,
        reduceRight: _reduceRight,
        extend: _extend,
        traverse: _traverse,
        sequence: sequence,
        chainRec: _chainRec,
        throwError: throwError,
        ap: ap,
        alt: alt
    };
}

;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
function defineProperty_defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}
// EXTERNAL MODULE: ./node_modules/core-js-pure/stable/promise/index.js
var stable_promise = __webpack_require__(2436);
var promise_default = /*#__PURE__*/__webpack_require__.n(stable_promise);
;// CONCATENATED MODULE: ./src/util/gmapi/index.ts


function gmapi_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? gmapi_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : gmapi_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }



/* eslint-disable camelcase */

const gmapi_getValue = (name, def) => {
  var _GM;

  if ((_GM = GM) !== null && _GM !== void 0 && _GM.getValue) {
    return promise_default().resolve(GM.getValue(name, def));
  }

  if (GM_getValue) {
    return promise_default().resolve(GM_getValue(name, def));
  }

  return promise_default().resolve(def);
};
const setValue = (name, value) => {
  var _GM2;

  if ((_GM2 = GM) !== null && _GM2 !== void 0 && _GM2.setValue) {
    return promise_default().resolve(GM.setValue(name, value));
  }

  if (GM_setValue) {
    GM_setValue(name, value);
    return promise_default().resolve();
  }

  return promise_default().resolve();
};
class GMXMLError extends Error {
  constructor(m, res) {
    super(m);

    _defineProperty(this, "response", void 0);

    if (res) {
      this.response = res;
    }
  }

}
const got = params => {
  var _GM$xmlHttpRequest, _GM3;

  const api = (_GM$xmlHttpRequest = (_GM3 = GM) === null || _GM3 === void 0 ? void 0 : _GM3.xmlHttpRequest) !== null && _GM$xmlHttpRequest !== void 0 ? _GM$xmlHttpRequest : GM_xmlhttpRequest;

  if (!api) {
    throw new Error('not running in greasymonkey or tampermonkey enviroment');
  }

  return new (promise_default())(rs => {
    const option = _objectSpread({
      timeout: 10000,
      ontimeout: res => rs(Either_left({
        type: 'timeout',
        res
      })),
      onerror: res => rs(Either_left({
        type: 'error',
        res
      })),
      onload: res => {
        if (res.status < 200 || res.status >= 300) {
          rs(Either_left({
            type: 'statuscode',
            res
          }));
        }

        rs(Either_right(res));
      }
    }, params);

    api(option);
  });
};
const registerMenuCommand = (name, fn) => {
  if (GM_registerMenuCommand) {
    GM_registerMenuCommand(name, fn);
  }
};
;// CONCATENATED MODULE: ./src/assets/img/providerIcon/googleTranslate/type_1_translate_281759.svg
/* harmony default export */ const type_1_translate_281759 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M479 96H262.8l-22.5 87.1-8 57.2 43.3 120.9 7 146.6H479a33 33 0 0 0 32.9-33V129A33 33 0 0 0 479 96z\" fill=\"#e6e6e6\"/><path fill=\"#3a5bbc\" d=\"M368.7 416l-86.3 91.8L252 416l12.4-33.5z\"/><path d=\"M469.6 244.2v-20.9h-79.3v-29.2h-21v29.2H298v20.9h116a458.7 458.7 0 0 1-33 58c-14.2-17.6-23.1-30-23.2-30l-6.2-8.5-16.9 12.2 6.2 8.5c.4.6 10.8 15 27.3 35.3a800.7 800.7 0 0 1-42.6 47l14.7 14.7a861 861 0 0 0 41.4-45.3 836.8 836.8 0 0 0 47.9 52.5l7.4 7.4 14.7-14.8-7.4-7.4a828.1 828.1 0 0 1-49.6-54.8c22.1-31.8 36.5-62 42.2-74.8h32.8z\" fill=\"gray\"/><path d=\"M349.3 357.5l19.4 58.5H32.9A33 33 0 0 1 0 383V37.2a33 33 0 0 1 33-33h199.3L262.7 96l45.7 137.7 41 123.8z\" fill=\"#518ef8\"/><path d=\"M149.3 287.4A77.7 77.7 0 1 1 204.1 155l-14.7 14.7a56.8 56.8 0 1 0 15.6 50.5h-55.7v-20.8h77.6v10.4a77.7 77.7 0 0 1-77.6 77.6z\" fill=\"#fff\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/providerIcon/googleTranslate/type_3_google_814137.svg
/* harmony default export */ const type_3_google_814137 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M256 0C114.8 0 0 114.8 0 256s114.8 256 256 256 256-114.8 256-256S397.2 0 256 0z\" fill=\"#303c42\"/><path d=\"M21.3 256A235 235 0 0 1 204.1 27.3l147.6 442.8a233 233 0 0 1-95.7 20.6A235 235 0 0 1 21.3 256z\" fill=\"#42a5f5\"/><g fill=\"#fff\"><path d=\"M392.5 192c-5 17-19.6 45-39.6 70.4a142.9 142.9 0 0 1-23-31.7c-2.2-5.5-8.5-8.1-14-6-5.4 2.3-8 8.5-5.8 14 4.3 10.5 15.6 25.1 28.6 40-6.9 7.2-14 14-21.8 19.7L281.5 192h111z\"/><path d=\"M371 460.4l-47.1-141.2 2.3-1.2c9.3-6.6 18.2-15 26.7-23.9a980.5 980.5 0 0 0 45.2 44.4 10.6 10.6 0 0 0 15.1-.6c4-4.4 3.7-11.1-.7-15.1a973 973 0 0 1-45.4-44.7c24.3-30 42.4-64.3 47.3-86.1h23a10.7 10.7 0 1 0 0-21.3h-74.7V160a10.7 10.7 0 1 0-21.4 0v10.7h-67l-49-147.1c10-1.3 20.3-2.3 30.7-2.3A235 235 0 0 1 490.7 256c0 87.6-48.4 164-119.8 204.4zM245.3 245.3h-74.6a10.7 10.7 0 1 0 0 21.4h63a64.1 64.1 0 0 1-127-10.7 64 64 0 0 1 105.5-48.6 10.7 10.7 0 1 0 14-16.3A85.4 85.4 0 1 0 256 256c0-5.9-4.8-10.7-10.7-10.7z\"/></g><path d=\"M53.5 374A234.6 234.6 0 0 0 256 490.7c34 0 66.4-7.5 95.7-20.6l-21.4-64.3A233 233 0 0 1 53.5 374zM415.9 84.7c16 27.4 26.7 58.3 30.5 91.3 1 1.6 1.6 3.3 1.6 5.3 0 1.5-.3 3-.9 4.2.4 5.7.9 11.4.9 17.2 0 44.5-12.7 86-34.4 121.6a10.5 10.5 0 0 1-8.3 17c-.9 0-1.8-.2-2.7-.5a236.3 236.3 0 0 1-53.8 53.2l22.1 66.4a233.8 233.8 0 0 0 45-375.7z\" opacity=\".1\"/><linearGradient id=\"a\" gradientUnits=\"userSpaceOnUse\" x1=\"-45.6\" y1=\"639.6\" x2=\"-23.8\" y2=\"629.4\" gradientTransform=\"matrix(21.3333 0 0 -21.3333 996.3 13791.7)\"><stop offset=\"0\" stop-color=\"#fff\" stop-opacity=\".2\"/><stop offset=\"1\" stop-color=\"#fff\" stop-opacity=\"0\"/></linearGradient><path d=\"M256 0C114.8 0 0 114.8 0 256s114.8 256 256 256 256-114.8 256-256S397.2 0 256 0z\" fill=\"url(#a)\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/translate_2406387.svg
/* harmony default export */ const translate_2406387 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M56.6 73.2c-14 17.1-22.8 37.9-25.4 59.9-9.5 81.7-9.5 164.2 0 245.8 6.3 53.5 48.4 95.6 101.9 101.9 81.7 9.5 164.2 9.5 245.8 0 22-2.6 42.8-11.4 59.9-25.4L56.6 73.2z\" fill=\"#518ef8\"/><path d=\"M438 458.5c14-17.1 39.9-57.7 42.4-79.7 9.5-81.7 9.5-164.2 0-245.8-6.3-53.5-48.4-95.6-101.9-101.9-81.7-9.5-164.2-9.5-245.8 0-22 2.5-59.1 29.9-76.2 43.9L438 458.5z\" fill=\"#fff\"/><path d=\"M133.3 388H213l12.2 24.3 28.6-14.3-66.3-132.6h-28.6L92.5 398l28.6 14.3 12.2-24.3zm39.8-79.7L197 356h-47.7l23.8-47.7zm166.3-218v17.1h-50.3v32h9.2l36 42-40.7 47.6 24.3 20.8 37.6-43.8 37.6 43.8 24.3-20.8-40.8-47.6 36-42h9.2v-32h-50.3V90.3h-32.1zm16 66.5l-14.9-17.4h29.8l-14.9 17.4z\"/><path d=\"M496.8 131.2c-6.9-61-55-109.1-116-116-82.9-9.7-166.7-9.7-249.6 0-17.2 2-33.8 7.4-48.9 15.8l23.9 23.9c9.1-4 18.8-6.7 28.7-7.8 80.4-9.4 161.7-9.4 242.2 0 46.2 5.2 82.6 41.7 87.9 87.9 9.4 80.4 9.4 161.7 0 242.2-2.4 20.9-11.5 40.6-25.8 56L67.9 61.8c-6.2-6.2-16.4-6.2-22.6 0-.4.4-.7.8-1.1 1.2-16 19.5-26 43.1-29 68.2-9.7 82.9-9.7 166.7 0 249.6 6.9 61 55 109.1 116 116 82.9 9.7 166.7 9.7 249.6 0 60.8-7.2 108.8-55.2 116-116 9.7-82.9 9.7-166.7 0-249.6zM377.1 465c-80.4 9.4-161.7 9.4-242.2 0-46.2-5.2-82.6-41.7-87.9-87.9-9.4-80.4-9.4-161.7 0-242.2 1.5-12.9 5.5-25.4 11.9-36.8l355 355c-11.4 6.3-23.9 10.4-36.8 11.9z\"/></svg>");
;// CONCATENATED MODULE: ./src/assets/img/magnify_929469.svg
/* harmony default export */ const magnify_929469 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M295.3 361.5L432 498.3c18.3 18.3 47.9 18.3 66.2 0 18.3-18.3 18.3-47.9 0-66.2L361.5 295.3l-66.2 66.2z\" fill=\"#5a5a5a\"/><path d=\"M295.3 361.5l33.1-33.1 169.8 169.8c-18.3 18.3-47.9 18.3-66.2 0L295.3 361.5z\" fill=\"#444\"/><path d=\"M218.5 0c-60 0-115 24.5-154.5 64S0 158.5 0 218.5C0 339 98 437 218.5 437c60 0 115-24.5 154.5-64s64-94.5 64-154.5C437.1 98 339.1 0 218.5 0z\" fill=\"#00abe9\"/><path d=\"M64 64l309.1 309.1c-39.5 39.5-94.5 64-154.5 64C98 437.1 0 339.1 0 218.5c0-60 24.5-115 64-154.5z\" fill=\"#0095ff\"/><path d=\"M218.8 62.5c-43-.2-82.1 17.7-110.4 45.9-28.3 28.3-45.9 67.1-45.7 110.2-.2 85.9 70 156.1 156.1 156.1 42.8 0 81.9-17.4 110.2-45.7 28.3-28.3 45.9-67.6 45.9-110.4-.1-86.1-70.3-156.3-156.1-156.1z\" fill=\"#e7e7e7\"/><path d=\"M108.4 108.4l220.5 220.5c-28.3 28.3-67.3 45.7-110.2 45.7-86.1 0-156.3-70.2-156.1-156.1-.1-43 17.5-81.9 45.8-110.1z\" fill=\"#d3d3d8\"/></svg>");
;// CONCATENATED MODULE: ./src/constants/index.ts




var ICIBA_CIRCLE_ICON;

(function (ICIBA_CIRCLE_ICON) {
  ICIBA_CIRCLE_ICON["DEFAULT"] = "default";
  ICIBA_CIRCLE_ICON["GOOGLE_TRANSLATE_SQUARE"] = "gtsquare";
  ICIBA_CIRCLE_ICON["GOOGLE_TRANSLATE_CIRCLE"] = "gtcircle";
  ICIBA_CIRCLE_ICON["GOOGLE_TRANSLATE_TEXT"] = "gttext";
  ICIBA_CIRCLE_ICON["MAG_ICON"] = "icondic";
})(ICIBA_CIRCLE_ICON || (ICIBA_CIRCLE_ICON = {}));

const ICIBA_CIRCLE_ICON_MAP = {
  [ICIBA_CIRCLE_ICON.DEFAULT]: '',
  [ICIBA_CIRCLE_ICON.GOOGLE_TRANSLATE_SQUARE]: type_1_translate_281759,
  [ICIBA_CIRCLE_ICON.GOOGLE_TRANSLATE_CIRCLE]: type_3_google_814137,
  [ICIBA_CIRCLE_ICON.GOOGLE_TRANSLATE_TEXT]: translate_2406387,
  [ICIBA_CIRCLE_ICON.MAG_ICON]: magnify_929469
};
const ICIBA_CIRCLE_ICON_TYPE_MAP = {
  [ICIBA_CIRCLE_ICON.DEFAULT]: 'circle',
  [ICIBA_CIRCLE_ICON.GOOGLE_TRANSLATE_SQUARE]: 'square',
  [ICIBA_CIRCLE_ICON.GOOGLE_TRANSLATE_CIRCLE]: 'circle',
  [ICIBA_CIRCLE_ICON.GOOGLE_TRANSLATE_TEXT]: 'square',
  [ICIBA_CIRCLE_ICON.MAG_ICON]: 'square'
};
var GM_STORE_KEY;

(function (GM_STORE_KEY) {
  GM_STORE_KEY["STORE"] = "iciba_store";
  GM_STORE_KEY["SOUGOU_SECCODE"] = "sougou_seccode";
  GM_STORE_KEY["HISTORY"] = "history";
})(GM_STORE_KEY || (GM_STORE_KEY = {}));
;// CONCATENATED MODULE: ./node_modules/io-ts/es6/index.js
var __extends = (undefined && undefined.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __assign = (undefined && undefined.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
    for (var r = Array(s), k = 0, i = 0; i < il; i++)
        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
            r[k] = a[j];
    return r;
};
/**
 * @since 1.0.0
 */

/**
 * @category Decode error
 * @since 1.0.0
 */
var failures = Either_left;
/**
 * @category Decode error
 * @since 1.0.0
 */
var failure = function (value, context, message) {
    return failures([{ value: value, context: context, message: message }]);
};
/**
 * @category Decode error
 * @since 1.0.0
 */
var success = Either_right;
/**
 * @category Codec
 * @since 1.0.0
 */
var Type = /** @class */ (function () {
    function Type(
    /** a unique name for this codec */
    name, 
    /** a custom type guard */
    is, 
    /** succeeds if a value of type I can be decoded to a value of type A */
    validate, 
    /** converts a value of type A to a value of type O */
    encode) {
        this.name = name;
        this.is = is;
        this.validate = validate;
        this.encode = encode;
        this.decode = this.decode.bind(this);
    }
    /**
     * @since 1.0.0
     */
    Type.prototype.pipe = function (ab, name) {
        var _this = this;
        if (name === void 0) { name = "pipe(" + this.name + ", " + ab.name + ")"; }
        return new Type(name, ab.is, function (i, c) {
            var e = _this.validate(i, c);
            if (Either_isLeft(e)) {
                return e;
            }
            return ab.validate(e.right, c);
        }, this.encode === es6_identity && ab.encode === es6_identity ? es6_identity : function (b) { return _this.encode(ab.encode(b)); });
    };
    /**
     * @since 1.0.0
     */
    Type.prototype.asDecoder = function () {
        return this;
    };
    /**
     * @since 1.0.0
     */
    Type.prototype.asEncoder = function () {
        return this;
    };
    /**
     * a version of `validate` with a default context
     * @since 1.0.0
     */
    Type.prototype.decode = function (i) {
        return this.validate(i, [{ key: '', type: this, actual: i }]);
    };
    return Type;
}());

// -------------------------------------------------------------------------------------
// utils
// -------------------------------------------------------------------------------------
/**
 * @since 1.0.0
 */
var es6_identity = function (a) { return a; };
/**
 * @since 1.0.0
 */
function getFunctionName(f) {
    return f.displayName || f.name || "<function" + f.length + ">";
}
/**
 * @since 1.0.0
 */
function getContextEntry(key, decoder) {
    return { key: key, type: decoder };
}
/**
 * @since 1.0.0
 */
function appendContext(c, key, decoder, actual) {
    var len = c.length;
    var r = Array(len + 1);
    for (var i = 0; i < len; i++) {
        r[i] = c[i];
    }
    r[len] = { key: key, type: decoder, actual: actual };
    return r;
}
function pushAll(xs, ys) {
    var l = ys.length;
    for (var i = 0; i < l; i++) {
        xs.push(ys[i]);
    }
}
var es6_hasOwnProperty = Object.prototype.hasOwnProperty;
function getNameFromProps(props) {
    return Object.keys(props)
        .map(function (k) { return k + ": " + props[k].name; })
        .join(', ');
}
function useIdentity(codecs) {
    for (var i = 0; i < codecs.length; i++) {
        if (codecs[i].encode !== es6_identity) {
            return false;
        }
    }
    return true;
}
function getInterfaceTypeName(props) {
    return "{ " + getNameFromProps(props) + " }";
}
function getPartialTypeName(inner) {
    return "Partial<" + inner + ">";
}
function enumerableRecord(keys, domain, codomain, name) {
    if (name === void 0) { name = "{ [K in " + domain.name + "]: " + codomain.name + " }"; }
    var len = keys.length;
    return new DictionaryType(name, function (u) { return UnknownRecord.is(u) && keys.every(function (k) { return codomain.is(u[k]); }); }, function (u, c) {
        var e = UnknownRecord.validate(u, c);
        if (isLeft(e)) {
            return e;
        }
        var o = e.right;
        var a = {};
        var errors = [];
        var changed = false;
        for (var i = 0; i < len; i++) {
            var k = keys[i];
            var ok = o[k];
            var codomainResult = codomain.validate(ok, appendContext(c, k, codomain, ok));
            if (isLeft(codomainResult)) {
                pushAll(errors, codomainResult.left);
            }
            else {
                var vok = codomainResult.right;
                changed = changed || vok !== ok;
                a[k] = vok;
            }
        }
        return errors.length > 0 ? failures(errors) : success((changed || Object.keys(o).length !== len ? a : o));
    }, codomain.encode === es6_identity
        ? es6_identity
        : function (a) {
            var s = {};
            for (var i = 0; i < len; i++) {
                var k = keys[i];
                s[k] = codomain.encode(a[k]);
            }
            return s;
        }, domain, codomain);
}
/**
 * @internal
 */
function getDomainKeys(domain) {
    var _a;
    if (isLiteralC(domain)) {
        var literal_1 = domain.value;
        if (string.is(literal_1)) {
            return _a = {}, _a[literal_1] = null, _a;
        }
    }
    else if (isKeyofC(domain)) {
        return domain.keys;
    }
    else if (isUnionC(domain)) {
        var keys = domain.types.map(function (type) { return getDomainKeys(type); });
        return keys.some(undefinedType.is) ? undefined : Object.assign.apply(Object, __spreadArrays([{}], keys));
    }
    return undefined;
}
function nonEnumerableRecord(domain, codomain, name) {
    if (name === void 0) { name = "{ [K in " + domain.name + "]: " + codomain.name + " }"; }
    return new DictionaryType(name, function (u) {
        if (UnknownRecord.is(u)) {
            return Object.keys(u).every(function (k) { return domain.is(k) && codomain.is(u[k]); });
        }
        return isAnyC(codomain) && Array.isArray(u);
    }, function (u, c) {
        if (UnknownRecord.is(u)) {
            var a = {};
            var errors = [];
            var keys = Object.keys(u);
            var len = keys.length;
            var changed = false;
            for (var i = 0; i < len; i++) {
                var k = keys[i];
                var ok = u[k];
                var domainResult = domain.validate(k, appendContext(c, k, domain, k));
                if (isLeft(domainResult)) {
                    pushAll(errors, domainResult.left);
                }
                else {
                    var vk = domainResult.right;
                    changed = changed || vk !== k;
                    k = vk;
                    var codomainResult = codomain.validate(ok, appendContext(c, k, codomain, ok));
                    if (isLeft(codomainResult)) {
                        pushAll(errors, codomainResult.left);
                    }
                    else {
                        var vok = codomainResult.right;
                        changed = changed || vok !== ok;
                        a[k] = vok;
                    }
                }
            }
            return errors.length > 0 ? failures(errors) : success((changed ? a : u));
        }
        if (isAnyC(codomain) && Array.isArray(u)) {
            return success(u);
        }
        return failure(u, c);
    }, domain.encode === es6_identity && codomain.encode === es6_identity
        ? es6_identity
        : function (a) {
            var s = {};
            var keys = Object.keys(a);
            var len = keys.length;
            for (var i = 0; i < len; i++) {
                var k = keys[i];
                s[String(domain.encode(k))] = codomain.encode(a[k]);
            }
            return s;
        }, domain, codomain);
}
function getUnionName(codecs) {
    return '(' + codecs.map(function (type) { return type.name; }).join(' | ') + ')';
}
/**
 * @internal
 */
function mergeAll(base, us) {
    var equal = true;
    var primitive = true;
    var baseIsNotADictionary = !UnknownRecord.is(base);
    for (var _i = 0, us_1 = us; _i < us_1.length; _i++) {
        var u = us_1[_i];
        if (u !== base) {
            equal = false;
        }
        if (UnknownRecord.is(u)) {
            primitive = false;
        }
    }
    if (equal) {
        return base;
    }
    else if (primitive) {
        return us[us.length - 1];
    }
    var r = {};
    for (var _a = 0, us_2 = us; _a < us_2.length; _a++) {
        var u = us_2[_a];
        for (var k in u) {
            if (!r.hasOwnProperty(k) || baseIsNotADictionary || u[k] !== base[k]) {
                r[k] = u[k];
            }
        }
    }
    return r;
}
function getProps(codec) {
    switch (codec._tag) {
        case 'RefinementType':
        case 'ReadonlyType':
            return getProps(codec.type);
        case 'InterfaceType':
        case 'StrictType':
        case 'PartialType':
            return codec.props;
        case 'IntersectionType':
            return codec.types.reduce(function (props, type) { return Object.assign(props, getProps(type)); }, {});
    }
}
function stripKeys(o, props) {
    var keys = Object.getOwnPropertyNames(o);
    var shouldStrip = false;
    var r = {};
    for (var i = 0; i < keys.length; i++) {
        var key = keys[i];
        if (!es6_hasOwnProperty.call(props, key)) {
            shouldStrip = true;
        }
        else {
            r[key] = o[key];
        }
    }
    return shouldStrip ? r : o;
}
function getExactTypeName(codec) {
    if (isTypeC(codec)) {
        return "{| " + getNameFromProps(codec.props) + " |}";
    }
    else if (isPartialC(codec)) {
        return getPartialTypeName("{| " + getNameFromProps(codec.props) + " |}");
    }
    return "Exact<" + codec.name + ">";
}
function es6_isNonEmpty(as) {
    return as.length > 0;
}
/**
 * @internal
 */
var emptyTags = {};
function intersect(a, b) {
    var r = [];
    for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {
        var v = a_1[_i];
        if (b.indexOf(v) !== -1) {
            r.push(v);
        }
    }
    return r;
}
function mergeTags(a, b) {
    if (a === emptyTags) {
        return b;
    }
    if (b === emptyTags) {
        return a;
    }
    var r = Object.assign({}, a);
    for (var k in b) {
        if (a.hasOwnProperty(k)) {
            var intersection_1 = intersect(a[k], b[k]);
            if (es6_isNonEmpty(intersection_1)) {
                r[k] = intersection_1;
            }
            else {
                r = emptyTags;
                break;
            }
        }
        else {
            r[k] = b[k];
        }
    }
    return r;
}
function intersectTags(a, b) {
    if (a === emptyTags || b === emptyTags) {
        return emptyTags;
    }
    var r = emptyTags;
    for (var k in a) {
        if (b.hasOwnProperty(k)) {
            var intersection_2 = intersect(a[k], b[k]);
            if (intersection_2.length === 0) {
                if (r === emptyTags) {
                    r = {};
                }
                r[k] = a[k].concat(b[k]);
            }
        }
    }
    return r;
}
// tslint:disable-next-line: deprecation
function isAnyC(codec) {
    return codec._tag === 'AnyType';
}
function isLiteralC(codec) {
    return codec._tag === 'LiteralType';
}
function isKeyofC(codec) {
    return codec._tag === 'KeyofType';
}
function isTypeC(codec) {
    return codec._tag === 'InterfaceType';
}
function isPartialC(codec) {
    return codec._tag === 'PartialType';
}
// tslint:disable-next-line: deprecation
function isStrictC(codec) {
    return codec._tag === 'StrictType';
}
function isExactC(codec) {
    return codec._tag === 'ExactType';
}
// tslint:disable-next-line: deprecation
function isRefinementC(codec) {
    return codec._tag === 'RefinementType';
}
function isIntersectionC(codec) {
    return codec._tag === 'IntersectionType';
}
function isUnionC(codec) {
    return codec._tag === 'UnionType';
}
function isRecursiveC(codec) {
    return codec._tag === 'RecursiveType';
}
var lazyCodecs = (/* unused pure expression or super */ null && ([]));
/**
 * @internal
 */
function getTags(codec) {
    if (lazyCodecs.indexOf(codec) !== -1) {
        return emptyTags;
    }
    if (isTypeC(codec) || isStrictC(codec)) {
        var index = emptyTags;
        // tslint:disable-next-line: forin
        for (var k in codec.props) {
            var prop = codec.props[k];
            if (isLiteralC(prop)) {
                if (index === emptyTags) {
                    index = {};
                }
                index[k] = [prop.value];
            }
        }
        return index;
    }
    else if (isExactC(codec) || isRefinementC(codec)) {
        return getTags(codec.type);
    }
    else if (isIntersectionC(codec)) {
        return codec.types.reduce(function (tags, codec) { return mergeTags(tags, getTags(codec)); }, emptyTags);
    }
    else if (isUnionC(codec)) {
        return codec.types.slice(1).reduce(function (tags, codec) { return intersectTags(tags, getTags(codec)); }, getTags(codec.types[0]));
    }
    else if (isRecursiveC(codec)) {
        lazyCodecs.push(codec);
        var tags = getTags(codec.type);
        lazyCodecs.pop();
        return tags;
    }
    return emptyTags;
}
/**
 * @internal
 */
function getIndex(codecs) {
    var tags = getTags(codecs[0]);
    var keys = Object.keys(tags);
    var len = codecs.length;
    var _loop_1 = function (k) {
        var all = tags[k].slice();
        var index = [tags[k]];
        for (var i = 1; i < len; i++) {
            var codec = codecs[i];
            var ctags = getTags(codec);
            var values = ctags[k];
            // tslint:disable-next-line: strict-type-predicates
            if (values === undefined) {
                return "continue-keys";
            }
            else {
                if (values.some(function (v) { return all.indexOf(v) !== -1; })) {
                    return "continue-keys";
                }
                else {
                    all.push.apply(all, values);
                    index.push(values);
                }
            }
        }
        return { value: [k, index] };
    };
    keys: for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
        var k = keys_1[_i];
        var state_1 = _loop_1(k);
        if (typeof state_1 === "object")
            return state_1.value;
        switch (state_1) {
            case "continue-keys": continue keys;
        }
    }
    return undefined;
}
// -------------------------------------------------------------------------------------
// primitives
// -------------------------------------------------------------------------------------
/**
 * @since 1.0.0
 */
var NullType = /** @class */ (function (_super) {
    __extends(NullType, _super);
    function NullType() {
        var _this = _super.call(this, 'null', function (u) { return u === null; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, es6_identity) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'NullType';
        return _this;
    }
    return NullType;
}(Type));

/**
 * @category primitives
 * @since 1.0.0
 */
var nullType = new NullType();
/**
 * @since 1.0.0
 */
var UndefinedType = /** @class */ (function (_super) {
    __extends(UndefinedType, _super);
    function UndefinedType() {
        var _this = _super.call(this, 'undefined', function (u) { return u === void 0; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, es6_identity) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'UndefinedType';
        return _this;
    }
    return UndefinedType;
}(Type));

var undefinedType = new UndefinedType();
/**
 * @since 1.2.0
 */
var VoidType = /** @class */ (function (_super) {
    __extends(VoidType, _super);
    function VoidType() {
        var _this = _super.call(this, 'void', undefinedType.is, undefinedType.validate, es6_identity) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'VoidType';
        return _this;
    }
    return VoidType;
}(Type));

/**
 * @category primitives
 * @since 1.2.0
 */
var voidType = new VoidType();
/**
 * @since 1.5.0
 */
var UnknownType = /** @class */ (function (_super) {
    __extends(UnknownType, _super);
    function UnknownType() {
        var _this = _super.call(this, 'unknown', function (_) { return true; }, success, es6_identity) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'UnknownType';
        return _this;
    }
    return UnknownType;
}(Type));

/**
 * @category primitives
 * @since 1.5.0
 */
var unknown = new UnknownType();
/**
 * @since 1.0.0
 */
var StringType = /** @class */ (function (_super) {
    __extends(StringType, _super);
    function StringType() {
        var _this = _super.call(this, 'string', function (u) { return typeof u === 'string'; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, es6_identity) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'StringType';
        return _this;
    }
    return StringType;
}(Type));

/**
 * @category primitives
 * @since 1.0.0
 */
var string = new StringType();
/**
 * @since 1.0.0
 */
var NumberType = /** @class */ (function (_super) {
    __extends(NumberType, _super);
    function NumberType() {
        var _this = _super.call(this, 'number', function (u) { return typeof u === 'number'; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, es6_identity) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'NumberType';
        return _this;
    }
    return NumberType;
}(Type));

/**
 * @category primitives
 * @since 1.0.0
 */
var number = new NumberType();
/**
 * @since 2.1.0
 */
var BigIntType = /** @class */ (function (_super) {
    __extends(BigIntType, _super);
    function BigIntType() {
        var _this = _super.call(this, 'bigint', 
        // tslint:disable-next-line: valid-typeof
        function (u) { return typeof u === 'bigint'; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, es6_identity) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'BigIntType';
        return _this;
    }
    return BigIntType;
}(Type));

/**
 * @category primitives
 * @since 2.1.0
 */
var bigint = new BigIntType();
/**
 * @since 1.0.0
 */
var BooleanType = /** @class */ (function (_super) {
    __extends(BooleanType, _super);
    function BooleanType() {
        var _this = _super.call(this, 'boolean', function (u) { return typeof u === 'boolean'; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, es6_identity) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'BooleanType';
        return _this;
    }
    return BooleanType;
}(Type));

/**
 * @category primitives
 * @since 1.0.0
 */
var es6_boolean = new BooleanType();
/**
 * @since 1.0.0
 */
var AnyArrayType = /** @class */ (function (_super) {
    __extends(AnyArrayType, _super);
    function AnyArrayType() {
        var _this = _super.call(this, 'UnknownArray', Array.isArray, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, es6_identity) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'AnyArrayType';
        return _this;
    }
    return AnyArrayType;
}(Type));

/**
 * @category primitives
 * @since 1.7.1
 */
var UnknownArray = new AnyArrayType();
/**
 * @since 1.0.0
 */
var AnyDictionaryType = /** @class */ (function (_super) {
    __extends(AnyDictionaryType, _super);
    function AnyDictionaryType() {
        var _this = _super.call(this, 'UnknownRecord', function (u) {
            var s = Object.prototype.toString.call(u);
            return s === '[object Object]' || s === '[object Window]';
        }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, es6_identity) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'AnyDictionaryType';
        return _this;
    }
    return AnyDictionaryType;
}(Type));

/**
 * @category primitives
 * @since 1.7.1
 */
var UnknownRecord = new AnyDictionaryType();

/**
 * @since 1.0.0
 */
var LiteralType = /** @class */ (function (_super) {
    __extends(LiteralType, _super);
    function LiteralType(name, is, validate, encode, value) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.value = value;
        /**
         * @since 1.0.0
         */
        _this._tag = 'LiteralType';
        return _this;
    }
    return LiteralType;
}(Type));

/**
 * @category constructors
 * @since 1.0.0
 */
function literal(value, name) {
    if (name === void 0) { name = (__webpack_require__(8334)/* .stringify */ .P)(value); }
    var is = function (u) { return u === value; };
    return new LiteralType(name, is, function (u, c) { return (is(u) ? success(value) : failure(u, c)); }, es6_identity, value);
}
/**
 * @since 1.0.0
 */
var KeyofType = /** @class */ (function (_super) {
    __extends(KeyofType, _super);
    function KeyofType(name, is, validate, encode, keys) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.keys = keys;
        /**
         * @since 1.0.0
         */
        _this._tag = 'KeyofType';
        return _this;
    }
    return KeyofType;
}(Type));

/**
 * @category constructors
 * @since 1.0.0
 */
function keyof(keys, name) {
    if (name === void 0) { name = Object.keys(keys)
        .map(function (k) { return JSON.stringify(k); })
        .join(' | '); }
    var is = function (u) { return string.is(u) && es6_hasOwnProperty.call(keys, u); };
    return new KeyofType(name, is, function (u, c) { return (is(u) ? success(u) : failure(u, c)); }, es6_identity, keys);
}
// -------------------------------------------------------------------------------------
// combinators
// -------------------------------------------------------------------------------------
/**
 * @since 1.0.0
 */
var RefinementType = /** @class */ (function (_super) {
    __extends(RefinementType, _super);
    function RefinementType(name, is, validate, encode, type, predicate) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.type = type;
        _this.predicate = predicate;
        /**
         * @since 1.0.0
         */
        _this._tag = 'RefinementType';
        return _this;
    }
    return RefinementType;
}(Type));

/**
 * @category combinators
 * @since 1.8.1
 */
function brand(codec, predicate, name) {
    // tslint:disable-next-line: deprecation
    return refinement(codec, predicate, name);
}
/**
 * A branded codec representing an integer
 *
 * @category primitives
 * @since 1.8.1
 */
var Int = brand(number, function (n) { return Number.isInteger(n); }, 'Int');
/**
 * @since 1.0.0
 */
var RecursiveType = /** @class */ (function (_super) {
    __extends(RecursiveType, _super);
    function RecursiveType(name, is, validate, encode, runDefinition) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.runDefinition = runDefinition;
        /**
         * @since 1.0.0
         */
        _this._tag = 'RecursiveType';
        return _this;
    }
    return RecursiveType;
}(Type));

Object.defineProperty(RecursiveType.prototype, 'type', {
    get: function () {
        return this.runDefinition();
    },
    enumerable: true,
    configurable: true
});
/**
 * @category combinators
 * @since 1.0.0
 */
function recursion(name, definition) {
    var cache;
    var runDefinition = function () {
        if (!cache) {
            cache = definition(Self);
            cache.name = name;
        }
        return cache;
    };
    var Self = new RecursiveType(name, function (u) { return runDefinition().is(u); }, function (u, c) { return runDefinition().validate(u, c); }, function (a) { return runDefinition().encode(a); }, runDefinition);
    return Self;
}
/**
 * @since 1.0.0
 */
var ArrayType = /** @class */ (function (_super) {
    __extends(ArrayType, _super);
    function ArrayType(name, is, validate, encode, type) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.type = type;
        /**
         * @since 1.0.0
         */
        _this._tag = 'ArrayType';
        return _this;
    }
    return ArrayType;
}(Type));

/**
 * @category combinators
 * @since 1.0.0
 */
function array(item, name) {
    if (name === void 0) { name = "Array<" + item.name + ">"; }
    return new ArrayType(name, function (u) { return UnknownArray.is(u) && u.every(item.is); }, function (u, c) {
        var e = UnknownArray.validate(u, c);
        if (Either_isLeft(e)) {
            return e;
        }
        var us = e.right;
        var len = us.length;
        var as = us;
        var errors = [];
        for (var i = 0; i < len; i++) {
            var ui = us[i];
            var result = item.validate(ui, appendContext(c, String(i), item, ui));
            if (Either_isLeft(result)) {
                pushAll(errors, result.left);
            }
            else {
                var ai = result.right;
                if (ai !== ui) {
                    if (as === us) {
                        as = us.slice();
                    }
                    as[i] = ai;
                }
            }
        }
        return errors.length > 0 ? failures(errors) : success(as);
    }, item.encode === es6_identity ? es6_identity : function (a) { return a.map(item.encode); }, item);
}
/**
 * @since 1.0.0
 */
var InterfaceType = /** @class */ (function (_super) {
    __extends(InterfaceType, _super);
    function InterfaceType(name, is, validate, encode, props) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.props = props;
        /**
         * @since 1.0.0
         */
        _this._tag = 'InterfaceType';
        return _this;
    }
    return InterfaceType;
}(Type));

/**
 * @category combinators
 * @since 1.0.0
 */
function type(props, name) {
    if (name === void 0) { name = getInterfaceTypeName(props); }
    var keys = Object.keys(props);
    var types = keys.map(function (key) { return props[key]; });
    var len = keys.length;
    return new InterfaceType(name, function (u) {
        if (UnknownRecord.is(u)) {
            for (var i = 0; i < len; i++) {
                var k = keys[i];
                var uk = u[k];
                if ((uk === undefined && !es6_hasOwnProperty.call(u, k)) || !types[i].is(uk)) {
                    return false;
                }
            }
            return true;
        }
        return false;
    }, function (u, c) {
        var e = UnknownRecord.validate(u, c);
        if (Either_isLeft(e)) {
            return e;
        }
        var o = e.right;
        var a = o;
        var errors = [];
        for (var i = 0; i < len; i++) {
            var k = keys[i];
            var ak = a[k];
            var type_1 = types[i];
            var result = type_1.validate(ak, appendContext(c, k, type_1, ak));
            if (Either_isLeft(result)) {
                pushAll(errors, result.left);
            }
            else {
                var vak = result.right;
                if (vak !== ak || (vak === undefined && !es6_hasOwnProperty.call(a, k))) {
                    /* istanbul ignore next */
                    if (a === o) {
                        a = __assign({}, o);
                    }
                    a[k] = vak;
                }
            }
        }
        return errors.length > 0 ? failures(errors) : success(a);
    }, useIdentity(types)
        ? es6_identity
        : function (a) {
            var s = __assign({}, a);
            for (var i = 0; i < len; i++) {
                var k = keys[i];
                var encode = types[i].encode;
                if (encode !== es6_identity) {
                    s[k] = encode(a[k]);
                }
            }
            return s;
        }, props);
}
/**
 * @since 1.0.0
 */
var PartialType = /** @class */ (function (_super) {
    __extends(PartialType, _super);
    function PartialType(name, is, validate, encode, props) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.props = props;
        /**
         * @since 1.0.0
         */
        _this._tag = 'PartialType';
        return _this;
    }
    return PartialType;
}(Type));

/**
 * @category combinators
 * @since 1.0.0
 */
function partial(props, name) {
    if (name === void 0) { name = getPartialTypeName(getInterfaceTypeName(props)); }
    var keys = Object.keys(props);
    var types = keys.map(function (key) { return props[key]; });
    var len = keys.length;
    return new PartialType(name, function (u) {
        if (UnknownRecord.is(u)) {
            for (var i = 0; i < len; i++) {
                var k = keys[i];
                var uk = u[k];
                if (uk !== undefined && !props[k].is(uk)) {
                    return false;
                }
            }
            return true;
        }
        return false;
    }, function (u, c) {
        var e = UnknownRecord.validate(u, c);
        if (isLeft(e)) {
            return e;
        }
        var o = e.right;
        var a = o;
        var errors = [];
        for (var i = 0; i < len; i++) {
            var k = keys[i];
            var ak = a[k];
            var type_2 = props[k];
            var result = type_2.validate(ak, appendContext(c, k, type_2, ak));
            if (isLeft(result)) {
                if (ak !== undefined) {
                    pushAll(errors, result.left);
                }
            }
            else {
                var vak = result.right;
                if (vak !== ak) {
                    /* istanbul ignore next */
                    if (a === o) {
                        a = __assign({}, o);
                    }
                    a[k] = vak;
                }
            }
        }
        return errors.length > 0 ? failures(errors) : success(a);
    }, useIdentity(types)
        ? es6_identity
        : function (a) {
            var s = __assign({}, a);
            for (var i = 0; i < len; i++) {
                var k = keys[i];
                var ak = a[k];
                if (ak !== undefined) {
                    s[k] = types[i].encode(ak);
                }
            }
            return s;
        }, props);
}
/**
 * @since 1.0.0
 */
var DictionaryType = /** @class */ (function (_super) {
    __extends(DictionaryType, _super);
    function DictionaryType(name, is, validate, encode, domain, codomain) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.domain = domain;
        _this.codomain = codomain;
        /**
         * @since 1.0.0
         */
        _this._tag = 'DictionaryType';
        return _this;
    }
    return DictionaryType;
}(Type));

/**
 * @category combinators
 * @since 1.7.1
 */
function record(domain, codomain, name) {
    var keys = getDomainKeys(domain);
    return keys
        ? enumerableRecord(Object.keys(keys), domain, codomain, name)
        : nonEnumerableRecord(domain, codomain, name);
}
/**
 * @since 1.0.0
 */
var UnionType = /** @class */ (function (_super) {
    __extends(UnionType, _super);
    function UnionType(name, is, validate, encode, types) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.types = types;
        /**
         * @since 1.0.0
         */
        _this._tag = 'UnionType';
        return _this;
    }
    return UnionType;
}(Type));

/**
 * @category combinators
 * @since 1.0.0
 */
function union(codecs, name) {
    if (name === void 0) { name = getUnionName(codecs); }
    var index = getIndex(codecs);
    if (index !== undefined && codecs.length > 0) {
        var tag_1 = index[0], groups_1 = index[1];
        var len_1 = groups_1.length;
        var find_1 = function (value) {
            for (var i = 0; i < len_1; i++) {
                if (groups_1[i].indexOf(value) !== -1) {
                    return i;
                }
            }
            return undefined;
        };
        // tslint:disable-next-line: deprecation
        return new TaggedUnionType(name, function (u) {
            if (UnknownRecord.is(u)) {
                var i = find_1(u[tag_1]);
                return i !== undefined ? codecs[i].is(u) : false;
            }
            return false;
        }, function (u, c) {
            var e = UnknownRecord.validate(u, c);
            if (isLeft(e)) {
                return e;
            }
            var r = e.right;
            var i = find_1(r[tag_1]);
            if (i === undefined) {
                return failure(u, c);
            }
            var codec = codecs[i];
            return codec.validate(r, appendContext(c, String(i), codec, r));
        }, useIdentity(codecs)
            ? es6_identity
            : function (a) {
                var i = find_1(a[tag_1]);
                if (i === undefined) {
                    // https://github.com/gcanti/io-ts/pull/305
                    throw new Error("no codec found to encode value in union codec " + name);
                }
                else {
                    return codecs[i].encode(a);
                }
            }, codecs, tag_1);
    }
    else {
        return new UnionType(name, function (u) { return codecs.some(function (type) { return type.is(u); }); }, function (u, c) {
            var errors = [];
            for (var i = 0; i < codecs.length; i++) {
                var codec = codecs[i];
                var result = codec.validate(u, appendContext(c, String(i), codec, u));
                if (isLeft(result)) {
                    pushAll(errors, result.left);
                }
                else {
                    return success(result.right);
                }
            }
            return failures(errors);
        }, useIdentity(codecs)
            ? es6_identity
            : function (a) {
                for (var _i = 0, codecs_1 = codecs; _i < codecs_1.length; _i++) {
                    var codec = codecs_1[_i];
                    if (codec.is(a)) {
                        return codec.encode(a);
                    }
                }
                // https://github.com/gcanti/io-ts/pull/305
                throw new Error("no codec found to encode value in union type " + name);
            }, codecs);
    }
}
/**
 * @since 1.0.0
 */
var IntersectionType = /** @class */ (function (_super) {
    __extends(IntersectionType, _super);
    function IntersectionType(name, is, validate, encode, types) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.types = types;
        /**
         * @since 1.0.0
         */
        _this._tag = 'IntersectionType';
        return _this;
    }
    return IntersectionType;
}(Type));

function intersection(codecs, name) {
    if (name === void 0) { name = "(" + codecs.map(function (type) { return type.name; }).join(' & ') + ")"; }
    var len = codecs.length;
    return new IntersectionType(name, function (u) { return codecs.every(function (type) { return type.is(u); }); }, codecs.length === 0
        ? success
        : function (u, c) {
            var us = [];
            var errors = [];
            for (var i = 0; i < len; i++) {
                var codec = codecs[i];
                var result = codec.validate(u, appendContext(c, String(i), codec, u));
                if (isLeft(result)) {
                    pushAll(errors, result.left);
                }
                else {
                    us.push(result.right);
                }
            }
            return errors.length > 0 ? failures(errors) : success(mergeAll(u, us));
        }, codecs.length === 0
        ? es6_identity
        : function (a) {
            return mergeAll(a, codecs.map(function (codec) { return codec.encode(a); }));
        }, codecs);
}
/**
 * @since 1.0.0
 */
var TupleType = /** @class */ (function (_super) {
    __extends(TupleType, _super);
    function TupleType(name, is, validate, encode, types) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.types = types;
        /**
         * @since 1.0.0
         */
        _this._tag = 'TupleType';
        return _this;
    }
    return TupleType;
}(Type));

function es6_tuple(codecs, name) {
    if (name === void 0) { name = "[" + codecs.map(function (type) { return type.name; }).join(', ') + "]"; }
    var len = codecs.length;
    return new TupleType(name, function (u) { return UnknownArray.is(u) && u.length === len && codecs.every(function (type, i) { return type.is(u[i]); }); }, function (u, c) {
        var e = UnknownArray.validate(u, c);
        if (isLeft(e)) {
            return e;
        }
        var us = e.right;
        var as = us.length > len ? us.slice(0, len) : us; // strip additional components
        var errors = [];
        for (var i = 0; i < len; i++) {
            var a = us[i];
            var type_3 = codecs[i];
            var result = type_3.validate(a, appendContext(c, String(i), type_3, a));
            if (isLeft(result)) {
                pushAll(errors, result.left);
            }
            else {
                var va = result.right;
                if (va !== a) {
                    /* istanbul ignore next */
                    if (as === us) {
                        as = us.slice();
                    }
                    as[i] = va;
                }
            }
        }
        return errors.length > 0 ? failures(errors) : success(as);
    }, useIdentity(codecs) ? es6_identity : function (a) { return codecs.map(function (type, i) { return type.encode(a[i]); }); }, codecs);
}
/**
 * @since 1.0.0
 */
var ReadonlyType = /** @class */ (function (_super) {
    __extends(ReadonlyType, _super);
    function ReadonlyType(name, is, validate, encode, type) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.type = type;
        /**
         * @since 1.0.0
         */
        _this._tag = 'ReadonlyType';
        return _this;
    }
    return ReadonlyType;
}(Type));

/**
 * @category combinators
 * @since 1.0.0
 */
function es6_readonly(codec, name) {
    if (name === void 0) { name = "Readonly<" + codec.name + ">"; }
    return new ReadonlyType(name, codec.is, codec.validate, codec.encode, codec);
}
/**
 * @since 1.0.0
 */
var ReadonlyArrayType = /** @class */ (function (_super) {
    __extends(ReadonlyArrayType, _super);
    function ReadonlyArrayType(name, is, validate, encode, type) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.type = type;
        /**
         * @since 1.0.0
         */
        _this._tag = 'ReadonlyArrayType';
        return _this;
    }
    return ReadonlyArrayType;
}(Type));

/**
 * @category combinators
 * @since 1.0.0
 */
function readonlyArray(item, name) {
    if (name === void 0) { name = "ReadonlyArray<" + item.name + ">"; }
    var codec = array(item);
    return new ReadonlyArrayType(name, codec.is, codec.validate, codec.encode, item);
}
/**
 * Strips additional properties, equivalent to `exact(type(props))`.
 *
 * @category combinators
 * @since 1.0.0
 */
var strict = function (props, name) { return exact(type(props), name); };
/**
 * @since 1.1.0
 */
var ExactType = /** @class */ (function (_super) {
    __extends(ExactType, _super);
    function ExactType(name, is, validate, encode, type) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.type = type;
        /**
         * @since 1.0.0
         */
        _this._tag = 'ExactType';
        return _this;
    }
    return ExactType;
}(Type));

/**
 * Strips additional properties.
 *
 * @category combinators
 * @since 1.1.0
 */
function exact(codec, name) {
    if (name === void 0) { name = getExactTypeName(codec); }
    var props = getProps(codec);
    return new ExactType(name, codec.is, function (u, c) {
        var e = UnknownRecord.validate(u, c);
        if (isLeft(e)) {
            return e;
        }
        var ce = codec.validate(u, c);
        if (isLeft(ce)) {
            return ce;
        }
        return right(stripKeys(ce.right, props));
    }, function (a) { return codec.encode(stripKeys(a, props)); }, codec);
}
// -------------------------------------------------------------------------------------
// deprecated
// -------------------------------------------------------------------------------------
/**
 * @since 1.0.0
 * @deprecated
 */
var FunctionType = /** @class */ (function (_super) {
    __extends(FunctionType, _super);
    function FunctionType() {
        var _this = _super.call(this, 'Function', 
        // tslint:disable-next-line:strict-type-predicates
        function (u) { return typeof u === 'function'; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, es6_identity) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'FunctionType';
        return _this;
    }
    return FunctionType;
}(Type));

/**
 * @category primitives
 * @since 1.0.0
 * @deprecated
 */
// tslint:disable-next-line: deprecation
var es6_Function = new FunctionType();
/**
 * @since 1.3.0
 * @deprecated
 */
var TaggedUnionType = /** @class */ (function (_super) {
    __extends(TaggedUnionType, _super);
    function TaggedUnionType(name, 
    // tslint:disable-next-line: deprecation
    is, 
    // tslint:disable-next-line: deprecation
    validate, 
    // tslint:disable-next-line: deprecation
    encode, codecs, tag) {
        var _this = _super.call(this, name, is, validate, encode, codecs) /* istanbul ignore next */ // <= workaround for https://github.com/Microsoft/TypeScript/issues/13455
         || this;
        _this.tag = tag;
        return _this;
    }
    return TaggedUnionType;
}(UnionType));

/**
 * Use `union` instead.
 *
 * @category combinators
 * @since 1.3.0
 * @deprecated
 */
var taggedUnion = function (tag, codecs, name
// tslint:disable-next-line: deprecation
) {
    if (name === void 0) { name = getUnionName(codecs); }
    var U = union(codecs, name);
    // tslint:disable-next-line: deprecation
    if (U instanceof TaggedUnionType) {
        return U;
    }
    else {
        console.warn("[io-ts] Cannot build a tagged union for " + name + ", returning a de-optimized union");
        // tslint:disable-next-line: deprecation
        return new TaggedUnionType(name, U.is, U.validate, U.encode, codecs, tag);
    }
};


/**
 * @since 1.0.0
 * @deprecated
 */
var getValidationError /* istanbul ignore next */ = function (value, context) { return ({
    value: value,
    context: context
}); };
/**
 * @since 1.0.0
 * @deprecated
 */
var getDefaultContext /* istanbul ignore next */ = function (decoder) { return [
    { key: '', type: decoder }
]; };
/**
 * @since 1.0.0
 * @deprecated
 */
var NeverType = /** @class */ (function (_super) {
    __extends(NeverType, _super);
    function NeverType() {
        var _this = _super.call(this, 'never', function (_) { return false; }, function (u, c) { return failure(u, c); }, 
        /* istanbul ignore next */
        function () {
            throw new Error('cannot encode never');
        }) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'NeverType';
        return _this;
    }
    return NeverType;
}(Type));

/**
 * @category primitives
 * @since 1.0.0
 * @deprecated
 */
// tslint:disable-next-line: deprecation
var never = new NeverType();
/**
 * @since 1.0.0
 * @deprecated
 */
var AnyType = /** @class */ (function (_super) {
    __extends(AnyType, _super);
    function AnyType() {
        var _this = _super.call(this, 'any', function (_) { return true; }, success, es6_identity) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'AnyType';
        return _this;
    }
    return AnyType;
}(Type));

/**
 * Use `unknown` instead.
 *
 * @category primitives
 * @since 1.0.0
 * @deprecated
 */
// tslint:disable-next-line: deprecation
var any = new AnyType();
/**
 * Use `UnknownRecord` instead.
 *
 * @category primitives
 * @since 1.0.0
 * @deprecated
 */
var Dictionary = (/* unused pure expression or super */ null && (UnknownRecord));
/**
 * @since 1.0.0
 * @deprecated
 */
var ObjectType = /** @class */ (function (_super) {
    __extends(ObjectType, _super);
    function ObjectType() {
        var _this = _super.call(this, 'object', function (u) { return u !== null && typeof u === 'object'; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, es6_identity) || this;
        /**
         * @since 1.0.0
         */
        _this._tag = 'ObjectType';
        return _this;
    }
    return ObjectType;
}(Type));

/**
 * Use `UnknownRecord` instead.
 *
 * @category primitives
 * @since 1.0.0
 * @deprecated
 */
// tslint:disable-next-line: deprecation
var object = new ObjectType();
/**
 * Use `brand` instead.
 *
 * @category combinators
 * @since 1.0.0
 * @deprecated
 */
function refinement(codec, predicate, name) {
    if (name === void 0) { name = "(" + codec.name + " | " + getFunctionName(predicate) + ")"; }
    return new RefinementType(name, function (u) { return codec.is(u) && predicate(u); }, function (i, c) {
        var e = codec.validate(i, c);
        if (Either_isLeft(e)) {
            return e;
        }
        var a = e.right;
        return predicate(a) ? success(a) : failure(a, c);
    }, codec.encode, codec, predicate);
}
/**
 * Use `Int` instead.
 *
 * @category primitives
 * @since 1.0.0
 * @deprecated
 */
// tslint:disable-next-line: deprecation
var Integer = refinement(number, Number.isInteger, 'Integer');
/**
 * Use `record` instead.
 *
 * @category combinators
 * @since 1.0.0
 * @deprecated
 */
var dictionary = (/* unused pure expression or super */ null && (record));
/**
 * @since 1.0.0
 * @deprecated
 */
var StrictType = /** @class */ (function (_super) {
    __extends(StrictType, _super);
    function StrictType(name, 
    // tslint:disable-next-line: deprecation
    is, 
    // tslint:disable-next-line: deprecation
    validate, 
    // tslint:disable-next-line: deprecation
    encode, props) {
        var _this = _super.call(this, name, is, validate, encode) || this;
        _this.props = props;
        /**
         * @since 1.0.0
         */
        _this._tag = 'StrictType';
        return _this;
    }
    return StrictType;
}(Type));

/**
 * Drops the codec "kind".
 *
 * @category combinators
 * @since 1.1.0
 * @deprecated
 */
function clean(codec) {
    return codec;
}
function alias(codec) {
    return function () { return codec; };
}

;// CONCATENATED MODULE: ./src/util/extendIoTs/enum.ts



class EnumType extends Type {
  constructor(e, name) {
    super(name !== null && name !== void 0 ? name : 'enum', u => {
      if (!Object.values(this.enumObject).find(v => v === u)) {
        return false;
      }

      if (typeof this.enumObject[u] === 'number') {
        return false;
      }

      return true;
    }, (u, c) => this.is(u) ? success(u) : failure(u, c), es6_identity);

    defineProperty_defineProperty(this, "_tag", 'EnumType');

    defineProperty_defineProperty(this, "enumObject", void 0);

    this.enumObject = e;
  }

}
/**
 *
 * @param name - optional enum name
 */


const enumType = (e, name) => new EnumType(e, name);
// EXTERNAL MODULE: ./node_modules/core-js-pure/stable/object/from-entries.js
var from_entries = __webpack_require__(5239);
var from_entries_default = /*#__PURE__*/__webpack_require__.n(from_entries);
;// CONCATENATED MODULE: ./src/util/extendIoTs/fallback.ts



/* eslint-disable @typescript-eslint/no-unsafe-return */
// eslint-disable-next-line max-classes-per-file


class FallbackType extends Type {
  constructor(p, defaultValue) {
    super(p.name, _u => true, (u, c) => {
      const report = p.validate(u, c);

      if (Either_isRight(report)) {
        return report;
      }

      return success(typeof this.defaultValue === 'function' ? this.defaultValue() : this.defaultValue);
    }, p.encode);

    defineProperty_defineProperty(this, "defaultValue", void 0);

    this.defaultValue = defaultValue;
  }

  get defaultData() {
    const data = typeof this.defaultValue === 'function' ? this.defaultValue() : this.defaultValue;
    return data;
  }

}
const fallback = (p, dValue) => new FallbackType(p, typeof dValue === 'function' ? dValue() : dValue);
class FallbackInterface extends Type {
  constructor(p) {
    const tp = type(p);
    super('', _u => true, (u, c) => {
      const report = tp.validate(u, c);

      if (Either_isLeft(report)) {
        const data = from_entries_default()(Object.entries(p).map(([k, v]) => [k, v.defaultData]));

        return success(data);
      }

      return report;
    }, tp.encode);

    defineProperty_defineProperty(this, "p", void 0);

    this.p = p;
  }

  get defaultData() {
    const data = from_entries_default()(Object.entries(this.p).map(([k, v]) => [k, v.defaultData]));

    return data;
  }

}
const fallbackInterface = t => new FallbackInterface(t);
;// CONCATENATED MODULE: ./src/provider/create.ts


function create_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function create_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? create_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : create_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

const createProvider = params => create_objectSpread(create_objectSpread({}, params), {}, {
  get store() {
    return this.storeWrapper.data;
  }

});
// EXTERNAL MODULE: ./node_modules/md5/md5.js
var md5 = __webpack_require__(5377);
var md5_default = /*#__PURE__*/__webpack_require__.n(md5);
;// CONCATENATED MODULE: ./src/util/copy.ts
const copy = p => typeof p === 'object' ? JSON.parse((__webpack_require__(8334)/* .stringify */ .P)(p)) : p;

/* harmony default export */ const util_copy = (copy);
;// CONCATENATED MODULE: ./src/provider/Iciba/container/data.ts

const containerData = reactivity_esm_bundler_reactive({
  data: null
});
;// CONCATENATED MODULE: ./src/service/store/provider.ts


function provider_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function provider_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? provider_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : provider_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }



const providerCommonStore = {
  enableHotkey: fallback(es6_boolean, false),
  hotkey: fallback(array(string), () => [])
};
const apiProviderCommonStore = provider_objectSpread(provider_objectSpread({}, providerCommonStore), {}, {
  appId: fallback(string, ''),
  appKey: fallback(string, '')
});
;// CONCATENATED MODULE: ./src/assets/img/providerIcon/iciba/search.svg
/* harmony default export */ const search = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 57 57\"><path d=\"M55.1 51.9L41.6 37.8A23 23 0 0 0 24 0a23 23 0 1 0 13.2 41.8L50.8 56a3 3 0 0 0 4.3.1 3 3 0 0 0 0-4.2zM24 6a17 17 0 1 1 0 34 17 17 0 0 1 0-34z\" fill=\"#aaa\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/providerIcon/iciba/iciba_1362193.svg
/* harmony default export */ const iciba_1362193 = ("<svg height=\"640\" viewBox=\"-52 0 480 480\" width=\"640\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M48 48h320v424H48zm0 0\" fill=\"#ffeb99\"/><path d=\"M8 48h40v424H8zm0 0\" fill=\"#9f886a\"/><path d=\"M128 80h160v96H128zm0 0\" fill=\"#ffda44\"/><path d=\"M8 8v40h344V8zm0 0\" fill=\"#605240\"/><path d=\"M16 8h336v16H16zm0 0\" fill=\"#3c3328\"/><path d=\"M8 48h16v424H8zm0 0\" fill=\"#504435\"/><g fill=\"#231f20\"><path d=\"M296 72H120v112h176zm-16 96H136V88h144zm0 0\"/><path d=\"M152 104h112v16H152zm0 0M152 136h32v16h-32zm0 0M200 136h64v16h-64zm0 0\"/><path d=\"M376 16V0H0v480h376V40h-16V16zM16 464V56h24v408zm344 0H56V56h304zM16 40V16h328v24zm0 0\"/><path d=\"M88 352v-48h48v48h16v-72c0-22.089844-17.910156-40-40-40s-40 17.910156-40 40v72zm24-96c13.253906 0 24 10.746094 24 24v8H88v-8c0-13.253906 10.746094-24 24-24zm0 0M248 272c0-17.671875-14.328125-32-32-32h-48v112h48c13.34375.058594 25.3125-8.203125 29.984375-20.703125 4.675781-12.496094 1.066406-26.585937-9.039063-35.296875C243.9375 289.984375 247.972656 281.226562 248 272zm-16 48c0 8.835938-7.164062 16-16 16h-32v-32h32c8.835938 0 16 7.164062 16 16zm-48-32v-32h32c8.835938 0 16 7.164062 16 16s-7.164062 16-16 16zm0 0M264 280v32c0 22.089844 17.910156 40 40 40s40-17.910156 40-40h-16c0 13.253906-10.746094 24-24 24s-24-10.746094-24-24v-32c0-13.253906 10.746094-24 24-24s24 10.746094 24 24h16c0-22.089844-17.910156-40-40-40s-40 17.910156-40 40zm0 0\"/></g></svg>\n");
;// CONCATENATED MODULE: ./src/provider/Iciba/icons.ts


const icons = {
  searchIcon: search,
  iciba_1362193: iciba_1362193
};
;// CONCATENATED MODULE: ./src/provider/Iciba/store/index.ts


function store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? store_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }





const storeType = fallbackInterface(store_objectSpread(store_objectSpread({}, providerCommonStore), {}, {
  display: fallback(es6_boolean, true),
  icon: fallback(keyof(icons), 'searchIcon'),
  lowerCaseCapital: fallback(es6_boolean, false)
}));
const defaultStore = storeType.defaultData;
const store = {
  data: null
};
;// CONCATENATED MODULE: ./src/provider/Iciba/translate.ts






 // e.params = {client: 6, key: 1000006, timestamp: 1611974079765, word: "lead"}

const translate = async p => {
  const rawWord = p.word;
  const now = Date.now();
  const wordCapital = store.data.lowerCaseCapital ? rawWord.substring(0, 1).toLowerCase() : rawWord.substring(0, 1);
  const word = `${wordCapital}${rawWord.substring(1)}`; // hard code in http://www.iciba.com/_next/static/chunks/8caea17ae752a5965491f530aed3596fce3ca5a9.f4f0c70d4f1b9d4253e3.js

  const hashKey = '7ece94d9f9c202b0d2ec557dg4r9bc';
  const hashMessageBody = `61000006${now}${word}`;
  const hashMessage = `/dictionary/word/query/web${hashMessageBody}${hashKey}`;
  const signature = md5_default()(hashMessage);
  const query = ['client=6', 'key=1000006', `timestamp=${now}`, `word=${encodeURIComponent(word)}`, `signature=${signature}`];
  const apiUrl = `https://dict.iciba.com/dictionary/word/query/web?${query.join('&')}`;
  const response = await got({
    method: 'GET',
    url: apiUrl,
    timeout: 5000
  });

  if (Either_isLeft(response)) {
    throw new Error(response.left.type);
  }

  const content = response.right.responseText;
  const result = tryCatch(() => JSON.parse(content).message, function_identity);

  if (Either_isLeft(result)) {
    return Either_left({
      message: '数据错误!'
    });
  }

  const message = result.right; // fix iciba api typo

  if ('baesInfo' in message) {
    message.baseInfo = message.baesInfo;
    delete message.baesInfo;
  }

  if ('bidce' in message) {
    message.bidec = message.bidce;
    delete message.bidce;
  } // dev only check


  if (false) {}

  return Either_right(() => {
    containerData.data = util_copy(message);
  });
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/Iciba/container/index.vue?vue&type=template&id=08018802&scoped=true&ts=true


const containervue_type_template_id_08018802_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-08018802"), n = n(), _popScopeId(), n);

const containervue_type_template_id_08018802_scoped_true_ts_true_hoisted_1 = {
  class: "r-container flex-col relative text-grey-900"
};
const containervue_type_template_id_08018802_scoped_true_ts_true_hoisted_2 = {
  key: 0,
  class: "symbols-box flex-col items-stretch"
};
const containervue_type_template_id_08018802_scoped_true_ts_true_hoisted_3 = {
  class: "pronunciation-box flex-col flex-none items-stretch"
};
const _hoisted_4 = {
  key: 0,
  class: "part-item-part pr-6px text-grey-600 flex-none"
};
const _hoisted_5 = {
  class: "part-item-meaning-box flex-auto"
};
const _hoisted_6 = {
  key: 1,
  class: "chinese-zi-box mt-1"
};
const _hoisted_7 = {
  key: 2,
  class: "chinese-ci-box mt-1 leading-normal"
};
const _hoisted_8 = {
  class: "ciyi-box"
};
const _hoisted_9 = {
  class: "type-text text-grey-600 pr-1"
};
const _hoisted_10 = {
  key: 0,
  class: "pr-1 text-grey-500"
};
const _hoisted_11 = {
  key: 1,
  class: "translation-box flex-col items-stretch"
};
const _hoisted_12 = {
  class: "translate-content"
};
const _hoisted_13 = {
  class: "translate-tip mt-1 text-right text-12 text-grey-500"
};

const _hoisted_14 = /*#__PURE__*/createTextVNode(" do you mean? ");

const _hoisted_15 = {
  key: 0,
  class: "suggest-box flex flex-wrap items-stretch"
};
const _hoisted_16 = ["onClick"];
function containervue_type_template_id_08018802_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_iciba_pronunciation = resolveComponent("iciba-pronunciation");

  const _component_scrollable = resolveComponent("scrollable");

  return openBlock(), createElementBlock("div", containervue_type_template_id_08018802_scoped_true_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_scrollable, {
    class: "scroll-container"
  }, {
    default: withCtx(({
      scrollBar
    }) => [_ctx.result ? (openBlock(), createElementBlock("div", {
      key: 0,
      class: normalizeClass(["main-box flex-col flex-auto text-14 break-words", [scrollBar && 'py-10px pl-10px pr-14px', !scrollBar && 'p-10px']])
    }, [_ctx.isBaseInfoBaseInfoNormal(_ctx.result.baseInfo) ? (openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, {
      key: 0
    }, [_ctx.result.baseInfo && _ctx.result.baseInfo.symbols && _ctx.result.baseInfo.symbols.length ? (openBlock(), createElementBlock("div", containervue_type_template_id_08018802_scoped_true_ts_true_hoisted_2, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.result.baseInfo.symbols, (symbolItem, index) => {
      return openBlock(), createElementBlock("div", {
        class: normalizeClass(["symbol-item flex-col items-stretch w-full", {
          'mt-6px': index !== 0
        }]),
        key: index
      }, [createBaseVNode("div", containervue_type_template_id_08018802_scoped_true_ts_true_hoisted_3, [_ctx.isSymbolCN(symbolItem) && symbolItem.word_symbol ? (openBlock(), createBlock(_component_iciba_pronunciation, {
        key: 0,
        ipa: symbolItem.word_symbol,
        onPlay: $event => _ctx.handlePlay(symbolItem.symbol_mp3)
      }, null, 8, ["ipa", "onPlay"])) : createCommentVNode("", true), _ctx.isSymbolEN(symbolItem) ? (openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, {
        key: 1
      }, [symbolItem.ph_en_mp3 ? (openBlock(), createBlock(_component_iciba_pronunciation, {
        key: 0,
        type: "英",
        ipa: `[${symbolItem.ph_en}]`,
        onPlay: $event => _ctx.handlePlay(symbolItem.ph_en_mp3)
      }, null, 8, ["ipa", "onPlay"])) : createCommentVNode("", true), symbolItem.ph_am_mp3 ? (openBlock(), createBlock(_component_iciba_pronunciation, {
        key: 1,
        type: "美",
        ipa: `[${symbolItem.ph_am}]`,
        onPlay: $event => _ctx.handlePlay(symbolItem.ph_am_mp3)
      }, null, 8, ["ipa", "onPlay"])) : createCommentVNode("", true), symbolItem.ph_tts_mp3 && !symbolItem.ph_en_mp3 && !symbolItem.ph_am_mp3 ? (openBlock(), createBlock(_component_iciba_pronunciation, {
        key: 2,
        type: "TTS",
        ipa: `[${symbolItem.ph_other}]`,
        onPlay: $event => _ctx.handlePlay(symbolItem.ph_tts_mp3)
      }, null, 8, ["ipa", "onPlay"])) : createCommentVNode("", true)], 64)) : createCommentVNode("", true)]), symbolItem.parts && symbolItem.parts.length ? (openBlock(), createElementBlock("div", {
        key: 0,
        class: normalizeClass(["part-box flex-col flex-none items-stretch", {
          'mt-1': symbolItem.symbol_mp3 || symbolItem.word_symbol
        }])
      }, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(symbolItem.parts, (partItem, partItemIndex) => {
        return openBlock(), createElementBlock("div", {
          class: normalizeClass(["part-item flex", {
            'mt-3px': partItemIndex !== 0
          }]),
          key: partItemIndex
        }, [partItem.part ? (openBlock(), createElementBlock("div", _hoisted_4, toDisplayString(partItem.part), 1)) : createCommentVNode("", true), createBaseVNode("div", _hoisted_5, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(partItem.means, (meanItem, meanItemIndex) => {
          return openBlock(), createElementBlock("div", {
            class: normalizeClass(["meaning-item inline", {
              'pr-3px': meanItemIndex !== partItem.means.length - 1
            }]),
            key: meanItemIndex
          }, [meanItemIndex === partItem.means.length - 1 ? (openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, {
            key: 0
          }, [createTextVNode(toDisplayString(meanItem), 1)], 64)) : (openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, {
            key: 1
          }, [createTextVNode(toDisplayString(meanItem) + "; ", 1)], 64))], 2);
        }), 128))])], 2);
      }), 128))], 2)) : createCommentVNode("", true)], 2);
    }), 128))])) : createCommentVNode("", true), (!_ctx.result.baseInfo || !_ctx.result.baseInfo.symbols || !_ctx.result.baseInfo.symbols.length) && _ctx.result.chinese && _ctx.result.chinese.zi ? (openBlock(), createElementBlock("div", _hoisted_6, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.result.chinese.zi, (ziItem, ziIndex) => {
      return openBlock(), createElementBlock("div", {
        class: "zi-item",
        key: ziIndex
      }, toDisplayString(ziItem.hanzi) + " " + toDisplayString(ziItem.pinyin) + " " + toDisplayString(ziItem.jieshi), 1);
    }), 128))])) : createCommentVNode("", true), _ctx.result.chinese && _ctx.result.chinese.ci && _ctx.result.chinese.ci.ciyi && _ctx.result.chinese.ci.ciyi.length ? (openBlock(), createElementBlock("div", _hoisted_7, [createBaseVNode("div", _hoisted_8, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.normalizeCiyi(_ctx.result.chinese.ci.ciyi), (item, ciyiIndex) => {
      return openBlock(), createElementBlock("div", {
        class: "ciyi-item",
        key: ciyiIndex
      }, [createBaseVNode("span", _hoisted_9, toDisplayString(ciyiIndex + 1) + ". ", 1), _ctx.seperateChineseJieshi(item)[0] ? (openBlock(), createElementBlock("span", _hoisted_10, "[" + toDisplayString(_ctx.seperateChineseJieshi(item)[0]) + "]", 1)) : createCommentVNode("", true), createBaseVNode("span", null, toDisplayString(_ctx.seperateChineseJieshi(item)[1]), 1)]);
    }), 128))])])) : createCommentVNode("", true)], 64)) : createCommentVNode("", true), _ctx.isBaseInfoTranslate(_ctx.result.baseInfo) && _ctx.result.baseInfo.translate_type === 2 && _ctx.result.baseInfo.translate_result ? (openBlock(), createElementBlock("div", _hoisted_11, [createBaseVNode("div", _hoisted_12, toDisplayString(_ctx.result.baseInfo.translate_result), 1), createBaseVNode("div", _hoisted_13, toDisplayString(_ctx.result.baseInfo.translate_msg.replace(/。$/, '')), 1)])) : createCommentVNode("", true), _ctx.isBaseInfoSuggestion(_ctx.result.baseInfo) && _ctx.result.baseInfo.suggest.length ? (openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, {
      key: 2
    }, [_hoisted_14, _ctx.isBaseInfoSuggestion(_ctx.result.baseInfo) ? (openBlock(), createElementBlock("div", _hoisted_15, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.result.baseInfo.suggest, (item, index) => {
      return openBlock(), createElementBlock("span", {
        class: "text-blue-500 mr-1 cursor-pointer",
        onClick: $event => _ctx.handleSuggestionClick(item.key),
        key: index
      }, toDisplayString(item.key), 9, _hoisted_16);
    }), 128))])) : createCommentVNode("", true)], 64)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true)]),
    _: 1
  })]);
}
;// CONCATENATED MODULE: ./src/provider/Iciba/container/index.vue?vue&type=template&id=08018802&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/Scrollable/Scrollable.vue?vue&type=template&id=5ec67402&scoped=true&ts=true


const Scrollablevue_type_template_id_5ec67402_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-5ec67402"), n = n(), _popScopeId(), n);

const Scrollablevue_type_template_id_5ec67402_scoped_true_ts_true_hoisted_1 = {
  class: "scrollable relative flex"
};
const Scrollablevue_type_template_id_5ec67402_scoped_true_ts_true_hoisted_2 = {
  class: "scroll-content flex-col flex-auto overflow-hidden"
};
function Scrollablevue_type_template_id_5ec67402_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _directive_no_overscroll = resolveDirective("no-overscroll");

  return openBlock(), createElementBlock("div", Scrollablevue_type_template_id_5ec67402_scoped_true_ts_true_hoisted_1, [createBaseVNode("div", {
    class: normalizeClass(["scroll-bar-track absolute right-0", {
      moving: _ctx.state.drag.start,
      'hidden': _ctx.state.noScrollBar
    }])
  }, [!_ctx.state.noScrollBar ? (openBlock(), createElementBlock("div", {
    key: 0,
    class: "scroll-bar-thumb rounded-full flex justify-center absolute ease-in-out duration-100",
    style: normalizeStyle(_ctx.thumbStyle),
    onWheel: _cache[0] || (_cache[0] = withModifiers(() => {}, ["prevent"])),
    onMousedown: _cache[1] || (_cache[1] = //@ts-ignore
    (...args) => _ctx.handleScrollbarThumbClick && _ctx.handleScrollbarThumbClick(...args))
  }, null, 36)) : createCommentVNode("", true)], 2), createBaseVNode("div", Scrollablevue_type_template_id_5ec67402_scoped_true_ts_true_hoisted_2, [withDirectives((openBlock(), createElementBlock("div", {
    class: "scroll-box flex flex-auto overflow-x-hidden overflow-y-scroll",
    style: normalizeStyle(_ctx.scrollBoxStyle),
    onScroll: _cache[2] || (_cache[2] = //@ts-ignore
    (...args) => _ctx.calcScrollbar && _ctx.calcScrollbar(...args)),
    onMouseenter: _cache[3] || (_cache[3] = //@ts-ignore
    (...args) => _ctx.calcScrollbar && _ctx.calcScrollbar(...args)),
    ref: _ctx.refs.container
  }, [createBaseVNode("div", {
    class: "w-full flex-col",
    ref: _ctx.refs.scrollBox
  }, [renderSlot(_ctx.$slots, "default", {
    scrollBar: !_ctx.state.noScrollBar
  }, undefined, true)], 512)], 36)), [[_directive_no_overscroll]])])]);
}
;// CONCATENATED MODULE: ./src/components/Scrollable/Scrollable.vue?vue&type=template&id=5ec67402&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js
/**
 * A collection of shims that provide minimal functionality of the ES6 collections.
 *
 * These implementations are not meant to be used outside of the ResizeObserver
 * modules as they cover only a limited range of use cases.
 */
/* eslint-disable require-jsdoc, valid-jsdoc */
var MapShim = (function () {
    if (typeof Map !== 'undefined') {
        return Map;
    }
    /**
     * Returns index in provided array that matches the specified key.
     *
     * @param {Array<Array>} arr
     * @param {*} key
     * @returns {number}
     */
    function getIndex(arr, key) {
        var result = -1;
        arr.some(function (entry, index) {
            if (entry[0] === key) {
                result = index;
                return true;
            }
            return false;
        });
        return result;
    }
    return /** @class */ (function () {
        function class_1() {
            this.__entries__ = [];
        }
        Object.defineProperty(class_1.prototype, "size", {
            /**
             * @returns {boolean}
             */
            get: function () {
                return this.__entries__.length;
            },
            enumerable: true,
            configurable: true
        });
        /**
         * @param {*} key
         * @returns {*}
         */
        class_1.prototype.get = function (key) {
            var index = getIndex(this.__entries__, key);
            var entry = this.__entries__[index];
            return entry && entry[1];
        };
        /**
         * @param {*} key
         * @param {*} value
         * @returns {void}
         */
        class_1.prototype.set = function (key, value) {
            var index = getIndex(this.__entries__, key);
            if (~index) {
                this.__entries__[index][1] = value;
            }
            else {
                this.__entries__.push([key, value]);
            }
        };
        /**
         * @param {*} key
         * @returns {void}
         */
        class_1.prototype.delete = function (key) {
            var entries = this.__entries__;
            var index = getIndex(entries, key);
            if (~index) {
                entries.splice(index, 1);
            }
        };
        /**
         * @param {*} key
         * @returns {void}
         */
        class_1.prototype.has = function (key) {
            return !!~getIndex(this.__entries__, key);
        };
        /**
         * @returns {void}
         */
        class_1.prototype.clear = function () {
            this.__entries__.splice(0);
        };
        /**
         * @param {Function} callback
         * @param {*} [ctx=null]
         * @returns {void}
         */
        class_1.prototype.forEach = function (callback, ctx) {
            if (ctx === void 0) { ctx = null; }
            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {
                var entry = _a[_i];
                callback.call(ctx, entry[1], entry[0]);
            }
        };
        return class_1;
    }());
})();

/**
 * Detects whether window and document objects are available in current environment.
 */
var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;

// Returns global object of a current environment.
var global$1 = (function () {
    if (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.Math === Math) {
        return __webpack_require__.g;
    }
    if (typeof self !== 'undefined' && self.Math === Math) {
        return self;
    }
    if (typeof window !== 'undefined' && window.Math === Math) {
        return window;
    }
    // eslint-disable-next-line no-new-func
    return Function('return this')();
})();

/**
 * A shim for the requestAnimationFrame which falls back to the setTimeout if
 * first one is not supported.
 *
 * @returns {number} Requests' identifier.
 */
var requestAnimationFrame$1 = (function () {
    if (typeof requestAnimationFrame === 'function') {
        // It's required to use a bounded function because IE sometimes throws
        // an "Invalid calling object" error if rAF is invoked without the global
        // object on the left hand side.
        return requestAnimationFrame.bind(global$1);
    }
    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };
})();

// Defines minimum timeout before adding a trailing call.
var trailingTimeout = 2;
/**
 * Creates a wrapper function which ensures that provided callback will be
 * invoked only once during the specified delay period.
 *
 * @param {Function} callback - Function to be invoked after the delay period.
 * @param {number} delay - Delay after which to invoke callback.
 * @returns {Function}
 */
function throttle (callback, delay) {
    var leadingCall = false, trailingCall = false, lastCallTime = 0;
    /**
     * Invokes the original callback function and schedules new invocation if
     * the "proxy" was called during current request.
     *
     * @returns {void}
     */
    function resolvePending() {
        if (leadingCall) {
            leadingCall = false;
            callback();
        }
        if (trailingCall) {
            proxy();
        }
    }
    /**
     * Callback invoked after the specified delay. It will further postpone
     * invocation of the original function delegating it to the
     * requestAnimationFrame.
     *
     * @returns {void}
     */
    function timeoutCallback() {
        requestAnimationFrame$1(resolvePending);
    }
    /**
     * Schedules invocation of the original function.
     *
     * @returns {void}
     */
    function proxy() {
        var timeStamp = Date.now();
        if (leadingCall) {
            // Reject immediately following calls.
            if (timeStamp - lastCallTime < trailingTimeout) {
                return;
            }
            // Schedule new call to be in invoked when the pending one is resolved.
            // This is important for "transitions" which never actually start
            // immediately so there is a chance that we might miss one if change
            // happens amids the pending invocation.
            trailingCall = true;
        }
        else {
            leadingCall = true;
            trailingCall = false;
            setTimeout(timeoutCallback, delay);
        }
        lastCallTime = timeStamp;
    }
    return proxy;
}

// Minimum delay before invoking the update of observers.
var REFRESH_DELAY = 20;
// A list of substrings of CSS properties used to find transition events that
// might affect dimensions of observed elements.
var transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];
// Check if MutationObserver is available.
var mutationObserverSupported = typeof MutationObserver !== 'undefined';
/**
 * Singleton controller class which handles updates of ResizeObserver instances.
 */
var ResizeObserverController = /** @class */ (function () {
    /**
     * Creates a new instance of ResizeObserverController.
     *
     * @private
     */
    function ResizeObserverController() {
        /**
         * Indicates whether DOM listeners have been added.
         *
         * @private {boolean}
         */
        this.connected_ = false;
        /**
         * Tells that controller has subscribed for Mutation Events.
         *
         * @private {boolean}
         */
        this.mutationEventsAdded_ = false;
        /**
         * Keeps reference to the instance of MutationObserver.
         *
         * @private {MutationObserver}
         */
        this.mutationsObserver_ = null;
        /**
         * A list of connected observers.
         *
         * @private {Array<ResizeObserverSPI>}
         */
        this.observers_ = [];
        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);
        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);
    }
    /**
     * Adds observer to observers list.
     *
     * @param {ResizeObserverSPI} observer - Observer to be added.
     * @returns {void}
     */
    ResizeObserverController.prototype.addObserver = function (observer) {
        if (!~this.observers_.indexOf(observer)) {
            this.observers_.push(observer);
        }
        // Add listeners if they haven't been added yet.
        if (!this.connected_) {
            this.connect_();
        }
    };
    /**
     * Removes observer from observers list.
     *
     * @param {ResizeObserverSPI} observer - Observer to be removed.
     * @returns {void}
     */
    ResizeObserverController.prototype.removeObserver = function (observer) {
        var observers = this.observers_;
        var index = observers.indexOf(observer);
        // Remove observer if it's present in registry.
        if (~index) {
            observers.splice(index, 1);
        }
        // Remove listeners if controller has no connected observers.
        if (!observers.length && this.connected_) {
            this.disconnect_();
        }
    };
    /**
     * Invokes the update of observers. It will continue running updates insofar
     * it detects changes.
     *
     * @returns {void}
     */
    ResizeObserverController.prototype.refresh = function () {
        var changesDetected = this.updateObservers_();
        // Continue running updates if changes have been detected as there might
        // be future ones caused by CSS transitions.
        if (changesDetected) {
            this.refresh();
        }
    };
    /**
     * Updates every observer from observers list and notifies them of queued
     * entries.
     *
     * @private
     * @returns {boolean} Returns "true" if any observer has detected changes in
     *      dimensions of it's elements.
     */
    ResizeObserverController.prototype.updateObservers_ = function () {
        // Collect observers that have active observations.
        var activeObservers = this.observers_.filter(function (observer) {
            return observer.gatherActive(), observer.hasActive();
        });
        // Deliver notifications in a separate cycle in order to avoid any
        // collisions between observers, e.g. when multiple instances of
        // ResizeObserver are tracking the same element and the callback of one
        // of them changes content dimensions of the observed target. Sometimes
        // this may result in notifications being blocked for the rest of observers.
        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });
        return activeObservers.length > 0;
    };
    /**
     * Initializes DOM listeners.
     *
     * @private
     * @returns {void}
     */
    ResizeObserverController.prototype.connect_ = function () {
        // Do nothing if running in a non-browser environment or if listeners
        // have been already added.
        if (!isBrowser || this.connected_) {
            return;
        }
        // Subscription to the "Transitionend" event is used as a workaround for
        // delayed transitions. This way it's possible to capture at least the
        // final state of an element.
        document.addEventListener('transitionend', this.onTransitionEnd_);
        window.addEventListener('resize', this.refresh);
        if (mutationObserverSupported) {
            this.mutationsObserver_ = new MutationObserver(this.refresh);
            this.mutationsObserver_.observe(document, {
                attributes: true,
                childList: true,
                characterData: true,
                subtree: true
            });
        }
        else {
            document.addEventListener('DOMSubtreeModified', this.refresh);
            this.mutationEventsAdded_ = true;
        }
        this.connected_ = true;
    };
    /**
     * Removes DOM listeners.
     *
     * @private
     * @returns {void}
     */
    ResizeObserverController.prototype.disconnect_ = function () {
        // Do nothing if running in a non-browser environment or if listeners
        // have been already removed.
        if (!isBrowser || !this.connected_) {
            return;
        }
        document.removeEventListener('transitionend', this.onTransitionEnd_);
        window.removeEventListener('resize', this.refresh);
        if (this.mutationsObserver_) {
            this.mutationsObserver_.disconnect();
        }
        if (this.mutationEventsAdded_) {
            document.removeEventListener('DOMSubtreeModified', this.refresh);
        }
        this.mutationsObserver_ = null;
        this.mutationEventsAdded_ = false;
        this.connected_ = false;
    };
    /**
     * "Transitionend" event handler.
     *
     * @private
     * @param {TransitionEvent} event
     * @returns {void}
     */
    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {
        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;
        // Detect whether transition may affect dimensions of an element.
        var isReflowProperty = transitionKeys.some(function (key) {
            return !!~propertyName.indexOf(key);
        });
        if (isReflowProperty) {
            this.refresh();
        }
    };
    /**
     * Returns instance of the ResizeObserverController.
     *
     * @returns {ResizeObserverController}
     */
    ResizeObserverController.getInstance = function () {
        if (!this.instance_) {
            this.instance_ = new ResizeObserverController();
        }
        return this.instance_;
    };
    /**
     * Holds reference to the controller's instance.
     *
     * @private {ResizeObserverController}
     */
    ResizeObserverController.instance_ = null;
    return ResizeObserverController;
}());

/**
 * Defines non-writable/enumerable properties of the provided target object.
 *
 * @param {Object} target - Object for which to define properties.
 * @param {Object} props - Properties to be defined.
 * @returns {Object} Target object.
 */
var defineConfigurable = (function (target, props) {
    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {
        var key = _a[_i];
        Object.defineProperty(target, key, {
            value: props[key],
            enumerable: false,
            writable: false,
            configurable: true
        });
    }
    return target;
});

/**
 * Returns the global object associated with provided element.
 *
 * @param {Object} target
 * @returns {Object}
 */
var getWindowOf = (function (target) {
    // Assume that the element is an instance of Node, which means that it
    // has the "ownerDocument" property from which we can retrieve a
    // corresponding global object.
    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;
    // Return the local global object if it's not possible extract one from
    // provided element.
    return ownerGlobal || global$1;
});

// Placeholder of an empty content rectangle.
var emptyRect = createRectInit(0, 0, 0, 0);
/**
 * Converts provided string to a number.
 *
 * @param {number|string} value
 * @returns {number}
 */
function toFloat(value) {
    return parseFloat(value) || 0;
}
/**
 * Extracts borders size from provided styles.
 *
 * @param {CSSStyleDeclaration} styles
 * @param {...string} positions - Borders positions (top, right, ...)
 * @returns {number}
 */
function getBordersSize(styles) {
    var positions = [];
    for (var _i = 1; _i < arguments.length; _i++) {
        positions[_i - 1] = arguments[_i];
    }
    return positions.reduce(function (size, position) {
        var value = styles['border-' + position + '-width'];
        return size + toFloat(value);
    }, 0);
}
/**
 * Extracts paddings sizes from provided styles.
 *
 * @param {CSSStyleDeclaration} styles
 * @returns {Object} Paddings box.
 */
function getPaddings(styles) {
    var positions = ['top', 'right', 'bottom', 'left'];
    var paddings = {};
    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {
        var position = positions_1[_i];
        var value = styles['padding-' + position];
        paddings[position] = toFloat(value);
    }
    return paddings;
}
/**
 * Calculates content rectangle of provided SVG element.
 *
 * @param {SVGGraphicsElement} target - Element content rectangle of which needs
 *      to be calculated.
 * @returns {DOMRectInit}
 */
function getSVGContentRect(target) {
    var bbox = target.getBBox();
    return createRectInit(0, 0, bbox.width, bbox.height);
}
/**
 * Calculates content rectangle of provided HTMLElement.
 *
 * @param {HTMLElement} target - Element for which to calculate the content rectangle.
 * @returns {DOMRectInit}
 */
function getHTMLElementContentRect(target) {
    // Client width & height properties can't be
    // used exclusively as they provide rounded values.
    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;
    // By this condition we can catch all non-replaced inline, hidden and
    // detached elements. Though elements with width & height properties less
    // than 0.5 will be discarded as well.
    //
    // Without it we would need to implement separate methods for each of
    // those cases and it's not possible to perform a precise and performance
    // effective test for hidden elements. E.g. even jQuery's ':visible' filter
    // gives wrong results for elements with width & height less than 0.5.
    if (!clientWidth && !clientHeight) {
        return emptyRect;
    }
    var styles = getWindowOf(target).getComputedStyle(target);
    var paddings = getPaddings(styles);
    var horizPad = paddings.left + paddings.right;
    var vertPad = paddings.top + paddings.bottom;
    // Computed styles of width & height are being used because they are the
    // only dimensions available to JS that contain non-rounded values. It could
    // be possible to utilize the getBoundingClientRect if only it's data wasn't
    // affected by CSS transformations let alone paddings, borders and scroll bars.
    var width = toFloat(styles.width), height = toFloat(styles.height);
    // Width & height include paddings and borders when the 'border-box' box
    // model is applied (except for IE).
    if (styles.boxSizing === 'border-box') {
        // Following conditions are required to handle Internet Explorer which
        // doesn't include paddings and borders to computed CSS dimensions.
        //
        // We can say that if CSS dimensions + paddings are equal to the "client"
        // properties then it's either IE, and thus we don't need to subtract
        // anything, or an element merely doesn't have paddings/borders styles.
        if (Math.round(width + horizPad) !== clientWidth) {
            width -= getBordersSize(styles, 'left', 'right') + horizPad;
        }
        if (Math.round(height + vertPad) !== clientHeight) {
            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;
        }
    }
    // Following steps can't be applied to the document's root element as its
    // client[Width/Height] properties represent viewport area of the window.
    // Besides, it's as well not necessary as the <html> itself neither has
    // rendered scroll bars nor it can be clipped.
    if (!isDocumentElement(target)) {
        // In some browsers (only in Firefox, actually) CSS width & height
        // include scroll bars size which can be removed at this step as scroll
        // bars are the only difference between rounded dimensions + paddings
        // and "client" properties, though that is not always true in Chrome.
        var vertScrollbar = Math.round(width + horizPad) - clientWidth;
        var horizScrollbar = Math.round(height + vertPad) - clientHeight;
        // Chrome has a rather weird rounding of "client" properties.
        // E.g. for an element with content width of 314.2px it sometimes gives
        // the client width of 315px and for the width of 314.7px it may give
        // 314px. And it doesn't happen all the time. So just ignore this delta
        // as a non-relevant.
        if (Math.abs(vertScrollbar) !== 1) {
            width -= vertScrollbar;
        }
        if (Math.abs(horizScrollbar) !== 1) {
            height -= horizScrollbar;
        }
    }
    return createRectInit(paddings.left, paddings.top, width, height);
}
/**
 * Checks whether provided element is an instance of the SVGGraphicsElement.
 *
 * @param {Element} target - Element to be checked.
 * @returns {boolean}
 */
var isSVGGraphicsElement = (function () {
    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement
    // interface.
    if (typeof SVGGraphicsElement !== 'undefined') {
        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };
    }
    // If it's so, then check that element is at least an instance of the
    // SVGElement and that it has the "getBBox" method.
    // eslint-disable-next-line no-extra-parens
    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&
        typeof target.getBBox === 'function'); };
})();
/**
 * Checks whether provided element is a document element (<html>).
 *
 * @param {Element} target - Element to be checked.
 * @returns {boolean}
 */
function isDocumentElement(target) {
    return target === getWindowOf(target).document.documentElement;
}
/**
 * Calculates an appropriate content rectangle for provided html or svg element.
 *
 * @param {Element} target - Element content rectangle of which needs to be calculated.
 * @returns {DOMRectInit}
 */
function getContentRect(target) {
    if (!isBrowser) {
        return emptyRect;
    }
    if (isSVGGraphicsElement(target)) {
        return getSVGContentRect(target);
    }
    return getHTMLElementContentRect(target);
}
/**
 * Creates rectangle with an interface of the DOMRectReadOnly.
 * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly
 *
 * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.
 * @returns {DOMRectReadOnly}
 */
function createReadOnlyRect(_a) {
    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;
    // If DOMRectReadOnly is available use it as a prototype for the rectangle.
    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;
    var rect = Object.create(Constr.prototype);
    // Rectangle's properties are not writable and non-enumerable.
    defineConfigurable(rect, {
        x: x, y: y, width: width, height: height,
        top: y,
        right: x + width,
        bottom: height + y,
        left: x
    });
    return rect;
}
/**
 * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.
 * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit
 *
 * @param {number} x - X coordinate.
 * @param {number} y - Y coordinate.
 * @param {number} width - Rectangle's width.
 * @param {number} height - Rectangle's height.
 * @returns {DOMRectInit}
 */
function createRectInit(x, y, width, height) {
    return { x: x, y: y, width: width, height: height };
}

/**
 * Class that is responsible for computations of the content rectangle of
 * provided DOM element and for keeping track of it's changes.
 */
var ResizeObservation = /** @class */ (function () {
    /**
     * Creates an instance of ResizeObservation.
     *
     * @param {Element} target - Element to be observed.
     */
    function ResizeObservation(target) {
        /**
         * Broadcasted width of content rectangle.
         *
         * @type {number}
         */
        this.broadcastWidth = 0;
        /**
         * Broadcasted height of content rectangle.
         *
         * @type {number}
         */
        this.broadcastHeight = 0;
        /**
         * Reference to the last observed content rectangle.
         *
         * @private {DOMRectInit}
         */
        this.contentRect_ = createRectInit(0, 0, 0, 0);
        this.target = target;
    }
    /**
     * Updates content rectangle and tells whether it's width or height properties
     * have changed since the last broadcast.
     *
     * @returns {boolean}
     */
    ResizeObservation.prototype.isActive = function () {
        var rect = getContentRect(this.target);
        this.contentRect_ = rect;
        return (rect.width !== this.broadcastWidth ||
            rect.height !== this.broadcastHeight);
    };
    /**
     * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data
     * from the corresponding properties of the last observed content rectangle.
     *
     * @returns {DOMRectInit} Last observed content rectangle.
     */
    ResizeObservation.prototype.broadcastRect = function () {
        var rect = this.contentRect_;
        this.broadcastWidth = rect.width;
        this.broadcastHeight = rect.height;
        return rect;
    };
    return ResizeObservation;
}());

var ResizeObserverEntry = /** @class */ (function () {
    /**
     * Creates an instance of ResizeObserverEntry.
     *
     * @param {Element} target - Element that is being observed.
     * @param {DOMRectInit} rectInit - Data of the element's content rectangle.
     */
    function ResizeObserverEntry(target, rectInit) {
        var contentRect = createReadOnlyRect(rectInit);
        // According to the specification following properties are not writable
        // and are also not enumerable in the native implementation.
        //
        // Property accessors are not being used as they'd require to define a
        // private WeakMap storage which may cause memory leaks in browsers that
        // don't support this type of collections.
        defineConfigurable(this, { target: target, contentRect: contentRect });
    }
    return ResizeObserverEntry;
}());

var ResizeObserverSPI = /** @class */ (function () {
    /**
     * Creates a new instance of ResizeObserver.
     *
     * @param {ResizeObserverCallback} callback - Callback function that is invoked
     *      when one of the observed elements changes it's content dimensions.
     * @param {ResizeObserverController} controller - Controller instance which
     *      is responsible for the updates of observer.
     * @param {ResizeObserver} callbackCtx - Reference to the public
     *      ResizeObserver instance which will be passed to callback function.
     */
    function ResizeObserverSPI(callback, controller, callbackCtx) {
        /**
         * Collection of resize observations that have detected changes in dimensions
         * of elements.
         *
         * @private {Array<ResizeObservation>}
         */
        this.activeObservations_ = [];
        /**
         * Registry of the ResizeObservation instances.
         *
         * @private {Map<Element, ResizeObservation>}
         */
        this.observations_ = new MapShim();
        if (typeof callback !== 'function') {
            throw new TypeError('The callback provided as parameter 1 is not a function.');
        }
        this.callback_ = callback;
        this.controller_ = controller;
        this.callbackCtx_ = callbackCtx;
    }
    /**
     * Starts observing provided element.
     *
     * @param {Element} target - Element to be observed.
     * @returns {void}
     */
    ResizeObserverSPI.prototype.observe = function (target) {
        if (!arguments.length) {
            throw new TypeError('1 argument required, but only 0 present.');
        }
        // Do nothing if current environment doesn't have the Element interface.
        if (typeof Element === 'undefined' || !(Element instanceof Object)) {
            return;
        }
        if (!(target instanceof getWindowOf(target).Element)) {
            throw new TypeError('parameter 1 is not of type "Element".');
        }
        var observations = this.observations_;
        // Do nothing if element is already being observed.
        if (observations.has(target)) {
            return;
        }
        observations.set(target, new ResizeObservation(target));
        this.controller_.addObserver(this);
        // Force the update of observations.
        this.controller_.refresh();
    };
    /**
     * Stops observing provided element.
     *
     * @param {Element} target - Element to stop observing.
     * @returns {void}
     */
    ResizeObserverSPI.prototype.unobserve = function (target) {
        if (!arguments.length) {
            throw new TypeError('1 argument required, but only 0 present.');
        }
        // Do nothing if current environment doesn't have the Element interface.
        if (typeof Element === 'undefined' || !(Element instanceof Object)) {
            return;
        }
        if (!(target instanceof getWindowOf(target).Element)) {
            throw new TypeError('parameter 1 is not of type "Element".');
        }
        var observations = this.observations_;
        // Do nothing if element is not being observed.
        if (!observations.has(target)) {
            return;
        }
        observations.delete(target);
        if (!observations.size) {
            this.controller_.removeObserver(this);
        }
    };
    /**
     * Stops observing all elements.
     *
     * @returns {void}
     */
    ResizeObserverSPI.prototype.disconnect = function () {
        this.clearActive();
        this.observations_.clear();
        this.controller_.removeObserver(this);
    };
    /**
     * Collects observation instances the associated element of which has changed
     * it's content rectangle.
     *
     * @returns {void}
     */
    ResizeObserverSPI.prototype.gatherActive = function () {
        var _this = this;
        this.clearActive();
        this.observations_.forEach(function (observation) {
            if (observation.isActive()) {
                _this.activeObservations_.push(observation);
            }
        });
    };
    /**
     * Invokes initial callback function with a list of ResizeObserverEntry
     * instances collected from active resize observations.
     *
     * @returns {void}
     */
    ResizeObserverSPI.prototype.broadcastActive = function () {
        // Do nothing if observer doesn't have active observations.
        if (!this.hasActive()) {
            return;
        }
        var ctx = this.callbackCtx_;
        // Create ResizeObserverEntry instance for every active observation.
        var entries = this.activeObservations_.map(function (observation) {
            return new ResizeObserverEntry(observation.target, observation.broadcastRect());
        });
        this.callback_.call(ctx, entries, ctx);
        this.clearActive();
    };
    /**
     * Clears the collection of active observations.
     *
     * @returns {void}
     */
    ResizeObserverSPI.prototype.clearActive = function () {
        this.activeObservations_.splice(0);
    };
    /**
     * Tells whether observer has active observations.
     *
     * @returns {boolean}
     */
    ResizeObserverSPI.prototype.hasActive = function () {
        return this.activeObservations_.length > 0;
    };
    return ResizeObserverSPI;
}());

// Registry of internal observers. If WeakMap is not available use current shim
// for the Map collection as it has all required methods and because WeakMap
// can't be fully polyfilled anyway.
var observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();
/**
 * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation
 * exposing only those methods and properties that are defined in the spec.
 */
var ResizeObserver = /** @class */ (function () {
    /**
     * Creates a new instance of ResizeObserver.
     *
     * @param {ResizeObserverCallback} callback - Callback that is invoked when
     *      dimensions of the observed elements change.
     */
    function ResizeObserver(callback) {
        if (!(this instanceof ResizeObserver)) {
            throw new TypeError('Cannot call a class as a function.');
        }
        if (!arguments.length) {
            throw new TypeError('1 argument required, but only 0 present.');
        }
        var controller = ResizeObserverController.getInstance();
        var observer = new ResizeObserverSPI(callback, controller, this);
        observers.set(this, observer);
    }
    return ResizeObserver;
}());
// Expose public methods of ResizeObserver.
[
    'observe',
    'unobserve',
    'disconnect'
].forEach(function (method) {
    ResizeObserver.prototype[method] = function () {
        var _a;
        return (_a = observers.get(this))[method].apply(_a, arguments);
    };
});

var index = (function () {
    // Export existing implementation if available.
    if (typeof global$1.ResizeObserver !== 'undefined') {
        return global$1.ResizeObserver;
    }
    return ResizeObserver;
})();

/* harmony default export */ const ResizeObserver_es = (index);

;// CONCATENATED MODULE: ./src/util/scrollbar-width.ts

const getScrollBarWidth = () => {
  const outer = document.createElement('div');
  const outerStyle = outer.style;
  outerStyle.overflow = 'scroll';
  outerStyle.height = '100%';
  outerStyle.visibility = 'hidden';
  outerStyle.width = '100px';
  outerStyle.position = 'absolute';
  outerStyle.top = '-9999px';
  shadowRoot.append(outer);
  const widthNoScroll = outer.offsetWidth;
  outerStyle.overflow = 'scroll';
  const inner = document.createElement('div');
  inner.style.width = '100%';
  outer.appendChild(inner);
  const widthWithScroll = inner.offsetWidth;
  shadowRoot.removeChild(outer);
  return widthNoScroll - widthWithScroll;
};
;// CONCATENATED MODULE: ./src/service/scrollBarWidth/index.tsx


const state = reactivity_esm_bundler_reactive({
  scrollBarWidth: 0,
  devicePixelRatio: null
});

const handleCalc = () => {
  const devicePixelRatio = window.devicePixelRatio;

  if (devicePixelRatio !== null && state.devicePixelRatio === devicePixelRatio) {
    return;
  }

  const w = getScrollBarWidth();
  state.scrollBarWidth = w;
};

const init = () => {
  window.addEventListener('resize', handleCalc);
  handleCalc();
};

const scrollBarWidthService = {
  state,
  init
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/Scrollable/Scrollable.ts?vue&type=script&lang=ts



/* harmony default export */ const Scrollablevue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  setup: props => {
    const refs = {
      container: reactivity_esm_bundler_ref(),
      scrollBox: reactivity_esm_bundler_ref()
    };
    const state = reactivity_esm_bundler_reactive({
      drag: {
        start: false,
        startY: 0,
        startScrollTop: 0
      },
      noScrollBar: true,
      scrollbar: {
        track: {
          top: 0
        },
        thumb: {
          size: '0',
          position: '0'
        }
      }
    });

    const handleScrollbarThumbClick = e => {
      e.preventDefault();

      if (!refs.container.value) {
        return;
      }

      state.drag.start = true;
      state.drag.startY = e.clientY;
      state.drag.startScrollTop = refs.container.value.scrollTop;
    };

    const handleScrollbarThumbMousemove = e => {
      if (!refs.container.value) {
        return;
      }

      if (state.drag.start) {
        e.preventDefault();
        const {
          scrollHeight,
          clientHeight
        } = refs.container.value;
        const scrollSpacePixel = scrollHeight - clientHeight;
        const mouseMovePixel = e.clientY - state.drag.startY;
        const moveDeltaPercentage = mouseMovePixel / clientHeight;
        const scrollDelta = scrollHeight * moveDeltaPercentage;
        let destScrollTop = state.drag.startScrollTop + scrollDelta;

        if (destScrollTop > scrollSpacePixel) {
          destScrollTop = scrollSpacePixel;
        }

        if (destScrollTop < 0) {
          destScrollTop = 0;
        }

        refs.container.value.scrollTop = destScrollTop;
      }
    };

    const handleScrollbarThumbMouseup = () => {
      state.drag.start = false;
    };

    const calcScrollbar = () => {
      if (!refs.container.value) {
        return;
      }

      const {
        scrollTop,
        scrollHeight,
        clientHeight
      } = refs.container.value;
      const sizePercentage = clientHeight / scrollHeight;
      const avaliableScrollSpace = scrollHeight - clientHeight;
      const currentScrollPercentage = scrollTop / avaliableScrollSpace;
      const thumbMaxHeightPercentage = 1 - sizePercentage;
      const thumbTop = thumbMaxHeightPercentage * currentScrollPercentage * 100;
      state.noScrollBar = sizePercentage >= 1;
      const thumbSize = (sizePercentage * 100).toFixed(4);
      const thumbPosition = thumbTop.toFixed(4); // prevent infinite update

      if (state.scrollbar.track.top !== scrollTop) {
        state.scrollbar.track.top = scrollTop;
      }

      if (state.scrollbar.thumb.size !== thumbSize) {
        state.scrollbar.thumb.size = thumbSize;
      }

      if (state.scrollbar.thumb.position !== thumbPosition) {
        state.scrollbar.thumb.position = thumbPosition;
      }
    };

    const thumbStyle = runtime_core_esm_bundler_computed(() => ({
      height: `${state.scrollbar.thumb.size}%`,
      top: `${state.scrollbar.thumb.position}%`
    }));
    const scrollBoxStyle = runtime_core_esm_bundler_computed(() => ({
      'margin-right': `${-scrollBarWidthService.state.scrollBarWidth}px`
    }));
    runtime_core_esm_bundler_onMounted(() => {
      window.addEventListener('mousemove', handleScrollbarThumbMousemove, false);
      window.addEventListener('mouseup', handleScrollbarThumbMouseup, false);
      const ro = new ResizeObserver_es(calcScrollbar);
      window.setTimeout(() => {
        if (refs.container.value) {
          ro.observe(refs.container.value);
        }

        if (refs.scrollBox.value) {
          ro.observe(refs.scrollBox.value);
        }
      });
      calcScrollbar();
      runtime_core_esm_bundler_onUnmounted(() => {
        window.removeEventListener('mousemove', handleScrollbarThumbMousemove, false);
        window.removeEventListener('mouseup', handleScrollbarThumbMouseup, false);
        ro.disconnect();
      });
    });
    onUpdated(() => {
      calcScrollbar();
    });
    return {
      state,
      refs,
      props,
      thumbStyle,
      scrollBoxStyle,
      calcScrollbar,
      handleScrollbarThumbClick
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/Scrollable/Scrollable.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/Scrollable/Scrollable.sass?vue&type=style&index=0&id=5ec67402&lang=sass&scoped=true
var Scrollablevue_type_style_index_0_id_5ec67402_lang_sass_scoped_true = __webpack_require__(5428);
;// CONCATENATED MODULE: ./src/components/Scrollable/Scrollable.sass?vue&type=style&index=0&id=5ec67402&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/components/Scrollable/Scrollable.vue




;


const Scrollable_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(Scrollablevue_type_script_lang_ts, [['render',Scrollablevue_type_template_id_5ec67402_scoped_true_ts_true_render],['__scopeId',"data-v-5ec67402"]])

/* harmony default export */ const Scrollable = (Scrollable_exports_);
;// CONCATENATED MODULE: ./src/assets/img/play/speaker-filled-audio-tool_59284.svg
/* harmony default export */ const speaker_filled_audio_tool_59284 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"512\" height=\"512\" viewBox=\"0 0 93.038 93.038\"><path d=\"M46.547 75.521c0 1.639-.947 3.128-2.429 3.823-.573.271-1.187.402-1.797.402-.966 0-1.923-.332-2.696-.973l-23.098-19.14H4.225C1.892 59.635 0 57.742 0 55.409V38.576c0-2.334 1.892-4.226 4.225-4.226h12.303l23.098-19.14c1.262-1.046 3.012-1.269 4.493-.569 1.481.695 2.429 2.185 2.429 3.823l-.001 57.057zm16.237-6.602c-.103.007-.202.011-.304.011-1.116 0-2.192-.441-2.987-1.237l-.565-.567c-1.482-1.479-1.656-3.822-.408-5.504 3.164-4.266 4.834-9.323 4.834-14.628 0-5.706-1.896-11.058-5.484-15.478-1.366-1.68-1.24-4.12.291-5.65l.564-.565c.844-.844 1.975-1.304 3.199-1.231 1.192.06 2.305.621 3.061 1.545 4.977 6.09 7.606 13.484 7.606 21.38 0 7.354-2.325 14.354-6.725 20.24-.735.981-1.859 1.597-3.082 1.684zm17.468 13.057c-.764.903-1.869 1.445-3.052 1.495-.058.002-.117.004-.177.004-1.119 0-2.193-.442-2.988-1.237l-.555-.555c-1.551-1.55-1.656-4.029-.246-5.707 6.814-8.104 10.568-18.396 10.568-28.982 0-11.011-4.019-21.611-11.314-29.847-1.479-1.672-1.404-4.203.17-5.783l.554-.555c.822-.826 1.89-1.281 3.115-1.242 1.163.033 2.263.547 3.036 1.417 8.818 9.928 13.675 22.718 13.675 36.01.002 12.789-4.539 25.213-12.786 34.982z\"/></svg>\n");
;// CONCATENATED MODULE: ./src/util/events.ts

class EventEmitter {
  constructor() {
    defineProperty_defineProperty(this, "m", {});
  }

  on(e, l) {
    var _this$m$e;

    this.m[e] = (_this$m$e = this.m[e]) !== null && _this$m$e !== void 0 ? _this$m$e : [];
    this.m[e].push(l);
  }

  off(e, l) {
    if (this.m[e]) {
      const index = this.m[e].indexOf(l);

      if (index !== -1) {
        this.m[e].splice(index, 1);
      }
    }
  }

  emit(e, payload) {
    if (this.m[e]) {
      this.m[e].forEach(l => l(payload));
    }
  }

}
;// CONCATENATED MODULE: ./src/service/globalBus/types.ts
var EVENTS;

(function (EVENTS) {
  EVENTS[EVENTS["TRANSLATE"] = 0] = "TRANSLATE";
  EVENTS[EVENTS["HOTKEY_SHOW"] = 1] = "HOTKEY_SHOW";
  EVENTS[EVENTS["HOTKEY_TRANSLATE"] = 2] = "HOTKEY_TRANSLATE";
  EVENTS[EVENTS["OPEN_SETTING"] = 3] = "OPEN_SETTING";
  EVENTS[EVENTS["OPEN_HISTORY"] = 4] = "OPEN_HISTORY";
  EVENTS[EVENTS["OPEN_GOOGLE_DICT_MODAL"] = 5] = "OPEN_GOOGLE_DICT_MODAL";
  EVENTS[EVENTS["HIDE_CIRCLE"] = 6] = "HIDE_CIRCLE";
})(EVENTS || (EVENTS = {}));
;// CONCATENATED MODULE: ./src/service/globalBus/index.ts


/* eslint-disable max-classes-per-file */



class Bus {
  constructor() {
    defineProperty_defineProperty(this, "bus", new EventEmitter());
  }

  on(p) {
    this.bus.on(`${p.event}`, p.listener);
  }

  off(p) {
    this.bus.off(`${p.event}`, p.listener);
  }

  emit(action) {
    this.bus.emit(`${action.type}`, action);
  }

}

const bus = new Bus();
;// CONCATENATED MODULE: ./node_modules/fp-ts/es6/These.js





// -------------------------------------------------------------------------------------
// refinements
// -------------------------------------------------------------------------------------
/**
 * Returns `true` if the these is an instance of `Left`, `false` otherwise
 *
 * @category refinements
 * @since 2.0.0
 */
var These_isLeft = function (fa) { return fa._tag === 'Left'; };
/**
 * Returns `true` if the these is an instance of `Right`, `false` otherwise
 *
 * @category refinements
 * @since 2.0.0
 */
var These_isRight = function (fa) { return fa._tag === 'Right'; };
/**
 * Returns `true` if the these is an instance of `Both`, `false` otherwise
 *
 * @category refinements
 * @since 2.0.0
 */
function isBoth(fa) {
    return fa._tag === 'Both';
}
// -------------------------------------------------------------------------------------
// constructors
// -------------------------------------------------------------------------------------
/**
 * @category constructors
 * @since 2.0.0
 */
function These_left(left) {
    return { _tag: 'Left', left: left };
}
/**
 * @category constructors
 * @since 2.0.0
 */
function These_right(right) {
    return { _tag: 'Right', right: right };
}
/**
 * @category constructors
 * @since 2.0.0
 */
function both(left, right) {
    return { _tag: 'Both', left: left, right: right };
}
/**
 * Less strict version of [`match`](#match).
 *
 * @category destructors
 * @since 2.10.0
 */
var These_matchW = function (onLeft, onRight, onBoth) { return function (fa) {
    switch (fa._tag) {
        case 'Left':
            return onLeft(fa.left);
        case 'Right':
            return onRight(fa.right);
        case 'Both':
            return onBoth(fa.left, fa.right);
    }
}; };
/**
 * Alias of [`matchW`](#matchw).
 *
 * @category destructors
 * @since 2.10.0
 */
var These_foldW = (/* unused pure expression or super */ null && (These_matchW));
/**
 * @category destructors
 * @since 2.10.0
 */
var These_match = These_matchW;
/**
 * Alias of [`match`](#match).
 *
 * @category destructors
 * @since 2.0.0
 */
var These_fold = (/* unused pure expression or super */ null && (These_match));
/**
 * @category combinators
 * @since 2.4.0
 */
var These_swap = These_match(These_right, These_left, function (e, a) { return both(a, e); });
/**
 * @category instances
 * @since 2.0.0
 */
function These_getShow(SE, SA) {
    return {
        show: These_match(function (l) { return "left(" + SE.show(l) + ")"; }, function (a) { return "right(" + SA.show(a) + ")"; }, function (l, a) { return "both(" + SE.show(l) + ", " + SA.show(a) + ")"; })
    };
}
/**
 * @category instances
 * @since 2.0.0
 */
function These_getEq(EE, EA) {
    return fromEquals(function (x, y) {
        return These_isLeft(x)
            ? These_isLeft(y) && EE.equals(x.left, y.left)
            : These_isRight(x)
                ? These_isRight(y) && EA.equals(x.right, y.right)
                : isBoth(y) && EE.equals(x.left, y.left) && EA.equals(x.right, y.right);
    });
}
/**
 * @category instances
 * @since 2.0.0
 */
function These_getSemigroup(SE, SA) {
    return {
        concat: function (x, y) {
            return These_isLeft(x)
                ? These_isLeft(y)
                    ? These_left(SE.concat(x.left, y.left))
                    : These_isRight(y)
                        ? both(x.left, y.right)
                        : both(SE.concat(x.left, y.left), y.right)
                : These_isRight(x)
                    ? These_isLeft(y)
                        ? both(y.left, x.right)
                        : These_isRight(y)
                            ? These_right(SA.concat(x.right, y.right))
                            : both(y.left, SA.concat(x.right, y.right))
                    : These_isLeft(y)
                        ? both(SE.concat(x.left, y.left), x.right)
                        : These_isRight(y)
                            ? both(x.left, SA.concat(x.right, y.right))
                            : both(SE.concat(x.left, y.left), SA.concat(x.right, y.right));
        }
    };
}
/**
 * @category instances
 * @since 2.10.0
 */
var getApply = function (S) { return ({
    URI: These_URI,
    _E: undefined,
    map: These_map,
    ap: function (fab, fa) {
        return These_isLeft(fab)
            ? These_isLeft(fa)
                ? These_left(S.concat(fab.left, fa.left))
                : These_isRight(fa)
                    ? These_left(fab.left)
                    : These_left(S.concat(fab.left, fa.left))
            : These_isRight(fab)
                ? These_isLeft(fa)
                    ? These_left(fa.left)
                    : These_isRight(fa)
                        ? These_right(fab.right(fa.right))
                        : both(fa.left, fab.right(fa.right))
                : These_isLeft(fa)
                    ? These_left(S.concat(fab.left, fa.left))
                    : These_isRight(fa)
                        ? both(fab.left, fab.right(fa.right))
                        : both(S.concat(fab.left, fa.left), fab.right(fa.right));
    }
}); };
/**
 * @category instances
 * @since 2.7.0
 */
function getApplicative(S) {
    var A = getApply(S);
    return {
        URI: These_URI,
        _E: undefined,
        map: These_map,
        ap: A.ap,
        of: These_of
    };
}
/**
 * @category instances
 * @since 2.10.0
 */
function getChain(S) {
    var A = getApply(S);
    var chain = function (ma, f) {
        if (These_isLeft(ma)) {
            return ma;
        }
        if (These_isRight(ma)) {
            return f(ma.right);
        }
        var fb = f(ma.right);
        return These_isLeft(fb)
            ? These_left(S.concat(ma.left, fb.left))
            : These_isRight(fb)
                ? both(ma.left, fb.right)
                : both(S.concat(ma.left, fb.left), fb.right);
    };
    return {
        URI: These_URI,
        _E: undefined,
        map: These_map,
        ap: A.ap,
        chain: chain
    };
}
/**
 * @category instances
 * @since 2.0.0
 */
function getMonad(S) {
    var C = getChain(S);
    return {
        URI: These_URI,
        _E: undefined,
        map: These_map,
        of: These_of,
        ap: C.ap,
        chain: C.chain,
        throwError: These_left
    };
}
/**
 * Returns an `E` value if possible
 *
 * @example
 * import { getLeft, left, right, both } from 'fp-ts/These'
 * import { none, some } from 'fp-ts/Option'
 *
 * assert.deepStrictEqual(getLeft(left('a')), some('a'))
 * assert.deepStrictEqual(getLeft(right(1)), none)
 * assert.deepStrictEqual(getLeft(both('a', 1)), some('a'))
 *
 * @category destructors
 * @since 2.0.0
 */
function getLeft(fa) {
    return These_isLeft(fa) ? _.some(fa.left) : These_isRight(fa) ? _.none : _.some(fa.left);
}
/**
 * Returns an `A` value if possible
 *
 * @example
 * import { getRight, left, right, both } from 'fp-ts/These'
 * import { none, some } from 'fp-ts/Option'
 *
 * assert.deepStrictEqual(getRight(left('a')), none)
 * assert.deepStrictEqual(getRight(right(1)), some(1))
 * assert.deepStrictEqual(getRight(both('a', 1)), some(1))
 *
 * @category destructors
 * @since 2.0.0
 */
function getRight(fa) {
    return These_isLeft(fa) ? _.none : These_isRight(fa) ? _.some(fa.right) : _.some(fa.right);
}
// TODO: make lazy in v3
/**
 * @example
 * import { leftOrBoth, left, both } from 'fp-ts/These'
 * import { none, some } from 'fp-ts/Option'
 *
 * assert.deepStrictEqual(leftOrBoth('a')(none), left('a'))
 * assert.deepStrictEqual(leftOrBoth('a')(some(1)), both('a', 1))
 *
 * @category constructors
 * @since 2.0.0
 */
function leftOrBoth(e) {
    return function (ma) { return (_.isNone(ma) ? These_left(e) : both(e, ma.value)); };
}
// TODO: make lazy in v3
/**
 * @example
 * import { rightOrBoth, right, both } from 'fp-ts/These'
 * import { none, some } from 'fp-ts/Option'
 *
 * assert.deepStrictEqual(rightOrBoth(1)(none), right(1))
 * assert.deepStrictEqual(rightOrBoth(1)(some('a')), both('a', 1))
 *
 * @category constructors
 * @since 2.0.0
 */
function rightOrBoth(a) {
    return function (me) { return (_.isNone(me) ? These_right(a) : both(me.value, a)); };
}
/**
 * Returns the `E` value if and only if the value is constructed with `Left`
 *
 * @example
 * import { getLeftOnly, left, right, both } from 'fp-ts/These'
 * import { none, some } from 'fp-ts/Option'
 *
 * assert.deepStrictEqual(getLeftOnly(left('a')), some('a'))
 * assert.deepStrictEqual(getLeftOnly(right(1)), none)
 * assert.deepStrictEqual(getLeftOnly(both('a', 1)), none)
 *
 * @category destructors
 * @since 2.0.0
 */
function getLeftOnly(fa) {
    return These_isLeft(fa) ? _.some(fa.left) : _.none;
}
/**
 * Returns the `A` value if and only if the value is constructed with `Right`
 *
 * @example
 * import { getRightOnly, left, right, both } from 'fp-ts/These'
 * import { none, some } from 'fp-ts/Option'
 *
 * assert.deepStrictEqual(getRightOnly(left('a')), none)
 * assert.deepStrictEqual(getRightOnly(right(1)), some(1))
 * assert.deepStrictEqual(getRightOnly(both('a', 1)), none)
 *
 * @category destructors
 * @since 2.0.0
 */
function getRightOnly(fa) {
    return These_isRight(fa) ? _.some(fa.right) : _.none;
}
/**
 * Takes a pair of `Option`s and attempts to create a `These` from them
 *
 * @example
 * import { fromOptions, left, right, both } from 'fp-ts/These'
 * import { none, some } from 'fp-ts/Option'
 *
 * assert.deepStrictEqual(fromOptions(none, none), none)
 * assert.deepStrictEqual(fromOptions(some('a'), none), some(left('a')))
 * assert.deepStrictEqual(fromOptions(none, some(1)), some(right(1)))
 * assert.deepStrictEqual(fromOptions(some('a'), some(1)), some(both('a', 1)))
 *
 * @category constructors
 * @since 2.0.0
 */
var fromOptions = function (fe, fa) {
    return _.isNone(fe)
        ? _.isNone(fa)
            ? _.none
            : _.some(These_right(fa.value))
        : _.isNone(fa)
            ? _.some(These_left(fe.value))
            : _.some(both(fe.value, fa.value));
};
// -------------------------------------------------------------------------------------
// non-pipeables
// -------------------------------------------------------------------------------------
var These_map = function (fa, f) { return pipe(fa, es6_These_map(f)); };
/* istanbul ignore next */
var These_bimap = function (fa, f, g) { return pipe(fa, es6_These_bimap(f, g)); };
/* istanbul ignore next */
var These_mapLeft = function (fa, f) { return pipe(fa, es6_These_mapLeft(f)); };
/* istanbul ignore next */
var These_reduce = function (fa, b, f) { return pipe(fa, es6_These_reduce(b, f)); };
/* istanbul ignore next */
var These_foldMap = function (M) {
    var foldMapM = es6_These_foldMap(M);
    return function (fa, f) { return pipe(fa, foldMapM(f)); };
};
/* istanbul ignore next */
var These_reduceRight = function (fa, b, f) { return pipe(fa, es6_These_reduceRight(b, f)); };
/* istanbul ignore next */
var These_traverse = function (F) {
    var traverseF = es6_These_traverse(F);
    return function (ta, f) { return pipe(ta, traverseF(f)); };
};
// -------------------------------------------------------------------------------------
// type class members
// -------------------------------------------------------------------------------------
/**
 * Map a pair of functions over the two type arguments of the bifunctor.
 *
 * @category Bifunctor
 * @since 2.0.0
 */
var es6_These_bimap = function (f, g) { return function (fa) {
    return These_isLeft(fa) ? These_left(f(fa.left)) : These_isRight(fa) ? These_right(g(fa.right)) : both(f(fa.left), g(fa.right));
}; };
/**
 * Map a function over the first type argument of a bifunctor.
 *
 * @category Bifunctor
 * @since 2.0.0
 */
var es6_These_mapLeft = function (f) { return function (fa) {
    return These_isLeft(fa) ? These_left(f(fa.left)) : isBoth(fa) ? both(f(fa.left), fa.right) : fa;
}; };
/**
 * `map` can be used to turn functions `(a: A) => B` into functions `(fa: F<A>) => F<B>` whose argument and return types
 * use the type constructor `F` to represent some computational context.
 *
 * @category Functor
 * @since 2.0.0
 */
var es6_These_map = function (f) { return function (fa) {
    return These_isLeft(fa) ? fa : These_isRight(fa) ? These_right(f(fa.right)) : both(fa.left, f(fa.right));
}; };
/**
 * @category Foldable
 * @since 2.0.0
 */
var es6_These_reduce = function (b, f) { return function (fa) {
    return These_isLeft(fa) ? b : f(b, fa.right);
}; };
/**
 * @category Foldable
 * @since 2.0.0
 */
var es6_These_foldMap = function (M) { return function (f) { return function (fa) {
    return These_isLeft(fa) ? M.empty : f(fa.right);
}; }; };
/**
 * @category Foldable
 * @since 2.0.0
 */
var es6_These_reduceRight = function (b, f) { return function (fa) {
    return These_isLeft(fa) ? b : f(fa.right, b);
}; };
/**
 * @since 2.6.3
 */
var es6_These_traverse = function (F) { return function (f) { return function (ta) {
    return These_isLeft(ta) ? F.of(ta) : These_isRight(ta) ? F.map(f(ta.right), These_right) : F.map(f(ta.right), function (b) { return both(ta.left, b); });
}; }; };
/**
 * @since 2.6.3
 */
var These_sequence = function (F) { return function (ta) {
    return These_isLeft(ta) ? F.of(ta) : These_isRight(ta) ? F.map(ta.right, These_right) : F.map(ta.right, function (b) { return both(ta.left, b); });
}; };
/**
 * @category Pointed
 * @since 2.0.0
 */
var These_of = These_right;
// -------------------------------------------------------------------------------------
// instances
// -------------------------------------------------------------------------------------
/**
 * @category instances
 * @since 2.0.0
 */
var These_URI = 'These';
/**
 * @category instances
 * @since 2.7.0
 */
var These_Functor = {
    URI: These_URI,
    map: These_map
};
/**
 * Derivable from `Functor`.
 *
 * @category combinators
 * @since 2.10.0
 */
var These_flap = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (flap_(These_Functor)));
/**
 * @category instances
 * @since 2.10.0
 */
var These_Pointed = {
    URI: These_URI,
    of: These_of
};
/**
 * @category instances
 * @since 2.7.0
 */
var These_Bifunctor = {
    URI: These_URI,
    bimap: These_bimap,
    mapLeft: These_mapLeft
};
/**
 * @category instances
 * @since 2.11.0
 */
var FromThese = {
    URI: These_URI,
    fromThese: function_identity
};
/**
 * @category instances
 * @since 2.7.0
 */
var These_Foldable = {
    URI: These_URI,
    reduce: These_reduce,
    foldMap: These_foldMap,
    reduceRight: These_reduceRight
};
/**
 * @category instances
 * @since 2.7.0
 */
var These_Traversable = {
    URI: These_URI,
    map: These_map,
    reduce: These_reduce,
    foldMap: These_foldMap,
    reduceRight: These_reduceRight,
    traverse: These_traverse,
    sequence: These_sequence
};
/**
 * @category instances
 * @since 2.10.0
 */
var These_FromEither = {
    URI: These_URI,
    fromEither: function_identity
};
/**
 * @category natural transformations
 * @since 2.10.0
 */
var These_fromOption = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (fromOption_(These_FromEither)));
/**
 * @category combinators
 * @since 2.10.0
 */
var These_fromOptionK = 
/*#__PURE__*/
(/* unused pure expression or super */ null && (fromOptionK_(These_FromEither)));
// -------------------------------------------------------------------------------------
// utils
// -------------------------------------------------------------------------------------
/**
 * @since 2.11.0
 */
var These_elem = function (E) { return function (a) { return function (ma) {
    return These_isLeft(ma) ? false : E.equals(a, ma.right);
}; }; };
/**
 * @since 2.11.0
 */
var These_exists = function (predicate) { return function (ma) {
    return These_isLeft(ma) ? false : predicate(ma.right);
}; };
/**
 * @example
 * import { toTuple2, left, right, both } from 'fp-ts/These'
 *
 * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(left('b')), ['b', 1])
 * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(right(2)), ['a', 2])
 * assert.deepStrictEqual(toTuple2(() => 'a', () => 1)(both('b', 2)), ['b', 2])
 *
 * @since 2.10.0
 */
var toTuple2 = function (e, a) { return function (fa) {
    return These_isLeft(fa) ? [fa.left, a()] : These_isRight(fa) ? [e(), fa.right] : [fa.left, fa.right];
}; };
// -------------------------------------------------------------------------------------
// deprecated
// -------------------------------------------------------------------------------------
/**
 * Use [`toTuple2`](#totuple2) instead.
 *
 * @since 2.0.0
 * @deprecated
 */
var toTuple = function (e, a) {
    return toTuple2(function () { return e; }, function () { return a; });
};
// -------------------------------------------------------------------------------------
// sequence T
// -------------------------------------------------------------------------------------
/**
 * @since 2.11.0
 */
var These_ApT = 
/*#__PURE__*/
These_of(emptyReadonlyArray);
// -------------------------------------------------------------------------------------
// array utils
// -------------------------------------------------------------------------------------
/**
 * Equivalent to `ReadonlyNonEmptyArray#traverseWithIndex(getApplicative(S))`.
 *
 * @since 2.11.0
 */
var These_traverseReadonlyNonEmptyArrayWithIndex = function (S) { return function (f) { return function (as) {
    var e = _.none;
    var t = f(0, _.head(as));
    if (These_isLeft(t)) {
        return t;
    }
    if (isBoth(t)) {
        e = _.some(t.left);
    }
    var out = [t.right];
    for (var i = 1; i < as.length; i++) {
        var t_1 = f(i, as[i]);
        if (These_isLeft(t_1)) {
            return t_1;
        }
        if (isBoth(t_1)) {
            e = _.isNone(e) ? _.some(t_1.left) : _.some(S.concat(e.value, t_1.left));
        }
        out.push(t_1.right);
    }
    return _.isNone(e) ? These_right(out) : both(e.value, out);
}; }; };
/**
 * Equivalent to `ReadonlyArray#traverseWithIndex(getApplicative(S))`.
 *
 * @since 2.11.0
 */
var These_traverseReadonlyArrayWithIndex = function (S) { return function (f) {
    var g = These_traverseReadonlyNonEmptyArrayWithIndex(S)(f);
    return function (as) { return (_.isNonEmpty(as) ? g(as) : These_ApT); };
}; };
// -------------------------------------------------------------------------------------
// deprecated
// -------------------------------------------------------------------------------------
/**
 * Use small, specific instances instead.
 *
 * @category instances
 * @since 2.0.0
 * @deprecated
 */
var these = {
    URI: These_URI,
    map: These_map,
    bimap: These_bimap,
    mapLeft: These_mapLeft,
    reduce: These_reduce,
    foldMap: These_foldMap,
    reduceRight: These_reduceRight,
    traverse: These_traverse,
    sequence: These_sequence
};

;// CONCATENATED MODULE: ./src/util/playAudio.ts
// using web audio api play sound
let context;

const playAudio = async (arrayBuffer, volume = 1) => {
  // https://goo.gl/7K7WLu
  context = context || new AudioContext();

  if (context.state === 'suspended') {
    await context.resume();
  } // make a copy because decodeAudioData detaches arrayBuffer


  const arrayBufferCopy = arrayBuffer.slice(0);
  const audioBuffer = await context.decodeAudioData(arrayBufferCopy); // decode source

  const source = context.createBufferSource();
  source.buffer = audioBuffer; // volumn filter

  const volumnGainNode = context.createGain();
  volumnGainNode.gain.value = volume; // connect them

  source.connect(volumnGainNode);
  volumnGainNode.connect(context.destination);
  source.start();
};

/* harmony default export */ const util_playAudio = (playAudio);
;// CONCATENATED MODULE: ./src/service/audioCache/index.ts

const audioMap = new Map();

const audioCache_has = key => audioMap.has(key);

const play = (key, p1, p2) => {
  const buffer = p1 instanceof ArrayBuffer ? p1 : null;
  const volume = typeof p1 === 'number' ? p1 : p2 !== null && p2 !== void 0 ? p2 : 1;

  if (buffer) {
    audioMap.set(key, buffer);
    util_playAudio(buffer, volume);
    return true;
  }

  const cachedBuffer = audioMap.get(key);

  if (cachedBuffer) {
    util_playAudio(cachedBuffer, volume);
    return true;
  }

  return false;
};

const audioCacheService = {
  has: audioCache_has,
  play
};
;// CONCATENATED MODULE: ./src/provider/Iciba/playAudio.ts



const playAudio_playAudio = async url => {
  if (!url) {
    return;
  }

  const volume = 0.6;

  if (audioCacheService.has(url)) {
    audioCacheService.play(url, volume);
    return;
  }

  const response = await got({
    method: 'GET',
    responseType: 'arraybuffer',
    url
  });

  if (These_isRight(response)) {
    audioCacheService.play(url, response.right.response, volume);
  }
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/Iciba/container/components/pronunciation-item.vue?vue&type=template&id=267555b4&scoped=true&ts=true


const pronunciation_itemvue_type_template_id_267555b4_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-267555b4"), n = n(), _popScopeId(), n);

const pronunciation_itemvue_type_template_id_267555b4_scoped_true_ts_true_hoisted_1 = {
  class: "pronunciation-item flex items-center"
};
const pronunciation_itemvue_type_template_id_267555b4_scoped_true_ts_true_hoisted_2 = [".textContent"];
const pronunciation_itemvue_type_template_id_267555b4_scoped_true_ts_true_hoisted_3 = {
  key: 1,
  class: "ipa text-grey-700 text-12 mr-1"
};
function pronunciation_itemvue_type_template_id_267555b4_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  return openBlock(), createElementBlock("div", pronunciation_itemvue_type_template_id_267555b4_scoped_true_ts_true_hoisted_1, [_ctx.type ? (openBlock(), createElementBlock("div", {
    key: 0,
    class: "ipa-type-name text-grey-600 mr-1 text-12",
    ".textContent": _ctx.type
  }, null, 8, pronunciation_itemvue_type_template_id_267555b4_scoped_true_ts_true_hoisted_2)) : createCommentVNode("", true), _ctx.ipa !== '[]' ? (openBlock(), createElementBlock("div", pronunciation_itemvue_type_template_id_267555b4_scoped_true_ts_true_hoisted_3, toDisplayString(_ctx.ipa), 1)) : createCommentVNode("", true), createBaseVNode("div", {
    class: "play-sound flex flex-center",
    onClick: _cache[0] || (_cache[0] = //@ts-ignore
    (...args) => _ctx.handlePlay && _ctx.handlePlay(...args))
  }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
    svg: _ctx.icon.play
  }, null, 8, ["svg"])])]);
}
;// CONCATENATED MODULE: ./src/provider/Iciba/container/components/pronunciation-item.vue?vue&type=template&id=267555b4&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/Iciba/container/components/pronunciation-item.ts?vue&type=script&lang=ts



/* harmony default export */ const pronunciation_itemvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'IcibaPronunciation',
  components: {
    Scrollable: Scrollable
  },
  props: {
    ipa: {
      type: String,
      required: true
    },
    type: {
      type: String,
      default: ''
    }
  },
  setup: (props, ctx) => {
    const handlePlay = () => {
      ctx.emit('play');
    };

    return {
      props,
      handlePlay,
      icon: {
        play: speaker_filled_audio_tool_59284
      }
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/Iciba/container/components/pronunciation-item.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/Iciba/container/components/pronunciation-item.sass?vue&type=style&index=0&id=267555b4&lang=sass&scoped=true
var pronunciation_itemvue_type_style_index_0_id_267555b4_lang_sass_scoped_true = __webpack_require__(8122);
;// CONCATENATED MODULE: ./src/provider/Iciba/container/components/pronunciation-item.sass?vue&type=style&index=0&id=267555b4&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/Iciba/container/components/pronunciation-item.vue




;


const pronunciation_item_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(pronunciation_itemvue_type_script_lang_ts, [['render',pronunciation_itemvue_type_template_id_267555b4_scoped_true_ts_true_render],['__scopeId',"data-v-267555b4"]])

/* harmony default export */ const pronunciation_item = (pronunciation_item_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/Iciba/container/index.ts?vue&type=script&lang=ts









const isBaseInfoBaseInfoNormal = p => !!p && 'translate_type' in p && !('translate_result' in p);

const isBaseInfoTranslate = p => !!p && 'translate_type' in p && 'translate_result' in p;

const isBaseInfoSuggestion = p => !!p && 'translate_type' in p && 'suggest' in p;

const normalizeCiyi = p => typeof p === 'string' ? [p] : p;

const isSymbolCN = p => 'word_symbol' in p;

const isSymbolEN = p => !('word_symbol' in p);

/* harmony default export */ const containervue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'IcibaContainer',
  components: {
    IcibaPronunciation: pronunciation_item,
    Scrollable: Scrollable
  },
  setup: () => {
    const seperateChineseJieshi = s => {
      const match = /[((](.{1,3})[))](.+)/.exec(s);

      if (match) {
        return [match[1], match[2]];
      }

      return ['', s];
    };

    const handleSuggestionClick = word => {
      bus.emit({
        type: EVENTS.TRANSLATE,
        word,
        param: {
          provider: IcibaProvider.id
        }
      });
    };

    const handlePlay = url => {
      if (!url) {
        return;
      }

      playAudio_playAudio(url);
    };

    return {
      icon: {
        play_speaker_filled_audio_tool_59284: speaker_filled_audio_tool_59284
      },
      isBaseInfoBaseInfoNormal,
      isBaseInfoTranslate,
      isBaseInfoSuggestion,
      isSymbolCN,
      isSymbolEN,
      handlePlay,
      handleSuggestionClick,
      result: runtime_core_esm_bundler_computed(() => containerData.data),
      seperateChineseJieshi,
      normalizeCiyi
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/Iciba/container/index.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/Iciba/container/index.sass?vue&type=style&index=0&id=08018802&lang=sass&scoped=true
var containervue_type_style_index_0_id_08018802_lang_sass_scoped_true = __webpack_require__(5112);
;// CONCATENATED MODULE: ./src/provider/Iciba/container/index.sass?vue&type=style&index=0&id=08018802&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/Iciba/container/index.vue




;


const container_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(containervue_type_script_lang_ts, [['render',containervue_type_template_id_08018802_scoped_true_ts_true_render],['__scopeId',"data-v-08018802"]])

/* harmony default export */ const container = (container_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/Iciba/settings/index.vue?vue&type=template&id=7b4ed053&ts=true

const settingsvue_type_template_id_7b4ed053_ts_true_hoisted_1 = {
  class: "flex-col items-start"
};
function settingsvue_type_template_id_7b4ed053_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_provider_common = resolveComponent("provider-common");

  const _component_i_checkbox_line = resolveComponent("i-checkbox-line");

  return openBlock(), createElementBlock("div", settingsvue_type_template_id_7b4ed053_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_provider_common, {
    icon: _ctx.form.icon,
    "onUpdate:icon": _cache[0] || (_cache[0] = $event => _ctx.form.icon = $event),
    display: _ctx.form.display,
    "onUpdate:display": _cache[1] || (_cache[1] = $event => _ctx.form.display = $event),
    "enable-hotkey": _ctx.form.enableHotkey,
    "onUpdate:enable-hotkey": _cache[2] || (_cache[2] = $event => _ctx.form.enableHotkey = $event),
    hotkey: _ctx.form.hotkey,
    "onUpdate:hotkey": _cache[3] || (_cache[3] = $event => _ctx.form.hotkey = $event),
    name: "iciba",
    icons: _ctx.iconOptions
  }, null, 8, ["icon", "display", "enable-hotkey", "hotkey", "icons"]), runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
    modelValue: _ctx.form.lowerCaseCapital,
    "onUpdate:modelValue": _cache[4] || (_cache[4] = $event => _ctx.form.lowerCaseCapital = $event),
    label: "查词首字母转换小写",
    text: "查词的单词首字母自动转换为小写"
  }, null, 8, ["modelValue"])]);
}
;// CONCATENATED MODULE: ./src/provider/Iciba/settings/index.vue?vue&type=template&id=7b4ed053&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/providerCommon/providerCommon.vue?vue&type=template&id=69ebbc9e&ts=true

const providerCommonvue_type_template_id_69ebbc9e_ts_true_hoisted_1 = {
  class: "flex-col items-start"
};

const providerCommonvue_type_template_id_69ebbc9e_ts_true_hoisted_2 = /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mt-1 mb-0"
}, " 按钮图标 ", -1);

const providerCommonvue_type_template_id_69ebbc9e_ts_true_hoisted_3 = {
  class: "text-14 text-grey-400 mb-0"
};
function providerCommonvue_type_template_id_69ebbc9e_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_icon_radio_group = resolveComponent("icon-radio-group");

  const _component_i_checkbox_line = resolveComponent("i-checkbox-line");

  const _component_i_hotkey_input = resolveComponent("i-hotkey-input");

  const _component_foldable = resolveComponent("foldable");

  return openBlock(), createElementBlock("div", providerCommonvue_type_template_id_69ebbc9e_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_icon_radio_group, {
    "model-value": _ctx.props.icon,
    "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => _ctx.handleUpdateIcon($event)),
    icons: _ctx.props.icons
  }, null, 8, ["model-value", "icons"]), providerCommonvue_type_template_id_69ebbc9e_ts_true_hoisted_2, runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
    "model-value": _ctx.props.display,
    "onUpdate:modelValue": _cache[1] || (_cache[1] = $event => _ctx.handleUpdateDisplay($event)),
    label: "显示按钮",
    text: "输入框右侧显示按钮图标"
  }, null, 8, ["model-value"]), runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
    "model-value": _ctx.props.enableHotkey,
    "onUpdate:modelValue": _cache[2] || (_cache[2] = $event => _ctx.handleUpdateEnableHotkey($event)),
    label: "启用热键翻译",
    text: ""
  }, null, 8, ["model-value"]), runtime_core_esm_bundler_createVNode(_component_foldable, {
    fold: !_ctx.props.enableHotkey
  }, {
    default: withCtx(() => [runtime_core_esm_bundler_createVNode(_component_i_hotkey_input, {
      class: "my-1",
      "model-value": _ctx.props.hotkey,
      "onUpdate:modelValue": _cache[3] || (_cache[3] = $event => _ctx.handleUpdateHotkey($event))
    }, null, 8, ["model-value"])]),
    _: 1
  }, 8, ["fold"]), createBaseVNode("p", providerCommonvue_type_template_id_69ebbc9e_ts_true_hoisted_3, " 选中文本后按下热键使用 " + toDisplayString(_ctx.props.name) + " 查词 ", 1)]);
}
;// CONCATENATED MODULE: ./src/components/providerCommon/providerCommon.vue?vue&type=template&id=69ebbc9e&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/Foldable/Foldable.vue?vue&type=template&id=6ee37b54&ts=true

function Foldablevue_type_template_id_6ee37b54_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", {
    class: "w-full overflow-hidden",
    ref: _ctx.refs.root,
    style: normalizeStyle({
      height: _ctx.state.height
    })
  }, [createBaseVNode("div", {
    class: "flex-col",
    ref: _ctx.refs.wrapper
  }, [renderSlot(_ctx.$slots, "default")], 512)], 4);
}
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/Foldable/Foldable.ts?vue&type=script&lang=ts

/* harmony default export */ const Foldablevue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GFoldable',
  props: {
    fold: {
      type: Boolean,
      default: false
    },
    duration: {
      type: Number,
      default: 300
    }
  },
  setup: props => {
    const refs = {
      root: reactivity_esm_bundler_ref(),
      wrapper: reactivity_esm_bundler_ref()
    };
    const state = reactivity_esm_bundler_reactive({
      height: props.fold ? '0' : 'auto'
    });

    const doFold = () => {
      if (!refs.root.value || !refs.wrapper.value) {
        return;
      }

      state.height = 'auto';
      refs.root.value.animate([{
        height: `${refs.wrapper.value.clientHeight}px`
      }, {
        height: '0'
      }], {
        duration: props.duration,
        easing: 'cubic-bezier(0.4, 0, 0.2, 1)'
      });
      state.height = '0';
    };

    const doExpand = () => {
      if (!refs.root.value || !refs.wrapper.value) {
        return;
      }

      state.height = 'auto';
      const full = refs.wrapper.value.clientHeight;
      state.height = '0';
      refs.root.value.animate([{
        height: '0px'
      }, {
        height: `${full}px`
      }], {
        duration: props.duration,
        easing: 'cubic-bezier(0.4, 0, 0.2, 1)'
      });
      state.height = 'auto';
    };

    watch(() => props.fold, () => {
      if (props.fold) {
        doFold();
      } else {
        doExpand();
      }
    });
    return {
      props,
      refs,
      state
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/Foldable/Foldable.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/components/Foldable/Foldable.vue




;
const Foldable_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(Foldablevue_type_script_lang_ts, [['render',Foldablevue_type_template_id_6ee37b54_ts_true_render]])

/* harmony default export */ const Foldable_Foldable = (Foldable_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/IconRadioGroup/IconRadioGroup.vue?vue&type=template&id=fc866c20&scoped=true&ts=true


const IconRadioGroupvue_type_template_id_fc866c20_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-fc866c20"), n = n(), _popScopeId(), n);

const IconRadioGroupvue_type_template_id_fc866c20_scoped_true_ts_true_hoisted_1 = {
  class: "icon-radio flex select-none"
};
const IconRadioGroupvue_type_template_id_fc866c20_scoped_true_ts_true_hoisted_2 = ["onClick"];
const IconRadioGroupvue_type_template_id_fc866c20_scoped_true_ts_true_hoisted_3 = {
  key: 1,
  class: "check-icon absolute rounded-full bg-white text-20"
};
function IconRadioGroupvue_type_template_id_fc866c20_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  return openBlock(), createElementBlock("div", IconRadioGroupvue_type_template_id_fc866c20_scoped_true_ts_true_hoisted_1, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.props.icons, icon => {
    return openBlock(), createElementBlock("div", {
      class: "icon-box flex relative p-2 grow-0",
      key: icon.key,
      onClick: $event => _ctx.handleSelect(icon.key)
    }, [icon.icon ? (openBlock(), createBlock(_component_i_icon, {
      key: 0,
      size: "100%",
      svg: icon.icon
    }, null, 8, ["svg"])) : createCommentVNode("", true), renderSlot(_ctx.$slots, icon.key, {}, undefined, true), icon.key === _ctx.props.modelValue ? (openBlock(), createElementBlock("div", IconRadioGroupvue_type_template_id_fc866c20_scoped_true_ts_true_hoisted_3, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
      size: "20",
      svg: _ctx.checkedIconSvg
    }, null, 8, ["svg"])])) : createCommentVNode("", true)], 8, IconRadioGroupvue_type_template_id_fc866c20_scoped_true_ts_true_hoisted_2);
  }), 128))]);
}
;// CONCATENATED MODULE: ./src/components/IconRadioGroup/IconRadioGroup.vue?vue&type=template&id=fc866c20&scoped=true&ts=true

;// CONCATENATED MODULE: ./src/assets/img/checked_291201.svg
/* harmony default export */ const checked_291201 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 426.667 426.667\"><path d=\"M213.333 0C95.518 0 0 95.514 0 213.333s95.518 213.333 213.333 213.333c117.828 0 213.333-95.514 213.333-213.333S331.157 0 213.333 0zm-39.134 322.918l-93.935-93.931 31.309-31.309 62.626 62.622 140.894-140.898 31.309 31.309-172.203 172.207z\" fill=\"#80bf40\"/></svg>\n");
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/IconRadioGroup/IconRadioGroup.ts?vue&type=script&lang=ts


/* harmony default export */ const IconRadioGroupvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  props: {
    modelValue: {
      type: String,
      required: true
    },
    icons: {
      type: null,
      required: true
    }
  },
  setup: (props, context) => {
    const handleSelect = key => {
      context.emit('update:modelValue', key);
    };

    return {
      props,
      handleSelect,
      checkedIconSvg: checked_291201
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/IconRadioGroup/IconRadioGroup.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/IconRadioGroup/IconRadioGroup.sass?vue&type=style&index=0&id=fc866c20&lang=sass&scoped=true
var IconRadioGroupvue_type_style_index_0_id_fc866c20_lang_sass_scoped_true = __webpack_require__(3959);
;// CONCATENATED MODULE: ./src/components/IconRadioGroup/IconRadioGroup.sass?vue&type=style&index=0&id=fc866c20&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/components/IconRadioGroup/IconRadioGroup.vue




;


const IconRadioGroup_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(IconRadioGroupvue_type_script_lang_ts, [['render',IconRadioGroupvue_type_template_id_fc866c20_scoped_true_ts_true_render],['__scopeId',"data-v-fc866c20"]])

/* harmony default export */ const IconRadioGroup = (IconRadioGroup_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/providerCommon/providerCommon.ts?vue&type=script&lang=ts



/* harmony default export */ const providerCommonvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'ProviderCommon',
  components: {
    Foldable: Foldable_Foldable,
    IconRadioGroup: IconRadioGroup
  },
  props: {
    display: Boolean,
    enableHotkey: Boolean,
    icon: null,
    hotkey: null,
    name: {
      type: String,
      required: true
    },
    icons: {
      type: null,
      required: true
    }
  },
  setup: (props, ctx) => {
    const handleUpdateIcon = icon => {
      ctx.emit('update:icon', icon);
    };

    const handleUpdateDisplay = display => {
      ctx.emit('update:display', display);
    };

    const handleUpdateEnableHotkey = enableHotkey => {
      ctx.emit('update:enableHotkey', enableHotkey);
    };

    const handleUpdateHotkey = hotkey => {
      ctx.emit('update:hotkey', hotkey);
    };

    return {
      props,
      handleUpdateIcon,
      handleUpdateDisplay,
      handleUpdateEnableHotkey,
      handleUpdateHotkey
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/providerCommon/providerCommon.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/components/providerCommon/providerCommon.vue




;
const providerCommon_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(providerCommonvue_type_script_lang_ts, [['render',providerCommonvue_type_template_id_69ebbc9e_ts_true_render]])

/* harmony default export */ const providerCommon = (providerCommon_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/Iciba/settings/index.ts?vue&type=script&lang=ts




const iconOptions = Object.entries(icons).map(([k, v]) => ({
  icon: v,
  key: k
}));
/* harmony default export */ const settingsvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'IcibaSettings',
  components: {
    ProviderCommon: providerCommon
  },
  setup: () => ({
    form: store.data,
    iconOptions
  })
}));
;// CONCATENATED MODULE: ./src/provider/Iciba/settings/index.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/Iciba/settings/index.vue




;
const settings_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(settingsvue_type_script_lang_ts, [['render',settingsvue_type_template_id_7b4ed053_ts_true_render]])

/* harmony default export */ const settings = (settings_exports_);
;// CONCATENATED MODULE: ./src/provider/Iciba/index.ts






const IcibaProvider = createProvider({
  id: 'ICIBA',
  label: 'Iciba',
  translate: translate,
  translateView: container,
  settingView: settings,
  icons: icons,
  storeWrapper: store,
  storeType: storeType,
  defaultStore: defaultStore
});
// EXTERNAL MODULE: ./node_modules/core-js-pure/stable/url-search-params/index.js
var url_search_params = __webpack_require__(5765);
var url_search_params_default = /*#__PURE__*/__webpack_require__.n(url_search_params);
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/data.ts

const data_containerData = reactivity_esm_bundler_reactive({
  data: null,
  word: ''
});
;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/container/data.ts

const data = {
  data: null,
  inputText: ''
};
/* harmony default export */ const container_data = (reactivity_esm_bundler_reactive(data));
;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/googleLanguages.ts
var GOOGLE_LANGUAGES;

(function (GOOGLE_LANGUAGES) {
  GOOGLE_LANGUAGES["de"] = "de";
  GOOGLE_LANGUAGES["es"] = "es";
  GOOGLE_LANGUAGES["fr"] = "fr";
  GOOGLE_LANGUAGES["it"] = "it";
  GOOGLE_LANGUAGES["ja"] = "ja";
  GOOGLE_LANGUAGES["ru"] = "ru";
  GOOGLE_LANGUAGES["zh"] = "zh-CN";
  GOOGLE_LANGUAGES["en"] = "en";
})(GOOGLE_LANGUAGES || (GOOGLE_LANGUAGES = {}));

const GOOGLE_LANGUAGE_MAP = {
  [GOOGLE_LANGUAGES.de]: '德语',
  [GOOGLE_LANGUAGES.es]: '西班牙语',
  [GOOGLE_LANGUAGES.fr]: '法语',
  [GOOGLE_LANGUAGES.it]: '意大利语',
  [GOOGLE_LANGUAGES.ja]: '日语',
  [GOOGLE_LANGUAGES.ru]: '俄语',
  [GOOGLE_LANGUAGES.en]: '英语',
  [GOOGLE_LANGUAGES.zh]: '中文'
};
const googleLanguagesOptions = Object.entries(GOOGLE_LANGUAGE_MAP).map(([k, v]) => ({
  text: v,
  key: k
})); // languages
// [
//   {
//     key: 'af',
//     text: 'Afrikaans',
//   },
//   {
//     key: 'sq',
//     text: 'Albanian',
//   },
//   {
//     key: 'am',
//     text: 'Amharic',
//   },
//   {
//     key: 'ar',
//     text: 'Arabic',
//   },
//   {
//     key: 'hy',
//     text: 'Armenian',
//   },
//   {
//     key: 'az',
//     text: 'Azerbaijani',
//   },
//   {
//     key: 'eu',
//     text: 'Basque',
//   },
//   {
//     key: 'be',
//     text: 'Belarusian',
//   },
//   {
//     key: 'bn',
//     text: 'Bengali',
//   },
//   {
//     key: 'bs',
//     text: 'Bosnian',
//   },
//   {
//     key: 'bg',
//     text: 'Bulgarian',
//   },
//   {
//     key: 'ca',
//     text: 'Catalan',
//   },
//   {
//     key: 'ceb',
//     text: 'Cebuano',
//   },
//   {
//     key: 'ny',
//     text: 'Chichewa',
//   },
//   {
//     key: 'zh-CN',
//     text: 'Chinese',
//   },
//   {
//     key: 'co',
//     text: 'Corsican',
//   },
//   {
//     key: 'hr',
//     text: 'Croatian',
//   },
//   {
//     key: 'cs',
//     text: 'Czech',
//   },
//   {
//     key: 'da',
//     text: 'Danish',
//   },
//   {
//     key: 'nl',
//     text: 'Dutch',
//   },
//   {
//     key: 'en',
//     text: 'English',
//   },
//   {
//     key: 'eo',
//     text: 'Esperanto',
//   },
//   {
//     key: 'et',
//     text: 'Estonian',
//   },
//   {
//     key: 'tl',
//     text: 'Filipino',
//   },
//   {
//     key: 'fi',
//     text: 'Finnish',
//   },
//   {
//     key: 'fr',
//     text: 'French',
//   },
//   {
//     key: 'fy',
//     text: 'Frisian',
//   },
//   {
//     key: 'gl',
//     text: 'Galician',
//   },
//   {
//     key: 'ka',
//     text: 'Georgian',
//   },
//   {
//     key: 'de',
//     text: 'German',
//   },
//   {
//     key: 'el',
//     text: 'Greek',
//   },
//   {
//     key: 'gu',
//     text: 'Gujarati',
//   },
//   {
//     key: 'ht',
//     text: 'Haitian Creole',
//   },
//   {
//     key: 'ha',
//     text: 'Hausa',
//   },
//   {
//     key: 'haw',
//     text: 'Hawaiian',
//   },
//   {
//     key: 'iw',
//     text: 'Hebrew',
//   },
//   {
//     key: 'hi',
//     text: 'Hindi',
//   },
//   {
//     key: 'hmn',
//     text: 'Hmong',
//   },
//   {
//     key: 'hu',
//     text: 'Hungarian',
//   },
//   {
//     key: 'is',
//     text: 'Icelandic',
//   },
//   {
//     key: 'ig',
//     text: 'Igbo',
//   },
//   {
//     key: 'id',
//     text: 'Indonesian',
//   },
//   {
//     key: 'ga',
//     text: 'Irish',
//   },
//   {
//     key: 'it',
//     text: 'Italian',
//   },
//   {
//     key: 'ja',
//     text: 'Japanese',
//   },
//   {
//     key: 'jw',
//     text: 'Javanese',
//   },
//   {
//     key: 'kn',
//     text: 'Kannada',
//   },
//   {
//     key: 'kk',
//     text: 'Kazakh',
//   },
//   {
//     key: 'km',
//     text: 'Khmer',
//   },
//   {
//     key: 'ko',
//     text: 'Korean',
//   },
//   {
//     key: 'ku',
//     text: 'Kurdish (Kurmanji)',
//   },
//   {
//     key: 'ky',
//     text: 'Kyrgyz',
//   },
//   {
//     key: 'lo',
//     text: 'Lao',
//   },
//   {
//     key: 'la',
//     text: 'Latin',
//   },
//   {
//     key: 'lv',
//     text: 'Latvian',
//   },
//   {
//     key: 'lt',
//     text: 'Lithuanian',
//   },
//   {
//     key: 'lb',
//     text: 'Luxembourgish',
//   },
//   {
//     key: 'mk',
//     text: 'Macedonian',
//   },
//   {
//     key: 'mg',
//     text: 'Malagasy',
//   },
//   {
//     key: 'ms',
//     text: 'Malay',
//   },
//   {
//     key: 'ml',
//     text: 'Malayalam',
//   },
//   {
//     key: 'mt',
//     text: 'Maltese',
//   },
//   {
//     key: 'mi',
//     text: 'Maori',
//   },
//   {
//     key: 'mr',
//     text: 'Marathi',
//   },
//   {
//     key: 'mn',
//     text: 'Mongolian',
//   },
//   {
//     key: 'my',
//     text: 'Myanmar (Burmese)',
//   },
//   {
//     key: 'ne',
//     text: 'Nepali',
//   },
//   {
//     key: 'no',
//     text: 'Norwegian',
//   },
//   {
//     key: 'ps',
//     text: 'Pashto',
//   },
//   {
//     key: 'fa',
//     text: 'Persian',
//   },
//   {
//     key: 'pl',
//     text: 'Polish',
//   },
//   {
//     key: 'pt',
//     text: 'Portuguese',
//   },
//   {
//     key: 'pa',
//     text: 'Punjabi',
//   },
//   {
//     key: 'ro',
//     text: 'Romanian',
//   },
//   {
//     key: 'ru',
//     text: 'Russian',
//   },
//   {
//     key: 'sm',
//     text: 'Samoan',
//   },
//   {
//     key: 'gd',
//     text: 'Scots Gaelic',
//   },
//   {
//     key: 'sr',
//     text: 'Serbian',
//   },
//   {
//     key: 'st',
//     text: 'Sesotho',
//   },
//   {
//     key: 'sn',
//     text: 'Shona',
//   },
//   {
//     key: 'sd',
//     text: 'Sindhi',
//   },
//   {
//     key: 'si',
//     text: 'Sinhala',
//   },
//   {
//     key: 'sk',
//     text: 'Slovak',
//   },
//   {
//     key: 'sl',
//     text: 'Slovenian',
//   },
//   {
//     key: 'so',
//     text: 'Somali',
//   },
//   {
//     key: 'es',
//     text: 'Spanish',
//   },
//   {
//     key: 'su',
//     text: 'Sundanese',
//   },
//   {
//     key: 'sw',
//     text: 'Swahili',
//   },
//   {
//     key: 'sv',
//     text: 'Swedish',
//   },
//   {
//     key: 'tg',
//     text: 'Tajik',
//   },
//   {
//     key: 'ta',
//     text: 'Tamil',
//   },
//   {
//     key: 'te',
//     text: 'Telugu',
//   },
//   {
//     key: 'th',
//     text: 'Thai',
//   },
//   {
//     key: 'tr',
//     text: 'Turkish',
//   },
//   {
//     key: 'uk',
//     text: 'Ukrainian',
//   },
//   {
//     key: 'ur',
//     text: 'Urdu',
//   },
//   {
//     key: 'uz',
//     text: 'Uzbek',
//   },
//   {
//     key: 'vi',
//     text: 'Vietnamese',
//   },
//   {
//     key: 'cy',
//     text: 'Welsh',
//   },
//   {
//     key: 'xh',
//     text: 'Xhosa',
//   },
//   {
//     key: 'yi',
//     text: 'Yiddish',
//   },
//   {
//     key: 'yo',
//     text: 'Yoruba',
//   },
//   {
//     key: 'zu',
//     text: 'Zulu',
//   },
// ]
;// CONCATENATED MODULE: ./src/assets/img/providerIcon/googleTranslate/type_2_translate_281776.svg
/* harmony default export */ const type_2_translate_281776 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><g fill=\"#e6e6e6\"><path d=\"M376.5 317c-9 12.5-19.4 25-30.8 36.5l-39.4-118.9H423.1s-16.5 41-46.6 82.5z\"/><path d=\"M376.5 317c30.1-41.4 46.6-82.4 46.6-82.4H306.3l-43.8-132.3h207.8a31.6 31.6 0 0 1 31.7 31.6v332.4a31.6 31.6 0 0 1-31.7 31.7H281.4l82.9-88.3-18.6-56.2c11.4-11.4 21.8-24 30.8-36.4z\"/></g><path fill=\"#3a5bbc\" d=\"M364.3 409.7L281.4 498 252 409.7z\"/><path d=\"M345.7 353.5l18.6 56.2H41.7A31.6 31.6 0 0 1 10 378.1V45.7A31.6 31.6 0 0 1 41.7 14h191.6l29.2 88.3 43.8 132.3 39.4 119z\" fill=\"#518ef8\"/><path d=\"M153.5 286.1A74.6 74.6 0 1 1 206.2 159a10 10 0 0 1-14.2 14.2 54.5 54.5 0 1 0 15 48.5h-53.5a10 10 0 0 1 0-20H218a10 10 0 0 1 10 10c0 41.1-33.4 74.5-74.5 74.5z\" fill=\"#fff\"/><path d=\"M470.3 92.2H269.7l-27-81.3a10 10 0 0 0-9.4-6.9H41.7C18.7 4 0 22.7 0 45.7V378c0 23 18.7 41.7 41.7 41.7h203.1l27 81.3a10 10 0 0 0 9.6 6.9h189c23 0 41.6-18.7 41.6-41.7V134c0-23-18.7-41.7-41.7-41.7zM20.1 378.1V45.7c0-12 9.6-21.6 21.6-21.6H226l110 332.3 14.4 43.3H41.7c-12 0-21.6-9.7-21.6-21.6zm387.5-133.5a442 442 0 0 1-31.7 55.8 859.6 859.6 0 0 1-22.2-28.9 10 10 0 1 0-16.2 11.8c.4.6 10.4 14.4 26.3 34-4.6 6-9.2 11.7-14 17l-29.6-89.7h87.4zM266 419.8h75.2l-55.5 59-19.7-59zm226 46.5c0 12-9.6 21.6-21.6 21.6H304.6l67-71.3a9.9 9.9 0 0 0 2.2-10l-16.7-50.4a312 312 0 0 0 19.8-23 803 803 0 0 0 45.8 50.2c2 2 4.5 3 7 3s5.2-1 7.2-3c3.9-4 3.9-10.3 0-14.2a795.9 795.9 0 0 1-47.7-52.6c21.2-30.6 35-59.6 40.5-72h21.5a10 10 0 0 0 0-20H385v-18a10 10 0 0 0-20 0v18h-51.5l-37.1-112.3h194c11.9 0 21.5 9.7 21.5 21.6v332.4z\" fill=\"#333\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/providerIcon/googleTranslate/type_2_translate_324121.svg
/* harmony default export */ const type_2_translate_324121 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M185.8 105.7h277a38.7 38.7 0 0 1 38.7 38.7v318.5a38.7 38.7 0 0 1-38.6 38.7H280.5l-94.7-396z\" fill=\"#fff\"/><path fill=\"#0084ff\" d=\"M361.1 406.3l-80.6 95.2-31.7-95.2z\"/><path d=\"M361.1 406.3h-312a38.7 38.7 0 0 1-38.7-38.7V49.1a38.7 38.7 0 0 1 38.7-38.7h182.4l129.6 396z\" fill=\"#10bafc\"/><path d=\"M462.9 95.2H270.3l-28.8-88a10.5 10.5 0 0 0-10-7.2H49.1C22.1 0 0 22 0 49.1v318.5c0 27.1 22 49.2 49.1 49.2h192.2l29.3 88c1.4 4.3 5.4 7.2 9.9 7.2h182.4c27 0 49.1-22 49.1-49.1V144.4c0-27.1-22-49.2-49.1-49.2zm-442 272.4V49.1A28.3 28.3 0 0 1 49.1 21H224l122.7 375H49.1A28.3 28.3 0 0 1 21 367.6zm390.5-126.2a273 273 0 0 1-31.1 51 285.2 285.2 0 0 1-31.1-51h62.2zm-85 0a268 268 0 0 0 24 45.1c4.5 6.9 10 14.5 16.3 22.5-6 6.7-12.6 13.5-19.8 20.2l-28.8-87.8h8.3zm-63.1 175.4h75.3l-54 63.8-21.3-63.8zm227.8 46a28.3 28.3 0 0 1-28.2 28.3H303l66-77.8a10.4 10.4 0 0 0 1.9-10.9L354 351c9.8-8.5 18.5-17.2 26.3-25.8 17.6 19.4 40.5 40 69.8 57.9a10.4 10.4 0 0 0 14.4-3.5c3-4.9 1.5-11.3-3.5-14.3a297.9 297.9 0 0 1-67-56.2 282.2 282.2 0 0 0 40.2-67.6H465a10.4 10.4 0 0 0 0-21h-75v-17.7a10.4 10.4 0 0 0-20.8 0v17.8h-58l-34-104.4h185.7a28.3 28.3 0 0 1 28.2 28.3v318.5z\"/><path d=\"M147 286.4a77 77 0 0 0 77-77c0-5.7-4.6-10.4-10.4-10.4h-59.2a10.4 10.4 0 1 0 0 21h47.8a56.2 56.2 0 1 1-18.8-53.2 10.4 10.4 0 1 0 13.6-16 77 77 0 1 0-50 135.6zM201.6 351.4H197a10.4 10.4 0 0 0 0 21h4.7a10.4 10.4 0 0 0 0-21zM163.1 351.4H61.6a10.4 10.4 0 0 0 0 21h101.5a10.4 10.4 0 0 0 0-21z\"/></svg>\n");
;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/icons.ts




const icons_icons = {
  type_1_translate_281759: type_1_translate_281759,
  type_2_translate_281776: type_2_translate_281776,
  type_2_translate_324121: type_2_translate_324121,
  type_3_google_814137: type_3_google_814137
};
;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/store/index.ts


function GoogleTranslate_store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function GoogleTranslate_store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? GoogleTranslate_store_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : GoogleTranslate_store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }







const googleLanguage = enumType(GOOGLE_LANGUAGES, 'GOOGLE_LANGUAGES');
const store_storeType = fallbackInterface(GoogleTranslate_store_objectSpread(GoogleTranslate_store_objectSpread({}, providerCommonStore), {}, {
  icon: fallback(keyof(icons_icons), 'type_1_translate_281759'),
  display: fallback(es6_boolean, true),
  targetLanguage: fallback(googleLanguage, GOOGLE_LANGUAGES.zh),
  secondTargetLanguage: fallback(googleLanguage, GOOGLE_LANGUAGES.en),
  xsrfToken: fallback(string, '')
}));
const store_defaultStore = store_storeType.defaultData;
const store_store = {
  data: null
};
;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/translate.ts


function translate_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function translate_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? translate_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : translate_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }







const getGoogleTranslateResult = async p => {
  var _p$payload$sl, _p$payload, _p$payload$tl, _p$payload2, _p$payload3;

  const sourceLanguage = (_p$payload$sl = (_p$payload = p.payload) === null || _p$payload === void 0 ? void 0 : _p$payload.sl) !== null && _p$payload$sl !== void 0 ? _p$payload$sl : 'auto';
  const targetLanguage = (_p$payload$tl = (_p$payload2 = p.payload) === null || _p$payload2 === void 0 ? void 0 : _p$payload2.tl) !== null && _p$payload$tl !== void 0 ? _p$payload$tl : store_store.data.targetLanguage;

  const req = (__webpack_require__(8334)/* .stringify */ .P)([[['MkEWBc', JSON.stringify([[p.word, sourceLanguage, targetLanguage, true], [null]]), null, 'generic']]]);

  const apiDomain = 'translate.google.com';

  const doRequest = async (getToken = false) => {
    var _data$;

    const result = await got({
      url: `https://${apiDomain}/_/TranslateWebserverUi/data/batchexecute`,
      method: 'POST',
      headers: {
        'Referer': `https://${apiDomain}/`,
        'Cache-Control': 'max-age=0',
        'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
      },
      data: new (url_search_params_default())(translate_objectSpread({
        'f.req': req
      }, getToken ? {} : {
        at: store_store.data.xsrfToken
      })).toString(),
      timeout: 5000 // responseType: '', // force auto json parse

    });

    if (Either_isLeft(result)) {
      try {
        const body = JSON.parse(result.left.res.responseText.substring(4));
        const err = body.find(v => v && v[0] === 'er');
        const errDetail = err[10][0][48448350];

        if (errDetail[0] === 'xsrf') {
          const xsrfToken = errDetail[1];
          store_store.data.xsrfToken = xsrfToken;
          return Either_left({
            type: 'xsrf',
            res: result.left.res
          });
        }
      } catch (e) {
        console.error(e);
      }

      return Either_left({
        type: result.left.type,
        res: result.left.res
      });
    }

    const data = JSON.parse(result.right.responseText.substring(4));

    if (((_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$[1]) === 'MkEWBc') {
      return Either_right(JSON.parse(data[0][2]));
    }

    return Either_left({
      type: 'unknown',
      res: result.right
    });
  };

  let result = await doRequest();

  if (Either_isLeft(result) && result.left.res.status === 400) {
    await doRequest(true);
    result = await doRequest();
  }

  if (Either_isLeft(result)) {
    throw new Error(result.left.type);
  }

  const data = result.right;
  const o = {
    sourceLanguage,
    targetLanguage,
    detectedLanguage: data[0][2] || sourceLanguage,
    phon: data[0][0],
    // eslint-disable-next-line
    translate: data[1][0][0][5].map(v => ({
      text: v[0],
      variations: v[1]
    })),
    translatePhonetics: data[1][0][0][1],
    fromDict: !!((_p$payload3 = p.payload) !== null && _p$payload3 !== void 0 && _p$payload3.fromDict)
  };
  return o;
};

const translate_translate = async p => {
  try {
    let data = await getGoogleTranslateResult(p); // autodetected and fallback to secondTargetLanguage

    if (!p.payload && data.detectedLanguage === store_store.data.targetLanguage) {
      var _p$payload4;

      data = await getGoogleTranslateResult(translate_objectSpread(translate_objectSpread({}, p), {}, {
        payload: translate_objectSpread(translate_objectSpread({}, (_p$payload4 = p.payload) !== null && _p$payload4 !== void 0 ? _p$payload4 : {}), {}, {
          tl: store_store.data.secondTargetLanguage
        })
      }));
    }

    return Either_right(() => {
      container_data.data = data;
      container_data.inputText = p.word;
    });
  } catch (e) {
    return Either_left({
      message: e.message
    });
  }
}; // export const translate = async (p: GoogleTranslateParams) => {
//   const url = [
//     `https://translate.google.com/translate_a/single`,
//     '?client=at',
//     '&dt=t',  // return sentences
//     '&dt=rm', // add translit to sentences
//     '&dj=1',  // result as pretty json instead of deep nested arrays
//   ].join('');
//   const result = await got<any>({
//     url,
//     method: 'POST',
//     headers: {
//       'Referer': `https://translate.google.com/`,
//       'Cache-Control': 'max-age=0',
//       'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
//     },
//     data: new URLSearchParams({
//       'f.req': req,
//       ...getToken ? {} : {
//         at: store.data.xsrfToken,
//       },
//     }).toString(),
//     timeout: 5000,
//     // responseType: '', // force auto json parse
//   } as any)
// }
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleTranslate/container/index.vue?vue&type=template&id=29b37c76&scoped=true&ts=true


const containervue_type_template_id_29b37c76_scoped_true_ts_true_withScopeId = n => (pushScopeId("data-v-29b37c76"), n = n(), popScopeId(), n);

const containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_1 = {
  key: 0,
  class: "google-translate-box flex-col relative text-grey-900"
};
const containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_2 = {
  class: "language-select-box w-full select-none"
};
const containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_3 = {
  class: "flex justify-between"
};
const containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_4 = {
  class: "items-box flex flex-wrap mt-1"
};
const containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_5 = ["onClick"];
const containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_6 = {
  class: "translate-content mb-2px"
};
const containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_7 = {
  key: 0,
  class: "google-dict-tip mt-2px mb-3px text-12 text-right text-grey-400"
};
const containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_8 = {
  class: "bottom-info-box flex justify-between"
};
const containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_9 = {
  class: "tts-box flex select-none"
};

const containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_10 = /*#__PURE__*/createTextVNode(" 源 ");

const containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_11 = /*#__PURE__*/createTextVNode(" 译 ");

const containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_12 = {
  class: "flex select-none text-grey-400"
};

const containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_13 = /*#__PURE__*/containervue_type_template_id_29b37c76_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "px-1"
}, " -> ", -1));

function containervue_type_template_id_29b37c76_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  const _component_Scrollable = resolveComponent("Scrollable");

  return _ctx.data ? (openBlock(), createElementBlock("div", containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_Scrollable, {
    class: "scroll-container"
  }, {
    default: withCtx(({
      scrollBar
    }) => [createBaseVNode("div", {
      class: normalizeClass(["content-box flex-col flex-auto text-14 break-words", [scrollBar && 'py-10px pl-10px pr-14px', !scrollBar && 'p-10px']])
    }, [withDirectives(createBaseVNode("div", containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_2, [createBaseVNode("div", containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_3, [withDirectives(createBaseVNode("div", null, "源语言", 512), [[vShow, _ctx.state.type === 'source']]), withDirectives(createBaseVNode("div", null, "翻译到", 512), [[vShow, _ctx.state.type === 'target']]), createBaseVNode("div", {
      class: "text-center text-grey-600 py-px px-6px cursor-pointer hover:bg-bg-2",
      onClick: _cache[0] || (_cache[0] = $event => _ctx.state.visible = false)
    }, " 取消 ")]), withDirectives(createBaseVNode("div", containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_4, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.languages, v => {
      return openBlock(), createElementBlock("div", {
        class: normalizeClass({
          'language-item text-center text-grey-600 cursor-pointer': true,
          'active text-grey-800': _ctx.state.type === 'source' ? v.id === _ctx.data.sourceLanguage : v.id === _ctx.data.targetLanguage
        }),
        key: v.id,
        onClick: $event => _ctx.handleLanguageSelect(v.id)
      }, toDisplayString(v.name), 11, containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_5);
    }), 128)), _ctx.state.type === 'source' ? (openBlock(), createElementBlock("div", {
      class: normalizeClass({
        'language-item text-center text-grey-600': true,
        'active text-grey-800': _ctx.data.sourceLanguage === 'auto'
      }),
      key: "auto",
      onClick: _cache[1] || (_cache[1] = $event => _ctx.handleLanguageSelect('auto'))
    }, " 自动检测 ", 2)) : createCommentVNode("", true)], 512), [[vShow, _ctx.state.visible]])], 512), [[vShow, _ctx.state.visible]]), withDirectives(createBaseVNode("div", containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_6, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.translateText, (text, index) => {
      return openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, null, [text ? (openBlock(), createElementBlock("span", {
        key: index
      }, toDisplayString(text), 1)) : createCommentVNode("", true), !text ? (openBlock(), createElementBlock("br", {
        key: index
      })) : createCommentVNode("", true)], 64);
    }), 256))], 512), [[vShow, !_ctx.state.visible]]), _ctx.data.fromDict ? (openBlock(), createElementBlock("div", containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_7, " google字典无结果,以上内容来自谷歌翻译 ")) : createCommentVNode("", true), withDirectives(createBaseVNode("div", containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_8, [createBaseVNode("div", containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_9, [createBaseVNode("div", {
      class: "play-sound flex flex-center cursor-pointer",
      onClick: _cache[2] || (_cache[2] = $event => _ctx.handlePlay('source'))
    }, [containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_10, runtime_core_esm_bundler_createVNode(_component_i_icon, {
      class: "audio-icon",
      svg: _ctx.icon.play_speaker_filled_audio_tool_59284
    }, null, 8, ["svg"])]), createBaseVNode("div", {
      class: "play-sound flex flex-center ml-2 cursor-pointer",
      onClick: _cache[3] || (_cache[3] = $event => _ctx.handlePlay('target'))
    }, [containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_11, runtime_core_esm_bundler_createVNode(_component_i_icon, {
      class: "audio-icon",
      svg: _ctx.icon.play_speaker_filled_audio_tool_59284
    }, null, 8, ["svg"])])]), createBaseVNode("div", containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_12, [createBaseVNode("div", {
      class: "cursor-pointer hover:text-primary",
      onClick: _cache[4] || (_cache[4] = $event => _ctx.showLanguageSelect('source'))
    }, toDisplayString(_ctx.getLanguage(_ctx.data.detectedLanguage)) + " " + toDisplayString(_ctx.data.sourceLanguage === 'auto' ? '(自动检测)' : ''), 1), containervue_type_template_id_29b37c76_scoped_true_ts_true_hoisted_13, createBaseVNode("div", {
      class: "cursor-pointer hover:text-primary",
      onClick: _cache[5] || (_cache[5] = $event => _ctx.showLanguageSelect('target'))
    }, toDisplayString(_ctx.getLanguage(_ctx.data.targetLanguage)), 1)])], 512), [[vShow, !_ctx.state.visible]])], 2)]),
    _: 1
  })])) : createCommentVNode("", true);
}
;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/container/index.vue?vue&type=template&id=29b37c76&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js
/*
 * base64-arraybuffer 1.0.2 <https://github.com/niklasvh/base64-arraybuffer>
 * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>
 * Released under MIT License
 */
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
// Use a lookup table to find the index.
var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);
for (var i = 0; i < chars.length; i++) {
    lookup[chars.charCodeAt(i)] = i;
}
var encode = function (arraybuffer) {
    var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';
    for (i = 0; i < len; i += 3) {
        base64 += chars[bytes[i] >> 2];
        base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];
        base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];
        base64 += chars[bytes[i + 2] & 63];
    }
    if (len % 3 === 2) {
        base64 = base64.substring(0, base64.length - 1) + '=';
    }
    else if (len % 3 === 1) {
        base64 = base64.substring(0, base64.length - 2) + '==';
    }
    return base64;
};
var decode = function (base64) {
    var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;
    if (base64[base64.length - 1] === '=') {
        bufferLength--;
        if (base64[base64.length - 2] === '=') {
            bufferLength--;
        }
    }
    var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);
    for (i = 0; i < len; i += 4) {
        encoded1 = lookup[base64.charCodeAt(i)];
        encoded2 = lookup[base64.charCodeAt(i + 1)];
        encoded3 = lookup[base64.charCodeAt(i + 2)];
        encoded4 = lookup[base64.charCodeAt(i + 3)];
        bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
        bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
        bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
    }
    return arraybuffer;
};



;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/playAudio.ts


function playAudio_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function playAudio_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? playAudio_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : playAudio_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }







const GoogleTranslate_playAudio_playAudio = async (word, tl) => {
  const volume = 0.8;

  const req = (__webpack_require__(8334)/* .stringify */ .P)([[['jQ1olc', JSON.stringify([word, tl, // null: normal speed; true: slow mode
  null, 'null']), null, 'generic']]]);

  const doRequest = async (getToken = false) => {
    var _data$;

    const apiDomain = 'translate.google.com';
    const result = await got({
      url: `https://${apiDomain}/_/TranslateWebserverUi/data/batchexecute`,
      method: 'POST',
      headers: {
        'Referer': `https://${apiDomain}/`,
        'Cache-Control': 'max-age=0',
        'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
      },
      data: new (url_search_params_default())(playAudio_objectSpread({
        'f.req': req
      }, getToken ? {} : {
        at: GoogleTranslateProvider.store.xsrfToken
      })).toString(),
      timeout: 5000 // responseType: '', // force auto json parse

    });

    if (Either_isLeft(result)) {
      const body = JSON.parse(result.left.res.responseText.substring(4));
      const err = body.find(v => v && v[0] === 'er');
      const errDetail = err[4];

      if (errDetail && errDetail[0] === 'xsrf') {
        const xsrfToken = errDetail[1];
        GoogleTranslateProvider.store.xsrfToken = xsrfToken;
        return Either_left({
          type: 'xsrf',
          res: result.left.res
        });
      }

      return Either_left({
        type: result.left.type,
        res: result.left.res
      });
    }

    const data = JSON.parse(result.right.responseText.substring(4));

    if (((_data$ = data[0]) === null || _data$ === void 0 ? void 0 : _data$[1]) === 'jQ1olc') {
      return Either_right(JSON.parse(data[0][2]));
    }

    return Either_left({
      type: 'unknown',
      res: result.right
    });
  };

  let result = await doRequest();

  if (Either_isLeft(result) && result.left.res.status === 400) {
    await doRequest(true);
    result = await doRequest();
  }

  if (Either_isRight(result)) {
    const base64Data = result.right[0];
    const audioBuffer = decode(base64Data);
    audioCacheService.play(`googletranslatetts-${word}-${tl}`, audioBuffer, volume);
  }
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleTranslate/container/index.ts?vue&type=script&lang=ts








const languages = Object.entries(GOOGLE_LANGUAGE_MAP).map(([id, name]) => ({
  id: id,
  name
}));
const containervue_type_script_lang_ts_icon = {
  play_speaker_filled_audio_tool_59284: speaker_filled_audio_tool_59284
};
/* harmony default export */ const GoogleTranslate_containervue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GoogleTranslateContainer',
  components: {
    Scrollable: Scrollable
  },
  setup: () => {
    const state = reactivity_esm_bundler_reactive({
      visible: false,
      type: 'source'
    });

    const getLanguage = language => GOOGLE_LANGUAGE_MAP[language] || language;

    const handleLanguageSelect = language => {
      bus.emit({
        type: EVENTS.TRANSLATE,
        word: container_data.inputText,
        param: {
          provider: GoogleTranslateProvider.id,
          param: {
            sl: state.type === 'source' ? language : container_data.data.sourceLanguage,
            tl: state.type === 'target' ? language : container_data.data.targetLanguage
          }
        }
      });
      state.visible = false;
    };

    const showLanguageSelect = type => {
      state.type = type;
      state.visible = true;
    };

    const handlePlay = type => {
      const word = type === 'source' ? container_data.inputText : container_data.data.translate.map(v => v.text).join('');
      const tl = type === 'source' ? container_data.data.detectedLanguage : container_data.data.targetLanguage;
      GoogleTranslate_playAudio_playAudio(word, tl);
    };

    return {
      state,
      data: runtime_core_esm_bundler_computed(() => container_data.data),
      translateText: runtime_core_esm_bundler_computed(() => {
        var _containerData$data$t, _containerData$data;

        return (_containerData$data$t = (_containerData$data = container_data.data) === null || _containerData$data === void 0 ? void 0 : _containerData$data.translate.map(v => v.text).join('').split('\n')) !== null && _containerData$data$t !== void 0 ? _containerData$data$t : [];
      }),
      languages,
      icon: containervue_type_script_lang_ts_icon,
      getLanguage,
      handleLanguageSelect,
      showLanguageSelect,
      handlePlay
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/container/index.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleTranslate/container/index.sass?vue&type=style&index=0&id=29b37c76&lang=sass&scoped=true
var containervue_type_style_index_0_id_29b37c76_lang_sass_scoped_true = __webpack_require__(7183);
;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/container/index.sass?vue&type=style&index=0&id=29b37c76&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/container/index.vue




;


const GoogleTranslate_container_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(GoogleTranslate_containervue_type_script_lang_ts, [['render',containervue_type_template_id_29b37c76_scoped_true_ts_true_render],['__scopeId',"data-v-29b37c76"]])

/* harmony default export */ const GoogleTranslate_container = (GoogleTranslate_container_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleTranslate/settings/index.vue?vue&type=template&id=9db7d096&ts=true

const settingsvue_type_template_id_9db7d096_ts_true_hoisted_1 = {
  class: "flex-col items-start"
};
const settingsvue_type_template_id_9db7d096_ts_true_hoisted_2 = {
  class: "flex mt-6 pt-1"
};
const settingsvue_type_template_id_9db7d096_ts_true_hoisted_3 = {
  class: "flex-col items-start grow-0 pr-12"
};

const settingsvue_type_template_id_9db7d096_ts_true_hoisted_4 = /*#__PURE__*/createBaseVNode("div", {
  class: "text-grey-600 pr-6 mb-2"
}, "语言", -1);

const settingsvue_type_template_id_9db7d096_ts_true_hoisted_5 = {
  class: "flex-col items-center grow-0"
};

const settingsvue_type_template_id_9db7d096_ts_true_hoisted_6 = /*#__PURE__*/createBaseVNode("div", {
  class: "text-grey-600 pr-6 mb-1"
}, "首选语言", -1);

const settingsvue_type_template_id_9db7d096_ts_true_hoisted_7 = {
  class: "flex-col items-center grow-0"
};

const settingsvue_type_template_id_9db7d096_ts_true_hoisted_8 = /*#__PURE__*/createBaseVNode("div", {
  class: "text-grey-600 pr-6 mb-1"
}, "备选语言", -1);

const settingsvue_type_template_id_9db7d096_ts_true_hoisted_9 = {
  key: 0,
  class: "text-14 text-red-500 mt-2 mb-0"
};

const settingsvue_type_template_id_9db7d096_ts_true_hoisted_10 = /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mt-1 mb-0"
}, [/*#__PURE__*/createTextVNode(" 首选语言:默认翻译到的语言 "), /*#__PURE__*/createBaseVNode("br"), /*#__PURE__*/createTextVNode(" 备选语言:当检测到翻译文本语言为首选语言时,翻译到备选语言 ")], -1);

const settingsvue_type_template_id_9db7d096_ts_true_hoisted_11 = /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mt-6 mb-0"
}, " ps:当出现 response with status code 503 时,有可能是触发了验证码。请手动打开google翻译点击验证码。 ", -1);

function settingsvue_type_template_id_9db7d096_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_provider_common = resolveComponent("provider-common");

  const _component_i_radio = resolveComponent("i-radio");

  const _component_i_radio_group = resolveComponent("i-radio-group");

  return openBlock(), createElementBlock("div", settingsvue_type_template_id_9db7d096_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_provider_common, {
    icon: _ctx.form.icon,
    "onUpdate:icon": _cache[0] || (_cache[0] = $event => _ctx.form.icon = $event),
    display: _ctx.form.display,
    "onUpdate:display": _cache[1] || (_cache[1] = $event => _ctx.form.display = $event),
    "enable-hotkey": _ctx.form.enableHotkey,
    "onUpdate:enable-hotkey": _cache[2] || (_cache[2] = $event => _ctx.form.enableHotkey = $event),
    hotkey: _ctx.form.hotkey,
    "onUpdate:hotkey": _cache[3] || (_cache[3] = $event => _ctx.form.hotkey = $event),
    name: "google翻译",
    icons: _ctx.iconOptions
  }, null, 8, ["icon", "display", "enable-hotkey", "hotkey", "icons"]), createBaseVNode("div", settingsvue_type_template_id_9db7d096_ts_true_hoisted_2, [createBaseVNode("div", settingsvue_type_template_id_9db7d096_ts_true_hoisted_3, [settingsvue_type_template_id_9db7d096_ts_true_hoisted_4, (openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.languageOptions, n => {
    return openBlock(), createElementBlock("div", {
      class: "language-option text-16 text-grey-600 mb-2",
      key: n.key
    }, toDisplayString(n.text), 1);
  }), 128))]), createBaseVNode("div", settingsvue_type_template_id_9db7d096_ts_true_hoisted_5, [settingsvue_type_template_id_9db7d096_ts_true_hoisted_6, runtime_core_esm_bundler_createVNode(_component_i_radio_group, {
    class: "mt-0 grow-0",
    modelValue: _ctx.form.targetLanguage,
    "onUpdate:modelValue": _cache[4] || (_cache[4] = $event => _ctx.form.targetLanguage = $event)
  }, {
    default: withCtx(() => [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.languageOptions, n => {
      return openBlock(), createBlock(_component_i_radio, {
        key: n.key,
        label: "",
        value: n.key
      }, null, 8, ["value"]);
    }), 128))]),
    _: 1
  }, 8, ["modelValue"])]), createBaseVNode("div", settingsvue_type_template_id_9db7d096_ts_true_hoisted_7, [settingsvue_type_template_id_9db7d096_ts_true_hoisted_8, runtime_core_esm_bundler_createVNode(_component_i_radio_group, {
    class: "mt-0",
    modelValue: _ctx.form.secondTargetLanguage,
    "onUpdate:modelValue": _cache[5] || (_cache[5] = $event => _ctx.form.secondTargetLanguage = $event)
  }, {
    default: withCtx(() => [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.languageOptions, n => {
      return openBlock(), createBlock(_component_i_radio, {
        key: n.key,
        label: "",
        value: n.key
      }, null, 8, ["value"]);
    }), 128))]),
    _: 1
  }, 8, ["modelValue"])])]), _ctx.form.targetLanguage === _ctx.form.secondTargetLanguage ? (openBlock(), createElementBlock("p", settingsvue_type_template_id_9db7d096_ts_true_hoisted_9, " 首选语言和备选语言请选择不同的选项 ")) : createCommentVNode("", true), settingsvue_type_template_id_9db7d096_ts_true_hoisted_10, settingsvue_type_template_id_9db7d096_ts_true_hoisted_11]);
}
;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/settings/index.vue?vue&type=template&id=9db7d096&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleTranslate/settings/index.ts?vue&type=script&lang=ts





const settingsvue_type_script_lang_ts_iconOptions = Object.entries(icons_icons).map(([k, v]) => ({
  icon: v,
  key: k
}));
/* harmony default export */ const GoogleTranslate_settingsvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GoogleTranslateSettings',
  components: {
    ProviderCommon: providerCommon
  },
  props: {
    active: Boolean
  },
  setup: props => {
    const form = store_store.data;
    let reset = null;
    watch(() => [form.targetLanguage, form.secondTargetLanguage], (n, o) => {
      reset = o && n[0] === n[1] ? o : null;
    });

    const doReset = () => {
      if (props.active && reset) {
        form.targetLanguage = reset[0];
        form.secondTargetLanguage = reset[1];
      }
    };

    watch(() => props.active, doReset);
    runtime_core_esm_bundler_onUnmounted(doReset);
    return {
      form,
      iconOptions: settingsvue_type_script_lang_ts_iconOptions,
      languageOptions: googleLanguagesOptions
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/settings/index.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/settings/index.vue




;
const GoogleTranslate_settings_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(GoogleTranslate_settingsvue_type_script_lang_ts, [['render',settingsvue_type_template_id_9db7d096_ts_true_render]])

/* harmony default export */ const GoogleTranslate_settings = (GoogleTranslate_settings_exports_);
;// CONCATENATED MODULE: ./src/provider/GoogleTranslate/index.ts






const GoogleTranslateProvider = createProvider({
  id: 'GOOGLE_TRANSLATE',
  label: '谷歌翻译',
  translate: translate_translate,
  translateView: GoogleTranslate_container,
  settingView: GoogleTranslate_settings,
  icons: icons_icons,
  storeWrapper: store_store,
  storeType: store_storeType,
  defaultStore: store_defaultStore
});
;// CONCATENATED MODULE: ./src/provider/GoogleDict/translate.ts



function GoogleDict_translate_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function GoogleDict_translate_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? GoogleDict_translate_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : GoogleDict_translate_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }





const wordErrorCache = {};

const fetchGoogleDict = async (word, lang = 'uk') => {
  // const apiUrlBase = 'https://content.googleapis.com/dictionaryextension/v1/knowledge/search?'
  const apiUrlBase = 'https://content-dictionaryextension-pa.googleapis.com/v1/dictionaryExtensionData?';

  const query = GoogleDict_translate_objectSpread(GoogleDict_translate_objectSpread({
    term: word,
    language: 'en'
  }, lang === 'uk' ? {
    corpus: 'en',
    country: 'UK'
  } : {
    corpus: 'en-US',
    country: 'US'
  }), {}, {
    // this key is hard coded in background.min.js
    // https://chrome.google.com/webstore/detail/google-dictionary-by-goog/mgijmajocgfcbeboacabfgobmjgjcoja
    // key: 'AIzaSyC9PDwo2wgENKuI8DSFOfqFqKP2cKAxxso',
    key: 'AIzaSyA6EEtrDCfBkHV8uU2lgGY-N383ZgAOo7Y'
  });

  const apiUrl = `${apiUrlBase}${new (url_search_params_default())(query).toString()}`;
  const response = await got({
    method: 'GET',
    headers: {
      // 'accept': '*/*',
      // 'accept-encoding': 'gzip, deflate, br',
      // 'accept-language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-TW;q=0.6',
      // 'cache-control': 'no-cache',
      // 'pragma': 'no-cache',
      // 'user-agent': window.navigator.userAgent,
      // 'x-goog-encode-response-if-executable': 'base64',
      // 'x-javascript-user-agent': 'google-api-javascript-client/1.1.0',
      'x-origin': 'chrome-extension://mgijmajocgfcbeboacabfgobmjgjcoja',
      'x-referer': 'chrome-extension://mgijmajocgfcbeboacabfgobmjgjcoja' // 'x-requested-with': 'XMLHttpRequest',

    },
    url: apiUrl,
    timeout: 10000
  });

  if (Either_isLeft(response)) {
    const responseText = response.left.res.responseText;

    if (responseText) {
      var _result$error;

      const result = JSON.parse(responseText);

      if (result !== null && result !== void 0 && (_result$error = result.error) !== null && _result$error !== void 0 && _result$error.message) {
        throw new Error(result.error.message);
      }
    }

    throw new Error(`遇到错误: ${response.left.type} ${response.left.res.status}`);
  }

  const data = JSON.parse(response.right.responseText);

  if (Object.getOwnPropertyNames(data).length === 0) {
    throw new Error('无查询结果!');
  }

  return data;
};

const GoogleDict_translate_translate = async ({
  word
}) => {
  if (wordErrorCache[word]) {
    return Either_left({
      redirect: GoogleTranslateProvider.id,
      redirectParams: {
        fromDict: true
      }
    });
  }

  let googleDictData;

  try {
    googleDictData = await fetchGoogleDict(word, 'uk');
  } catch (e) {
    if (e.message === 'Backend Error') {
      // try googletranslate
      wordErrorCache[word] = true;
      return Either_left({
        redirect: GoogleTranslateProvider.id
      });
    }

    if (false) {}

    return Either_left({
      message: e.message
    });
  }

  if (googleDictData.status !== 200) {
    return Either_left({
      redirect: GoogleTranslateProvider.id,
      redirectParams: {
        fromDict: true
      }
    });
  } // dev only check


  if (false) {}

  return Either_right(() => {
    data_containerData.data = googleDictData.dictionaryData;
    data_containerData.word = word;
  });
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/GoogleDictContainer.vue?vue&type=template&id=21539aa9&scoped=true&ts=true


const GoogleDictContainervue_type_template_id_21539aa9_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-21539aa9"), n = n(), _popScopeId(), n);

const GoogleDictContainervue_type_template_id_21539aa9_scoped_true_ts_true_hoisted_1 = {
  class: "google-dict-box flex-col relative break-words text-grey-900"
};
const GoogleDictContainervue_type_template_id_21539aa9_scoped_true_ts_true_hoisted_2 = {
  class: "google-content-box text-13"
};
const GoogleDictContainervue_type_template_id_21539aa9_scoped_true_ts_true_hoisted_3 = {
  key: 0,
  class: "dictionary-data-box flex-col items-stretch"
};
const GoogleDictContainervue_type_template_id_21539aa9_scoped_true_ts_true_hoisted_4 = {
  key: 0,
  class: "entry-box flex-col items-stretch"
};
function GoogleDictContainervue_type_template_id_21539aa9_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  const _component_simple_entry = resolveComponent("simple-entry");

  const _component_scrollable = resolveComponent("scrollable");

  return openBlock(), createElementBlock("div", GoogleDictContainervue_type_template_id_21539aa9_scoped_true_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_scrollable, {
    class: "scroll-container"
  }, {
    default: withCtx(ctx => [createBaseVNode("div", {
      class: normalizeClass(["google-content-simple relative flex-auto", [ctx.scrollBar && 'py-10px pl-10px pr-14px', !ctx.scrollBar && 'p-10px']])
    }, [_ctx.containerData.data && _ctx.containerData.data.length ? (openBlock(), createElementBlock("div", {
      key: 0,
      class: normalizeClass(["expand-button flex flex-center absolute", {
        'with-scroll-bar': ctx.scrollBar
      }]),
      title: "展开",
      onClick: _cache[0] || (_cache[0] = //@ts-ignore
      (...args) => _ctx.handleOpenModal && _ctx.handleOpenModal(...args))
    }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
      svg: _ctx.icon.expand_128456
    }, null, 8, ["svg"])], 2)) : createCommentVNode("", true), createBaseVNode("div", GoogleDictContainervue_type_template_id_21539aa9_scoped_true_ts_true_hoisted_2, [_ctx.containerData.data && _ctx.containerData.data.length ? (openBlock(), createElementBlock("div", GoogleDictContainervue_type_template_id_21539aa9_scoped_true_ts_true_hoisted_3, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.containerData.data, (dicDataItem, index) => {
      return openBlock(), createElementBlock("div", {
        class: "dictionary-data-item",
        key: index
      }, [dicDataItem.entries && dicDataItem.entries.length ? (openBlock(), createElementBlock("div", GoogleDictContainervue_type_template_id_21539aa9_scoped_true_ts_true_hoisted_4, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(dicDataItem.entries, (entry, entryIndex) => {
        return openBlock(), createBlock(_component_simple_entry, {
          class: normalizeClass(["entry-item", {
            '-mt-2px': entryIndex === 0,
            'border-t border-grey-400 pt-1 mt-4': entryIndex !== 0
          }]),
          entry: entry,
          key: entryIndex
        }, null, 8, ["class", "entry"]);
      }), 128))])) : createCommentVNode("", true)]);
    }), 128))])) : createCommentVNode("", true)])], 2)]),
    _: 1
  })]);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/GoogleDictContainer.vue?vue&type=template&id=21539aa9&scoped=true&ts=true

;// CONCATENATED MODULE: ./src/assets/img/expand_128456.svg
/* harmony default export */ const expand_128456 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 26.1 26.1\" width=\"512\" height=\"512\"><path d=\"M16 25.042v-2c0-.6.4-1 1-1h1c.4 0 .7-.5.4-.9l-4-4c-.4-.4-.4-1 0-1.4l1.4-1.4c.4-.4 1-.4 1.4 0l4 4c.3.3.9.1.9-.4v-1c0-.6.4-1 1-1h2c.6 0 1 .4 1 1v8c0 .6-.4 1-1 1h-8c-.7.1-1.1-.3-1.1-.9zm-7.1-13.3l-4-4c-.3-.3-.9-.1-.9.4v1c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1v-8c0-.6.4-1 1-1h8c.6 0 1 .4 1 1v2c0 .6-.4 1-1 1H8c-.4 0-.7.5-.4.9l4 4c.4.4.4 1 0 1.4l-1.4 1.4c-.3.3-.9.3-1.3-.1z\"/></svg>\n");
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/container/simpleEntry/simpleEntry.vue?vue&type=template&id=13c640e0&scoped=true&ts=true


const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-13c640e0"), n = n(), _popScopeId(), n);

const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_1 = {
  class: "entry-item flex-col items-stretch leading-snug"
};
const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_2 = {
  class: "headword flex flex-wrap leading-normal"
};
const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_3 = {
  class: "headword-word text-16"
};
const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_4 = {
  key: 0,
  class: "headword-graph-index text-12 ml-2px"
};
const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_5 = {
  key: 1,
  class: "sense-list mt-2px flex-col items-stretch"
};
const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_6 = {
  class: "sense-item-number text-right"
};
const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_7 = {
  class: "definition-box flex-auto"
};
const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_8 = {
  key: 2,
  class: "sense-family-box flex-col items-stretch"
};
const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_9 = ["title"];
const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_10 = {
  key: 2,
  class: "sense-list mt-2px flex-col items-stretch"
};
const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_11 = {
  class: "sense-item-number text-right pr-2 font-bold"
};
const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_12 = {
  class: "definition-box flex-auto"
};
const simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_13 = {
  key: 3,
  class: "sub-entry-box"
};
function simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_phonetics = resolveComponent("phonetics");

  const _component_fragment = resolveComponent("fragment");

  const _component_g_simple_entry = resolveComponent("g-simple-entry");

  return openBlock(), createElementBlock("div", simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_1, [createBaseVNode("div", simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_2, [createBaseVNode("div", simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_3, toDisplayString(_ctx.props.entry.syllabifiedHeadword || _ctx.props.entry.headword), 1), _ctx.props.entry.homographIndex ? (openBlock(), createElementBlock("div", simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_4, toDisplayString(_ctx.props.entry.homographIndex), 1)) : createCommentVNode("", true)]), _ctx.props.entry.phonetics ? (openBlock(), createBlock(_component_phonetics, {
    key: 0,
    class: "phonetics-box mb-2px",
    phonetics: _ctx.props.entry.phonetics
  }, null, 8, ["phonetics"])) : createCommentVNode("", true), _ctx.props.isSubentry && _ctx.props.entry.senseFamily && _ctx.props.entry.senseFamily.senses && _ctx.props.entry.senseFamily.senses.length ? (openBlock(), createElementBlock("div", simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_5, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.props.entry.senseFamily.senses, (sense, index) => {
    return withDirectives((openBlock(), createElementBlock("div", {
      class: "sense-item flex",
      key: index
    }, [createBaseVNode("div", simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_6, toDisplayString(index + 1) + ".", 1), createBaseVNode("div", simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_7, [runtime_core_esm_bundler_createVNode(_component_fragment, {
      class: "sense-frag",
      fragment: sense.definition.fragments
    }, null, 8, ["fragment"])])])), [[vShow, index < 2]]);
  }), 128))])) : createCommentVNode("", true), !_ctx.props.isSubentry && _ctx.props.entry.senseFamilies && _ctx.props.entry.senseFamilies.length ? (openBlock(), createElementBlock("div", simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_8, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.props.entry.senseFamilies, (senseFamilyItem, senseFamilyItemIndex) => {
    return openBlock(), createElementBlock("div", {
      class: normalizeClass(["sense-family-item flex-col items-stretch", {
        'mt-6px': senseFamilyItemIndex !== 0
      }]),
      key: senseFamilyItemIndex
    }, [senseFamilyItem.partsOfSpeechs ? (openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, {
      key: 0
    }, renderList(senseFamilyItem.partsOfSpeechs, (item, index) => {
      return openBlock(), createElementBlock("div", {
        title: item.qualifier,
        class: "poss italic flex flex-wrap text-grey-600",
        key: index
      }, toDisplayString(item.value), 9, simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_9);
    }), 128)) : createCommentVNode("", true), senseFamilyItem.phonetics ? (openBlock(), createBlock(_component_phonetics, {
      key: 1,
      class: "phonetics-box mb-2px",
      phonetics: senseFamilyItem.phonetics
    }, null, 8, ["phonetics"])) : createCommentVNode("", true), senseFamilyItem.senses && senseFamilyItem.senses.length ? (openBlock(), createElementBlock("div", simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_10, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(senseFamilyItem.senses, (sense, index) => {
      return withDirectives((openBlock(), createElementBlock("div", {
        class: "sense-item flex",
        key: index
      }, [createBaseVNode("div", simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_11, toDisplayString(index + 1) + ". ", 1), createBaseVNode("div", simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_12, [runtime_core_esm_bundler_createVNode(_component_fragment, {
        class: "sense-frag",
        fragment: sense.definition.fragments
      }, null, 8, ["fragment"])])])), [[vShow, index < 2]]);
    }), 128))])) : createCommentVNode("", true)], 2);
  }), 128))])) : createCommentVNode("", true), _ctx.props.entry.subentries && _ctx.props.entry.subentries.length ? (openBlock(), createElementBlock("div", simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_hoisted_13, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.props.entry.subentries, (subentry, index) => {
    return openBlock(), createBlock(_component_g_simple_entry, {
      class: "sub-entry",
      entry: subentry,
      "is-subentry": true,
      key: index
    }, null, 8, ["entry"]);
  }), 128))])) : createCommentVNode("", true)]);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/container/simpleEntry/simpleEntry.vue?vue&type=template&id=13c640e0&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/common/phonetics/phonetics.vue?vue&type=template&id=80abc988&scoped=true&ts=true


const phoneticsvue_type_template_id_80abc988_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-80abc988"), n = n(), _popScopeId(), n);

const phoneticsvue_type_template_id_80abc988_scoped_true_ts_true_hoisted_1 = {
  key: 0,
  class: "phonetics-box flex items-center text-grey-700"
};
const phoneticsvue_type_template_id_80abc988_scoped_true_ts_true_hoisted_2 = {
  class: "phonetics flex"
};
const phoneticsvue_type_template_id_80abc988_scoped_true_ts_true_hoisted_3 = ["onClick"];
function phoneticsvue_type_template_id_80abc988_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  return _ctx.props.phonetics && _ctx.props.phonetics.length ? (openBlock(), createElementBlock("div", phoneticsvue_type_template_id_80abc988_scoped_true_ts_true_hoisted_1, [createBaseVNode("div", phoneticsvue_type_template_id_80abc988_scoped_true_ts_true_hoisted_2, toDisplayString(`${_ctx.props.phonetics.map(v => `/${v.text}/`).join(' ')}`), 1), (openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.props.phonetics.filter(v => v.oxfordAudio), item => {
    return openBlock(), createElementBlock("div", {
      class: "pl-1 play-button flex flex-center",
      key: item.oxfordAudio,
      onClick: $event => _ctx.handlePlay(item.oxfordAudio)
    }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
      svg: _ctx.icon.play_speaker_filled_audio_tool_59284
    }, null, 8, ["svg"])], 8, phoneticsvue_type_template_id_80abc988_scoped_true_ts_true_hoisted_3);
  }), 128))])) : createCommentVNode("", true);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/common/phonetics/phonetics.vue?vue&type=template&id=80abc988&scoped=true&ts=true

;// CONCATENATED MODULE: ./src/provider/GoogleDict/playAudio.ts



/** 播放音频 */

const GoogleDict_playAudio_playAudio = async url => {
  const volume = 0.7;
  const mp3Url = `https:${url}`;

  if (audioCacheService.has(mp3Url)) {
    audioCacheService.play(mp3Url, volume);
    return;
  }

  const response = await got({
    method: 'GET',
    headers: {
      // 'Accept': '*/*',
      // 'Accept-Encoding': 'gzip, deflate, br',
      // 'Accept-Language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-TW;q=0.6',
      // 'Cache-Control': 'no-cache',
      // 'Pragma': 'no-cache',
      'upgrade-insecure-requests': '1' // 'User-Agent': window.navigator.userAgent,

    },
    responseType: 'arraybuffer',
    url: mp3Url,
    timeout: 5000
  });

  if (Either_isRight(response)) {
    audioCacheService.play(mp3Url, response.right.response, volume);
  }
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/common/phonetics/phonetics.ts?vue&type=script&lang=ts



/* harmony default export */ const phoneticsvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GPhonetics',
  props: {
    phonetics: {
      type: null,
      required: true
    }
  },
  setup: props => {
    const handlePlay = url => {
      GoogleDict_playAudio_playAudio(url);
    };

    return {
      icon: {
        play_speaker_filled_audio_tool_59284: speaker_filled_audio_tool_59284
      },
      props,
      handlePlay
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/common/phonetics/phonetics.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/common/phonetics/phonetics.sass?vue&type=style&index=0&id=80abc988&lang=sass&scoped=true
var phoneticsvue_type_style_index_0_id_80abc988_lang_sass_scoped_true = __webpack_require__(9255);
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/common/phonetics/phonetics.sass?vue&type=style&index=0&id=80abc988&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/common/phonetics/phonetics.vue




;


const phonetics_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(phoneticsvue_type_script_lang_ts, [['render',phoneticsvue_type_template_id_80abc988_scoped_true_ts_true_render],['__scopeId',"data-v-80abc988"]])

/* harmony default export */ const phonetics = (phonetics_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/common/fragment/fragment.vue?vue&type=template&id=ac18c5ae&ts=true

const fragmentvue_type_template_id_ac18c5ae_ts_true_hoisted_1 = {
  key: 0,
  class: "fragment-box inline"
};
const fragmentvue_type_template_id_ac18c5ae_ts_true_hoisted_2 = ["onClick", "innerHTML"];
const fragmentvue_type_template_id_ac18c5ae_ts_true_hoisted_3 = ["innerHTML"];
function fragmentvue_type_template_id_ac18c5ae_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  return _ctx.props.fragment && _ctx.props.fragment.length ? (openBlock(), createElementBlock("div", fragmentvue_type_template_id_ac18c5ae_ts_true_hoisted_1, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.props.fragment, (frag, fIndex) => {
    return openBlock(), createElementBlock("div", {
      class: "inline fragment-item",
      key: fIndex
    }, [frag.isEntryLink ? (openBlock(), createElementBlock("a", {
      key: 0,
      class: "text-link cursor-pointer",
      onClick: $event => _ctx.handleEntryLinkClick($event, frag.text),
      innerHTML: frag.text
    }, null, 8, fragmentvue_type_template_id_ac18c5ae_ts_true_hoisted_2)) : (openBlock(), createElementBlock("div", {
      key: 1,
      class: "inline",
      innerHTML: frag.text
    }, null, 8, fragmentvue_type_template_id_ac18c5ae_ts_true_hoisted_3))]);
  }), 128))])) : createCommentVNode("", true);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/common/fragment/fragment.vue?vue&type=template&id=ac18c5ae&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/common/fragment/fragment.ts?vue&type=script&lang=ts
 // import googleDictBus from '~/provider/GoogleDict/bus'



/* harmony default export */ const fragmentvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GFragment',
  props: {
    fragment: {
      type: null,
      required: true
    }
  },
  setup: props => {
    const handleEntryLinkClick = (event, word) => {
      bus.emit({
        type: EVENTS.TRANSLATE,
        word,
        mouseEvent: event,
        param: {
          provider: GoogleDictProvider.id
        }
      });
    };

    return {
      props,
      handleEntryLinkClick
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/common/fragment/fragment.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/common/fragment/fragment.vue




;
const fragment_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(fragmentvue_type_script_lang_ts, [['render',fragmentvue_type_template_id_ac18c5ae_ts_true_render]])

/* harmony default export */ const fragment = (fragment_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/container/simpleEntry/simpleEntry.ts?vue&type=script&lang=ts



/* harmony default export */ const simpleEntryvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GSimpleEntry',
  components: {
    phonetics: phonetics,
    fragment: fragment
  },
  props: {
    entry: {
      type: null,
      required: true
    },
    isSubentry: {
      type: Boolean,
      default: false
    }
  },
  setup: props => ({
    props
  })
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/container/simpleEntry/simpleEntry.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/container/simpleEntry/simpleEntry.sass?vue&type=style&index=0&id=13c640e0&lang=sass&scoped=true
var simpleEntryvue_type_style_index_0_id_13c640e0_lang_sass_scoped_true = __webpack_require__(5044);
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/container/simpleEntry/simpleEntry.sass?vue&type=style&index=0&id=13c640e0&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/container/simpleEntry/simpleEntry.vue




;


const simpleEntry_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(simpleEntryvue_type_script_lang_ts, [['render',simpleEntryvue_type_template_id_13c640e0_scoped_true_ts_true_render],['__scopeId',"data-v-13c640e0"]])

/* harmony default export */ const simpleEntry = (simpleEntry_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/GoogleDictContainer.ts?vue&type=script&lang=ts






/* harmony default export */ const GoogleDictContainervue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GoogleDictContainer',
  components: {
    simpleEntry: simpleEntry,
    Scrollable: Scrollable
  },
  setup: () => {
    const handleOpenModal = () => {
      bus.emit({
        type: EVENTS.OPEN_GOOGLE_DICT_MODAL,
        googleDictData: data_containerData.data
      });
    };

    return {
      containerData: data_containerData,
      icon: {
        expand_128456: expand_128456
      },
      handleOpenModal
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/GoogleDictContainer.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/GoogleDictContainer.sass?vue&type=style&index=0&id=21539aa9&lang=sass&scoped=true
var GoogleDictContainervue_type_style_index_0_id_21539aa9_lang_sass_scoped_true = __webpack_require__(2750);
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/GoogleDictContainer.sass?vue&type=style&index=0&id=21539aa9&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/GoogleDictContainer.vue




;


const GoogleDictContainer_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(GoogleDictContainervue_type_script_lang_ts, [['render',GoogleDictContainervue_type_template_id_21539aa9_scoped_true_ts_true_render],['__scopeId',"data-v-21539aa9"]])

/* harmony default export */ const GoogleDictContainer = (GoogleDictContainer_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/settings/index.vue?vue&type=template&id=81d791aa&ts=true

const settingsvue_type_template_id_81d791aa_ts_true_hoisted_1 = {
  class: "flex-col items-start"
};

const settingsvue_type_template_id_81d791aa_ts_true_hoisted_2 = /*#__PURE__*/createStaticVNode("<p class=\"text-14 text-grey-400 mt-1 mb-0\"> 查词详细结果默认折叠状态 </p><p class=\"text-14 text-grey-400 mt-12 mb-0\"> 如果你经常出现 request failed 0,这不是脚本出问题也不是网络问题。 </p><p class=\"text-14 text-grey-400 mt-1 mb-0\"> google 的 api 会在查不到结果时返回 500,而 chrome 检测到 500 后会自动启动 ddos 防御,所有相同的请求会被拦截。 </p><p class=\"text-14 text-grey-400 mt-1 mb-0\"> 添加 chrome 启动参数 --disable-extensions-http-throttling 可以关闭此功能。 </p><p class=\"text-14 text-grey-400 mt-1 mb-0\"> 解决方案是,过一段时间再使用 google 字典,或者避免使用 google 字典查询查不到的单词。 </p>", 5);

const settingsvue_type_template_id_81d791aa_ts_true_hoisted_7 = /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mt-1 mb-0"
}, [/*#__PURE__*/createBaseVNode("a", {
  href: "http://dev.chromium.org/throttling",
  _target: "blank"
}, "http://dev.chromium.org/throttling")], -1);

function settingsvue_type_template_id_81d791aa_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_provider_common = resolveComponent("provider-common");

  const _component_i_radio = resolveComponent("i-radio");

  const _component_i_radio_group = resolveComponent("i-radio-group");

  return openBlock(), createElementBlock("div", settingsvue_type_template_id_81d791aa_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_provider_common, {
    icon: _ctx.form.icon,
    "onUpdate:icon": _cache[0] || (_cache[0] = $event => _ctx.form.icon = $event),
    display: _ctx.form.display,
    "onUpdate:display": _cache[1] || (_cache[1] = $event => _ctx.form.display = $event),
    "enable-hotkey": _ctx.form.enableHotkey,
    "onUpdate:enable-hotkey": _cache[2] || (_cache[2] = $event => _ctx.form.enableHotkey = $event),
    hotkey: _ctx.form.hotkey,
    "onUpdate:hotkey": _cache[3] || (_cache[3] = $event => _ctx.form.hotkey = $event),
    name: "google字典",
    icons: _ctx.iconOptions
  }, null, 8, ["icon", "display", "enable-hotkey", "hotkey", "icons"]), runtime_core_esm_bundler_createVNode(_component_i_radio_group, {
    class: "mt-6",
    modelValue: _ctx.form.foldStatus,
    "onUpdate:modelValue": _cache[4] || (_cache[4] = $event => _ctx.form.foldStatus = $event)
  }, {
    default: withCtx(() => [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.foldOptions, n => {
      return openBlock(), createBlock(_component_i_radio, {
        key: n.key,
        label: n.label,
        value: n.key
      }, null, 8, ["label", "value"]);
    }), 128))]),
    _: 1
  }, 8, ["modelValue"]), settingsvue_type_template_id_81d791aa_ts_true_hoisted_2, settingsvue_type_template_id_81d791aa_ts_true_hoisted_7]);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/settings/index.vue?vue&type=template&id=81d791aa&ts=true

;// CONCATENATED MODULE: ./src/assets/img/providerIcon/googleDict/type_0_google.svg
/* harmony default export */ const type_0_google = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 70 70\"><path fill=\"#4285F4\" d=\"M35.29 41.41V32H67c.31 1.64.47 3.58.47 5.68 0 7.06-1.93 15.79-8.15 22.01-6.05 6.3-13.78 9.66-24.02 9.66C16.32 69.35.36 53.89.36 34.91.36 15.93 16.32.47 35.3.47c10.5 0 17.98 4.12 23.6 9.49l-6.64 6.64c-4.03-3.78-9.49-6.72-16.97-6.72-13.86 0-24.7 11.17-24.7 25.03 0 13.86 10.84 25.03 24.7 25.03 8.99 0 14.11-3.61 17.39-6.89 2.66-2.66 4.41-6.46 5.1-11.65l-22.49.01z\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/providerIcon/googleDict/type_2_search_281764.svg
/* harmony default export */ const type_2_search_281764 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M113.5 309.4L95.6 376l-65 1.4A254.9 254.9 0 0 1 0 256c0-42.5 10.3-82.5 28.6-117.7l58 10.6 25.4 57.6a152.2 152.2 0 0 0 1.5 103z\" fill=\"#fbbb00\"/><path d=\"M507.5 208.2a256.3 256.3 0 0 1-91.2 247.4l-73-3.7-10.4-64.5c29.9-17.6 53.3-45 65.6-78H261.6V208.3h246z\" fill=\"#518ef8\"/><path d=\"M416.3 455.6a256 256 0 0 1-385.8-78.3l83-67.9a152.2 152.2 0 0 0 219.4 78l83.4 68.2z\" fill=\"#28b446\"/><path d=\"M419.4 59l-83 67.8A152.3 152.3 0 0 0 112 206.5l-83.4-68.2a256 256 0 0 1 390.8-79.4z\" fill=\"#f14336\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/providerIcon/googleDict/type_3_search_281781.svg
/* harmony default export */ const type_3_search_281781 = ("<svg version=\"1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M410 448a245 245 0 0 1-371-75l80-66a146 146 0 0 0 211 75l80 66z\" fill=\"#28b446\"/><path d=\"M498 210a246 246 0 0 1-88 238l-80-66c29-17 51-43 63-75H261v-97h237z\" fill=\"#518ef8\"/><path d=\"M413 67l-80 65a146 146 0 0 0-216 77l-79-66a246 246 0 0 1 375-76z\" fill=\"#f14336\"/><path d=\"M119 307l-80 66a245 245 0 0 1-1-230l80 66a146 146 0 0 0 1 98z\" fill=\"#fbbb00\"/><path d=\"M508 208c-1-5-6-8-10-8H261c-5 0-10 4-10 10v97c0 6 5 10 10 10h116a137 137 0 0 1-121 75 137 137 0 0 1-129-180 136 136 0 0 1 201-71c4 2 8 2 12-1l79-65a10 10 0 0 0 0-16 256 256 0 1 0-3 397 257 257 0 0 0 92-248zM256 20c51 0 100 17 141 47l-65 53a156 156 0 0 0-219 72l-62-52C92 66 170 20 256 20zM20 256c0-34 7-67 21-97l65 53a156 156 0 0 0 1 92l-64 53c-15-32-23-66-23-101zm32 119l63-51a156 156 0 0 0 214 70l65 53a236 236 0 0 1-341-72zm435-70c-11 50-38 96-77 130l-63-52c25-18 45-43 55-72a10 10 0 0 0-9-14H272v-77h217a238 238 0 0 1-2 85z\" fill=\"#333\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/providerIcon/googleDict/type_4_google_356049.svg
/* harmony default export */ const type_4_google_356049 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><circle cx=\"256.7\" cy=\"256\" r=\"247.9\" fill=\"#ece5dd\"/><path d=\"M256.7 8c-11 0-21.7.8-32.3 2.2a248 248 0 0 1 0 491.6A248 248 0 1 0 256.7 8.1z\" fill=\"#d9cbbd\"/><path d=\"M361.5 182A127.2 127.2 0 0 0 256 127.3c-35.2 0-68 14-92.6 39.3l-5.6 5.9-49.9-42.8 6.2-6.6a194.3 194.3 0 0 1 303.5 24.6l2.3 3.5c1.5 2.2.8 5.3-1.5 6.7l-48.6 28.6a4.7 4.7 0 0 1-6.2-1.4l-2.1-3z\" fill=\"#cd2900\"/><path d=\"M86.2 351a194.3 194.3 0 0 1 16.9-215.2l5.5-7 49.9 42.7-5 6.5a128.7 128.7 0 0 0-11 139.1l4 7.2-55.8 34.5-4.5-7.8z\" fill=\"#ffce00\"/><path d=\"M256 450.6a194.7 194.7 0 0 1-160.8-85.2l-5.1-7.5 55.9-34.5 4.6 6.6A129.1 129.1 0 0 0 256 384.8c34.7 0 68.5-14.4 92.7-39.4l5.7-5.9 49.8 42.8-6.2 6.5a194.3 194.3 0 0 1-142 61.8z\" fill=\"#40a459\"/><path d=\"M353.7 340.4l4.9-6.5a128 128 0 0 0 18.6-34.2h-95.4a4.7 4.7 0 0 1-4.8-4.8v-56.3c0-2.6 2.1-4.7 4.8-4.7h164.1c2.3 0 4.1 1.8 4.2 4l.5 18.2c0 44-14.4 85.4-41.5 119.9l-5.6 7-49.8-42.6z\" fill=\"#1d81ce\"/><path d=\"M458.1 255.8l-.5-21.6a8 8 0 0 0-8.1-7.8h-172a8 8 0 0 0-8 8v64.7a8 8 0 0 0 8 8.1H366a121.4 121.4 0 0 1-231.2-50.5 121.6 121.6 0 0 1 132.8-121.4 8 8 0 0 0 6.4-2.3l.1-.2a8 8 0 0 0-4.8-13.6 137 137 0 0 0-112 41.3L120.4 129c34-36.2 82.2-58.8 135.6-58.8 62.7 0 119.8 30.6 154.5 82.3l-42 24.7a136.8 136.8 0 0 0-53.2-45.2 8 8 0 0 0-9 1.6l-.1.1a8 8 0 0 0 2.1 12.9 121 121 0 0 1 50.9 45.8 8 8 0 0 0 11 2.7l55.7-32.9a8 8 0 0 0 2.8-11.2 202.1 202.1 0 1 0-288.2 270.8 8 8 0 0 0 10.2-.9l.1-.1a8 8 0 0 0-1-12.2 187.5 187.5 0 0 1-47.5-48l41.3-25.5a137.4 137.4 0 0 0 211.3 16.4l36.8 31.5A185.5 185.5 0 0 1 184 427.4a8 8 0 0 0-8.8 1.7l-.1.1a8 8 0 0 0 2.6 13.1A202.3 202.3 0 0 0 458 256v-.2zm-364.3 91a185 185 0 0 1 16-205.6l37 31.6A136.7 136.7 0 0 0 135 321.2l-41.3 25.6zm308.5 23.9L365.5 339a136.8 136.8 0 0 0 20.1-37.3A8 8 0 0 0 378 291h-92.4v-48.5h156l.3 13.6a185 185 0 0 1-39.6 114.6z\"/><path d=\"M437 75C388.7 26.6 324.4 0 256 0S123.3 26.6 75 75C26.6 123.3 0 187.6 0 256s26.6 132.7 75 181c48.3 48.4 112.6 75 181 75s132.7-26.6 181-75c48.4-48.3 75-112.6 75-181s-26.6-132.7-75-181zM256 495.8C123.8 495.8 16.2 388.2 16.2 256S123.8 16.2 256 16.2 495.8 123.8 495.8 256 388.2 495.8 256 495.8z\"/></svg>\n");
;// CONCATENATED MODULE: ./src/provider/GoogleDict/icons.ts




const GoogleDict_icons_icons = {
  type_0_google: type_0_google,
  type_2_search_281764: type_2_search_281764,
  type_3_search_281781: type_3_search_281781,
  type_4_google_356049: type_4_google_356049
};
;// CONCATENATED MODULE: ./src/provider/GoogleDict/constant.ts
var GOOGLE_DICT_FOLD_STATUS;

(function (GOOGLE_DICT_FOLD_STATUS) {
  GOOGLE_DICT_FOLD_STATUS["UNFOLD"] = "0";
  GOOGLE_DICT_FOLD_STATUS["FOLD_THESAURUS"] = "1";
  GOOGLE_DICT_FOLD_STATUS["FOLD_EXAMPLES"] = "2";
  GOOGLE_DICT_FOLD_STATUS["FOLD_SUBSENSE"] = "3";
})(GOOGLE_DICT_FOLD_STATUS || (GOOGLE_DICT_FOLD_STATUS = {}));

const GOOGLE_DICT_FOLD_STATUS_NEXT_MAP = {
  [GOOGLE_DICT_FOLD_STATUS.UNFOLD]: GOOGLE_DICT_FOLD_STATUS.FOLD_THESAURUS,
  [GOOGLE_DICT_FOLD_STATUS.FOLD_THESAURUS]: GOOGLE_DICT_FOLD_STATUS.FOLD_EXAMPLES,
  [GOOGLE_DICT_FOLD_STATUS.FOLD_EXAMPLES]: GOOGLE_DICT_FOLD_STATUS.FOLD_SUBSENSE,
  [GOOGLE_DICT_FOLD_STATUS.FOLD_SUBSENSE]: GOOGLE_DICT_FOLD_STATUS.FOLD_SUBSENSE
};
const GOOGLE_DICT_FOLD_STATUS_PREV_MAP = {
  [GOOGLE_DICT_FOLD_STATUS.UNFOLD]: GOOGLE_DICT_FOLD_STATUS.UNFOLD,
  [GOOGLE_DICT_FOLD_STATUS.FOLD_THESAURUS]: GOOGLE_DICT_FOLD_STATUS.UNFOLD,
  [GOOGLE_DICT_FOLD_STATUS.FOLD_EXAMPLES]: GOOGLE_DICT_FOLD_STATUS.FOLD_THESAURUS,
  [GOOGLE_DICT_FOLD_STATUS.FOLD_SUBSENSE]: GOOGLE_DICT_FOLD_STATUS.FOLD_EXAMPLES
};
const GOOGLE_DICT_FOLD_STATUS_MAP = {
  [GOOGLE_DICT_FOLD_STATUS.UNFOLD]: '展开',
  [GOOGLE_DICT_FOLD_STATUS.FOLD_SUBSENSE]: '折叠释义子项',
  [GOOGLE_DICT_FOLD_STATUS.FOLD_EXAMPLES]: '折叠子项和例句',
  [GOOGLE_DICT_FOLD_STATUS.FOLD_THESAURUS]: '折叠子项、例句和同反义词'
};
;// CONCATENATED MODULE: ./src/provider/GoogleDict/store/index.ts


function GoogleDict_store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function GoogleDict_store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? GoogleDict_store_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : GoogleDict_store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }







const foldStatus = enumType(GOOGLE_DICT_FOLD_STATUS, 'GOOGLE_DICT_FOLD_STATUS');
const GoogleDict_store_storeType = fallbackInterface(GoogleDict_store_objectSpread(GoogleDict_store_objectSpread({}, providerCommonStore), {}, {
  display: fallback(es6_boolean, true),
  icon: fallback(keyof(GoogleDict_icons_icons), 'type_0_google'),
  foldStatus: fallback(foldStatus, GOOGLE_DICT_FOLD_STATUS.UNFOLD)
}));
const GoogleDict_store_defaultStore = GoogleDict_store_storeType.defaultData;
const GoogleDict_store_store = {
  data: null
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/settings/index.ts?vue&type=script&lang=ts





const foldOptions = [GOOGLE_DICT_FOLD_STATUS.UNFOLD, GOOGLE_DICT_FOLD_STATUS.FOLD_SUBSENSE, GOOGLE_DICT_FOLD_STATUS.FOLD_EXAMPLES, GOOGLE_DICT_FOLD_STATUS.FOLD_THESAURUS].map(v => ({
  label: GOOGLE_DICT_FOLD_STATUS_MAP[v],
  key: v
}));
const GoogleDict_settingsvue_type_script_lang_ts_iconOptions = Object.entries(GoogleDict_icons_icons).map(([k, v]) => ({
  icon: v,
  key: k
}));
/* harmony default export */ const GoogleDict_settingsvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GoogleDictSettings',
  components: {
    ProviderCommon: providerCommon
  },
  setup: () => reactivity_esm_bundler_reactive({
    get form() {
      return GoogleDict_store_store.data;
    },

    iconOptions: GoogleDict_settingsvue_type_script_lang_ts_iconOptions,
    foldOptions
  })
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/settings/index.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/GoogleDict/settings/index.vue




;
const GoogleDict_settings_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(GoogleDict_settingsvue_type_script_lang_ts, [['render',settingsvue_type_template_id_81d791aa_ts_true_render]])

/* harmony default export */ const GoogleDict_settings = (GoogleDict_settings_exports_);
;// CONCATENATED MODULE: ./src/provider/GoogleDict/index.ts






const GoogleDictProvider = createProvider({
  id: 'GOOGLE_DICT',
  label: 'google字典',
  translate: GoogleDict_translate_translate,
  translateView: GoogleDictContainer,
  settingView: GoogleDict_settings,
  icons: GoogleDict_icons_icons,
  storeWrapper: GoogleDict_store_store,
  storeType: GoogleDict_store_storeType,
  defaultStore: GoogleDict_store_defaultStore
});
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/helpers/calcToken.js
/* eslint-disable */
var gtk = '0';
var calcToken_i = null;

function a(r) {
  if (Array.isArray(r)) {
    for (var o = 0, t = Array(r.length); o < r.length; o++) t[o] = r[o];

    return t;
  }

  return Array.from(r);
}

function n(r, o) {
  for (var t = 0; t < o.length - 2; t += 3) {
    var a = o.charAt(t + 2);
    a = a >= "a" ? a.charCodeAt(0) - 87 : Number(a), a = "+" === o.charAt(t + 1) ? r >>> a : r << a, r = "+" === o.charAt(t) ? r + a & 4294967295 : r ^ a;
  }

  return r;
}

function e(r) {
  var o = r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g);

  if (null === o) {
    var t = r.length;
    t > 30 && (r = "" + r.substr(0, 10) + r.substr(Math.floor(t / 2) - 5, 10) + r.substr(-10, 10));
  } else {
    for (var e = r.split(/[\uD800-\uDBFF][\uDC00-\uDFFF]/), C = 0, h = e.length, f = []; h > C; C++) "" !== e[C] && f.push.apply(f, a(e[C].split(""))), C !== h - 1 && f.push(o[C]);

    var g = f.length;
    g > 30 && (r = f.slice(0, 10).join("") + f.slice(Math.floor(g / 2) - 5, Math.floor(g / 2) + 5).join("") + f.slice(-10).join(""));
  }

  var u = void 0,
      l = "" + String.fromCharCode(103) + String.fromCharCode(116) + String.fromCharCode(107);
  u = null !== calcToken_i ? calcToken_i : (calcToken_i = gtk || "") || "";

  for (var d = u.split("."), m = Number(d[0]) || 0, s = Number(d[1]) || 0, S = [], c = 0, v = 0; v < r.length; v++) {
    var A = r.charCodeAt(v);
    128 > A ? S[c++] = A : (2048 > A ? S[c++] = A >> 6 | 192 : (55296 === (64512 & A) && v + 1 < r.length && 56320 === (64512 & r.charCodeAt(v + 1)) ? (A = 65536 + ((1023 & A) << 10) + (1023 & r.charCodeAt(++v)), S[c++] = A >> 18 | 240, S[c++] = A >> 12 & 63 | 128) : S[c++] = A >> 12 | 224, S[c++] = A >> 6 & 63 | 128), S[c++] = 63 & A | 128);
  }

  for (var p = m, F = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(97) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(54)), D = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(51) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(98)) + ("" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(102)), b = 0; b < S.length; b++) p += S[b], p = n(p, F);

  return p = n(p, D), p ^= s, 0 > p && (p = (2147483647 & p) + 2147483648), p %= 1e6, p.toString() + "." + (p ^ m);
}
/* eslint-enable */

/**
 * @param  {string} word
 * @param  {string} _gtk
 * @return {string}
 */


const calcToken = (word, _gtk) => {
  gtk = _gtk;
  const sign = e(word);
  return sign;
};

/* harmony default export */ const helpers_calcToken = (calcToken);
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/helpers/token.ts
/**
 * https://www.jianshu.com/p/2c333f7ae1c2
 * https://www.jianshu.com/p/38a65d8d3e80
 */



let commonToken = '0';
let token_gtk = '';

const updateGTK = async force => {
  if (!force && token_gtk) {
    return;
  }

  const response = await got({
    method: 'GET',
    url: 'https://fanyi.baidu.com/',
    timeout: 5000
  });

  if (Either_isLeft(response)) {
    throw new Error(response.left.type);
  }

  const responseText = response.right.responseText;
  const gtkMatch = /window\.gtk = ['"](.*?)['"]/.exec(responseText);
  const commonTokenMatch = /token: ['"](.*?)['"],/.exec(responseText);

  if (!gtkMatch) {
    throw new Error('failed to get gtk');
  }

  if (!commonTokenMatch) {
    throw new Error('failed to get common token');
  }

  const newGtk = gtkMatch[1];
  const newCommonToken = commonTokenMatch[1];

  if (typeof newGtk !== 'undefined') {
    token_gtk = newGtk;
  }

  if (typeof newCommonToken !== 'undefined') {
    commonToken = newCommonToken;
  }
};

const getToken = async (word, force) => {
  await updateGTK(force);
  const token = helpers_calcToken(word, token_gtk);
  return {
    sign: token,
    token: commonToken
  };
};

/* harmony default export */ const helpers_token = (getToken);
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/container/data.ts

const data_data = {
  data: [],
  inputText: '',
  autoMode: false,
  sourceLanguage: '',
  targetLanguage: ''
};
/* harmony default export */ const BaiduTranslate_container_data = (reactivity_esm_bundler_reactive(data_data));
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/baiduLanguages.ts
var BAIDU_LANGUAGES;

(function (BAIDU_LANGUAGES) {
  BAIDU_LANGUAGES["de"] = "de";
  BAIDU_LANGUAGES["fra"] = "fra";
  BAIDU_LANGUAGES["it"] = "it";
  BAIDU_LANGUAGES["jp"] = "jp";
  BAIDU_LANGUAGES["ru"] = "ru";
  BAIDU_LANGUAGES["spa"] = "spa";
  BAIDU_LANGUAGES["zh"] = "zh";
  BAIDU_LANGUAGES["en"] = "en";
})(BAIDU_LANGUAGES || (BAIDU_LANGUAGES = {}));

const BAIDU_LANGUAGE_MAP = {
  [BAIDU_LANGUAGES.de]: '德语',
  [BAIDU_LANGUAGES.fra]: '法语',
  [BAIDU_LANGUAGES.it]: '意大利语',
  [BAIDU_LANGUAGES.jp]: '日语',
  [BAIDU_LANGUAGES.ru]: '俄语',
  [BAIDU_LANGUAGES.spa]: '西班牙语',
  [BAIDU_LANGUAGES.zh]: '中文',
  [BAIDU_LANGUAGES.en]: '英语'
};
const baiduLanguagesOptions = Object.entries(BAIDU_LANGUAGE_MAP).map(([k, v]) => ({
  text: v,
  key: k
})); // languages
// [
//   {
//     text: '阿拉伯语',
//     key: 'ara',
//   },
//   {
//     text: '爱沙尼亚语',
//     key: 'est',
//   },
//   {
//     text: '保加利亚语',
//     key: 'bul',
//   },
//   {
//     text: '波兰语',
//     key: 'pl',
//   },
//   {
//     text: '丹麦语',
//     key: 'dan',
//   },
//   {
//     text: '德语',
//     key: 'de',
//   },
//   {
//     text: '俄语',
//     key: 'ru',
//   },
//   {
//     text: '法语',
//     key: 'fra',
//   },
//   {
//     text: '芬兰语',
//     key: 'fin',
//   },
//   {
//     text: '韩语',
//     key: 'kor',
//   },
//   {
//     text: '荷兰语',
//     key: 'nl',
//   },
//   {
//     text: '捷克语',
//     key: 'cs',
//   },
//   {
//     text: '罗马尼亚语',
//     key: 'rom',
//   },
//   {
//     text: '葡萄牙语',
//     key: 'pt',
//   },
//   {
//     text: '日语',
//     key: 'jp',
//   },
//   {
//     text: '瑞典语',
//     key: 'swe',
//   },
//   {
//     text: '斯洛文尼亚语',
//     key: 'slo',
//   },
//   {
//     text: '泰语',
//     key: 'th',
//   },
//   {
//     text: '文言文',
//     key: 'wyw',
//   },
//   {
//     text: '西班牙语',
//     key: 'spa',
//   },
//   {
//     text: '希腊语',
//     key: 'el',
//   },
//   {
//     text: '匈牙利语',
//     key: 'hu',
//   },
//   {
//     text: '中文',
//     key: 'zh',
//   },
//   {
//     text: '英语',
//     key: 'en',
//   },
//   {
//     text: '意大利语',
//     key: 'it',
//   },
//   {
//     text: '越南语',
//     key: 'vie',
//   },
//   {
//     text: '粤语',
//     key: 'yue',
//   },
//   {
//     text: '中文繁体',
//     key: 'cht',
//   },
// ]
;// CONCATENATED MODULE: ./src/assets/img/providerIcon/baiduTranslate/baidu.svg
/* harmony default export */ const baidu = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 90 90\"><path d=\"M24.012 33.588c.535 7.65-3.611 14.173-9.264 14.57-5.651.397-10.667-5.483-11.202-13.135-.535-7.65 3.611-14.174 9.264-14.571 5.652-.396 10.668 5.485 11.202 13.136zM62.938 1.874C57.447.473 51.464 5.363 49.576 12.795c-1.895 7.432 1.023 14.592 6.514 15.993 5.49 1.4 11.476-3.488 13.365-10.921 2.459-9.673-5.202-15.659-6.517-15.993zm12.874 25.051c-5.775.086-10.359 5.579-10.232 14.088.127 8.508 4.904 12.387 10.685 12.301 5.772-.086 10.358-4.103 10.233-12.614-.168-11.074-9.303-13.795-10.686-13.775zM33.965 0c-5.496 0-9.951 6.16-9.951 13.756s4.455 13.753 9.951 13.753 9.952-6.157 9.952-13.753S39.461 0 33.965 0zm-1.272 42.72c-3.175 4.56-6.775 9.011-13.762 14.843-6.988 5.832-9.952 9.858-9.952 15.795 0 5.936 3.388 15.795 13.022 15.795s14.292-2.121 21.915-2.121c7.623 0 12.707 2.969 22.339 2.969 9.635 0 13.658-9.117 13.658-15.053 0-5.937-1.672-9.297-9.391-16.072-4.945-4.346-9.138-7.885-15.702-17.002-3.245-4.508-6.987-5.088-10.904-5.088-3.917-.001-8.046 1.377-11.223 5.934z\" fill=\"#2f7fda\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/providerIcon/baiduTranslate/baiduCircle.svg
/* harmony default export */ const baiduCircle = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 97.75 97.75\" width=\"97.75\" height=\"97.75\"><path d=\"M48.875 0C21.882 0 0 21.883 0 48.875S21.882 97.75 48.875 97.75 97.75 75.867 97.75 48.875 75.868 0 48.875 0zm3.443 25.67c.443-4.104 5.349-10.395 9.277-9.49 3.912.892 7.49 6.093 6.766 10.563-.709 4.477-4.258 10.385-9.799 9.66-5.531-.708-6.783-5.715-6.244-10.733zM40.726 14.393c4.138 0 7.481 4.76 7.481 10.652 0 5.89-3.344 10.657-7.481 10.657-4.141 0-7.493-4.768-7.493-10.657-.001-5.893 3.353-10.652 7.493-10.652zM17.361 39.626s.886-8.766 6.955-9.307c4.82-.422 8.373 4.855 8.742 7.878.22 1.96 1.243 10.928-6.253 12.537-7.482 1.616-10.266-7.048-9.444-11.108zm57.077 37.781c-4.097 9.671-19.086 4.645-19.086 4.645s-5.528-1.782-11.955-.352c-6.412 1.435-11.941.894-11.941.894s-7.503.182-9.642-9.305c-2.136-9.493 7.486-14.691 8.206-15.574.715-.902 5.703-4.297 8.912-9.672 3.218-5.362 12.847-9.662 19.63.896 4.998 7.162 13.561 13.785 13.561 13.785s6.416 5.018 2.315 14.683zm-1.247-22.023c-8.215.179-8.559-5.551-8.559-9.66 0-4.303.875-10.395 7.489-10.395 6.603 0 8.376 6.455 8.376 8.597.002 2.155.901 11.276-7.306 11.458z\" fill=\"#2f7fda\"/></svg>\n");
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/icons.ts


const BaiduTranslate_icons_icons = {
  baiduIcon: baidu,
  baiduCircle: baiduCircle
};
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/store/index.ts


function BaiduTranslate_store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function BaiduTranslate_store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? BaiduTranslate_store_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : BaiduTranslate_store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }







const baiduLanguage = enumType(BAIDU_LANGUAGES, 'BAIDU_LANGUAGES');
const BaiduTranslate_store_storeType = fallbackInterface(BaiduTranslate_store_objectSpread(BaiduTranslate_store_objectSpread({}, providerCommonStore), {}, {
  display: fallback(es6_boolean, true),
  icon: fallback(keyof(BaiduTranslate_icons_icons), 'baiduIcon'),
  targetLanguage: fallback(baiduLanguage, BAIDU_LANGUAGES.zh),
  secondTargetLanguage: fallback(baiduLanguage, BAIDU_LANGUAGES.en)
}));
const BaiduTranslate_store_defaultStore = BaiduTranslate_store_storeType.defaultData;
const BaiduTranslate_store_store = {
  data: null
};
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/translate.ts







const detectLang = async word => {
  const formdata = {
    query: Array.from(word).splice(0, 50).join('')
  };
  const response = await got({
    method: 'POST',
    headers: {
      'referer': 'https://fanyi.baidu.com',
      'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
    },
    url: 'https://fanyi.baidu.com/langdetect',
    data: new (url_search_params_default())(formdata).toString(),
    timeout: 5000
  });

  if (Either_isRight(response)) {
    const result = JSON.parse(response.right.responseText);

    if (result.error === 0) {
      return result.lan;
    }
  }

  throw new Error('检测翻译文本语言失败!');
};

const fetchTranslation = async ({
  word,
  sl,
  tl
}) => {
  let token;

  try {
    token = await helpers_token(word);
  } catch (e) {
    token = await helpers_token(word, true);
  }

  const query = {
    from: sl,
    to: tl,
    query: word,
    transtype: 'translang',
    simple_means_flag: '3',
    sign: token.sign,
    token: token.token
  };
  const response = await got({
    method: 'POST',
    headers: {
      'referer': 'https://fanyi.baidu.com',
      'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
      'User-Agent': window.navigator.userAgent
    },
    url: 'https://fanyi.baidu.com/v2transapi',
    data: new (url_search_params_default())(query).toString(),
    timeout: 5000
  });

  if (Either_isRight(response)) {
    const result = JSON.parse(response.right.responseText);
    const trans_result = result.trans_result;

    if (trans_result && trans_result.type === 2 && trans_result.status === 0) {
      return trans_result.data.map(v => v.dst);
    }
  }

  throw new Error('翻译出错!');
};

const BaiduTranslate_translate_translate = async p => {
  try {
    const auto = !p.payload || p.payload.sl === 'auto';
    const sl = !p.payload || auto ? await detectLang(p.word) : p.payload.sl; // eslint-disable-next-line no-nested-ternary

    const tl = p.payload ? p.payload.tl : BaiduTranslate_store_store.data.targetLanguage !== sl ? BaiduTranslate_store_store.data.targetLanguage : BaiduTranslate_store_store.data.secondTargetLanguage;
    const result = await fetchTranslation({
      word: p.word,
      sl,
      tl
    });
    return Either_right(() => {
      BaiduTranslate_container_data.data = result;
      BaiduTranslate_container_data.inputText = p.word;
      BaiduTranslate_container_data.autoMode = auto;
      BaiduTranslate_container_data.sourceLanguage = sl;
      BaiduTranslate_container_data.targetLanguage = tl;
    });
  } catch (e) {
    return Either_left({
      message: e.message
    });
  }
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/BaiduTranslate/container/index.vue?vue&type=template&id=27d91445&scoped=true&ts=true


const containervue_type_template_id_27d91445_scoped_true_ts_true_withScopeId = n => (pushScopeId("data-v-27d91445"), n = n(), popScopeId(), n);

const containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_1 = {
  class: "baidu-translate-box flex-col relative text-grey-900"
};
const containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_2 = {
  class: "language-select-box select-none w-full"
};
const containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_3 = {
  class: "title-box flex justify-between"
};
const containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_4 = {
  class: "items-box flex flex-wrap mt-1"
};
const containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_5 = ["onClick"];
const containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_6 = {
  class: "content mb-2px flex-col"
};
const containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_7 = {
  class: "bottom-info-box flex justify-between"
};
const containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_8 = {
  class: "tts-box flex"
};

const containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_9 = /*#__PURE__*/createTextVNode(" 源 ");

const containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_10 = /*#__PURE__*/createTextVNode(" 译 ");

const containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_11 = {
  class: "language-info-box flex"
};

const containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_12 = /*#__PURE__*/containervue_type_template_id_27d91445_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "px-1"
}, " -> ", -1));

function containervue_type_template_id_27d91445_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  const _component_scrollable = resolveComponent("scrollable");

  return openBlock(), createElementBlock("div", containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_scrollable, {
    class: "scroll-container"
  }, {
    default: withCtx(({
      scrollBar
    }) => [createBaseVNode("div", {
      class: normalizeClass(["content-box flex-col flex-auto text-14 break-words", [scrollBar && 'py-10px pl-10px pr-14px', !scrollBar && 'p-10px']])
    }, [withDirectives(createBaseVNode("div", containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_2, [createBaseVNode("div", containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_3, [withDirectives(createBaseVNode("div", null, "源语言", 512), [[vShow, _ctx.state.type === 'source']]), withDirectives(createBaseVNode("div", null, "翻译到", 512), [[vShow, _ctx.state.type === 'target']]), createBaseVNode("div", {
      class: "cancel-button text-center text-grey-600",
      onClick: _cache[0] || (_cache[0] = $event => _ctx.state.visible = false)
    }, "取消")]), withDirectives(createBaseVNode("div", containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_4, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.languages, v => {
      return openBlock(), createElementBlock("div", {
        class: normalizeClass({
          'language-item text-center text-grey-600': true,
          'active text-grey-800': _ctx.state.type === 'source' ? v.id === _ctx.containerData.sourceLanguage && !_ctx.containerData.autoMode : v.id === _ctx.containerData.targetLanguage
        }),
        key: v.id,
        onClick: $event => _ctx.handleLanguageSelect(v.id)
      }, toDisplayString(v.name), 11, containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_5);
    }), 128)), _ctx.state.type === 'source' ? (openBlock(), createElementBlock("div", {
      class: normalizeClass({
        'language-item text-center text-grey-600': true,
        'active text-grey-800': _ctx.containerData.autoMode
      }),
      key: "auto",
      onClick: _cache[1] || (_cache[1] = $event => _ctx.handleLanguageSelect('auto'))
    }, " 自动检测 ", 2)) : createCommentVNode("", true)], 512), [[vShow, _ctx.state.visible]])], 512), [[vShow, _ctx.state.visible]]), withDirectives(createBaseVNode("div", containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_6, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.containerData.data, row => {
      return openBlock(), createElementBlock("div", {
        class: "row",
        key: row
      }, toDisplayString(row), 1);
    }), 128))], 512), [[vShow, !_ctx.state.visible]]), withDirectives(createBaseVNode("div", containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_7, [createBaseVNode("div", containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_8, [createBaseVNode("div", {
      class: "play-sound flex flex-center",
      onClick: _cache[2] || (_cache[2] = $event => _ctx.handlePlay('source'))
    }, [containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_9, runtime_core_esm_bundler_createVNode(_component_i_icon, {
      class: "audio-icon",
      svg: _ctx.icon.play_speaker_filled_audio_tool_59284
    }, null, 8, ["svg"])]), createBaseVNode("div", {
      class: "play-sound flex flex-center ml-2",
      onClick: _cache[3] || (_cache[3] = $event => _ctx.handlePlay('target'))
    }, [containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_10, runtime_core_esm_bundler_createVNode(_component_i_icon, {
      class: "audio-icon",
      svg: _ctx.icon.play_speaker_filled_audio_tool_59284
    }, null, 8, ["svg"])])]), createBaseVNode("div", containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_11, [createBaseVNode("div", {
      class: "language",
      onClick: _cache[4] || (_cache[4] = $event => _ctx.showLanguageSelect('source'))
    }, toDisplayString(_ctx.getLanguage(_ctx.containerData.sourceLanguage)) + " " + toDisplayString(_ctx.containerData.autoMode ? '(自动检测)' : ''), 1), containervue_type_template_id_27d91445_scoped_true_ts_true_hoisted_12, createBaseVNode("div", {
      class: "language",
      onClick: _cache[5] || (_cache[5] = $event => _ctx.showLanguageSelect('target'))
    }, toDisplayString(_ctx.getLanguage(_ctx.containerData.targetLanguage)), 1)])], 512), [[vShow, !_ctx.state.visible]])], 2)]),
    _: 1
  })]);
}
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/container/index.vue?vue&type=template&id=27d91445&scoped=true&ts=true

;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/playAudio.ts




const BaiduTranslate_playAudio_playAudio = async (word, tl) => {
  const volume = 0.7;
  const query = {
    lan: tl,
    text: word,
    spd: tl === 'zh' ? '5' : '3',
    source: 'web'
  };
  const url = `https://fanyi.baidu.com/gettts?${new (url_search_params_default())(query).toString()}`;

  if (audioCacheService.play(url, volume)) {
    return;
  }

  const response = await got({
    method: 'GET',
    headers: {
      'Referer': 'https://fanyi.baidu.com/',
      'Accept': '*/*',
      'Cache-Control': 'no-cache',
      'Pragma': 'no-cache',
      'upgrade-insecure-requests': '1'
    },
    responseType: 'arraybuffer',
    url,
    timeout: 5000
  });

  if (Either_isRight(response)) {
    audioCacheService.play(url, response.right.response, volume);
  }
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/BaiduTranslate/container/index.ts?vue&type=script&lang=ts








const containervue_type_script_lang_ts_languages = Object.entries(BAIDU_LANGUAGE_MAP).map(([id, name]) => ({
  id: id,
  name
}));
const BaiduTranslate_containervue_type_script_lang_ts_icon = {
  play_speaker_filled_audio_tool_59284: speaker_filled_audio_tool_59284
};
/* harmony default export */ const BaiduTranslate_containervue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'BaiduTranslateContainer',
  components: {
    Scrollable: Scrollable
  },
  setup: () => {
    const state = reactivity_esm_bundler_reactive({
      visible: false,
      type: 'source'
    });

    const getLanguage = language => BAIDU_LANGUAGE_MAP[language] || language;

    const handleLanguageSelect = language => {
      let sl = state.type === 'source' ? language : BaiduTranslate_container_data.sourceLanguage;
      let tl = state.type === 'target' ? language : BaiduTranslate_container_data.targetLanguage;

      if (state.type === 'source' && language === BaiduTranslate_container_data.targetLanguage || state.type === 'target' && language === BaiduTranslate_container_data.sourceLanguage) {
        sl = BaiduTranslate_container_data.targetLanguage;
        tl = BaiduTranslate_container_data.sourceLanguage;
      }

      bus.emit({
        type: EVENTS.TRANSLATE,
        word: BaiduTranslate_container_data.inputText,
        param: {
          provider: BaiduTranslateProvider.id,
          param: {
            sl,
            tl
          }
        }
      });
      state.visible = false;
    };

    const showLanguageSelect = type => {
      state.type = type;
      state.visible = true;
    };

    const handlePlay = type => {
      const word = type === 'source' ? BaiduTranslate_container_data.inputText : BaiduTranslate_container_data.data.join();
      const tl = type === 'source' ? BaiduTranslate_container_data.sourceLanguage : BaiduTranslate_container_data.targetLanguage;
      BaiduTranslate_playAudio_playAudio(word, tl);
    };

    return {
      state,
      languages: containervue_type_script_lang_ts_languages,
      icon: BaiduTranslate_containervue_type_script_lang_ts_icon,
      containerData: BaiduTranslate_container_data,
      getLanguage,
      handleLanguageSelect,
      showLanguageSelect,
      handlePlay
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/container/index.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/BaiduTranslate/container/index.sass?vue&type=style&index=0&id=27d91445&lang=sass&scoped=true
var containervue_type_style_index_0_id_27d91445_lang_sass_scoped_true = __webpack_require__(881);
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/container/index.sass?vue&type=style&index=0&id=27d91445&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/container/index.vue




;


const BaiduTranslate_container_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(BaiduTranslate_containervue_type_script_lang_ts, [['render',containervue_type_template_id_27d91445_scoped_true_ts_true_render],['__scopeId',"data-v-27d91445"]])

/* harmony default export */ const BaiduTranslate_container = (BaiduTranslate_container_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/BaiduTranslate/settings/index.vue?vue&type=template&id=bfc643c4&ts=true

const settingsvue_type_template_id_bfc643c4_ts_true_hoisted_1 = {
  class: "flex-col items-start"
};
const settingsvue_type_template_id_bfc643c4_ts_true_hoisted_2 = {
  class: "flex mt-6 pt-1"
};
const settingsvue_type_template_id_bfc643c4_ts_true_hoisted_3 = {
  class: "flex-col items-start grow-0 pr-12"
};

const settingsvue_type_template_id_bfc643c4_ts_true_hoisted_4 = /*#__PURE__*/createBaseVNode("div", {
  class: "text-grey-600 pr-6 mb-2"
}, "语言", -1);

const settingsvue_type_template_id_bfc643c4_ts_true_hoisted_5 = {
  class: "flex-col items-center grow-0"
};

const settingsvue_type_template_id_bfc643c4_ts_true_hoisted_6 = /*#__PURE__*/createBaseVNode("div", {
  class: "text-grey-600 pr-6 mb-1"
}, "首选语言", -1);

const settingsvue_type_template_id_bfc643c4_ts_true_hoisted_7 = {
  class: "flex-col items-center grow-0"
};

const settingsvue_type_template_id_bfc643c4_ts_true_hoisted_8 = /*#__PURE__*/createBaseVNode("div", {
  class: "text-grey-600 pr-6 mb-1"
}, "备选语言", -1);

const settingsvue_type_template_id_bfc643c4_ts_true_hoisted_9 = {
  key: 0,
  class: "text-14 text-red-500 mt-2 mb-0"
};

const settingsvue_type_template_id_bfc643c4_ts_true_hoisted_10 = /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mt-1 mb-0"
}, [/*#__PURE__*/createTextVNode(" 首选语言:默认翻译到的语言 "), /*#__PURE__*/createBaseVNode("br"), /*#__PURE__*/createTextVNode(" 备选语言:当检测到翻译文本语言为首选语言时,翻译到备选语言 ")], -1);

function settingsvue_type_template_id_bfc643c4_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_provider_common = resolveComponent("provider-common");

  const _component_i_radio = resolveComponent("i-radio");

  const _component_i_radio_group = resolveComponent("i-radio-group");

  return openBlock(), createElementBlock("div", settingsvue_type_template_id_bfc643c4_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_provider_common, {
    icon: _ctx.form.icon,
    "onUpdate:icon": _cache[0] || (_cache[0] = $event => _ctx.form.icon = $event),
    display: _ctx.form.display,
    "onUpdate:display": _cache[1] || (_cache[1] = $event => _ctx.form.display = $event),
    "enable-hotkey": _ctx.form.enableHotkey,
    "onUpdate:enable-hotkey": _cache[2] || (_cache[2] = $event => _ctx.form.enableHotkey = $event),
    hotkey: _ctx.form.hotkey,
    "onUpdate:hotkey": _cache[3] || (_cache[3] = $event => _ctx.form.hotkey = $event),
    name: "百度翻译",
    icons: _ctx.iconOptions
  }, null, 8, ["icon", "display", "enable-hotkey", "hotkey", "icons"]), createBaseVNode("div", settingsvue_type_template_id_bfc643c4_ts_true_hoisted_2, [createBaseVNode("div", settingsvue_type_template_id_bfc643c4_ts_true_hoisted_3, [settingsvue_type_template_id_bfc643c4_ts_true_hoisted_4, (openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.languageOptions, n => {
    return openBlock(), createElementBlock("div", {
      class: "language-option text-16 text-grey-600 mb-2",
      key: n.key
    }, toDisplayString(n.text), 1);
  }), 128))]), createBaseVNode("div", settingsvue_type_template_id_bfc643c4_ts_true_hoisted_5, [settingsvue_type_template_id_bfc643c4_ts_true_hoisted_6, runtime_core_esm_bundler_createVNode(_component_i_radio_group, {
    class: "mt-0 grow-0",
    modelValue: _ctx.form.targetLanguage,
    "onUpdate:modelValue": _cache[4] || (_cache[4] = $event => _ctx.form.targetLanguage = $event)
  }, {
    default: withCtx(() => [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.languageOptions, n => {
      return openBlock(), createBlock(_component_i_radio, {
        key: n.key,
        label: "",
        value: n.key
      }, null, 8, ["value"]);
    }), 128))]),
    _: 1
  }, 8, ["modelValue"])]), createBaseVNode("div", settingsvue_type_template_id_bfc643c4_ts_true_hoisted_7, [settingsvue_type_template_id_bfc643c4_ts_true_hoisted_8, runtime_core_esm_bundler_createVNode(_component_i_radio_group, {
    class: "mt-0",
    modelValue: _ctx.form.secondTargetLanguage,
    "onUpdate:modelValue": _cache[5] || (_cache[5] = $event => _ctx.form.secondTargetLanguage = $event)
  }, {
    default: withCtx(() => [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.languageOptions, n => {
      return openBlock(), createBlock(_component_i_radio, {
        key: n.key,
        label: "",
        value: n.key
      }, null, 8, ["value"]);
    }), 128))]),
    _: 1
  }, 8, ["modelValue"])])]), _ctx.form.targetLanguage === _ctx.form.secondTargetLanguage ? (openBlock(), createElementBlock("p", settingsvue_type_template_id_bfc643c4_ts_true_hoisted_9, " 首选语言和备选语言请选择不同的选项 ")) : createCommentVNode("", true), settingsvue_type_template_id_bfc643c4_ts_true_hoisted_10]);
}
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/settings/index.vue?vue&type=template&id=bfc643c4&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/BaiduTranslate/settings/index.ts?vue&type=script&lang=ts





const BaiduTranslate_settingsvue_type_script_lang_ts_iconOptions = Object.entries(BaiduTranslate_icons_icons).map(([k, v]) => ({
  icon: v,
  key: k
}));
/* harmony default export */ const BaiduTranslate_settingsvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'BaiduTranslateSettings',
  components: {
    ProviderCommon: providerCommon
  },
  props: {
    active: Boolean
  },
  setup: props => {
    const form = BaiduTranslate_store_store.data;
    let reset = null;
    watch(() => [form.targetLanguage, form.secondTargetLanguage], (n, o) => {
      reset = o && n[0] === n[1] ? o : null;
    });

    const doReset = () => {
      if (props.active && reset) {
        form.targetLanguage = reset[0];
        form.secondTargetLanguage = reset[1];
      }
    };

    watch(() => props.active, doReset);
    runtime_core_esm_bundler_onUnmounted(doReset);
    return {
      iconOptions: BaiduTranslate_settingsvue_type_script_lang_ts_iconOptions,
      form,
      languageOptions: baiduLanguagesOptions
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/settings/index.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/settings/index.vue




;
const BaiduTranslate_settings_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(BaiduTranslate_settingsvue_type_script_lang_ts, [['render',settingsvue_type_template_id_bfc643c4_ts_true_render]])

/* harmony default export */ const BaiduTranslate_settings = (BaiduTranslate_settings_exports_);
;// CONCATENATED MODULE: ./src/provider/BaiduTranslate/index.ts






const BaiduTranslateProvider = createProvider({
  id: 'BAIDU_TRANSLATE',
  label: '百度翻译',
  translate: BaiduTranslate_translate_translate,
  translateView: BaiduTranslate_container,
  settingView: BaiduTranslate_settings,
  icons: BaiduTranslate_icons_icons,
  storeWrapper: BaiduTranslate_store_store,
  storeType: BaiduTranslate_store_storeType,
  defaultStore: BaiduTranslate_store_defaultStore
});
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/container/data.ts

const container_data_data = {
  data: null
};
/* harmony default export */ const UrbanDictionary_container_data = (reactivity_esm_bundler_reactive(container_data_data));
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/translate.ts





const UrbanDictionary_translate_translate = async ({
  word
}) => {
  try {
    /* https://api.urbandictionary.com/v0/define?term={word} */
    const url = `https://api.urbandictionary.com/v0/define?${new (url_search_params_default())({
      term: word
    }).toString()}`;
    const response = await got({
      method: 'GET',
      url,
      timeout: 5000
    });

    if (Either_isLeft(response)) {
      throw new Error(response.left.type);
    }

    const result = JSON.parse(response.right.responseText);

    if (false) {}

    return Either_right(() => {
      UrbanDictionary_container_data.data = util_copy(result);
    });
  } catch (e) {
    return Either_left({
      message: e.message
    });
  }
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/UrbanDictionary/container/index.vue?vue&type=template&id=4129bac5&scoped=true&ts=true


const containervue_type_template_id_4129bac5_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-4129bac5"), n = n(), _popScopeId(), n);

const containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_1 = {
  class: "row flex-col"
};
const containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_2 = {
  class: "index font-bold"
};
const containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_3 = {
  class: "definition"
};
const containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_4 = [".textContent"];
const containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_5 = {
  class: "text-12 text-grey-500 mt-1"
};
const containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_6 = [".textContent"];
const containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_7 = {
  class: "flex mt-1 items-center text-12 text-grey-500"
};
const containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_8 = {
  class: "mr-2 pr-1 flex flex-none"
};
const containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_9 = {
  class: "flex mr-3 flex-none"
};
const containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_10 = {
  class: "truncate"
};
const containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_11 = ["innerHTML"];
const containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_12 = {
  key: 1,
  class: "inner-content flex flex-center"
};
function containervue_type_template_id_4129bac5_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_UKeyword = resolveComponent("UKeyword");

  const _component_i_icon = resolveComponent("i-icon");

  const _component_scrollable = resolveComponent("scrollable");

  return openBlock(), createElementBlock("div", {
    class: "urban-dictionary-box flex-col relative text-grey-900",
    ref: _ctx.refs.container
  }, [runtime_core_esm_bundler_createVNode(_component_scrollable, {
    class: "scroll-container"
  }, {
    default: withCtx(({
      scrollBar
    }) => [createBaseVNode("div", {
      class: normalizeClass(["content-box flex-col flex-auto text-14 break-words", [scrollBar && 'py-10px pl-10px pr-14px', !scrollBar && 'p-10px']])
    }, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.list, (item, index) => {
      return openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, {
        key: index
      }, [createBaseVNode("div", containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_1, [createBaseVNode("div", containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_2, toDisplayString(index + 1) + ". " + toDisplayString(item.word), 1), createBaseVNode("div", containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_3, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.extractDefinition(item.definition), (definitionItem, definitionIndex) => {
        return openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, null, [definitionItem.isTag ? (openBlock(), createBlock(_component_UKeyword, {
          content: definitionItem.text,
          class: "keyword definition-keyword",
          key: definitionIndex
        }, null, 8, ["content"])) : createCommentVNode("", true), !definitionItem.isTag ? (openBlock(), createElementBlock("span", {
          ".textContent": definitionItem.text,
          key: definitionIndex
        }, null, 8, containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_4)) : createCommentVNode("", true)], 64);
      }), 256))]), createBaseVNode("div", containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_5, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.extractDefinition(item.example), (exampleItem, exampleIndex) => {
        return openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, null, [exampleItem.isTag ? (openBlock(), createBlock(_component_UKeyword, {
          content: exampleItem.text,
          class: "keyword example-keyword",
          key: exampleIndex
        }, null, 8, ["content"])) : createCommentVNode("", true), !exampleItem.isTag ? (openBlock(), createElementBlock("span", {
          ".textContent": exampleItem.text,
          key: exampleIndex
        }, null, 8, containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_6)) : createCommentVNode("", true)], 64);
      }), 256))]), createBaseVNode("div", containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_7, [createBaseVNode("div", containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_8, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
        size: "14",
        class: "thumb-up thumb mr-1",
        svg: _ctx.icon.like_179655
      }, null, 8, ["svg"]), createTextVNode(" " + toDisplayString(item.thumbs_up), 1)]), createBaseVNode("div", containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_9, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
        size: "14",
        color: "#E64C3D",
        class: "thumb thumb-down mr-1",
        svg: _ctx.icon.like_179655
      }, null, 8, ["svg"]), createTextVNode(" " + toDisplayString(item.thumbs_down), 1)]), createBaseVNode("div", containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_10, toDisplayString(_ctx.getTime(item.written_on)), 1)])]), index !== _ctx.list.length - 1 ? (openBlock(), createElementBlock("div", {
        class: "divider my-2 bg-grey-300",
        key: `${index}-divider`
      })) : createCommentVNode("", true)], 64);
    }), 128))], 2)]),
    _: 1
  }), (openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.state.tooltips, item => {
    return openBlock(), createElementBlock("div", {
      class: "u-toolip absolute bg-white w-full",
      key: item.id,
      style: normalizeStyle({
        top: `${item.top}px`,
        left: `${item.left}px`
      })
    }, [item.text ? (openBlock(), createElementBlock("div", {
      key: 0,
      class: "inner-content",
      innerHTML: item.text
    }, null, 8, containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_11)) : createCommentVNode("", true), !item.text ? (openBlock(), createElementBlock("div", containervue_type_template_id_4129bac5_scoped_true_ts_true_hoisted_12, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
      class: "loadin-spinner rotate",
      size: "24",
      color: "#79d",
      svg: _ctx.icon.loading
    }, null, 8, ["svg"])])) : createCommentVNode("", true)], 4);
  }), 128))], 512);
}
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/container/index.vue?vue&type=template&id=4129bac5&scoped=true&ts=true

// EXTERNAL MODULE: ./node_modules/core-js-pure/features/instance/match-all.js
var match_all = __webpack_require__(7611);
var match_all_default = /*#__PURE__*/__webpack_require__.n(match_all);
;// CONCATENATED MODULE: ./src/assets/img/loading.svg
/* harmony default export */ const loading = ("<svg class=\"icon\" viewBox=\"0 0 1024 1024\"\n  xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"200\">\n  <path fill=\"#000000\" d=\"M512.511 21.483c-271.163 0-491.028 219.86-491.028 491.028 0 271.173 219.856 491.03 491.028 491.03 26.554 0 48.08-21.527 48.08-48.08 0-26.554-21.526-48.08-48.08-48.08-218.065 0-394.869-176.804-394.869-394.87 0-218.06 176.813-394.869 394.87-394.869 218.065 0 394.869 176.804 394.869 394.87 0 26.553 21.526 48.08 48.08 48.08 26.553 0 48.08-21.527 48.08-48.08 0-271.173-219.857-491.03-491.03-491.03z\"/>\n</svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/like_179655.svg
/* harmony default export */ const like_179655 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 485.027 485.027\"><path fill=\"#3C92CA\" d=\"M109.4 459.991H13c-2.1 0-3.9-1.8-3.9-3.9v-248.4c0-2.1 1.8-3.9 3.9-3.9h96.4c2.1 0 3.9 1.8 3.9 3.9v248.4c0 2.1-1.7 3.9-3.9 3.9z\"/><path d=\"M284.6 20.391c-28.2-20.7-67.2-8.8-68.8-8.3-3.8 1.2-6.3 4.7-6.3 8.6v85.8c0 29.1-13.8 53.7-41.1 73.2-21.1 15.1-42.7 21.3-42.9 21.4-.2 0-.3.1-.5.2l-5.1 1.7c-3-4.9-8.3-8.2-14.5-8.2H16.9c-9.3 0-16.9 7.6-16.9 16.9v240.5c0 9.3 7.6 16.9 16.9 16.9h88.6c8 0 14.7-5.6 16.4-13 11.9 12.7 28.8 20.7 47.6 20.7h209.8c44.6 0 73.1-23.3 78.1-64l26.8-170.2c3.9-24.7-6.2-49.7-25.8-63.7-11.1-8-24.2-12.2-37.9-12.2H311.4v-79.6c0-31.2-9-53.6-26.8-66.7zm-180.4 430.5H18.1v-238h86.1v238zm316.3-266.1c9.9 0 19.3 3 27.3 8.8 14 10.1 21.3 28.2 18.4 46.2l-26.7 170.3v.3c-4.9 39.8-35.4 48.2-60.2 48.2H169.5c-26 0-47.1-21.1-47.1-47.1v-190.2l8.3-2.8c2.9-.8 25.2-7.6 47.8-23.7 32.1-22.8 49.1-53.3 49.1-88.2v-78.6c10.4-2 31.3-4 46.4 7.1 12.8 9.4 19.3 26.9 19.3 52v88.7c0 5 4.1 9.1 9.1 9.1h118.1v-.1z\"/></svg>\n");
;// CONCATENATED MODULE: ./src/util/cachePromise.ts


/**
 * 返回原函数,但该函数在连续多次调用时,首次调用未resolve时,返回缓存的 promise
 */
const cachePromiseHof = fn => {
  let promise = null;
  return (...args) => {
    if (promise) {
      return promise;
    }

    promise = promise_default().resolve(fn(...args));
    promise.finally(() => {
      promise = null;
    });
    return promise;
  };
};
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/getApiKey.ts



const apiKeyState = {
  apiKey: ''
};
const getApiKey = cachePromiseHof(async () => {
  if (apiKeyState.apiKey) {
    return;
  }

  const res = await got({
    method: 'GET',
    url: 'https://www.urbandictionary.com/',
    timeout: 5000
  });

  if (Either_isLeft(res)) {
    throw new Error(res.left.type);
  }

  const apiKeyMatch = /"api_key":"([0-9a-f]{32})"/.exec(res.right.responseText);

  if (!apiKeyMatch) {
    return;
  }

  apiKeyState.apiKey = apiKeyMatch[1];
});
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/container/bus.ts


var NAMES;

(function (NAMES) {
  NAMES[NAMES["SHOW_TOOLTIP"] = 0] = "SHOW_TOOLTIP";
  NAMES[NAMES["HIDE_TOOLTIP"] = 1] = "HIDE_TOOLTIP";
})(NAMES || (NAMES = {}));

class UrbanDictionaryBus {
  constructor() {
    defineProperty_defineProperty(this, "id", 0);

    defineProperty_defineProperty(this, "bus", new EventEmitter());
  }

  on(e, h) {
    this.bus.on(String(e), h);
  }

  off(e, h) {
    this.bus.off(String(e), h);
  }

  emit(e, h) {
    this.bus.emit(String(e), h);
  }

  genId() {
    this.id += 1;
    return this.id;
  }

}

const urbanDictionaryBus = new UrbanDictionaryBus();
/* harmony default export */ const container_bus = (urbanDictionaryBus);
// EXTERNAL MODULE: ./node_modules/core-js-pure/stable/instance/trim.js
var trim = __webpack_require__(7995);
var trim_default = /*#__PURE__*/__webpack_require__.n(trim);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/UrbanDictionary/container/component/UKeyword/UKeyword.vue?vue&type=template&id=37ab3860&ts=true


function UKeywordvue_type_template_id_37ab3860_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  var _context;

  return openBlock(), createElementBlock("span", {
    class: "u-keyword relative",
    ref: _ctx.refs.span,
    onClick: _cache[0] || (_cache[0] = //@ts-ignore
    (...args) => _ctx.handleClick && _ctx.handleClick(...args)),
    onMouseenter: _cache[1] || (_cache[1] = //@ts-ignore
    (...args) => _ctx.showTooltip && _ctx.showTooltip(...args)),
    onMouseleave: _cache[2] || (_cache[2] = //@ts-ignore
    (...args) => _ctx.hideTooltip && _ctx.hideTooltip(...args))
  }, toDisplayString(trim_default()(_context = _ctx.props.content).call(_context)), 545);
}
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/container/component/UKeyword/UKeyword.vue?vue&type=template&id=37ab3860&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/UrbanDictionary/container/component/UKeyword/UKeyword.ts?vue&type=script&lang=ts




/* harmony default export */ const UKeywordvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'UrbanDictionaryKeyword',
  props: {
    content: {
      type: String,
      default: ''
    }
  },
  setup: props => {
    const refs = {
      span: reactivity_esm_bundler_ref()
    };
    const state = reactivity_esm_bundler_reactive({
      id: 0,
      visible: false,
      visibleTimeout: 0
    });

    const handleClick = () => {
      bus.emit({
        type: EVENTS.TRANSLATE,
        word: props.content,
        param: {
          provider: UrbanDictionaryProvider.id
        }
      });
    };

    const showTooltip = () => {
      if (state.visibleTimeout) {
        window.clearTimeout(state.visibleTimeout);
      }

      state.visibleTimeout = window.setTimeout(() => {
        state.visible = true;
      }, 200);
    };

    const hideTooltip = () => {
      window.clearTimeout(state.visibleTimeout);
      state.visibleTimeout = 0;
      state.visible = false;
    };

    runtime_core_esm_bundler_onMounted(() => {
      state.id = container_bus.genId();
    });
    watch(() => state.visible, () => {
      if (state.visible) {
        if (refs.span.value) {
          const rect = refs.span.value.getBoundingClientRect();
          container_bus.emit(NAMES.SHOW_TOOLTIP, {
            top: rect.bottom,
            left: rect.right,
            id: state.id,
            text: props.content
          });
        }
      } else {
        container_bus.emit(NAMES.HIDE_TOOLTIP, {
          id: state.id
        });
      }
    });
    return {
      props,
      refs,
      handleClick,
      showTooltip,
      hideTooltip
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/container/component/UKeyword/UKeyword.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/container/component/UKeyword/UKeyword.vue




;
const UKeyword_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(UKeywordvue_type_script_lang_ts, [['render',UKeywordvue_type_template_id_37ab3860_ts_true_render]])

/* harmony default export */ const UKeyword = (UKeyword_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/UrbanDictionary/container/index.ts?vue&type=script&lang=ts












const keywordCache = new Map();
const UrbanDictionary_containervue_type_script_lang_ts_icon = {
  loading: loading,
  like_179655: like_179655
};
/* harmony default export */ const UrbanDictionary_containervue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'UrbanDictionaryContainer',
  components: {
    Scrollable: Scrollable,
    UKeyword: UKeyword
  },
  setup: () => {
    const refs = {
      container: reactivity_esm_bundler_ref()
    };
    const state = reactivity_esm_bundler_reactive({
      tooltips: []
    });

    const extractDefinition = s => {
      const array = [];

      const groups = match_all_default()(s).call(s, /\[.+?\]/g);

      let start = 0;

      for (const item of groups) {
        if (item.index !== start) {
          array.push({
            text: s.substring(start, item.index),
            isTag: false
          });
        }

        array.push({
          text: item[0].slice(1, -1),
          isTag: true
        });
        start = item.index + item[0].length;
      }

      if (start !== s.length - 1) {
        array.push({
          text: s.substring(start),
          isTag: false
        });
      }

      return array;
    };

    const getTime = time => time.slice(0, time.indexOf('T'));

    const showTooltip = p => {
      if (!refs.container.value) {
        return;
      }

      const rect = refs.container.value.getBoundingClientRect();

      if (state.tooltips.find(v => v.id === p.id)) {
        return;
      }

      const cacheResult = keywordCache.get(p.text);
      const tooltipItem = reactivity_esm_bundler_reactive({
        id: p.id,
        text: '',
        top: p.top - rect.top,
        left: p.left - rect.left
      });
      state.tooltips.push(tooltipItem);

      if (cacheResult) {
        promise_default().resolve(cacheResult).then(d => {
          tooltipItem.text = d;
        });

        return;
      }

      const run = async () => {
        await getApiKey(); // load tooltip

        const res = await got({
          method: 'GET',
          url: `https://api.urbandictionary.com/v0/tooltip?term=${encodeURIComponent(p.text)}&key=${apiKeyState.apiKey}`,
          timeout: 5000,
          responseType: 'json'
        });

        if (Either_isLeft(res)) {
          throw new Error(res.left.type);
        } // eslint-disable-next-line @typescript-eslint/no-unsafe-return


        return JSON.parse(res.right.responseText).string;
      };

      const promise = run();
      promise.then(d => {
        tooltipItem.text = d;
      });
      keywordCache.set(p.text, promise);
    };

    const hideTooltip = p => {
      const item = state.tooltips.find(v => v.id === p.id);

      if (item) {
        state.tooltips.splice(state.tooltips.indexOf(item), 1);
      }
    };

    const list = runtime_core_esm_bundler_computed(() => {
      var _containerData$data$l, _containerData$data;

      return (_containerData$data$l = (_containerData$data = UrbanDictionary_container_data.data) === null || _containerData$data === void 0 ? void 0 : _containerData$data.list) !== null && _containerData$data$l !== void 0 ? _containerData$data$l : [];
    });
    runtime_core_esm_bundler_onMounted(() => {
      container_bus.on(NAMES.SHOW_TOOLTIP, showTooltip);
      container_bus.on(NAMES.HIDE_TOOLTIP, hideTooltip);
    });
    runtime_core_esm_bundler_onUnmounted(() => {
      container_bus.off(NAMES.SHOW_TOOLTIP, showTooltip);
      container_bus.off(NAMES.HIDE_TOOLTIP, hideTooltip);
    });
    return {
      state,
      list,
      refs,
      icon: UrbanDictionary_containervue_type_script_lang_ts_icon,
      extractDefinition,
      getTime,
      showTooltip,
      hideTooltip
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/container/index.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/UrbanDictionary/container/index.sass?vue&type=style&index=0&id=4129bac5&lang=sass&scoped=true
var containervue_type_style_index_0_id_4129bac5_lang_sass_scoped_true = __webpack_require__(1855);
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/container/index.sass?vue&type=style&index=0&id=4129bac5&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/container/index.vue




;


const UrbanDictionary_container_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(UrbanDictionary_containervue_type_script_lang_ts, [['render',containervue_type_template_id_4129bac5_scoped_true_ts_true_render],['__scopeId',"data-v-4129bac5"]])

/* harmony default export */ const UrbanDictionary_container = (UrbanDictionary_container_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/UrbanDictionary/settings/index.vue?vue&type=template&id=72c125e6&ts=true

const settingsvue_type_template_id_72c125e6_ts_true_hoisted_1 = {
  class: "flex-col items-start"
};
function settingsvue_type_template_id_72c125e6_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_provider_common = resolveComponent("provider-common");

  return openBlock(), createElementBlock("div", settingsvue_type_template_id_72c125e6_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_provider_common, {
    icon: _ctx.form.icon,
    "onUpdate:icon": _cache[0] || (_cache[0] = $event => _ctx.form.icon = $event),
    display: _ctx.form.display,
    "onUpdate:display": _cache[1] || (_cache[1] = $event => _ctx.form.display = $event),
    "enable-hotkey": _ctx.form.enableHotkey,
    "onUpdate:enable-hotkey": _cache[2] || (_cache[2] = $event => _ctx.form.enableHotkey = $event),
    hotkey: _ctx.form.hotkey,
    "onUpdate:hotkey": _cache[3] || (_cache[3] = $event => _ctx.form.hotkey = $event),
    name: "urban dictionary",
    icons: _ctx.iconOptions
  }, null, 8, ["icon", "display", "enable-hotkey", "hotkey", "icons"])]);
}
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/settings/index.vue?vue&type=template&id=72c125e6&ts=true

;// CONCATENATED MODULE: ./src/assets/img/providerIcon/urbanDictionary/urbanDictionary.svg
/* harmony default export */ const urbanDictionary = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 500 500\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#445588\" d=\"M77.37 92.08s16.13 16.13 19.36 32.27v45.18c0 12.91-6.45 35.49-6.45 51.63 0 19.36 3.23 25.81 6.45 35.49 3.23 9.68 3.23 9.68 3.23 25.81s-3.23 77.44-3.23 77.44l-3.23 48.4 9.68 22.59 12.91-12.91s3.23 9.68 9.68 19.36c6.45 9.68 32.27 19.36 32.27 19.36l32.27 9.68 103.26-41.95s12.91 9.68 22.59 12.91c9.68 3.23 41.95 19.36 58.08 22.59s25.81 6.45 38.72 6.45 25.81-3.23 38.72-9.68c12.91-3.23 29.04-9.68 29.04-9.68l6.45-38.72-77.44-51.63-16.13 12.91s-6.45-54.86-9.68-83.9c-3.23-29.04-9.68-67.76-9.68-67.76l9.68-6.45s-6.45-51.63-9.68-64.54c0-12.91 6.45-45.18 6.45-51.63 0-6.45 3.23-25.81 3.23-25.81V53.36l-22.59-9.68-25.81 9.68L290.34 34l-41.95 22.59 3.23 25.81h70.99l29.04 19.36v19.36l-9.68 9.68s-3.23 32.27-3.23 54.86c-3.23 22.59-3.23 48.4-6.45 74.22-3.23 32.27-9.68 61.31-19.36 87.12 0 0-38.72 22.59-58.08 32.27-29.04 9.68-54.86 9.68-54.86 9.68l-45.18-19.36c-6.45-41.95-12.91-77.44-16.13-106.48-3.23-9.68-3.23-12.91 0-25.81 0-9.68 6.45-45.18 6.45-45.18l-9.68-9.68s6.45-38.72 9.68-51.63c3.23-12.91 3.23-25.81 6.45-35.49 0-9.68 3.23-19.36 3.23-19.36l-6.45-22.59s-25.81-9.68-38.72-12.91C99.96 37.23 83.83 34 83.83 34H58.02c-9.68 0-25.81 3.23-25.81 3.23L12.84 56.59s3.23 9.68 6.45 12.91l3.23 6.45 9.68 3.23 12.91 16.13s12.91 0 22.59-3.23c-.01 3.23 9.67 0 9.67 0\"/></svg>\n");
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/icons.ts

const UrbanDictionary_icons_icons = {
  urbanDictionary: urbanDictionary
};
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/store/index.ts


function UrbanDictionary_store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function UrbanDictionary_store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? UrbanDictionary_store_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : UrbanDictionary_store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }





const UrbanDictionary_store_storeType = fallbackInterface(UrbanDictionary_store_objectSpread(UrbanDictionary_store_objectSpread({}, providerCommonStore), {}, {
  display: fallback(es6_boolean, false),
  icon: fallback(keyof(UrbanDictionary_icons_icons), 'urbanDictionary')
}));
const UrbanDictionary_store_defaultStore = UrbanDictionary_store_storeType.defaultData;
const UrbanDictionary_store_store = {
  data: null
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/UrbanDictionary/settings/index.ts?vue&type=script&lang=ts




const UrbanDictionary_settingsvue_type_script_lang_ts_iconOptions = Object.entries(UrbanDictionary_icons_icons).map(([k, v]) => ({
  icon: v,
  key: k
}));
/* harmony default export */ const UrbanDictionary_settingsvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'UrbanDictionarySettings',
  components: {
    ProviderCommon: providerCommon
  },
  setup: () => ({
    form: UrbanDictionary_store_store.data,
    iconOptions: UrbanDictionary_settingsvue_type_script_lang_ts_iconOptions
  })
}));
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/settings/index.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/settings/index.vue




;
const UrbanDictionary_settings_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(UrbanDictionary_settingsvue_type_script_lang_ts, [['render',settingsvue_type_template_id_72c125e6_ts_true_render]])

/* harmony default export */ const UrbanDictionary_settings = (UrbanDictionary_settings_exports_);
;// CONCATENATED MODULE: ./src/provider/UrbanDictionary/index.ts






const UrbanDictionaryProvider = createProvider({
  id: 'URBAN_DICTIONARY',
  label: 'Urban Dictionary',
  translate: UrbanDictionary_translate_translate,
  translateView: UrbanDictionary_container,
  settingView: UrbanDictionary_settings,
  icons: UrbanDictionary_icons_icons,
  storeWrapper: UrbanDictionary_store_store,
  storeType: UrbanDictionary_store_storeType,
  defaultStore: UrbanDictionary_store_defaultStore
});
;// CONCATENATED MODULE: ./src/util/trustedHTMLHack.ts
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
const escapeHTMLPolicy = window.trustedTypes ? trustedTypes.createPolicy('myEscapePolicy', {
  createHTML: string => string
}) : null;
const trustedHTMLHack = (...args) => {
  if (escapeHTMLPolicy) {
    return escapeHTMLPolicy.createHTML(...args);
  }

  return args[0];
};
unsafeWindow.icibaUserscriptTrustedHTML = trustedHTMLHack;
;// CONCATENATED MODULE: ./src/provider/Vocabulary/container/data.ts

const Vocabulary_container_data_data = {
  data: null
};
/* harmony default export */ const Vocabulary_container_data = (reactivity_esm_bundler_reactive(Vocabulary_container_data_data));
;// CONCATENATED MODULE: ./src/provider/Vocabulary/translate.ts







const nonNull = p => {
  if (!p) {
    throw new Error();
  }

  return p;
};

const getAutocomplete = async word => {
  const result = await got({
    method: 'GET',
    url: `https://www.vocabulary.com/dictionary/autocomplete?search=${encodeURIComponent(word)}`,
    headers: {
      Accept: '*/*',
      Host: 'www.vocabulary.com'
    }
  });

  if (Either_isLeft(result)) {
    throw new Error(result.left.type);
  }

  const html = result.right.responseText;
  const div = document.createElement('div');
  div.innerHTML = trustedHTMLHack(html);
  const data = Array.from(div.querySelectorAll('.suggestions > li')).map(li => {
    var _li$getAttribute, _li$getAttribute2, _li$getAttribute3, _li$getAttribute4;

    return {
      lang: (_li$getAttribute = li.getAttribute('lang')) !== null && _li$getAttribute !== void 0 ? _li$getAttribute : '',
      synsetid: (_li$getAttribute2 = li.getAttribute('synsetid')) !== null && _li$getAttribute2 !== void 0 ? _li$getAttribute2 : '',
      word: (_li$getAttribute3 = li.getAttribute('word')) !== null && _li$getAttribute3 !== void 0 ? _li$getAttribute3 : '',
      freq: (_li$getAttribute4 = li.getAttribute('freq')) !== null && _li$getAttribute4 !== void 0 ? _li$getAttribute4 : ''
    };
  });
  return data;
}; // const getExamples = async (word: string) => {
//   const result = await got<ExampleResult>({
//     method: 'GET',
//     url: `https://corpus.vocabulary.com/api/1.0/examples.json?query=${encodeURIComponent(word)}&maxResults=24&startOffset=0&filter=0`,
//     responseType: 'json',
//     headers: {
//       'Accept': '*/*',
//       'Host': 'www.vocabulary.com',
//     },
//   })
//   const data = result.response
//   return data
// }


const getDefinition = async word => {
  var _div$querySelector$te, _div$querySelector, _div$querySelector$te2, _div$querySelector$te3, _div$querySelector2, _div$querySelector2$t;

  const result = await got({
    method: 'GET',
    url: `https://www.vocabulary.com/dictionary/definition.ajax?search=${encodeURIComponent(word)}&lang=en`,
    headers: {
      Accept: '*/*',
      Host: 'www.vocabulary.com'
    }
  });

  if (Either_isLeft(result)) {
    throw new Error(result.left.type);
  }

  const html = result.right.responseText;
  const div = document.createElement('div');
  div.innerHTML = trustedHTMLHack(html);
  const data = {
    short: (_div$querySelector$te = (_div$querySelector = div.querySelector('.word-area .short')) === null || _div$querySelector === void 0 ? void 0 : (_div$querySelector$te2 = _div$querySelector.textContent) === null || _div$querySelector$te2 === void 0 ? void 0 : trim_default()(_div$querySelector$te2).call(_div$querySelector$te2)) !== null && _div$querySelector$te !== void 0 ? _div$querySelector$te : undefined,
    long: (_div$querySelector$te3 = (_div$querySelector2 = div.querySelector('.word-area .long')) === null || _div$querySelector2 === void 0 ? void 0 : (_div$querySelector2$t = _div$querySelector2.textContent) === null || _div$querySelector2$t === void 0 ? void 0 : trim_default()(_div$querySelector2$t).call(_div$querySelector2$t)) !== null && _div$querySelector$te3 !== void 0 ? _div$querySelector$te3 : undefined,
    audio: nonNull(div.querySelector('.word-area .audio')).getAttribute('data-audio') // groups: Array.from(div.querySelectorAll('.definitions .section.definition .group')).map((group, index) => ({
    //   index,
    //   group: Array.from(group.querySelectorAll('.ordinal .sense')).map((sense) => ({
    //     type: nonNull(sense.querySelector('.anchor')).textContent,
    //     definition: (nonNull(nonNull(sense.querySelector('.anchor')).nextSibling).textContent ?? '').trim(),
    //   })),
    //   family: JSON.parse(nonNull(div.querySelector('.section.family vcom\\:wordfamily')).getAttribute('data') ?? ''),
    // })),

  };
  return data;
};

const Vocabulary_translate_translate = async ({
  word
}) => {
  try {
    const autocomplete = await getAutocomplete(word);
    const newWord = autocomplete.some(v => v.word === word) ? word : autocomplete[0].word;
    const definition = await getDefinition(newWord);
    return Either_right(() => {
      Vocabulary_container_data.data = util_copy({
        word: newWord,
        autocomplete,
        definition
      });
    });
  } catch (e) {
    return Either_left({
      message: e.message
    });
  }
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/Vocabulary/container/index.vue?vue&type=template&id=45930c7a&scoped=true&ts=true


const containervue_type_template_id_45930c7a_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-45930c7a"), n = n(), _popScopeId(), n);

const containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_1 = {
  class: "flex-col relative text-grey-900"
};
const containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_2 = {
  class: "word flex items-center"
};
const containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_3 = ["href"];
const containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_4 = {
  key: 0,
  class: "short-def mt-1"
};
const containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_5 = {
  key: 1,
  class: "long-def mt-1 pt-2px text-13"
};
const containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_6 = {
  class: "text-grey-500"
};
const containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_7 = {
  class: "group-index mt-2px mr-1 flex-none text-grey-700 font-bold"
};
const containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_8 = {
  class: "group-item-box"
};
function containervue_type_template_id_45930c7a_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  const _component_scrollable = resolveComponent("scrollable");

  return openBlock(), createElementBlock("div", containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_scrollable, {
    class: "scroll-container"
  }, {
    default: withCtx(({
      scrollBar
    }) => [_ctx.data ? (openBlock(), createElementBlock("div", {
      key: 0,
      class: normalizeClass(["main-box flex-col flex-auto text-14 text-grey-800 break-words", [scrollBar && 'py-10px pl-10px pr-14px', !scrollBar && 'p-10px']])
    }, [createBaseVNode("div", containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_2, [createBaseVNode("a", {
      class: "text-15 no-underline text-link",
      href: `https://www.vocabulary.com/dictionary/${_ctx.data.word}`,
      target: "_blank",
      rel: "noopener"
    }, toDisplayString(_ctx.data.word), 9, containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_3), _ctx.data.definition.audio ? (openBlock(), createElementBlock("div", {
      key: 0,
      class: "play-sound flex flex-center mt-2px ml-1",
      onClick: _cache[0] || (_cache[0] = $event => _ctx.handlePlay(_ctx.data.definition.audio))
    }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
      svg: _ctx.icon.play
    }, null, 8, ["svg"])])) : createCommentVNode("", true)]), _ctx.data.definition.short ? (openBlock(), createElementBlock("div", containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_4, toDisplayString(_ctx.data.definition.short), 1)) : createCommentVNode("", true), _ctx.data.definition.long ? (openBlock(), createElementBlock("div", containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_5, [createBaseVNode("span", containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_6, toDisplayString(_ctx.data.definition.long), 1)])) : createCommentVNode("", true), (openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.data.definition.groups, group => {
      return openBlock(), createElementBlock("div", {
        class: "group-item mt-1 flex text-13",
        key: group.index
      }, [createBaseVNode("div", containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_7, toDisplayString(group.index + 1) + ". ", 1), createBaseVNode("div", containervue_type_template_id_45930c7a_scoped_true_ts_true_hoisted_8, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(group.group, (subGroup, index) => {
        return openBlock(), createElementBlock("div", {
          class: "group-def-item flex mt-2px",
          key: index
        }, [createBaseVNode("div", {
          class: normalizeClass(["group-type px-1 mr-1 self-start flex-none", {
            'text-blue-500': subGroup.type === 'adv',
            'text-orange-400': subGroup.type === 'adj',
            'text-green-600': subGroup.type === 'v',
            'text-red-400': subGroup.type === 'n'
          }])
        }, toDisplayString(subGroup.type) + ".  ", 3), createBaseVNode("div", null, toDisplayString(subGroup.definition), 1)]);
      }), 128))])]);
    }), 128))], 2)) : createCommentVNode("", true)]),
    _: 1
  })]);
}
;// CONCATENATED MODULE: ./src/provider/Vocabulary/container/index.vue?vue&type=template&id=45930c7a&scoped=true&ts=true

;// CONCATENATED MODULE: ./src/provider/Vocabulary/playAudio.ts



/*
https://audio.vocab.com/1.0/us/B/RQGAHF8JUGF9.mp3
https://audio.vocab.com/1.0/us/${data-audio}.mp3
*/

const Vocabulary_playAudio_playAudio = async key => {
  if (!key) {
    return;
  }

  const url = `https://audio.vocab.com/1.0/us/${key}.mp3`;
  const volume = 0.65;

  if (audioCacheService.play(url, volume)) {
    return;
  }

  const response = await got({
    method: 'GET',
    headers: {
      Referer: 'https://www.vocabulary.com'
    },
    responseType: 'arraybuffer',
    url,
    timeout: 5000
  });

  if (Either_isRight(response)) {
    audioCacheService.play(url, response.right.response, volume);
  }
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/Vocabulary/container/index.ts?vue&type=script&lang=ts





/* harmony default export */ const Vocabulary_containervue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'VocabularyContainer',
  components: {
    Scrollable: Scrollable
  },
  setup: () => {
    const data = runtime_core_esm_bundler_computed(() => Vocabulary_container_data.data);

    const handlePlay = key => {
      if (!key) {
        return;
      }

      Vocabulary_playAudio_playAudio(key);
    };

    return {
      icon: {
        play: speaker_filled_audio_tool_59284
      },
      data,
      handlePlay
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/Vocabulary/container/index.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/Vocabulary/container/index.sass?vue&type=style&index=0&id=45930c7a&lang=sass&scoped=true
var containervue_type_style_index_0_id_45930c7a_lang_sass_scoped_true = __webpack_require__(6446);
;// CONCATENATED MODULE: ./src/provider/Vocabulary/container/index.sass?vue&type=style&index=0&id=45930c7a&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/Vocabulary/container/index.vue




;


const Vocabulary_container_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(Vocabulary_containervue_type_script_lang_ts, [['render',containervue_type_template_id_45930c7a_scoped_true_ts_true_render],['__scopeId',"data-v-45930c7a"]])

/* harmony default export */ const Vocabulary_container = (Vocabulary_container_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/Vocabulary/settings/index.vue?vue&type=template&id=3d7263e0&ts=true

const settingsvue_type_template_id_3d7263e0_ts_true_hoisted_1 = {
  class: "flex-col items-start"
};
function settingsvue_type_template_id_3d7263e0_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_provider_common = resolveComponent("provider-common");

  return openBlock(), createElementBlock("div", settingsvue_type_template_id_3d7263e0_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_provider_common, {
    icon: _ctx.form.icon,
    "onUpdate:icon": _cache[0] || (_cache[0] = $event => _ctx.form.icon = $event),
    display: _ctx.form.display,
    "onUpdate:display": _cache[1] || (_cache[1] = $event => _ctx.form.display = $event),
    "enable-hotkey": _ctx.form.enableHotkey,
    "onUpdate:enable-hotkey": _cache[2] || (_cache[2] = $event => _ctx.form.enableHotkey = $event),
    hotkey: _ctx.form.hotkey,
    "onUpdate:hotkey": _cache[3] || (_cache[3] = $event => _ctx.form.hotkey = $event),
    name: "vocabulary.com",
    icons: _ctx.iconOptions
  }, null, 8, ["icon", "display", "enable-hotkey", "hotkey", "icons"])]);
}
;// CONCATENATED MODULE: ./src/provider/Vocabulary/settings/index.vue?vue&type=template&id=3d7263e0&ts=true

;// CONCATENATED MODULE: ./src/assets/img/providerIcon/vocabulary/logo.svg
/* harmony default export */ const logo = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 500 500\"><linearGradient id=\"a\" gradientUnits=\"userSpaceOnUse\" x1=\"108.3592\" y1=\"300.9078\" x2=\"213.5802\" y2=\"491.5423\"><stop offset=\"0\" stop-color=\"#69ac1d\"/><stop offset=\".1934\" stop-color=\"#599a1c\"/><stop offset=\".5835\" stop-color=\"#316a19\"/><stop offset=\"1\" stop-color=\"#003016\"/></linearGradient><linearGradient id=\"b\" gradientUnits=\"userSpaceOnUse\" x1=\"170.5128\" y1=\"250\" x2=\"426.0599\" y2=\"250\"><stop offset=\"0\" stop-color=\"#add099\"/><stop offset=\".1919\" stop-color=\"#a4cb88\"/><stop offset=\".572\" stop-color=\"#8bbe5c\"/><stop offset=\"1\" stop-color=\"#6cae23\"/></linearGradient><path d=\"M30 240.753L98.718 200.713 265.984 500 170.513 500z\" fill=\"url(#a)\"/><path d=\"M405.385,0L470,48.253C334.615,250.507,265.984,500,265.984,500h-95.471 C170.513,500,260.769,193.013,405.385,0z\" fill=\"url(#b)\"/></svg>\n");
;// CONCATENATED MODULE: ./src/provider/Vocabulary/icons.ts

const Vocabulary_icons_icons = {
  logo: logo
};
;// CONCATENATED MODULE: ./src/provider/Vocabulary/store/index.ts


function Vocabulary_store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function Vocabulary_store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? Vocabulary_store_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : Vocabulary_store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }





const Vocabulary_store_storeType = fallbackInterface(Vocabulary_store_objectSpread(Vocabulary_store_objectSpread({}, providerCommonStore), {}, {
  display: fallback(es6_boolean, false),
  icon: fallback(keyof(Vocabulary_icons_icons), 'logo')
}));
const Vocabulary_store_defaultStore = Vocabulary_store_storeType.defaultData;
const Vocabulary_store_store = {
  data: null
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/Vocabulary/settings/index.ts?vue&type=script&lang=ts




const Vocabulary_settingsvue_type_script_lang_ts_iconOptions = Object.entries(Vocabulary_icons_icons).map(([k, v]) => ({
  icon: v,
  key: k
}));
/* harmony default export */ const Vocabulary_settingsvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'VocabularySettings',
  components: {
    ProviderCommon: providerCommon
  },
  setup: () => ({
    form: Vocabulary_store_store.data,
    iconOptions: Vocabulary_settingsvue_type_script_lang_ts_iconOptions
  })
}));
;// CONCATENATED MODULE: ./src/provider/Vocabulary/settings/index.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/Vocabulary/settings/index.vue




;
const Vocabulary_settings_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(Vocabulary_settingsvue_type_script_lang_ts, [['render',settingsvue_type_template_id_3d7263e0_ts_true_render]])

/* harmony default export */ const Vocabulary_settings = (Vocabulary_settings_exports_);
;// CONCATENATED MODULE: ./src/provider/Vocabulary/index.ts






const VocabularyProvider = createProvider({
  id: 'VOCABULARY',
  label: 'Vocabulary',
  translate: Vocabulary_translate_translate,
  translateView: Vocabulary_container,
  settingView: Vocabulary_settings,
  icons: Vocabulary_icons_icons,
  storeWrapper: Vocabulary_store_store,
  storeType: Vocabulary_store_storeType,
  defaultStore: Vocabulary_store_defaultStore
});
;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/rng.js
// Unique ID creation requires a high quality random # generator. In the browser we therefore
// require the crypto API and do not support built-in fallback to lower quality random number
// generators (like Math.random()).
var getRandomValues;
var rnds8 = new Uint8Array(16);
function rng() {
  // lazy load so that environments that need to polyfill have a chance to do so
  if (!getRandomValues) {
    // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also,
    // find the complete implementation of crypto (msCrypto) on IE11.
    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);

    if (!getRandomValues) {
      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
    }
  }

  return getRandomValues(rnds8);
}
;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/regex.js
/* harmony default export */ const regex = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i);
;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/validate.js


function validate(uuid) {
  return typeof uuid === 'string' && regex.test(uuid);
}

/* harmony default export */ const esm_browser_validate = (validate);
;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/stringify.js

/**
 * Convert array of 16 byte values to UUID string format of the form:
 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
 */

var byteToHex = [];

for (var stringify_i = 0; stringify_i < 256; ++stringify_i) {
  byteToHex.push((stringify_i + 0x100).toString(16).substr(1));
}

function stringify(arr) {
  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  // Note: Be careful editing this code!  It's been tuned for performance
  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
  var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one
  // of the following:
  // - One or more input array values don't map to a hex octet (leading to
  // "undefined" in the uuid)
  // - Invalid input values for the RFC `version` or `variant` fields

  if (!esm_browser_validate(uuid)) {
    throw TypeError('Stringified UUID is invalid');
  }

  return uuid;
}

/* harmony default export */ const esm_browser_stringify = (stringify);
;// CONCATENATED MODULE: ./node_modules/uuid/dist/esm-browser/v4.js



function v4(options, buf, offset) {
  options = options || {};
  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`

  rnds[6] = rnds[6] & 0x0f | 0x40;
  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided

  if (buf) {
    offset = offset || 0;

    for (var i = 0; i < 16; ++i) {
      buf[offset + i] = rnds[i];
    }

    return buf;
  }

  return esm_browser_stringify(rnds);
}

/* harmony default export */ const esm_browser_v4 = (v4);
// EXTERNAL MODULE: ./node_modules/crypto-js/hmac-sha1.js
var hmac_sha1 = __webpack_require__(7334);
var hmac_sha1_default = /*#__PURE__*/__webpack_require__.n(hmac_sha1);
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/container/data.ts

const AliApiTranslate_container_data_data = {
  data: null,
  inputText: '',
  autoMode: false,
  sourceLanguage: '',
  targetLanguage: ''
};
/* harmony default export */ const AliApiTranslate_container_data = (reactivity_esm_bundler_reactive(AliApiTranslate_container_data_data));
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/aliApiLanguages.ts
var ALI_API_LANGUAGES;

(function (ALI_API_LANGUAGES) {
  ALI_API_LANGUAGES["zh"] = "zh";
  ALI_API_LANGUAGES["en"] = "en";
  ALI_API_LANGUAGES["ja"] = "ja";
  ALI_API_LANGUAGES["ko"] = "ko";
  ALI_API_LANGUAGES["fr"] = "fr";
  ALI_API_LANGUAGES["es"] = "es";
  ALI_API_LANGUAGES["it"] = "it";
  ALI_API_LANGUAGES["tr"] = "tr";
  ALI_API_LANGUAGES["ru"] = "ru";
  ALI_API_LANGUAGES["pt"] = "pt";
  ALI_API_LANGUAGES["vi"] = "vi";
  ALI_API_LANGUAGES["id"] = "id";
  ALI_API_LANGUAGES["th"] = "th";
  ALI_API_LANGUAGES["ms"] = "ms";
})(ALI_API_LANGUAGES || (ALI_API_LANGUAGES = {}));

const ALI_API_LANGUAGE_MAP = {
  [ALI_API_LANGUAGES.zh]: '中文',
  [ALI_API_LANGUAGES.en]: '英语',
  [ALI_API_LANGUAGES.ja]: '日语',
  [ALI_API_LANGUAGES.ko]: '韩语',
  [ALI_API_LANGUAGES.fr]: '法语',
  [ALI_API_LANGUAGES.es]: '西班牙语',
  [ALI_API_LANGUAGES.it]: '意大利语',
  [ALI_API_LANGUAGES.tr]: '土耳其语',
  [ALI_API_LANGUAGES.ru]: '俄语',
  [ALI_API_LANGUAGES.pt]: '葡萄牙语',
  [ALI_API_LANGUAGES.vi]: '越南语',
  [ALI_API_LANGUAGES.id]: '印尼语',
  [ALI_API_LANGUAGES.th]: '泰语',
  [ALI_API_LANGUAGES.ms]: '马来语'
};
const aliApiLanguagesOptions = Object.entries(ALI_API_LANGUAGE_MAP).map(([k, v]) => ({
  text: v,
  key: k
}));
;// CONCATENATED MODULE: ./src/assets/img/providerIcon/aliApiTranslate/aliApi.svg
/* harmony default export */ const aliApi = ("<svg width=\"202\" height=\"173\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMidYMid meet\">\n\n <g>\n  <title>background</title>\n  <rect fill=\"none\" id=\"canvas_background\" height=\"175\" width=\"204\" y=\"-1\" x=\"-1\"/>\n </g>\n <g>\n  <title>Layer 1</title>\n  <g id=\"svg_1\" fill=\"#000000\" transform=\"translate(0,173) scale(0.10000000149011612,-0.10000000149011612) \">\n   <path fill=\"#595bd4\" id=\"svg_2\" d=\"m844,1723c-12,-2 -33,-16 -46,-31c-40,-43 -798,-1544 -798,-1580c0,-17 5,-43 12,-57c23,-51 47,-55 297,-55l229,0l377,160c207,88 380,162 384,165c5,2 35,-69 68,-158l60,-162l265,-3l266,-2l31,29c29,27 36,48 31,96c-2,25 -219,627 -229,638c-5,5 -920,-377 -1245,-521c-40,-18 -68,-22 -153,-22c-58,0 -103,4 -101,8c2,5 147,293 322,640l320,632l179,-2l179,-3l73,-200c40,-110 72,-201 72,-201c-17,-14 -313,-132 -317,-126c-4,4 -15,29 -24,55c-10,27 -19,47 -21,45c-11,-14 -236,-460 -233,-463c3,-3 867,360 874,368c7,6 -249,694 -264,711c-40,44 -58,46 -329,45c-142,-1 -268,-4 -279,-6zm830,-1279c42,-116 76,-214 76,-218c0,-3 -88,-6 -195,-6l-195,0l112,225c62,123 115,221 119,217c3,-4 41,-102 83,-218z\"/>\n   <path fill=\"#595bd4\" id=\"svg_3\" d=\"m2400,1195l0,-535l70,0l70,0l0,490l0,490l59,0l59,0l-29,-112c-16,-62 -29,-119 -29,-125c0,-8 13,-13 30,-13l30,0l0,-250l0,-250l-30,0c-26,0 -33,-7 -55,-50l-25,-50l74,0c66,0 78,3 107,27c55,47 59,67 59,338l0,245l-31,0c-24,0 -30,4 -25,15c25,67 66,232 66,269l0,46l-200,0l-200,0l0,-535z\"/>\n   <path fill=\"#595bd4\" id=\"svg_4\" d=\"m2832,1683l3,-48l253,-3l252,-2l0,-406c0,-502 8,-474 -141,-474l-79,0l-20,-40c-11,-21 -20,-42 -20,-45c0,-4 69,-5 154,-3c177,3 193,10 234,88c22,44 22,48 22,462l0,418l35,0l35,0l0,50l0,50l-366,0l-365,0l3,-47z\"/>\n   <path fill=\"#595bd4\" id=\"svg_5\" d=\"m3760,1410l0,-320l225,0l225,0l0,-60l0,-60l-225,0l-225,0l0,-50l0,-50l225,0l225,0l0,-60l0,-60l-260,0l-260,0l0,-45l0,-45l598,2l597,3l3,43l3,42l-265,0l-266,0l0,60l0,60l240,0l240,0l0,50l0,50l-240,0l-240,0l0,60l0,60l168,0c195,0 221,8 262,81c25,43 25,48 28,302l3,257l-530,0l-531,0l0,-320zm450,145l0,-85l-155,0l-155,0l0,85l0,85l155,0l155,0l0,-85zm470,0l0,-85l-160,0l-160,0l0,85l0,85l160,0l160,0l0,-85zm-470,-275l0,-90l-155,0l-155,0l0,90l0,90l155,0l155,0l0,-90zm470,50c0,-52 -21,-103 -51,-124c-19,-13 -49,-16 -146,-16l-123,0l0,90l0,90l160,0l160,0l0,-40z\"/>\n   <path fill=\"#595bd4\" id=\"svg_6\" d=\"m5020,1685l0,-45l120,0l120,0l0,-80c0,-77 -1,-80 -24,-80c-20,0 -25,8 -37,53l-14,52l-68,3c-75,3 -75,2 -52,-63c8,-22 15,-41 15,-42c0,-2 -13,-3 -30,-3c-29,0 -30,-2 -30,-44c0,-42 2,-45 29,-48l29,-3l-28,-72c-15,-40 -25,-74 -22,-77c3,-3 35,-6 72,-6l67,0l30,77c18,49 35,79 45,81c15,3 18,-8 20,-75l3,-78l73,-3l72,-3l0,81c0,77 1,81 21,78c17,-2 27,-19 48,-78l26,-75l63,-3c72,-3 73,-1 42,80c-27,70 -26,78 10,78c29,0 30,2 30,45c0,45 0,45 -35,45l-34,0l14,41c24,68 23,70 -47,67l-61,-3l-15,-52c-12,-45 -18,-53 -38,-53c-23,0 -24,3 -24,80l0,79l97,3l98,3l17,35c9,19 17,38 18,43c0,4 -139,7 -310,7l-310,0l0,-45z\"/>\n   <path fill=\"#595bd4\" id=\"svg_7\" d=\"m5690,1685l0,-45l50,0l50,0l0,-80l0,-80l-50,0l-50,0l0,-45l0,-45l50,0l50,0l0,-119l0,-118l-50,-31c-49,-31 -50,-32 -50,-82c0,-27 2,-50 4,-50c2,0 24,12 50,26l46,26l0,-130c0,-129 0,-131 -26,-151c-15,-12 -37,-21 -50,-21c-25,0 -44,-26 -44,-59c0,-19 6,-21 70,-21c81,0 128,16 158,55c22,28 22,30 22,521l0,494l-115,0l-115,0l0,-45z\"/>\n   <path fill=\"#595bd4\" id=\"svg_8\" d=\"m5960,1685l0,-45l50,0l50,0l0,-80l0,-80l-50,0l-50,0l0,-45l0,-45l50,0l50,0l0,-119l0,-118l-50,-31c-49,-31 -50,-32 -50,-82c0,-27 2,-50 4,-50c2,0 24,12 50,26l46,26l0,-136c0,-128 -1,-136 -22,-150c-12,-9 -35,-16 -51,-16c-23,0 -31,-7 -43,-35c-7,-19 -14,-37 -14,-40c0,-3 36,-5 80,-5c93,0 148,21 168,65c9,19 12,157 12,515l0,490l-115,0l-115,0l0,-45z\"/>\n   <path fill=\"#595bd4\" id=\"svg_9\" d=\"m6340,1685l0,-45l120,0l120,0l0,45l0,45l-120,0l-120,0l0,-45z\"/>\n   <path fill=\"#595bd4\" id=\"svg_10\" d=\"m6680,1685l0,-45l345,0c373,0 367,1 325,-53c-18,-23 -185,-97 -220,-97c-7,0 -49,23 -92,50l-80,51l-96,-3l-97,-3l110,-74c60,-41 105,-76 100,-78c-6,-3 -71,-26 -145,-51l-135,-47l-3,-62c-2,-44 1,-63 9,-63c7,0 103,29 215,65l203,65l193,-81c106,-45 196,-83 201,-86c4,-2 7,25 7,60l0,64l-116,54l-115,53l68,34c122,61 163,118 163,227l0,65l-420,0l-420,0l0,-45z\"/>\n   <path fill=\"#595bd4\" id=\"svg_11\" d=\"m6340,1525c0,-45 0,-45 35,-45l35,0l0,-342c0,-189 5,-361 10,-382c5,-22 20,-51 35,-65c24,-25 32,-26 143,-29l117,-4l18,36c9,20 17,41 17,46c0,6 -31,10 -68,10c-39,0 -75,5 -85,13c-15,11 -17,50 -19,407l-3,395l-117,3l-118,3l0,-46z\"/>\n   <path fill=\"#595bd4\" id=\"svg_12\" d=\"m2850,1214l0,-325l180,3c156,3 182,5 197,21c16,16 18,46 21,322l3,305l-201,0l-200,0l0,-326zm260,8c0,-156 -3,-221 -12,-230c-7,-7 -34,-12 -60,-12l-48,0l0,230l0,230l60,0l60,0l0,-218z\"/>\n   <path fill=\"#595bd4\" id=\"svg_13\" d=\"m7028,1168l-3,-73l-147,-3l-148,-3l0,-44l0,-45l150,0l151,0l-3,-62l-3,-63l-167,-3l-168,-2l0,-45l0,-45l170,0l170,0l0,-60l0,-60l85,0l85,0l0,60l0,60l160,0l160,0l0,45l0,45l-160,0l-160,0l0,65l0,65l140,0l140,0l0,45l0,45l-140,0l-140,0l0,75l0,75l-85,0l-84,0l-3,-72z\"/>\n   <path fill=\"#595bd4\" id=\"svg_14\" d=\"m5020,915l0,-255l250,0c302,0 319,4 356,84c22,48 24,62 24,239l0,187l-315,0l-315,0l0,-255zm240,125l0,-60l-50,0l-50,0l0,60l0,60l50,0l50,0l0,-60zm250,0l0,-60l-50,0l-50,0l0,60l0,60l50,0l50,0l0,-60zm-250,-225l0,-65l-50,0l-50,0l0,65l0,65l50,0l50,0l0,-65zm247,23c-6,-47 -43,-88 -78,-88c-17,0 -19,7 -19,65l0,65l51,0l52,0l-6,-42z\"/>\n   <path fill=\"#595bd4\" id=\"svg_15\" d=\"m2470,160c-38,-77 -70,-142 -70,-145c0,-3 11,-5 25,-5c19,0 29,9 42,35l17,35l86,0l86,0l17,-35c13,-26 23,-35 42,-35c14,0 25,2 25,5c0,3 -32,68 -70,145c-67,133 -72,140 -100,140c-28,0 -33,-7 -100,-140zm134,24c14,-31 26,-58 26,-60c0,-2 -27,-4 -60,-4c-33,0 -60,2 -60,4c0,14 52,116 59,116c5,0 21,-25 35,-56z\"/>\n   <path fill=\"#595bd4\" id=\"svg_16\" d=\"m2770,155l0,-145l131,0c119,0 130,2 127,18c-3,15 -17,17 -106,20l-102,3l0,124l0,125l-25,0l-25,0l0,-145z\"/>\n   <path fill=\"#595bd4\" id=\"svg_17\" d=\"m3070,155l0,-145l25,0l25,0l0,145l0,145l-25,0l-25,0l0,-145z\"/>\n   <path fill=\"#595bd4\" id=\"svg_18\" d=\"m3180,155l0,-145l105,0c139,0 175,17 175,84c0,12 -11,33 -25,46l-24,23l19,25c27,33 25,48 -9,83c-29,28 -32,29 -135,29l-106,0l0,-145zm208,93c16,-16 15,-33 -4,-52c-11,-12 -35,-16 -85,-16l-69,0l0,40l0,40l73,0c43,0 78,-5 85,-12zm0,-124c25,-17 29,-46 8,-64c-8,-6 -49,-14 -90,-17l-76,-6l0,52l0,51l68,0c45,0 75,-5 90,-16z\"/>\n   <path fill=\"#595bd4\" id=\"svg_19\" d=\"m3612,287c-13,-15 -132,-259 -132,-269c0,-5 10,-8 23,-8c17,0 28,10 40,35l17,35l88,0l88,0l15,-33c10,-23 22,-33 42,-35c15,-2 27,-1 27,2c0,4 -32,69 -70,146c-66,131 -73,140 -99,140c-16,0 -33,-6 -39,-13zm68,-97c17,-33 29,-60 28,-61c-19,-5 -110,-4 -114,2c-4,7 46,119 53,119c1,0 16,-27 33,-60z\"/>\n   <path fill=\"#595bd4\" id=\"svg_20\" d=\"m3850,154l0,-146l119,4c100,2 122,6 140,22c29,27 28,76 -3,105l-25,23l21,28c14,20 19,36 14,54c-10,42 -52,56 -166,56l-100,0l0,-146zm208,94c16,-16 15,-33 -4,-52c-11,-12 -35,-16 -85,-16l-69,0l0,40l0,40l73,0c43,0 78,-5 85,-12zm0,-124c26,-18 29,-46 7,-64c-9,-7 -49,-15 -90,-18l-75,-5l0,52l0,51l68,0c45,0 75,-5 90,-16z\"/>\n   <path fill=\"#595bd4\" id=\"svg_21\" d=\"m4200,161c-38,-78 -70,-143 -70,-146c0,-3 11,-5 25,-5c19,0 29,9 42,35l17,35l88,0l88,0l14,-35c12,-27 21,-35 40,-35c15,0 26,6 26,13c0,6 -31,70 -68,142c-63,123 -69,130 -99,133c-32,3 -33,3 -103,-137zm156,-29c-6,-5 -100,-10 -108,-5c-4,2 3,25 15,51c39,82 38,82 69,17c15,-32 26,-61 24,-63z\"/>\n   <path fill=\"#595bd4\" id=\"svg_22\" d=\"m4640,275c0,-24 2,-25 60,-25l60,0l0,-120l0,-120l25,0l25,0l0,120l0,119l63,3c54,3 62,5 62,23c0,19 -8,20 -147,23l-148,3l0,-26z\"/>\n   <path fill=\"#595bd4\" id=\"svg_23\" d=\"m4977,293c-4,-3 -7,-69 -7,-145l0,-138l25,0c24,0 25,3 25,60l0,60l49,0c61,0 107,-34 117,-86c6,-31 9,-34 40,-34c32,0 34,2 28,28c-9,37 -19,54 -43,76l-20,19l29,27c53,49 31,113 -45,130c-46,11 -188,13 -198,3zm178,-43c37,-14 43,-39 16,-62c-17,-13 -40,-18 -87,-18l-64,0l0,45l0,45l54,0c30,0 66,-4 81,-10z\"/>\n   <path fill=\"#595bd4\" id=\"svg_24\" d=\"m5362,155l-72,-145l29,0c25,0 31,6 41,35l12,35l89,0l89,0l17,-35c13,-28 23,-35 45,-35l28,0l-72,145c-70,139 -74,145 -103,145c-29,0 -33,-6 -103,-145zm131,35l26,-60l-60,0c-32,0 -59,2 -59,5c0,11 55,115 60,115c4,0 18,-27 33,-60z\"/>\n   <path fill=\"#595bd4\" id=\"svg_25\" d=\"m5667,293c-4,-3 -7,-69 -7,-145l0,-138l25,0c24,0 24,1 27,105l3,106l90,-106c80,-94 94,-105 123,-105l33,0l-3,143l-3,142l-25,0c-25,0 -25,-1 -30,-103l-5,-102l-93,105c-85,96 -115,118 -135,98z\"/>\n   <path fill=\"#595bd4\" id=\"svg_26\" d=\"m6065,286c-41,-18 -57,-40 -53,-72c4,-38 41,-61 128,-79c80,-17 104,-32 94,-58c-17,-47 -148,-40 -181,9c-10,16 -23,24 -36,22c-33,-5 -31,-26 5,-62c27,-27 45,-35 89,-41c102,-13 184,30 177,91c-4,39 -51,68 -136,83c-85,15 -108,34 -73,62c34,28 93,25 129,-6c30,-25 72,-34 72,-14c0,60 -133,101 -215,65z\"/>\n   <path fill=\"#595bd4\" id=\"svg_27\" d=\"m6357,293c-4,-3 -7,-69 -7,-145l0,-138l116,0c105,0 115,2 112,18c-3,14 -17,17 -91,20l-87,3l0,124c0,115 -2,125 -18,125c-10,0 -22,-3 -25,-7z\"/>\n   <path fill=\"#595bd4\" id=\"svg_28\" d=\"m6662,155l-72,-145l29,0c25,0 32,6 42,35l13,35l88,0l88,0l17,-35c13,-28 23,-35 45,-35l28,0l-72,145c-70,139 -74,145 -103,145c-29,0 -33,-6 -103,-145zm131,40c15,-31 27,-58 27,-60c0,-3 -27,-5 -60,-5c-33,0 -60,2 -60,5c0,10 55,115 60,115c3,0 18,-25 33,-55z\"/>\n   <path fill=\"#595bd4\" id=\"svg_29\" d=\"m7237,294c-4,-4 -7,-70 -7,-146l0,-138l146,0c133,0 145,1 142,18c-3,15 -18,17 -116,20l-112,3l0,44l0,45l100,0c93,0 100,1 100,20c0,19 -7,20 -100,20l-100,0l0,35l0,34l113,3c104,3 112,4 112,23c0,19 -8,20 -136,23c-74,1 -138,-1 -142,-4z\"/>\n   <path fill=\"#595bd4\" id=\"svg_30\" d=\"m6900,270c0,-18 7,-20 60,-20l60,0l0,-120l0,-120l25,0l25,0l0,120l0,120l65,0c58,0 65,2 65,20c0,19 -7,20 -150,20c-143,0 -150,-1 -150,-20z\"/>\n  </g>\n </g>\n</svg>");
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/icons.ts

const AliApiTranslate_icons_icons = {
  aliApiIcon: aliApi
};
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/store/index.ts


function AliApiTranslate_store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function AliApiTranslate_store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? AliApiTranslate_store_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : AliApiTranslate_store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }







const aliApiLanguage = enumType(ALI_API_LANGUAGES, 'ALI_API_LANGUAGES');
const AliApiTranslate_store_storeType = fallbackInterface(AliApiTranslate_store_objectSpread(AliApiTranslate_store_objectSpread({}, apiProviderCommonStore), {}, {
  display: fallback(es6_boolean, true),
  icon: fallback(keyof(AliApiTranslate_icons_icons), 'aliApiIcon'),
  targetLanguage: fallback(aliApiLanguage, ALI_API_LANGUAGES.zh)
}));
const AliApiTranslate_store_defaultStore = AliApiTranslate_store_storeType.defaultData;
const AliApiTranslate_store_store = {
  data: null
};
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/translate.ts










const hexToUint8Array = hexString => Uint8Array.from(hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16)));

const MD5Base64 = str => {
  if (str === '') {
    return '';
  }

  const md5Hex = md5_default()(str);
  const md5Uint8Arr = hexToUint8Array(md5Hex);
  const md5Base64 = encode(md5Uint8Arr);
  return md5Base64;
};

const HMACSha1 = (str, key) => {
  if (str === '') {
    return '';
  }

  const sign = encode(hexToUint8Array(hmac_sha1_default()(str, key).toString()));
  sign.toString();
  return sign;
};

function trimIndent(str) {
  return str.split('\n').map(s => trim_default()(s).call(s)).join('\n');
}

const doRequest = async (body, appId, appKey) => {
  const apiDomain = 'mt.aliyuncs.com';
  const apiPath = '/api/translate/web/general';
  const method = 'POST';
  const accept = 'application/json';
  const contentType = 'application/json; charset=UTF-8'; // const date = formatInTimeZone(new Date(), 'Etc/GMT+0', 'E, dd MMM yyyy HH:mm:ss z', { locale: enUS })

  const date = new Date().toUTCString();
  const uuid = esm_browser_v4();
  const version = '2019-01-02';
  const bodyMD5 = MD5Base64(body);
  const stringToSign = `${method}
    ${accept}
    ${bodyMD5}
    ${contentType}
    ${date}
    x-acs-signature-method:HMAC-SHA1
    x-acs-signature-nonce:${uuid}
    x-acs-version:${version}
    ${apiPath}`;
  const signature = HMACSha1(trimIndent(stringToSign), appKey);
  const authorization = `acs ${appId}:${signature}`;

  const sendPost = async () => {
    const response = await got({
      url: `https://${apiDomain}${apiPath}`,
      method,
      headers: {
        'Accept': accept,
        'Content-Type': contentType,
        'Content-MD5': bodyMD5,
        'Date': date,
        'Host': apiDomain,
        'Authorization': authorization,
        'x-acs-signature-nonce': uuid,
        'x-acs-signature-method': 'HMAC-SHA1',
        'x-acs-version': version,
        'Accept-Encoding': 'gzip'
      },
      data: body,
      timeout: 5000
    });

    if (Either_isLeft(response)) {
      throw new Error(response.left.type);
    }

    const result = JSON.parse(response.right.responseText);

    if (result.Code === '200') {
      return Either_right(result);
    }

    return Either_left({
      type: 'unknown',
      res: response.right
    });
  };

  const result = await sendPost();

  if (Either_isLeft(result)) {
    throw new Error(result.left.type);
  }

  return result.right;
};

const getAliApiTranslateResult = async (p, sl, tl) => {
  const appId = AliApiTranslate_store_store.data.appId;
  const appKey = AliApiTranslate_store_store.data.appKey;

  const body = (__webpack_require__(8334)/* .stringify */ .P)({
    'FormatType': 'text',
    'SourceLanguage': sl,
    'TargetLanguage': tl,
    'SourceText': p.word,
    'Scene': 'general'
  });

  return doRequest(body, appId, appKey);
};

const AliApiTranslate_translate_translate = async p => {
  try {
    var _p$payload$sl, _p$payload, _p$payload$tl, _p$payload2;

    const auto = !p.payload || p.payload.sl === 'auto';
    const sl = (_p$payload$sl = (_p$payload = p.payload) === null || _p$payload === void 0 ? void 0 : _p$payload.sl) !== null && _p$payload$sl !== void 0 ? _p$payload$sl : 'auto';
    const tl = (_p$payload$tl = (_p$payload2 = p.payload) === null || _p$payload2 === void 0 ? void 0 : _p$payload2.tl) !== null && _p$payload$tl !== void 0 ? _p$payload$tl : AliApiTranslate_store_store.data.targetLanguage;
    const data = await getAliApiTranslateResult(p, sl, tl);
    return Either_right(() => {
      AliApiTranslate_container_data.data = data;
      AliApiTranslate_container_data.inputText = p.word;
      AliApiTranslate_container_data.autoMode = auto;
      AliApiTranslate_container_data.sourceLanguage = sl;
      AliApiTranslate_container_data.targetLanguage = tl;
    });
  } catch (e) {
    return Either_left({
      message: e.message
    });
  }
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/AliApiTranslate/container/index.vue?vue&type=template&id=97a84f04&scoped=true&ts=true


const containervue_type_template_id_97a84f04_scoped_true_ts_true_withScopeId = n => (pushScopeId("data-v-97a84f04"), n = n(), popScopeId(), n);

const containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_1 = {
  class: "ali-api-translate-box flex-col relative text-grey-900"
};
const containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_2 = {
  class: "language-select-box select-none w-full"
};
const containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_3 = {
  class: "title-box flex justify-between"
};
const containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_4 = {
  class: "items-box flex flex-wrap mt-1"
};
const containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_5 = ["onClick"];
const containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_6 = {
  class: "bottom-info-box flex justify-between"
};
const containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_7 = {
  class: "language-info-box flex"
};

const containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_8 = /*#__PURE__*/containervue_type_template_id_97a84f04_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "px-1"
}, " -> ", -1));

function containervue_type_template_id_97a84f04_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_scrollable = resolveComponent("scrollable");

  return openBlock(), createElementBlock("div", containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_scrollable, {
    class: "scroll-container"
  }, {
    default: withCtx(({
      scrollBar
    }) => [createBaseVNode("div", {
      class: normalizeClass(["content-box flex-col flex-auto text-14 break-words", [scrollBar && 'py-10px pl-10px pr-14px', !scrollBar && 'p-10px']])
    }, [withDirectives(createBaseVNode("div", containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_2, [createBaseVNode("div", containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_3, [withDirectives(createBaseVNode("div", null, "源语言", 512), [[vShow, _ctx.state.type === 'source']]), withDirectives(createBaseVNode("div", null, "翻译到", 512), [[vShow, _ctx.state.type === 'target']]), createBaseVNode("div", {
      class: "cancel-button text-center text-grey-600",
      onClick: _cache[0] || (_cache[0] = $event => _ctx.state.visible = false)
    }, "取消")]), withDirectives(createBaseVNode("div", containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_4, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.languages, v => {
      return openBlock(), createElementBlock("div", {
        class: normalizeClass({
          'language-item text-center text-grey-600': true,
          'active text-grey-800': _ctx.state.type === 'source' ? v.id === _ctx.containerData.sourceLanguage && !_ctx.containerData.autoMode : v.id === _ctx.containerData.targetLanguage
        }),
        key: v.id,
        onClick: $event => _ctx.handleLanguageSelect(v.id)
      }, toDisplayString(v.name), 11, containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_5);
    }), 128)), _ctx.state.type === 'source' ? (openBlock(), createElementBlock("div", {
      class: normalizeClass({
        'language-item text-center text-grey-600': true,
        'active text-grey-800': _ctx.containerData.autoMode
      }),
      key: "auto",
      onClick: _cache[1] || (_cache[1] = $event => _ctx.handleLanguageSelect('auto'))
    }, " 自动检测 ", 2)) : createCommentVNode("", true)], 512), [[vShow, _ctx.state.visible]])], 512), [[vShow, _ctx.state.visible]]), withDirectives(createBaseVNode("div", {
      class: "content mb-2px flex-col"
    }, toDisplayString(_ctx.containerData.data.Data.Translated), 513), [[vShow, !_ctx.state.visible]]), withDirectives(createBaseVNode("div", containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_6, [createBaseVNode("div", containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_7, [createBaseVNode("div", {
      class: "language",
      onClick: _cache[2] || (_cache[2] = $event => _ctx.showLanguageSelect('source'))
    }, toDisplayString(_ctx.containerData.autoMode ? '自动检测' : _ctx.getLanguage(_ctx.containerData.sourceLanguage)), 1), containervue_type_template_id_97a84f04_scoped_true_ts_true_hoisted_8, createBaseVNode("div", {
      class: "language",
      onClick: _cache[3] || (_cache[3] = $event => _ctx.showLanguageSelect('target'))
    }, toDisplayString(_ctx.getLanguage(_ctx.containerData.targetLanguage)), 1)])], 512), [[vShow, !_ctx.state.visible]])], 2)]),
    _: 1
  })]);
}
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/container/index.vue?vue&type=template&id=97a84f04&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/AliApiTranslate/container/index.ts?vue&type=script&lang=ts






const AliApiTranslate_containervue_type_script_lang_ts_languages = Object.entries(ALI_API_LANGUAGE_MAP).map(([id, name]) => ({
  id: id,
  name
}));
/* harmony default export */ const AliApiTranslate_containervue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'AliApiTranslateContainer',
  components: {
    Scrollable: Scrollable
  },
  setup: () => {
    const state = reactivity_esm_bundler_reactive({
      visible: false,
      type: 'source'
    });

    const getLanguage = language => ALI_API_LANGUAGE_MAP[language] || language;

    const handleLanguageSelect = language => {
      let sl = state.type === 'source' ? language : AliApiTranslate_container_data.sourceLanguage;
      let tl = state.type === 'target' ? language : AliApiTranslate_container_data.targetLanguage;

      if (state.type === 'source' && language === AliApiTranslate_container_data.targetLanguage || state.type === 'target' && language === AliApiTranslate_container_data.sourceLanguage) {
        sl = AliApiTranslate_container_data.targetLanguage;
        tl = AliApiTranslate_container_data.sourceLanguage;
      }

      bus.emit({
        type: EVENTS.TRANSLATE,
        word: AliApiTranslate_container_data.inputText,
        param: {
          provider: AliApiTranslateProvider.id,
          param: {
            sl,
            tl
          }
        }
      });
      state.visible = false;
    };

    const showLanguageSelect = type => {
      state.type = type;
      state.visible = true;
    };

    return {
      state,
      languages: AliApiTranslate_containervue_type_script_lang_ts_languages,
      containerData: AliApiTranslate_container_data,
      getLanguage,
      handleLanguageSelect,
      showLanguageSelect
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/container/index.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/AliApiTranslate/container/index.sass?vue&type=style&index=0&id=97a84f04&lang=sass&scoped=true
var containervue_type_style_index_0_id_97a84f04_lang_sass_scoped_true = __webpack_require__(5421);
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/container/index.sass?vue&type=style&index=0&id=97a84f04&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/container/index.vue




;


const AliApiTranslate_container_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(AliApiTranslate_containervue_type_script_lang_ts, [['render',containervue_type_template_id_97a84f04_scoped_true_ts_true_render],['__scopeId',"data-v-97a84f04"]])

/* harmony default export */ const AliApiTranslate_container = (AliApiTranslate_container_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/AliApiTranslate/settings/index.vue?vue&type=template&id=1f52d4ff&ts=true

const settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_1 = {
  class: "flex-col items-start"
};
const settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_2 = {
  class: "flex mt-6 pt-1"
};
const settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_3 = {
  class: "flex-col items-start grow-0 pr-12"
};

const settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_4 = /*#__PURE__*/createBaseVNode("div", {
  class: "text-grey-600 pr-6 mb-2"
}, "语言", -1);

const settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_5 = {
  class: "flex-col items-center grow-0"
};

const settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_6 = /*#__PURE__*/createBaseVNode("div", {
  class: "text-grey-600 pr-6 mb-1"
}, "目标语言", -1);

const settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_7 = /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mt-1 mb-0"
}, " 目标语言:默认翻译到的语言 ", -1);

function settingsvue_type_template_id_1f52d4ff_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_provider_common = resolveComponent("provider-common");

  const _component_ali_api_app_key = resolveComponent("ali-api-app-key");

  const _component_i_radio = resolveComponent("i-radio");

  const _component_i_radio_group = resolveComponent("i-radio-group");

  return openBlock(), createElementBlock("div", settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_provider_common, {
    icon: _ctx.form.icon,
    "onUpdate:icon": _cache[0] || (_cache[0] = $event => _ctx.form.icon = $event),
    display: _ctx.form.display,
    "onUpdate:display": _cache[1] || (_cache[1] = $event => _ctx.form.display = $event),
    "enable-hotkey": _ctx.form.enableHotkey,
    "onUpdate:enable-hotkey": _cache[2] || (_cache[2] = $event => _ctx.form.enableHotkey = $event),
    hotkey: _ctx.form.hotkey,
    "onUpdate:hotkey": _cache[3] || (_cache[3] = $event => _ctx.form.hotkey = $event),
    name: "阿里API翻译",
    icons: _ctx.iconOptions
  }, null, 8, ["icon", "display", "enable-hotkey", "hotkey", "icons"]), runtime_core_esm_bundler_createVNode(_component_ali_api_app_key, {
    "app-id": _ctx.form.appId,
    "onUpdate:app-id": _cache[4] || (_cache[4] = $event => _ctx.form.appId = $event),
    "app-key": _ctx.form.appKey,
    "onUpdate:app-key": _cache[5] || (_cache[5] = $event => _ctx.form.appKey = $event),
    "product-url": "https://www.aliyun.com/product/ai/base_alimt"
  }, null, 8, ["app-id", "app-key"]), createBaseVNode("div", settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_2, [createBaseVNode("div", settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_3, [settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_4, (openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.languageOptions, n => {
    return openBlock(), createElementBlock("div", {
      class: "language-option text-16 text-grey-600 mb-2",
      key: n.key
    }, toDisplayString(n.text), 1);
  }), 128))]), createBaseVNode("div", settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_5, [settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_6, runtime_core_esm_bundler_createVNode(_component_i_radio_group, {
    class: "mt-0 grow-0",
    modelValue: _ctx.form.targetLanguage,
    "onUpdate:modelValue": _cache[6] || (_cache[6] = $event => _ctx.form.targetLanguage = $event)
  }, {
    default: withCtx(() => [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.languageOptions, n => {
      return openBlock(), createBlock(_component_i_radio, {
        key: n.key,
        label: "",
        value: n.key
      }, null, 8, ["value"]);
    }), 128))]),
    _: 1
  }, 8, ["modelValue"])])]), settingsvue_type_template_id_1f52d4ff_ts_true_hoisted_7]);
}
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/settings/index.vue?vue&type=template&id=1f52d4ff&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/AliApiTranslate/settings/aliApiAppKey/aliApiAppKey.vue?vue&type=template&id=529beb18&scoped=true&ts=true


const aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-529beb18"), n = n(), _popScopeId(), n);

const aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_hoisted_1 = {
  class: "flex-col items-start"
};
const aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_hoisted_2 = {
  class: "mt-2"
};
const aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_hoisted_3 = {
  class: "text-14 text-grey-400 mt-1 mb-0"
};

const aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_hoisted_4 = /*#__PURE__*/createTextVNode(" 如果没有应用程序ID和密钥, ");

const aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_hoisted_5 = ["href"];

const aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_hoisted_6 = /*#__PURE__*/createTextVNode(" 注册并开通相应服务 ");

function aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_text_input_line = resolveComponent("i-text-input-line");

  return openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, null, [createBaseVNode("div", aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_i_text_input_line, {
    class: "app-info-text-input",
    "model-value": _ctx.props.appId,
    "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => _ctx.handleUpdateAppId($event)),
    label: "应用程序 ID",
    placeholder: "请输入应用程序 ID"
  }, null, 8, ["model-value"]), runtime_core_esm_bundler_createVNode(_component_i_text_input_line, {
    class: "app-info-text-input",
    "model-value": _ctx.props.appKey,
    "onUpdate:modelValue": _cache[1] || (_cache[1] = $event => _ctx.handleUpdateAppKey($event)),
    label: "应用程序密钥",
    "input-type": "password",
    placeholder: "请输入应用程序密钥"
  }, null, 8, ["model-value"])]), createBaseVNode("div", aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_hoisted_2, [createBaseVNode("p", aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_hoisted_3, [aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_hoisted_4, createBaseVNode("a", {
    href: _ctx.props.productUrl,
    target: "_blank",
    rel: "noopener"
  }, "点我", 8, aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_hoisted_5), aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_hoisted_6])])], 64);
}
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/settings/aliApiAppKey/aliApiAppKey.vue?vue&type=template&id=529beb18&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/AliApiTranslate/settings/aliApiAppKey/aliApiAppKey.ts?vue&type=script&lang=ts

/* harmony default export */ const aliApiAppKeyvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'AliApiAppKey',
  props: {
    appId: String,
    appKey: String,
    productUrl: String
  },
  setup: (props, ctx) => {
    const handleUpdateAppId = appId => {
      ctx.emit('update:appId', appId);
    };

    const handleUpdateAppKey = appKey => {
      ctx.emit('update:appKey', appKey);
    };

    return {
      props,
      handleUpdateAppId,
      handleUpdateAppKey
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/settings/aliApiAppKey/aliApiAppKey.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/AliApiTranslate/settings/aliApiAppKey/aliApiAppKey.sass?vue&type=style&index=0&id=529beb18&lang=sass&scoped=true
var aliApiAppKeyvue_type_style_index_0_id_529beb18_lang_sass_scoped_true = __webpack_require__(2661);
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/settings/aliApiAppKey/aliApiAppKey.sass?vue&type=style&index=0&id=529beb18&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/settings/aliApiAppKey/aliApiAppKey.vue




;


const aliApiAppKey_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(aliApiAppKeyvue_type_script_lang_ts, [['render',aliApiAppKeyvue_type_template_id_529beb18_scoped_true_ts_true_render],['__scopeId',"data-v-529beb18"]])

/* harmony default export */ const aliApiAppKey = (aliApiAppKey_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/AliApiTranslate/settings/index.ts?vue&type=script&lang=ts






const AliApiTranslate_settingsvue_type_script_lang_ts_iconOptions = Object.entries(AliApiTranslate_icons_icons).map(([k, v]) => ({
  icon: v,
  key: k
}));
/* harmony default export */ const AliApiTranslate_settingsvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'AliApiTranslateSettings',
  components: {
    ProviderCommon: providerCommon,
    AliApiAppKey: aliApiAppKey
  },
  props: {
    active: Boolean
  },
  setup: props => {
    const form = AliApiTranslate_store_store.data;
    let reset = null;
    watch(() => [form.targetLanguage], (n, o) => {
      reset = o && n[0] === n[1] ? o : null;
    });

    const doReset = () => {
      if (props.active && reset) {
        form.targetLanguage = reset[0];
      }
    };

    watch(() => props.active, doReset);
    runtime_core_esm_bundler_onUnmounted(doReset);
    return {
      iconOptions: AliApiTranslate_settingsvue_type_script_lang_ts_iconOptions,
      form,
      languageOptions: aliApiLanguagesOptions
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/settings/index.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/settings/index.vue




;
const AliApiTranslate_settings_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(AliApiTranslate_settingsvue_type_script_lang_ts, [['render',settingsvue_type_template_id_1f52d4ff_ts_true_render]])

/* harmony default export */ const AliApiTranslate_settings = (AliApiTranslate_settings_exports_);
;// CONCATENATED MODULE: ./src/provider/AliApiTranslate/index.ts






const AliApiTranslateProvider = createProvider({
  id: 'ALI_API_TRANSLATE',
  label: '阿里API翻译',
  translate: AliApiTranslate_translate_translate,
  translateView: AliApiTranslate_container,
  settingView: AliApiTranslate_settings,
  icons: AliApiTranslate_icons_icons,
  storeWrapper: AliApiTranslate_store_store,
  storeType: AliApiTranslate_store_storeType,
  defaultStore: AliApiTranslate_store_defaultStore
});
;// CONCATENATED MODULE: ./src/provider/index.ts







const providers = [IcibaProvider, GoogleDictProvider, GoogleTranslateProvider, BaiduTranslateProvider, UrbanDictionaryProvider, VocabularyProvider, AliApiTranslateProvider];
const getIcon = _provider => {
  const provider = typeof _provider === 'string' ? providers.find(v => v.id === _provider) : _provider;
  const iconsKey = provider.store.icon;
  return provider.icons[iconsKey];
};
;// CONCATENATED MODULE: ./src/util/extendIoTs/provider.ts




class ProviderType extends Type {
  constructor() {
    super('provider', u => providers.some(v => v.id === u), (u, c) => this.is(u) ? success(u) : failure(u, c), es6_identity);

    defineProperty_defineProperty(this, "_tag", 'EnumType');
  }

}

const providerType = new ProviderType();
;// CONCATENATED MODULE: ./src/service/store/core.ts






const icibaCircleIcon = enumType(ICIBA_CIRCLE_ICON, 'ICIBA_CIRCLE_ICON');
const providerIds = providers.map(v => v.id);
const looseProviderArray = new Type('provider-array', u => UnknownArray.is(u), (u, c) => {
  if (!UnknownArray.is(u)) {
    return failure(u, c);
  }

  let newArr = u.filter(v => providerIds.includes(v));
  newArr = newArr.filter((v, i) => newArr.indexOf(v) === i);
  newArr = newArr.concat(providerIds.filter(v => !newArr.includes(v)));
  return success(newArr);
}, es6_identity);
const core_storeType = fallbackInterface({
  providerOrder: fallback(looseProviderArray, () => [...providerIds]),
  defaultProvider: fallback(providerType, 'ICIBA'),
  icibaCircleRightClick: fallback(es6_boolean, true),
  icibaCircleRightClickProvider: fallback(providerType, 'GOOGLE_TRANSLATE'),
  icibaCircleNoCJK: fallback(es6_boolean, false),
  useIcibaCircle: fallback(es6_boolean, true),
  icibaCircleIcon: fallback(icibaCircleIcon, ICIBA_CIRCLE_ICON.DEFAULT),
  pressCtrlToDrag: fallback(es6_boolean, true),
  pressCtrlToShowCircle: fallback(es6_boolean, false),
  mouseOverTranslate: fallback(es6_boolean, false),
  icibaMainInputAutoFocus: fallback(es6_boolean, false),
  history: fallback(es6_boolean, false),
  showPin: fallback(es6_boolean, false),
  pinned: fallback(es6_boolean, false),
  selectionMaxLengthCut: fallback(es6_boolean, false),
  selectionMaxLength: fallback(number, 150),
  icibaMainWidth: fallback(number, 300),
  icibaCircleSize: fallback(number, 22),
  icibaCircleOffsetX: fallback(number, 7),
  icibaCircleOffsetY: fallback(number, 7),
  providerHotkeyAutoFocus: fallback(es6_boolean, false),
  useHotkeyShowUp: fallback(es6_boolean, false),
  hotkeyIcibaMainInputAutoFocus: fallback(es6_boolean, true),
  showUpHotkey: fallback(array(string), () => [])
});
;// CONCATENATED MODULE: ./src/service/store/index.ts






const service_store_store = {};

const store_decode = (type, data) => {
  const report = type.decode(data);

  if (Either_isRight(report)) {
    return report.right;
  }

  return type.defaultData;
};

const initStore = async providers => {
  const dataString = await gmapi_getValue(GM_STORE_KEY.STORE, '');
  const data = pipe(tryCatch(() => JSON.parse(dataString), function_identity), v => Either_isLeft(v) ? {} : v.right, v => {
    if (typeof v !== 'object' || Array.isArray(v)) {
      return {};
    }

    return v;
  });
  providers.forEach(p => {
    const providerStore = store_decode(p.storeType, data[p.id]);
    const reactiveData = reactivity_esm_bundler_reactive(providerStore);
    p.storeWrapper.data = reactiveData;
    data[p.id] = reactiveData;
  });
  const coreStore = store_decode(core_storeType, data.core);
  data.core = reactivity_esm_bundler_reactive(coreStore);
  const newStore = reactivity_esm_bundler_reactive(data);
  watch(newStore, () => {
    const dataString = (__webpack_require__(8334)/* .stringify */ .P)(newStore);

    setValue(GM_STORE_KEY.STORE, dataString);
  }, {
    deep: true
  });
  Object.assign(service_store_store, newStore);
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/App.vue?vue&type=template&id=63465bcb&scoped=true&ts=true


const Appvue_type_template_id_63465bcb_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-63465bcb"), n = n(), _popScopeId(), n);

const Appvue_type_template_id_63465bcb_scoped_true_ts_true_hoisted_1 = {
  class: "the-app"
};
function Appvue_type_template_id_63465bcb_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_iciba_circle = resolveComponent("iciba-circle");

  const _component_iciba_main = resolveComponent("iciba-main");

  const _component_setting_page = resolveComponent("setting-page");

  const _component_google_dict_modal = resolveComponent("google-dict-modal");

  const _component_history_modal = resolveComponent("history-modal");

  return openBlock(), createElementBlock("div", Appvue_type_template_id_63465bcb_scoped_true_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_iciba_circle, {
    ref: _ctx.refs.icibaCircle
  }, null, 512), runtime_core_esm_bundler_createVNode(_component_iciba_main, {
    "get-iciba-circle": () => _ctx.refs.icibaCircle.value
  }, null, 8, ["get-iciba-circle"]), runtime_core_esm_bundler_createVNode(_component_setting_page), runtime_core_esm_bundler_createVNode(_component_google_dict_modal), runtime_core_esm_bundler_createVNode(_component_history_modal)]);
}
;// CONCATENATED MODULE: ./src/App.vue?vue&type=template&id=63465bcb&scoped=true&ts=true

;// CONCATENATED MODULE: ./src/util/lazyLoadHoc.tsx


const lazyLoadHoc = (Component, event) => runtime_core_esm_bundler_defineComponent({
  name: `LazyLoadHoc${Component.name ? `_${Component.name}` : ''}`,
  setup: (_props, setupContext) => {
    const state = reactivity_esm_bundler_reactive({
      load: false
    });
    runtime_core_esm_bundler_onMounted(() => {
      const events = Array.isArray(event) ? event : [event];

      const cb = action => {
        if (state.load) {
          return;
        }

        state.load = true;
        events.forEach(e => {
          bus.off({
            event: e,
            listener: cb
          });
        });
        runtime_core_esm_bundler_nextTick(() => {
          bus.emit(action);
        });
      };

      events.forEach(e => {
        bus.on({
          event: e,
          listener: cb
        });
      });
    });
    return () => state.load && h(Component, {
      props: setupContext.attrs
    });
  }
});
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/view/IcibaMain/IcibaMain.vue?vue&type=template&id=becc6b2c&scoped=true&ts=true


const IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_withScopeId = n => (pushScopeId("data-v-becc6b2c"), n = n(), popScopeId(), n);

const IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_1 = {
  class: "input-box flex relative flex-none bg-white"
};
const IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_2 = {
  class: "provider-box flex border-b border-grey-350"
};

const IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_3 = /*#__PURE__*/IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "split border-l border-grey-350"
}, null, -1));

const IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_4 = ["onKeydown", "onClick"];
const IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_5 = {
  class: "content-box relative"
};
const IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_6 = {
  key: 1,
  class: "loading-tip content-item text-grey-900"
};
const IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_7 = {
  key: 2,
  class: "provider-error-message content-item text-grey-900"
};
const IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_8 = {
  key: 3,
  class: "show-up-tip content-item text-grey-500"
};
const IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_9 = {
  key: 0,
  class: "stick-box absolute border-l border-grey-350"
};
function IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  const _component_LoadingText = resolveComponent("LoadingText");

  return openBlock(), createElementBlock("div", null, [createBaseVNode("div", {
    class: "iciba-size-helper fixed top-auto left-auto bottom-0 right-0 w-0 h-0 overflow-hidden",
    ref: _ctx.refs.sizeHelper
  }, null, 512), runtime_core_esm_bundler_createVNode(Transition, {
    name: "m"
  }, {
    default: withCtx(() => [withDirectives(createBaseVNode("div", {
      class: "iciba-main-wrap absolute overflow-visible ease-in-out duration-150 transition-opacity",
      ref: _ctx.refs.icibaMainWrap
    }, [createBaseVNode("div", {
      class: "iciba-main absolute flex-col items-stretch h-auto text-14 ease-in-out duration-150 transition-transform",
      onMouseenter: _cache[9] || (_cache[9] = $event => _ctx.state.stickBoxVisible = true),
      onMouseleave: _cache[10] || (_cache[10] = $event => _ctx.state.stickBoxVisible = false),
      style: normalizeStyle(_ctx.mainStyle),
      ref: _ctx.refs.icibaMain
    }, [createBaseVNode("div", IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_1, [createBaseVNode("div", {
      class: normalizeClass(["iciba-input-box flex relative flex-auto border-b border-grey-350", {
        'focused': _ctx.state.inputFocused
      }])
    }, [withDirectives(createBaseVNode("input", {
      class: "search-input flex-auto text-grey-900",
      ref: _ctx.refs.icibaSearchInput,
      size: "1",
      type: "text",
      "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => _ctx.state.inputText = $event),
      onFocus: _cache[1] || (_cache[1] = $event => _ctx.state.inputFocused = true),
      onBlur: _cache[2] || (_cache[2] = $event => _ctx.state.inputFocused = false),
      onKeydownCapture: _cache[3] || (_cache[3] = withModifiers(() => {}, ["stop"])),
      onKeypress: _cache[4] || (_cache[4] = withKeys( //@ts-ignore
      (...args) => _ctx.m.handleInputEnter && _ctx.m.handleInputEnter(...args), ["enter"]))
    }, null, 544), [[vModelText, _ctx.state.inputText]]), _ctx.store.core.history ? (openBlock(), createElementBlock("div", {
      key: 0,
      class: "input-button flex flex-center cursor-pointer",
      onClick: _cache[5] || (_cache[5] = //@ts-ignore
      (...args) => _ctx.m.handleOpenHistory && _ctx.m.handleOpenHistory(...args))
    }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
      size: 21,
      svg: _ctx.icon.historyIcon,
      color: "#aaa"
    }, null, 8, ["svg"])])) : createCommentVNode("", true), createBaseVNode("div", {
      class: "input-button flex flex-center cursor-pointer",
      onClick: _cache[6] || (_cache[6] = //@ts-ignore
      (...args) => _ctx.m.handleOpenSetting && _ctx.m.handleOpenSetting(...args))
    }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
      svg: _ctx.icon.settingsIcon
    }, null, 8, ["svg"])])], 2), createBaseVNode("div", IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_2, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.showButtonProviders, provider => {
      return openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, {
        key: provider.id
      }, [IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_3, createBaseVNode("button", {
        onKeydown: withKeys($event => _ctx.m.handleTranslateWithProvider(provider.id), ["enter"]),
        onClick: $event => _ctx.m.handleTranslateWithProvider(provider.id),
        class: "provider-button flex flex-center relative flex-none"
      }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
        svg: _ctx.m.getIcon(provider)
      }, null, 8, ["svg"])], 40, IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_4)], 64);
    }), 128))])]), createBaseVNode("div", IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_5, [!_ctx.translateLoading && !_ctx.errorMessage && _ctx.activeProvider ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.activeProvider.translateView), {
      class: "provider-container",
      key: _ctx.activeProvider.id
    })) : createCommentVNode("", true), _ctx.translateLoading ? (openBlock(), createElementBlock("div", IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_6, [runtime_core_esm_bundler_createVNode(_component_LoadingText)])) : createCommentVNode("", true), !_ctx.translateLoading && _ctx.errorMessage ? (openBlock(), createElementBlock("div", IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_7, toDisplayString(_ctx.errorMessage), 1)) : createCommentVNode("", true), !_ctx.activeProvider && !_ctx.translateLoading && !_ctx.errorMessage ? (openBlock(), createElementBlock("div", IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_8, " 等待输入查词 ")) : createCommentVNode("", true)]), runtime_core_esm_bundler_createVNode(Transition, {
      name: "s"
    }, {
      default: withCtx(() => [_ctx.store.core.showPin ? withDirectives((openBlock(), createElementBlock("div", IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_hoisted_9, [createBaseVNode("div", {
        class: "drag flex flex-center border-b border-grey-350",
        onMousedown: _cache[7] || (_cache[7] = //@ts-ignore
        (...args) => _ctx.m.pinDrag.handlePinDragStart && _ctx.m.pinDrag.handlePinDragStart(...args))
      }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
        svg: _ctx.icon.dragIcon
      }, null, 8, ["svg"])], 32), createBaseVNode("div", {
        class: normalizeClass(["stick flex flex-center relative", {
          pinned: _ctx.store.core.pinned
        }]),
        onClick: _cache[8] || (_cache[8] = //@ts-ignore
        (...args) => _ctx.m.pinDrag.handleTogglePinned && _ctx.m.pinDrag.handleTogglePinned(...args))
      }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
        svg: _ctx.icon.pinIcon
      }, null, 8, ["svg"])], 2)], 512)), [[vShow, _ctx.store.core.pinned || _ctx.state.stickBoxVisible]]) : createCommentVNode("", true)]),
      _: 1
    })], 36)], 512), [[vShow, _ctx.visible]])]),
    _: 1
  })]);
}
;// CONCATENATED MODULE: ./src/view/IcibaMain/IcibaMain.vue?vue&type=template&id=becc6b2c&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}
;// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};
  var target = _objectWithoutPropertiesLoose(source, excluded);
  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}
;// CONCATENATED MODULE: ./src/assets/img/settings_149837.svg
/* harmony default export */ const settings_149837 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 54 54\" width=\"512\" height=\"512\"><path d=\"M51.22 21h-5.052c-.812 0-1.481-.447-1.792-1.197s-.153-1.54.42-2.114l3.572-3.571c.525-.525.814-1.224.814-1.966 0-.743-.289-1.441-.814-1.967l-4.553-4.553c-1.05-1.05-2.881-1.052-3.933 0l-3.571 3.571c-.475.475-.997.574-1.352.574-.5 0-.997-.196-1.364-.539-.271-.254-.595-.704-.595-1.406V2.78C33 1.247 31.753 0 30.22 0h-6.44C22.247 0 21 1.247 21 2.78v5.052c0 1.218-.997 1.945-1.961 1.945-.354 0-.876-.1-1.351-.574l-3.571-3.571c-1.052-1.052-2.883-1.05-3.933 0l-4.553 4.553c-.525.525-.814 1.224-.814 1.967 0 .742.289 1.44.814 1.966l3.572 3.571c.573.574.73 1.364.42 2.114S8.644 21 7.832 21H2.78C1.247 21 0 22.247 0 23.78v6.438C0 31.752 1.247 33 2.78 33h5.052c.812 0 1.481.447 1.792 1.197s.153 1.54-.42 2.114l-3.572 3.571c-.525.525-.814 1.224-.814 1.966 0 .743.289 1.441.814 1.967l4.553 4.553c1.051 1.051 2.881 1.053 3.933 0l3.571-3.571c.475-.475.997-.574 1.352-.574.963 0 1.96.728 1.96 1.945v5.051C21 52.752 22.247 54 23.78 54h6.439c1.533 0 2.78-1.248 2.78-2.781v-5.051c0-1.218.997-1.945 1.96-1.945.354 0 .877.1 1.352.574l3.571 3.571c1.052 1.052 2.883 1.05 3.933 0l4.553-4.553c.525-.525.814-1.224.814-1.967 0-.742-.289-1.44-.814-1.966l-3.572-3.571c-.573-.574-.73-1.364-.42-2.114S45.356 33 46.168 33h5.052c1.533 0 2.78-1.248 2.78-2.781V23.78c0-1.533-1.247-2.78-2.78-2.78zM34 27c0 3.859-3.141 7-7 7s-7-3.141-7-7 3.141-7 7-7 7 3.141 7 7z\" fill=\"#AAA\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/drag_462998.svg
/* harmony default export */ const drag_462998 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"#aaa\" d=\"M491.318 235.318H20.682C9.26 235.318 0 244.577 0 256s9.26 20.682 20.682 20.682h470.636c11.423 0 20.682-9.259 20.682-20.682 0-11.422-9.259-20.682-20.682-20.682zM491.318 78.439H20.682C9.26 78.439 0 87.699 0 99.121c0 11.422 9.26 20.682 20.682 20.682h470.636c11.423 0 20.682-9.26 20.682-20.682 0-11.422-9.259-20.682-20.682-20.682zM491.318 392.197H20.682C9.26 392.197 0 401.456 0 412.879s9.26 20.682 20.682 20.682h470.636c11.423 0 20.682-9.259 20.682-20.682s-9.259-20.682-20.682-20.682z\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/pin_25474.svg
/* harmony default export */ const pin_25474 = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 475.085 475.085\" width=\"475.085\" height=\"475.085\"><path fill=\"#aaa\" d=\"M379.577 247.395c-14.944-18.75-31.833-28.12-50.679-28.12V73.092c9.896 0 18.47-3.616 25.693-10.848 7.238-7.233 10.858-15.802 10.858-25.697 0-9.9-3.62-18.464-10.858-25.697C347.368 3.617 338.795 0 328.898 0H146.179c-9.9 0-18.464 3.617-25.697 10.85-7.234 7.233-10.85 15.796-10.85 25.697 0 9.899 3.616 18.464 10.85 25.697 7.233 7.232 15.8 10.848 25.697 10.848v146.179c-18.844 0-35.734 9.374-50.677 28.123-14.941 18.75-22.414 39.824-22.414 63.242 0 4.948 1.809 9.232 5.426 12.847 3.619 3.613 7.901 5.421 12.85 5.421h115.344l21.698 138.474c.95 5.141 3.996 7.707 9.135 7.707h.291c2.274 0 4.235-.808 5.851-2.423 1.615-1.619 2.614-3.572 2.994-5.855l14.558-137.902h122.482c4.948 0 9.236-1.808 12.847-5.421 3.621-3.614 5.432-7.898 5.432-12.847.003-23.415-7.477-44.492-22.419-63.242zM210.132 210.14c0 2.662-.855 4.849-2.57 6.565-1.713 1.714-3.903 2.57-6.567 2.57-2.662 0-4.853-.855-6.567-2.57-1.713-1.713-2.568-3.903-2.568-6.565V82.233c0-2.664.855-4.858 2.568-6.567 1.714-1.711 3.905-2.568 6.567-2.568 2.664 0 4.854.854 6.567 2.568 1.714 1.712 2.57 3.903 2.57 6.567V210.14z\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/history.svg
/* harmony default export */ const img_history = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n  <path fill=\"#000000\" d=\"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z\"></path>\n</svg>\n");
;// CONCATENATED MODULE: ./src/util/useIncrement.ts
const useIncrement = (id = 0) => {
  let v = id;
  return () => {
    v += 1;
    return v;
  };
};
// EXTERNAL MODULE: ./node_modules/core-js-pure/stable/instance/reduce.js
var instance_reduce = __webpack_require__(1458);
var reduce_default = /*#__PURE__*/__webpack_require__.n(instance_reduce);
;// CONCATENATED MODULE: ./src/util/extendIoTs/excess.ts



/* eslint-disable consistent-return */

/* eslint-disable default-case */

/* eslint-disable @typescript-eslint/no-parameter-properties */

/* eslint-disable max-classes-per-file */



const getIsCodec = tag => codec => codec._tag === tag;

const isInterfaceCodec = getIsCodec('InterfaceType');
const isPartialCodec = getIsCodec('PartialType');

const excess_getProps = codec => {
  var _context;

  switch (codec._tag) {
    case 'RefinementType':
    case 'ReadonlyType':
      return excess_getProps(codec.type);

    case 'InterfaceType':
    case 'StrictType':
    case 'PartialType':
      return codec.props;

    case 'IntersectionType':
      return reduce_default()(_context = codec.types).call(_context, (props, type) => Object.assign(props, excess_getProps(type)), {});
  }
};

const excess_getNameFromProps = props => Object.keys(props).map(k => `${k}: ${props[k].name}`).join(', ');

const excess_getPartialTypeName = inner => `Partial<${inner}>`;

const getExcessTypeName = codec => {
  if (isInterfaceCodec(codec)) {
    return `{| ${excess_getNameFromProps(codec.props)} |}`;
  }

  if (isPartialCodec(codec)) {
    return excess_getPartialTypeName(`{| ${excess_getNameFromProps(codec.props)} |}`);
  }

  return `Excess<${codec.name}>`;
};

const excess_stripKeys = (o, props) => {
  const keys = Object.getOwnPropertyNames(o);
  const propsKeys = Object.getOwnPropertyNames(props);
  propsKeys.forEach(pk => {
    const index = keys.indexOf(pk);

    if (index !== -1) {
      keys.splice(index, 1);
    }
  });
  return keys.length ? Either_left(keys) : Either_right(o);
};

const excess = (codec, name = getExcessTypeName(codec)) => {
  const props = excess_getProps(codec);
  return new ExcessType(name, u => Either_isRight(excess_stripKeys(u, props)) && codec.is(u), (u, c) => either.chain(UnknownRecord.validate(u, c), () => either.chain(codec.validate(u, c), a => either.mapLeft(excess_stripKeys(a, props), keys => keys.map(k => ({
    value: a[k],
    context: c,
    message: `excess key "${k}" found`
  }))))), // eslint-disable-next-line @typescript-eslint/no-unsafe-return
  a => codec.encode(excess_stripKeys(a, props).right), codec);
};
class ExcessType extends Type {
  constructor(name, is, validate, encode, type) {
    super(name, is, validate, encode);

    defineProperty_defineProperty(this, "type", void 0);

    defineProperty_defineProperty(this, "_tag", 'ExcessType');

    this.type = type;
  }

}
;// CONCATENATED MODULE: ./src/service/history/type.ts



const historyItem = excess(type({
  word: string,
  time: number,
  provider: providerType
}));
;// CONCATENATED MODULE: ./src/service/history/index.ts


function history_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function history_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? history_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : history_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }







const MAX_SIZE = 100;
const history_state = reactivity_esm_bundler_reactive({
  list: []
});

const saveHistory = async () => {
  history_state.list.length = Math.min(history_state.list.length, MAX_SIZE);
  await setValue(GM_STORE_KEY.HISTORY, (__webpack_require__(8334)/* .stringify */ .P)(history_state.list));
};

const loadHistory = async () => {
  const raw = await gmapi_getValue(GM_STORE_KEY.HISTORY, '');
  const parsedList = pipe(tryCatch(() => JSON.parse(raw), function_identity), v => Either_isRight(v) && Array.isArray(v.right) ? v.right : []).map(item => historyItem.decode(item)).map(v => Either_isRight(v) ? v.right : null).filter(v => !!v).filter((_, i) => i < MAX_SIZE);
  history_state.list = parsedList;
  await saveHistory();
};

const clearHistory = async () => {
  history_state.list = [];
  await saveHistory();
};

const addItem = async item => {
  await loadHistory();
  const now = Date.now();
  const dupItem = history_state.list.find(v => v.word === item.word && now - v.time < 1000 * 60 * 10);

  if (dupItem) {
    history_state.list.splice(history_state.list.indexOf(dupItem), 1);
  }

  const mostRecentItem = history_state.list[0];

  if (mostRecentItem && mostRecentItem.word === item.word) {
    history_state.list.shift();
  }

  history_state.list.unshift(history_objectSpread(history_objectSpread({}, item), {}, {
    time: now
  }));
  await saveHistory();
};

const historyService = {
  state: history_state,
  loadHistory,
  clearHistory,
  addItem
};
;// CONCATENATED MODULE: ./src/service/translate/index.ts








const translate_state = reactivity_esm_bundler_reactive({
  loading: false,
  activeTask: null,
  activeProviderId: null,
  lastUsedProvider: 'ICIBA',
  errorMessage: ''
});
const getTaskId = useIncrement(0);
/** 查词 */

const service_translate_translate = async action => {
  var _ref, _ref2, _param$param, _context, _state$activeTask;

  const param = action.param;
  const provider = (_ref = (_ref2 = param && providers.find(p => p.id === param.provider)) !== null && _ref2 !== void 0 ? _ref2 : providers.find(v => v.id === service_store_store.core.defaultProvider)) !== null && _ref !== void 0 ? _ref : providers[0];
  const payload = (_param$param = param === null || param === void 0 ? void 0 : param.param) !== null && _param$param !== void 0 ? _param$param : null;

  const word = trim_default()(_context = action.word).call(_context);

  if (!word) {
    translate_state.errorMessage = '查询不能为空!';
    return;
  }

  translate_state.activeProviderId = null;
  const newTask = {
    word,
    provider: provider.id,
    id: getTaskId()
  }; // ignore if task was exactly same as active task

  if (translate_state.activeTask && translate_state.activeTask.word === newTask.word && translate_state.activeTask.provider === newTask.provider) {
    return;
  }

  translate_state.activeTask = newTask;
  translate_state.loading = true;
  translate_state.errorMessage = '';
  const result = await provider.translate({
    word,
    payload
  });

  if (((_state$activeTask = translate_state.activeTask) === null || _state$activeTask === void 0 ? void 0 : _state$activeTask.id) !== newTask.id) {
    return;
  }

  if (Either_isLeft(result)) {
    var _result$left$message;

    translate_state.errorMessage = `${provider.id} 错误: ${(_result$left$message = result.left.message) !== null && _result$left$message !== void 0 ? _result$left$message : ''}`;
    translate_state.loading = false;

    if (result.left.redirect) {
      await service_translate_translate({
        type: EVENTS.TRANSLATE,
        word,
        param: {
          provider: result.left.redirect,
          param: result.left.redirectParams
        }
      });
      return;
    }
  }

  if (Either_isRight(result)) {
    translate_state.activeProviderId = provider.id;
    result.right();
    historyService.addItem({
      word: newTask.word,
      provider: newTask.provider
    });
    translate_state.loading = false;
    translate_state.activeTask = null;
  }
};

const clearActiveProvider = () => {
  translate_state.activeProviderId = null;
  translate_state.errorMessage = '';
};

const removeSelection = () => {
  const selection = window.getSelection();

  if (selection !== null && selection !== void 0 && selection.toString()) {
    selection.removeAllRanges();
    return;
  }

  const active = document.activeElement;

  if (active instanceof HTMLInputElement || active instanceof HTMLTextAreaElement) {
    active.setSelectionRange(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
  }
};

const translateService = {
  state: translate_state,
  providers: providers,
  activeProvider: runtime_core_esm_bundler_computed(() => {
    var _providers$find;

    return (_providers$find = providers.find(v => v.id === translate_state.activeProviderId)) !== null && _providers$find !== void 0 ? _providers$find : null;
  }),
  translate: service_translate_translate,
  clearActiveProvider,
  removeSelection
};
;// CONCATENATED MODULE: ./src/service/zIndex/index.ts
var Z_INDEX_KEY;

(function (Z_INDEX_KEY) {
  Z_INDEX_KEY["GENERAL"] = "GENERAL";
  Z_INDEX_KEY["GOOGLE_DICT_MODAL"] = "GOOGLE_DICT_MODAL";
})(Z_INDEX_KEY || (Z_INDEX_KEY = {}));

const useZIndexService = () => {
  // https://stackoverflow.com/questions/491052/minimum-and-maximum-value-of-z-index
  let zIndex = 2147483647 - 100000;
  const zIndexUseMap = new Map();

  const gen = key => {
    zIndex += 1;
    const newZIndex = zIndex;
    zIndexUseMap.set(key, newZIndex);
    return newZIndex;
  };

  const get = key => {
    var _zIndexUseMap$get;

    return (_zIndexUseMap$get = zIndexUseMap.get(key)) !== null && _zIndexUseMap$get !== void 0 ? _zIndexUseMap$get : 0;
  };

  const isTop = z => z === zIndex;

  return {
    gen,
    get,
    isTop
  };
};

const zIndexService = useZIndexService();
;// CONCATENATED MODULE: ./src/service/view/index.ts

const view_state = reactivity_esm_bundler_reactive({
  icibaMain: false,
  setting: false,
  history: false,
  googleDictModal: false
});
const Statekeys = Object.keys(view_state);

const openIcibaMain = () => {
  view_state.icibaMain = true;
};

const closeIcibaMain = () => {
  view_state.icibaMain = false;
};

const openSettings = () => {
  view_state.setting = true;
};

const closeSettings = () => {
  view_state.setting = false;
};

const openHistory = () => {
  view_state.history = true;
};

const closeHistory = () => {
  view_state.history = false;
};

const openGoogleDictModal = () => {
  view_state.googleDictModal = true;
};

const closeGoogleDictModal = () => {
  view_state.googleDictModal = false;
};

const closeExcept = key => {
  Statekeys.forEach(k => {
    if (key === k) {
      return;
    }

    view_state[k] = false;
  });
};

Statekeys.forEach(key => {
  watch(() => view_state[key], () => {
    if (key === 'icibaMain') {
      return;
    }

    if (view_state[key]) {
      closeExcept(key);
    }
  });
});
const viewService = {
  state: view_state,
  openIcibaMain,
  closeIcibaMain,
  openSettings,
  closeSettings,
  openHistory,
  closeHistory,
  openGoogleDictModal,
  closeGoogleDictModal
};
;// CONCATENATED MODULE: ./src/util/insideOf.ts
/* harmony default export */ const insideOf = ((thetarget, parent) => {
  let target = thetarget;

  if (!target || !parent) {
    return false;
  }

  while (target && target !== parent) {
    target = target.parentNode;
  }

  if (target === parent) {
    return true;
  }

  return false;
});
;// CONCATENATED MODULE: ./src/util/calcMouseEventPosition.ts
/* harmony default export */ const calcMouseEventPosition = (e => {
  const bodyStyle = window.getComputedStyle(document.body);
  let marginLeft = 0;
  let marginTop = 0;

  if (bodyStyle.position !== 'static') {
    if (bodyStyle.marginLeft && bodyStyle.marginLeft !== '0px') {
      marginLeft = Number(bodyStyle.marginLeft.replace('px', ''));
    }

    if (bodyStyle.marginTop && bodyStyle.marginTop !== '0px') {
      marginTop = Number(bodyStyle.marginTop.replace('px', ''));
    }
  }

  return {
    top: e.pageY - marginTop,
    left: e.pageX - marginLeft
  };
});
;// CONCATENATED MODULE: ./src/view/IcibaMain/LoadingText/LoadingText.tsx


/* harmony default export */ const LoadingText = (runtime_core_esm_bundler_defineComponent({
  setup: () => {
    let intervalId = 0;
    const state = reactivity_esm_bundler_reactive({
      dots: 3
    });
    runtime_core_esm_bundler_onMounted(() => {
      intervalId = window.setInterval(() => {
        state.dots = state.dots > 10 ? 3 : state.dots + 1;
      }, 300);
    });
    runtime_core_esm_bundler_onUnmounted(() => {
      window.clearInterval(intervalId);
    });
    return () => runtime_core_esm_bundler_createVNode("div", null, [createTextVNode("\u52A0\u8F7D\u4E2D"), '.'.repeat(state.dots)]);
  }
}));
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/IcibaMain/IcibaMain.ts?vue&type=script&lang=ts


const _excluded = ["translateX", "translateY"];

function IcibaMainvue_type_script_lang_ts_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function IcibaMainvue_type_script_lang_ts_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? IcibaMainvue_type_script_lang_ts_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : IcibaMainvue_type_script_lang_ts_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
















/* harmony default export */ const IcibaMainvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'IcibaMain',
  components: {
    LoadingText: LoadingText
  },
  props: {
    getIcibaCircle: {
      type: null,
      required: true
    }
  },
  setup: props => {
    const refs = {
      icibaMainWrap: reactivity_esm_bundler_ref(),
      icibaMain: reactivity_esm_bundler_ref(),
      icibaSearchInput: reactivity_esm_bundler_ref(),
      sizeHelper: reactivity_esm_bundler_ref()
    };
    const state = reactivity_esm_bundler_reactive({
      inputFocused: false,
      inputText: '',
      stickBoxVisible: false,
      drag: {
        dragging: false,
        ignoreCtrl: false,
        startPoint: {
          x: 0,
          y: 0
        },
        startTransform: {
          x: 0,
          y: 0
        }
      },
      mainStyle: {
        top: 'auto',
        bottom: 'auto',
        left: 'auto',
        right: 'auto'
      },
      wrapperStyle: {
        top: 'auto',
        bottom: 'auto',
        left: 'auto',
        right: 'auto',
        translateX: 0,
        translateY: 0,
        zIndex: 0
      }
    });

    const focusInput = (selectAll = false) => {
      runtime_core_esm_bundler_nextTick(() => {
        const input = refs.icibaSearchInput.value;

        if (input) {
          const textLength = state.inputText.length;
          input.focus();
          input.selectionStart = selectAll ? 0 : textLength;
          input.selectionEnd = textLength;
        }
      });
    };
    /** 设置 IcibaMain position */


    const setPosition = e => {
      if (!refs.sizeHelper.value) {
        return;
      }

      const sizeHelperBounding = refs.sizeHelper.value.getBoundingClientRect();
      const availableSpace = {
        x: sizeHelperBounding.left - e.clientX,
        y: sizeHelperBounding.top - e.clientY
      };
      state.mainStyle = IcibaMainvue_type_script_lang_ts_objectSpread({
        top: 'auto',
        bottom: 'auto',
        left: 'auto',
        right: 'auto'
      }, IcibaMainvue_type_script_lang_ts_objectSpread(IcibaMainvue_type_script_lang_ts_objectSpread({}, availableSpace.x < service_store_store.core.icibaMainWidth ? {
        right: '0'
      } : {
        left: '0'
      }), availableSpace.y < 250 ? {
        bottom: '0'
      } : {
        top: '0'
      }));
      const calcedPosition = calcMouseEventPosition(e);
      state.wrapperStyle = {
        top: `${calcedPosition.top}px`,
        left: `${calcedPosition.left}px`,
        bottom: 'auto',
        right: 'auto',
        translateX: 0,
        translateY: 0,
        zIndex: zIndexService.gen(Z_INDEX_KEY.GENERAL)
      };
    };

    const showIcibaMain = (e, autoFocus) => {
      if (!viewService.state.icibaMain) {
        setPosition(e);
        viewService.openIcibaMain();

        if (autoFocus) {
          focusInput();
        }

        return;
      } // reset if out of bound


      const container = refs.icibaMain.value;

      if (container) {
        const rect = container.getBoundingClientRect();

        if (rect.bottom < 0 || rect.top > window.innerHeight) {
          setPosition(e);
        }
      }
    };

    const listeners = {
      /** 查词事件 */
      onTranslate: action => {
        if (action.mouseEvent) {
          showIcibaMain(action.mouseEvent, service_store_store.core.icibaMainInputAutoFocus);
        }

        state.inputText = action.word;
        translateService.translate(action);
      },

      /** 热键显示 */
      onHotKeyShowUp: action => {
        setPosition(action.mouseEvent);
        state.inputText = action.word;
        translateService.clearActiveProvider();
        showIcibaMain(action.mouseEvent, service_store_store.core.hotkeyIcibaMainInputAutoFocus);
      },

      /** 热键查词 */
      onHotkeyTranslate: action => {
        if (!viewService.state.icibaMain) {
          if (!action.word) {
            return;
          }

          showIcibaMain(action.mouseEvent, service_store_store.core.providerHotkeyAutoFocus);
        }

        state.inputText = action.word || state.inputText;
        translateService.translate({
          type: EVENTS.TRANSLATE,
          word: state.inputText,
          mouseEvent: action.mouseEvent,
          param: {
            provider: action.provider
          }
        });

        if (service_store_store.core.providerHotkeyAutoFocus) {
          focusInput();
        }
      },
      onGoogleDictModalOpen: () => {
        viewService.closeIcibaMain();
      },
      onWindowClick: e => {
        // outside shadow-root
        if (e.target !== icibaRoot && (!service_store_store.core.showPin || !service_store_store.core.pinned)) {
          viewService.closeIcibaMain();
        }
      },
      onShadowRootClick: e => {
        if (!refs.icibaMainWrap.value) {
          return;
        }

        const ignoreCondition = [insideOf(e.target, refs.icibaMainWrap.value), insideOf(e.target, props.getIcibaCircle().$el), service_store_store.core.showPin && service_store_store.core.pinned];

        if (ignoreCondition.some(v => v)) {
          return;
        }

        viewService.closeIcibaMain();
      }
    };
    const methods = {
      handleOpenSetting: () => {
        viewService.openSettings();
      },
      handleOpenHistory: () => {
        viewService.openHistory();
      },
      handleTranslateWithProvider: provider => {
        translateService.translate({
          type: EVENTS.TRANSLATE,
          word: state.inputText,
          param: {
            provider
          }
        });
      },
      handleInputEnter: () => {
        translateService.translate({
          type: EVENTS.TRANSLATE,
          word: state.inputText,
          param: {
            provider: translateService.state.lastUsedProvider
          }
        });
      }
    };
    /** 图钉 拖拽 */

    const pinDrag = {
      /** 切换固定状态 */
      handleTogglePinned: () => {
        service_store_store.core.pinned = !service_store_store.core.pinned;
      },

      /** 图钉拖拽 */
      handlePinDragStart: e => {
        e.preventDefault();
        translateService.removeSelection();
        state.drag = {
          dragging: true,
          ignoreCtrl: true,
          startPoint: {
            x: e.screenX,
            y: e.screenY
          },
          startTransform: {
            x: state.wrapperStyle.translateX,
            y: state.wrapperStyle.translateY
          }
        };
      },

      /** 窗体拖拽 */
      handleDragStart: _e => {
        if (!refs.icibaMainWrap.value) {
          return;
        }

        const e = _e;
        state.drag.ignoreCtrl = false;

        if (!insideOf(e.target, refs.icibaMainWrap.value) || !e.ctrlKey) {
          return;
        }

        if (!service_store_store.core.pressCtrlToDrag) {
          return;
        }

        translateService.removeSelection();
        e.preventDefault();
        state.drag = {
          dragging: true,
          ignoreCtrl: false,
          startPoint: {
            x: e.screenX,
            y: e.screenY
          },
          startTransform: {
            x: state.wrapperStyle.translateX,
            y: state.wrapperStyle.translateY
          }
        };
      },
      handleDragMove: _e => {
        const e = _e;

        if (!state.drag.dragging || !state.drag.ignoreCtrl && !e.ctrlKey) {
          return;
        }

        const deltaX = e.screenX - state.drag.startPoint.x;
        const deltaY = e.screenY - state.drag.startPoint.y;
        state.wrapperStyle.translateX = state.drag.startTransform.x + deltaX;
        state.wrapperStyle.translateY = state.drag.startTransform.y + deltaY;
      },
      handleDragEnd: () => {
        state.drag.dragging = false;
      }
    };
    const wrapperStyle = runtime_core_esm_bundler_computed(() => {
      const _state$wrapperStyle = state.wrapperStyle,
            {
        translateX,
        translateY
      } = _state$wrapperStyle,
            rest = _objectWithoutProperties(_state$wrapperStyle, _excluded);

      return IcibaMainvue_type_script_lang_ts_objectSpread(IcibaMainvue_type_script_lang_ts_objectSpread({}, rest), {}, {
        transform: `translate(${state.wrapperStyle.translateX}px, ${state.wrapperStyle.translateY}px)`
      });
    });
    const mainStyle = runtime_core_esm_bundler_computed(() => IcibaMainvue_type_script_lang_ts_objectSpread(IcibaMainvue_type_script_lang_ts_objectSpread({}, state.mainStyle), {}, {
      width: `${service_store_store.core.icibaMainWidth}px`
    }));
    const showButtonProviders = runtime_core_esm_bundler_computed(() => service_store_store.core.providerOrder.map(id => providers.find(p => p.id === id)).filter(p => p.store.display));
    const visible = runtime_core_esm_bundler_computed(() => viewService.state.icibaMain);
    watch(() => wrapperStyle.value, style => {
      if (refs.icibaMainWrap.value) {
        Object.assign(refs.icibaMainWrap.value.style, style);
      }
    }, {
      deep: true,
      immediate: true
    });
    runtime_core_esm_bundler_onMounted(() => {
      window.addEventListener('mousedown', listeners.onWindowClick, true);
      window.addEventListener('mousemove', pinDrag.handleDragMove, true);
      window.addEventListener('mouseup', pinDrag.handleDragEnd, true);
      shadowRoot.addEventListener('mousedown', pinDrag.handleDragStart, true);
      shadowRoot.addEventListener('mousedown', listeners.onShadowRootClick, false);
      shadowRoot.addEventListener('keyup', pinDrag.handleDragEnd, true);
      bus.on({
        event: EVENTS.TRANSLATE,
        listener: listeners.onTranslate
      });
      bus.on({
        event: EVENTS.OPEN_GOOGLE_DICT_MODAL,
        listener: listeners.onGoogleDictModalOpen
      });
      bus.on({
        event: EVENTS.HOTKEY_SHOW,
        listener: listeners.onHotKeyShowUp
      });
      bus.on({
        event: EVENTS.HOTKEY_TRANSLATE,
        listener: listeners.onHotkeyTranslate
      });
    }); // no need to unmounted since it never unmount

    if (false) {}

    return {
      icon: {
        settingsIcon: settings_149837,
        dragIcon: drag_462998,
        pinIcon: pin_25474,
        historyIcon: img_history
      },
      state,
      visible,
      refs,
      store: service_store_store,
      mainStyle,
      translateLoading: runtime_core_esm_bundler_computed(() => translateService.state.loading),
      activeProvider: translateService.activeProvider,
      showButtonProviders,
      errorMessage: runtime_core_esm_bundler_computed(() => translateService.state.errorMessage),
      m: IcibaMainvue_type_script_lang_ts_objectSpread({
        getIcon: getIcon,
        pinDrag
      }, methods)
    };
  }
}));
;// CONCATENATED MODULE: ./src/view/IcibaMain/IcibaMain.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/IcibaMain/IcibaMain.sass?vue&type=style&index=0&id=becc6b2c&lang=sass&scoped=true
var IcibaMainvue_type_style_index_0_id_becc6b2c_lang_sass_scoped_true = __webpack_require__(4558);
;// CONCATENATED MODULE: ./src/view/IcibaMain/IcibaMain.sass?vue&type=style&index=0&id=becc6b2c&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/view/IcibaMain/IcibaMain.vue




;


const IcibaMain_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(IcibaMainvue_type_script_lang_ts, [['render',IcibaMainvue_type_template_id_becc6b2c_scoped_true_ts_true_render],['__scopeId',"data-v-becc6b2c"]])

/* harmony default export */ const IcibaMain = (IcibaMain_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/view/IcibaCircle/IcibaCircle.vue?vue&type=template&id=b769a32c&scoped=true&ts=true

function IcibaCirclevue_type_template_id_b769a32c_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  return openBlock(), createBlock(Transition, {
    name: "c"
  }, {
    default: withCtx(() => [withDirectives(createBaseVNode("div", {
      class: normalizeClass(["iciba-circle absolute select-none overflow-hidden flex flex-center", {
        'has-icon': !!_ctx.iconUrl,
        [_ctx.iconType]: true
      }]),
      ref: _ctx.refs.circle,
      style: normalizeStyle(_ctx.computedStyle),
      onContextmenu: _cache[0] || (_cache[0] = withModifiers(() => {}, ["prevent"])),
      onMouseover: _cache[1] || (_cache[1] = //@ts-ignore
      (...args) => _ctx.m.handleSelfMouseover && _ctx.m.handleSelfMouseover(...args)),
      onMouseup: _cache[2] || (_cache[2] = //@ts-ignore
      (...args) => _ctx.m.handleSelfMouseUp && _ctx.m.handleSelfMouseUp(...args))
    }, [_ctx.iconUrl ? (openBlock(), createBlock(_component_i_icon, {
      key: 0,
      class: "flex-1",
      size: false,
      svg: _ctx.iconUrl
    }, null, 8, ["svg"])) : createCommentVNode("", true)], 38), [[vShow, _ctx.state.visible]])]),
    _: 1
  });
}
;// CONCATENATED MODULE: ./src/util/getSelectionText.ts

const getSelectionText = () => {
  const selection = window.getSelection();

  if (selection && String(selection)) {
    var _context;

    return trim_default()(_context = selection.toString()).call(_context);
  }

  const active = document.activeElement;

  if (active instanceof HTMLInputElement || active instanceof HTMLTextAreaElement) {
    const start = active.selectionStart;
    const end = active.selectionEnd;

    if (typeof start === 'number' && typeof end === 'number') {
      const s = active.value.substring(start, end);
      return trim_default()(s).call(s);
    }
  }

  return '';
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/IcibaCircle/IcibaCircle.ts?vue&type=script&lang=ts


function IcibaCirclevue_type_script_lang_ts_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function IcibaCirclevue_type_script_lang_ts_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? IcibaCirclevue_type_script_lang_ts_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : IcibaCirclevue_type_script_lang_ts_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }













/* harmony default export */ const IcibaCirclevue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  setup: () => {
    const refs = {
      circle: reactivity_esm_bundler_ref()
    };
    const state = reactivity_esm_bundler_reactive({
      visible: false,
      word: '',
      currentWord: '',
      zIndex: 0,
      style: {
        top: '0',
        left: '0',
        bottom: 'auto',
        right: 'auto'
      }
    });

    const showIcibaCircle = (e, word) => {
      state.visible = true;
      state.word = word;
      state.zIndex = zIndexService.gen(Z_INDEX_KEY.GENERAL);
      const calcedPosition = calcMouseEventPosition(e);
      state.style = {
        top: `${calcedPosition.top + service_store_store.core.icibaCircleOffsetY}px`,
        left: `${calcedPosition.left + service_store_store.core.icibaCircleOffsetX}px`
      };
    };

    const handleSelfMouseUp = event => {
      // have to wait handleContextmenu trigger
      setTimeout(() => {
        state.visible = false;
        let provider = IcibaProvider.id;

        if (event.button === 2 && service_store_store.core.icibaCircleRightClick) {
          // 备选 provider
          provider = service_store_store.core.icibaCircleRightClickProvider;
        } else {
          // 默认 provider
          provider = service_store_store.core.defaultProvider;
        }

        bus.emit({
          type: EVENTS.TRANSLATE,
          mouseEvent: event,
          word: state.word,
          param: {
            provider
          }
        });
        translateService.removeSelection();
      });
    };

    const handleSelfMouseover = event => {
      if (!service_store_store.core.mouseOverTranslate) {
        return;
      }

      state.visible = false;
      bus.emit({
        type: EVENTS.TRANSLATE,
        mouseEvent: event,
        word: state.word,
        param: {
          provider: service_store_store.core.defaultProvider
        }
      });
    };

    const handleMouseUp = async (e, proxied = false) => {
      // let handleShadowRootClick handle
      if (!proxied && e.target === icibaRoot) {
        return;
      }

      if (proxied && e.target === refs.circle.value) {
        return;
      }

      const hide = () => {
        state.visible = false;
      }; // Wait for next frame. If user clicks on selection text, it will be
      // cleared on next frame


      await new (promise_default())(rs => requestAnimationFrame(rs));
      const selectionString = getSelectionText();
      state.currentWord = selectionString;

      if (!selectionString) {
        hide();
        return;
      }

      if (service_store_store.core.pressCtrlToShowCircle && !e.ctrlKey) {
        hide();
        return;
      }

      if (service_store_store.core.selectionMaxLengthCut && selectionString.length > service_store_store.core.selectionMaxLength) {
        hide();
        return;
      } // dummy proof


      const hasShowUpHotkey = service_store_store.core.useHotkeyShowUp && !!service_store_store.core.showUpHotkey.length;
      const hasProviderUsingHotkey = providers.some(p => p.store.enableHotkey && p.store.hotkey.length);
      const hasHotkey = hasShowUpHotkey || hasProviderUsingHotkey;

      if (!service_store_store.core.useIcibaCircle && hasHotkey) {
        return;
      }

      if (service_store_store.core.icibaCircleNoCJK) {
        // 669 is last of Latin Extended Additional
        // https://en.wikipedia.org/wiki/List_of_Unicode_characters#Latin_Extended_Additional
        const hasCJK = Array.from(selectionString).some(v => v.charCodeAt(0) > 669);

        if (hasCJK) {
          hide();
          return;
        }
      }

      showIcibaCircle(e, selectionString);
    };

    const handleShadowRootMouseUp = e => {
      handleMouseUp(e, true);
    };

    const computedStyle = runtime_core_esm_bundler_computed(() => IcibaCirclevue_type_script_lang_ts_objectSpread(IcibaCirclevue_type_script_lang_ts_objectSpread({}, state.style), {}, {
      zIndex: state.zIndex,
      width: `${service_store_store.core.icibaCircleSize}px`,
      height: `${service_store_store.core.icibaCircleSize}px`
    }));
    const iconUrl = runtime_core_esm_bundler_computed(() => ICIBA_CIRCLE_ICON_MAP[service_store_store.core.icibaCircleIcon]);
    const iconType = runtime_core_esm_bundler_computed(() => ICIBA_CIRCLE_ICON_TYPE_MAP[service_store_store.core.icibaCircleIcon]);
    runtime_core_esm_bundler_onMounted(() => {
      window.addEventListener('mouseup', handleMouseUp, true);
      shadowRoot.addEventListener('mouseup', handleShadowRootMouseUp, true);
    });

    if (false) {}

    return {
      state,
      refs,
      iconUrl,
      iconType,
      computedStyle,
      m: {
        handleSelfMouseover,
        handleSelfMouseUp
      }
    };
  }
}));
;// CONCATENATED MODULE: ./src/view/IcibaCircle/IcibaCircle.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/IcibaCircle/IcibaCircle.sass?vue&type=style&index=0&id=b769a32c&lang=sass&scoped=true
var IcibaCirclevue_type_style_index_0_id_b769a32c_lang_sass_scoped_true = __webpack_require__(4632);
;// CONCATENATED MODULE: ./src/view/IcibaCircle/IcibaCircle.sass?vue&type=style&index=0&id=b769a32c&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/view/IcibaCircle/IcibaCircle.vue




;


const IcibaCircle_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(IcibaCirclevue_type_script_lang_ts, [['render',IcibaCirclevue_type_template_id_b769a32c_scoped_true_ts_true_render],['__scopeId',"data-v-b769a32c"]])

/* harmony default export */ const IcibaCircle = (IcibaCircle_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/view/SettingPage/SettingPage.vue?vue&type=template&id=52c940b4&scoped=true&ts=true


const SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_withScopeId = n => (pushScopeId("data-v-52c940b4"), n = n(), popScopeId(), n);

const SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_1 = {
  class: "setting-window relative flex bg-white shadow-8 ease-in-out duration-300 overflow-hidden"
};
const SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_2 = {
  class: "bg-indigo-500 flex-none items-center"
};

const SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_3 = /*#__PURE__*/createTextVNode("设置");

const SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_4 = /*#__PURE__*/createTextVNode("core");

const SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_5 = /*#__PURE__*/createTextVNode("热键");

const SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_6 = /*#__PURE__*/createTextVNode("Urban");

const SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_7 = /*#__PURE__*/SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("br", null, null, -1));

const SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_8 = /*#__PURE__*/createTextVNode("Dictionary");

function SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_tab = resolveComponent("i-tab");

  const _component_i_tabs = resolveComponent("i-tabs");

  const _component_about = resolveComponent("about");

  const _component_i_tab_item = resolveComponent("i-tab-item");

  const _component_core_setting = resolveComponent("core-setting");

  const _component_hot_key = resolveComponent("hot-key");

  const _component_i_tabs_items = resolveComponent("i-tabs-items");

  const _component_modal_component = resolveComponent("modal-component");

  const _directive_no_overscroll = resolveDirective("no-overscroll");

  return openBlock(), createBlock(_component_modal_component, {
    open: _ctx.visible,
    onClose: _ctx.handleCloseSetting
  }, {
    default: withCtx(() => [createBaseVNode("div", SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_1, [createBaseVNode("div", SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_2, [runtime_core_esm_bundler_createVNode(_component_i_tabs, {
      modelValue: _ctx.state.tab,
      "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => _ctx.state.tab = $event),
      dark: "",
      "slider-color": "rgba(255,255,255,0.8)"
    }, {
      default: withCtx(() => [runtime_core_esm_bundler_createVNode(_component_i_tab, null, {
        default: withCtx(() => [SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_3]),
        _: 1
      }), runtime_core_esm_bundler_createVNode(_component_i_tab, null, {
        default: withCtx(() => [SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_4]),
        _: 1
      }), runtime_core_esm_bundler_createVNode(_component_i_tab, null, {
        default: withCtx(() => [SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_5]),
        _: 1
      }), (openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.providersLabel, (c, i) => {
        return openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, {
          key: i
        }, [c === 'Urban Dictionary' ? (openBlock(), createBlock(_component_i_tab, {
          key: 0
        }, {
          default: withCtx(() => [SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_6, SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_7, SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_hoisted_8]),
          _: 1
        })) : (openBlock(), createBlock(_component_i_tab, {
          key: 1
        }, {
          default: withCtx(() => [createTextVNode(toDisplayString(c), 1)]),
          _: 2
        }, 1024))], 64);
      }), 128))]),
      _: 1
    }, 8, ["modelValue"])]), withDirectives((openBlock(), createBlock(_component_i_tabs_items, {
      class: "tabs-box flex-auto overflow-auto",
      modelValue: _ctx.state.tab,
      "onUpdate:modelValue": _cache[1] || (_cache[1] = $event => _ctx.state.tab = $event)
    }, {
      default: withCtx(() => [runtime_core_esm_bundler_createVNode(_component_i_tab_item, {
        class: "p-4"
      }, {
        default: withCtx(() => [runtime_core_esm_bundler_createVNode(_component_about)]),
        _: 1
      }), runtime_core_esm_bundler_createVNode(_component_i_tab_item, {
        class: "p-4"
      }, {
        default: withCtx(() => [runtime_core_esm_bundler_createVNode(_component_core_setting)]),
        _: 1
      }), runtime_core_esm_bundler_createVNode(_component_i_tab_item, {
        class: "p-4"
      }, {
        default: withCtx(() => [runtime_core_esm_bundler_createVNode(_component_hot_key)]),
        _: 1
      }), (openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.providersPage, (c, i) => {
        return openBlock(), createBlock(_component_i_tab_item, {
          key: i,
          class: "p-4"
        }, {
          default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(c)))]),
          _: 2
        }, 1024);
      }), 128))]),
      _: 1
    }, 8, ["modelValue"])), [[_directive_no_overscroll]])])]),
    _: 1
  }, 8, ["open", "onClose"]);
}
;// CONCATENATED MODULE: ./src/view/SettingPage/SettingPage.vue?vue&type=template&id=52c940b4&scoped=true&ts=true

// EXTERNAL MODULE: ./node_modules/core-js-pure/stable/instance/flat-map.js
var flat_map = __webpack_require__(5302);
var flat_map_default = /*#__PURE__*/__webpack_require__.n(flat_map);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/tabs/tabs.tsx?vue&type=script&lang=ts



function tabsvue_type_script_lang_ts_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

function tabsvue_type_script_lang_ts_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? tabsvue_type_script_lang_ts_ownKeys(Object(source), !0).forEach(function (key) { defineProperty_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : tabsvue_type_script_lang_ts_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }




/* harmony default export */ const tabsvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'Tabs',
  props: {
    modelValue: {
      type: Number,
      required: true
    },
    sliderColor: {
      type: String,
      default: ''
    }
  },
  setup: (props, ctx) => {
    const tabs = reactivity_esm_bundler_reactive([]);
    const state = reactivity_esm_bundler_reactive({
      slider: {
        top: 0,
        height: 0
      },
      hasArrowButton: false
    });
    const tabModel = runtime_core_esm_bundler_computed({
      get: () => props.modelValue,
      set: value => ctx.emit('update:modelValue', value)
    });

    const updateSlider = () => {
      var _context;

      const height = tabs[tabModel.value].clientHeight;

      const top = reduce_default()(_context = tabs.filter((_v, i) => i < tabModel.value).map(v => v.clientHeight)).call(_context, (p, c) => p + c, 0);

      state.slider = {
        top,
        height
      };
    };

    const sliderStyle = runtime_core_esm_bundler_computed(() => tabsvue_type_script_lang_ts_objectSpread({
      top: `${state.slider.top}px`,
      height: `${state.slider.height}px`
    }, props.sliderColor ? {
      color: props.sliderColor
    } : {}));
    runtime_core_esm_bundler_onMounted(() => {
      watch(() => props.modelValue, () => {
        updateSlider();
      }, {
        immediate: true
      });
    });
    return () => {
      var _context2, _ctx$slots$default, _ctx$slots$default2, _ctx$slots;

      const VNodes = flat_map_default()(_context2 = (_ctx$slots$default = (_ctx$slots$default2 = (_ctx$slots = ctx.slots).default) === null || _ctx$slots$default2 === void 0 ? void 0 : _ctx$slots$default2.call(_ctx$slots)) !== null && _ctx$slots$default !== void 0 ? _ctx$slots$default : []).call(_context2, v => {
        if (v.type === runtime_core_esm_bundler_Fragment) {
          return v.children;
        }

        return v;
      });

      return runtime_core_esm_bundler_createVNode("div", {
        "class": "i-tabs flex-col flex-wrap relative items-stretch"
      }, [runtime_core_esm_bundler_createVNode("div", {
        "class": "slider absolute ease-in-out duration-300",
        "style": sliderStyle.value
      }, null), VNodes.map((tab, index) => withDirectives(runtime_core_esm_bundler_createVNode("div", {
        "ref": el => {
          if (el) {
            tabs[index] = el;
          }
        },
        "class": {
          'tab flex flex-center text-14': true,
          'active': tabModel.value === index
        },
        "onClick": () => {
          tabModel.value = index;
        },
        "key": index
      }, [tab]), [[resolveDirective("ripple"), {
        class: tabModel.value === index ? 'active-ripple' : 'inactive-ripple'
      }]]))]);
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/tabs/tabs.tsx?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/tabs/tabs.sass?vue&type=style&index=0&lang=sass
var tabsvue_type_style_index_0_lang_sass = __webpack_require__(8375);
;// CONCATENATED MODULE: ./src/components/tabs/tabs.sass?vue&type=style&index=0&lang=sass

;// CONCATENATED MODULE: ./src/components/tabs/tabs.vue



;

const tabs_exports_ = tabsvue_type_script_lang_ts;

/* harmony default export */ const tabs = (tabs_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-2.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/tab/tab.vue?vue&type=template&id=162513bc

const tabvue_type_template_id_162513bc_hoisted_1 = {
  class: "i-tab__div text-center"
};
function tabvue_type_template_id_162513bc_render(_ctx, _cache) {
  return openBlock(), createElementBlock("div", tabvue_type_template_id_162513bc_hoisted_1, [renderSlot(_ctx.$slots, "default")]);
}
;// CONCATENATED MODULE: ./src/components/tab/tab.vue?vue&type=template&id=162513bc

;// CONCATENATED MODULE: ./src/components/tab/tab.vue

const script = {}

;
const tab_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(script, [['render',tabvue_type_template_id_162513bc_render]])

/* harmony default export */ const tab = (tab_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/tabsItems/tabsItems.tsx?vue&type=script&lang=ts



/* harmony default export */ const tabsItemsvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  props: {
    modelValue: {
      type: Number,
      required: true
    },
    windowClass: {
      type: String,
      default: ''
    }
  },
  setup: (props, ctx) => {
    const refs = {
      windows: reactivity_esm_bundler_reactive([]),
      windowContainer: reactivity_esm_bundler_ref(),
      container: reactivity_esm_bundler_ref()
    };
    const state = reactivity_esm_bundler_reactive({
      beforeValue: 0,
      height: 0,
      animating: false,
      animatingTimeout: 0,
      windowState: [],
      scrollTopInterupt: null
    });

    const scrollToTop = () => {
      const container = refs.container.value;

      if (!container) {
        return;
      }

      const start = container.scrollTop;

      if (!start) {
        return;
      }

      if (state.scrollTopInterupt) {
        state.scrollTopInterupt();
      }

      const startTime = performance.now();

      const ease = pos => (Math.cos(Math.PI * pos) - 1) * -0.5;

      let stop = false;

      const scroll = () => {
        const time = performance.now() - startTime;

        if (time > 300 || stop) {
          return;
        }

        if (container.scrollTop === 0) {
          return;
        }

        container.scrollTop = start - ease(time / 300) * start;
        window.requestAnimationFrame(scroll);
      };

      state.scrollTopInterupt = () => {
        stop = true;
        state.scrollTopInterupt = null;
      };

      window.requestAnimationFrame(scroll);
    };

    const transform = async () => {
      const windowContainer = refs.windowContainer.value;
      const windows = refs.windows;

      if (!windowContainer || !windows) {
        return;
      }

      if (state.animating) {
        window.clearTimeout(state.animatingTimeout);
      }

      state.animating = true; // before animate state

      const outIndex = state.beforeValue;
      const inIndex = props.modelValue;
      const containerHeight = windowContainer.getBoundingClientRect().height; // reset style

      state.windowState.forEach(v => {
        v.display = 'none';
        v.position = undefined;
        v.transform = '';
      });
      state.height = Math.max(windows[outIndex].getBoundingClientRect().height, containerHeight); // set pre position

      state.windowState[outIndex] = {
        position: 'absolute',
        display: '',
        transform: '',
        animating: false
      };
      state.windowState[inIndex] = {
        position: 'absolute',
        display: '',
        transform: inIndex < outIndex ? 'translate(-100%, 0)' : 'translate(100%, 0)',
        animating: false
      }; // await render

      await runtime_core_esm_bundler_nextTick();
      scrollToTop();
      state.height = Math.max(windows[outIndex].getBoundingClientRect().height, containerHeight);
      state.windowState[outIndex] = {
        position: 'absolute',
        display: '',
        transform: outIndex < inIndex ? 'translate(-100%, 0)' : 'translate(100%, 0)',
        animating: true
      };
      state.windowState[inIndex] = {
        position: 'absolute',
        display: '',
        transform: '',
        animating: true
      };
      state.animatingTimeout = window.setTimeout(() => {
        state.animating = false;
        state.windowState[outIndex] = {
          position: undefined,
          display: 'none',
          transform: '',
          animating: false
        };
        state.windowState[inIndex] = {
          position: undefined,
          display: '',
          transform: '',
          animating: false
        };
        state.height = 0;
      }, 300);
    };

    const initStyle = length => {
      if (length === state.windowState.length) {
        return;
      }

      state.windowState = Array(length).fill(0).map((_v, i) => ({
        position: undefined,
        transform: '',
        display: props.modelValue === i ? '' : 'none',
        animating: false
      }));
    };

    runtime_core_esm_bundler_onMounted(() => {
      watch(() => props.modelValue, (_value, old) => {
        state.beforeValue = old !== null && old !== void 0 ? old : 0;

        if (old !== undefined) {
          transform();
        }
      }, {
        immediate: true
      });
    });
    return () => {
      var _context, _ctx$slots$default, _ctx$slots$default2, _ctx$slots;

      const VNodes = flat_map_default()(_context = (_ctx$slots$default = (_ctx$slots$default2 = (_ctx$slots = ctx.slots).default) === null || _ctx$slots$default2 === void 0 ? void 0 : _ctx$slots$default2.call(_ctx$slots)) !== null && _ctx$slots$default !== void 0 ? _ctx$slots$default : []).call(_context, v => {
        if (v.type === runtime_core_esm_bundler_Fragment) {
          return v.children;
        }

        return v;
      });

      initStyle(VNodes.length);
      return runtime_core_esm_bundler_createVNode("div", {
        "class": "i-tabs-items",
        "ref": refs.container
      }, [runtime_core_esm_bundler_createVNode("div", {
        "class": "window-container flex relative ease-in-out duration-300",
        "ref": refs.windowContainer,
        "style": {
          height: state.height ? `${state.height}px` : 'auto'
        }
      }, [...VNodes.map((vnode, i) => {
        var _props$windowClass;

        if (vnode.props) {
          const pd = vnode.props;
          pd.index = i;
          pd.current = props.modelValue;
        }

        return runtime_core_esm_bundler_createVNode("div", {
          "ref": el => {
            if (el) refs.windows[i] = el;
          },
          "style": {
            position: state.windowState[i].position,
            display: state.windowState[i].display,
            transform: state.windowState[i].transform
          },
          "key": i,
          "class": {
            [(_props$windowClass = props.windowClass) !== null && _props$windowClass !== void 0 ? _props$windowClass : '']: true,
            'vnode-window': true,
            'animating': state.windowState[i].animating
          }
        }, [vnode]);
      })])]);
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/tabsItems/tabsItems.tsx?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/tabsItems/tabsItems.sass?vue&type=style&index=0&lang=sass
var tabsItemsvue_type_style_index_0_lang_sass = __webpack_require__(1783);
;// CONCATENATED MODULE: ./src/components/tabsItems/tabsItems.sass?vue&type=style&index=0&lang=sass

;// CONCATENATED MODULE: ./src/components/tabsItems/tabsItems.vue



;

const tabsItems_exports_ = tabsItemsvue_type_script_lang_ts;

/* harmony default export */ const tabsItems = (tabsItems_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/tabItem/tabItem.tsx?vue&type=script&lang=ts


/* harmony default export */ const tabItemvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  props: {
    index: Number,
    current: Number
  },
  setup: (props, ctx) => () => {
    var _ctx$slots$default, _ctx$slots$default2, _ctx$slots;

    const VNodes = (_ctx$slots$default = (_ctx$slots$default2 = (_ctx$slots = ctx.slots).default) === null || _ctx$slots$default2 === void 0 ? void 0 : _ctx$slots$default2.call(_ctx$slots)) !== null && _ctx$slots$default !== void 0 ? _ctx$slots$default : [];
    return runtime_core_esm_bundler_createVNode("div", null, [VNodes.map(v => {
      if (v.props) {
        const pd = v.props;
        pd.active = props.index === props.current;
      }

      return v;
    })]);
  }
}));
;// CONCATENATED MODULE: ./src/components/tabItem/tabItem.tsx?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/components/tabItem/tabItem.vue



const tabItem_exports_ = tabItemvue_type_script_lang_ts;

/* harmony default export */ const tabItem = (tabItem_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/modal/modal.vue?vue&type=template&id=76591e7d&scoped=true&ts=true


const modalvue_type_template_id_76591e7d_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-76591e7d"), n = n(), _popScopeId(), n);

const modalvue_type_template_id_76591e7d_scoped_true_ts_true_hoisted_1 = {
  class: "modal-container flex-col ease-in-out duration-300"
};
function modalvue_type_template_id_76591e7d_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createBlock(Transition, {
    name: "m"
  }, {
    default: withCtx(() => [_ctx.state.visible ? (openBlock(), createElementBlock("div", {
      key: 0,
      class: "modal-component flex flex-center fixed inset-0 ease-in-out duration-300",
      style: normalizeStyle(_ctx.modalStyle),
      onClick: _cache[0] || (_cache[0] = withModifiers( //@ts-ignore
      (...args) => _ctx.handleCloseModal && _ctx.handleCloseModal(...args), ["self"]))
    }, [createBaseVNode("div", modalvue_type_template_id_76591e7d_scoped_true_ts_true_hoisted_1, [renderSlot(_ctx.$slots, "default", {}, undefined, true)])], 4)) : createCommentVNode("", true)]),
    _: 3
  });
}
;// CONCATENATED MODULE: ./src/components/modal/modal.vue?vue&type=template&id=76591e7d&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/modal/modal.ts?vue&type=script&lang=ts


/* harmony default export */ const modalvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'ModalComponent',
  props: {
    open: {
      type: Boolean,
      required: true
    },
    onClose: {
      type: null,
      required: true
    }
  },
  setup: props => {
    const state = reactivity_esm_bundler_reactive({
      visible: false,
      zIndex: 0,
      bodyOverflowXValue: '',
      bodyOverflowYValue: ''
    });

    const handleCloseModal = e => {
      if (e.target !== e.currentTarget) {
        return;
      }

      props.onClose();
      document.body.style.overflowX = state.bodyOverflowXValue;
      document.body.style.overflowY = state.bodyOverflowYValue;
    };

    watch(() => props.open, () => {
      if (props.open) {
        state.bodyOverflowXValue = document.body.style.overflowX || '';
        state.bodyOverflowYValue = document.body.style.overflowY || '';
        state.zIndex = zIndexService.gen(Z_INDEX_KEY.GENERAL);
      }

      state.visible = props.open;
    });
    const modalStyle = runtime_core_esm_bundler_computed(() => ({
      zIndex: state.zIndex
    }));
    return {
      state,
      modalStyle,
      handleCloseModal
    };
  }
}));
;// CONCATENATED MODULE: ./src/components/modal/modal.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/components/modal/modal.sass?vue&type=style&index=0&id=76591e7d&lang=sass&scoped=true
var modalvue_type_style_index_0_id_76591e7d_lang_sass_scoped_true = __webpack_require__(5660);
;// CONCATENATED MODULE: ./src/components/modal/modal.sass?vue&type=style&index=0&id=76591e7d&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/components/modal/modal.vue




;


const modal_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(modalvue_type_script_lang_ts, [['render',modalvue_type_template_id_76591e7d_scoped_true_ts_true_render],['__scopeId',"data-v-76591e7d"]])

/* harmony default export */ const modal = (modal_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/view/SettingPage/subpage/about/about.vue?vue&type=template&id=015a74ca&ts=true

const aboutvue_type_template_id_015a74ca_ts_true_hoisted_1 = {
  class: "flex-col items-start"
};

const aboutvue_type_template_id_015a74ca_ts_true_hoisted_2 = /*#__PURE__*/createStaticVNode("<h1 class=\"text-20 mt-1\">iciba划词翻译</h1><div class=\"text-14 mt-6\"><div> 修改设置会自动保存。其他已打开的标签页需要刷新后才会加载新设置。 </div><div class=\"mt-4\"> Greasyfork: <br><a target=\"_blank\" rel=\"noopener\" href=\"https://greasyfork.org/zh-CN/scripts/6303-iciba%E5%88%92%E8%AF%8D%E7%BF%BB%E8%AF%91\"> https://greasyfork.org/zh-CN/scripts/6303-iciba划词翻译 </a></div><div class=\"mt-4\"> Github: <br><a target=\"_blank\" rel=\"noopener\" href=\"https://github.com/Firefox-Pro-Coding/iciba-translate-userscript\"> https://github.com/Firefox-Pro-Coding/iciba-translate-userscript </a></div><div class=\"mt-4\"> Changelog: <br><a target=\"_blank\" rel=\"noopener\" href=\"https://github.com/Firefox-Pro-Coding/iciba-translate-userscript/releases\"> Github Release </a></div><div class=\"mt-4\"> 支持: <br> 如果您喜欢该项目,可以在 <a target=\"_blank\" rel=\"noopener\" href=\"https://github.com/Firefox-Pro-Coding/iciba-translate-userscript\">github repo</a> 点 star,或者把它推荐给其他人 </div><div class=\"mt-4\"> 遇到了任何问题或者错误,有其他建议?打开 <a target=\"_blank\" rel=\"noopener\" href=\"https://github.com/Firefox-Pro-Coding/iciba-translate-userscript\">github repo</a> 提交 <a target=\"_blank\" rel=\"noopener\" href=\"https://github.com/Firefox-Pro-Coding/iciba-translate-userscript/issues\">issue</a></div></div>", 2);

const aboutvue_type_template_id_015a74ca_ts_true_hoisted_4 = [aboutvue_type_template_id_015a74ca_ts_true_hoisted_2];
function aboutvue_type_template_id_015a74ca_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", aboutvue_type_template_id_015a74ca_ts_true_hoisted_1, aboutvue_type_template_id_015a74ca_ts_true_hoisted_4);
}
;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/about/about.vue?vue&type=template&id=015a74ca&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/SettingPage/subpage/about/about.ts?vue&type=script&lang=ts

/* harmony default export */ const aboutvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'AboutPage'
}));
;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/about/about.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/about/about.vue




;
const about_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(aboutvue_type_script_lang_ts, [['render',aboutvue_type_template_id_015a74ca_ts_true_render]])

/* harmony default export */ const about = (about_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/view/SettingPage/subpage/coreSetting/coreSetting.vue?vue&type=template&id=d6c1cc28&scoped=true&ts=true


const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_withScopeId = n => (pushScopeId("data-v-d6c1cc28"), n = n(), popScopeId(), n);

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_1 = {
  class: "flex-col items-start"
};

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_2 = /*#__PURE__*/createTextVNode(" 选中文字后显示小圆圈 (关闭后");

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_3 = /*#__PURE__*/coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("span", {
  class: "font-bold"
}, "仅能使用热键", -1));

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_4 = /*#__PURE__*/createTextVNode("查词) ");

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_5 = /*#__PURE__*/coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "flex-1 default-iciba-circle"
}, null, -1));

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_6 = /*#__PURE__*/coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mt-1 mb-0"
}, " 自定义小圆圈图标 ", -1));

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_7 = /*#__PURE__*/createTextVNode(" 选择文字时,只有 ");

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_8 = /*#__PURE__*/coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("span", {
  class: "font-bold"
}, "同时按住ctrl键", -1));

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_9 = /*#__PURE__*/createTextVNode(" 时才显示小圆圈 ");

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_10 = {
  class: "flex mt-6"
};
const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_11 = {
  class: "flex-col grow-0 pr-12"
};

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_12 = /*#__PURE__*/coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "text-grey-600 pr-6 mb-2"
}, "接口", -1));

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_13 = {
  class: "flex-col items-center grow-0"
};

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_14 = /*#__PURE__*/coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "text-grey-600 pr-6 mb-1"
}, "默认接口", -1));

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_15 = {
  class: "flex-col items-center grow-0"
};

const coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_16 = /*#__PURE__*/coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "text-grey-600 pr-6 mb-1"
}, "备选接口", -1));

const _hoisted_17 = {
  key: 0,
  class: "text-14 text-red-500 mt-2 mb-0"
};

const _hoisted_18 = /*#__PURE__*/coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mt-1 mb-0"
}, [/*#__PURE__*/createTextVNode(" 默认接口:左键点击小圆圈查词接口 "), /*#__PURE__*/createBaseVNode("br"), /*#__PURE__*/createTextVNode(" 备选接口:启用时,右键键点击小圆圈使用此查词接口 ")], -1));

const _hoisted_19 = {
  class: "text-14 text-grey-400"
};
const _hoisted_20 = {
  class: "flex self-stretch items-center mr-1 mt-6"
};
const _hoisted_21 = {
  class: "mr-4 text-grey-600"
};

const _hoisted_22 = /*#__PURE__*/coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mt-1 mb-0"
}, " 小圆圈大小(默认22px) ", -1));

const _hoisted_23 = {
  class: "flex mt-6"
};
const _hoisted_24 = {
  class: "flex-col justify-around flex-none"
};
const _hoisted_25 = {
  class: "mr-4 text-grey-600"
};
const _hoisted_26 = {
  class: "mr-4 text-grey-600"
};
const _hoisted_27 = {
  class: "flex-col justify-around flex-auto"
};

const _hoisted_28 = /*#__PURE__*/coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mt-1 mb-0"
}, [/*#__PURE__*/createTextVNode(" 小圆圈位置偏移(单位:px) "), /*#__PURE__*/createBaseVNode("br"), /*#__PURE__*/createTextVNode(" 选择文字时,小圆圈偏移鼠标指针右下方的位置。默认 x=7 y=7 ")], -1));

const _hoisted_29 = {
  class: "flex items-center mr-1 mt-6 self-stretch"
};
const _hoisted_30 = {
  class: "mr-4 text-grey-600"
};

const _hoisted_31 = /*#__PURE__*/coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mt-1 mb-0"
}, " 查词框宽度(单位:px)(默认300px) ", -1));

function coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_provider_sort = resolveComponent("provider-sort");

  const _component_i_checkbox_line = resolveComponent("i-checkbox-line");

  const _component_icon_radio_group = resolveComponent("icon-radio-group");

  const _component_i_radio = resolveComponent("i-radio");

  const _component_i_radio_group = resolveComponent("i-radio-group");

  const _component_foldable = resolveComponent("foldable");

  const _component_i_slider = resolveComponent("i-slider");

  return openBlock(), createElementBlock("div", coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_provider_sort), runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
    modelValue: _ctx.form.useIcibaCircle,
    "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => _ctx.form.useIcibaCircle = $event),
    label: "显示小圆圈"
  }, {
    default: withCtx(() => [coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_2, coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_3, coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_4]),
    _: 1
  }, 8, ["modelValue"]), runtime_core_esm_bundler_createVNode(_component_foldable, {
    fold: !_ctx.form.useIcibaCircle
  }, {
    default: withCtx(() => [runtime_core_esm_bundler_createVNode(_component_icon_radio_group, {
      class: "mt-6",
      modelValue: _ctx.form.icibaCircleIcon,
      "onUpdate:modelValue": _cache[1] || (_cache[1] = $event => _ctx.form.icibaCircleIcon = $event),
      icons: _ctx.icibaCircleIconOptions
    }, {
      [_ctx.defaultIconKey]: withCtx(() => [coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_5]),
      _: 2
    }, 1032, ["modelValue", "icons"]), coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_6, runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
      modelValue: _ctx.form.pressCtrlToShowCircle,
      "onUpdate:modelValue": _cache[2] || (_cache[2] = $event => _ctx.form.pressCtrlToShowCircle = $event),
      label: "仅按住 ctrl 时显示小圆圈"
    }, {
      default: withCtx(() => [coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_7, coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_8, coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_9]),
      _: 1
    }, 8, ["modelValue"]), runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
      modelValue: _ctx.form.mouseOverTranslate,
      "onUpdate:modelValue": _cache[3] || (_cache[3] = $event => _ctx.form.mouseOverTranslate = $event),
      label: "hover 小圆圈自动点击",
      text: "鼠标移到小圆圈上自动点击并打开查词窗口"
    }, null, 8, ["modelValue"]), runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
      modelValue: _ctx.form.icibaMainInputAutoFocus,
      "onUpdate:modelValue": _cache[4] || (_cache[4] = $event => _ctx.form.icibaMainInputAutoFocus = $event),
      label: "自动聚焦输入框",
      text: "点击小圆圈查词后,自动聚焦到输入框"
    }, null, 8, ["modelValue"]), runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
      modelValue: _ctx.form.icibaCircleRightClick,
      "onUpdate:modelValue": _cache[5] || (_cache[5] = $event => _ctx.form.icibaCircleRightClick = $event),
      label: "右击小圆圈使用备选接口",
      text: "右击小圆圈,使用备选接口查词"
    }, null, 8, ["modelValue"]), createBaseVNode("div", coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_10, [createBaseVNode("div", coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_11, [coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_12, (openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.providerOptions, n => {
      return openBlock(), createElementBlock("div", {
        class: "option-item text-16 text-grey-600 mb-2",
        key: n.key
      }, toDisplayString(n.label), 1);
    }), 128))]), createBaseVNode("div", coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_13, [coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_14, runtime_core_esm_bundler_createVNode(_component_i_radio_group, {
      class: "mt-0 grow-0",
      modelValue: _ctx.form.defaultProvider,
      "onUpdate:modelValue": _cache[6] || (_cache[6] = $event => _ctx.form.defaultProvider = $event)
    }, {
      default: withCtx(() => [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.providerOptions, n => {
        return openBlock(), createBlock(_component_i_radio, {
          key: n.key,
          label: "",
          value: n.key
        }, null, 8, ["value"]);
      }), 128))]),
      _: 1
    }, 8, ["modelValue"])]), createBaseVNode("div", coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_15, [coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_hoisted_16, runtime_core_esm_bundler_createVNode(_component_i_radio_group, {
      class: "mt-0",
      modelValue: _ctx.form.icibaCircleRightClickProvider,
      "onUpdate:modelValue": _cache[7] || (_cache[7] = $event => _ctx.form.icibaCircleRightClickProvider = $event)
    }, {
      default: withCtx(() => [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.providerOptions, n => {
        return openBlock(), createBlock(_component_i_radio, {
          key: n.key,
          label: "",
          value: n.key
        }, null, 8, ["value"]);
      }), 128))]),
      _: 1
    }, 8, ["modelValue"])])]), _ctx.form.defaultProvider === _ctx.form.icibaCircleRightClickProvider ? (openBlock(), createElementBlock("p", _hoisted_17, " 默认接口和备选接口请选择不同的选项 ")) : createCommentVNode("", true), _hoisted_18, runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
      modelValue: _ctx.form.icibaCircleNoCJK,
      "onUpdate:modelValue": _cache[8] || (_cache[8] = $event => _ctx.form.icibaCircleNoCJK = $event),
      label: "非英语(拉丁)字符不显示小圆圈",
      text: "划去文字包含中文、日文、韩文等字符时不显示小圆圈"
    }, null, 8, ["modelValue"])]),
    _: 1
  }, 8, ["fold"]), runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
    modelValue: _ctx.form.history,
    "onUpdate:modelValue": _cache[9] || (_cache[9] = $event => _ctx.form.history = $event),
    label: "显示历史记录按钮",
    text: "在设置按钮旁边显示历史查词记录按钮"
  }, null, 8, ["modelValue"]), runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
    modelValue: _ctx.form.pressCtrlToDrag,
    "onUpdate:modelValue": _cache[10] || (_cache[10] = $event => _ctx.form.pressCtrlToDrag = $event),
    label: "按住 Ctrl 拖拽查词框",
    text: "按住 Ctrl 键可拖拽移动查词框位置"
  }, null, 8, ["modelValue"]), runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
    modelValue: _ctx.form.showPin,
    "onUpdate:modelValue": _cache[11] || (_cache[11] = $event => _ctx.form.showPin = $event),
    label: "启用固定图钉",
    text: "显示固定图钉,可固定查词框使其不自动关闭"
  }, null, 8, ["modelValue"]), runtime_core_esm_bundler_createVNode(_component_foldable, {
    fold: !_ctx.form.useIcibaCircle
  }, {
    default: withCtx(() => [runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
      modelValue: _ctx.form.selectionMaxLengthCut,
      "onUpdate:modelValue": _cache[12] || (_cache[12] = $event => _ctx.form.selectionMaxLengthCut = $event),
      label: "限制最大查词长度",
      text: "当选择文字超过长度时不显示小圆圈"
    }, null, 8, ["modelValue"]), runtime_core_esm_bundler_createVNode(_component_foldable, {
      fold: !_ctx.form.selectionMaxLengthCut
    }, {
      default: withCtx(() => [runtime_core_esm_bundler_createVNode(_component_i_slider, {
        class: "mr-1 mt-2px self-stretch",
        step: 10,
        min: 50,
        max: 500,
        modelValue: _ctx.form.selectionMaxLength,
        "onUpdate:modelValue": _cache[13] || (_cache[13] = $event => _ctx.form.selectionMaxLength = $event)
      }, null, 8, ["modelValue"]), createBaseVNode("p", _hoisted_19, " 最大查词长度: " + toDisplayString(_ctx.form.selectionMaxLength) + " (默认值: 150) ", 1)]),
      _: 1
    }, 8, ["fold"]), createBaseVNode("div", _hoisted_20, [createBaseVNode("div", _hoisted_21, toDisplayString(_ctx.form.icibaCircleSize) + "px", 1), runtime_core_esm_bundler_createVNode(_component_i_slider, {
      class: "grow",
      min: 10,
      max: 30,
      step: 1,
      modelValue: _ctx.form.icibaCircleSize,
      "onUpdate:modelValue": _cache[14] || (_cache[14] = $event => _ctx.form.icibaCircleSize = $event),
      "thumb-label": ""
    }, null, 8, ["modelValue"])]), _hoisted_22, createBaseVNode("div", _hoisted_23, [createBaseVNode("div", _hoisted_24, [createBaseVNode("div", _hoisted_25, "x: " + toDisplayString(_ctx.form.icibaCircleOffsetX), 1), createBaseVNode("div", _hoisted_26, "y: " + toDisplayString(_ctx.form.icibaCircleOffsetY), 1)]), createBaseVNode("div", _hoisted_27, [runtime_core_esm_bundler_createVNode(_component_i_slider, {
      class: "grow",
      min: 0,
      max: 30,
      modelValue: _ctx.form.icibaCircleOffsetX,
      "onUpdate:modelValue": _cache[15] || (_cache[15] = $event => _ctx.form.icibaCircleOffsetX = $event),
      "thumb-label": ""
    }, null, 8, ["modelValue"]), runtime_core_esm_bundler_createVNode(_component_i_slider, {
      class: "grow",
      min: 0,
      max: 30,
      modelValue: _ctx.form.icibaCircleOffsetY,
      "onUpdate:modelValue": _cache[16] || (_cache[16] = $event => _ctx.form.icibaCircleOffsetY = $event),
      "thumb-label": ""
    }, null, 8, ["modelValue"])])]), _hoisted_28]),
    _: 1
  }, 8, ["fold"]), createBaseVNode("div", _hoisted_29, [createBaseVNode("div", _hoisted_30, toDisplayString(_ctx.form.icibaMainWidth) + "px", 1), runtime_core_esm_bundler_createVNode(_component_i_slider, {
    class: "grow",
    min: 200,
    max: 500,
    step: 10,
    modelValue: _ctx.form.icibaMainWidth,
    "onUpdate:modelValue": _cache[17] || (_cache[17] = $event => _ctx.form.icibaMainWidth = $event),
    "thumb-label": ""
  }, null, 8, ["modelValue"])]), _hoisted_31]);
}
;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/coreSetting/coreSetting.vue?vue&type=template&id=d6c1cc28&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/view/SettingPage/subpage/coreSetting/providerSort/providerSort.vue?vue&type=template&id=be105b76&scoped=true&ts=true


const providerSortvue_type_template_id_be105b76_scoped_true_ts_true_withScopeId = n => (pushScopeId("data-v-be105b76"), n = n(), popScopeId(), n);

const providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_1 = ["onMousedown", "onContextmenu"];
const providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_2 = {
  class: "mask-box absolute ease-in-out duration-200"
};
const providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_3 = {
  key: 0,
  class: "icon-box absolute rounded-3px flex flex-center"
};
const providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_4 = {
  class: "text-14 text-grey-400 mt-6px mb-0"
};

const providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_5 = /*#__PURE__*/createTextVNode(" 拖拽调整顺序,右键切换显示隐藏");

const providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_6 = /*#__PURE__*/providerSortvue_type_template_id_be105b76_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("br", null, null, -1));

const providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_7 = /*#__PURE__*/createTextVNode(" 点击 ");

function providerSortvue_type_template_id_be105b76_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  return openBlock(), createElementBlock("div", {
    class: "icon-box-wrapper relative",
    ref: _ctx.refs.container
  }, [runtime_core_esm_bundler_createVNode(TransitionGroup, {
    class: "icon-box-container flex ease-linear",
    name: "icon",
    tag: "div"
  }, {
    default: withCtx(() => [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.state.list, iconItem => {
      return openBlock(), createElementBlock("div", {
        class: normalizeClass(["icon-item relative select-none", {
          mask: iconItem.mask
        }]),
        style: normalizeStyle({
          zIndex: iconItem.z
        }),
        onDragstart: _cache[0] || (_cache[0] = withModifiers(() => {}, ["prevent"])),
        onMousedown: withModifiers($event => _ctx.handleDragStart(iconItem), ["left"]),
        onContextmenu: withModifiers($event => _ctx.handleToggleVisibility(iconItem.id), ["right", "prevent"]),
        key: iconItem.id
      }, [runtime_core_esm_bundler_createVNode(Transition, {
        name: "mask"
      }, {
        default: withCtx(() => [withDirectives(createBaseVNode("div", providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_2, null, 512), [[vShow, iconItem.mask]])]),
        _: 2
      }, 1024), !iconItem.mask || true ? (openBlock(), createElementBlock("div", providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_3, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
        class: normalizeClass(["icon", {
          inactive: !_ctx.isProviderVisible(iconItem.id)
        }]),
        size: "32",
        svg: iconItem.icon
      }, null, 8, ["class", "svg"])])) : 0], 46, providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_1);
    }), 128))]),
    _: 1
  }), createBaseVNode("p", providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_4, [providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_5, providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_6, providerSortvue_type_template_id_be105b76_scoped_true_ts_true_hoisted_7, createBaseVNode("span", {
    class: "cursor-pointer hover:text-grey-600 hover:underline",
    onClick: _cache[1] || (_cache[1] = //@ts-ignore
    (...args) => _ctx.handleReset && _ctx.handleReset(...args))
  }, " 恢复默认排序 ")])], 512);
}
;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/coreSetting/providerSort/providerSort.vue?vue&type=template&id=be105b76&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/SettingPage/subpage/coreSetting/providerSort/providerSort.ts?vue&type=script&lang=ts




/* harmony default export */ const providerSortvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'ProviderSort',
  setup: () => {
    const refs = {
      container: reactivity_esm_bundler_ref()
    };

    const loadList = () => service_store_store.core.providerOrder.map(id => {
      const provider = providers.find(p => p.id === id);
      return {
        id,
        icon: getIcon(provider),
        mask: false,
        z: 0
      };
    });

    const state = reactivity_esm_bundler_reactive({
      list: loadList()
    });
    const drag = {
      item: null,
      rects: [],
      cIndex: 0
    };
    const threshold = 1;

    const calcCenter = () => {
      if (!refs.container.value) {
        return;
      }

      drag.rects = Array.from(refs.container.value.firstElementChild.children).map(v => {
        const b = v.getBoundingClientRect();
        return {
          left: b.left + (1 - threshold) * b.width * 0.5,
          right: b.right - (1 - threshold) * b.width * 0.5,
          width: b.width
        };
      });
    };

    const handleDragStart = icon => {
      icon.mask = true;
      drag.item = icon;
      state.list.forEach(v => {
        v.z = 1;
      });
      icon.z = 3;
      calcCenter();
      drag.cIndex = state.list.indexOf(icon);
    };

    const handleMouseMove = e => {
      if (!drag.item) {
        return;
      }

      const cX = e.clientX;
      const cIndex = drag.cIndex;
      const c = drag.rects;
      let newIndex = 0;

      for (; newIndex < c.length; newIndex += 1) {
        if (newIndex === cIndex) {
          // eslint-disable-next-line no-continue
          continue;
        }

        const item = c[newIndex];

        if (newIndex < cIndex) {
          if (item.right > cX) {
            break;
          }
        } else if (item.left > cX) {
          break;
        }
      }

      if (newIndex > cIndex) {
        newIndex -= 1;
      }

      if (newIndex !== cIndex) {
        const item = state.list.splice(cIndex, 1);
        state.list.splice(newIndex, 0, item[0]);
        drag.cIndex = newIndex;
      }
    };

    const handleDragEnd = () => {
      if (!drag.item) {
        return;
      }

      drag.item.mask = false;
      drag.item = null;
      service_store_store.core.providerOrder = state.list.map(v => v.id);
    };

    const handleToggleVisibility = key => {
      const provider = providers.find(p => p.id === key);
      provider.store.display = !provider.store.display;
    };

    const handleReset = () => {
      service_store_store.core.providerOrder = [...core_storeType.defaultData.providerOrder];
      state.list = loadList();
    };

    const isProviderVisible = key => {
      const provider = providers.find(p => p.id === key);
      return provider.store.display;
    };

    runtime_core_esm_bundler_onMounted(() => {
      window.addEventListener('mousemove', handleMouseMove);
      window.addEventListener('mouseup', handleDragEnd);
    });
    runtime_core_esm_bundler_onUnmounted(() => {
      window.removeEventListener('mousemove', handleMouseMove);
      window.removeEventListener('mouseup', handleDragEnd);
    });
    return {
      state,
      refs,
      handleDragStart,
      handleToggleVisibility,
      handleReset,
      isProviderVisible
    };
  }
}));
;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/coreSetting/providerSort/providerSort.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/SettingPage/subpage/coreSetting/providerSort/providerSort.sass?vue&type=style&index=0&id=be105b76&lang=sass&scoped=true
var providerSortvue_type_style_index_0_id_be105b76_lang_sass_scoped_true = __webpack_require__(3922);
;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/coreSetting/providerSort/providerSort.sass?vue&type=style&index=0&id=be105b76&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/coreSetting/providerSort/providerSort.vue




;


const providerSort_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(providerSortvue_type_script_lang_ts, [['render',providerSortvue_type_template_id_be105b76_scoped_true_ts_true_render],['__scopeId',"data-v-be105b76"]])

/* harmony default export */ const providerSort = (providerSort_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/SettingPage/subpage/coreSetting/coreSetting.ts?vue&type=script&lang=ts








const icibaCircleIconOptions = Object.entries(ICIBA_CIRCLE_ICON_MAP).map(([k, v]) => ({
  icon: v,
  key: k
}));
const providerOptions = providers.map(p => ({
  label: p.label,
  key: p.id
}));
/* harmony default export */ const coreSettingvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'CoreSettings',
  components: {
    ProviderSort: providerSort,
    IconRadioGroup: IconRadioGroup,
    Foldable: Foldable_Foldable
  },
  props: {
    active: Boolean
  },
  setup: props => {
    const state = reactivity_esm_bundler_reactive({
      keys: [],
      setKeys: []
    });
    const form = service_store_store.core;
    let reset = null;
    watch(() => [form.defaultProvider, form.icibaCircleRightClickProvider], (n, o) => {
      reset = o && n[0] === n[1] ? o : null;
    });

    const doReset = () => {
      if (props.active && reset) {
        form.defaultProvider = reset[0];
        form.icibaCircleRightClickProvider = reset[1];
      }
    };

    const normalizeKey = key => key >= 'a' && key <= 'z' ? key.toUpperCase() : key;

    const handleKeyDown = e => {
      const key = normalizeKey(e.key);

      if (!e.repeat && !keys_default()(state).includes(key)) {
        keys_default()(state).push(key);
      }

      state.setKeys = [...keys_default()(state)];
    };

    const handleKeyUp = e => {
      const key = normalizeKey(e.key);

      const index = keys_default()(state).indexOf(key);

      if (index !== -1) {
        keys_default()(state).splice(index, 1);
      }
    };

    watch(() => props.active, doReset);
    runtime_core_esm_bundler_onUnmounted(doReset);
    const input = runtime_core_esm_bundler_computed(() => {
      const keys = state.setKeys;
      const hasCtrl = keys.includes('Control');
      const hasAlt = keys.includes('Alt');
      const hasShift = keys.includes('Shift');
      const inputs = [hasCtrl && 'Ctrl', hasAlt && 'Alt', hasShift && 'Shift', ...keys.filter(v => !['Control', 'Alt', 'Shift'].includes(v)).map(v => v.toUpperCase())].filter(Boolean);
      return inputs.join(' + ');
    });
    runtime_core_esm_bundler_onMounted(() => {
      window.addEventListener('keyup', handleKeyUp);
    });
    runtime_core_esm_bundler_onUnmounted(() => {
      window.removeEventListener('keyup', handleKeyUp);
    });
    return {
      state,
      input,
      form,
      defaultIconKey: ICIBA_CIRCLE_ICON.DEFAULT,
      icibaCircleIconOptions,
      providerOptions,
      handleKeyDown,
      handleKeyUp
    };
  }
}));
;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/coreSetting/coreSetting.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/SettingPage/subpage/coreSetting/coreSetting.sass?vue&type=style&index=0&id=d6c1cc28&lang=sass&scoped=true
var coreSettingvue_type_style_index_0_id_d6c1cc28_lang_sass_scoped_true = __webpack_require__(7981);
;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/coreSetting/coreSetting.sass?vue&type=style&index=0&id=d6c1cc28&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/coreSetting/coreSetting.vue




;


const coreSetting_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(coreSettingvue_type_script_lang_ts, [['render',coreSettingvue_type_template_id_d6c1cc28_scoped_true_ts_true_render],['__scopeId',"data-v-d6c1cc28"]])

/* harmony default export */ const coreSetting = (coreSetting_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/view/SettingPage/subpage/hotKey/hotKey.vue?vue&type=template&id=620a04da&ts=true

const hotKeyvue_type_template_id_620a04da_ts_true_hoisted_1 = {
  class: "flex-col items-start"
};

const hotKeyvue_type_template_id_620a04da_ts_true_hoisted_2 = /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mb-0"
}, " 热键显示查词框 ", -1);

const hotKeyvue_type_template_id_620a04da_ts_true_hoisted_3 = /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mt-8 mb-0"
}, " 快速查词热键(选中文本 或在输入框 快速查词) ", -1);

const hotKeyvue_type_template_id_620a04da_ts_true_hoisted_4 = {
  class: ""
};

const hotKeyvue_type_template_id_620a04da_ts_true_hoisted_5 = /*#__PURE__*/createTextVNode(" 使用 快速查词热键后,自动聚焦到输入框 ");

const hotKeyvue_type_template_id_620a04da_ts_true_hoisted_6 = /*#__PURE__*/createBaseVNode("p", {
  class: "text-14 text-grey-400 mt-6 mb-0"
}, " tips: ", -1);

function hotKeyvue_type_template_id_620a04da_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_checkbox_line = resolveComponent("i-checkbox-line");

  const _component_i_hotkey_input = resolveComponent("i-hotkey-input");

  const _component_foldable = resolveComponent("foldable");

  const _component_i_checkbox = resolveComponent("i-checkbox");

  return openBlock(), createElementBlock("div", hotKeyvue_type_template_id_620a04da_ts_true_hoisted_1, [runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
    class: "mt-1",
    nomt: "",
    modelValue: _ctx.core.useHotkeyShowUp,
    "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => _ctx.core.useHotkeyShowUp = $event),
    label: "呼出查词框热键",
    text: ""
  }, null, 8, ["modelValue"]), runtime_core_esm_bundler_createVNode(_component_foldable, {
    fold: !_ctx.core.useHotkeyShowUp
  }, {
    default: withCtx(() => [runtime_core_esm_bundler_createVNode(_component_i_hotkey_input, {
      class: "my-1",
      modelValue: _ctx.core.showUpHotkey,
      "onUpdate:modelValue": _cache[1] || (_cache[1] = $event => _ctx.core.showUpHotkey = $event)
    }, null, 8, ["modelValue"])]),
    _: 1
  }, 8, ["fold"]), hotKeyvue_type_template_id_620a04da_ts_true_hoisted_2, runtime_core_esm_bundler_createVNode(_component_foldable, {
    fold: !_ctx.core.useHotkeyShowUp
  }, {
    default: withCtx(() => [runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
      modelValue: _ctx.core.hotkeyIcibaMainInputAutoFocus,
      "onUpdate:modelValue": _cache[2] || (_cache[2] = $event => _ctx.core.hotkeyIcibaMainInputAutoFocus = $event),
      label: "呼出查词框时聚焦输入",
      text: "呼出查词框 后,聚焦到输入框"
    }, null, 8, ["modelValue"])]),
    _: 1
  }, 8, ["fold"]), hotKeyvue_type_template_id_620a04da_ts_true_hoisted_3, createBaseVNode("div", hotKeyvue_type_template_id_620a04da_ts_true_hoisted_4, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.providers, provider => {
    return openBlock(), createElementBlock("div", {
      class: "mt-2",
      key: provider.id
    }, [runtime_core_esm_bundler_createVNode(_component_i_checkbox, {
      modelValue: provider.store.enableHotkey,
      "onUpdate:modelValue": $event => provider.store.enableHotkey = $event,
      label: provider.label
    }, null, 8, ["modelValue", "onUpdate:modelValue", "label"]), runtime_core_esm_bundler_createVNode(_component_foldable, {
      fold: !provider.store.enableHotkey
    }, {
      default: withCtx(() => [runtime_core_esm_bundler_createVNode(_component_i_hotkey_input, {
        class: "my-1",
        modelValue: provider.store.hotkey,
        "onUpdate:modelValue": $event => provider.store.hotkey = $event
      }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
      _: 2
    }, 1032, ["fold"])]);
  }), 128))]), runtime_core_esm_bundler_createVNode(_component_i_checkbox_line, {
    class: "mt-6",
    nomt: "",
    modelValue: _ctx.core.providerHotkeyAutoFocus,
    "onUpdate:modelValue": _cache[3] || (_cache[3] = $event => _ctx.core.providerHotkeyAutoFocus = $event),
    label: "快速查词热键聚焦输入框"
  }, {
    default: withCtx(() => [hotKeyvue_type_template_id_620a04da_ts_true_hoisted_5]),
    _: 1
  }, 8, ["modelValue"]), hotKeyvue_type_template_id_620a04da_ts_true_hoisted_6, (openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(['选中文字 按下热键查词。', '或在输入框输入文字,按下热键使用对应的接口查词。', '至少指定一种能打开查词框的方式(小圆圈或热键),否则你会无法打开查词框。', '请避免使用和浏览器或操作系统产生冲突的热键。'], (line, index) => {
    return createBaseVNode("p", {
      class: "text-14 text-grey-400 mt-1 mb-0",
      key: index
    }, toDisplayString(index + 1) + ". " + toDisplayString(line), 1);
  }), 64))]);
}
;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/hotKey/hotKey.vue?vue&type=template&id=620a04da&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/SettingPage/subpage/hotKey/hotKey.ts?vue&type=script&lang=ts




/* harmony default export */ const hotKeyvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'HotKeySetting',
  components: {
    Foldable: Foldable_Foldable
  },
  props: {
    active: Boolean
  },
  setup: () => ({
    core: service_store_store.core,
    providers: providers
  })
}));
;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/hotKey/hotKey.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/view/SettingPage/subpage/hotKey/hotKey.vue




;
const hotKey_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(hotKeyvue_type_script_lang_ts, [['render',hotKeyvue_type_template_id_620a04da_ts_true_render]])

/* harmony default export */ const hotKey = (hotKey_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/SettingPage/SettingPage.ts?vue&type=script&lang=ts










 // import Iciba from './subpage/iciba/iciba.vue'
// import GoogleDict from './subpage/googleDict/googleDict.vue'
// import GoogleTranslate from './subpage/googleTranslate/googleTranslate.vue'
// import BaiduTranslate from './subpage/baiduTranslate/baiduTranslate.vue'
// import SougouTranslate from './subpage/sougouTranslate/sougouTranslate.vue'
// import UrbanDictionary from './subpage/urbanDictionary/urbanDictionary.vue'
// import BingTranslate from './subpage/bingTranslate/bingTranslate.vue'
// import Vocabulary from './subpage/vocabulary/vocabulary.vue'

/* harmony default export */ const SettingPagevue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'SettingPage',
  components: {
    ITabs: tabs,
    ITab: tab,
    ITabsItems: tabsItems,
    ITabItem: tabItem,
    ModalComponent: modal,
    About: about,
    CoreSetting: coreSetting,
    HotKey: hotKey // Iciba,
    // GoogleDict,
    // GoogleTranslate,
    // BaiduTranslate,
    // SougouTranslate,
    // UrbanDictionary,
    // BingTranslate,
    // Vocabulary,

  },
  setup: () => {
    const state = reactivity_esm_bundler_reactive({
      tab: 1
    });

    const handleCloseSetting = () => {
      viewService.closeSettings();
    };

    const visible = runtime_core_esm_bundler_computed(() => viewService.state.setting);
    return {
      state,
      visible,
      providersPage: providers.map(v => v.settingView),
      providersLabel: providers.map(v => v.label),
      handleCloseSetting
    };
  }
}));
;// CONCATENATED MODULE: ./src/view/SettingPage/SettingPage.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/SettingPage/SettingPage.sass?vue&type=style&index=0&id=52c940b4&lang=sass&scoped=true
var SettingPagevue_type_style_index_0_id_52c940b4_lang_sass_scoped_true = __webpack_require__(7908);
;// CONCATENATED MODULE: ./src/view/SettingPage/SettingPage.sass?vue&type=style&index=0&id=52c940b4&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/view/SettingPage/SettingPage.vue




;


const SettingPage_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(SettingPagevue_type_script_lang_ts, [['render',SettingPagevue_type_template_id_52c940b4_scoped_true_ts_true_render],['__scopeId',"data-v-52c940b4"]])

/* harmony default export */ const SettingPage = (SettingPage_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/view/HistoryModal/HistoryModal.vue?vue&type=template&id=2d428882&scoped=true&ts=true


const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_withScopeId = n => (pushScopeId("data-v-2d428882"), n = n(), popScopeId(), n);

const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_1 = {
  class: "history-window flex-col bg-white shadow-8"
};

const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_2 = /*#__PURE__*/HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "px-4 py-3 border-b border-grey-300 font-medium"
}, " 查词历史记录 ", -1));

const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_3 = {
  class: "flex-col flex-1"
};
const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_4 = {
  key: 0,
  class: "px-4 py-4 text-grey-400 text-14"
};
const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_5 = {
  key: 1,
  class: "pt-2"
};
const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_6 = {
  class: "flex items-center flex-1 w-0"
};
const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_7 = {
  class: "text-grey-500 w-6 flex-none"
};
const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_8 = ["onClick"];
const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_9 = {
  class: "flex items-center text-gray-800 text-16 mt-2px truncate"
};
const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_10 = {
  class: "bg-grey-200 group-hover:bg-grey-300 px-2 rounded-4 truncate leading-relaxed"
};
const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_11 = {
  class: "flex items-center flex-none text-grey-400 text-14 ml-1"
};
const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_12 = {
  class: "ml-2"
};
const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_13 = {
  class: "ml-2"
};
const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_14 = ["title"];

const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_15 = /*#__PURE__*/HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "flex-1 w-full"
}, null, -1));

const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_16 = {
  class: "text-grey-400 text-14 p-4"
};

const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_17 = /*#__PURE__*/createTextVNode(" 这里保存了最近的50条查词记录。 ");

const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_18 = /*#__PURE__*/HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", null, " 10分钟内相同的记录会合并为一条。 ", -1));

const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_19 = {
  key: 0
};
const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_20 = {
  key: 0
};
const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_21 = {
  key: 1
};

const HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_22 = /*#__PURE__*/createTextVNode(" 确定要清空历史记录? ");

function HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  const _component_Scrollable = resolveComponent("Scrollable");

  const _component_modal_component = resolveComponent("modal-component");

  return openBlock(), createBlock(_component_modal_component, {
    open: _ctx.visible,
    onClose: _ctx.handleClose
  }, {
    default: withCtx(() => [createBaseVNode("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_1, [HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_2, runtime_core_esm_bundler_createVNode(_component_Scrollable, {
      class: "flex-1 h-0"
    }, {
      default: withCtx(({
        scrollBar
      }) => [createBaseVNode("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_3, [!_ctx.list.length ? (openBlock(), createElementBlock("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_4, " 暂无查词历史记录 ")) : createCommentVNode("", true), !!_ctx.list.length ? (openBlock(), createElementBlock("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_5)) : createCommentVNode("", true), (openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.list, (item, index) => {
        return openBlock(), createElementBlock("div", {
          class: normalizeClass(["group flex justify-between items-center mx-2 my-px px-3 py-1 rounded-6 hover:bg-grey-100", {
            'mr-4': scrollBar
          }]),
          key: index
        }, [createBaseVNode("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_6, [createBaseVNode("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_7, toDisplayString(index + 1) + ". ", 1), createBaseVNode("div", {
          class: "hover:bg-grey-300 p-2 rounded-4 mr-2 ml-1 cursor-pointer",
          onClick: $event => _ctx.handleItemClick($event, item)
        }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
          class: "flex-none",
          svg: _ctx.getIcon(item.provider),
          size: 24
        }, null, 8, ["svg"])], 8, HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_8), createBaseVNode("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_9, [createBaseVNode("span", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_10, toDisplayString(item.word), 1)])]), createBaseVNode("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_11, [createBaseVNode("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_12, toDisplayString(_ctx.getProviderName(item.provider)), 1), createBaseVNode("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_13, [createBaseVNode("span", {
          title: _ctx.formatTimeFull(item.time)
        }, toDisplayString(_ctx.formatTime(item.time)), 9, HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_14)])])], 2);
      }), 128)), HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_15, createBaseVNode("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_16, [createBaseVNode("div", null, [HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_17, createBaseVNode("button", {
        class: "outline-none text-primary hover:underline",
        onClick: _cache[0] || (_cache[0] = //@ts-ignore
        (...args) => _ctx.handleExport && _ctx.handleExport(...args))
      }, " 导出到控制台 ")]), HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_18, !!_ctx.list.length ? (openBlock(), createElementBlock("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_19, [!_ctx.state.showClearConfirm ? (openBlock(), createElementBlock("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_20, [createBaseVNode("button", {
        class: "outline-none text-primary hover:underline",
        onClick: _cache[1] || (_cache[1] = //@ts-ignore
        (...args) => _ctx.handleClear && _ctx.handleClear(...args))
      }, " 清空历史记录 ")])) : createCommentVNode("", true), _ctx.state.showClearConfirm ? (openBlock(), createElementBlock("div", HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_21, [HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_hoisted_22, createBaseVNode("button", {
        class: "outline-none text-primary hover:underline",
        onClick: _cache[2] || (_cache[2] = //@ts-ignore
        (...args) => _ctx.handleClearCancel && _ctx.handleClearCancel(...args))
      }, " 取消 "), createBaseVNode("button", {
        class: "outline-none text-primary hover:underline ml-2",
        onClick: _cache[3] || (_cache[3] = //@ts-ignore
        (...args) => _ctx.handleClearConfirm && _ctx.handleClearConfirm(...args))
      }, " 确定 ")])) : createCommentVNode("", true)])) : createCommentVNode("", true)])])]),
      _: 1
    })])]),
    _: 1
  }, 8, ["open", "onClose"]);
}
;// CONCATENATED MODULE: ./src/view/HistoryModal/HistoryModal.vue?vue&type=template&id=2d428882&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/service/toast/Toast/index.vue?vue&type=template&id=22ad7e37&scoped=true&ts=true


const Toastvue_type_template_id_22ad7e37_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-22ad7e37"), n = n(), _popScopeId(), n);

const Toastvue_type_template_id_22ad7e37_scoped_true_ts_true_hoisted_1 = {
  key: 0,
  class: "toast-box fixed flex flex-center text-white ease-in-out duration-300"
};
function Toastvue_type_template_id_22ad7e37_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createBlock(Transition, {
    name: "t"
  }, {
    default: withCtx(() => [_ctx.state.visible ? (openBlock(), createElementBlock("div", Toastvue_type_template_id_22ad7e37_scoped_true_ts_true_hoisted_1, toDisplayString(_ctx.props.text), 1)) : createCommentVNode("", true)]),
    _: 1
  });
}
;// CONCATENATED MODULE: ./src/service/toast/Toast/index.vue?vue&type=template&id=22ad7e37&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/service/toast/Toast/index.ts?vue&type=script&lang=ts

const Toast = runtime_core_esm_bundler_defineComponent({
  props: {
    text: {
      type: String,
      default: ''
    },
    timeout: {
      type: Number,
      default: 3000
    },
    destroy: {
      type: Function,
      required: true
    }
  },
  setup: props => {
    const state = reactivity_esm_bundler_reactive({
      visible: false
    });
    runtime_core_esm_bundler_onMounted(() => {
      state.visible = true;
      setTimeout(() => {
        state.visible = false;
        setTimeout(() => {
          props.destroy();
        }, 3000);
      }, props.timeout);
    });
    return {
      state,
      props
    };
  }
});
/* harmony default export */ const Toastvue_type_script_lang_ts = (Toast);
;// CONCATENATED MODULE: ./src/service/toast/Toast/index.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/service/toast/Toast/index.sass?vue&type=style&index=0&id=22ad7e37&lang=sass&scoped=true
var Toastvue_type_style_index_0_id_22ad7e37_lang_sass_scoped_true = __webpack_require__(1853);
;// CONCATENATED MODULE: ./src/service/toast/Toast/index.sass?vue&type=style&index=0&id=22ad7e37&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/service/toast/Toast/index.vue




;


const Toast_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(Toastvue_type_script_lang_ts, [['render',Toastvue_type_template_id_22ad7e37_scoped_true_ts_true_render],['__scopeId',"data-v-22ad7e37"]])

/* harmony default export */ const toast_Toast = (Toast_exports_);
;// CONCATENATED MODULE: ./src/service/toast/index.tsx





const toast_getId = useIncrement();
const toast_state = reactivity_esm_bundler_reactive({
  toasts: []
});
const ToastHack = toast_Toast;

const toast_init = () => {
  const ToastContainer = runtime_core_esm_bundler_defineComponent({
    setup: () => () => runtime_core_esm_bundler_createVNode("div", {
      "class": "toast-container"
    }, [toast_state.toasts.map(item => runtime_core_esm_bundler_createVNode(ToastHack, {
      "key": item.id,
      "text": item.text,
      "timeout": item.timeout,
      "destroy": item.destroy
    }, null))])
  });
  const toastContainer = createApp({
    render: () => h(ToastContainer)
  });
  const div = document.createElement('div');
  toastContainer.mount(div);
  shadowRoot.appendChild(div);
};

const toast = (params, timeout) => {
  var _params$timeout;

  const t = typeof params === 'string' ? timeout !== null && timeout !== void 0 ? timeout : 3000 : (_params$timeout = params.timeout) !== null && _params$timeout !== void 0 ? _params$timeout : 3000;
  const text = typeof params === 'string' ? params : params.text;
  const toastItem = {
    id: toast_getId(),
    timeout: t,
    text,
    destroy: () => {
      const index = toast_state.toasts.indexOf(toastItem);
      toast_state.toasts.splice(index, 1);
    }
  };
  toast_state.toasts.push(toastItem);
};
toast_init();
const toastService = {
  state: toast_state,
  toast
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/HistoryModal/HistoryModal.ts?vue&type=script&lang=ts








/* harmony default export */ const HistoryModalvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'HistoryModal',
  components: {
    ModalComponent: modal,
    Scrollable: Scrollable
  },
  setup: () => {
    const state = reactivity_esm_bundler_reactive({
      showClearConfirm: false
    });

    const handleClose = () => {
      viewService.closeHistory();
    };

    const handleExport = async () => {
      await historyService.loadHistory(); // eslint-disable-next-line no-console

      console.log((__webpack_require__(8334)/* .stringify */ .P)(historyService.state.list, null, 2));
      toastService.toast({
        text: '已导出到控制台(F12查看)'
      });
    };

    const handleItemClick = (e, item) => {
      bus.emit({
        type: EVENTS.TRANSLATE,
        mouseEvent: e,
        word: item.word,
        param: {
          provider: item.provider
        }
      });
    };

    const handleClear = () => {
      state.showClearConfirm = true;
    };

    const handleClearCancel = () => {
      state.showClearConfirm = false;
    };

    const handleClearConfirm = () => {
      state.showClearConfirm = false;
      historyService.clearHistory();
    };

    const getProviderName = id => providers.find(v => v.id === id).label;

    const padLeft = (value, pad, length) => {
      const text = String(value);
      const diff = text.length - length;

      if (diff <= 0) {
        return text;
      }

      return `${pad.repeat(diff)}${text}`;
    };

    const formatTimeFull = time => {
      const date = new Date(time);
      return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDay()} ${padLeft(date.getHours(), '0', 2)}:${padLeft(date.getMinutes(), '0', 2)}`;
    };

    const formatTime = time => {
      const now = Date.now();
      const diff = now - time;

      if (diff < 1000 * 60) {
        return `${Math.floor(diff / 1000)} 秒前`;
      }

      if (diff < 1000 * 60 * 60) {
        return `${Math.floor(diff / 1000 / 60)} 分钟前`;
      }

      if (diff < 1000 * 60 * 60 * 24) {
        return `${Math.floor(diff / 1000 / 60 / 60)} 小时前`;
      }

      return formatTimeFull(time);
    };

    watch(() => viewService.state.history, () => historyService.loadHistory());
    const list = runtime_core_esm_bundler_computed(() => historyService.state.list);
    const visible = runtime_core_esm_bundler_computed(() => viewService.state.history);
    return {
      getProviderName,
      state,
      visible,
      list,
      getIcon: getIcon,
      handleClose,
      handleExport,
      handleItemClick,
      handleClear,
      handleClearCancel,
      handleClearConfirm,
      formatTime,
      formatTimeFull
    };
  }
}));
;// CONCATENATED MODULE: ./src/view/HistoryModal/HistoryModal.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/view/HistoryModal/HistoryModal.sass?vue&type=style&index=0&id=2d428882&lang=sass&scoped=true
var HistoryModalvue_type_style_index_0_id_2d428882_lang_sass_scoped_true = __webpack_require__(6532);
;// CONCATENATED MODULE: ./src/view/HistoryModal/HistoryModal.sass?vue&type=style&index=0&id=2d428882&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/view/HistoryModal/HistoryModal.vue




;


const HistoryModal_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(HistoryModalvue_type_script_lang_ts, [['render',HistoryModalvue_type_template_id_2d428882_scoped_true_ts_true_render],['__scopeId',"data-v-2d428882"]])

/* harmony default export */ const HistoryModal = (HistoryModal_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/GoogleDictModal.vue?vue&type=template&id=ea3555cc&scoped=true&ts=true


const GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_withScopeId = n => (pushScopeId("data-v-ea3555cc"), n = n(), popScopeId(), n);

const GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_1 = {
  class: "google-dict-modal flex-col relative shadow-16"
};
const GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_2 = {
  class: "fold-control flex absolute select-none z-20 shadow-2 opacity-75 hover:opacity-100 duration-200 ease-in-out bg-bg-5"
};

const GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_3 = /*#__PURE__*/GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "tooltip"
}, " less ", -1));

const GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_4 = /*#__PURE__*/GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "split border-l border-grey-400"
}, null, -1));

const GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_5 = /*#__PURE__*/GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("div", {
  class: "tooltip"
}, " more ", -1));

const GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_6 = {
  class: "modal-box flex-col flex-1 h-0 relative text-14 bg-white"
};
const GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_7 = {
  key: 0,
  class: "dictionary-data-box flex-col items-stretch"
};
const GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_8 = {
  key: 0,
  class: "entry-box flex-col items-stretch"
};
function GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_i_icon = resolveComponent("i-icon");

  const _component_entry = resolveComponent("entry");

  const _component_usage_overtime = resolveComponent("usage-overtime");

  const _component_scrollable = resolveComponent("scrollable");

  const _component_modal_component = resolveComponent("modal-component");

  return openBlock(), createBlock(_component_modal_component, {
    open: _ctx.visible,
    onClose: _ctx.handleCloseModal
  }, {
    default: withCtx(() => [createBaseVNode("div", GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_1, [createBaseVNode("div", GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_2, [createBaseVNode("div", {
      class: normalizeClass([{
        disable: !_ctx.shrinkable
      }, "control-btn flex flex-center relative"]),
      onClick: _cache[0] || (_cache[0] = //@ts-ignore
      (...args) => _ctx.handleShrink && _ctx.handleShrink(...args))
    }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
      size: "20",
      svg: _ctx.icon.minus
    }, null, 8, ["svg"]), GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_3], 2), GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_4, createBaseVNode("div", {
      class: normalizeClass([{
        disable: !_ctx.expandable
      }, "control-btn flex flex-center"]),
      onClick: _cache[1] || (_cache[1] = //@ts-ignore
      (...args) => _ctx.handleExpand && _ctx.handleExpand(...args))
    }, [runtime_core_esm_bundler_createVNode(_component_i_icon, {
      size: "20",
      svg: _ctx.icon.plus
    }, null, 8, ["svg"]), GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_5], 2)]), createBaseVNode("div", GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_6, [runtime_core_esm_bundler_createVNode(_component_scrollable, {
      class: "flex-1 h-0"
    }, {
      default: withCtx(({
        scrollBar
      }) => [createBaseVNode("div", {
        class: normalizeClass(["content-box px-5 pt-5 pb-7", {
          'pr-5': !scrollBar,
          'pr-7': scrollBar
        }])
      }, [_ctx.state.containerData && _ctx.state.containerData.length ? (openBlock(), createElementBlock("div", GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_7, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.state.containerData, dicDataItem => {
        return openBlock(), createElementBlock("div", {
          class: "dictionary-data-item",
          key: _ctx.state.id + dicDataItem.queryTerm
        }, [dicDataItem.entries && dicDataItem.entries.length ? (openBlock(), createElementBlock("div", GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_hoisted_8, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(dicDataItem.entries, (entry, entryIndex) => {
          return openBlock(), createBlock(_component_entry, {
            class: normalizeClass({
              'mt-5': entryIndex !== 0
            }),
            entry: entry,
            key: entry.entrySeqNo
          }, null, 8, ["class", "entry"]);
        }), 128))])) : createCommentVNode("", true), dicDataItem.usageOverTimeImage ? (openBlock(), createBlock(_component_usage_overtime, {
          key: 1,
          image: dicDataItem.usageOverTimeImage,
          term: dicDataItem.queryTerm
        }, null, 8, ["image", "term"])) : createCommentVNode("", true)]);
      }), 128))])) : createCommentVNode("", true)], 2)]),
      _: 1
    })])])]),
    _: 1
  }, 8, ["open", "onClose"]);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/GoogleDictModal.vue?vue&type=template&id=ea3555cc&scoped=true&ts=true

;// CONCATENATED MODULE: ./src/assets/img/minus.svg
/* harmony default export */ const minus = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 500 500\"><path fill=\"none\" stroke=\"#777\" stroke-width=\"30\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" d=\"M74 247h353\"/></svg>\n");
;// CONCATENATED MODULE: ./src/assets/img/plus.svg
/* harmony default export */ const plus = ("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 500 500\"><path fill=\"none\" stroke=\"#777\" stroke-width=\"30\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" d=\"M74 247h353M251 427V74\"/></svg>\n");
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/modal/imageLoader/imageLoader.vue?vue&type=template&id=c0604a02&scoped=true&ts=true


const imageLoadervue_type_template_id_c0604a02_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-c0604a02"), n = n(), _popScopeId(), n);

const imageLoadervue_type_template_id_c0604a02_scoped_true_ts_true_hoisted_1 = {
  key: 0,
  class: "placeholder text-grey-400 font-mono"
};
const imageLoadervue_type_template_id_c0604a02_scoped_true_ts_true_hoisted_2 = ["src"];
function imageLoadervue_type_template_id_c0604a02_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", {
    class: normalizeClass(["image-loader flex justify-center items-center", {
      loading: !_ctx.state.data
    }]),
    style: normalizeStyle({
      height: `${Number(_ctx.props.height) / 2}px`,
      width: `${Number(_ctx.props.width) / 2}px`
    })
  }, [!_ctx.state.data ? (openBlock(), createElementBlock("span", imageLoadervue_type_template_id_c0604a02_scoped_true_ts_true_hoisted_1, " loading.... ")) : createCommentVNode("", true), _ctx.state.data ? (openBlock(), createElementBlock("img", {
    key: 1,
    style: normalizeStyle({
      height: `${Number(_ctx.props.height) / 2}px`,
      width: `${Number(_ctx.props.width) / 2}px`
    }),
    src: _ctx.state.data
  }, null, 12, imageLoadervue_type_template_id_c0604a02_scoped_true_ts_true_hoisted_2)) : createCommentVNode("", true)], 6);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/imageLoader/imageLoader.vue?vue&type=template&id=c0604a02&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/imageLoader/imageLoader.ts?vue&type=script&lang=ts



/* harmony default export */ const imageLoadervue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GImageLoader',
  props: {
    url: {
      type: String,
      required: true
    },
    height: {
      type: [Number, String],
      required: true
    },
    width: {
      type: [Number, String],
      required: true
    }
  },
  setup: props => {
    const state = reactivity_esm_bundler_reactive({
      data: ''
    });

    const handleDraw = async url => {
      const response = await got({
        method: 'GET',
        headers: {
          'Accept': '*/*',
          'Accept-Encoding': 'gzip, deflate, br',
          'Accept-Language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-TW;q=0.6',
          'Cache-Control': 'no-cache',
          'Pragma': 'no-cache',
          'upgrade-insecure-requests': '1',
          'User-Agent': window.navigator.userAgent
        },
        responseType: 'blob',
        url,
        timeout: 5000
      });

      if (Either_isLeft(response)) {
        throw new Error(response.left.type);
      }

      const blob = response.right.response;
      const reader = new FileReader();
      reader.readAsDataURL(blob);

      reader.onloadend = () => {
        state.data = reader.result.replace('data:;base64,', 'data:image/png;base64,');
      };
    };

    const loadImage = () => {
      if (props.url) {
        state.data = '';
        handleDraw(props.url);
      }
    };

    runtime_core_esm_bundler_onMounted(() => {
      loadImage();
    });
    watch(() => props.url, () => {
      loadImage();
    });
    return {
      props,
      state
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/imageLoader/imageLoader.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/imageLoader/imageLoader.sass?vue&type=style&index=0&id=c0604a02&lang=sass&scoped=true
var imageLoadervue_type_style_index_0_id_c0604a02_lang_sass_scoped_true = __webpack_require__(2708);
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/imageLoader/imageLoader.sass?vue&type=style&index=0&id=c0604a02&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/imageLoader/imageLoader.vue




;


const imageLoader_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(imageLoadervue_type_script_lang_ts, [['render',imageLoadervue_type_template_id_c0604a02_scoped_true_ts_true_render],['__scopeId',"data-v-c0604a02"]])

/* harmony default export */ const imageLoader = (imageLoader_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/modal/usageOvertime/usageOvertime.vue?vue&type=template&id=7d542e5a&ts=true

const usageOvertimevue_type_template_id_7d542e5a_ts_true_hoisted_1 = {
  key: 0,
  class: "usage-overtime mt-4 pt-4 flex-col items-stretch border-t border-grey-400"
};
const usageOvertimevue_type_template_id_7d542e5a_ts_true_hoisted_2 = {
  class: "usage-title text-grey-500 text-18"
};

const usageOvertimevue_type_template_id_7d542e5a_ts_true_hoisted_3 = /*#__PURE__*/createTextVNode(" Use over time for ");

const usageOvertimevue_type_template_id_7d542e5a_ts_true_hoisted_4 = {
  class: "bg-grey-500 text-white px-1"
};
function usageOvertimevue_type_template_id_7d542e5a_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_image_loader = resolveComponent("image-loader");

  return _ctx.m ? (openBlock(), createElementBlock("div", usageOvertimevue_type_template_id_7d542e5a_ts_true_hoisted_1, [createBaseVNode("div", usageOvertimevue_type_template_id_7d542e5a_ts_true_hoisted_2, [usageOvertimevue_type_template_id_7d542e5a_ts_true_hoisted_3, createBaseVNode("span", usageOvertimevue_type_template_id_7d542e5a_ts_true_hoisted_4, toDisplayString(_ctx.term), 1)]), createBaseVNode("div", {
    class: "usage-img-wrapper mt-2 overflow-hidden",
    style: normalizeStyle({
      height: `${_ctx.m.tablet.height / 2}px`,
      width: `${_ctx.m.tablet.width / 2}px`
    })
  }, [runtime_core_esm_bundler_createVNode(_component_image_loader, {
    height: _ctx.m.tablet.height,
    width: _ctx.m.tablet.width,
    url: `https://www.gstatic.com/onebox/dictionary/${_ctx.m.tablet.url}`
  }, null, 8, ["height", "width", "url"])], 4)])) : createCommentVNode("", true);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/usageOvertime/usageOvertime.vue?vue&type=template&id=7d542e5a&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/usageOvertime/usageOvertime.ts?vue&type=script&lang=ts


/* harmony default export */ const usageOvertimevue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GUsageOvertime',
  components: {
    imageLoader: imageLoader
  },
  props: {
    image: {
      type: null,
      required: true
    },
    term: {
      type: String,
      required: true
    }
  },
  setup: props => ({
    m: props.image
  })
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/usageOvertime/usageOvertime.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/usageOvertime/usageOvertime.vue




;
const usageOvertime_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(usageOvertimevue_type_script_lang_ts, [['render',usageOvertimevue_type_template_id_7d542e5a_ts_true_render]])

/* harmony default export */ const usageOvertime = (usageOvertime_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/modal/entry/entry.vue?vue&type=template&id=184bced8&ts=true

const entryvue_type_template_id_184bced8_ts_true_hoisted_1 = {
  class: "entry-item"
};
const entryvue_type_template_id_184bced8_ts_true_hoisted_2 = {
  key: 0,
  class: "sub-entry-lemma"
};
const entryvue_type_template_id_184bced8_ts_true_hoisted_3 = {
  key: 1,
  class: "triggering-phrases text-grey-400"
};
const entryvue_type_template_id_184bced8_ts_true_hoisted_4 = {
  class: "headword flex flex-wrap items-center"
};
const entryvue_type_template_id_184bced8_ts_true_hoisted_5 = ["title"];
const entryvue_type_template_id_184bced8_ts_true_hoisted_6 = {
  key: 0,
  class: "headword-graph-index text-14 ml-2px"
};
const entryvue_type_template_id_184bced8_ts_true_hoisted_7 = {
  key: 2,
  class: "sub-sense-list mt-1 flex-col items-stretch"
};
const entryvue_type_template_id_184bced8_ts_true_hoisted_8 = {
  key: 3,
  class: "sense-family-box flex-col items-stretch"
};
const entryvue_type_template_id_184bced8_ts_true_hoisted_9 = {
  key: 0,
  class: "poss italic"
};
const entryvue_type_template_id_184bced8_ts_true_hoisted_10 = ["title"];
const entryvue_type_template_id_184bced8_ts_true_hoisted_11 = {
  key: 1,
  class: "sense-family-label-set-box mb-1"
};
const entryvue_type_template_id_184bced8_ts_true_hoisted_12 = {
  key: 3,
  class: "sense-list flex-col items-stretch mt-2px"
};
const entryvue_type_template_id_184bced8_ts_true_hoisted_13 = {
  key: 4,
  class: "sub-entry-box"
};
function entryvue_type_template_id_184bced8_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_labels = resolveComponent("labels");

  const _component_label_set = resolveComponent("label-set");

  const _component_phonetics = resolveComponent("phonetics");

  const _component_note = resolveComponent("note");

  const _component_sense_item = resolveComponent("sense-item");

  const _component_morph_unit = resolveComponent("morph-unit");

  const _component_etymology = resolveComponent("etymology");

  const _component_g_entry = resolveComponent("g-entry");

  return openBlock(), createElementBlock("div", entryvue_type_template_id_184bced8_ts_true_hoisted_1, [_ctx.isSub ? (openBlock(), createElementBlock("div", entryvue_type_template_id_184bced8_ts_true_hoisted_2, [createTextVNode(toDisplayString(_ctx.e.lemma) + " ", 1), runtime_core_esm_bundler_createVNode(_component_labels, {
    class: "entry-type-label-box",
    color: "plain",
    size: "medium",
    labels: [_ctx.e.type],
    type: "entry-type"
  }, null, 8, ["labels"])])) : createCommentVNode("", true), _ctx.e.triggeringPhrases ? (openBlock(), createElementBlock("div", entryvue_type_template_id_184bced8_ts_true_hoisted_3, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.e.triggeringPhrases, (phrase, pIndex) => {
    return openBlock(), createElementBlock("span", {
      class: "t-phrase-item",
      key: pIndex
    }, toDisplayString(phrase) + toDisplayString(pIndex !== _ctx.e.triggeringPhrases.length - 1 ? ',' : ''), 1);
  }), 128))])) : createCommentVNode("", true), createBaseVNode("div", entryvue_type_template_id_184bced8_ts_true_hoisted_4, [createBaseVNode("div", {
    class: "headword-word text-28",
    title: _ctx.e.locale
  }, toDisplayString(_ctx.e.syllabifiedHeadword || _ctx.e.headword), 9, entryvue_type_template_id_184bced8_ts_true_hoisted_5), _ctx.e.homographIndex ? (openBlock(), createElementBlock("div", entryvue_type_template_id_184bced8_ts_true_hoisted_6, toDisplayString(_ctx.e.homographIndex), 1)) : createCommentVNode("", true), _ctx.e.labelSet ? (openBlock(), createBlock(_component_label_set, {
    key: 1,
    class: "entry-label-set ml-2",
    size: "large",
    "label-set": _ctx.e.labelSet
  }, null, 8, ["label-set"])) : createCommentVNode("", true)]), runtime_core_esm_bundler_createVNode(_component_phonetics, {
    class: "phonetics-box mb-1",
    phonetics: _ctx.e.phonetics
  }, null, 8, ["phonetics"]), runtime_core_esm_bundler_createVNode(_component_note, {
    note: _ctx.e.note
  }, null, 8, ["note"]), _ctx.isSub && _ctx.e.senseFamily && _ctx.e.senseFamily.senses && _ctx.e.senseFamily.senses.length ? (openBlock(), createElementBlock("div", entryvue_type_template_id_184bced8_ts_true_hoisted_7, [runtime_core_esm_bundler_createVNode(_component_label_set, {
    class: "sense-item-label",
    size: "medium",
    "label-set": _ctx.e.senseFamily.labelSet
  }, null, 8, ["label-set"]), (openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.e.senseFamily.senses, (sense, senseIndex) => {
    return openBlock(), createBlock(_component_sense_item, {
      class: normalizeClass(["sense-item", {
        'mt-2': senseIndex !== 0
      }]),
      sense: sense,
      index: senseIndex,
      key: senseIndex
    }, null, 8, ["class", "sense", "index"]);
  }), 128))])) : createCommentVNode("", true), !_ctx.isSub && _ctx.e.senseFamilies && _ctx.e.senseFamilies.length ? (openBlock(), createElementBlock("div", entryvue_type_template_id_184bced8_ts_true_hoisted_8, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.e.senseFamilies, (senseFamilyItem, index) => {
    return openBlock(), createElementBlock("div", {
      class: normalizeClass(["sense-family-item flex-col items-stretch", {
        'mt-4': index !== 0
      }]),
      key: index
    }, [runtime_core_esm_bundler_createVNode(_component_note, {
      note: senseFamilyItem.note
    }, null, 8, ["note"]), senseFamilyItem.partsOfSpeechs && senseFamilyItem.partsOfSpeechs.length ? (openBlock(), createElementBlock("div", entryvue_type_template_id_184bced8_ts_true_hoisted_9, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(senseFamilyItem.partsOfSpeechs, (poss, possIndex) => {
      return openBlock(), createElementBlock("div", {
        class: normalizeClass(["pos flex flex-wrap font-bold", {
          'mt-5px': possIndex !== 0
        }]),
        title: poss.qualifier,
        key: poss.value + possIndex
      }, toDisplayString(poss.value), 11, entryvue_type_template_id_184bced8_ts_true_hoisted_10);
    }), 128))])) : createCommentVNode("", true), runtime_core_esm_bundler_createVNode(_component_phonetics, {
      class: "phonetics-box",
      phonetics: senseFamilyItem.phonetics
    }, null, 8, ["phonetics"]), senseFamilyItem.labelSet ? (openBlock(), createElementBlock("div", entryvue_type_template_id_184bced8_ts_true_hoisted_11, [runtime_core_esm_bundler_createVNode(_component_label_set, {
      class: "sense-family-label-set",
      size: "medium",
      "label-set": senseFamilyItem.labelSet
    }, null, 8, ["label-set"])])) : createCommentVNode("", true), senseFamilyItem.morphUnits && senseFamilyItem.morphUnits.length ? (openBlock(), createBlock(_component_morph_unit, {
      key: 2,
      "morph-units": senseFamilyItem.morphUnits
    }, null, 8, ["morph-units"])) : createCommentVNode("", true), senseFamilyItem.senses && senseFamilyItem.senses.length ? (openBlock(), createElementBlock("div", entryvue_type_template_id_184bced8_ts_true_hoisted_12, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(senseFamilyItem.senses, (sense, senseIndex) => {
      return openBlock(), createBlock(_component_sense_item, {
        class: "sense-item",
        sense: sense,
        index: senseIndex,
        key: senseIndex
      }, null, 8, ["sense", "index"]);
    }), 128))])) : createCommentVNode("", true)], 2);
  }), 128))])) : createCommentVNode("", true), runtime_core_esm_bundler_createVNode(_component_etymology, {
    etymology: _ctx.e.etymology
  }, null, 8, ["etymology"]), _ctx.e.subentries && _ctx.e.subentries.length ? (openBlock(), createElementBlock("div", entryvue_type_template_id_184bced8_ts_true_hoisted_13, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.e.subentries, (subentry, index) => {
    return openBlock(), createBlock(_component_g_entry, {
      class: "sub-entry",
      entry: subentry,
      "is-subentry": true,
      key: index
    }, null, 8, ["entry"]);
  }), 128))])) : createCommentVNode("", true)]);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/entry/entry.vue?vue&type=template&id=184bced8&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/modal/labelSet/labelSet.vue?vue&type=template&id=bf2dbc5a&ts=true

const labelSetvue_type_template_id_bf2dbc5a_ts_true_hoisted_1 = {
  key: 0,
  class: "label-set-box text-0 inline"
};
function labelSetvue_type_template_id_bf2dbc5a_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_labels = resolveComponent("labels");

  return _ctx.isValid ? (openBlock(), createElementBlock("div", labelSetvue_type_template_id_bf2dbc5a_ts_true_hoisted_1, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(Object.keys(_ctx.props.labelSet), key => {
    return openBlock(), createBlock(_component_labels, {
      key: key,
      size: _ctx.props.size,
      class: "inner-label-box mr-5px",
      labels: _ctx.props.labelSet[key],
      type: key,
      color: _ctx.props.color || key
    }, null, 8, ["size", "labels", "type", "color"]);
  }), 128))])) : createCommentVNode("", true);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/labelSet/labelSet.vue?vue&type=template&id=bf2dbc5a&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/modal/labels/labels.vue?vue&type=template&id=58734797&scoped=true&ts=true


const labelsvue_type_template_id_58734797_scoped_true_ts_true_withScopeId = n => (pushScopeId("data-v-58734797"), n = n(), popScopeId(), n);

const labelsvue_type_template_id_58734797_scoped_true_ts_true_hoisted_1 = ["onMouseover", "onMouseleave"];

const labelsvue_type_template_id_58734797_scoped_true_ts_true_hoisted_2 = /*#__PURE__*/labelsvue_type_template_id_58734797_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("span", {
  class: "label-split",
  innerHTML: ' '
}, null, -1));

const labelsvue_type_template_id_58734797_scoped_true_ts_true_hoisted_3 = {
  key: 0,
  class: "tooltip rounded-5 absolute text-white select-none ease-in-out"
};

const labelsvue_type_template_id_58734797_scoped_true_ts_true_hoisted_4 = /*#__PURE__*/labelsvue_type_template_id_58734797_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("span", {
  class: "label-split text-0",
  innerHTML: ' '
}, null, -1));

function labelsvue_type_template_id_58734797_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  return _ctx.labels && _ctx.labels.length ? (openBlock(), createElementBlock("div", {
    key: 0,
    class: normalizeClass(["label-box inline text-0", [_ctx.colorClass, _ctx.sizeClass]])
  }, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.props.labels, (label, index) => {
    return openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, {
      key: index
    }, [createBaseVNode("div", {
      class: normalizeClass(["label relative inline-flex text-grey-700", [_ctx.labelClass, index === _ctx.labels.length - 1 ? 'last' : '']]),
      onMouseover: $event => _ctx.shopTip(label),
      onMouseleave: $event => _ctx.hideTip(label)
    }, [createTextVNode(toDisplayString(label) + " ", 1), labelsvue_type_template_id_58734797_scoped_true_ts_true_hoisted_2, runtime_core_esm_bundler_createVNode(Transition, {
      name: "p"
    }, {
      default: withCtx(() => [_ctx.state.tipMap[label] ? (openBlock(), createElementBlock("div", labelsvue_type_template_id_58734797_scoped_true_ts_true_hoisted_3, toDisplayString(_ctx.type), 1)) : createCommentVNode("", true)]),
      _: 2
    }, 1024)], 42, labelsvue_type_template_id_58734797_scoped_true_ts_true_hoisted_1), labelsvue_type_template_id_58734797_scoped_true_ts_true_hoisted_4], 64);
  }), 128))], 2)) : createCommentVNode("", true);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/labels/labels.vue?vue&type=template&id=58734797&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/labels/labels.ts?vue&type=script&lang=ts


/* harmony default export */ const labelsvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GLabels',
  props: {
    labels: {
      type: Array,
      required: true
    },
    type: {
      type: String,
      default: 'default'
    },
    color: {
      type: String,
      default: 'plain'
    },
    size: {
      type: String,
      default: 'medium'
    }
  },
  setup: _props => {
    const props = _props;
    const state = reactivity_esm_bundler_reactive({
      tipMap: {}
    });
    /** 显示 popover */

    const shopTip = label => {
      state.tipMap[label] = true;
    };
    /** 隐藏 popover */


    const hideTip = label => {
      state.tipMap[label] = false;
    };

    const labelClass = runtime_core_esm_bundler_computed(() => `${props.type}-label`);
    const colorClass = runtime_core_esm_bundler_computed(() => `color-${props.color}`);
    const sizeClass = runtime_core_esm_bundler_computed(() => `size-${props.size}`);
    watch(() => props.labels, () => {
      state.tipMap = from_entries_default()(props.labels.map(v => [v, state.tipMap[v] || false]));
    }, {
      immediate: true
    });
    return {
      state,
      props,
      labelClass,
      colorClass,
      sizeClass,
      shopTip,
      hideTip
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/labels/labels.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/labels/labels.sass?vue&type=style&index=0&id=58734797&lang=sass&scoped=true
var labelsvue_type_style_index_0_id_58734797_lang_sass_scoped_true = __webpack_require__(7882);
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/labels/labels.sass?vue&type=style&index=0&id=58734797&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/labels/labels.vue




;


const labels_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(labelsvue_type_script_lang_ts, [['render',labelsvue_type_template_id_58734797_scoped_true_ts_true_render],['__scopeId',"data-v-58734797"]])

/* harmony default export */ const labels = (labels_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/labelSet/labelSet.ts?vue&type=script&lang=ts


/* harmony default export */ const labelSetvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GLabelSet',
  components: {
    labels: labels
  },
  props: {
    labelSet: {
      type: null,
      required: true
    },
    size: {
      type: String,
      default: 'medium'
    },
    color: {
      type: String,
      default: ''
    }
  },
  setup: props => {
    const isValid = runtime_core_esm_bundler_computed(() => {
      const l = props.labelSet;

      if (!l) {
        return false;
      }

      const values = Object.values(l);
      return values.length && values.some(arr => arr === null || arr === void 0 ? void 0 : arr.length);
    });
    return {
      props,
      isValid
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/labelSet/labelSet.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/labelSet/labelSet.vue




;
const labelSet_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(labelSetvue_type_script_lang_ts, [['render',labelSetvue_type_template_id_bf2dbc5a_ts_true_render]])

/* harmony default export */ const labelSet = (labelSet_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/modal/etymology/etymology.vue?vue&type=template&id=4e60e540&ts=true

const etymologyvue_type_template_id_4e60e540_ts_true_hoisted_1 = {
  key: 0,
  class: "etymology-box mt-4 pt-4 flex-col items-stretch border-t border-grey-400"
};

const etymologyvue_type_template_id_4e60e540_ts_true_hoisted_2 = /*#__PURE__*/createBaseVNode("div", {
  class: "etymology-title text-grey-500 text-18"
}, "Origin", -1);

const etymologyvue_type_template_id_4e60e540_ts_true_hoisted_3 = {
  key: 0,
  class: "etymology-img-box mt-2"
};
const etymologyvue_type_template_id_4e60e540_ts_true_hoisted_4 = {
  class: "etymology-text mt-2 text-grey-500"
};
function etymologyvue_type_template_id_4e60e540_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_image_loader = resolveComponent("image-loader");

  const _component_fragment = resolveComponent("fragment");

  return _ctx.props.etymology ? (openBlock(), createElementBlock("div", etymologyvue_type_template_id_4e60e540_ts_true_hoisted_1, [etymologyvue_type_template_id_4e60e540_ts_true_hoisted_2, _ctx.props.etymology.images ? (openBlock(), createElementBlock("div", etymologyvue_type_template_id_4e60e540_ts_true_hoisted_3, [runtime_core_esm_bundler_createVNode(_component_image_loader, {
    height: _ctx.props.etymology.images.tablet.height,
    width: _ctx.props.etymology.images.tablet.width,
    url: `https://www.gstatic.com/onebox/dictionary/${_ctx.props.etymology.images.tablet.url}`
  }, null, 8, ["height", "width", "url"])])) : createCommentVNode("", true), createBaseVNode("div", etymologyvue_type_template_id_4e60e540_ts_true_hoisted_4, [runtime_core_esm_bundler_createVNode(_component_fragment, {
    class: "etymology-frag",
    fragment: _ctx.props.etymology.etymology.fragments
  }, null, 8, ["fragment"])])])) : createCommentVNode("", true);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/etymology/etymology.vue?vue&type=template&id=4e60e540&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/etymology/etymology.ts?vue&type=script&lang=ts



/* harmony default export */ const etymologyvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GEtymology',
  components: {
    fragment: fragment,
    imageLoader: imageLoader
  },
  props: {
    etymology: {
      type: null,
      required: true
    }
  },
  setup: props => ({
    props
  })
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/etymology/etymology.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/etymology/etymology.vue




;
const etymology_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(etymologyvue_type_script_lang_ts, [['render',etymologyvue_type_template_id_4e60e540_ts_true_render]])

/* harmony default export */ const etymology = (etymology_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/modal/note/note.vue?vue&type=template&id=5c711633&ts=true

const notevue_type_template_id_5c711633_ts_true_hoisted_1 = {
  key: 0,
  class: "dict-note my-2 flex-col items-stretch"
};
const notevue_type_template_id_5c711633_ts_true_hoisted_2 = {
  class: "note-type-box flex mb-3px"
};
const notevue_type_template_id_5c711633_ts_true_hoisted_3 = ["innerHTML"];
function notevue_type_template_id_5c711633_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_labels = resolveComponent("labels");

  return _ctx.props.note ? (openBlock(), createElementBlock("div", notevue_type_template_id_5c711633_ts_true_hoisted_1, [createBaseVNode("div", notevue_type_template_id_5c711633_ts_true_hoisted_2, [runtime_core_esm_bundler_createVNode(_component_labels, {
    class: "note-label-box",
    color: "plain",
    size: "large",
    labels: [_ctx.props.note.type],
    type: "note"
  }, null, 8, ["labels"])]), createBaseVNode("div", {
    class: "note-text text-12 inline text-grey-500",
    innerHTML: _ctx.props.note.text
  }, null, 8, notevue_type_template_id_5c711633_ts_true_hoisted_3)])) : createCommentVNode("", true);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/note/note.vue?vue&type=template&id=5c711633&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/note/note.ts?vue&type=script&lang=ts


/* harmony default export */ const notevue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GNote',
  components: {
    labels: labels
  },
  props: {
    note: {
      type: null,
      required: true
    }
  },
  setup: props => ({
    props
  })
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/note/note.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/note/note.vue




;
const note_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(notevue_type_script_lang_ts, [['render',notevue_type_template_id_5c711633_ts_true_render]])

/* harmony default export */ const note = (note_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/modal/senseItem/senseItem.vue?vue&type=template&id=b981c738&scoped=true&ts=true


const senseItemvue_type_template_id_b981c738_scoped_true_ts_true_withScopeId = n => (pushScopeId("data-v-b981c738"), n = n(), popScopeId(), n);

const senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_1 = {
  class: "sense-item flex"
};
const senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_2 = {
  class: "sense-item-number text-right font-bold"
};
const senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_3 = {
  class: "sense-item-box flex-col flex-auto items-stretch"
};
const senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_4 = {
  class: "definition-box flex-auto flex-col items-stretch"
};
const senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_5 = {
  class: "difinition"
};
const senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_6 = {
  class: "sense-labels inline"
};
const senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_7 = {
  key: 0,
  class: "subsense-box"
};
const senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_8 = {
  class: "subsense-number pr-2 text-grey-600"
};
const senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_9 = {
  class: "subsense-item-container flex-col flex-auto items-stretch"
};
const senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_10 = {
  class: "subsense-definition"
};

const senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_11 = /*#__PURE__*/senseItemvue_type_template_id_b981c738_scoped_true_ts_true_withScopeId(() => /*#__PURE__*/createBaseVNode("span", {
  class: "split text-0"
}, " ", -1));

const senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_12 = {
  key: 0,
  class: "subsense-labels inline"
};
function senseItemvue_type_template_id_b981c738_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_label_set = resolveComponent("label-set");

  const _component_fragment = resolveComponent("fragment");

  const _component_labels = resolveComponent("labels");

  const _component_example_groups = resolveComponent("example-groups");

  const _component_thesaurus = resolveComponent("thesaurus");

  const _component_etymology = resolveComponent("etymology");

  const _component_foldable = resolveComponent("foldable");

  return openBlock(), createElementBlock("div", senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_1, [createBaseVNode("div", senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_2, toDisplayString(_ctx.index + 1) + ". ", 1), createBaseVNode("div", senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_3, [createBaseVNode("div", senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_4, [createBaseVNode("div", senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_5, [runtime_core_esm_bundler_createVNode(_component_label_set, {
    class: "sense-item-label",
    size: "medium",
    "label-set": _ctx.s.labelSet
  }, null, 8, ["label-set"]), runtime_core_esm_bundler_createVNode(_component_fragment, {
    class: "difinition-text sense-frag",
    fragment: _ctx.s.definition.fragments
  }, null, 8, ["fragment"]), createBaseVNode("div", senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_6, [_ctx.s.domainClasses && _ctx.s.domainClasses.length ? (openBlock(), createBlock(_component_labels, {
    key: 0,
    class: "ml-5px",
    color: "lightpink",
    size: "small",
    labels: _ctx.s.domainClasses,
    type: "domain"
  }, null, 8, ["labels"])) : createCommentVNode("", true), _ctx.s.semanticClasses && _ctx.s.semanticClasses.length ? (openBlock(), createBlock(_component_labels, {
    key: 1,
    class: "ml-5px",
    color: "lightblue",
    size: "small",
    labels: _ctx.s.semanticClasses,
    type: "semantic"
  }, null, 8, ["labels"])) : createCommentVNode("", true)])]), runtime_core_esm_bundler_createVNode(_component_example_groups, {
    "example-groups": _ctx.combinedGroups
  }, null, 8, ["example-groups"]), runtime_core_esm_bundler_createVNode(_component_thesaurus, {
    "thesaurus-entries": _ctx.s.thesaurusEntries
  }, null, 8, ["thesaurus-entries"]), _ctx.s.subsenses && _ctx.s.subsenses.length ? (openBlock(), createBlock(_component_foldable, {
    key: 0,
    fold: _ctx.subSenseFolded
  }, {
    default: withCtx(() => [_ctx.s.subsenses && _ctx.s.subsenses.length ? (openBlock(), createElementBlock("div", senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_7, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.sense.subsenses, (subsense, subsenseIndex) => {
      return openBlock(), createElementBlock("div", {
        class: "subsense-item flex mt-2px",
        key: subsenseIndex
      }, [createBaseVNode("div", senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_8, toDisplayString(subsenseIndex + 1) + ") ", 1), createBaseVNode("div", senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_9, [createBaseVNode("div", senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_10, [runtime_core_esm_bundler_createVNode(_component_label_set, {
        class: "subsense-definition-label",
        size: "medium",
        "label-set": subsense.labelSet
      }, null, 8, ["label-set"]), senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_11, runtime_core_esm_bundler_createVNode(_component_fragment, {
        class: "subsense-frag",
        fragment: subsense.definition.fragments
      }, null, 8, ["fragment"]), runtime_core_esm_bundler_createVNode(_component_etymology, {
        etymology: subsense.etymology
      }, null, 8, ["etymology"]), subsense.domainClasses && subsense.domainClasses.length && subsense.semanticClasses && subsense.semanticClasses.length ? (openBlock(), createElementBlock("div", senseItemvue_type_template_id_b981c738_scoped_true_ts_true_hoisted_12, [subsense.domainClasses && subsense.domainClasses.length ? (openBlock(), createBlock(_component_labels, {
        key: 0,
        class: "ml-5px",
        color: "lightpink",
        size: "small",
        labels: subsense.domainClasses,
        type: "domain"
      }, null, 8, ["labels"])) : createCommentVNode("", true), subsense.semanticClasses && subsense.semanticClasses.length ? (openBlock(), createBlock(_component_labels, {
        key: 1,
        class: "ml-5px",
        color: "lightblue",
        size: "small",
        labels: subsense.semanticClasses,
        type: "semantic"
      }, null, 8, ["labels"])) : createCommentVNode("", true)])) : createCommentVNode("", true)]), runtime_core_esm_bundler_createVNode(_component_example_groups, {
        "example-groups": subsense.exampleGroups
      }, null, 8, ["example-groups"]), runtime_core_esm_bundler_createVNode(_component_thesaurus, {
        "thesaurus-entries": subsense.thesaurusEntries
      }, null, 8, ["thesaurus-entries"])])]);
    }), 128))])) : createCommentVNode("", true)]),
    _: 1
  }, 8, ["fold"])) : createCommentVNode("", true)]), runtime_core_esm_bundler_createVNode(_component_etymology, {
    etymology: _ctx.s.etymology
  }, null, 8, ["etymology"])])]);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/senseItem/senseItem.vue?vue&type=template&id=b981c738&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/modal/thesaurus/thesaurus.vue?vue&type=template&id=2759b815&scoped=true&ts=true


const thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_withScopeId = n => (_pushScopeId("data-v-2759b815"), n = n(), _popScopeId(), n);

const thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_hoisted_1 = {
  class: "thesaurus-box flex-col items-start"
};
const thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_hoisted_2 = ["onClick"];
const thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_hoisted_3 = {
  key: 0,
  class: "show-more-or-less inline cursor-pointer select-none"
};

const thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_hoisted_4 = /*#__PURE__*/createTextVNode(" [less] ");

const thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_hoisted_5 = /*#__PURE__*/createTextVNode(" [more] ");

const thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_hoisted_6 = {
  class: "thesaurus-box ml-4"
};
function thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_ThesaurusRow = resolveComponent("ThesaurusRow");

  const _component_foldable = resolveComponent("foldable");

  return openBlock(), createBlock(_component_foldable, {
    fold: _ctx.folded
  }, {
    default: withCtx(() => [createBaseVNode("div", thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_hoisted_1, [(openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(['synonyms', 'antonyms'], type => {
      return openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, null, [_ctx.combined[type].length ? (openBlock(), createElementBlock("div", {
        class: "thesaurus-syn-ant",
        key: type
      }, [createBaseVNode("div", null, [createBaseVNode("span", {
        class: normalizeClass({
          [`type-${type}`]: true,
          'cursor-pointer': _ctx.combined[type].length > 1
        }),
        onClick: $event => _ctx.handleToggleMoreOrLess(_ctx.combined[type])
      }, [createTextVNode(toDisplayString(type) + " ", 1), _ctx.combined[type].length > 1 ? (openBlock(), createElementBlock("span", thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_hoisted_3, [_ctx.getShowMoreExpanded(_ctx.combined[type]) ? (openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, {
        key: 0
      }, [thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_hoisted_4], 64)) : createCommentVNode("", true), !_ctx.getShowMoreExpanded(_ctx.combined[type]) ? (openBlock(), createElementBlock(runtime_core_esm_bundler_Fragment, {
        key: 1
      }, [thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_hoisted_5], 64)) : createCommentVNode("", true)])) : createCommentVNode("", true)], 10, thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_hoisted_2)]), createBaseVNode("div", thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_hoisted_6, [runtime_core_esm_bundler_createVNode(_component_ThesaurusRow, {
        class: "mt-px",
        index: 0,
        item: _ctx.combined[type][0]
      }, null, 8, ["item"]), _ctx.combined[type].length > 1 ? (openBlock(), createBlock(_component_foldable, {
        key: 0,
        fold: !_ctx.getShowMoreExpanded(_ctx.combined[type])
      }, {
        default: withCtx(() => [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.combined[type].slice(1), (tItem, tIndex) => {
          return openBlock(), createBlock(_component_ThesaurusRow, {
            class: "mt-px",
            key: tIndex,
            index: tIndex + 1,
            item: tItem
          }, null, 8, ["index", "item"]);
        }), 128))]),
        _: 2
      }, 1032, ["fold"])) : createCommentVNode("", true)])])) : createCommentVNode("", true)], 64);
    }), 64))])]),
    _: 1
  }, 8, ["fold"]);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/thesaurus/thesaurus.vue?vue&type=template&id=2759b815&scoped=true&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/modal/thesaurus/thesaurusRow/thesaurusRow.vue?vue&type=template&id=478b4d2e&ts=true

const thesaurusRowvue_type_template_id_478b4d2e_ts_true_hoisted_1 = {
  class: "thesaurus-row flex"
};
const thesaurusRowvue_type_template_id_478b4d2e_ts_true_hoisted_2 = {
  class: "tw-index text-grey-500 mr-1"
};
const thesaurusRowvue_type_template_id_478b4d2e_ts_true_hoisted_3 = ["onClick"];
const thesaurusRowvue_type_template_id_478b4d2e_ts_true_hoisted_4 = {
  key: 0,
  class: "nym-split inline pr-3px"
};
function thesaurusRowvue_type_template_id_478b4d2e_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_labels = resolveComponent("labels");

  return openBlock(), createElementBlock("div", thesaurusRowvue_type_template_id_478b4d2e_ts_true_hoisted_1, [createBaseVNode("div", thesaurusRowvue_type_template_id_478b4d2e_ts_true_hoisted_2, toDisplayString(_ctx.props.index + 1) + ". ", 1), createBaseVNode("div", null, [_ctx.props.item.register ? (openBlock(), createBlock(_component_labels, {
    key: 0,
    class: "nym-register mr-1",
    type: "register",
    size: "small",
    labels: [_ctx.props.item.register]
  }, null, 8, ["labels"])) : createCommentVNode("", true), (openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.props.item.nyms, (nym, nymIndex) => {
    return openBlock(), createElementBlock("div", {
      class: normalizeClass(["nym-item inline-flex text-grey-400", {
        'is-core': nym.isCore
      }]),
      key: nymIndex
    }, [createBaseVNode("div", {
      onClick: $event => _ctx.handleNymClick($event, nym),
      class: normalizeClass([{
        'text-link cursor-pointer': nym.numEntries
      }, "nym-content inline"])
    }, toDisplayString(nym.nym), 11, thesaurusRowvue_type_template_id_478b4d2e_ts_true_hoisted_3), nymIndex !== _ctx.props.item.nyms.length - 1 ? (openBlock(), createElementBlock("div", thesaurusRowvue_type_template_id_478b4d2e_ts_true_hoisted_4, " , ")) : createCommentVNode("", true)], 2);
  }), 128))])]);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/thesaurus/thesaurusRow/thesaurusRow.vue?vue&type=template&id=478b4d2e&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/thesaurus/thesaurusRow/thesaurusRow.ts?vue&type=script&lang=ts





/* harmony default export */ const thesaurusRowvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GThesaurusRow',
  components: {
    Labels: labels,
    Foldable: Foldable_Foldable
  },
  props: {
    item: {
      type: null,
      required: true
    },
    index: {
      type: Number,
      required: true
    }
  },
  setup: props => {
    const handleNymClick = (event, nym) => {
      if (nym.numEntries) {
        bus.emit({
          type: EVENTS.TRANSLATE,
          word: nym.nym,
          param: {
            provider: GoogleDictProvider.id
          },
          mouseEvent: event
        });
      }
    };

    return {
      props,
      handleNymClick
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/thesaurus/thesaurusRow/thesaurusRow.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/thesaurus/thesaurusRow/thesaurusRow.vue




;
const thesaurusRow_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(thesaurusRowvue_type_script_lang_ts, [['render',thesaurusRowvue_type_template_id_478b4d2e_ts_true_render]])

/* harmony default export */ const thesaurusRow = (thesaurusRow_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/thesaurus/thesaurus.ts?vue&type=script&lang=ts







/* harmony default export */ const thesaurusvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GThesaurus',
  components: {
    Labels: labels,
    Foldable: Foldable_Foldable,
    ThesaurusRow: thesaurusRow
  },
  props: {
    thesaurusEntries: {
      type: null,
      default: () => []
    }
  },
  setup: props => {
    const state = reactivity_esm_bundler_reactive({
      showMoreSet: []
    });

    const getShowMoreExpanded = item => state.showMoreSet.includes(item);

    const handleToggleMoreOrLess = item => {
      const index = state.showMoreSet.indexOf(item);

      if (index === -1) {
        state.showMoreSet.push(item);
      } else {
        state.showMoreSet.splice(index, 1);
      }
    };

    const addQoute = text => `"${text}"`;

    watch(() => props.thesaurusEntries, () => {
      state.showMoreSet = [];
    }, {
      immediate: true
    });
    const combined = runtime_core_esm_bundler_computed(() => {
      var _context, _context2;

      const synonyms = flat_map_default()(_context = props.thesaurusEntries.map(v => v.synonyms).filter(Boolean)).call(_context, v => v);

      const antonyms = flat_map_default()(_context2 = props.thesaurusEntries.map(v => v.antonyms).filter(Boolean)).call(_context2, v => v);

      return {
        synonyms,
        antonyms
      };
    });
    const folded = runtime_core_esm_bundler_computed(() => GoogleDict_store_store.data.foldStatus >= GOOGLE_DICT_FOLD_STATUS.FOLD_THESAURUS);
    return {
      t: props.thesaurusEntries,
      state,
      combined,
      folded,
      addQoute,
      handleToggleMoreOrLess,
      getShowMoreExpanded
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/thesaurus/thesaurus.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/thesaurus/thesaurus.sass?vue&type=style&index=0&id=2759b815&lang=sass&scoped=true
var thesaurusvue_type_style_index_0_id_2759b815_lang_sass_scoped_true = __webpack_require__(6210);
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/thesaurus/thesaurus.sass?vue&type=style&index=0&id=2759b815&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/thesaurus/thesaurus.vue




;


const thesaurus_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(thesaurusvue_type_script_lang_ts, [['render',thesaurusvue_type_template_id_2759b815_scoped_true_ts_true_render],['__scopeId',"data-v-2759b815"]])

/* harmony default export */ const thesaurus = (thesaurus_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/modal/exampleGroups/exampleGroups.vue?vue&type=template&id=fbe896f4&ts=true

const exampleGroupsvue_type_template_id_fbe896f4_ts_true_hoisted_1 = {
  key: 0,
  class: "example-group-box flex-col items-stretch"
};
const exampleGroupsvue_type_template_id_fbe896f4_ts_true_hoisted_2 = {
  key: 0,
  class: "example-item-box flex-col items-stretch"
};
const exampleGroupsvue_type_template_id_fbe896f4_ts_true_hoisted_3 = ["innerHTML"];
function exampleGroupsvue_type_template_id_fbe896f4_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  const _component_labels = resolveComponent("labels");

  const _component_foldable = resolveComponent("foldable");

  return openBlock(), createBlock(_component_foldable, {
    fold: _ctx.folded
  }, {
    default: withCtx(() => [_ctx.props.exampleGroups && _ctx.props.exampleGroups.length ? (openBlock(), createElementBlock("div", exampleGroupsvue_type_template_id_fbe896f4_ts_true_hoisted_1, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.props.exampleGroups, (exampleGroupItem, index) => {
      return openBlock(), createElementBlock("div", {
        class: "example-group-item flex-col items-stretch",
        key: index
      }, [exampleGroupItem.examples && exampleGroupItem.examples.length ? (openBlock(), createElementBlock("div", exampleGroupsvue_type_template_id_fbe896f4_ts_true_hoisted_2, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(exampleGroupItem.examples, (example, exampleIndex) => {
        return openBlock(), createElementBlock("div", {
          class: "example-item text-grey-500",
          key: exampleIndex
        }, [exampleGroupItem.registers && exampleGroupItem.registers.length ? (openBlock(), createBlock(_component_labels, {
          key: 0,
          class: "mr-1",
          color: "registers",
          labels: exampleGroupItem.registers
        }, null, 8, ["labels"])) : createCommentVNode("", true), createBaseVNode("span", {
          innerHTML: `"${example}"`
        }, null, 8, exampleGroupsvue_type_template_id_fbe896f4_ts_true_hoisted_3)]);
      }), 128))])) : createCommentVNode("", true)]);
    }), 128))])) : createCommentVNode("", true)]),
    _: 1
  }, 8, ["fold"]);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/exampleGroups/exampleGroups.vue?vue&type=template&id=fbe896f4&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/exampleGroups/exampleGroups.ts?vue&type=script&lang=ts





/* harmony default export */ const exampleGroupsvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GExampleGroups',
  components: {
    labels: labels,
    Foldable: Foldable_Foldable
  },
  props: {
    exampleGroups: {
      type: null,
      required: true
    }
  },
  setup: props => {
    const folded = runtime_core_esm_bundler_computed(() => GoogleDict_store_store.data.foldStatus >= GOOGLE_DICT_FOLD_STATUS.FOLD_EXAMPLES);
    return {
      props,
      folded
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/exampleGroups/exampleGroups.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/exampleGroups/exampleGroups.vue




;
const exampleGroups_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(exampleGroupsvue_type_script_lang_ts, [['render',exampleGroupsvue_type_template_id_fbe896f4_ts_true_render]])

/* harmony default export */ const exampleGroups = (exampleGroups_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/senseItem/senseItem.ts?vue&type=script&lang=ts










/* harmony default export */ const senseItemvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GSenseItem',
  components: {
    labels: labels,
    labelSet: labelSet,
    thesaurus: thesaurus,
    fragment: fragment,
    etymology: etymology,
    exampleGroups: exampleGroups,
    Foldable: Foldable_Foldable
  },
  props: {
    sense: {
      type: null,
      required: true
    },
    index: {
      type: Number,
      required: true
    }
  },
  setup: props => {
    const combinedGroups = runtime_core_esm_bundler_computed(() => {
      const eg = props.sense.exampleGroups;
      const th = props.sense.thesaurusEntries;
      const examples = eg !== null && eg !== void 0 ? eg : [];
      const thesaurusExamples = (th !== null && th !== void 0 ? th : []).map(v => v.examples).filter(Boolean).map(v => v.filter(l => !examples.find(u => !u.registers && u.examples.includes(l)))).filter(v => v.length).map(v => ({
        examples: v
      }));
      return [...examples, ...thesaurusExamples];
    });
    const subSenseFolded = runtime_core_esm_bundler_computed(() => GoogleDict_store_store.data.foldStatus >= GOOGLE_DICT_FOLD_STATUS.FOLD_SUBSENSE);
    return {
      s: props.sense,
      combinedGroups,
      subSenseFolded,
      store: GoogleDict_store_store
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/senseItem/senseItem.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/senseItem/senseItem.sass?vue&type=style&index=0&id=b981c738&lang=sass&scoped=true
var senseItemvue_type_style_index_0_id_b981c738_lang_sass_scoped_true = __webpack_require__(9731);
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/senseItem/senseItem.sass?vue&type=style&index=0&id=b981c738&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/senseItem/senseItem.vue




;


const senseItem_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(senseItemvue_type_script_lang_ts, [['render',senseItemvue_type_template_id_b981c738_scoped_true_ts_true_render],['__scopeId',"data-v-b981c738"]])

/* harmony default export */ const senseItem = (senseItem_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/provider/GoogleDict/container/components/modal/morphUnit/morphUnit.vue?vue&type=template&id=3028bb2e&ts=true

const morphUnitvue_type_template_id_3028bb2e_ts_true_hoisted_1 = {
  class: "morph-units-box"
};
const morphUnitvue_type_template_id_3028bb2e_ts_true_hoisted_2 = ["title"];
const morphUnitvue_type_template_id_3028bb2e_ts_true_hoisted_3 = {
  class: "morph-units-description inline"
};
const morphUnitvue_type_template_id_3028bb2e_ts_true_hoisted_4 = {
  class: "morph-units-word-form font-bold inline"
};

const morphUnitvue_type_template_id_3028bb2e_ts_true_hoisted_5 = /*#__PURE__*/createBaseVNode("div", {
  class: "morph-units-split inline"
}, "; ", -1);

function morphUnitvue_type_template_id_3028bb2e_ts_true_render(_ctx, _cache, $props, $setup, $data, $options) {
  return openBlock(), createElementBlock("div", morphUnitvue_type_template_id_3028bb2e_ts_true_hoisted_1, [(openBlock(true), createElementBlock(runtime_core_esm_bundler_Fragment, null, renderList(_ctx.props.morphUnits, (item, morphIndex) => {
    return openBlock(), createElementBlock("div", {
      class: "morph-units-item inline text-grey-500",
      title: item.formType.posTag,
      key: morphIndex
    }, [createBaseVNode("div", morphUnitvue_type_template_id_3028bb2e_ts_true_hoisted_3, toDisplayString(item.formType.description) + " ", 1), createBaseVNode("div", morphUnitvue_type_template_id_3028bb2e_ts_true_hoisted_4, toDisplayString(item.wordForm), 1), morphUnitvue_type_template_id_3028bb2e_ts_true_hoisted_5], 8, morphUnitvue_type_template_id_3028bb2e_ts_true_hoisted_2);
  }), 128))]);
}
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/morphUnit/morphUnit.vue?vue&type=template&id=3028bb2e&ts=true

;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/morphUnit/morphUnit.ts?vue&type=script&lang=ts

/* harmony default export */ const morphUnitvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GMorphUnits',
  props: {
    morphUnits: {
      type: null,
      required: true
    }
  },
  setup: props => ({
    props
  })
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/morphUnit/morphUnit.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/morphUnit/morphUnit.vue




;
const morphUnit_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(morphUnitvue_type_script_lang_ts, [['render',morphUnitvue_type_template_id_3028bb2e_ts_true_render]])

/* harmony default export */ const morphUnit = (morphUnit_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/components/modal/entry/entry.ts?vue&type=script&lang=ts








/* harmony default export */ const entryvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GEntry',
  components: {
    labels: labels,
    labelSet: labelSet,
    phonetics: phonetics,
    etymology: etymology,
    note: note,
    senseItem: senseItem,
    morphUnit: morphUnit
  },
  props: {
    entry: {
      type: null,
      required: true
    },
    isSubentry: {
      type: Boolean,
      required: true
    }
  },
  setup: props => ({
    e: props.entry,
    isSub: !!props.isSubentry
  })
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/entry/entry.ts?vue&type=script&lang=ts
 
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/components/modal/entry/entry.vue




;
const entry_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(entryvue_type_script_lang_ts, [['render',entryvue_type_template_id_184bced8_ts_true_render]])

/* harmony default export */ const entry = (entry_exports_);
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/GoogleDictModal.ts?vue&type=script&lang=ts













const GoogleDictModalvue_type_script_lang_ts_icon = {
  minus: minus,
  plus: plus
};
/* harmony default export */ const GoogleDictModalvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'GoogleDictModal',
  components: {
    ImageLoader: imageLoader,
    UsageOvertime: usageOvertime,
    Entry: entry,
    Scrollable: Scrollable,
    ModalComponent: modal
  },
  setup: () => {
    const state = reactivity_esm_bundler_reactive({
      containerData: null,
      id: 0
    });

    const handleOpenModal = p => {
      state.containerData = util_copy(p.googleDictData);
      state.id += 1;
      runtime_core_esm_bundler_nextTick(() => {
        viewService.openGoogleDictModal();
      });
    };

    const handleCloseModal = () => {
      viewService.closeGoogleDictModal();
    };

    const handleShrink = () => {
      const status = GoogleDict_store_store.data.foldStatus;
      GoogleDict_store_store.data.foldStatus = GOOGLE_DICT_FOLD_STATUS_NEXT_MAP[status];
    };

    const handleExpand = () => {
      const status = GoogleDict_store_store.data.foldStatus;
      GoogleDict_store_store.data.foldStatus = GOOGLE_DICT_FOLD_STATUS_PREV_MAP[status];
    };

    runtime_core_esm_bundler_onMounted(() => {
      bus.on({
        event: EVENTS.OPEN_GOOGLE_DICT_MODAL,
        listener: handleOpenModal
      });
    });
    const visible = runtime_core_esm_bundler_computed(() => viewService.state.googleDictModal);
    const shrinkable = runtime_core_esm_bundler_computed(() => GoogleDict_store_store.data.foldStatus < GOOGLE_DICT_FOLD_STATUS.FOLD_SUBSENSE);
    const expandable = runtime_core_esm_bundler_computed(() => GoogleDict_store_store.data.foldStatus > GOOGLE_DICT_FOLD_STATUS.UNFOLD);
    return {
      state,
      visible,
      icon: GoogleDictModalvue_type_script_lang_ts_icon,
      shrinkable,
      expandable,
      handleCloseModal,
      handleShrink,
      handleExpand
    };
  }
}));
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/GoogleDictModal.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/provider/GoogleDict/container/GoogleDictModal.sass?vue&type=style&index=0&id=ea3555cc&lang=sass&scoped=true
var GoogleDictModalvue_type_style_index_0_id_ea3555cc_lang_sass_scoped_true = __webpack_require__(5937);
;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/GoogleDictModal.sass?vue&type=style&index=0&id=ea3555cc&lang=sass&scoped=true

;// CONCATENATED MODULE: ./src/provider/GoogleDict/container/GoogleDictModal.vue




;


const GoogleDictModal_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(GoogleDictModalvue_type_script_lang_ts, [['render',GoogleDictModalvue_type_template_id_ea3555cc_scoped_true_ts_true_render],['__scopeId',"data-v-ea3555cc"]])

/* harmony default export */ const GoogleDictModal = (GoogleDictModal_exports_);
;// CONCATENATED MODULE: ./src/service/hotkey/index.ts


const hotkey_normalizeKey = key => key >= 'a' && key <= 'z' ? key.toUpperCase() : key;

const listeners = new Set();
const hotkey_keys = [];
let mouseEvent;

const handleClear = () => {
  hotkey_keys.length = 0;
};

const handleKeyDown = e => {
  const key = hotkey_normalizeKey(e.key);

  if (!e.repeat && !hotkey_keys.includes(key)) {
    hotkey_keys.push(key);

    if (mouseEvent) {
      Array.from(listeners).forEach(v => v([...hotkey_keys], mouseEvent, () => e.stopPropagation()));
    }
  }
};

const handleKeyUp = e => {
  const key = hotkey_normalizeKey(e.key);

  if (hotkey_keys.includes(key)) {
    hotkey_keys.splice(hotkey_keys.indexOf(key), 1);
  }
};

const handleMouseMove = e => {
  mouseEvent = e;
};

const list = [['keydown', handleKeyDown], ['keyup', handleKeyUp], ['blur', handleClear], ['focus', handleClear], ['mousemove', handleMouseMove]];
list.forEach(v => {
  window.addEventListener(v[0], v[1], true);
});

const onHotkeyPress = fn => {
  listeners.add(fn);
};

const offHotkeyPress = fn => {
  listeners.delete(fn);
};

const hotkey_match = (k1, k2) => k1.length === k2.length && k1.every(k => k2.includes(k));

const getHotkeyMatchedProvider = ks => {
  const provider = providers.find(p => {
    const providerConfig = p.store;
    return providerConfig.enableHotkey && hotkey_match(ks, providerConfig.hotkey);
  });
  return provider !== null && provider !== void 0 ? provider : null;
};

const hotkeyService = {
  onHotkeyPress,
  offHotkeyPress,
  match: hotkey_match,
  getHotkeyMatchedProvider
};
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-1.use[0]!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-1.use[2]!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/App.ts?vue&type=script&lang=ts
// eslint-disable-next-line import/no-unassigned-import
















/* harmony default export */ const Appvue_type_script_lang_ts = (runtime_core_esm_bundler_defineComponent({
  name: 'IcibaAppRoot',
  components: {
    IcibaMain: lazyLoadHoc(IcibaMain, [EVENTS.TRANSLATE, EVENTS.HOTKEY_SHOW, EVENTS.HOTKEY_TRANSLATE]),
    IcibaCircle: IcibaCircle,
    HistoryModal: HistoryModal,
    SettingPage: SettingPage,
    GoogleDictModal: GoogleDictModal
  },
  setup: () => {
    const refs = {
      icibaCircle: reactivity_esm_bundler_ref()
    };
    let lastMouseUpEvent = null;
    let lastMouseMoveEvent = null;

    const handleMouseUp = e => {
      lastMouseUpEvent = e;
    };

    const handleMouseMove = e => {
      lastMouseMoveEvent = e;
    };

    const handleShowUpHotkeyPress = (keys, stop) => {
      if (!service_store_store.core.useHotkeyShowUp) {
        return;
      }

      const hotkeyMatch = hotkeyService.match(service_store_store.core.showUpHotkey, keys);

      if (!hotkeyMatch || !lastMouseMoveEvent) {
        return;
      }

      stop();
      bus.emit({
        type: EVENTS.HOTKEY_SHOW,
        mouseEvent: lastMouseMoveEvent,
        word: getSelectionText()
      });
    };

    const handleTranslateHotkeyPress = (keys, stop) => {
      const word = getSelectionText();

      if (!lastMouseUpEvent) {
        return;
      }

      const matchedProvider = hotkeyService.getHotkeyMatchedProvider(keys);

      if (matchedProvider) {
        const mouseEvent = lastMouseUpEvent;
        translateService.removeSelection();
        stop();
        bus.emit({
          type: EVENTS.HIDE_CIRCLE
        });
        bus.emit({
          type: EVENTS.HOTKEY_TRANSLATE,
          word,
          mouseEvent,
          provider: matchedProvider.id
        });
      }
    };

    const handleHotkeyPress = (keys, _e, stop) => {
      handleShowUpHotkeyPress(keys, stop);
      handleTranslateHotkeyPress(keys, stop);
    };

    runtime_core_esm_bundler_onMounted(() => {
      window.addEventListener('mouseup', handleMouseUp, true);
      window.addEventListener('mousemove', handleMouseMove, true);
      hotkeyService.onHotkeyPress(handleHotkeyPress);
      registerMenuCommand('打开iciba划词翻译设置', () => {
        viewService.openSettings();
      });
      scrollBarWidthService.init();
    });

    if (false) {}

    return {
      refs
    };
  }
}));
;// CONCATENATED MODULE: ./src/App.ts?vue&type=script&lang=ts
 
// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-4.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./src/assets/styles/global.sass?vue&type=style&index=0&lang=sass
var globalvue_type_style_index_0_lang_sass = __webpack_require__(3295);
;// CONCATENATED MODULE: ./src/assets/styles/global.sass?vue&type=style&index=0&lang=sass

// EXTERNAL MODULE: ./node_modules/thread-loader/dist/cjs.js??clonedRuleSet-3.use[0]!./utils/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[2]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js!./node_modules/string-replace-loader/index.js??clonedRuleSet-6.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/App.vue?vue&type=style&index=1&id=63465bcb&scoped=true&lang=css
var Appvue_type_style_index_1_id_63465bcb_scoped_true_lang_css = __webpack_require__(2585);
;// CONCATENATED MODULE: ./src/App.vue?vue&type=style&index=1&id=63465bcb&scoped=true&lang=css

;// CONCATENATED MODULE: ./src/App.vue




;



const App_exports_ = /*#__PURE__*/(0,exportHelper/* default */.Z)(Appvue_type_script_lang_ts, [['render',Appvue_type_template_id_63465bcb_scoped_true_ts_true_render],['__scopeId',"data-v-63465bcb"]])

/* harmony default export */ const App = (App_exports_);
;// CONCATENATED MODULE: ./src/index.ts
/* eslint-disable import/no-unassigned-import, import/order */



















const main = async () => {
  await initStore(providers);
  const app = createApp({
    render() {
      return h(App);
    }

  });
  app.directive('ripple', diretives_ripple);
  app.directive('no-overscroll', no_overscroll);
  app.component('i-checkbox-line', checkboxLine);
  app.component('i-checkbox', checkbox_checkbox);
  app.component('i-radio-group', radioGroup);
  app.component('i-radio', radio_radio);
  app.component('i-slider', slider);
  app.component('i-hotkey-input', hotkeyInput);
  app.component('i-icon', IIcon);
  app.component('i-text-input', textInput);
  app.component('i-text-input-line', textInputLine);
  const appRoot = document.createElement('div');
  shadowRoot.appendChild(appRoot);
  app.mount(appRoot);
};

main();
})();

/******/ })()
;
}