{"version":3,"file":"js/chunk-vendors.575a21c5.js","mappings":"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","sources":["webpack://vue-ui/./node_modules/@quasar/extras/material-icons/material-icons.css","webpack://vue-ui/./node_modules/@quasar/extras/roboto-font/roboto-font.css","webpack://vue-ui/./node_modules/quasar/src/components/avatar/QAvatar.js","webpack://vue-ui/./node_modules/quasar/src/utils/throttle.js","webpack://vue-ui/./node_modules/quasar/src/directives/Ripple.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-align.js","webpack://vue-ui/./node_modules/quasar/src/components/btn/use-btn.js","webpack://vue-ui/./node_modules/quasar/src/components/btn/QBtn.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-refocus-target.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/option-sizes.js","webpack://vue-ui/./node_modules/quasar/src/components/checkbox/use-checkbox.js","webpack://vue-ui/./node_modules/quasar/src/components/checkbox/QCheckbox.js","webpack://vue-ui/./node_modules/quasar/src/components/form/QForm.js","webpack://vue-ui/./node_modules/quasar/src/components/header/QHeader.js","webpack://vue-ui/./node_modules/quasar/src/components/icon/QIcon.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-ratio.js","webpack://vue-ui/./node_modules/quasar/src/components/img/QImg.js","webpack://vue-ui/./node_modules/quasar/src/composables/use-form-child.js","webpack://vue-ui/./node_modules/quasar/src/utils/patterns.js","webpack://vue-ui/./node_modules/quasar/src/utils/extend.js","webpack://vue-ui/./node_modules/quasar/src/plugins/Meta.js","webpack://vue-ui/./node_modules/quasar/src/components/circular-progress/use-circular-progress.js","webpack://vue-ui/./node_modules/quasar/src/utils/format.js","webpack://vue-ui/./node_modules/quasar/src/components/circular-progress/QCircularProgress.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-file.js","webpack://vue-ui/./node_modules/quasar/src/components/uploader/uploader-core.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/get-emits-object.js","webpack://vue-ui/./node_modules/quasar/src/utils/create-uploader-component.js","webpack://vue-ui/./node_modules/quasar/src/utils/date.js","webpack://vue-ui/./node_modules/quasar/src/utils/uid.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-validate.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-split-attrs.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-field.js","webpack://vue-ui/./node_modules/quasar/src/components/input/use-mask.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-file-dom-props.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-key-composition.js","webpack://vue-ui/./node_modules/quasar/src/components/input/QInput.js","webpack://vue-ui/./node_modules/quasar/src/components/item/QItem.js","webpack://vue-ui/./node_modules/quasar/src/components/item/QItemSection.js","webpack://vue-ui/./node_modules/quasar/src/components/item/QList.js","webpack://vue-ui/./node_modules/quasar/src/components/scroll-observer/QScrollObserver.js","webpack://vue-ui/./node_modules/quasar/src/components/layout/QLayout.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/selection.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-anchor.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-scroll-target.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-model-toggle.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/portal.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-portal.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-transition.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-tick.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-timeout.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/escape-key.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/focusout.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/click-outside.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/position-engine.js","webpack://vue-ui/./node_modules/quasar/src/components/menu/QMenu.js","webpack://vue-ui/./node_modules/quasar/src/components/page/QPage.js","webpack://vue-ui/./node_modules/quasar/src/components/page/QPageContainer.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-can-render.js","webpack://vue-ui/./node_modules/quasar/src/components/resize-observer/QResizeObserver.js","webpack://vue-ui/./node_modules/quasar/src/components/separator/QSeparator.js","webpack://vue-ui/./node_modules/quasar/src/components/spinner/use-spinner.js","webpack://vue-ui/./node_modules/quasar/src/components/spinner/QSpinner.js","webpack://vue-ui/./node_modules/quasar/src/components/toolbar/QToolbar.js","webpack://vue-ui/./node_modules/quasar/src/components/toolbar/QToolbarTitle.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-dark.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-form.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-router-link.js","webpack://vue-ui/./node_modules/quasar/src/composables/private/use-size.js","webpack://vue-ui/./node_modules/quasar/src/composables/use-quasar.js","webpack://vue-ui/./node_modules/quasar/icon-set/material-icons.mjs","webpack://vue-ui/./node_modules/quasar/src/icon-set.js","webpack://vue-ui/./node_modules/quasar/src/plugins/Screen.js","webpack://vue-ui/./node_modules/quasar/src/plugins/Dark.js","webpack://vue-ui/./node_modules/quasar/src/history.js","webpack://vue-ui/./node_modules/quasar/src/body.js","webpack://vue-ui/./node_modules/quasar/src/install-quasar.js","webpack://vue-ui/./node_modules/quasar/lang/en-US.mjs","webpack://vue-ui/./node_modules/quasar/src/lang.js","webpack://vue-ui/./node_modules/quasar/src/plugins/Notify.js","webpack://vue-ui/./node_modules/quasar/src/plugins/Platform.js","webpack://vue-ui/./node_modules/quasar/src/utils/debounce.js","webpack://vue-ui/./node_modules/quasar/src/utils/dom.js","webpack://vue-ui/./node_modules/quasar/src/utils/event.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/create.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/define-reactive-plugin.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/focus-manager.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/global-config.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/global-nodes.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/inject-obj-prop.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/is.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/key-composition.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/render.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/symbols.js","webpack://vue-ui/./node_modules/quasar/src/utils/private/vm.js","webpack://vue-ui/./node_modules/quasar/src/utils/scroll.js","webpack://vue-ui/./node_modules/quasar/src/utils/set-css-var.js","webpack://vue-ui/./node_modules/quasar/src/vue-plugin.js","webpack://vue-ui/./node_modules/@vue/cli-service/node_modules/vue-loader/dist/exportHelper.js","webpack://vue-ui/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://vue-ui/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://vue-ui/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://vue-ui/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://vue-ui/./node_modules/core-js/internals/a-callable.js","webpack://vue-ui/./node_modules/core-js/internals/a-possible-prototype.js","webpack://vue-ui/./node_modules/core-js/internals/add-to-unscopables.js","webpack://vue-ui/./node_modules/core-js/internals/an-object.js","webpack://vue-ui/./node_modules/core-js/internals/array-buffer-native.js","webpack://vue-ui/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://vue-ui/./node_modules/core-js/internals/array-includes.js","webpack://vue-ui/./node_modules/core-js/internals/classof-raw.js","webpack://vue-ui/./node_modules/core-js/internals/classof.js","webpack://vue-ui/./node_modules/core-js/internals/clear-error-stack.js","webpack://vue-ui/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://vue-ui/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://vue-ui/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://vue-ui/./node_modules/core-js/internals/create-property-descriptor.js","webpack://vue-ui/./node_modules/core-js/internals/define-built-in.js","webpack://vue-ui/./node_modules/core-js/internals/define-global-property.js","webpack://vue-ui/./node_modules/core-js/internals/descriptors.js","webpack://vue-ui/./node_modules/core-js/internals/document-create-element.js","webpack://vue-ui/./node_modules/core-js/internals/engine-user-agent.js","webpack://vue-ui/./node_modules/core-js/internals/engine-v8-version.js","webpack://vue-ui/./node_modules/core-js/internals/enum-bug-keys.js","webpack://vue-ui/./node_modules/core-js/internals/error-stack-installable.js","webpack://vue-ui/./node_modules/core-js/internals/export.js","webpack://vue-ui/./node_modules/core-js/internals/fails.js","webpack://vue-ui/./node_modules/core-js/internals/function-apply.js","webpack://vue-ui/./node_modules/core-js/internals/function-bind-native.js","webpack://vue-ui/./node_modules/core-js/internals/function-call.js","webpack://vue-ui/./node_modules/core-js/internals/function-name.js","webpack://vue-ui/./node_modules/core-js/internals/function-uncurry-this.js","webpack://vue-ui/./node_modules/core-js/internals/get-built-in.js","webpack://vue-ui/./node_modules/core-js/internals/get-method.js","webpack://vue-ui/./node_modules/core-js/internals/global.js","webpack://vue-ui/./node_modules/core-js/internals/has-own-property.js","webpack://vue-ui/./node_modules/core-js/internals/hidden-keys.js","webpack://vue-ui/./node_modules/core-js/internals/html.js","webpack://vue-ui/./node_modules/core-js/internals/ie8-dom-define.js","webpack://vue-ui/./node_modules/core-js/internals/indexed-object.js","webpack://vue-ui/./node_modules/core-js/internals/inherit-if-required.js","webpack://vue-ui/./node_modules/core-js/internals/inspect-source.js","webpack://vue-ui/./node_modules/core-js/internals/install-error-cause.js","webpack://vue-ui/./node_modules/core-js/internals/internal-state.js","webpack://vue-ui/./node_modules/core-js/internals/is-callable.js","webpack://vue-ui/./node_modules/core-js/internals/is-forced.js","webpack://vue-ui/./node_modules/core-js/internals/is-object.js","webpack://vue-ui/./node_modules/core-js/internals/is-pure.js","webpack://vue-ui/./node_modules/core-js/internals/is-symbol.js","webpack://vue-ui/./node_modules/core-js/internals/length-of-array-like.js","webpack://vue-ui/./node_modules/core-js/internals/make-built-in.js","webpack://vue-ui/./node_modules/core-js/internals/math-trunc.js","webpack://vue-ui/./node_modules/core-js/internals/native-symbol.js","webpack://vue-ui/./node_modules/core-js/internals/native-weak-map.js","webpack://vue-ui/./node_modules/core-js/internals/normalize-string-argument.js","webpack://vue-ui/./node_modules/core-js/internals/object-create.js","webpack://vue-ui/./node_modules/core-js/internals/object-define-properties.js","webpack://vue-ui/./node_modules/core-js/internals/object-define-property.js","webpack://vue-ui/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://vue-ui/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://vue-ui/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://vue-ui/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://vue-ui/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://vue-ui/./node_modules/core-js/internals/object-keys-internal.js","webpack://vue-ui/./node_modules/core-js/internals/object-keys.js","webpack://vue-ui/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://vue-ui/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://vue-ui/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://vue-ui/./node_modules/core-js/internals/own-keys.js","webpack://vue-ui/./node_modules/core-js/internals/proxy-accessor.js","webpack://vue-ui/./node_modules/core-js/internals/require-object-coercible.js","webpack://vue-ui/./node_modules/core-js/internals/shared-key.js","webpack://vue-ui/./node_modules/core-js/internals/shared-store.js","webpack://vue-ui/./node_modules/core-js/internals/shared.js","webpack://vue-ui/./node_modules/core-js/internals/to-absolute-index.js","webpack://vue-ui/./node_modules/core-js/internals/to-indexed-object.js","webpack://vue-ui/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://vue-ui/./node_modules/core-js/internals/to-length.js","webpack://vue-ui/./node_modules/core-js/internals/to-object.js","webpack://vue-ui/./node_modules/core-js/internals/to-offset.js","webpack://vue-ui/./node_modules/core-js/internals/to-positive-integer.js","webpack://vue-ui/./node_modules/core-js/internals/to-primitive.js","webpack://vue-ui/./node_modules/core-js/internals/to-property-key.js","webpack://vue-ui/./node_modules/core-js/internals/to-string-tag-support.js","webpack://vue-ui/./node_modules/core-js/internals/to-string.js","webpack://vue-ui/./node_modules/core-js/internals/try-to-string.js","webpack://vue-ui/./node_modules/core-js/internals/uid.js","webpack://vue-ui/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://vue-ui/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://vue-ui/./node_modules/core-js/internals/well-known-symbol.js","webpack://vue-ui/./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://vue-ui/./node_modules/core-js/modules/es.array.includes.js","webpack://vue-ui/./node_modules/core-js/modules/es.error.cause.js","webpack://vue-ui/./node_modules/core-js/modules/es.typed-array.at.js","webpack://vue-ui/./node_modules/core-js/modules/es.typed-array.set.js","webpack://vue-ui/./node_modules/css-loader/dist/runtime/api.js","webpack://vue-ui/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://vue-ui/./node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack://vue-ui/./node_modules/vue-cli-plugin-quasar/lib/runtime.auto-import.js","webpack://vue-ui/./node_modules/@quasar/extras/material-icons/material-icons.css?8a80","webpack://vue-ui/./node_modules/@quasar/extras/roboto-font/roboto-font.css?6328","webpack://vue-ui/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://vue-ui/./node_modules/vue-style-loader/lib/addStylesClient.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"web-font/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"web-font/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.woff\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@font-face{font-family:Material Icons;font-style:normal;font-weight:400;font-display:block;src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format(\\\"woff2\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format(\\\"woff\\\")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\\\"liga\\\"}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"web-font/KFOkCnqEu92Fr1MmgVxIIzQ.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"web-font/KFOlCnqEu92Fr1MmSU5fBBc-.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"web-font/KFOmCnqEu92Fr1Mu4mxM.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"web-font/KFOlCnqEu92Fr1MmEU9fBBc-.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"web-font/KFOlCnqEu92Fr1MmWUlfBBc-.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"web-font/KFOlCnqEu92Fr1MmYUtfBBc-.woff\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@font-face{font-family:Roboto;font-style:normal;font-weight:100;src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \") format(\\\"woff\\\")}@font-face{font-family:Roboto;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format(\\\"woff\\\")}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format(\\\"woff\\\")}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") format(\\\"woff\\\")}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \") format(\\\"woff\\\")}@font-face{font-family:Roboto;font-style:normal;font-weight:900;src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \") format(\\\"woff\\\")}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { h, computed } from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport useSize, { useSizeProps } from '../../composables/private/use-size.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hMergeSlotSafely } from '../../utils/private/render.js'\n\nexport default createComponent({\n name: 'QAvatar',\n\n props: {\n ...useSizeProps,\n\n fontSize: String,\n\n color: String,\n textColor: String,\n\n icon: String,\n square: Boolean,\n rounded: Boolean\n },\n\n setup (props, { slots }) {\n const sizeStyle = useSize(props)\n\n const classes = computed(() =>\n 'q-avatar'\n + (props.color ? ` bg-${ props.color }` : '')\n + (props.textColor ? ` text-${ props.textColor } q-chip--colored` : '')\n + (\n props.square === true\n ? ' q-avatar--square'\n : (props.rounded === true ? ' rounded-borders' : '')\n )\n )\n\n const contentStyle = computed(() => (\n props.fontSize\n ? { fontSize: props.fontSize }\n : null\n ))\n\n return () => {\n const icon = props.icon !== void 0\n ? [ h(QIcon, { name: props.icon }) ]\n : void 0\n\n return h('div', {\n class: classes.value,\n style: sizeStyle.value\n }, [\n h('div', {\n class: 'q-avatar__content row flex-center overflow-hidden',\n style: contentStyle.value\n }, hMergeSlotSafely(slots.default, icon))\n ])\n }\n }\n})\n","export default function (fn, limit = 250) {\n let wait = false, result\n\n return function (/* ...args */) {\n if (wait === false) {\n wait = true\n setTimeout(() => { wait = false }, limit)\n result = fn.apply(this, arguments)\n }\n\n return result\n }\n}\n","import { createDirective } from '../utils/private/create.js'\nimport { css } from '../utils/dom.js'\nimport { position, stop, addEvt, cleanEvt } from '../utils/event.js'\nimport { isKeyCode } from '../utils/private/key-composition.js'\nimport throttle from '../utils/throttle.js'\nimport getSSRProps from '../utils/private/noop-ssr-directive-transform.js'\n\nfunction showRipple (evt, el, ctx, forceCenter) {\n ctx.modifiers.stop === true && stop(evt)\n\n const color = ctx.modifiers.color\n let center = ctx.modifiers.center\n center = center === true || forceCenter === true\n\n const\n node = document.createElement('span'),\n innerNode = document.createElement('span'),\n pos = position(evt),\n { left, top, width, height } = el.getBoundingClientRect(),\n diameter = Math.sqrt(width * width + height * height),\n radius = diameter / 2,\n centerX = `${ (width - diameter) / 2 }px`,\n x = center ? centerX : `${ pos.left - left - radius }px`,\n centerY = `${ (height - diameter) / 2 }px`,\n y = center ? centerY : `${ pos.top - top - radius }px`\n\n innerNode.className = 'q-ripple__inner'\n css(innerNode, {\n height: `${ diameter }px`,\n width: `${ diameter }px`,\n transform: `translate3d(${ x },${ y },0) scale3d(.2,.2,1)`,\n opacity: 0\n })\n\n node.className = `q-ripple${ color ? ' text-' + color : '' }`\n node.setAttribute('dir', 'ltr')\n node.appendChild(innerNode)\n el.appendChild(node)\n\n const abort = () => {\n node.remove()\n clearTimeout(timer)\n }\n ctx.abort.push(abort)\n\n let timer = setTimeout(() => {\n innerNode.classList.add('q-ripple__inner--enter')\n innerNode.style.transform = `translate3d(${ centerX },${ centerY },0) scale3d(1,1,1)`\n innerNode.style.opacity = 0.2\n\n timer = setTimeout(() => {\n innerNode.classList.remove('q-ripple__inner--enter')\n innerNode.classList.add('q-ripple__inner--leave')\n innerNode.style.opacity = 0\n\n timer = setTimeout(() => {\n node.remove()\n ctx.abort.splice(ctx.abort.indexOf(abort), 1)\n }, 275)\n }, 250)\n }, 50)\n}\n\nfunction updateModifiers (ctx, { modifiers, value, arg, instance }) {\n const cfg = Object.assign({}, instance.$q.config.ripple, modifiers, value)\n ctx.modifiers = {\n early: cfg.early === true,\n stop: cfg.stop === true,\n center: cfg.center === true,\n color: cfg.color || arg,\n keyCodes: [].concat(cfg.keyCodes || 13)\n }\n}\n\nexport default createDirective(__QUASAR_SSR_SERVER__\n ? { name: 'ripple', getSSRProps }\n : {\n name: 'ripple',\n\n beforeMount (el, binding) {\n const ctx = {\n enabled: binding.value !== false,\n modifiers: {},\n abort: [],\n\n start (evt) {\n if (\n ctx.enabled === true\n && evt.qSkipRipple !== true\n && (\n ctx.modifiers.early === true\n ? [ 'mousedown', 'touchstart' ].includes(evt.type) === true\n : evt.type === 'click'\n )\n ) {\n showRipple(evt, el, ctx, evt.qKeyEvent === true)\n }\n },\n\n keystart: throttle(evt => {\n if (\n ctx.enabled === true\n && evt.qSkipRipple !== true\n && isKeyCode(evt, ctx.modifiers.keyCodes) === true\n && evt.type === `key${ ctx.modifiers.early === true ? 'down' : 'up' }`\n ) {\n showRipple(evt, el, ctx, true)\n }\n }, 300)\n }\n\n updateModifiers(ctx, binding)\n\n el.__qripple = ctx\n\n addEvt(ctx, 'main', [\n [ el, 'mousedown', 'start', 'passive' ],\n [ el, 'touchstart', 'start', 'passive' ],\n [ el, 'click', 'start', 'passive' ],\n [ el, 'keydown', 'keystart', 'passive' ],\n [ el, 'keyup', 'keystart', 'passive' ]\n ])\n },\n\n updated (el, binding) {\n if (binding.oldValue !== binding.value) {\n const ctx = el.__qripple\n ctx.enabled = binding.value !== false\n\n if (ctx.enabled === true && Object(binding.value) === binding.value) {\n updateModifiers(ctx, binding)\n }\n }\n },\n\n beforeUnmount (el) {\n const ctx = el.__qripple\n ctx.abort.forEach(fn => { fn() })\n cleanEvt(ctx, 'main')\n delete el._qripple\n }\n }\n)\n","import { computed } from 'vue'\n\nexport const alignMap = {\n left: 'start',\n center: 'center',\n right: 'end',\n between: 'between',\n around: 'around',\n evenly: 'evenly',\n stretch: 'stretch'\n}\n\nexport const alignValues = Object.keys(alignMap)\n\nexport const useAlignProps = {\n align: {\n type: String,\n validator: v => alignValues.includes(v)\n }\n}\n\nexport default function (props) {\n // return alignClass\n return computed(() => {\n const align = props.align === void 0\n ? props.vertical === true ? 'stretch' : 'left'\n : props.align\n\n return `${ props.vertical === true ? 'items' : 'justify' }-${ alignMap[ align ] }`\n })\n}\n","import { computed } from 'vue'\n\nimport useAlign, { useAlignProps } from '../../composables/private/use-align.js'\nimport useSize, { useSizeProps } from '../../composables/private/use-size.js'\nimport useRouterLink, { useRouterLinkProps } from '../../composables/private/use-router-link.js'\n\nconst padding = {\n none: 0,\n xs: 4,\n sm: 8,\n md: 16,\n lg: 24,\n xl: 32\n}\n\nconst defaultSizes = {\n xs: 8,\n sm: 10,\n md: 14,\n lg: 20,\n xl: 24\n}\n\nconst formTypes = [ 'button', 'submit', 'reset' ]\nconst mediaTypeRE = /[^\\s]\\/[^\\s]/\n\nexport const useBtnProps = {\n ...useSizeProps,\n ...useRouterLinkProps,\n\n type: {\n type: String,\n default: 'button'\n },\n\n label: [ Number, String ],\n icon: String,\n iconRight: String,\n\n round: Boolean,\n outline: Boolean,\n flat: Boolean,\n unelevated: Boolean,\n rounded: Boolean,\n push: Boolean,\n glossy: Boolean,\n\n size: String,\n fab: Boolean,\n fabMini: Boolean,\n padding: String,\n\n color: String,\n textColor: String,\n noCaps: Boolean,\n noWrap: Boolean,\n dense: Boolean,\n\n tabindex: [ Number, String ],\n\n ripple: {\n type: [ Boolean, Object ],\n default: true\n },\n\n align: {\n ...useAlignProps.align,\n default: 'center'\n },\n stack: Boolean,\n stretch: Boolean,\n loading: {\n type: Boolean,\n default: null\n },\n disable: Boolean\n}\n\nexport default function (props) {\n const sizeStyle = useSize(props, defaultSizes)\n const alignClass = useAlign(props)\n const { hasRouterLink, hasLink, linkTag, linkProps, navigateToRouterLink } = useRouterLink('button')\n\n const style = computed(() => {\n const obj = props.fab === false && props.fabMini === false\n ? sizeStyle.value\n : {}\n\n return props.padding !== void 0\n ? Object.assign({}, obj, {\n padding: props.padding\n .split(/\\s+/)\n .map(v => (v in padding ? padding[ v ] + 'px' : v))\n .join(' '),\n minWidth: '0',\n minHeight: '0'\n })\n : obj\n })\n\n const isRounded = computed(() =>\n props.rounded === true || props.fab === true || props.fabMini === true\n )\n\n const isActionable = computed(() =>\n props.disable !== true && props.loading !== true\n )\n\n const tabIndex = computed(() => (\n isActionable.value === true ? props.tabindex || 0 : -1\n ))\n\n const design = computed(() => {\n if (props.flat === true) return 'flat'\n if (props.outline === true) return 'outline'\n if (props.push === true) return 'push'\n if (props.unelevated === true) return 'unelevated'\n return 'standard'\n })\n\n const attributes = computed(() => {\n const acc = { tabindex: tabIndex.value }\n\n if (hasLink.value === true) {\n Object.assign(acc, linkProps.value)\n }\n else if (formTypes.includes(props.type) === true) {\n acc.type = props.type\n }\n\n if (linkTag.value === 'a') {\n if (props.disable === true) {\n acc[ 'aria-disabled' ] = 'true'\n }\n else if (acc.href === void 0) {\n acc.role = 'button'\n }\n if (hasRouterLink.value !== true && mediaTypeRE.test(props.type) === true) {\n acc.type = props.type\n }\n }\n else if (props.disable === true) {\n acc.disabled = ''\n acc[ 'aria-disabled' ] = 'true'\n }\n\n if (props.loading === true && props.percentage !== void 0) {\n Object.assign(acc, {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': props.percentage\n })\n }\n\n return acc\n })\n\n const classes = computed(() => {\n let colors\n\n if (props.color !== void 0) {\n if (props.flat === true || props.outline === true) {\n colors = `text-${ props.textColor || props.color }`\n }\n else {\n colors = `bg-${ props.color } text-${ props.textColor || 'white' }`\n }\n }\n else if (props.textColor) {\n colors = `text-${ props.textColor }`\n }\n\n return `q-btn--${ design.value } `\n + `q-btn--${ props.round === true ? 'round' : `rectangle${ isRounded.value === true ? ' q-btn--rounded' : '' }` }`\n + (colors !== void 0 ? ' ' + colors : '')\n + (isActionable.value === true ? ' q-btn--actionable q-focusable q-hoverable' : (props.disable === true ? ' disabled' : ''))\n + (props.fab === true ? ' q-btn--fab' : (props.fabMini === true ? ' q-btn--fab-mini' : ''))\n + (props.noCaps === true ? ' q-btn--no-uppercase' : '')\n + (props.dense === true ? ' q-btn--dense' : '')\n + (props.stretch === true ? ' no-border-radius self-stretch' : '')\n + (props.glossy === true ? ' glossy' : '')\n })\n\n const innerClasses = computed(() =>\n alignClass.value + (props.stack === true ? ' column' : ' row')\n + (props.noWrap === true ? ' no-wrap text-no-wrap' : '')\n + (props.loading === true ? ' q-btn__content--hidden' : '')\n )\n\n return {\n classes,\n style,\n innerClasses,\n attributes,\n hasRouterLink,\n hasLink,\n linkTag,\n navigateToRouterLink,\n isActionable\n }\n}\n","import { h, ref, computed, Transition, onBeforeUnmount, withDirectives, getCurrentInstance } from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\nimport QSpinner from '../spinner/QSpinner.js'\n\nimport Ripple from '../../directives/Ripple.js'\n\nimport useBtn, { useBtnProps } from './use-btn.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hMergeSlot } from '../../utils/private/render.js'\nimport { stop, prevent, stopAndPrevent, listenOpts } from '../../utils/event.js'\nimport { isKeyCode } from '../../utils/private/key-composition.js'\n\nconst { passiveCapture } = listenOpts\n\nlet\n touchTarget = null,\n keyboardTarget = null,\n mouseTarget = null\n\nexport default createComponent({\n name: 'QBtn',\n\n props: {\n ...useBtnProps,\n\n percentage: Number,\n darkPercentage: Boolean\n },\n\n emits: [ 'click', 'keydown', 'touchstart', 'mousedown', 'keyup' ],\n\n setup (props, { slots, emit }) {\n const { proxy } = getCurrentInstance()\n\n const {\n classes, style, innerClasses,\n attributes,\n hasRouterLink, hasLink, linkTag, navigateToRouterLink,\n isActionable\n } = useBtn(props)\n\n const rootRef = ref(null)\n const blurTargetRef = ref(null)\n\n let localTouchTargetEl = null, avoidMouseRipple, mouseTimer\n\n const hasLabel = computed(() =>\n props.label !== void 0 && props.label !== null && props.label !== ''\n )\n\n const ripple = computed(() => (\n props.disable === true || props.ripple === false\n ? false\n : {\n keyCodes: hasLink.value === true ? [ 13, 32 ] : [ 13 ],\n ...(props.ripple === true ? {} : props.ripple)\n }\n ))\n\n const rippleProps = computed(() => ({ center: props.round }))\n\n const percentageStyle = computed(() => {\n const val = Math.max(0, Math.min(100, props.percentage))\n return val > 0\n ? { transition: 'transform 0.6s', transform: `translateX(${ val - 100 }%)` }\n : {}\n })\n\n const onEvents = computed(() => {\n if (props.loading === true) {\n return {\n onMousedown: onLoadingEvt,\n onTouchstartPassive: onLoadingEvt,\n onClick: onLoadingEvt,\n onKeydown: onLoadingEvt,\n onKeyup: onLoadingEvt\n }\n }\n\n if (isActionable.value === true) {\n return {\n onClick,\n onKeydown,\n onMousedown,\n onTouchstart\n }\n }\n\n return {\n // needed; especially for disabled tags\n onClick: stopAndPrevent\n }\n })\n\n const nodeProps = computed(() => ({\n ref: rootRef,\n class: 'q-btn q-btn-item non-selectable no-outline ' + classes.value,\n style: style.value,\n ...attributes.value,\n ...onEvents.value\n }))\n\n function onClick (e) {\n // is it already destroyed?\n if (rootRef.value === null) { return }\n\n if (e !== void 0) {\n if (e.defaultPrevented === true) {\n return\n }\n\n const el = document.activeElement\n // focus button if it came from ENTER on form\n // prevent the new submit (already done)\n if (\n props.type === 'submit'\n && el !== document.body\n && rootRef.value.contains(el) === false\n // required for iOS and desktop Safari\n && el.contains(rootRef.value) === false\n ) {\n rootRef.value.focus()\n\n const onClickCleanup = () => {\n document.removeEventListener('keydown', stopAndPrevent, true)\n document.removeEventListener('keyup', onClickCleanup, passiveCapture)\n rootRef.value !== null && rootRef.value.removeEventListener('blur', onClickCleanup, passiveCapture)\n }\n\n document.addEventListener('keydown', stopAndPrevent, true)\n document.addEventListener('keyup', onClickCleanup, passiveCapture)\n rootRef.value.addEventListener('blur', onClickCleanup, passiveCapture)\n }\n }\n\n if (hasRouterLink.value === true) {\n const go = () => {\n e.__qNavigate = true\n navigateToRouterLink(e)\n }\n\n emit('click', e, go)\n e.defaultPrevented !== true && go()\n }\n else {\n emit('click', e)\n }\n }\n\n function onKeydown (e) {\n // is it already destroyed?\n if (rootRef.value === null) { return }\n\n emit('keydown', e)\n\n if (isKeyCode(e, [ 13, 32 ]) === true && keyboardTarget !== rootRef.value) {\n keyboardTarget !== null && cleanup()\n\n if (e.defaultPrevented !== true) {\n // focus external button if the focus helper was focused before\n rootRef.value.focus()\n\n keyboardTarget = rootRef.value\n rootRef.value.classList.add('q-btn--active')\n document.addEventListener('keyup', onPressEnd, true)\n rootRef.value.addEventListener('blur', onPressEnd, passiveCapture)\n }\n\n stopAndPrevent(e)\n }\n }\n\n function onTouchstart (e) {\n // is it already destroyed?\n if (rootRef.value === null) { return }\n\n emit('touchstart', e)\n\n if (e.defaultPrevented === true) { return }\n\n if (touchTarget !== rootRef.value) {\n touchTarget !== null && cleanup()\n touchTarget = rootRef.value\n\n localTouchTargetEl = e.target\n localTouchTargetEl.addEventListener('touchcancel', onPressEnd, passiveCapture)\n localTouchTargetEl.addEventListener('touchend', onPressEnd, passiveCapture)\n }\n\n // avoid duplicated mousedown event\n // triggering another early ripple\n avoidMouseRipple = true\n clearTimeout(mouseTimer)\n mouseTimer = setTimeout(() => {\n avoidMouseRipple = false\n }, 200)\n }\n\n function onMousedown (e) {\n // is it already destroyed?\n if (rootRef.value === null) { return }\n\n e.qSkipRipple = avoidMouseRipple === true\n emit('mousedown', e)\n\n if (e.defaultPrevented !== true && mouseTarget !== rootRef.value) {\n mouseTarget !== null && cleanup()\n mouseTarget = rootRef.value\n rootRef.value.classList.add('q-btn--active')\n document.addEventListener('mouseup', onPressEnd, passiveCapture)\n }\n }\n\n function onPressEnd (e) {\n // is it already destroyed?\n if (rootRef.value === null) { return }\n\n // needed for IE (because it emits blur when focusing button from focus helper)\n if (e !== void 0 && e.type === 'blur' && document.activeElement === rootRef.value) {\n return\n }\n\n if (e !== void 0 && e.type === 'keyup') {\n if (keyboardTarget === rootRef.value && isKeyCode(e, [ 13, 32 ]) === true) {\n // for click trigger\n const evt = new MouseEvent('click', e)\n evt.qKeyEvent = true\n e.defaultPrevented === true && prevent(evt)\n e.cancelBubble === true && stop(evt)\n rootRef.value.dispatchEvent(evt)\n\n stopAndPrevent(e)\n\n // for ripple\n e.qKeyEvent = true\n }\n\n emit('keyup', e)\n }\n\n cleanup()\n }\n\n function cleanup (destroying) {\n const blurTarget = blurTargetRef.value\n\n if (\n destroying !== true\n && (touchTarget === rootRef.value || mouseTarget === rootRef.value)\n && blurTarget !== null\n && blurTarget !== document.activeElement\n ) {\n blurTarget.setAttribute('tabindex', -1)\n blurTarget.focus()\n }\n\n if (touchTarget === rootRef.value) {\n if (localTouchTargetEl !== null) {\n localTouchTargetEl.removeEventListener('touchcancel', onPressEnd, passiveCapture)\n localTouchTargetEl.removeEventListener('touchend', onPressEnd, passiveCapture)\n }\n touchTarget = localTouchTargetEl = null\n }\n\n if (mouseTarget === rootRef.value) {\n document.removeEventListener('mouseup', onPressEnd, passiveCapture)\n mouseTarget = null\n }\n\n if (keyboardTarget === rootRef.value) {\n document.removeEventListener('keyup', onPressEnd, true)\n rootRef.value !== null && rootRef.value.removeEventListener('blur', onPressEnd, passiveCapture)\n keyboardTarget = null\n }\n\n rootRef.value !== null && rootRef.value.classList.remove('q-btn--active')\n }\n\n function onLoadingEvt (evt) {\n stopAndPrevent(evt)\n evt.qSkipRipple = true\n }\n\n onBeforeUnmount(() => {\n cleanup(true)\n })\n\n // expose public methods\n Object.assign(proxy, { click: onClick })\n\n return () => {\n let inner = []\n\n props.icon !== void 0 && inner.push(\n h(QIcon, {\n name: props.icon,\n left: props.stack === false && hasLabel.value === true,\n role: 'img',\n 'aria-hidden': 'true'\n })\n )\n\n hasLabel.value === true && inner.push(\n h('span', { class: 'block' }, [ props.label ])\n )\n\n inner = hMergeSlot(slots.default, inner)\n\n if (props.iconRight !== void 0 && props.round === false) {\n inner.push(\n h(QIcon, {\n name: props.iconRight,\n right: props.stack === false && hasLabel.value === true,\n role: 'img',\n 'aria-hidden': 'true'\n })\n )\n }\n\n const child = [\n h('span', {\n class: 'q-focus-helper',\n ref: blurTargetRef\n })\n ]\n\n if (props.loading === true && props.percentage !== void 0) {\n child.push(\n h('span', {\n class: 'q-btn__progress absolute-full overflow-hidden' + (props.darkPercentage === true ? ' q-btn__progress--dark' : '')\n }, [\n h('span', {\n class: 'q-btn__progress-indicator fit block',\n style: percentageStyle.value\n })\n ])\n )\n }\n\n child.push(\n h('span', {\n class: 'q-btn__content text-center col items-center q-anchor--skip ' + innerClasses.value\n }, inner)\n )\n\n props.loading !== null && child.push(\n h(Transition, {\n name: 'q-transition--fade'\n }, () => (\n props.loading === true\n ? [\n h('span', {\n key: 'loading',\n class: 'absolute-full flex flex-center'\n }, slots.loading !== void 0 ? slots.loading() : [ h(QSpinner) ])\n ]\n : null\n ))\n )\n\n return withDirectives(\n h(\n linkTag.value,\n nodeProps.value,\n child\n ),\n [ [\n Ripple,\n ripple.value,\n void 0,\n rippleProps.value\n ] ]\n )\n }\n }\n})\n","import { h, computed, ref } from 'vue'\n\nexport default function (props, rootRef) {\n const refocusRef = ref(null)\n\n const refocusTargetEl = computed(() => {\n if (props.disable !== true) {\n return null\n }\n\n return h('span', {\n ref: refocusRef,\n class: 'no-outline',\n tabindex: -1\n })\n })\n\n function refocusTarget (e) {\n const root = rootRef.value\n\n if (e !== void 0 && e.type.indexOf('key') === 0) {\n if (\n root !== null\n && document.activeElement !== root\n && root.contains(document.activeElement) === true\n ) {\n root.focus()\n }\n }\n else if (\n refocusRef.value !== null\n && (e === void 0 || (root !== null && root.contains(e.target) === true))\n ) {\n refocusRef.value.focus()\n }\n }\n\n return {\n refocusTargetEl,\n refocusTarget\n }\n}\n","export default {\n xs: 30,\n sm: 35,\n md: 40,\n lg: 50,\n xl: 60\n}\n","import { h, ref, computed, getCurrentInstance, toRaw } from 'vue'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport useSize, { useSizeProps } from '../../composables/private/use-size.js'\nimport useRefocusTarget from '../../composables/private/use-refocus-target.js'\nimport { useFormInject, useFormProps } from '../../composables/private/use-form.js'\n\nimport optionSizes from '../../utils/private/option-sizes.js'\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { hSlot, hMergeSlot } from '../../utils/private/render.js'\n\nexport const useCheckboxProps = {\n ...useDarkProps,\n ...useSizeProps,\n ...useFormProps,\n\n modelValue: {\n required: true,\n default: null\n },\n val: {},\n\n trueValue: { default: true },\n falseValue: { default: false },\n indeterminateValue: { default: null },\n\n checkedIcon: String,\n uncheckedIcon: String,\n indeterminateIcon: String,\n\n toggleOrder: {\n type: String,\n validator: v => v === 'tf' || v === 'ft'\n },\n toggleIndeterminate: Boolean,\n\n label: String,\n leftLabel: Boolean,\n\n color: String,\n keepColor: Boolean,\n dense: Boolean,\n\n disable: Boolean,\n tabindex: [ String, Number ]\n}\n\nexport const useCheckboxEmits = [ 'update:modelValue' ]\n\nexport default function (type, getInner) {\n const { props, slots, emit, proxy } = getCurrentInstance()\n const { $q } = proxy\n\n const isDark = useDark(props, $q)\n\n const rootRef = ref(null)\n const { refocusTargetEl, refocusTarget } = useRefocusTarget(props, rootRef)\n const sizeStyle = useSize(props, optionSizes)\n\n const modelIsArray = computed(() =>\n props.val !== void 0 && Array.isArray(props.modelValue)\n )\n\n const index = computed(() => {\n const val = toRaw(props.val)\n return modelIsArray.value === true\n ? props.modelValue.findIndex(opt => toRaw(opt) === val)\n : -1\n })\n\n const isTrue = computed(() => (\n modelIsArray.value === true\n ? index.value > -1\n : toRaw(props.modelValue) === toRaw(props.trueValue)\n ))\n\n const isFalse = computed(() => (\n modelIsArray.value === true\n ? index.value === -1\n : toRaw(props.modelValue) === toRaw(props.falseValue)\n ))\n\n const isIndeterminate = computed(() =>\n isTrue.value === false && isFalse.value === false\n )\n\n const tabindex = computed(() => (\n props.disable === true ? -1 : props.tabindex || 0\n ))\n\n const classes = computed(() =>\n `q-${ type } cursor-pointer no-outline row inline no-wrap items-center`\n + (props.disable === true ? ' disabled' : '')\n + (isDark.value === true ? ` q-${ type }--dark` : '')\n + (props.dense === true ? ` q-${ type }--dense` : '')\n + (props.leftLabel === true ? ' reverse' : '')\n )\n\n const innerClass = computed(() => {\n const state = isTrue.value === true ? 'truthy' : (isFalse.value === true ? 'falsy' : 'indet')\n const color = props.color !== void 0 && (\n props.keepColor === true\n || (type === 'toggle' ? isTrue.value === true : isFalse.value !== true)\n )\n ? ` text-${ props.color }`\n : ''\n\n return `q-${ type }__inner relative-position non-selectable q-${ type }__inner--${ state }${ color }`\n })\n\n const formAttrs = computed(() => {\n const prop = { type: 'checkbox' }\n\n props.name !== void 0 && Object.assign(prop, {\n '^checked': isTrue.value === true ? 'checked' : void 0,\n name: props.name,\n value: modelIsArray.value === true\n ? props.val\n : props.trueValue\n })\n\n return prop\n })\n\n const injectFormInput = useFormInject(formAttrs)\n\n const attributes = computed(() => {\n const attrs = {\n tabindex: tabindex.value,\n role: 'checkbox',\n 'aria-label': props.label,\n 'aria-checked': isIndeterminate.value === true\n ? 'mixed'\n : (isTrue.value === true ? 'true' : 'false')\n }\n\n if (props.disable === true) {\n attrs[ 'aria-disabled' ] = 'true'\n }\n\n return attrs\n })\n\n function onClick (e) {\n if (e !== void 0) {\n stopAndPrevent(e)\n refocusTarget(e)\n }\n\n if (props.disable !== true) {\n emit('update:modelValue', getNextValue(), e)\n }\n }\n\n function getNextValue () {\n if (modelIsArray.value === true) {\n if (isTrue.value === true) {\n const val = props.modelValue.slice()\n val.splice(index.value, 1)\n return val\n }\n\n return props.modelValue.concat([ props.val ])\n }\n\n if (isTrue.value === true) {\n if (props.toggleOrder !== 'ft' || props.toggleIndeterminate === false) {\n return props.falseValue\n }\n }\n else if (isFalse.value === true) {\n if (props.toggleOrder === 'ft' || props.toggleIndeterminate === false) {\n return props.trueValue\n }\n }\n else {\n return props.toggleOrder !== 'ft'\n ? props.trueValue\n : props.falseValue\n }\n\n return props.indeterminateValue\n }\n\n function onKeydown (e) {\n if (e.keyCode === 13 || e.keyCode === 32) {\n stopAndPrevent(e)\n }\n }\n\n function onKeyup (e) {\n if (e.keyCode === 13 || e.keyCode === 32) {\n onClick(e)\n }\n }\n\n const getInnerContent = getInner(isTrue, isIndeterminate)\n\n // expose public methods\n Object.assign(proxy, { toggle: onClick })\n\n return () => {\n const inner = getInnerContent()\n\n props.disable !== true && injectFormInput(\n inner,\n 'unshift',\n ` q-${ type }__native absolute q-ma-none q-pa-none`\n )\n\n const child = [\n h('div', {\n class: innerClass.value,\n style: sizeStyle.value\n }, inner)\n ]\n\n if (refocusTargetEl.value !== null) {\n child.push(refocusTargetEl.value)\n }\n\n const label = props.label !== void 0\n ? hMergeSlot(slots.default, [ props.label ])\n : hSlot(slots.default)\n\n label !== void 0 && child.push(\n h('div', {\n class: `q-${ type }__label q-anchor--skip`\n }, label)\n )\n\n return h('div', {\n ref: rootRef,\n class: classes.value,\n ...attributes.value,\n onClick,\n onKeydown,\n onKeyup\n }, child)\n }\n}\n","import { h, computed } from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport useCheckbox, { useCheckboxProps, useCheckboxEmits } from './use-checkbox.js'\n\nconst bgNode = h('div', {\n key: 'svg',\n class: 'q-checkbox__bg absolute'\n}, [\n h('svg', {\n class: 'q-checkbox__svg fit absolute-full',\n viewBox: '0 0 24 24',\n 'aria-hidden': 'true'\n }, [\n h('path', {\n class: 'q-checkbox__truthy',\n fill: 'none',\n d: 'M1.73,12.91 8.1,19.28 22.79,4.59'\n }),\n\n h('path', {\n class: 'q-checkbox__indet',\n d: 'M4,14H20V10H4'\n })\n ])\n])\n\nexport default createComponent({\n name: 'QCheckbox',\n\n props: useCheckboxProps,\n emits: useCheckboxEmits,\n\n setup (props) {\n function getInner (isTrue, isIndeterminate) {\n const icon = computed(() =>\n (isTrue.value === true\n ? props.checkedIcon\n : (isIndeterminate.value === true\n ? props.indeterminateIcon\n : props.uncheckedIcon\n )\n ) || null\n )\n\n return () => (\n icon.value !== null\n ? [\n h('div', {\n key: 'icon',\n class: 'q-checkbox__icon-container absolute-full flex flex-center no-wrap'\n }, [\n h(QIcon, {\n class: 'q-checkbox__icon',\n name: icon.value\n })\n ])\n ]\n : [ bgNode ]\n )\n }\n\n return useCheckbox('checkbox', getInner)\n }\n})\n","import { h, ref, onActivated, onDeactivated, onMounted, getCurrentInstance, nextTick, provide } from 'vue'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { addFocusFn } from '../../utils/private/focus-manager.js'\nimport { hSlot } from '../../utils/private/render.js'\nimport { formKey } from '../../utils/private/symbols.js'\n\nexport default createComponent({\n name: 'QForm',\n\n props: {\n autofocus: Boolean,\n noErrorFocus: Boolean,\n noResetFocus: Boolean,\n greedy: Boolean,\n\n onSubmit: Function\n },\n\n emits: [ 'reset', 'validation-success', 'validation-error' ],\n\n setup (props, { slots, emit }) {\n const vm = getCurrentInstance()\n const rootRef = ref(null)\n\n let validateIndex = 0\n const registeredComponents = []\n\n function validate (shouldFocus) {\n const promises = []\n const focus = typeof shouldFocus === 'boolean'\n ? shouldFocus\n : props.noErrorFocus !== true\n\n const index = ++validateIndex\n\n const emitEvent = (res, ref) => {\n emit('validation-' + (res === true ? 'success' : 'error'), ref)\n }\n\n for (let i = 0; i < registeredComponents.length; i++) {\n const comp = registeredComponents[ i ]\n const valid = comp.validate()\n\n if (typeof valid.then === 'function') {\n promises.push(\n valid.then(\n valid => ({ valid, comp }),\n err => ({ valid: false, comp, err })\n )\n )\n }\n else if (valid !== true) {\n if (props.greedy === false) {\n emitEvent(false, comp)\n\n if (focus === true && typeof comp.focus === 'function') {\n comp.focus()\n }\n\n return Promise.resolve(false)\n }\n\n promises.push({ valid: false, comp })\n }\n }\n\n if (promises.length === 0) {\n emitEvent(true)\n return Promise.resolve(true)\n }\n\n return Promise.all(promises).then(res => {\n const errors = res.filter(r => r.valid !== true)\n\n if (errors.length === 0) {\n index === validateIndex && emitEvent(true)\n return true\n }\n\n const { valid, comp, err } = errors[ 0 ]\n\n // if not outdated already\n if (index === validateIndex) {\n err !== void 0 && console.error(err)\n\n emitEvent(false, comp)\n\n if (\n focus === true\n && valid !== true\n && typeof comp.focus === 'function'\n ) {\n comp.focus()\n }\n }\n\n return false\n })\n }\n\n function resetValidation () {\n validateIndex++\n\n registeredComponents.forEach(comp => {\n typeof comp.resetValidation === 'function' && comp.resetValidation()\n })\n }\n\n function submit (evt) {\n evt !== void 0 && stopAndPrevent(evt)\n\n const index = validateIndex + 1\n\n validate().then(val => {\n // if not outdated && validation succeeded\n if (index === validateIndex && val === true) {\n if (props.onSubmit !== void 0) {\n emit('submit', evt)\n }\n else if (evt !== void 0 && evt.target !== void 0 && typeof evt.target.submit === 'function') {\n evt.target.submit()\n }\n }\n })\n }\n\n function reset (evt) {\n evt !== void 0 && stopAndPrevent(evt)\n\n emit('reset')\n\n nextTick(() => { // allow userland to reset values before\n resetValidation()\n if (props.autofocus === true && props.noResetFocus !== true) {\n focus()\n }\n })\n }\n\n function focus () {\n addFocusFn(() => {\n if (rootRef.value === null) { return }\n\n const target = rootRef.value.querySelector('[autofocus], [data-autofocus]')\n || Array.prototype.find.call(rootRef.value.querySelectorAll('[tabindex]'), el => el.tabIndex > -1)\n\n target !== null && target !== void 0 && target.focus({ preventScroll: true })\n })\n }\n\n provide(formKey, {\n bindComponent (vmProxy) {\n registeredComponents.push(vmProxy)\n },\n\n unbindComponent (vmProxy) {\n const index = registeredComponents.indexOf(vmProxy)\n if (index > -1) {\n registeredComponents.splice(index, 1)\n }\n }\n })\n\n let shouldActivate = false\n\n onDeactivated(() => {\n shouldActivate = true\n })\n\n onActivated(() => {\n shouldActivate === true && props.autofocus === true && focus()\n })\n\n onMounted(() => {\n props.autofocus === true && focus()\n })\n\n // expose public methods\n Object.assign(vm.proxy, {\n validate,\n resetValidation,\n submit,\n reset,\n focus,\n getValidationComponents: () => registeredComponents\n })\n\n return () => h('form', {\n class: 'q-form',\n ref: rootRef,\n onSubmit: submit,\n onReset: reset\n }, hSlot(slots.default))\n }\n})\n","import { h, ref, computed, watch, onBeforeUnmount, inject, getCurrentInstance } from 'vue'\n\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hUniqueSlot } from '../../utils/private/render.js'\nimport { layoutKey } from '../../utils/private/symbols.js'\n\nexport default createComponent({\n name: 'QHeader',\n\n props: {\n modelValue: {\n type: Boolean,\n default: true\n },\n reveal: Boolean,\n revealOffset: {\n type: Number,\n default: 250\n },\n bordered: Boolean,\n elevated: Boolean,\n\n heightHint: {\n type: [ String, Number ],\n default: 50\n }\n },\n\n emits: [ 'reveal', 'focusin' ],\n\n setup (props, { slots, emit }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const $layout = inject(layoutKey, () => {\n console.error('QHeader needs to be child of QLayout')\n })\n\n const size = ref(parseInt(props.heightHint, 10))\n const revealed = ref(true)\n\n const fixed = computed(() =>\n props.reveal === true\n || $layout.view.value.indexOf('H') > -1\n || ($q.platform.is.ios && $layout.isContainer.value === true)\n )\n\n const offset = computed(() => {\n if (props.modelValue !== true) {\n return 0\n }\n if (fixed.value === true) {\n return revealed.value === true ? size.value : 0\n }\n const offset = size.value - $layout.scroll.value.position\n return offset > 0 ? offset : 0\n })\n\n const hidden = computed(() => props.modelValue !== true\n || (fixed.value === true && revealed.value !== true)\n )\n\n const revealOnFocus = computed(() =>\n props.modelValue === true && hidden.value === true && props.reveal === true\n )\n\n const classes = computed(() =>\n 'q-header q-layout__section--marginal '\n + (fixed.value === true ? 'fixed' : 'absolute') + '-top'\n + (props.bordered === true ? ' q-header--bordered' : '')\n + (hidden.value === true ? ' q-header--hidden' : '')\n + (props.modelValue !== true ? ' q-layout--prevent-focus' : '')\n )\n\n const style = computed(() => {\n const\n view = $layout.rows.value.top,\n css = {}\n\n if (view[ 0 ] === 'l' && $layout.left.space === true) {\n css[ $q.lang.rtl === true ? 'right' : 'left' ] = `${ $layout.left.size }px`\n }\n if (view[ 2 ] === 'r' && $layout.right.space === true) {\n css[ $q.lang.rtl === true ? 'left' : 'right' ] = `${ $layout.right.size }px`\n }\n\n return css\n })\n\n function updateLayout (prop, val) {\n $layout.update('header', prop, val)\n }\n\n function updateLocal (prop, val) {\n if (prop.value !== val) {\n prop.value = val\n }\n }\n\n function onResize ({ height }) {\n updateLocal(size, height)\n updateLayout('size', height)\n }\n\n function onFocusin (evt) {\n if (revealOnFocus.value === true) {\n updateLocal(revealed, true)\n }\n\n emit('focusin', evt)\n }\n\n watch(() => props.modelValue, val => {\n updateLayout('space', val)\n updateLocal(revealed, true)\n $layout.animate()\n })\n\n watch(offset, val => {\n updateLayout('offset', val)\n })\n\n watch(() => props.reveal, val => {\n val === false && updateLocal(revealed, props.modelValue)\n })\n\n watch(revealed, val => {\n $layout.animate()\n emit('reveal', val)\n })\n\n watch($layout.scroll, scroll => {\n props.reveal === true && updateLocal(revealed,\n scroll.direction === 'up'\n || scroll.position <= props.revealOffset\n || scroll.position - scroll.inflectionPoint < 100\n )\n })\n\n const instance = {}\n\n $layout.instances.header = instance\n props.modelValue === true && updateLayout('size', size.value)\n updateLayout('space', props.modelValue)\n updateLayout('offset', offset.value)\n\n onBeforeUnmount(() => {\n if ($layout.instances.header === instance) {\n $layout.instances.header = void 0\n updateLayout('size', 0)\n updateLayout('offset', 0)\n updateLayout('space', false)\n }\n })\n\n return () => {\n const child = hUniqueSlot(slots.default, [])\n\n props.elevated === true && child.push(\n h('div', {\n class: 'q-layout__shadow absolute-full overflow-hidden no-pointer-events'\n })\n )\n\n child.push(\n h(QResizeObserver, {\n debounce: 0,\n onResize\n })\n )\n\n return h('header', {\n class: classes.value,\n style: style.value,\n onFocusin\n }, child)\n }\n }\n})\n","import { h, computed, getCurrentInstance } from 'vue'\n\nimport useSize, { useSizeProps } from '../../composables/private/use-size.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hSlot, hMergeSlot } from '../../utils/private/render.js'\n\nconst defaultViewBox = '0 0 24 24'\n\nconst sameFn = i => i\nconst ionFn = i => `ionicons ${ i }`\n\nconst libMap = {\n 'mdi-': i => `mdi ${ i }`,\n 'icon-': sameFn, // fontawesome equiv\n 'bt-': i => `bt ${ i }`,\n 'eva-': i => `eva ${ i }`,\n 'ion-md': ionFn,\n 'ion-ios': ionFn,\n 'ion-logo': ionFn,\n 'iconfont ': sameFn,\n 'ti-': i => `themify-icon ${ i }`,\n 'bi-': i => `bootstrap-icons ${ i }`\n}\n\nconst matMap = {\n o_: '-outlined',\n r_: '-round',\n s_: '-sharp'\n}\n\nconst symMap = {\n sym_o_: '-outlined',\n sym_r_: '-rounded',\n sym_s_: '-sharp'\n}\n\nconst libRE = new RegExp('^(' + Object.keys(libMap).join('|') + ')')\nconst matRE = new RegExp('^(' + Object.keys(matMap).join('|') + ')')\nconst symRE = new RegExp('^(' + Object.keys(symMap).join('|') + ')')\nconst mRE = /^[Mm]\\s?[-+]?\\.?\\d/\nconst imgRE = /^img:/\nconst svgUseRE = /^svguse:/\nconst ionRE = /^ion-/\nconst faRE = /^(fa-(solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /\n\nexport default createComponent({\n name: 'QIcon',\n\n props: {\n ...useSizeProps,\n\n tag: {\n type: String,\n default: 'i'\n },\n\n name: String,\n color: String,\n left: Boolean,\n right: Boolean\n },\n\n setup (props, { slots }) {\n const { proxy: { $q } } = getCurrentInstance()\n const sizeStyle = useSize(props)\n\n const classes = computed(() =>\n 'q-icon'\n + (props.left === true ? ' on-left' : '') // TODO Qv3: drop this\n + (props.right === true ? ' on-right' : '')\n + (props.color !== void 0 ? ` text-${ props.color }` : '')\n )\n\n const type = computed(() => {\n let cls\n let icon = props.name\n\n if (icon === 'none' || !icon) {\n return { none: true }\n }\n\n if ($q.iconMapFn !== null) {\n const res = $q.iconMapFn(icon)\n if (res !== void 0) {\n if (res.icon !== void 0) {\n icon = res.icon\n if (icon === 'none' || !icon) {\n return { none: true }\n }\n }\n else {\n return {\n cls: res.cls,\n content: res.content !== void 0\n ? res.content\n : ' '\n }\n }\n }\n }\n\n if (mRE.test(icon) === true) {\n const [ def, viewBox = defaultViewBox ] = icon.split('|')\n\n return {\n svg: true,\n viewBox,\n nodes: def.split('&&').map(path => {\n const [ d, style, transform ] = path.split('@@')\n return h('path', { style, d, transform })\n })\n }\n }\n\n if (imgRE.test(icon) === true) {\n return {\n img: true,\n src: icon.substring(4)\n }\n }\n\n if (svgUseRE.test(icon) === true) {\n const [ def, viewBox = defaultViewBox ] = icon.split('|')\n\n return {\n svguse: true,\n src: def.substring(7),\n viewBox\n }\n }\n\n let content = ' '\n const matches = icon.match(libRE)\n\n if (matches !== null) {\n cls = libMap[ matches[ 1 ] ](icon)\n }\n else if (faRE.test(icon) === true) {\n cls = icon\n }\n else if (ionRE.test(icon) === true) {\n cls = `ionicons ion-${ $q.platform.is.ios === true ? 'ios' : 'md' }${ icon.substring(3) }`\n }\n else if (symRE.test(icon) === true) {\n // \"notranslate\" class is for Google Translate\n // to avoid tampering with Material Symbols ligature font\n //\n // Caution: To be able to add suffix to the class name,\n // keep the 'material-symbols' at the end of the string.\n cls = 'notranslate material-symbols'\n\n const matches = icon.match(symRE)\n if (matches !== null) {\n icon = icon.substring(6)\n cls += symMap[ matches[ 1 ] ]\n }\n\n content = icon\n }\n else {\n // \"notranslate\" class is for Google Translate\n // to avoid tampering with Material Icons ligature font\n //\n // Caution: To be able to add suffix to the class name,\n // keep the 'material-icons' at the end of the string.\n cls = 'notranslate material-icons'\n\n const matches = icon.match(matRE)\n if (matches !== null) {\n icon = icon.substring(2)\n cls += matMap[ matches[ 1 ] ]\n }\n\n content = icon\n }\n\n return {\n cls,\n content\n }\n })\n\n return () => {\n const data = {\n class: classes.value,\n style: sizeStyle.value,\n 'aria-hidden': 'true',\n role: 'presentation'\n }\n\n if (type.value.none === true) {\n return h(props.tag, data, hSlot(slots.default))\n }\n\n if (type.value.img === true) {\n return h('span', data, hMergeSlot(slots.default, [\n h('img', { src: type.value.src })\n ]))\n }\n\n if (type.value.svg === true) {\n return h('span', data, hMergeSlot(slots.default, [\n h('svg', {\n viewBox: type.value.viewBox || '0 0 24 24'\n }, type.value.nodes)\n ]))\n }\n\n if (type.value.svguse === true) {\n return h('span', data, hMergeSlot(slots.default, [\n h('svg', {\n viewBox: type.value.viewBox\n }, [\n h('use', { 'xlink:href': type.value.src })\n ])\n ]))\n }\n\n if (type.value.cls !== void 0) {\n data.class += ' ' + type.value.cls\n }\n\n return h(props.tag, data, hMergeSlot(slots.default, [\n type.value.content\n ]))\n }\n }\n})\n","import { computed } from 'vue'\n\nexport const useRatioProps = {\n ratio: [ String, Number ]\n}\n\nexport default function (props, naturalRatio) {\n // return ratioStyle\n return computed(() => {\n const ratio = Number(\n props.ratio || (naturalRatio !== void 0 ? naturalRatio.value : void 0)\n )\n\n return isNaN(ratio) !== true && ratio > 0\n ? { paddingBottom: `${ 100 / ratio }%` }\n : null\n })\n}\n","import { h, ref, computed, watch, onMounted, onBeforeUnmount, Transition } from 'vue'\n\nimport QSpinner from '../spinner/QSpinner.js'\n\nimport useRatio, { useRatioProps } from '../../composables/private/use-ratio.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hSlot } from '../../utils/private/render.js'\nimport { isRuntimeSsrPreHydration } from '../../plugins/Platform.js'\n\nconst defaultRatio = 16 / 9\n\nexport default createComponent({\n name: 'QImg',\n\n props: {\n ...useRatioProps,\n\n src: String,\n srcset: String,\n sizes: String,\n\n alt: String,\n crossorigin: String,\n decoding: String,\n referrerpolicy: String,\n\n draggable: Boolean,\n\n loading: {\n type: String,\n default: 'lazy'\n },\n fetchpriority: {\n type: String,\n default: 'auto'\n },\n width: String,\n height: String,\n initialRatio: {\n type: [ Number, String ],\n default: defaultRatio\n },\n\n placeholderSrc: String,\n\n fit: {\n type: String,\n default: 'cover'\n },\n position: {\n type: String,\n default: '50% 50%'\n },\n\n imgClass: String,\n imgStyle: Object,\n\n noSpinner: Boolean,\n noNativeMenu: Boolean,\n noTransition: Boolean,\n\n spinnerColor: String,\n spinnerSize: String\n },\n\n emits: [ 'load', 'error' ],\n\n setup (props, { slots, emit }) {\n const naturalRatio = ref(props.initialRatio)\n const ratioStyle = useRatio(props, naturalRatio)\n\n let loadTimer\n\n const images = [\n ref(null),\n ref(props.placeholderSrc !== void 0 ? { src: props.placeholderSrc } : null)\n ]\n\n const position = ref(0)\n\n const isLoading = ref(false)\n const hasError = ref(false)\n\n const classes = computed(() =>\n `q-img q-img--${ props.noNativeMenu === true ? 'no-' : '' }menu`\n )\n\n const style = computed(() => ({\n width: props.width,\n height: props.height\n }))\n\n const imgClass = computed(() =>\n `q-img__image ${ props.imgClass !== void 0 ? props.imgClass + ' ' : '' }`\n + `q-img__image--with${ props.noTransition === true ? 'out' : '' }-transition`\n )\n\n const imgStyle = computed(() => ({\n ...props.imgStyle,\n objectFit: props.fit,\n objectPosition: props.position\n }))\n\n watch(() => getCurrentSrc(), addImage)\n\n function getCurrentSrc () {\n return props.src || props.srcset || props.sizes\n ? {\n src: props.src,\n srcset: props.srcset,\n sizes: props.sizes\n }\n : null\n }\n\n function addImage (imgProps) {\n clearTimeout(loadTimer)\n hasError.value = false\n\n if (imgProps === null) {\n isLoading.value = false\n images[ 0 ].value = null\n images[ 1 ].value = null\n return\n }\n\n isLoading.value = true\n images[ position.value ].value = imgProps\n }\n\n function onLoad ({ target }) {\n // if component has been already destroyed\n if (loadTimer === null) { return }\n\n clearTimeout(loadTimer)\n\n naturalRatio.value = target.naturalHeight === 0\n ? 0.5\n : target.naturalWidth / target.naturalHeight\n\n waitForCompleteness(target, 1)\n }\n\n function waitForCompleteness (target, count) {\n // protect against running forever\n if (loadTimer === null || count === 1000) { return }\n\n if (target.complete === true) {\n onReady(target)\n }\n else {\n loadTimer = setTimeout(() => {\n waitForCompleteness(target, count + 1)\n }, 50)\n }\n }\n\n function onReady (img) {\n // if component has been already destroyed\n if (loadTimer === null) { return }\n\n position.value = position.value === 1 ? 0 : 1\n images[ position.value ].value = null\n isLoading.value = false\n hasError.value = false\n emit('load', img.currentSrc || img.src)\n }\n\n function onError (err) {\n clearTimeout(loadTimer)\n isLoading.value = false\n hasError.value = true\n images[ 0 ].value = null\n images[ 1 ].value = null\n emit('error', err)\n }\n\n function getContainer (key, child) {\n return h(\n 'div',\n { class: 'q-img__container absolute-full', key },\n child\n )\n }\n\n function getImage (index) {\n const img = images[ index ].value\n\n const data = {\n key: 'img_' + index,\n class: imgClass.value,\n style: imgStyle.value,\n crossorigin: props.crossorigin,\n decoding: props.decoding,\n referrerpolicy: props.referrerpolicy,\n height: props.height,\n width: props.width,\n loading: props.loading,\n fetchpriority: props.fetchpriority,\n 'aria-hidden': 'true',\n draggable: props.draggable,\n ...img\n }\n\n if (position.value === index) {\n data.class += ' q-img__image--waiting'\n Object.assign(data, { onLoad, onError })\n }\n else {\n data.class += ' q-img__image--loaded'\n }\n\n return getContainer('img' + index, h('img', data))\n }\n\n function getContent () {\n if (isLoading.value !== true) {\n return h('div', {\n key: 'content',\n class: 'q-img__content absolute-full q-anchor--skip'\n }, hSlot(slots[ hasError.value === true ? 'error' : 'default' ]))\n }\n\n return h('div', {\n key: 'loading',\n class: 'q-img__loading absolute-full flex flex-center'\n }, (\n slots.loading !== void 0\n ? slots.loading()\n : (\n props.noSpinner === true\n ? void 0\n : [\n h(QSpinner, {\n color: props.spinnerColor,\n size: props.spinnerSize\n })\n ]\n )\n ))\n }\n\n if (__QUASAR_SSR_SERVER__ !== true) {\n if (__QUASAR_SSR_CLIENT__ && isRuntimeSsrPreHydration.value === true) {\n onMounted(() => {\n addImage(getCurrentSrc())\n })\n }\n else {\n addImage(getCurrentSrc())\n }\n\n onBeforeUnmount(() => {\n clearTimeout(loadTimer)\n loadTimer = null\n })\n }\n\n return () => {\n const content = []\n\n if (ratioStyle.value !== null) {\n content.push(\n h('div', { key: 'filler', style: ratioStyle.value })\n )\n }\n\n if (hasError.value !== true) {\n if (images[ 0 ].value !== null) {\n content.push(getImage(0))\n }\n\n if (images[ 1 ].value !== null) {\n content.push(getImage(1))\n }\n }\n\n content.push(\n h(Transition, { name: 'q-transition--fade' }, getContent)\n )\n\n return h('div', {\n class: classes.value,\n style: style.value,\n role: 'img',\n 'aria-label': props.alt\n }, content)\n }\n }\n})\n","import { inject, watch, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport { formKey } from '../utils/private/symbols.js'\n\nexport default function ({ validate, resetValidation, requiresQForm }) {\n const $form = inject(formKey, false)\n\n if ($form !== false) {\n const { props, proxy } = getCurrentInstance()\n\n // export public method (so it can be used in QForm)\n Object.assign(proxy, { validate, resetValidation })\n\n watch(() => props.disable, val => {\n if (val === true) {\n typeof resetValidation === 'function' && resetValidation()\n $form.unbindComponent(proxy)\n }\n else {\n $form.bindComponent(proxy)\n }\n })\n\n // register component to parent QForm\n props.disable !== true && $form.bindComponent(proxy)\n\n onBeforeUnmount(() => {\n // unregister component\n props.disable !== true && $form.unbindComponent(proxy)\n })\n }\n else if (requiresQForm === true) {\n console.error('Parent QForm not found on useFormChild()!')\n }\n}\n","// file referenced from docs\n\nconst\n hex = /^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/,\n hexa = /^#[0-9a-fA-F]{4}([0-9a-fA-F]{4})?$/,\n hexOrHexa = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,\n rgb = /^rgb\\(((0|[1-9][\\d]?|1[\\d]{0,2}|2[\\d]?|2[0-4][\\d]|25[0-5]),){2}(0|[1-9][\\d]?|1[\\d]{0,2}|2[\\d]?|2[0-4][\\d]|25[0-5])\\)$/,\n rgba = /^rgba\\(((0|[1-9][\\d]?|1[\\d]{0,2}|2[\\d]?|2[0-4][\\d]|25[0-5]),){2}(0|[1-9][\\d]?|1[\\d]{0,2}|2[\\d]?|2[0-4][\\d]|25[0-5]),(0|0\\.[0-9]+[1-9]|0\\.[1-9]+|1)\\)$/\n\n// Keep in sync with ui/types/api/validation.d.ts\nexport const testPattern = {\n date: v => /^-?[\\d]+\\/[0-1]\\d\\/[0-3]\\d$/.test(v),\n time: v => /^([0-1]?\\d|2[0-3]):[0-5]\\d$/.test(v),\n fulltime: v => /^([0-1]?\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/.test(v),\n timeOrFulltime: v => /^([0-1]?\\d|2[0-3]):[0-5]\\d(:[0-5]\\d)?$/.test(v),\n\n // -- RFC 5322 --\n // -- Added in v2.6.6 --\n // This is a basic helper validation.\n // For something more complex (like RFC 822) you should write and use your own rule.\n // We won't be accepting PRs to enhance the one below because of the reason above.\n // eslint-disable-next-line\n email: v => /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(v),\n\n hexColor: v => hex.test(v),\n hexaColor: v => hexa.test(v),\n hexOrHexaColor: v => hexOrHexa.test(v),\n\n rgbColor: v => rgb.test(v),\n rgbaColor: v => rgba.test(v),\n rgbOrRgbaColor: v => rgb.test(v) || rgba.test(v),\n\n hexOrRgbColor: v => hex.test(v) || rgb.test(v),\n hexaOrRgbaColor: v => hexa.test(v) || rgba.test(v),\n anyColor: v => hexOrHexa.test(v) || rgb.test(v) || rgba.test(v)\n}\n\nexport default {\n testPattern\n}\n","const\n toString = Object.prototype.toString,\n hasOwn = Object.prototype.hasOwnProperty,\n class2type = {}\n\n'Boolean Number String Function Array Date RegExp Object'.split(' ').forEach(name => {\n class2type[ '[object ' + name + ']' ] = name.toLowerCase()\n})\n\nfunction type (obj) {\n return obj === null ? String(obj) : class2type[ toString.call(obj) ] || 'object'\n}\n\nfunction isPlainObject (obj) {\n if (!obj || type(obj) !== 'object') {\n return false\n }\n\n if (obj.constructor\n && !hasOwn.call(obj, 'constructor')\n && !hasOwn.call(obj.constructor.prototype, 'isPrototypeOf')) {\n return false\n }\n\n let key\n for (key in obj) {} // eslint-disable-line\n\n return key === void 0 || hasOwn.call(obj, key)\n}\n\nexport default function extend () {\n let\n options, name, src, copy, copyIsArray, clone,\n target = arguments[ 0 ] || {},\n i = 1,\n deep = false\n const length = arguments.length\n\n if (typeof target === 'boolean') {\n deep = target\n target = arguments[ 1 ] || {}\n i = 2\n }\n\n if (Object(target) !== target && type(target) !== 'function') {\n target = {}\n }\n\n if (length === i) {\n target = this\n i--\n }\n\n for (; i < length; i++) {\n if ((options = arguments[ i ]) !== null) {\n for (name in options) {\n src = target[ name ]\n copy = options[ name ]\n\n if (target === copy) {\n continue\n }\n\n if (deep && copy && (isPlainObject(copy) || (copyIsArray = type(copy) === 'array'))) {\n if (copyIsArray) {\n copyIsArray = false\n clone = src && type(src) === 'array' ? src : []\n }\n else {\n clone = src && isPlainObject(src) ? src : {}\n }\n\n target[ name ] = extend(deep, clone, copy)\n }\n else if (copy !== void 0) {\n target[ name ] = copy\n }\n }\n }\n }\n\n return target\n}\n","import { isRuntimeSsrPreHydration } from './Platform.js'\nimport extend from '../utils/extend.js'\n\nlet updateId, currentClientMeta\nexport const clientList = []\n\nfunction normalize (meta) {\n if (meta.title) {\n meta.title = meta.titleTemplate\n ? meta.titleTemplate(meta.title)\n : meta.title\n delete meta.titleTemplate\n }\n\n ;[ [ 'meta', 'content' ], [ 'link', 'href' ] ].forEach(type => {\n const\n metaType = meta[ type[ 0 ] ],\n metaProp = type[ 1 ]\n\n for (const name in metaType) {\n const metaLink = metaType[ name ]\n\n if (metaLink.template) {\n if (Object.keys(metaLink).length === 1) {\n delete metaType[ name ]\n }\n else {\n metaLink[ metaProp ] = metaLink.template(metaLink[ metaProp ] || '')\n delete metaLink.template\n }\n }\n }\n })\n}\n\nfunction changed (old, def) {\n if (Object.keys(old).length !== Object.keys(def).length) {\n return true\n }\n for (const key in old) {\n if (old[ key ] !== def[ key ]) {\n return true\n }\n }\n}\n\nfunction bodyFilter (name) {\n return [ 'class', 'style' ].includes(name) === false\n}\n\nfunction htmlFilter (name) {\n return [ 'lang', 'dir' ].includes(name) === false\n}\n\nfunction diff (meta, other) {\n const add = {}, remove = {}\n\n if (meta === void 0) {\n return { add: other, remove }\n }\n\n if (meta.title !== other.title) {\n add.title = other.title\n }\n\n ;[ 'meta', 'link', 'script', 'htmlAttr', 'bodyAttr' ].forEach(type => {\n const old = meta[ type ], cur = other[ type ]\n remove[ type ] = []\n\n if (old === void 0 || old === null) {\n add[ type ] = cur\n return\n }\n\n add[ type ] = {}\n\n for (const key in old) {\n if (cur.hasOwnProperty(key) === false) {\n remove[ type ].push(key)\n }\n }\n for (const key in cur) {\n if (old.hasOwnProperty(key) === false) {\n add[ type ][ key ] = cur[ key ]\n }\n else if (changed(old[ key ], cur[ key ]) === true) {\n remove[ type ].push(key)\n add[ type ][ key ] = cur[ key ]\n }\n }\n })\n\n return { add, remove }\n}\n\nfunction apply ({ add, remove }) {\n if (add.title) {\n document.title = add.title\n }\n\n if (Object.keys(remove).length > 0) {\n [ 'meta', 'link', 'script' ].forEach(type => {\n remove[ type ].forEach(name => {\n document.head.querySelector(`${ type }[data-qmeta=\"${ name }\"]`).remove()\n })\n })\n remove.htmlAttr.filter(htmlFilter).forEach(name => {\n document.documentElement.removeAttribute(name)\n })\n remove.bodyAttr.filter(bodyFilter).forEach(name => {\n document.body.removeAttribute(name)\n })\n }\n\n ;[ 'meta', 'link', 'script' ].forEach(type => {\n const metaType = add[ type ]\n\n for (const name in metaType) {\n const tag = document.createElement(type)\n for (const att in metaType[ name ]) {\n if (att !== 'innerHTML') {\n tag.setAttribute(att, metaType[ name ][ att ])\n }\n }\n tag.setAttribute('data-qmeta', name)\n if (type === 'script') {\n tag.innerHTML = metaType[ name ].innerHTML || ''\n }\n document.head.appendChild(tag)\n }\n })\n Object.keys(add.htmlAttr).filter(htmlFilter).forEach(name => {\n document.documentElement.setAttribute(name, add.htmlAttr[ name ] || '')\n })\n Object.keys(add.bodyAttr).filter(bodyFilter).forEach(name => {\n document.body.setAttribute(name, add.bodyAttr[ name ] || '')\n })\n}\n\nfunction getAttr (seed) {\n return att => {\n const val = seed[ att ]\n return att + (val !== true && val !== void 0 ? `=\"${ val }\"` : '')\n }\n}\n\nfunction getHead (meta) {\n let output = ''\n if (meta.title) {\n output += `${ meta.title }`\n }\n ;[ 'meta', 'link', 'script' ].forEach(type => {\n const metaType = meta[ type ]\n\n for (const att in metaType) {\n const attrs = Object.keys(metaType[ att ])\n .filter(att => att !== 'innerHTML')\n .map(getAttr(metaType[ att ]))\n\n output += `<${ type } ${ attrs.join(' ') } data-qmeta=\"${ att }\">`\n if (type === 'script') {\n output += (metaType[ att ].innerHTML || '') + ''\n }\n }\n })\n return output\n}\n\nfunction injectServerMeta (ssrContext) {\n const data = {\n title: '',\n titleTemplate: null,\n meta: {},\n link: {},\n htmlAttr: {},\n bodyAttr: {},\n noscript: {}\n }\n\n const list = ssrContext.__qMetaList\n\n for (let i = 0; i < list.length; i++) {\n extend(true, data, list[ i ])\n }\n\n normalize(data)\n\n const nonce = ssrContext.nonce !== void 0\n ? ` nonce=\"${ ssrContext.nonce }\"`\n : ''\n\n const ctx = ssrContext._meta\n\n const htmlAttr = Object.keys(data.htmlAttr).filter(htmlFilter)\n\n if (htmlAttr.length > 0) {\n ctx.htmlAttrs += (\n (ctx.htmlAttrs.length > 0 ? ' ' : '')\n + htmlAttr.map(getAttr(data.htmlAttr)).join(' ')\n )\n }\n\n ctx.headTags += getHead(data)\n\n const bodyAttr = Object.keys(data.bodyAttr).filter(bodyFilter)\n\n if (bodyAttr.length > 0) {\n ctx.bodyAttrs += (\n (ctx.bodyAttrs.length > 0 ? ' ' : '')\n + bodyAttr.map(getAttr(data.bodyAttr)).join(' ')\n )\n }\n\n ctx.bodyTags += Object.keys(data.noscript)\n .map(name => ``)\n .join('')\n + ``\n}\n\nfunction updateClientMeta () {\n const data = {\n title: '',\n titleTemplate: null,\n meta: {},\n link: {},\n script: {},\n htmlAttr: {},\n bodyAttr: {}\n }\n\n for (let i = 0; i < clientList.length; i++) {\n const { active, val } = clientList[ i ]\n\n if (active === true) {\n extend(true, data, val)\n }\n }\n\n normalize(data)\n\n apply(diff(currentClientMeta, data))\n currentClientMeta = data\n}\n\nexport function planClientUpdate () {\n clearTimeout(updateId)\n updateId = setTimeout(updateClientMeta, 50)\n}\n\nexport default {\n install (opts) {\n if (__QUASAR_SSR_SERVER__) {\n const { ssrContext } = opts\n\n ssrContext.__qMetaList = []\n ssrContext.onRendered(() => {\n injectServerMeta(ssrContext)\n })\n }\n else if (this.__installed !== true && isRuntimeSsrPreHydration.value === true) {\n currentClientMeta = window.__Q_META__\n document.getElementById('qmeta-init').remove()\n }\n }\n}\n","import { useSizeProps } from '../../composables/private/use-size.js'\n\n// also used by QKnob\nexport const useCircularCommonProps = {\n ...useSizeProps,\n\n min: {\n type: Number,\n default: 0\n },\n max: {\n type: Number,\n default: 100\n },\n\n color: String,\n centerColor: String,\n trackColor: String,\n\n fontSize: String,\n\n // ratio\n thickness: {\n type: Number,\n default: 0.2,\n validator: v => v >= 0 && v <= 1\n },\n\n angle: {\n type: Number,\n default: 0\n },\n\n showValue: Boolean,\n reverse: Boolean,\n\n instantFeedback: Boolean\n}\n","const units = [ 'B', 'KB', 'MB', 'GB', 'TB', 'PB' ]\n\nexport function humanStorageSize (bytes) {\n let u = 0\n\n while (parseInt(bytes, 10) >= 1024 && u < units.length - 1) {\n bytes /= 1024\n ++u\n }\n\n return `${ bytes.toFixed(1) }${ units[ u ] }`\n}\n\nexport function capitalize (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function between (v, min, max) {\n return max <= min\n ? min\n : Math.min(max, Math.max(min, v))\n}\n\nexport function normalizeToInterval (v, min, max) {\n if (max <= min) {\n return min\n }\n\n const size = (max - min + 1)\n\n let index = min + (v - min) % size\n if (index < min) {\n index = size + index\n }\n\n return index === 0 ? 0 : index // fix for (-a % a) => -0\n}\n\nexport function pad (v, length = 2, char = '0') {\n if (v === void 0 || v === null) {\n return v\n }\n\n const val = '' + v\n return val.length >= length\n ? val\n : new Array(length - val.length + 1).join(char) + val\n}\n\nexport default {\n humanStorageSize,\n capitalize,\n between,\n normalizeToInterval,\n pad\n}\n","import { h, computed, getCurrentInstance } from 'vue'\n\nimport useSize from '../../composables/private/use-size.js'\nimport { useCircularCommonProps } from './use-circular-progress.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hMergeSlotSafely } from '../../utils/private/render.js'\nimport { between } from '../../utils/format.js'\n\nconst\n radius = 50,\n diameter = 2 * radius,\n circumference = diameter * Math.PI,\n strokeDashArray = Math.round(circumference * 1000) / 1000\n\nexport default createComponent({\n name: 'QCircularProgress',\n\n props: {\n ...useCircularCommonProps,\n\n value: {\n type: Number,\n default: 0\n },\n\n animationSpeed: {\n type: [ String, Number ],\n default: 600\n },\n\n indeterminate: Boolean\n },\n\n setup (props, { slots }) {\n const { proxy: { $q } } = getCurrentInstance()\n const sizeStyle = useSize(props)\n\n const svgStyle = computed(() => {\n const angle = ($q.lang.rtl === true ? -1 : 1) * props.angle\n\n return {\n transform: props.reverse !== ($q.lang.rtl === true)\n ? `scale3d(-1, 1, 1) rotate3d(0, 0, 1, ${ -90 - angle }deg)`\n : `rotate3d(0, 0, 1, ${ angle - 90 }deg)`\n }\n })\n\n const circleStyle = computed(() => (\n props.instantFeedback !== true && props.indeterminate !== true\n ? { transition: `stroke-dashoffset ${ props.animationSpeed }ms ease 0s, stroke ${ props.animationSpeed }ms ease` }\n : ''\n ))\n\n const viewBox = computed(() => diameter / (1 - props.thickness / 2))\n\n const viewBoxAttr = computed(() =>\n `${ viewBox.value / 2 } ${ viewBox.value / 2 } ${ viewBox.value } ${ viewBox.value }`\n )\n\n const normalized = computed(() => between(props.value, props.min, props.max))\n\n const strokeDashOffset = computed(() => circumference * (\n 1 - (normalized.value - props.min) / (props.max - props.min)\n ))\n\n const strokeWidth = computed(() => props.thickness / 2 * viewBox.value)\n\n function getCircle ({ thickness, offset, color, cls }) {\n return h('circle', {\n class: 'q-circular-progress__' + cls + (color !== void 0 ? ` text-${ color }` : ''),\n style: circleStyle.value,\n fill: 'transparent',\n stroke: 'currentColor',\n 'stroke-width': thickness,\n 'stroke-dasharray': strokeDashArray,\n 'stroke-dashoffset': offset,\n cx: viewBox.value,\n cy: viewBox.value,\n r: radius\n })\n }\n\n return () => {\n const svgChild = []\n\n props.centerColor !== void 0 && props.centerColor !== 'transparent' && svgChild.push(\n h('circle', {\n class: `q-circular-progress__center text-${ props.centerColor }`,\n fill: 'currentColor',\n r: radius - strokeWidth.value / 2,\n cx: viewBox.value,\n cy: viewBox.value\n })\n )\n\n props.trackColor !== void 0 && props.trackColor !== 'transparent' && svgChild.push(\n getCircle({\n cls: 'track',\n thickness: strokeWidth.value,\n offset: 0,\n color: props.trackColor\n })\n )\n\n svgChild.push(\n getCircle({\n cls: 'circle',\n thickness: strokeWidth.value,\n offset: strokeDashOffset.value,\n color: props.color\n })\n )\n\n const child = [\n h('svg', {\n class: 'q-circular-progress__svg',\n style: svgStyle.value,\n viewBox: viewBoxAttr.value,\n 'aria-hidden': 'true'\n }, svgChild)\n ]\n\n props.showValue === true && child.push(\n h('div', {\n class: 'q-circular-progress__text absolute-full row flex-center content-center',\n style: { fontSize: props.fontSize }\n }, slots.default !== void 0 ? slots.default() : [ h('div', normalized.value) ])\n )\n\n return h('div', {\n class: `q-circular-progress q-circular-progress--${ props.indeterminate === true ? 'in' : '' }determinate`,\n style: sizeStyle.value,\n role: 'progressbar',\n 'aria-valuemin': props.min,\n 'aria-valuemax': props.max,\n 'aria-valuenow': props.indeterminate === true ? void 0 : normalized.value\n }, hMergeSlotSafely(slots.internal, child)) // \"internal\" is used by QKnob\n }\n }\n})\n","import { h, ref, computed, getCurrentInstance } from 'vue'\n\nimport { stop, stopAndPrevent } from '../../utils/event.js'\n\nfunction filterFiles (files, rejectedFiles, failedPropValidation, filterFn) {\n const acceptedFiles = []\n\n files.forEach(file => {\n if (filterFn(file) === true) {\n acceptedFiles.push(file)\n }\n else {\n rejectedFiles.push({ failedPropValidation, file })\n }\n })\n\n return acceptedFiles\n}\n\nfunction stopAndPreventDrag (e) {\n e && e.dataTransfer && (e.dataTransfer.dropEffect = 'copy')\n stopAndPrevent(e)\n}\n\nexport const useFileProps = {\n multiple: Boolean,\n accept: String,\n capture: String,\n maxFileSize: [ Number, String ],\n maxTotalSize: [ Number, String ],\n maxFiles: [ Number, String ],\n filter: Function\n}\n\nexport const useFileEmits = [ 'rejected' ]\n\nexport default function ({\n editable,\n dnd,\n getFileInput,\n addFilesToQueue\n}) {\n const { props, emit, proxy } = getCurrentInstance()\n\n const dndRef = ref(null)\n\n const extensions = computed(() => (\n props.accept !== void 0\n ? props.accept.split(',').map(ext => {\n ext = ext.trim()\n if (ext === '*') { // support \"*\"\n return '*/'\n }\n else if (ext.endsWith('/*')) { // support \"image/*\" or \"*/*\"\n ext = ext.slice(0, ext.length - 1)\n }\n return ext.toUpperCase()\n })\n : null\n ))\n\n const maxFilesNumber = computed(() => parseInt(props.maxFiles, 10))\n const maxTotalSizeNumber = computed(() => parseInt(props.maxTotalSize, 10))\n\n function pickFiles (e) {\n if (editable.value) {\n if (e !== Object(e)) {\n e = { target: null }\n }\n\n if (e.target !== null && e.target.matches('input[type=\"file\"]') === true) {\n // stop propagation if it's not a real pointer event\n e.clientX === 0 && e.clientY === 0 && stop(e)\n }\n else {\n const input = getFileInput()\n input && input !== e.target && input.click(e)\n }\n }\n }\n\n function addFiles (files) {\n if (editable.value && files) {\n addFilesToQueue(null, files)\n }\n }\n\n function processFiles (e, filesToProcess, currentFileList, append) {\n let files = Array.from(filesToProcess || e.target.files)\n const rejectedFiles = []\n\n const done = () => {\n if (rejectedFiles.length > 0) {\n emit('rejected', rejectedFiles)\n }\n }\n\n // filter file types\n if (props.accept !== void 0 && extensions.value.indexOf('*/') === -1) {\n files = filterFiles(files, rejectedFiles, 'accept', file => {\n return extensions.value.some(ext => (\n file.type.toUpperCase().startsWith(ext)\n || file.name.toUpperCase().endsWith(ext)\n ))\n })\n\n if (files.length === 0) { return done() }\n }\n\n // filter max file size\n if (props.maxFileSize !== void 0) {\n const maxFileSize = parseInt(props.maxFileSize, 10)\n files = filterFiles(files, rejectedFiles, 'max-file-size', file => {\n return file.size <= maxFileSize\n })\n\n if (files.length === 0) { return done() }\n }\n\n // Cordova/iOS allows selecting multiple files even when the\n // multiple attribute is not specified. We also normalize drag'n'dropped\n // files here:\n if (props.multiple !== true && files.length > 0) {\n files = [ files[ 0 ] ]\n }\n\n // Compute key to use for each file\n files.forEach(file => {\n file.__key = file.webkitRelativePath + file.lastModified + file.name + file.size\n })\n\n // Avoid duplicate files\n const filenameMap = currentFileList.map(entry => entry.__key)\n files = filterFiles(files, rejectedFiles, 'duplicate', file => {\n return filenameMap.includes(file.__key) === false\n })\n\n if (files.length === 0) { return done() }\n\n if (props.maxTotalSize !== void 0) {\n let size = append === true\n ? currentFileList.reduce((total, file) => total + file.size, 0)\n : 0\n\n files = filterFiles(files, rejectedFiles, 'max-total-size', file => {\n size += file.size\n return size <= maxTotalSizeNumber.value\n })\n\n if (files.length === 0) { return done() }\n }\n\n // do we have custom filter function?\n if (typeof props.filter === 'function') {\n const filteredFiles = props.filter(files)\n files = filterFiles(files, rejectedFiles, 'filter', file => {\n return filteredFiles.includes(file)\n })\n }\n\n if (props.maxFiles !== void 0) {\n let filesNumber = append === true\n ? currentFileList.length\n : 0\n\n files = filterFiles(files, rejectedFiles, 'max-files', () => {\n filesNumber++\n return filesNumber <= maxFilesNumber.value\n })\n\n if (files.length === 0) { return done() }\n }\n\n done()\n\n if (files.length > 0) {\n return files\n }\n }\n\n function onDragover (e) {\n stopAndPreventDrag(e)\n dnd.value !== true && (dnd.value = true)\n }\n\n function onDragleave (e) {\n stopAndPrevent(e)\n e.relatedTarget !== dndRef.value && (dnd.value = false)\n }\n\n function onDrop (e) {\n stopAndPreventDrag(e)\n const files = e.dataTransfer.files\n\n if (files.length > 0) {\n addFilesToQueue(null, files)\n }\n\n dnd.value = false\n }\n\n function getDndNode (type) {\n if (dnd.value === true) {\n return h('div', {\n ref: dndRef,\n class: `q-${ type }__dnd absolute-full`,\n onDragenter: stopAndPreventDrag,\n onDragover: stopAndPreventDrag,\n onDragleave,\n onDrop\n })\n }\n }\n\n // expose public methods\n Object.assign(proxy, { pickFiles, addFiles })\n\n return {\n pickFiles,\n addFiles,\n onDragover,\n processFiles,\n getDndNode,\n maxFilesNumber,\n maxTotalSizeNumber\n }\n}\n","import { h, ref, isRef, computed, watch, provide, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport QBtn from '../btn/QBtn.js'\nimport QIcon from '../icon/QIcon.js'\nimport QSpinner from '../spinner/QSpinner.js'\nimport QCircularProgress from '../circular-progress/QCircularProgress.js'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport useFile, { useFileProps, useFileEmits } from '../../composables/private/use-file.js'\n\nimport { stop } from '../../utils/event.js'\nimport { humanStorageSize } from '../../utils/format.js'\nimport { uploaderKey } from '../../utils/private/symbols.js'\n\nfunction getProgressLabel (p) {\n return (p * 100).toFixed(2) + '%'\n}\n\nexport const coreProps = {\n ...useDarkProps,\n ...useFileProps,\n\n label: String,\n\n color: String,\n textColor: String,\n\n square: Boolean,\n flat: Boolean,\n bordered: Boolean,\n\n noThumbnails: Boolean,\n autoUpload: Boolean,\n hideUploadBtn: Boolean,\n\n disable: Boolean,\n readonly: Boolean\n}\n\nexport const coreEmits = [\n ...useFileEmits,\n 'start', 'finish', 'added', 'removed'\n]\n\nexport function getRenderer (getPlugin) {\n const vm = getCurrentInstance()\n const { props, slots, emit, proxy } = vm\n const { $q } = proxy\n\n const isDark = useDark(props, $q)\n\n function updateFileStatus (file, status, uploadedSize) {\n file.__status = status\n\n if (status === 'idle') {\n file.__uploaded = 0\n file.__progress = 0\n file.__sizeLabel = humanStorageSize(file.size)\n file.__progressLabel = '0.00%'\n return\n }\n if (status === 'failed') {\n proxy.$forceUpdate()\n return\n }\n\n file.__uploaded = status === 'uploaded'\n ? file.size\n : uploadedSize\n\n file.__progress = status === 'uploaded'\n ? 1\n : Math.min(0.9999, file.__uploaded / file.size)\n\n file.__progressLabel = getProgressLabel(file.__progress)\n proxy.$forceUpdate()\n }\n\n const state = {\n files: ref([]),\n queuedFiles: ref([]),\n uploadedFiles: ref([]),\n uploadedSize: ref(0),\n\n updateFileStatus,\n isAlive () {\n return vm.isDeactivated !== true && vm.isUnmounted !== true\n }\n }\n\n Object.assign(state, getPlugin({ props, slots, emit, helpers: state }))\n\n const uploadSize = ref(0)\n const editable = computed(() => props.disable !== true && props.readonly !== true)\n\n if (state.isBusy === void 0) {\n state.isBusy = ref(false)\n }\n\n const dnd = ref(false)\n\n const rootRef = ref(null)\n const inputRef = ref(null)\n\n provide(uploaderKey, renderInput)\n\n const {\n pickFiles,\n addFiles,\n onDragover,\n onDragleave,\n processFiles,\n getDndNode,\n maxFilesNumber,\n maxTotalSizeNumber\n } = useFile({ editable, dnd, getFileInput, addFilesToQueue })\n\n const canAddFiles = computed(() =>\n editable.value === true\n && state.isUploading.value !== true\n // if single selection and no files are queued:\n && (props.multiple === true || state.queuedFiles.value.length === 0)\n // if max-files is set and current number of files does not exceeds it:\n && (props.maxFiles === void 0 || state.files.value.length < maxFilesNumber.value)\n // if max-total-size is set and current upload size does not exceeds it:\n && (props.maxTotalSize === void 0 || uploadSize.value < maxTotalSizeNumber.value)\n )\n\n const canUpload = computed(() =>\n editable.value === true\n && state.isBusy.value !== true\n && state.isUploading.value !== true\n && state.queuedFiles.value.length > 0\n )\n\n const uploadProgress = computed(() => (\n uploadSize.value === 0\n ? 0\n : state.uploadedSize.value / uploadSize.value\n ))\n\n const uploadProgressLabel = computed(() => getProgressLabel(uploadProgress.value))\n const uploadSizeLabel = computed(() => humanStorageSize(uploadSize.value))\n\n const classes = computed(() =>\n 'q-uploader column no-wrap'\n + (isDark.value === true ? ' q-uploader--dark q-dark' : '')\n + (props.bordered === true ? ' q-uploader--bordered' : '')\n + (props.square === true ? ' q-uploader--square no-border-radius' : '')\n + (props.flat === true ? ' q-uploader--flat no-shadow' : '')\n + (props.disable === true ? ' disabled q-uploader--disable' : '')\n )\n\n const colorClass = computed(() =>\n 'q-uploader__header'\n + (props.color !== void 0 ? ` bg-${ props.color }` : '')\n + (props.textColor !== void 0 ? ` text-${ props.textColor }` : '')\n )\n\n watch(state.isUploading, (newVal, oldVal) => {\n if (oldVal === false && newVal === true) {\n emit('start')\n }\n else if (oldVal === true && newVal === false) {\n emit('finish')\n }\n })\n\n function reset () {\n if (props.disable === false) {\n state.abort()\n state.uploadedSize.value = 0\n uploadSize.value = 0\n revokeImgURLs()\n state.files.value = []\n state.queuedFiles.value = []\n state.uploadedFiles.value = []\n }\n }\n\n function removeUploadedFiles () {\n if (props.disable === false) {\n batchRemoveFiles([ 'uploaded' ], () => {\n state.uploadedFiles.value = []\n })\n }\n }\n\n function removeQueuedFiles () {\n batchRemoveFiles([ 'idle', 'failed' ], ({ size }) => {\n uploadSize.value -= size\n state.queuedFiles.value = []\n })\n }\n\n function batchRemoveFiles (statusList, cb) {\n if (props.disable === true) {\n return\n }\n\n const removed = {\n files: [],\n size: 0\n }\n\n const localFiles = state.files.value.filter(f => {\n if (statusList.indexOf(f.__status) === -1) {\n return true\n }\n\n removed.size += f.size\n removed.files.push(f)\n\n f.__img !== void 0 && window.URL.revokeObjectURL(f.__img.src)\n\n return false\n })\n\n if (removed.files.length > 0) {\n state.files.value = localFiles\n cb(removed)\n emit('removed', removed.files)\n }\n }\n\n function removeFile (file) {\n if (props.disable) { return }\n\n if (file.__status === 'uploaded') {\n state.uploadedFiles.value = state.uploadedFiles.value.filter(f => f.__key !== file.__key)\n }\n else if (file.__status === 'uploading') {\n file.__abort()\n }\n else {\n uploadSize.value -= file.size\n }\n\n state.files.value = state.files.value.filter(f => {\n if (f.__key !== file.__key) {\n return true\n }\n\n f.__img !== void 0 && window.URL.revokeObjectURL(f.__img.src)\n\n return false\n })\n\n state.queuedFiles.value = state.queuedFiles.value.filter(f => f.__key !== file.__key)\n emit('removed', [ file ])\n }\n\n function revokeImgURLs () {\n state.files.value.forEach(f => {\n f.__img !== void 0 && window.URL.revokeObjectURL(f.__img.src)\n })\n }\n\n function getFileInput () {\n return inputRef.value\n || rootRef.value.getElementsByClassName('q-uploader__input')[ 0 ]\n }\n\n function addFilesToQueue (e, fileList) {\n const localFiles = processFiles(e, fileList, state.files.value, true)\n\n if (localFiles === void 0) { return }\n\n const fileInput = getFileInput()\n if (fileInput !== void 0 && fileInput !== null) {\n fileInput.value = ''\n }\n\n localFiles.forEach(file => {\n state.updateFileStatus(file, 'idle')\n uploadSize.value += file.size\n\n if (props.noThumbnails !== true && file.type.toUpperCase().startsWith('IMAGE')) {\n const img = new Image()\n img.src = window.URL.createObjectURL(file)\n file.__img = img\n }\n })\n\n state.files.value = state.files.value.concat(localFiles)\n state.queuedFiles.value = state.queuedFiles.value.concat(localFiles)\n emit('added', localFiles)\n props.autoUpload === true && state.upload()\n }\n\n function upload () {\n canUpload.value === true && state.upload()\n }\n\n function getBtn (show, icon, fn) {\n if (show === true) {\n const data = {\n type: 'a',\n key: icon,\n icon: $q.iconSet.uploader[ icon ],\n flat: true,\n dense: true\n }\n\n let child = void 0\n\n if (icon === 'add') {\n data.onClick = pickFiles\n child = renderInput\n }\n else {\n data.onClick = fn\n }\n\n return h(QBtn, data, child)\n }\n }\n\n function renderInput () {\n return h('input', {\n ref: inputRef,\n class: 'q-uploader__input overflow-hidden absolute-full',\n tabindex: -1,\n type: 'file',\n title: '', // try to remove default tooltip\n accept: props.accept,\n multiple: props.multiple === true ? 'multiple' : void 0,\n capture: props.capture,\n onMousedown: stop, // need to stop refocus from QBtn\n onClick: pickFiles,\n onChange: addFilesToQueue\n })\n }\n\n function getHeader () {\n if (slots.header !== void 0) {\n return slots.header(slotScope.value)\n }\n\n return [\n h('div', {\n class: 'q-uploader__header-content column'\n }, [\n h('div', {\n class: 'flex flex-center no-wrap q-gutter-xs'\n }, [\n getBtn(state.queuedFiles.value.length > 0, 'removeQueue', removeQueuedFiles),\n getBtn(state.uploadedFiles.value.length > 0, 'removeUploaded', removeUploadedFiles),\n\n state.isUploading.value === true\n ? h(QSpinner, { class: 'q-uploader__spinner' })\n : null,\n\n h('div', { class: 'col column justify-center' }, [\n props.label !== void 0\n ? h('div', { class: 'q-uploader__title' }, [ props.label ])\n : null,\n\n h('div', { class: 'q-uploader__subtitle' }, [\n uploadSizeLabel.value + ' / ' + uploadProgressLabel.value\n ])\n ]),\n\n getBtn(canAddFiles.value, 'add'),\n getBtn(props.hideUploadBtn === false && canUpload.value === true, 'upload', state.upload),\n getBtn(state.isUploading.value, 'clear', state.abort)\n ])\n ])\n ]\n }\n\n function getList () {\n if (slots.list !== void 0) {\n return slots.list(slotScope.value)\n }\n\n return state.files.value.map(file => h('div', {\n key: file.__key,\n class: 'q-uploader__file relative-position'\n + (props.noThumbnails !== true && file.__img !== void 0 ? ' q-uploader__file--img' : '')\n + (\n file.__status === 'failed'\n ? ' q-uploader__file--failed'\n : (file.__status === 'uploaded' ? ' q-uploader__file--uploaded' : '')\n ),\n style: props.noThumbnails !== true && file.__img !== void 0\n ? { backgroundImage: 'url(\"' + file.__img.src + '\")' }\n : null\n }, [\n h('div', {\n class: 'q-uploader__file-header row flex-center no-wrap'\n }, [\n file.__status === 'failed'\n ? h(QIcon, {\n class: 'q-uploader__file-status',\n name: $q.iconSet.type.negative,\n color: 'negative'\n })\n : null,\n\n h('div', { class: 'q-uploader__file-header-content col' }, [\n h('div', { class: 'q-uploader__title' }, [ file.name ]),\n h('div', {\n class: 'q-uploader__subtitle row items-center no-wrap'\n }, [\n file.__sizeLabel + ' / ' + file.__progressLabel\n ])\n ]),\n\n file.__status === 'uploading'\n ? h(QCircularProgress, {\n value: file.__progress,\n min: 0,\n max: 1,\n indeterminate: file.__progress === 0\n })\n : h(QBtn, {\n round: true,\n dense: true,\n flat: true,\n icon: $q.iconSet.uploader[ file.__status === 'uploaded' ? 'done' : 'clear' ],\n onClick: () => { removeFile(file) }\n })\n ])\n ]))\n }\n\n onBeforeUnmount(() => {\n state.isUploading.value === true && state.abort()\n state.files.value.length > 0 && revokeImgURLs()\n })\n\n const publicMethods = {\n pickFiles,\n addFiles,\n reset,\n removeUploadedFiles,\n removeQueuedFiles,\n removeFile,\n upload,\n abort: state.abort\n }\n\n // TODO: the result of this computed, especially the dynamic part, isn't currently typed\n // This result in an error with Volar when accessing the state (eg. files array)\n const slotScope = computed(() => {\n const acc = {\n canAddFiles: canAddFiles.value,\n canUpload: canUpload.value,\n uploadSizeLabel: uploadSizeLabel.value,\n uploadProgressLabel: uploadProgressLabel.value\n }\n\n for (const key in state) {\n acc[ key ] = isRef(state[ key ]) === true\n ? state[ key ].value\n : state[ key ]\n }\n\n // TODO: (Qv3) Put the QUploader instance under `ref`\n // property for consistency and flexibility\n // return { ref: { ...acc, ...publicMethods } }\n return { ...acc, ...publicMethods }\n })\n\n // expose public methods\n Object.assign(proxy, publicMethods)\n\n return () => {\n const children = [\n h('div', { class: colorClass.value }, getHeader()),\n h('div', { class: 'q-uploader__list scroll' }, getList()),\n getDndNode('uploader')\n ]\n\n state.isBusy.value === true && children.push(\n h('div', {\n class: 'q-uploader__overlay absolute-full flex flex-center'\n }, [ h(QSpinner) ])\n )\n\n const data = { ref: rootRef, class: classes.value }\n\n if (canAddFiles.value === true) {\n Object.assign(data, { onDragover, onDragleave })\n }\n\n return h('div', data, children)\n }\n}\n","const trueFn = () => true\n\nexport default function (emitsArray) {\n const emitsObject = {}\n\n emitsArray.forEach(val => {\n emitsObject[ val ] = trueFn\n })\n\n return emitsObject\n}\n","import { coreProps, coreEmits, getRenderer } from '../components/uploader/uploader-core.js'\n\nimport { createComponent } from './private/create.js'\nimport getEmitsObject from './private/get-emits-object.js'\nimport { isObject } from './private/is.js'\n\nconst coreEmitsObject = getEmitsObject(coreEmits)\n\nexport default ({ name, props, emits, injectPlugin }) => createComponent({\n name,\n\n props: {\n ...coreProps,\n ...props\n },\n\n emits: isObject(emits) === true\n ? { ...coreEmitsObject, ...emits }\n : [ ...coreEmits, ...emits ],\n\n setup () {\n return getRenderer(injectPlugin)\n }\n})\n","/* eslint no-fallthrough: 0 */\n\nimport { isDate } from './private/is.js'\nimport { pad, capitalize } from './format.js'\nimport { jalaaliMonthLength } from './private/date-persian.js'\nimport lang, { defaultLang } from '../lang.js'\n\nconst\n MILLISECONDS_IN_DAY = 86400000,\n MILLISECONDS_IN_HOUR = 3600000,\n MILLISECONDS_IN_MINUTE = 60000,\n defaultMask = 'YYYY-MM-DDTHH:mm:ss.SSSZ',\n token = /\\[((?:[^\\]\\\\]|\\\\]|\\\\)*)\\]|d{1,4}|M{1,4}|m{1,2}|w{1,2}|Qo|Do|D{1,4}|YY(?:YY)?|H{1,2}|h{1,2}|s{1,2}|S{1,3}|Z{1,2}|a{1,2}|[AQExX]/g,\n reverseToken = /(\\[[^\\]]*\\])|d{1,4}|M{1,4}|m{1,2}|w{1,2}|Qo|Do|D{1,4}|YY(?:YY)?|H{1,2}|h{1,2}|s{1,2}|S{1,3}|Z{1,2}|a{1,2}|[AQExX]|([.*+:?^,\\s${}()|\\\\]+)/g,\n regexStore = {}\n\nfunction getRegexData (mask, dateLocale) {\n const\n days = '(' + dateLocale.days.join('|') + ')',\n key = mask + days\n\n if (regexStore[ key ] !== void 0) {\n return regexStore[ key ]\n }\n\n const\n daysShort = '(' + dateLocale.daysShort.join('|') + ')',\n months = '(' + dateLocale.months.join('|') + ')',\n monthsShort = '(' + dateLocale.monthsShort.join('|') + ')'\n\n const map = {}\n let index = 0\n\n const regexText = mask.replace(reverseToken, match => {\n index++\n switch (match) {\n case 'YY':\n map.YY = index\n return '(-?\\\\d{1,2})'\n case 'YYYY':\n map.YYYY = index\n return '(-?\\\\d{1,4})'\n case 'M':\n map.M = index\n return '(\\\\d{1,2})'\n case 'MM':\n map.M = index // bumping to M\n return '(\\\\d{2})'\n case 'MMM':\n map.MMM = index\n return monthsShort\n case 'MMMM':\n map.MMMM = index\n return months\n case 'D':\n map.D = index\n return '(\\\\d{1,2})'\n case 'Do':\n map.D = index++ // bumping to D\n return '(\\\\d{1,2}(st|nd|rd|th))'\n case 'DD':\n map.D = index // bumping to D\n return '(\\\\d{2})'\n case 'H':\n map.H = index\n return '(\\\\d{1,2})'\n case 'HH':\n map.H = index // bumping to H\n return '(\\\\d{2})'\n case 'h':\n map.h = index\n return '(\\\\d{1,2})'\n case 'hh':\n map.h = index // bumping to h\n return '(\\\\d{2})'\n case 'm':\n map.m = index\n return '(\\\\d{1,2})'\n case 'mm':\n map.m = index // bumping to m\n return '(\\\\d{2})'\n case 's':\n map.s = index\n return '(\\\\d{1,2})'\n case 'ss':\n map.s = index // bumping to s\n return '(\\\\d{2})'\n case 'S':\n map.S = index\n return '(\\\\d{1})'\n case 'SS':\n map.S = index // bump to S\n return '(\\\\d{2})'\n case 'SSS':\n map.S = index // bump to S\n return '(\\\\d{3})'\n case 'A':\n map.A = index\n return '(AM|PM)'\n case 'a':\n map.a = index\n return '(am|pm)'\n case 'aa':\n map.aa = index\n return '(a\\\\.m\\\\.|p\\\\.m\\\\.)'\n\n case 'ddd':\n return daysShort\n case 'dddd':\n return days\n case 'Q':\n case 'd':\n case 'E':\n return '(\\\\d{1})'\n case 'Qo':\n return '(1st|2nd|3rd|4th)'\n case 'DDD':\n case 'DDDD':\n return '(\\\\d{1,3})'\n case 'w':\n return '(\\\\d{1,2})'\n case 'ww':\n return '(\\\\d{2})'\n\n case 'Z': // to split: (?:(Z)()()|([+-])?(\\\\d{2}):?(\\\\d{2}))\n map.Z = index\n return '(Z|[+-]\\\\d{2}:\\\\d{2})'\n case 'ZZ':\n map.ZZ = index\n return '(Z|[+-]\\\\d{2}\\\\d{2})'\n\n case 'X':\n map.X = index\n return '(-?\\\\d+)'\n case 'x':\n map.x = index\n return '(-?\\\\d{4,})'\n\n default:\n index--\n if (match[ 0 ] === '[') {\n match = match.substring(1, match.length - 1)\n }\n return match.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n }\n })\n\n const res = { map, regex: new RegExp('^' + regexText) }\n regexStore[ key ] = res\n\n return res\n}\n\nfunction getDateLocale (paramDateLocale, langProps) {\n return paramDateLocale !== void 0\n ? paramDateLocale\n : (\n langProps !== void 0\n ? langProps.date\n : defaultLang.date\n )\n}\n\nfunction formatTimezone (offset, delimeter = '') {\n const\n sign = offset > 0 ? '-' : '+',\n absOffset = Math.abs(offset),\n hours = Math.floor(absOffset / 60),\n minutes = absOffset % 60\n\n return sign + pad(hours) + delimeter + pad(minutes)\n}\n\nfunction applyYearMonthDayChange (date, mod, sign) {\n let\n year = date.getFullYear(),\n month = date.getMonth()\n\n const day = date.getDate()\n\n if (mod.year !== void 0) {\n year += sign * mod.year\n delete mod.year\n }\n\n if (mod.month !== void 0) {\n month += sign * mod.month\n delete mod.month\n }\n\n date.setDate(1)\n date.setMonth(2)\n\n date.setFullYear(year)\n date.setMonth(month)\n date.setDate(Math.min(day, daysInMonth(date)))\n\n if (mod.date !== void 0) {\n date.setDate(date.getDate() + sign * mod.date)\n delete mod.date\n }\n\n return date\n}\n\nfunction applyYearMonthDay (date, mod, middle) {\n const\n year = mod.year !== void 0 ? mod.year : date[ `get${ middle }FullYear` ](),\n month = mod.month !== void 0 ? mod.month - 1 : date[ `get${ middle }Month` ](),\n maxDay = (new Date(year, month + 1, 0)).getDate(),\n day = Math.min(maxDay, mod.date !== void 0 ? mod.date : date[ `get${ middle }Date` ]())\n\n date[ `set${ middle }Date` ](1)\n date[ `set${ middle }Month` ](2)\n\n date[ `set${ middle }FullYear` ](year)\n date[ `set${ middle }Month` ](month)\n date[ `set${ middle }Date` ](day)\n\n delete mod.year\n delete mod.month\n delete mod.date\n\n return date\n}\n\nfunction getChange (date, rawMod, sign) {\n const\n mod = normalizeMod(rawMod),\n d = new Date(date),\n t = mod.year !== void 0 || mod.month !== void 0 || mod.date !== void 0\n ? applyYearMonthDayChange(d, mod, sign) // removes year/month/day\n : d\n\n for (const key in mod) {\n const op = capitalize(key)\n t[ `set${ op }` ](t[ `get${ op }` ]() + sign * mod[ key ])\n }\n\n return t\n}\n\nfunction normalizeMod (mod) {\n const acc = { ...mod }\n\n if (mod.years !== void 0) {\n acc.year = mod.years\n delete acc.years\n }\n\n if (mod.months !== void 0) {\n acc.month = mod.months\n delete acc.months\n }\n\n if (mod.days !== void 0) {\n acc.date = mod.days\n delete acc.days\n }\n if (mod.day !== void 0) {\n acc.date = mod.day\n delete acc.day\n }\n\n if (mod.hour !== void 0) {\n acc.hours = mod.hour\n delete acc.hour\n }\n\n if (mod.minute !== void 0) {\n acc.minutes = mod.minute\n delete acc.minute\n }\n\n if (mod.second !== void 0) {\n acc.seconds = mod.second\n delete acc.second\n }\n\n if (mod.millisecond !== void 0) {\n acc.milliseconds = mod.millisecond\n delete acc.millisecond\n }\n\n return acc\n}\n\nexport function adjustDate (date, rawMod, utc) {\n const\n mod = normalizeMod(rawMod),\n middle = utc === true ? 'UTC' : '',\n d = new Date(date),\n t = mod.year !== void 0 || mod.month !== void 0 || mod.date !== void 0\n ? applyYearMonthDay(d, mod, middle) // removes year/month/day\n : d\n\n for (const key in mod) {\n const op = key.charAt(0).toUpperCase() + key.slice(1)\n t[ `set${ middle }${ op }` ](mod[ key ])\n }\n\n return t\n}\n\nexport function extractDate (str, mask, dateLocale) {\n const d = __splitDate(str, mask, dateLocale)\n\n const date = new Date(\n d.year,\n d.month === null ? null : d.month - 1,\n d.day,\n d.hour,\n d.minute,\n d.second,\n d.millisecond\n )\n\n const tzOffset = date.getTimezoneOffset()\n\n return d.timezoneOffset === null || d.timezoneOffset === tzOffset\n ? date\n : getChange(date, { minutes: d.timezoneOffset - tzOffset }, 1)\n}\n\nexport function __splitDate (str, mask, dateLocale, calendar, defaultModel) {\n const date = {\n year: null,\n month: null,\n day: null,\n hour: null,\n minute: null,\n second: null,\n millisecond: null,\n timezoneOffset: null,\n dateHash: null,\n timeHash: null\n }\n\n defaultModel !== void 0 && Object.assign(date, defaultModel)\n\n if (\n str === void 0\n || str === null\n || str === ''\n || typeof str !== 'string'\n ) {\n return date\n }\n\n if (mask === void 0) {\n mask = defaultMask\n }\n\n const\n langOpts = getDateLocale(dateLocale, lang.props),\n months = langOpts.months,\n monthsShort = langOpts.monthsShort\n\n const { regex, map } = getRegexData(mask, langOpts)\n\n const match = str.match(regex)\n\n if (match === null) {\n return date\n }\n\n let tzString = ''\n\n if (map.X !== void 0 || map.x !== void 0) {\n const stamp = parseInt(match[ map.X !== void 0 ? map.X : map.x ], 10)\n\n if (isNaN(stamp) === true || stamp < 0) {\n return date\n }\n\n const d = new Date(stamp * (map.X !== void 0 ? 1000 : 1))\n\n date.year = d.getFullYear()\n date.month = d.getMonth() + 1\n date.day = d.getDate()\n date.hour = d.getHours()\n date.minute = d.getMinutes()\n date.second = d.getSeconds()\n date.millisecond = d.getMilliseconds()\n }\n else {\n if (map.YYYY !== void 0) {\n date.year = parseInt(match[ map.YYYY ], 10)\n }\n else if (map.YY !== void 0) {\n const y = parseInt(match[ map.YY ], 10)\n date.year = y < 0 ? y : 2000 + y\n }\n\n if (map.M !== void 0) {\n date.month = parseInt(match[ map.M ], 10)\n if (date.month < 1 || date.month > 12) {\n return date\n }\n }\n else if (map.MMM !== void 0) {\n date.month = monthsShort.indexOf(match[ map.MMM ]) + 1\n }\n else if (map.MMMM !== void 0) {\n date.month = months.indexOf(match[ map.MMMM ]) + 1\n }\n\n if (map.D !== void 0) {\n date.day = parseInt(match[ map.D ], 10)\n\n if (date.year === null || date.month === null || date.day < 1) {\n return date\n }\n\n const maxDay = calendar !== 'persian'\n ? (new Date(date.year, date.month, 0)).getDate()\n : jalaaliMonthLength(date.year, date.month)\n\n if (date.day > maxDay) {\n return date\n }\n }\n\n if (map.H !== void 0) {\n date.hour = parseInt(match[ map.H ], 10) % 24\n }\n else if (map.h !== void 0) {\n date.hour = parseInt(match[ map.h ], 10) % 12\n if (\n (map.A && match[ map.A ] === 'PM')\n || (map.a && match[ map.a ] === 'pm')\n || (map.aa && match[ map.aa ] === 'p.m.')\n ) {\n date.hour += 12\n }\n date.hour = date.hour % 24\n }\n\n if (map.m !== void 0) {\n date.minute = parseInt(match[ map.m ], 10) % 60\n }\n\n if (map.s !== void 0) {\n date.second = parseInt(match[ map.s ], 10) % 60\n }\n\n if (map.S !== void 0) {\n date.millisecond = parseInt(match[ map.S ], 10) * 10 ** (3 - match[ map.S ].length)\n }\n\n if (map.Z !== void 0 || map.ZZ !== void 0) {\n tzString = (map.Z !== void 0 ? match[ map.Z ].replace(':', '') : match[ map.ZZ ])\n date.timezoneOffset = (tzString[ 0 ] === '+' ? -1 : 1) * (60 * tzString.slice(1, 3) + 1 * tzString.slice(3, 5))\n }\n }\n\n date.dateHash = pad(date.year, 6) + '/' + pad(date.month) + '/' + pad(date.day)\n date.timeHash = pad(date.hour) + ':' + pad(date.minute) + ':' + pad(date.second) + tzString\n\n return date\n}\n\nexport function isValid (date) {\n return typeof date === 'number'\n ? true\n : isNaN(Date.parse(date)) === false\n}\n\nexport function buildDate (mod, utc) {\n return adjustDate(new Date(), mod, utc)\n}\n\nexport function getDayOfWeek (date) {\n const dow = new Date(date).getDay()\n return dow === 0 ? 7 : dow\n}\n\nexport function getWeekOfYear (date) {\n // Remove time components of date\n const thursday = new Date(date.getFullYear(), date.getMonth(), date.getDate())\n\n // Change date to Thursday same week\n thursday.setDate(thursday.getDate() - ((thursday.getDay() + 6) % 7) + 3)\n\n // Take January 4th as it is always in week 1 (see ISO 8601)\n const firstThursday = new Date(thursday.getFullYear(), 0, 4)\n\n // Change date to Thursday same week\n firstThursday.setDate(firstThursday.getDate() - ((firstThursday.getDay() + 6) % 7) + 3)\n\n // Check if daylight-saving-time-switch occurred and correct for it\n const ds = thursday.getTimezoneOffset() - firstThursday.getTimezoneOffset()\n thursday.setHours(thursday.getHours() - ds)\n\n // Number of weeks between target Thursday and first Thursday\n const weekDiff = (thursday - firstThursday) / (MILLISECONDS_IN_DAY * 7)\n return 1 + Math.floor(weekDiff)\n}\n\nfunction getDayIdentifier (date) {\n return date.getFullYear() * 10000 + date.getMonth() * 100 + date.getDate()\n}\n\nfunction getDateIdentifier (date, onlyDate /* = false */) {\n const d = new Date(date)\n return onlyDate === true ? getDayIdentifier(d) : d.getTime()\n}\n\nexport function isBetweenDates (date, from, to, opts = {}) {\n const\n d1 = getDateIdentifier(from, opts.onlyDate),\n d2 = getDateIdentifier(to, opts.onlyDate),\n cur = getDateIdentifier(date, opts.onlyDate)\n\n return (cur > d1 || (opts.inclusiveFrom === true && cur === d1))\n && (cur < d2 || (opts.inclusiveTo === true && cur === d2))\n}\n\nexport function addToDate (date, mod) {\n return getChange(date, mod, 1)\n}\nexport function subtractFromDate (date, mod) {\n return getChange(date, mod, -1)\n}\n\nexport function startOfDate (date, unit, utc) {\n const\n t = new Date(date),\n prefix = `set${ utc === true ? 'UTC' : '' }`\n\n switch (unit) {\n case 'year':\n case 'years':\n t[ `${ prefix }Month` ](0)\n case 'month':\n case 'months':\n t[ `${ prefix }Date` ](1)\n case 'day':\n case 'days':\n case 'date':\n t[ `${ prefix }Hours` ](0)\n case 'hour':\n case 'hours':\n t[ `${ prefix }Minutes` ](0)\n case 'minute':\n case 'minutes':\n t[ `${ prefix }Seconds` ](0)\n case 'second':\n case 'seconds':\n t[ `${ prefix }Milliseconds` ](0)\n }\n return t\n}\n\nexport function endOfDate (date, unit, utc) {\n const\n t = new Date(date),\n prefix = `set${ utc === true ? 'UTC' : '' }`\n\n switch (unit) {\n case 'year':\n case 'years':\n t[ `${ prefix }Month` ](11)\n case 'month':\n case 'months':\n t[ `${ prefix }Date` ](daysInMonth(t))\n case 'day':\n case 'days':\n case 'date':\n t[ `${ prefix }Hours` ](23)\n case 'hour':\n case 'hours':\n t[ `${ prefix }Minutes` ](59)\n case 'minute':\n case 'minutes':\n t[ `${ prefix }Seconds` ](59)\n case 'second':\n case 'seconds':\n t[ `${ prefix }Milliseconds` ](999)\n }\n return t\n}\n\nexport function getMaxDate (date /* , ...args */) {\n let t = new Date(date)\n Array.prototype.slice.call(arguments, 1).forEach(d => {\n t = Math.max(t, new Date(d))\n })\n return t\n}\n\nexport function getMinDate (date /*, ...args */) {\n let t = new Date(date)\n Array.prototype.slice.call(arguments, 1).forEach(d => {\n t = Math.min(t, new Date(d))\n })\n return t\n}\n\nfunction getDiff (t, sub, interval) {\n return (\n (t.getTime() - t.getTimezoneOffset() * MILLISECONDS_IN_MINUTE)\n - (sub.getTime() - sub.getTimezoneOffset() * MILLISECONDS_IN_MINUTE)\n ) / interval\n}\n\nexport function getDateDiff (date, subtract, unit = 'days') {\n const\n t = new Date(date),\n sub = new Date(subtract)\n\n switch (unit) {\n case 'years':\n case 'year':\n return (t.getFullYear() - sub.getFullYear())\n\n case 'months':\n case 'month':\n return (t.getFullYear() - sub.getFullYear()) * 12 + t.getMonth() - sub.getMonth()\n\n case 'days':\n case 'day':\n case 'date':\n return getDiff(startOfDate(t, 'day'), startOfDate(sub, 'day'), MILLISECONDS_IN_DAY)\n\n case 'hours':\n case 'hour':\n return getDiff(startOfDate(t, 'hour'), startOfDate(sub, 'hour'), MILLISECONDS_IN_HOUR)\n\n case 'minutes':\n case 'minute':\n return getDiff(startOfDate(t, 'minute'), startOfDate(sub, 'minute'), MILLISECONDS_IN_MINUTE)\n\n case 'seconds':\n case 'second':\n return getDiff(startOfDate(t, 'second'), startOfDate(sub, 'second'), 1000)\n }\n}\n\nexport function getDayOfYear (date) {\n return getDateDiff(date, startOfDate(date, 'year'), 'days') + 1\n}\n\nexport function inferDateFormat (date) {\n return isDate(date) === true\n ? 'date'\n : (typeof date === 'number' ? 'number' : 'string')\n}\n\nexport function getDateBetween (date, min, max) {\n const t = new Date(date)\n\n if (min) {\n const low = new Date(min)\n if (t < low) {\n return low\n }\n }\n\n if (max) {\n const high = new Date(max)\n if (t > high) {\n return high\n }\n }\n\n return t\n}\n\nexport function isSameDate (date, date2, unit) {\n const\n t = new Date(date),\n d = new Date(date2)\n\n if (unit === void 0) {\n return t.getTime() === d.getTime()\n }\n\n switch (unit) {\n case 'second':\n case 'seconds':\n if (t.getSeconds() !== d.getSeconds()) {\n return false\n }\n case 'minute': // intentional fall-through\n case 'minutes':\n if (t.getMinutes() !== d.getMinutes()) {\n return false\n }\n case 'hour': // intentional fall-through\n case 'hours':\n if (t.getHours() !== d.getHours()) {\n return false\n }\n case 'day': // intentional fall-through\n case 'days':\n case 'date':\n if (t.getDate() !== d.getDate()) {\n return false\n }\n case 'month': // intentional fall-through\n case 'months':\n if (t.getMonth() !== d.getMonth()) {\n return false\n }\n case 'year': // intentional fall-through\n case 'years':\n if (t.getFullYear() !== d.getFullYear()) {\n return false\n }\n break\n default:\n throw new Error(`date isSameDate unknown unit ${ unit }`)\n }\n\n return true\n}\n\nexport function daysInMonth (date) {\n return (new Date(date.getFullYear(), date.getMonth() + 1, 0)).getDate()\n}\n\nfunction getOrdinal (n) {\n if (n >= 11 && n <= 13) {\n return `${ n }th`\n }\n switch (n % 10) {\n case 1: return `${ n }st`\n case 2: return `${ n }nd`\n case 3: return `${ n }rd`\n }\n return `${ n }th`\n}\n\nconst formatter = {\n // Year: 00, 01, ..., 99\n YY (date, dateLocale, forcedYear) {\n // workaround for < 1900 with new Date()\n const y = this.YYYY(date, dateLocale, forcedYear) % 100\n return y > 0\n ? pad(y)\n : '-' + pad(Math.abs(y))\n },\n\n // Year: 1900, 1901, ..., 2099\n YYYY (date, _dateLocale, forcedYear) {\n // workaround for < 1900 with new Date()\n return forcedYear !== void 0 && forcedYear !== null\n ? forcedYear\n : date.getFullYear()\n },\n\n // Month: 1, 2, ..., 12\n M (date) {\n return date.getMonth() + 1\n },\n\n // Month: 01, 02, ..., 12\n MM (date) {\n return pad(date.getMonth() + 1)\n },\n\n // Month Short Name: Jan, Feb, ...\n MMM (date, dateLocale) {\n return dateLocale.monthsShort[ date.getMonth() ]\n },\n\n // Month Name: January, February, ...\n MMMM (date, dateLocale) {\n return dateLocale.months[ date.getMonth() ]\n },\n\n // Quarter: 1, 2, 3, 4\n Q (date) {\n return Math.ceil((date.getMonth() + 1) / 3)\n },\n\n // Quarter: 1st, 2nd, 3rd, 4th\n Qo (date) {\n return getOrdinal(this.Q(date))\n },\n\n // Day of month: 1, 2, ..., 31\n D (date) {\n return date.getDate()\n },\n\n // Day of month: 1st, 2nd, ..., 31st\n Do (date) {\n return getOrdinal(date.getDate())\n },\n\n // Day of month: 01, 02, ..., 31\n DD (date) {\n return pad(date.getDate())\n },\n\n // Day of year: 1, 2, ..., 366\n DDD (date) {\n return getDayOfYear(date)\n },\n\n // Day of year: 001, 002, ..., 366\n DDDD (date) {\n return pad(getDayOfYear(date), 3)\n },\n\n // Day of week: 0, 1, ..., 6\n d (date) {\n return date.getDay()\n },\n\n // Day of week: Su, Mo, ...\n dd (date, dateLocale) {\n return this.dddd(date, dateLocale).slice(0, 2)\n },\n\n // Day of week: Sun, Mon, ...\n ddd (date, dateLocale) {\n return dateLocale.daysShort[ date.getDay() ]\n },\n\n // Day of week: Sunday, Monday, ...\n dddd (date, dateLocale) {\n return dateLocale.days[ date.getDay() ]\n },\n\n // Day of ISO week: 1, 2, ..., 7\n E (date) {\n return date.getDay() || 7\n },\n\n // Week of Year: 1 2 ... 52 53\n w (date) {\n return getWeekOfYear(date)\n },\n\n // Week of Year: 01 02 ... 52 53\n ww (date) {\n return pad(getWeekOfYear(date))\n },\n\n // Hour: 0, 1, ... 23\n H (date) {\n return date.getHours()\n },\n\n // Hour: 00, 01, ..., 23\n HH (date) {\n return pad(date.getHours())\n },\n\n // Hour: 1, 2, ..., 12\n h (date) {\n const hours = date.getHours()\n return hours === 0\n ? 12\n : (hours > 12 ? hours % 12 : hours)\n },\n\n // Hour: 01, 02, ..., 12\n hh (date) {\n return pad(this.h(date))\n },\n\n // Minute: 0, 1, ..., 59\n m (date) {\n return date.getMinutes()\n },\n\n // Minute: 00, 01, ..., 59\n mm (date) {\n return pad(date.getMinutes())\n },\n\n // Second: 0, 1, ..., 59\n s (date) {\n return date.getSeconds()\n },\n\n // Second: 00, 01, ..., 59\n ss (date) {\n return pad(date.getSeconds())\n },\n\n // 1/10 of second: 0, 1, ..., 9\n S (date) {\n return Math.floor(date.getMilliseconds() / 100)\n },\n\n // 1/100 of second: 00, 01, ..., 99\n SS (date) {\n return pad(Math.floor(date.getMilliseconds() / 10))\n },\n\n // Millisecond: 000, 001, ..., 999\n SSS (date) {\n return pad(date.getMilliseconds(), 3)\n },\n\n // Meridiem: AM, PM\n A (date) {\n return this.H(date) < 12 ? 'AM' : 'PM'\n },\n\n // Meridiem: am, pm\n a (date) {\n return this.H(date) < 12 ? 'am' : 'pm'\n },\n\n // Meridiem: a.m., p.m.\n aa (date) {\n return this.H(date) < 12 ? 'a.m.' : 'p.m.'\n },\n\n // Timezone: -01:00, +00:00, ... +12:00\n Z (date, _dateLocale, _forcedYear, forcedTimezoneOffset) {\n const tzOffset = forcedTimezoneOffset === void 0 || forcedTimezoneOffset === null\n ? date.getTimezoneOffset()\n : forcedTimezoneOffset\n\n return formatTimezone(tzOffset, ':')\n },\n\n // Timezone: -0100, +0000, ... +1200\n ZZ (date, _dateLocale, _forcedYear, forcedTimezoneOffset) {\n const tzOffset = forcedTimezoneOffset === void 0 || forcedTimezoneOffset === null\n ? date.getTimezoneOffset()\n : forcedTimezoneOffset\n\n return formatTimezone(tzOffset)\n },\n\n // Seconds timestamp: 512969520\n X (date) {\n return Math.floor(date.getTime() / 1000)\n },\n\n // Milliseconds timestamp: 512969520900\n x (date) {\n return date.getTime()\n }\n}\n\nexport function formatDate (val, mask, dateLocale, __forcedYear, __forcedTimezoneOffset) {\n if (\n (val !== 0 && !val)\n || val === Infinity\n || val === -Infinity\n ) {\n return\n }\n\n const date = new Date(val)\n\n if (isNaN(date)) {\n return\n }\n\n if (mask === void 0) {\n mask = defaultMask\n }\n\n const locale = getDateLocale(dateLocale, lang.props)\n\n return mask.replace(\n token,\n (match, text) => (\n match in formatter\n ? formatter[ match ](date, locale, __forcedYear, __forcedTimezoneOffset)\n : (text === void 0 ? match : text.split('\\\\]').join(']'))\n )\n )\n}\n\nexport function clone (date) {\n return isDate(date) === true\n ? new Date(date.getTime())\n : date\n}\n\nexport default {\n isValid,\n extractDate,\n buildDate,\n getDayOfWeek,\n getWeekOfYear,\n isBetweenDates,\n addToDate,\n subtractFromDate,\n adjustDate,\n startOfDate,\n endOfDate,\n getMaxDate,\n getMinDate,\n getDateDiff,\n getDayOfYear,\n inferDateFormat,\n getDateBetween,\n isSameDate,\n daysInMonth,\n formatDate,\n clone\n}\n","/**\n * Based on the work of https://github.com/jchook/uuid-random\n */\n\nlet\n buf,\n bufIdx = 0\nconst hexBytes = new Array(256)\n\n// Pre-calculate toString(16) for speed\nfor (let i = 0; i < 256; i++) {\n hexBytes[ i ] = (i + 0x100).toString(16).substring(1)\n}\n\n// Use best available PRNG\nconst randomBytes = (() => {\n // Node & Browser support\n const lib = typeof crypto !== 'undefined'\n ? crypto\n : (\n typeof window !== 'undefined'\n ? window.crypto || window.msCrypto\n : void 0\n )\n\n if (lib !== void 0) {\n if (lib.randomBytes !== void 0) {\n return lib.randomBytes\n }\n if (lib.getRandomValues !== void 0) {\n return n => {\n const bytes = new Uint8Array(n)\n lib.getRandomValues(bytes)\n return bytes\n }\n }\n }\n\n return n => {\n const r = []\n for (let i = n; i > 0; i--) {\n r.push(Math.floor(Math.random() * 256))\n }\n return r\n }\n})()\n\n// Buffer random numbers for speed\n// Reduce memory usage by decreasing this number (min 16)\n// or improve speed by increasing this number (try 16384)\nconst BUFFER_SIZE = 4096\n\nexport default function () {\n // Buffer some random bytes for speed\n if (buf === void 0 || (bufIdx + 16 > BUFFER_SIZE)) {\n bufIdx = 0\n buf = randomBytes(BUFFER_SIZE)\n }\n\n const b = Array.prototype.slice.call(buf, bufIdx, (bufIdx += 16))\n b[ 6 ] = (b[ 6 ] & 0x0f) | 0x40\n b[ 8 ] = (b[ 8 ] & 0x3f) | 0x80\n\n return hexBytes[ b[ 0 ] ] + hexBytes[ b[ 1 ] ]\n + hexBytes[ b[ 2 ] ] + hexBytes[ b[ 3 ] ] + '-'\n + hexBytes[ b[ 4 ] ] + hexBytes[ b[ 5 ] ] + '-'\n + hexBytes[ b[ 6 ] ] + hexBytes[ b[ 7 ] ] + '-'\n + hexBytes[ b[ 8 ] ] + hexBytes[ b[ 9 ] ] + '-'\n + hexBytes[ b[ 10 ] ] + hexBytes[ b[ 11 ] ]\n + hexBytes[ b[ 12 ] ] + hexBytes[ b[ 13 ] ]\n + hexBytes[ b[ 14 ] ] + hexBytes[ b[ 15 ] ]\n}\n","import { ref, computed, watch, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport useFormChild from '../use-form-child.js'\nimport { testPattern } from '../../utils/patterns.js'\nimport { debounce } from '../../utils.js'\nimport { injectProp } from '../../utils/private/inject-obj-prop.js'\n\nconst lazyRulesValues = [ true, false, 'ondemand' ]\n\nexport const useValidateProps = {\n modelValue: {},\n\n error: {\n type: Boolean,\n default: null\n },\n errorMessage: String,\n noErrorIcon: Boolean,\n\n rules: Array,\n reactiveRules: Boolean,\n lazyRules: {\n type: [ Boolean, String ],\n validator: v => lazyRulesValues.includes(v)\n }\n}\n\nexport default function (focused, innerLoading) {\n const { props, proxy } = getCurrentInstance()\n\n const innerError = ref(false)\n const innerErrorMessage = ref(null)\n const isDirtyModel = ref(null)\n\n useFormChild({ validate, resetValidation })\n\n let validateIndex = 0, unwatchRules\n\n const hasRules = computed(() =>\n props.rules !== void 0\n && props.rules !== null\n && props.rules.length > 0\n )\n\n const hasActiveRules = computed(() =>\n props.disable !== true\n && hasRules.value === true\n )\n\n const hasError = computed(() =>\n props.error === true || innerError.value === true\n )\n\n const errorMessage = computed(() => (\n typeof props.errorMessage === 'string' && props.errorMessage.length > 0\n ? props.errorMessage\n : innerErrorMessage.value\n ))\n\n watch(() => props.modelValue, () => {\n validateIfNeeded()\n })\n\n watch(() => props.reactiveRules, val => {\n if (val === true) {\n if (unwatchRules === void 0) {\n unwatchRules = watch(() => props.rules, () => {\n validateIfNeeded(true)\n })\n }\n }\n else if (unwatchRules !== void 0) {\n unwatchRules()\n unwatchRules = void 0\n }\n }, { immediate: true })\n\n watch(focused, val => {\n if (val === true) {\n if (isDirtyModel.value === null) {\n isDirtyModel.value = false\n }\n }\n else if (isDirtyModel.value === false) {\n isDirtyModel.value = true\n\n if (\n hasActiveRules.value === true\n && props.lazyRules !== 'ondemand'\n // Don't re-trigger if it's already in progress;\n // It might mean that focus switched to submit btn and\n // QForm's submit() has been called already (ENTER key)\n && innerLoading.value === false\n ) {\n debouncedValidate()\n }\n }\n })\n\n function resetValidation () {\n validateIndex++\n innerLoading.value = false\n isDirtyModel.value = null\n innerError.value = false\n innerErrorMessage.value = null\n debouncedValidate.cancel()\n }\n\n /*\n * Return value\n * - true (validation succeeded)\n * - false (validation failed)\n * - Promise (pending async validation)\n */\n function validate (val = props.modelValue) {\n if (hasActiveRules.value !== true) {\n return true\n }\n\n const index = ++validateIndex\n\n if (innerLoading.value !== true && props.lazyRules !== true) {\n isDirtyModel.value = true\n }\n\n const update = (err, msg) => {\n if (innerError.value !== err) {\n innerError.value = err\n }\n\n const m = msg || void 0\n\n if (innerErrorMessage.value !== m) {\n innerErrorMessage.value = m\n }\n\n innerLoading.value = false\n }\n\n const promises = []\n\n for (let i = 0; i < props.rules.length; i++) {\n const rule = props.rules[ i ]\n let res\n\n if (typeof rule === 'function') {\n res = rule(val)\n }\n else if (typeof rule === 'string' && testPattern[ rule ] !== void 0) {\n res = testPattern[ rule ](val)\n }\n\n if (res === false || typeof res === 'string') {\n update(true, res)\n return false\n }\n else if (res !== true && res !== void 0) {\n promises.push(res)\n }\n }\n\n if (promises.length === 0) {\n update(false)\n return true\n }\n\n innerLoading.value = true\n\n return Promise.all(promises).then(\n res => {\n if (res === void 0 || Array.isArray(res) === false || res.length === 0) {\n index === validateIndex && update(false)\n return true\n }\n\n const msg = res.find(r => r === false || typeof r === 'string')\n index === validateIndex && update(msg !== void 0, msg)\n return msg === void 0\n },\n e => {\n if (index === validateIndex) {\n console.error(e)\n update(true)\n }\n\n return false\n }\n )\n }\n\n function validateIfNeeded (changedRules) {\n if (\n hasActiveRules.value === true\n && props.lazyRules !== 'ondemand'\n && (isDirtyModel.value === true || (props.lazyRules !== true && changedRules !== true))\n ) {\n debouncedValidate()\n }\n }\n\n const debouncedValidate = debounce(validate, 0)\n\n onBeforeUnmount(() => {\n unwatchRules !== void 0 && unwatchRules()\n debouncedValidate.cancel()\n })\n\n // expose public methods & props\n Object.assign(proxy, { resetValidation, validate })\n injectProp(proxy, 'hasError', () => hasError.value)\n\n return {\n isDirtyModel,\n hasRules,\n hasError,\n errorMessage,\n\n validate,\n resetValidation\n }\n}\n","import { ref, onBeforeUpdate } from 'vue'\n\nconst listenerRE = /^on[A-Z]/\n\nexport default function (attrs, vnode) {\n const acc = {\n listeners: ref({}),\n attributes: ref({})\n }\n\n function update () {\n const attributes = {}\n const listeners = {}\n\n for (const key in attrs) {\n if (key !== 'class' && key !== 'style' && listenerRE.test(key) === false) {\n attributes[ key ] = attrs[ key ]\n }\n }\n\n for (const key in vnode.props) {\n if (listenerRE.test(key) === true) {\n listeners[ key ] = vnode.props[ key ]\n }\n }\n\n acc.attributes.value = attributes\n acc.listeners.value = listeners\n }\n\n onBeforeUpdate(update)\n\n update()\n\n return acc\n}\n","import { h, ref, computed, watch, Transition, nextTick, onActivated, onDeactivated, onBeforeUnmount, onMounted, getCurrentInstance } from 'vue'\n\nimport { isRuntimeSsrPreHydration } from '../../plugins/Platform.js'\n\nimport QIcon from '../../components/icon/QIcon.js'\nimport QSpinner from '../../components/spinner/QSpinner.js'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport useValidate, { useValidateProps } from './use-validate.js'\nimport useSplitAttrs from './use-split-attrs.js'\n\nimport { hSlot } from '../../utils/private/render.js'\nimport uid from '../../utils/uid.js'\nimport { prevent, stopAndPrevent } from '../../utils/event.js'\nimport { addFocusFn, removeFocusFn } from '../../utils/private/focus-manager.js'\n\nfunction getTargetUid (val) {\n return val === void 0 ? `f_${ uid() }` : val\n}\n\nexport function fieldValueIsFilled (val) {\n return val !== void 0\n && val !== null\n && ('' + val).length > 0\n}\n\nexport const useFieldProps = {\n ...useDarkProps,\n ...useValidateProps,\n\n label: String,\n stackLabel: Boolean,\n hint: String,\n hideHint: Boolean,\n prefix: String,\n suffix: String,\n\n labelColor: String,\n color: String,\n bgColor: String,\n\n filled: Boolean,\n outlined: Boolean,\n borderless: Boolean,\n standout: [ Boolean, String ],\n\n square: Boolean,\n\n loading: Boolean,\n\n labelSlot: Boolean,\n\n bottomSlots: Boolean,\n hideBottomSpace: Boolean,\n\n rounded: Boolean,\n dense: Boolean,\n itemAligned: Boolean,\n\n counter: Boolean,\n\n clearable: Boolean,\n clearIcon: String,\n\n disable: Boolean,\n readonly: Boolean,\n\n autofocus: Boolean,\n\n for: String,\n\n maxlength: [ Number, String ]\n}\n\nexport const useFieldEmits = [ 'update:modelValue', 'clear', 'focus', 'blur', 'popup-show', 'popup-hide' ]\n\nexport function useFieldState () {\n const { props, attrs, proxy, vnode } = getCurrentInstance()\n\n const isDark = useDark(props, proxy.$q)\n\n return {\n isDark,\n\n editable: computed(() =>\n props.disable !== true && props.readonly !== true\n ),\n\n innerLoading: ref(false),\n focused: ref(false),\n hasPopupOpen: false,\n\n splitAttrs: useSplitAttrs(attrs, vnode),\n targetUid: ref(getTargetUid(props.for)),\n\n rootRef: ref(null),\n targetRef: ref(null),\n controlRef: ref(null)\n\n /**\n * user supplied additionals:\n\n * innerValue - computed\n * floatingLabel - computed\n * inputRef - computed\n\n * fieldClass - computed\n * hasShadow - computed\n\n * controlEvents - Object with fn(e)\n\n * getControl - fn\n * getInnerAppend - fn\n * getControlChild - fn\n * getShadowControl - fn\n * showPopup - fn\n */\n }\n}\n\nexport default function (state) {\n const { props, emit, slots, attrs, proxy } = getCurrentInstance()\n const { $q } = proxy\n\n let focusoutTimer\n\n if (state.hasValue === void 0) {\n state.hasValue = computed(() => fieldValueIsFilled(props.modelValue))\n }\n\n if (state.emitValue === void 0) {\n state.emitValue = value => {\n emit('update:modelValue', value)\n }\n }\n\n if (state.controlEvents === void 0) {\n state.controlEvents = {\n onFocusin: onControlFocusin,\n onFocusout: onControlFocusout\n }\n }\n\n Object.assign(state, {\n clearValue,\n onControlFocusin,\n onControlFocusout,\n focus\n })\n\n if (state.computedCounter === void 0) {\n state.computedCounter = computed(() => {\n if (props.counter !== false) {\n const len = typeof props.modelValue === 'string' || typeof props.modelValue === 'number'\n ? ('' + props.modelValue).length\n : (Array.isArray(props.modelValue) === true ? props.modelValue.length : 0)\n\n const max = props.maxlength !== void 0\n ? props.maxlength\n : props.maxValues\n\n return len + (max !== void 0 ? ' / ' + max : '')\n }\n })\n }\n\n const {\n isDirtyModel,\n hasRules,\n hasError,\n errorMessage,\n resetValidation\n } = useValidate(state.focused, state.innerLoading)\n\n const floatingLabel = state.floatingLabel !== void 0\n ? computed(() => props.stackLabel === true || state.focused.value === true || state.floatingLabel.value === true)\n : computed(() => props.stackLabel === true || state.focused.value === true || state.hasValue.value === true)\n\n const shouldRenderBottom = computed(() =>\n props.bottomSlots === true\n || props.hint !== void 0\n || hasRules.value === true\n || props.counter === true\n || props.error !== null\n )\n\n const styleType = computed(() => {\n if (props.filled === true) { return 'filled' }\n if (props.outlined === true) { return 'outlined' }\n if (props.borderless === true) { return 'borderless' }\n if (props.standout) { return 'standout' }\n return 'standard'\n })\n\n const classes = computed(() =>\n `q-field row no-wrap items-start q-field--${ styleType.value }`\n + (state.fieldClass !== void 0 ? ` ${ state.fieldClass.value }` : '')\n + (props.rounded === true ? ' q-field--rounded' : '')\n + (props.square === true ? ' q-field--square' : '')\n + (floatingLabel.value === true ? ' q-field--float' : '')\n + (hasLabel.value === true ? ' q-field--labeled' : '')\n + (props.dense === true ? ' q-field--dense' : '')\n + (props.itemAligned === true ? ' q-field--item-aligned q-item-type' : '')\n + (state.isDark.value === true ? ' q-field--dark' : '')\n + (state.getControl === void 0 ? ' q-field--auto-height' : '')\n + (state.focused.value === true ? ' q-field--focused' : '')\n + (hasError.value === true ? ' q-field--error' : '')\n + (hasError.value === true || state.focused.value === true ? ' q-field--highlighted' : '')\n + (props.hideBottomSpace !== true && shouldRenderBottom.value === true ? ' q-field--with-bottom' : '')\n + (props.disable === true ? ' q-field--disabled' : (props.readonly === true ? ' q-field--readonly' : ''))\n )\n\n const contentClass = computed(() =>\n 'q-field__control relative-position row no-wrap'\n + (props.bgColor !== void 0 ? ` bg-${ props.bgColor }` : '')\n + (\n hasError.value === true\n ? ' text-negative'\n : (\n typeof props.standout === 'string' && props.standout.length > 0 && state.focused.value === true\n ? ` ${ props.standout }`\n : (props.color !== void 0 ? ` text-${ props.color }` : '')\n )\n )\n )\n\n const hasLabel = computed(() =>\n props.labelSlot === true || props.label !== void 0\n )\n\n const labelClass = computed(() =>\n 'q-field__label no-pointer-events absolute ellipsis'\n + (props.labelColor !== void 0 && hasError.value !== true ? ` text-${ props.labelColor }` : '')\n )\n\n const controlSlotScope = computed(() => ({\n id: state.targetUid.value,\n editable: state.editable.value,\n focused: state.focused.value,\n floatingLabel: floatingLabel.value,\n modelValue: props.modelValue,\n emitValue: state.emitValue\n }))\n\n const attributes = computed(() => {\n const acc = {\n for: state.targetUid.value\n }\n\n if (props.disable === true) {\n acc[ 'aria-disabled' ] = 'true'\n }\n else if (props.readonly === true) {\n acc[ 'aria-readonly' ] = 'true'\n }\n\n return acc\n })\n\n watch(() => props.for, val => {\n // don't transform targetUid into a computed\n // prop as it will break SSR\n state.targetUid.value = getTargetUid(val)\n })\n\n function focusHandler () {\n const el = document.activeElement\n let target = state.targetRef !== void 0 && state.targetRef.value\n\n if (target && (el === null || el.id !== state.targetUid.value)) {\n target.hasAttribute('tabindex') === true || (target = target.querySelector('[tabindex]'))\n if (target && target !== el) {\n target.focus({ preventScroll: true })\n }\n }\n }\n\n function focus () {\n addFocusFn(focusHandler)\n }\n\n function blur () {\n removeFocusFn(focusHandler)\n const el = document.activeElement\n if (el !== null && state.rootRef.value.contains(el)) {\n el.blur()\n }\n }\n\n function onControlFocusin (e) {\n clearTimeout(focusoutTimer)\n if (state.editable.value === true && state.focused.value === false) {\n state.focused.value = true\n emit('focus', e)\n }\n }\n\n function onControlFocusout (e, then) {\n clearTimeout(focusoutTimer)\n focusoutTimer = setTimeout(() => {\n if (\n document.hasFocus() === true && (\n state.hasPopupOpen === true\n || state.controlRef === void 0\n || state.controlRef.value === null\n || state.controlRef.value.contains(document.activeElement) !== false\n )\n ) {\n return\n }\n\n if (state.focused.value === true) {\n state.focused.value = false\n emit('blur', e)\n }\n\n then !== void 0 && then()\n })\n }\n\n function clearValue (e) {\n // prevent activating the field but keep focus on desktop\n stopAndPrevent(e)\n\n if ($q.platform.is.mobile !== true) {\n const el = (state.targetRef !== void 0 && state.targetRef.value) || state.rootRef.value\n el.focus()\n }\n else if (state.rootRef.value.contains(document.activeElement) === true) {\n document.activeElement.blur()\n }\n\n if (props.type === 'file') { // TODO vue3\n // do not let focus be triggered\n // as it will make the native file dialog\n // appear for another selection\n state.inputRef.value.value = null\n }\n\n emit('update:modelValue', null)\n emit('clear', props.modelValue)\n\n nextTick(() => {\n resetValidation()\n\n if ($q.platform.is.mobile !== true) {\n isDirtyModel.value = false\n }\n })\n }\n\n function getContent () {\n const node = []\n\n slots.prepend !== void 0 && node.push(\n h('div', {\n class: 'q-field__prepend q-field__marginal row no-wrap items-center',\n key: 'prepend',\n onClick: prevent\n }, slots.prepend())\n )\n\n node.push(\n h('div', {\n class: 'q-field__control-container col relative-position row no-wrap q-anchor--skip'\n }, getControlContainer())\n )\n\n hasError.value === true && props.noErrorIcon === false && node.push(\n getInnerAppendNode('error', [\n h(QIcon, { name: $q.iconSet.field.error, color: 'negative' })\n ])\n )\n\n if (props.loading === true || state.innerLoading.value === true) {\n node.push(\n getInnerAppendNode(\n 'inner-loading-append',\n slots.loading !== void 0\n ? slots.loading()\n : [ h(QSpinner, { color: props.color }) ]\n )\n )\n }\n else if (props.clearable === true && state.hasValue.value === true && state.editable.value === true) {\n node.push(\n getInnerAppendNode('inner-clearable-append', [\n h(QIcon, {\n class: 'q-field__focusable-action',\n tag: 'button',\n name: props.clearIcon || $q.iconSet.field.clear,\n tabindex: 0,\n type: 'button',\n 'aria-hidden': null,\n role: null,\n onClick: clearValue\n })\n ])\n )\n }\n\n slots.append !== void 0 && node.push(\n h('div', {\n class: 'q-field__append q-field__marginal row no-wrap items-center',\n key: 'append',\n onClick: prevent\n }, slots.append())\n )\n\n state.getInnerAppend !== void 0 && node.push(\n getInnerAppendNode('inner-append', state.getInnerAppend())\n )\n\n state.getControlChild !== void 0 && node.push(\n state.getControlChild()\n )\n\n return node\n }\n\n function getControlContainer () {\n const node = []\n\n props.prefix !== void 0 && props.prefix !== null && node.push(\n h('div', {\n class: 'q-field__prefix no-pointer-events row items-center'\n }, props.prefix)\n )\n\n if (state.getShadowControl !== void 0 && state.hasShadow.value === true) {\n node.push(\n state.getShadowControl()\n )\n }\n\n if (state.getControl !== void 0) {\n node.push(state.getControl())\n }\n // internal usage only:\n else if (slots.rawControl !== void 0) {\n node.push(slots.rawControl())\n }\n else if (slots.control !== void 0) {\n node.push(\n h('div', {\n ref: state.targetRef,\n class: 'q-field__native row',\n tabindex: -1,\n ...state.splitAttrs.attributes.value,\n 'data-autofocus': props.autofocus === true || void 0\n }, slots.control(controlSlotScope.value))\n )\n }\n\n hasLabel.value === true && node.push(\n h('div', {\n class: labelClass.value\n }, hSlot(slots.label, props.label))\n )\n\n props.suffix !== void 0 && props.suffix !== null && node.push(\n h('div', {\n class: 'q-field__suffix no-pointer-events row items-center'\n }, props.suffix)\n )\n\n return node.concat(hSlot(slots.default))\n }\n\n function getBottom () {\n let msg, key\n\n if (hasError.value === true) {\n if (errorMessage.value !== null) {\n msg = [ h('div', { role: 'alert' }, errorMessage.value) ]\n key = `q--slot-error-${ errorMessage.value }`\n }\n else {\n msg = hSlot(slots.error)\n key = 'q--slot-error'\n }\n }\n else if (props.hideHint !== true || state.focused.value === true) {\n if (props.hint !== void 0) {\n msg = [ h('div', props.hint) ]\n key = `q--slot-hint-${ props.hint }`\n }\n else {\n msg = hSlot(slots.hint)\n key = 'q--slot-hint'\n }\n }\n\n const hasCounter = props.counter === true || slots.counter !== void 0\n\n if (props.hideBottomSpace === true && hasCounter === false && msg === void 0) {\n return\n }\n\n const main = h('div', {\n key,\n class: 'q-field__messages col'\n }, msg)\n\n return h('div', {\n class: 'q-field__bottom row items-start q-field__bottom--'\n + (props.hideBottomSpace !== true ? 'animated' : 'stale')\n }, [\n props.hideBottomSpace === true\n ? main\n : h(Transition, { name: 'q-transition--field-message' }, () => main),\n\n hasCounter === true\n ? h('div', {\n class: 'q-field__counter'\n }, slots.counter !== void 0 ? slots.counter() : state.computedCounter.value)\n : null\n ])\n }\n\n function getInnerAppendNode (key, content) {\n return content === null\n ? null\n : h('div', {\n key,\n class: 'q-field__append q-field__marginal row no-wrap items-center q-anchor--skip'\n }, content)\n }\n\n // expose public methods\n Object.assign(proxy, { focus, blur })\n\n let shouldActivate = false\n\n onDeactivated(() => {\n shouldActivate = true\n })\n\n onActivated(() => {\n shouldActivate === true && props.autofocus === true && proxy.focus()\n })\n\n onMounted(() => {\n if (isRuntimeSsrPreHydration.value === true && props.for === void 0) {\n state.targetUid.value = getTargetUid()\n }\n\n props.autofocus === true && proxy.focus()\n })\n\n onBeforeUnmount(() => {\n clearTimeout(focusoutTimer)\n })\n\n return function renderField () {\n const labelAttrs = state.getControl === void 0 && slots.control === void 0\n ? {\n ...state.splitAttrs.attributes.value,\n 'data-autofocus': props.autofocus,\n ...attributes.value\n }\n : attributes.value\n\n return h('label', {\n ref: state.rootRef,\n class: [\n classes.value,\n attrs.class\n ],\n style: attrs.style,\n ...labelAttrs\n }, [\n slots.before !== void 0\n ? h('div', {\n class: 'q-field__before q-field__marginal row no-wrap items-center',\n onClick: prevent\n }, slots.before())\n : null,\n\n h('div', {\n class: 'q-field__inner relative-position col self-stretch'\n }, [\n h('div', {\n ref: state.controlRef,\n class: contentClass.value,\n tabindex: -1,\n ...state.controlEvents\n }, getContent()),\n\n shouldRenderBottom.value === true\n ? getBottom()\n : null\n ]),\n\n slots.after !== void 0\n ? h('div', {\n class: 'q-field__after q-field__marginal row no-wrap items-center',\n onClick: prevent\n }, slots.after())\n : null\n ])\n }\n}\n","import { ref, watch, nextTick } from 'vue'\n\nimport { shouldIgnoreKey } from '../../utils/private/key-composition.js'\n\n// leave NAMED_MASKS at top of file (code referenced from docs)\nconst NAMED_MASKS = {\n date: '####/##/##',\n datetime: '####/##/## ##:##',\n time: '##:##',\n fulltime: '##:##:##',\n phone: '(###) ### - ####',\n card: '#### #### #### ####'\n}\n\nconst TOKENS = {\n '#': { pattern: '[\\\\d]', negate: '[^\\\\d]' },\n\n S: { pattern: '[a-zA-Z]', negate: '[^a-zA-Z]' },\n N: { pattern: '[0-9a-zA-Z]', negate: '[^0-9a-zA-Z]' },\n\n A: { pattern: '[a-zA-Z]', negate: '[^a-zA-Z]', transform: v => v.toLocaleUpperCase() },\n a: { pattern: '[a-zA-Z]', negate: '[^a-zA-Z]', transform: v => v.toLocaleLowerCase() },\n\n X: { pattern: '[0-9a-zA-Z]', negate: '[^0-9a-zA-Z]', transform: v => v.toLocaleUpperCase() },\n x: { pattern: '[0-9a-zA-Z]', negate: '[^0-9a-zA-Z]', transform: v => v.toLocaleLowerCase() }\n}\n\nconst KEYS = Object.keys(TOKENS)\nKEYS.forEach(key => {\n TOKENS[ key ].regex = new RegExp(TOKENS[ key ].pattern)\n})\n\nconst\n tokenRegexMask = new RegExp('\\\\\\\\([^.*+?^${}()|([\\\\]])|([.*+?^${}()|[\\\\]])|([' + KEYS.join('') + '])|(.)', 'g'),\n escRegex = /[.*+?^${}()|[\\]\\\\]/g\n\nconst MARKER = String.fromCharCode(1)\n\nexport const useMaskProps = {\n mask: String,\n reverseFillMask: Boolean,\n fillMask: [ Boolean, String ],\n unmaskedValue: Boolean\n}\n\nexport default function (props, emit, emitValue, inputRef) {\n let maskMarked, maskReplaced, computedMask, computedUnmask\n\n const hasMask = ref(null)\n const innerValue = ref(getInitialMaskedValue())\n\n function getIsTypeText () {\n return props.autogrow === true\n || [ 'textarea', 'text', 'search', 'url', 'tel', 'password' ].includes(props.type)\n }\n\n watch(() => props.type + props.autogrow, updateMaskInternals)\n\n watch(() => props.mask, v => {\n if (v !== void 0) {\n updateMaskValue(innerValue.value, true)\n }\n else {\n const val = unmaskValue(innerValue.value)\n updateMaskInternals()\n props.modelValue !== val && emit('update:modelValue', val)\n }\n })\n\n watch(() => props.fillMask + props.reverseFillMask, () => {\n hasMask.value === true && updateMaskValue(innerValue.value, true)\n })\n\n watch(() => props.unmaskedValue, () => {\n hasMask.value === true && updateMaskValue(innerValue.value)\n })\n\n function getInitialMaskedValue () {\n updateMaskInternals()\n\n if (hasMask.value === true) {\n const masked = maskValue(unmaskValue(props.modelValue))\n\n return props.fillMask !== false\n ? fillWithMask(masked)\n : masked\n }\n\n return props.modelValue\n }\n\n function getPaddedMaskMarked (size) {\n if (size < maskMarked.length) {\n return maskMarked.slice(-size)\n }\n\n let pad = '', localMaskMarked = maskMarked\n const padPos = localMaskMarked.indexOf(MARKER)\n\n if (padPos > -1) {\n for (let i = size - localMaskMarked.length; i > 0; i--) {\n pad += MARKER\n }\n\n localMaskMarked = localMaskMarked.slice(0, padPos) + pad + localMaskMarked.slice(padPos)\n }\n\n return localMaskMarked\n }\n\n function updateMaskInternals () {\n hasMask.value = props.mask !== void 0\n && props.mask.length > 0\n && getIsTypeText()\n\n if (hasMask.value === false) {\n computedUnmask = void 0\n maskMarked = ''\n maskReplaced = ''\n return\n }\n\n const\n localComputedMask = NAMED_MASKS[ props.mask ] === void 0\n ? props.mask\n : NAMED_MASKS[ props.mask ],\n fillChar = typeof props.fillMask === 'string' && props.fillMask.length > 0\n ? props.fillMask.slice(0, 1)\n : '_',\n fillCharEscaped = fillChar.replace(escRegex, '\\\\$&'),\n unmask = [],\n extract = [],\n mask = []\n\n let\n firstMatch = props.reverseFillMask === true,\n unmaskChar = '',\n negateChar = ''\n\n localComputedMask.replace(tokenRegexMask, (_, char1, esc, token, char2) => {\n if (token !== void 0) {\n const c = TOKENS[ token ]\n mask.push(c)\n negateChar = c.negate\n if (firstMatch === true) {\n extract.push('(?:' + negateChar + '+)?(' + c.pattern + '+)?(?:' + negateChar + '+)?(' + c.pattern + '+)?')\n firstMatch = false\n }\n extract.push('(?:' + negateChar + '+)?(' + c.pattern + ')?')\n }\n else if (esc !== void 0) {\n unmaskChar = '\\\\' + (esc === '\\\\' ? '' : esc)\n mask.push(esc)\n unmask.push('([^' + unmaskChar + ']+)?' + unmaskChar + '?')\n }\n else {\n const c = char1 !== void 0 ? char1 : char2\n unmaskChar = c === '\\\\' ? '\\\\\\\\\\\\\\\\' : c.replace(escRegex, '\\\\\\\\$&')\n mask.push(c)\n unmask.push('([^' + unmaskChar + ']+)?' + unmaskChar + '?')\n }\n })\n\n const\n unmaskMatcher = new RegExp(\n '^'\n + unmask.join('')\n + '(' + (unmaskChar === '' ? '.' : '[^' + unmaskChar + ']') + '+)?'\n + '$'\n ),\n extractLast = extract.length - 1,\n extractMatcher = extract.map((re, index) => {\n if (index === 0 && props.reverseFillMask === true) {\n return new RegExp('^' + fillCharEscaped + '*' + re)\n }\n else if (index === extractLast) {\n return new RegExp(\n '^' + re\n + '(' + (negateChar === '' ? '.' : negateChar) + '+)?'\n + (props.reverseFillMask === true ? '$' : fillCharEscaped + '*')\n )\n }\n\n return new RegExp('^' + re)\n })\n\n computedMask = mask\n computedUnmask = val => {\n const unmaskMatch = unmaskMatcher.exec(val)\n if (unmaskMatch !== null) {\n val = unmaskMatch.slice(1).join('')\n }\n\n const\n extractMatch = [],\n extractMatcherLength = extractMatcher.length\n\n for (let i = 0, str = val; i < extractMatcherLength; i++) {\n const m = extractMatcher[ i ].exec(str)\n\n if (m === null) {\n break\n }\n\n str = str.slice(m.shift().length)\n extractMatch.push(...m)\n }\n if (extractMatch.length > 0) {\n return extractMatch.join('')\n }\n\n return val\n }\n maskMarked = mask.map(v => (typeof v === 'string' ? v : MARKER)).join('')\n maskReplaced = maskMarked.split(MARKER).join(fillChar)\n }\n\n function updateMaskValue (rawVal, updateMaskInternalsFlag, inputType) {\n const\n inp = inputRef.value,\n end = inp.selectionEnd,\n endReverse = inp.value.length - end,\n unmasked = unmaskValue(rawVal)\n\n // Update here so unmask uses the original fillChar\n updateMaskInternalsFlag === true && updateMaskInternals()\n\n const\n preMasked = maskValue(unmasked),\n masked = props.fillMask !== false\n ? fillWithMask(preMasked)\n : preMasked,\n changed = innerValue.value !== masked\n\n // We want to avoid \"flickering\" so we set value immediately\n inp.value !== masked && (inp.value = masked)\n\n changed === true && (innerValue.value = masked)\n\n document.activeElement === inp && nextTick(() => {\n if (masked === maskReplaced) {\n const cursor = props.reverseFillMask === true ? maskReplaced.length : 0\n inp.setSelectionRange(cursor, cursor, 'forward')\n\n return\n }\n\n if (inputType === 'insertFromPaste' && props.reverseFillMask !== true) {\n const cursor = end - 1\n moveCursor.right(inp, cursor, cursor)\n\n return\n }\n\n if ([ 'deleteContentBackward', 'deleteContentForward' ].indexOf(inputType) > -1) {\n const cursor = props.reverseFillMask === true\n ? (\n end === 0\n ? (masked.length > preMasked.length ? 1 : 0)\n : Math.max(0, masked.length - (masked === maskReplaced ? 0 : Math.min(preMasked.length, endReverse) + 1)) + 1\n )\n : end\n\n inp.setSelectionRange(cursor, cursor, 'forward')\n return\n }\n\n if (props.reverseFillMask === true) {\n if (changed === true) {\n const cursor = Math.max(0, masked.length - (masked === maskReplaced ? 0 : Math.min(preMasked.length, endReverse + 1)))\n\n if (cursor === 1 && end === 1) {\n inp.setSelectionRange(cursor, cursor, 'forward')\n }\n else {\n moveCursor.rightReverse(inp, cursor, cursor)\n }\n }\n else {\n const cursor = masked.length - endReverse\n inp.setSelectionRange(cursor, cursor, 'backward')\n }\n }\n else {\n if (changed === true) {\n const cursor = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, end) - 1)\n moveCursor.right(inp, cursor, cursor)\n }\n else {\n const cursor = end - 1\n moveCursor.right(inp, cursor, cursor)\n }\n }\n })\n\n const val = props.unmaskedValue === true\n ? unmaskValue(masked)\n : masked\n\n String(props.modelValue) !== val && emitValue(val, true)\n }\n\n function moveCursorForPaste (inp, start, end) {\n const preMasked = maskValue(unmaskValue(inp.value))\n\n start = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, start))\n\n inp.setSelectionRange(start, end, 'forward')\n }\n\n const moveCursor = {\n left (inp, start, end, selection) {\n const noMarkBefore = maskMarked.slice(start - 1).indexOf(MARKER) === -1\n let i = Math.max(0, start - 1)\n\n for (; i >= 0; i--) {\n if (maskMarked[ i ] === MARKER) {\n start = i\n noMarkBefore === true && start++\n break\n }\n }\n\n if (\n i < 0\n && maskMarked[ start ] !== void 0\n && maskMarked[ start ] !== MARKER\n ) {\n return moveCursor.right(inp, 0, 0)\n }\n\n start >= 0 && inp.setSelectionRange(\n start,\n selection === true ? end : start, 'backward'\n )\n },\n\n right (inp, start, end, selection) {\n const limit = inp.value.length\n let i = Math.min(limit, end + 1)\n\n for (; i <= limit; i++) {\n if (maskMarked[ i ] === MARKER) {\n end = i\n break\n }\n else if (maskMarked[ i - 1 ] === MARKER) {\n end = i\n }\n }\n\n if (\n i > limit\n && maskMarked[ end - 1 ] !== void 0\n && maskMarked[ end - 1 ] !== MARKER\n ) {\n return moveCursor.left(inp, limit, limit)\n }\n\n inp.setSelectionRange(selection ? start : end, end, 'forward')\n },\n\n leftReverse (inp, start, end, selection) {\n const\n localMaskMarked = getPaddedMaskMarked(inp.value.length)\n let i = Math.max(0, start - 1)\n\n for (; i >= 0; i--) {\n if (localMaskMarked[ i - 1 ] === MARKER) {\n start = i\n break\n }\n else if (localMaskMarked[ i ] === MARKER) {\n start = i\n if (i === 0) {\n break\n }\n }\n }\n\n if (\n i < 0\n && localMaskMarked[ start ] !== void 0\n && localMaskMarked[ start ] !== MARKER\n ) {\n return moveCursor.rightReverse(inp, 0, 0)\n }\n\n start >= 0 && inp.setSelectionRange(\n start,\n selection === true ? end : start, 'backward'\n )\n },\n\n rightReverse (inp, start, end, selection) {\n const\n limit = inp.value.length,\n localMaskMarked = getPaddedMaskMarked(limit),\n noMarkBefore = localMaskMarked.slice(0, end + 1).indexOf(MARKER) === -1\n let i = Math.min(limit, end + 1)\n\n for (; i <= limit; i++) {\n if (localMaskMarked[ i - 1 ] === MARKER) {\n end = i\n end > 0 && noMarkBefore === true && end--\n break\n }\n }\n\n if (\n i > limit\n && localMaskMarked[ end - 1 ] !== void 0\n && localMaskMarked[ end - 1 ] !== MARKER\n ) {\n return moveCursor.leftReverse(inp, limit, limit)\n }\n\n inp.setSelectionRange(selection === true ? start : end, end, 'forward')\n }\n }\n\n function onMaskedKeydown (e) {\n if (shouldIgnoreKey(e) === true) {\n return\n }\n\n const\n inp = inputRef.value,\n start = inp.selectionStart,\n end = inp.selectionEnd\n\n if (e.keyCode === 37 || e.keyCode === 39) { // Left / Right\n const fn = moveCursor[ (e.keyCode === 39 ? 'right' : 'left') + (props.reverseFillMask === true ? 'Reverse' : '') ]\n\n e.preventDefault()\n fn(inp, start, end, e.shiftKey)\n }\n else if (\n e.keyCode === 8 // Backspace\n && props.reverseFillMask !== true\n && start === end\n ) {\n moveCursor.left(inp, start, end, true)\n }\n else if (\n e.keyCode === 46 // Delete\n && props.reverseFillMask === true\n && start === end\n ) {\n moveCursor.rightReverse(inp, start, end, true)\n }\n }\n\n function maskValue (val) {\n if (val === void 0 || val === null || val === '') { return '' }\n\n if (props.reverseFillMask === true) {\n return maskValueReverse(val)\n }\n\n const mask = computedMask\n\n let valIndex = 0, output = ''\n\n for (let maskIndex = 0; maskIndex < mask.length; maskIndex++) {\n const\n valChar = val[ valIndex ],\n maskDef = mask[ maskIndex ]\n\n if (typeof maskDef === 'string') {\n output += maskDef\n valChar === maskDef && valIndex++\n }\n else if (valChar !== void 0 && maskDef.regex.test(valChar)) {\n output += maskDef.transform !== void 0\n ? maskDef.transform(valChar)\n : valChar\n valIndex++\n }\n else {\n return output\n }\n }\n\n return output\n }\n\n function maskValueReverse (val) {\n const\n mask = computedMask,\n firstTokenIndex = maskMarked.indexOf(MARKER)\n\n let valIndex = val.length - 1, output = ''\n\n for (let maskIndex = mask.length - 1; maskIndex >= 0 && valIndex > -1; maskIndex--) {\n const maskDef = mask[ maskIndex ]\n\n let valChar = val[ valIndex ]\n\n if (typeof maskDef === 'string') {\n output = maskDef + output\n valChar === maskDef && valIndex--\n }\n else if (valChar !== void 0 && maskDef.regex.test(valChar)) {\n do {\n output = (maskDef.transform !== void 0 ? maskDef.transform(valChar) : valChar) + output\n valIndex--\n valChar = val[ valIndex ]\n // eslint-disable-next-line no-unmodified-loop-condition\n } while (firstTokenIndex === maskIndex && valChar !== void 0 && maskDef.regex.test(valChar))\n }\n else {\n return output\n }\n }\n\n return output\n }\n\n function unmaskValue (val) {\n return typeof val !== 'string' || computedUnmask === void 0\n ? (typeof val === 'number' ? computedUnmask('' + val) : val)\n : computedUnmask(val)\n }\n\n function fillWithMask (val) {\n if (maskReplaced.length - val.length <= 0) {\n return val\n }\n\n return props.reverseFillMask === true && val.length > 0\n ? maskReplaced.slice(0, -val.length) + val\n : val + maskReplaced.slice(val.length)\n }\n\n return {\n innerValue,\n hasMask,\n moveCursorForPaste,\n updateMaskValue,\n onMaskedKeydown\n }\n}\n","import { computed } from 'vue'\n\nexport default function (props, typeGuard) {\n function getFormDomProps () {\n const model = props.modelValue\n\n try {\n const dt = 'DataTransfer' in window\n ? new DataTransfer()\n : ('ClipboardEvent' in window\n ? new ClipboardEvent('').clipboardData\n : void 0\n )\n\n if (Object(model) === model) {\n ('length' in model\n ? Array.from(model)\n : [ model ]\n ).forEach(file => {\n dt.items.add(file)\n })\n }\n\n return {\n files: dt.files\n }\n }\n catch (e) {\n return {\n files: void 0\n }\n }\n }\n\n return typeGuard === true\n ? computed(() => {\n if (props.type !== 'file') {\n return\n }\n\n return getFormDomProps()\n })\n : computed(getFormDomProps)\n}\n","import { client } from '../../plugins/Platform.js'\n\nconst isJapanese = /[\\u3000-\\u303f\\u3040-\\u309f\\u30a0-\\u30ff\\uff00-\\uff9f\\u4e00-\\u9faf\\u3400-\\u4dbf]/\nconst isChinese = /[\\u4e00-\\u9fff\\u3400-\\u4dbf\\u{20000}-\\u{2a6df}\\u{2a700}-\\u{2b73f}\\u{2b740}-\\u{2b81f}\\u{2b820}-\\u{2ceaf}\\uf900-\\ufaff\\u3300-\\u33ff\\ufe30-\\ufe4f\\uf900-\\ufaff\\u{2f800}-\\u{2fa1f}]/u\nconst isKorean = /[\\u3131-\\u314e\\u314f-\\u3163\\uac00-\\ud7a3]/\nconst isPlainText = /[a-z0-9_ -]$/i\n\nexport default function (onInput) {\n return function onComposition (e) {\n if (e.type === 'compositionend' || e.type === 'change') {\n if (e.target.qComposing !== true) { return }\n e.target.qComposing = false\n onInput(e)\n }\n else if (e.type === 'compositionupdate') {\n if (\n e.target.qComposing !== true\n && typeof e.data === 'string'\n ) {\n const isComposing = client.is.firefox === true\n ? isPlainText.test(e.data) === false\n : isJapanese.test(e.data) === true && isChinese.test(e.data) === true && isKorean.test(e.data) === true\n\n if (isComposing === true) {\n e.target.qComposing = true\n }\n }\n }\n else {\n e.target.qComposing = true\n }\n }\n}\n","import { h, ref, computed, watch, onBeforeUnmount, onMounted, nextTick, getCurrentInstance } from 'vue'\n\nimport useField, { useFieldState, useFieldProps, useFieldEmits, fieldValueIsFilled } from '../../composables/private/use-field.js'\nimport useMask, { useMaskProps } from './use-mask.js'\nimport { useFormProps, useFormInputNameAttr } from '../../composables/private/use-form.js'\nimport useFileFormDomProps from '../../composables/private/use-file-dom-props.js'\nimport useKeyComposition from '../../composables/private/use-key-composition.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { stop } from '../../utils/event.js'\nimport { addFocusFn } from '../../utils/private/focus-manager.js'\n\nexport default createComponent({\n name: 'QInput',\n\n inheritAttrs: false,\n\n props: {\n ...useFieldProps,\n ...useMaskProps,\n ...useFormProps,\n\n modelValue: { required: false },\n\n shadowText: String,\n\n type: {\n type: String,\n default: 'text'\n },\n\n debounce: [ String, Number ],\n\n autogrow: Boolean, // makes a textarea\n\n inputClass: [ Array, String, Object ],\n inputStyle: [ Array, String, Object ]\n },\n\n emits: [\n ...useFieldEmits,\n 'paste', 'change'\n ],\n\n setup (props, { emit, attrs }) {\n const temp = {}\n let emitCachedValue = NaN, typedNumber, stopValueWatcher, emitTimer, emitValueFn\n\n const inputRef = ref(null)\n const nameProp = useFormInputNameAttr(props)\n\n const {\n innerValue,\n hasMask,\n moveCursorForPaste,\n updateMaskValue,\n onMaskedKeydown\n } = useMask(props, emit, emitValue, inputRef)\n\n const formDomProps = useFileFormDomProps(props, /* type guard */ true)\n const hasValue = computed(() => fieldValueIsFilled(innerValue.value))\n\n const onComposition = useKeyComposition(onInput)\n\n const state = useFieldState()\n\n const isTextarea = computed(() =>\n props.type === 'textarea' || props.autogrow === true\n )\n\n const isTypeText = computed(() =>\n isTextarea.value === true\n || [ 'text', 'search', 'url', 'tel', 'password' ].includes(props.type)\n )\n\n const onEvents = computed(() => {\n const evt = {\n ...state.splitAttrs.listeners.value,\n onInput,\n onPaste,\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n onChange,\n onBlur: onFinishEditing,\n onFocus: stop\n }\n\n evt.onCompositionstart = evt.onCompositionupdate = evt.onCompositionend = onComposition\n\n if (hasMask.value === true) {\n evt.onKeydown = onMaskedKeydown\n }\n\n if (props.autogrow === true) {\n evt.onAnimationend = adjustHeight\n }\n\n return evt\n })\n\n const inputAttrs = computed(() => {\n const attrs = {\n tabindex: 0,\n 'data-autofocus': props.autofocus === true || void 0,\n rows: props.type === 'textarea' ? 6 : void 0,\n 'aria-label': props.label,\n name: nameProp.value,\n ...state.splitAttrs.attributes.value,\n id: state.targetUid.value,\n maxlength: props.maxlength,\n disabled: props.disable === true,\n readonly: props.readonly === true\n }\n\n if (isTextarea.value === false) {\n attrs.type = props.type\n }\n\n if (props.autogrow === true) {\n attrs.rows = 1\n }\n\n return attrs\n })\n\n // some browsers lose the native input value\n // so we need to reattach it dynamically\n // (like type=\"password\" <-> type=\"text\"; see #12078)\n watch(() => props.type, () => {\n if (inputRef.value) {\n inputRef.value.value = props.modelValue\n }\n })\n\n watch(() => props.modelValue, v => {\n if (hasMask.value === true) {\n if (stopValueWatcher === true) {\n stopValueWatcher = false\n\n if (String(v) === emitCachedValue) {\n return\n }\n }\n\n updateMaskValue(v)\n }\n else if (innerValue.value !== v) {\n innerValue.value = v\n\n if (\n props.type === 'number'\n && temp.hasOwnProperty('value') === true\n ) {\n if (typedNumber === true) {\n typedNumber = false\n }\n else {\n delete temp.value\n }\n }\n }\n\n // textarea only\n props.autogrow === true && nextTick(adjustHeight)\n })\n\n watch(() => props.autogrow, val => {\n // textarea only\n if (val === true) {\n nextTick(adjustHeight)\n }\n // if it has a number of rows set respect it\n else if (inputRef.value !== null && attrs.rows > 0) {\n inputRef.value.style.height = 'auto'\n }\n })\n\n watch(() => props.dense, () => {\n props.autogrow === true && nextTick(adjustHeight)\n })\n\n function focus () {\n addFocusFn(() => {\n const el = document.activeElement\n if (\n inputRef.value !== null\n && inputRef.value !== el\n && (el === null || el.id !== state.targetUid.value)\n ) {\n inputRef.value.focus({ preventScroll: true })\n }\n })\n }\n\n function select () {\n inputRef.value !== null && inputRef.value.select()\n }\n\n function onPaste (e) {\n if (hasMask.value === true && props.reverseFillMask !== true) {\n const inp = e.target\n moveCursorForPaste(inp, inp.selectionStart, inp.selectionEnd)\n }\n\n emit('paste', e)\n }\n\n function onInput (e) {\n if (!e || !e.target || e.target.qComposing === true) {\n return\n }\n\n if (props.type === 'file') {\n emit('update:modelValue', e.target.files)\n return\n }\n\n const val = e.target.value\n\n if (hasMask.value === true) {\n updateMaskValue(val, false, e.inputType)\n }\n else {\n emitValue(val)\n\n if (isTypeText.value === true && e.target === document.activeElement) {\n const { selectionStart, selectionEnd } = e.target\n\n if (selectionStart !== void 0 && selectionEnd !== void 0) {\n nextTick(() => {\n if (e.target === document.activeElement && val.indexOf(e.target.value) === 0) {\n e.target.setSelectionRange(selectionStart, selectionEnd)\n }\n })\n }\n }\n }\n\n // we need to trigger it immediately too,\n // to avoid \"flickering\"\n props.autogrow === true && adjustHeight()\n }\n\n function emitValue (val, stopWatcher) {\n emitValueFn = () => {\n if (\n props.type !== 'number'\n && temp.hasOwnProperty('value') === true\n ) {\n delete temp.value\n }\n\n if (props.modelValue !== val && emitCachedValue !== val) {\n emitCachedValue = val\n\n stopWatcher === true && (stopValueWatcher = true)\n emit('update:modelValue', val)\n\n nextTick(() => {\n emitCachedValue === val && (emitCachedValue = NaN)\n })\n }\n\n emitValueFn = void 0\n }\n\n if (props.type === 'number') {\n typedNumber = true\n temp.value = val\n }\n\n if (props.debounce !== void 0) {\n clearTimeout(emitTimer)\n temp.value = val\n emitTimer = setTimeout(emitValueFn, props.debounce)\n }\n else {\n emitValueFn()\n }\n }\n\n // textarea only\n function adjustHeight () {\n const inp = inputRef.value\n if (inp !== null) {\n const parentStyle = inp.parentNode.style\n const { overflow } = inp.style\n\n // reset height of textarea to a small size to detect the real height\n // but keep the total control size the same\n parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px'\n inp.style.height = '1px'\n inp.style.overflow = 'hidden'\n\n inp.style.height = inp.scrollHeight + 'px'\n inp.style.overflow = overflow\n parentStyle.marginBottom = ''\n }\n }\n\n function onChange (e) {\n onComposition(e)\n\n clearTimeout(emitTimer)\n emitValueFn !== void 0 && emitValueFn()\n\n emit('change', e.target.value)\n }\n\n function onFinishEditing (e) {\n e !== void 0 && stop(e)\n\n clearTimeout(emitTimer)\n emitValueFn !== void 0 && emitValueFn()\n\n typedNumber = false\n stopValueWatcher = false\n delete temp.value\n\n // we need to use setTimeout instead of this.$nextTick\n // to avoid a bug where focusout is not emitted for type date/time/week/...\n props.type !== 'file' && setTimeout(() => {\n if (inputRef.value !== null) {\n inputRef.value.value = innerValue.value !== void 0 ? innerValue.value : ''\n }\n })\n }\n\n function getCurValue () {\n return temp.hasOwnProperty('value') === true\n ? temp.value\n : (innerValue.value !== void 0 ? innerValue.value : '')\n }\n\n onBeforeUnmount(() => {\n onFinishEditing()\n })\n\n onMounted(() => {\n // textarea only\n props.autogrow === true && adjustHeight()\n })\n\n Object.assign(state, {\n innerValue,\n\n fieldClass: computed(() =>\n `q-${ isTextarea.value === true ? 'textarea' : 'input' }`\n + (props.autogrow === true ? ' q-textarea--autogrow' : '')\n ),\n\n hasShadow: computed(() =>\n props.type !== 'file'\n && typeof props.shadowText === 'string'\n && props.shadowText.length > 0\n ),\n\n inputRef,\n\n emitValue,\n\n hasValue,\n\n floatingLabel: computed(() =>\n hasValue.value === true\n || fieldValueIsFilled(props.displayValue)\n ),\n\n getControl: () => {\n return h(isTextarea.value === true ? 'textarea' : 'input', {\n ref: inputRef,\n class: [\n 'q-field__native q-placeholder',\n props.inputClass\n ],\n style: props.inputStyle,\n ...inputAttrs.value,\n ...onEvents.value,\n ...(\n props.type !== 'file'\n ? { value: getCurValue() }\n : formDomProps.value\n )\n })\n },\n\n getShadowControl: () => {\n return h('div', {\n class: 'q-field__native q-field__shadow absolute-bottom no-pointer-events'\n + (isTextarea.value === true ? '' : ' text-no-wrap')\n }, [\n h('span', { class: 'invisible' }, getCurValue()),\n h('span', props.shadowText)\n ])\n }\n })\n\n const renderFn = useField(state)\n\n // expose public methods\n const vm = getCurrentInstance()\n Object.assign(vm.proxy, {\n focus,\n select,\n getNativeElement: () => inputRef.value\n })\n\n return renderFn\n }\n})\n","import { h, ref, computed, getCurrentInstance } from 'vue'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport useRouterLink, { useRouterLinkProps } from '../../composables/private/use-router-link.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hUniqueSlot } from '../../utils/private/render.js'\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { isKeyCode } from '../../utils/private/key-composition.js'\n\nexport default createComponent({\n name: 'QItem',\n\n props: {\n ...useDarkProps,\n ...useRouterLinkProps,\n\n tag: {\n type: String,\n default: 'div'\n },\n\n active: {\n type: Boolean,\n default: null\n },\n\n clickable: Boolean,\n dense: Boolean,\n insetLevel: Number,\n\n tabindex: [ String, Number ],\n\n focused: Boolean,\n manualFocus: Boolean\n },\n\n emits: [ 'click', 'keyup' ],\n\n setup (props, { slots, emit }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const isDark = useDark(props, $q)\n const { hasRouterLink, hasLink, linkProps, linkClass, linkTag, navigateToRouterLink } = useRouterLink()\n\n const rootRef = ref(null)\n const blurTargetRef = ref(null)\n\n const isActionable = computed(() =>\n props.clickable === true\n || hasLink.value === true\n || props.tag === 'label'\n )\n\n const isClickable = computed(() =>\n props.disable !== true && isActionable.value === true\n )\n\n const classes = computed(() =>\n 'q-item q-item-type row no-wrap'\n + (props.dense === true ? ' q-item--dense' : '')\n + (isDark.value === true ? ' q-item--dark' : '')\n + (\n hasLink.value === true && props.active === null\n ? linkClass.value\n : (\n props.active === true\n ? `${ props.activeClass !== void 0 ? ` ${ props.activeClass }` : '' } q-item--active`\n : ''\n )\n )\n + (props.disable === true ? ' disabled' : '')\n + (\n isClickable.value === true\n ? ' q-item--clickable q-link cursor-pointer '\n + (props.manualFocus === true ? 'q-manual-focusable' : 'q-focusable q-hoverable')\n + (props.focused === true ? ' q-manual-focusable--focused' : '')\n : ''\n )\n )\n\n const style = computed(() => {\n if (props.insetLevel === void 0) {\n return null\n }\n\n const dir = $q.lang.rtl === true ? 'Right' : 'Left'\n return {\n [ 'padding' + dir ]: (16 + props.insetLevel * 56) + 'px'\n }\n })\n\n function onClick (e) {\n if (isClickable.value === true) {\n if (blurTargetRef.value !== null) {\n if (e.qKeyEvent !== true && document.activeElement === rootRef.value) {\n blurTargetRef.value.focus()\n }\n else if (document.activeElement === blurTargetRef.value) {\n rootRef.value.focus()\n }\n }\n\n hasRouterLink.value === true && navigateToRouterLink(e)\n emit('click', e)\n }\n }\n\n function onKeyup (e) {\n if (isClickable.value === true && isKeyCode(e, 13) === true) {\n stopAndPrevent(e)\n\n // for ripple\n e.qKeyEvent = true\n\n // for click trigger\n const evt = new MouseEvent('click', e)\n evt.qKeyEvent = true\n rootRef.value.dispatchEvent(evt)\n }\n\n emit('keyup', e)\n }\n\n function getContent () {\n const child = hUniqueSlot(slots.default, [])\n\n isClickable.value === true && child.unshift(\n h('div', { class: 'q-focus-helper', tabindex: -1, ref: blurTargetRef })\n )\n\n return child\n }\n\n return () => {\n const data = {\n ref: rootRef,\n class: classes.value,\n style: style.value,\n onClick,\n onKeyup\n }\n\n if (isClickable.value === true) {\n data.tabindex = props.tabindex || '0'\n Object.assign(data, linkProps.value)\n }\n else if (isActionable.value === true) {\n data[ 'aria-disabled' ] = 'true'\n }\n\n return h(\n linkTag.value,\n data,\n getContent()\n )\n }\n }\n})\n","import { h, computed } from 'vue'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default createComponent({\n name: 'QItemSection',\n\n props: {\n avatar: Boolean,\n thumbnail: Boolean,\n side: Boolean,\n top: Boolean,\n noWrap: Boolean\n },\n\n setup (props, { slots }) {\n const classes = computed(() =>\n 'q-item__section column'\n + ` q-item__section--${ props.avatar === true || props.side === true || props.thumbnail === true ? 'side' : 'main' }`\n + (props.top === true ? ' q-item__section--top justify-start' : ' justify-center')\n + (props.avatar === true ? ' q-item__section--avatar' : '')\n + (props.thumbnail === true ? ' q-item__section--thumbnail' : '')\n + (props.noWrap === true ? ' q-item__section--nowrap' : '')\n )\n\n return () => h('div', { class: classes.value }, hSlot(slots.default))\n }\n})\n","import { h, computed, getCurrentInstance } from 'vue'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default createComponent({\n name: 'QList',\n\n props: {\n ...useDarkProps,\n\n bordered: Boolean,\n dense: Boolean,\n separator: Boolean,\n padding: Boolean\n },\n\n setup (props, { slots }) {\n const vm = getCurrentInstance()\n const isDark = useDark(props, vm.proxy.$q)\n\n const classes = computed(() =>\n 'q-list'\n + (props.bordered === true ? ' q-list--bordered' : '')\n + (props.dense === true ? ' q-list--dense' : '')\n + (props.separator === true ? ' q-list--separator' : '')\n + (isDark.value === true ? ' q-list--dark' : '')\n + (props.padding === true ? ' q-list--padding' : '')\n )\n\n return () => h('div', { class: classes.value }, hSlot(slots.default))\n }\n})\n","import { watch, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { getScrollTarget, getVerticalScrollPosition, getHorizontalScrollPosition } from '../../utils/scroll.js'\nimport { listenOpts, noop } from '../../utils/event.js'\n\nconst { passive } = listenOpts\nconst axisValues = [ 'both', 'horizontal', 'vertical' ]\n\nexport default createComponent({\n name: 'QScrollObserver',\n\n props: {\n axis: {\n type: String,\n validator: v => axisValues.includes(v),\n default: 'vertical'\n },\n\n debounce: [ String, Number ],\n\n scrollTarget: {\n default: void 0\n }\n },\n\n emits: [ 'scroll' ],\n\n setup (props, { emit }) {\n const scroll = {\n position: {\n top: 0,\n left: 0\n },\n\n direction: 'down',\n directionChanged: false,\n\n delta: {\n top: 0,\n left: 0\n },\n\n inflectionPoint: {\n top: 0,\n left: 0\n }\n }\n\n let clearTimer = null, localScrollTarget, parentEl\n\n watch(() => props.scrollTarget, () => {\n unconfigureScrollTarget()\n configureScrollTarget()\n })\n\n function emitEvent () {\n clearTimer !== null && clearTimer()\n\n const top = Math.max(0, getVerticalScrollPosition(localScrollTarget))\n const left = getHorizontalScrollPosition(localScrollTarget)\n\n const delta = {\n top: top - scroll.position.top,\n left: left - scroll.position.left\n }\n\n if (\n (props.axis === 'vertical' && delta.top === 0)\n || (props.axis === 'horizontal' && delta.left === 0)\n ) {\n return\n }\n\n const curDir = Math.abs(delta.top) >= Math.abs(delta.left)\n ? (delta.top < 0 ? 'up' : 'down')\n : (delta.left < 0 ? 'left' : 'right')\n\n scroll.position = { top, left }\n scroll.directionChanged = scroll.direction !== curDir\n scroll.delta = delta\n\n if (scroll.directionChanged === true) {\n scroll.direction = curDir\n scroll.inflectionPoint = scroll.position\n }\n\n emit('scroll', { ...scroll })\n }\n\n function configureScrollTarget () {\n localScrollTarget = getScrollTarget(parentEl, props.scrollTarget)\n localScrollTarget.addEventListener('scroll', trigger, passive)\n trigger(true)\n }\n\n function unconfigureScrollTarget () {\n if (localScrollTarget !== void 0) {\n localScrollTarget.removeEventListener('scroll', trigger, passive)\n localScrollTarget = void 0\n }\n }\n\n function trigger (immediately) {\n if (immediately === true || props.debounce === 0 || props.debounce === '0') {\n emitEvent()\n }\n else if (clearTimer === null) {\n const [ timer, fn ] = props.debounce\n ? [ setTimeout(emitEvent, props.debounce), clearTimeout ]\n : [ requestAnimationFrame(emitEvent), cancelAnimationFrame ]\n\n clearTimer = () => {\n fn(timer)\n clearTimer = null\n }\n }\n }\n\n const vm = getCurrentInstance()\n\n onMounted(() => {\n parentEl = vm.proxy.$el.parentNode\n configureScrollTarget()\n })\n\n onBeforeUnmount(() => {\n clearTimer !== null && clearTimer()\n unconfigureScrollTarget()\n })\n\n // expose public methods\n Object.assign(vm.proxy, {\n trigger,\n getPosition: () => scroll\n })\n\n return noop\n }\n})\n","import { h, ref, reactive, computed, watch, provide, onUnmounted, getCurrentInstance } from 'vue'\n\nimport { isRuntimeSsrPreHydration } from '../../plugins/Platform.js'\n\nimport QScrollObserver from '../scroll-observer/QScrollObserver.js'\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { getScrollbarWidth } from '../../utils/scroll.js'\nimport { hMergeSlot } from '../../utils/private/render.js'\nimport { layoutKey } from '../../utils/private/symbols.js'\n\nexport default createComponent({\n name: 'QLayout',\n\n props: {\n container: Boolean,\n view: {\n type: String,\n default: 'hhh lpr fff',\n validator: v => /^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(v.toLowerCase())\n },\n\n onScroll: Function,\n onScrollHeight: Function,\n onResize: Function\n },\n\n setup (props, { slots, emit }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const rootRef = ref(null)\n\n // page related\n const height = ref($q.screen.height)\n const width = ref(props.container === true ? 0 : $q.screen.width)\n const scroll = ref({ position: 0, direction: 'down', inflectionPoint: 0 })\n\n // container only prop\n const containerHeight = ref(0)\n const scrollbarWidth = ref(isRuntimeSsrPreHydration.value === true ? 0 : getScrollbarWidth())\n\n const classes = computed(() =>\n 'q-layout q-layout--'\n + (props.container === true ? 'containerized' : 'standard')\n )\n\n const style = computed(() => (\n props.container === false\n ? { minHeight: $q.screen.height + 'px' }\n : null\n ))\n\n // used by container only\n const targetStyle = computed(() => (\n scrollbarWidth.value !== 0\n ? { [ $q.lang.rtl === true ? 'left' : 'right' ]: `${ scrollbarWidth.value }px` }\n : null\n ))\n\n const targetChildStyle = computed(() => (\n scrollbarWidth.value !== 0\n ? {\n [ $q.lang.rtl === true ? 'right' : 'left' ]: 0,\n [ $q.lang.rtl === true ? 'left' : 'right' ]: `-${ scrollbarWidth.value }px`,\n width: `calc(100% + ${ scrollbarWidth.value }px)`\n }\n : null\n ))\n\n function onPageScroll (data) {\n if (props.container === true || document.qScrollPrevented !== true) {\n const info = {\n position: data.position.top,\n direction: data.direction,\n directionChanged: data.directionChanged,\n inflectionPoint: data.inflectionPoint.top,\n delta: data.delta.top\n }\n\n scroll.value = info\n props.onScroll !== void 0 && emit('scroll', info)\n }\n }\n\n function onPageResize (data) {\n const { height: newHeight, width: newWidth } = data\n let resized = false\n\n if (height.value !== newHeight) {\n resized = true\n height.value = newHeight\n props.onScrollHeight !== void 0 && emit('scroll-height', newHeight)\n updateScrollbarWidth()\n }\n if (width.value !== newWidth) {\n resized = true\n width.value = newWidth\n }\n\n if (resized === true && props.onResize !== void 0) {\n emit('resize', data)\n }\n }\n\n function onContainerResize ({ height }) {\n if (containerHeight.value !== height) {\n containerHeight.value = height\n updateScrollbarWidth()\n }\n }\n\n function updateScrollbarWidth () {\n if (props.container === true) {\n const width = height.value > containerHeight.value\n ? getScrollbarWidth()\n : 0\n\n if (scrollbarWidth.value !== width) {\n scrollbarWidth.value = width\n }\n }\n }\n\n let timer\n\n const $layout = {\n instances: {},\n view: computed(() => props.view),\n isContainer: computed(() => props.container),\n\n rootRef,\n\n height,\n containerHeight,\n scrollbarWidth,\n totalWidth: computed(() => width.value + scrollbarWidth.value),\n\n rows: computed(() => {\n const rows = props.view.toLowerCase().split(' ')\n return {\n top: rows[ 0 ].split(''),\n middle: rows[ 1 ].split(''),\n bottom: rows[ 2 ].split('')\n }\n }),\n\n header: reactive({ size: 0, offset: 0, space: false }),\n right: reactive({ size: 300, offset: 0, space: false }),\n footer: reactive({ size: 0, offset: 0, space: false }),\n left: reactive({ size: 300, offset: 0, space: false }),\n\n scroll,\n\n animate () {\n if (timer !== void 0) {\n clearTimeout(timer)\n }\n else {\n document.body.classList.add('q-body--layout-animate')\n }\n\n timer = setTimeout(() => {\n document.body.classList.remove('q-body--layout-animate')\n timer = void 0\n }, 155)\n },\n\n update (part, prop, val) {\n $layout[ part ][ prop ] = val\n }\n }\n\n provide(layoutKey, $layout)\n\n // prevent scrollbar flicker while resizing window height\n // if no page scrollbar is already present\n if (__QUASAR_SSR_SERVER__ !== true && getScrollbarWidth() > 0) {\n let timer = null\n const el = document.body\n\n function restoreScrollbar () {\n timer = null\n el.classList.remove('hide-scrollbar')\n }\n\n function hideScrollbar () {\n if (timer === null) {\n // if it has no scrollbar then there's nothing to do\n\n if (el.scrollHeight > $q.screen.height) {\n return\n }\n\n el.classList.add('hide-scrollbar')\n }\n else {\n clearTimeout(timer)\n }\n\n timer = setTimeout(restoreScrollbar, 300)\n }\n\n function updateScrollEvent (action) {\n if (timer !== null && action === 'remove') {\n clearTimeout(timer)\n restoreScrollbar()\n }\n\n window[ `${ action }EventListener` ]('resize', hideScrollbar)\n }\n\n watch(\n () => (props.container !== true ? 'add' : 'remove'),\n updateScrollEvent\n )\n\n props.container !== true && updateScrollEvent('add')\n\n onUnmounted(() => {\n updateScrollEvent('remove')\n })\n }\n\n return () => {\n const content = hMergeSlot(slots.default, [\n h(QScrollObserver, { onScroll: onPageScroll }),\n h(QResizeObserver, { onResize: onPageResize })\n ])\n\n const layout = h('div', {\n class: classes.value,\n style: style.value,\n ref: props.container === true ? void 0 : rootRef,\n tabindex: -1\n }, content)\n\n if (props.container === true) {\n return h('div', {\n class: 'q-layout-container overflow-hidden',\n ref: rootRef\n }, [\n h(QResizeObserver, { onResize: onContainerResize }),\n h('div', {\n class: 'absolute-full',\n style: targetStyle.value\n }, [\n h('div', {\n class: 'scroll',\n style: targetChildStyle.value\n }, [ layout ])\n ])\n ])\n }\n\n return layout\n }\n }\n})\n","import Platform from '../../plugins/Platform.js'\n\nexport function clearSelection () {\n if (window.getSelection !== void 0) {\n const selection = window.getSelection()\n if (selection.empty !== void 0) {\n selection.empty()\n }\n else if (selection.removeAllRanges !== void 0) {\n selection.removeAllRanges()\n Platform.is.mobile !== true && selection.addRange(document.createRange())\n }\n }\n else if (document.selection !== void 0) {\n document.selection.empty()\n }\n}\n","import { ref, watch, onMounted, onBeforeUnmount, nextTick, getCurrentInstance } from 'vue'\n\nimport { clearSelection } from '../../utils/private/selection.js'\nimport { addEvt, cleanEvt, prevent } from '../../utils/event.js'\nimport { isKeyCode } from '../../utils/private/key-composition.js'\n\nexport const useAnchorProps = {\n target: {\n default: true\n },\n noParentEvent: Boolean,\n contextMenu: Boolean\n}\n\nexport default function ({\n showing,\n avoidEmit, // required for QPopupProxy (true)\n configureAnchorEl // optional\n}) {\n const { props, proxy, emit } = getCurrentInstance()\n\n const anchorEl = ref(null)\n\n let touchTimer\n\n function canShow (evt) {\n // abort with no parent configured or on multi-touch\n return anchorEl.value === null\n ? false\n : (evt === void 0 || evt.touches === void 0 || evt.touches.length <= 1)\n }\n\n const anchorEvents = {}\n\n if (configureAnchorEl === void 0) {\n // default configureAnchorEl is designed for\n // QMenu & QPopupProxy (which is why it's handled here)\n\n Object.assign(anchorEvents, {\n hide (evt) {\n proxy.hide(evt)\n },\n\n toggle (evt) {\n proxy.toggle(evt)\n evt.qAnchorHandled = true\n },\n\n toggleKey (evt) {\n isKeyCode(evt, 13) === true && anchorEvents.toggle(evt)\n },\n\n contextClick (evt) {\n proxy.hide(evt)\n prevent(evt)\n nextTick(() => {\n proxy.show(evt)\n evt.qAnchorHandled = true\n })\n },\n\n prevent,\n\n mobileTouch (evt) {\n anchorEvents.mobileCleanup(evt)\n\n if (canShow(evt) !== true) {\n return\n }\n\n proxy.hide(evt)\n anchorEl.value.classList.add('non-selectable')\n\n const target = evt.target\n addEvt(anchorEvents, 'anchor', [\n [ target, 'touchmove', 'mobileCleanup', 'passive' ],\n [ target, 'touchend', 'mobileCleanup', 'passive' ],\n [ target, 'touchcancel', 'mobileCleanup', 'passive' ],\n [ anchorEl.value, 'contextmenu', 'prevent', 'notPassive' ]\n ])\n\n touchTimer = setTimeout(() => {\n proxy.show(evt)\n evt.qAnchorHandled = true\n }, 300)\n },\n\n mobileCleanup (evt) {\n anchorEl.value.classList.remove('non-selectable')\n clearTimeout(touchTimer)\n\n if (showing.value === true && evt !== void 0) {\n clearSelection()\n }\n }\n })\n\n configureAnchorEl = function (context = props.contextMenu) {\n if (props.noParentEvent === true || anchorEl.value === null) { return }\n\n let evts\n\n if (context === true) {\n if (proxy.$q.platform.is.mobile === true) {\n evts = [\n [ anchorEl.value, 'touchstart', 'mobileTouch', 'passive' ]\n ]\n }\n else {\n evts = [\n [ anchorEl.value, 'mousedown', 'hide', 'passive' ],\n [ anchorEl.value, 'contextmenu', 'contextClick', 'notPassive' ]\n ]\n }\n }\n else {\n evts = [\n [ anchorEl.value, 'click', 'toggle', 'passive' ],\n [ anchorEl.value, 'keyup', 'toggleKey', 'passive' ]\n ]\n }\n\n addEvt(anchorEvents, 'anchor', evts)\n }\n }\n\n function unconfigureAnchorEl () {\n cleanEvt(anchorEvents, 'anchor')\n }\n\n function setAnchorEl (el) {\n anchorEl.value = el\n while (anchorEl.value.classList.contains('q-anchor--skip')) {\n anchorEl.value = anchorEl.value.parentNode\n }\n configureAnchorEl()\n }\n\n function pickAnchorEl () {\n if (props.target === false || props.target === '') {\n anchorEl.value = null\n }\n else if (props.target === true) {\n setAnchorEl(proxy.$el.parentNode)\n }\n else {\n let el = props.target\n\n if (typeof props.target === 'string') {\n try {\n el = document.querySelector(props.target)\n }\n catch (err) {\n el = void 0\n }\n }\n\n if (el !== void 0 && el !== null) {\n anchorEl.value = el.$el || el\n configureAnchorEl()\n }\n else {\n anchorEl.value = null\n console.error(`Anchor: target \"${ props.target }\" not found`)\n }\n }\n }\n\n watch(() => props.contextMenu, val => {\n if (anchorEl.value !== null) {\n unconfigureAnchorEl()\n configureAnchorEl(val)\n }\n })\n\n watch(() => props.target, () => {\n if (anchorEl.value !== null) {\n unconfigureAnchorEl()\n }\n\n pickAnchorEl()\n })\n\n watch(() => props.noParentEvent, val => {\n if (anchorEl.value !== null) {\n if (val === true) {\n unconfigureAnchorEl()\n }\n else {\n configureAnchorEl()\n }\n }\n })\n\n onMounted(() => {\n pickAnchorEl()\n\n if (avoidEmit !== true && props.modelValue === true && anchorEl.value === null) {\n emit('update:modelValue', false)\n }\n })\n\n onBeforeUnmount(() => {\n clearTimeout(touchTimer)\n unconfigureAnchorEl()\n })\n\n return {\n anchorEl,\n canShow,\n anchorEvents\n }\n}\n","import { ref, watch, onBeforeUnmount } from 'vue'\n\nimport { listenOpts } from '../../utils/event.js'\n\nexport default function (\n props,\n configureScrollTarget\n) {\n const localScrollTarget = ref(null)\n let scrollFn\n\n function changeScrollEvent (scrollTarget, fn) {\n const fnProp = `${ fn !== void 0 ? 'add' : 'remove' }EventListener`\n const fnHandler = fn !== void 0 ? fn : scrollFn\n\n if (scrollTarget !== window) {\n scrollTarget[ fnProp ]('scroll', fnHandler, listenOpts.passive)\n }\n\n window[ fnProp ]('scroll', fnHandler, listenOpts.passive)\n\n scrollFn = fn\n }\n\n function unconfigureScrollTarget () {\n if (localScrollTarget.value !== null) {\n changeScrollEvent(localScrollTarget.value)\n localScrollTarget.value = null\n }\n }\n\n const noParentEventWatcher = watch(() => props.noParentEvent, () => {\n if (localScrollTarget.value !== null) {\n unconfigureScrollTarget()\n configureScrollTarget()\n }\n })\n\n onBeforeUnmount(noParentEventWatcher)\n\n return {\n localScrollTarget,\n unconfigureScrollTarget,\n changeScrollEvent\n }\n}\n","import { watch, nextTick, onMounted, getCurrentInstance } from 'vue'\n\nimport { vmHasRouter } from '../../utils/private/vm.js'\n\nexport const useModelToggleProps = {\n modelValue: {\n type: Boolean,\n default: null\n },\n\n 'onUpdate:modelValue': [ Function, Array ]\n}\n\nexport const useModelToggleEmits = [\n 'before-show', 'show', 'before-hide', 'hide'\n]\n\n// handleShow/handleHide -> removeTick(), self (& emit show)\n\nexport default function ({\n showing,\n canShow, // optional\n hideOnRouteChange, // optional\n handleShow, // optional\n handleHide, // optional\n processOnMount // optional\n}) {\n const vm = getCurrentInstance()\n const { props, emit, proxy } = vm\n\n let payload\n\n function toggle (evt) {\n if (showing.value === true) {\n hide(evt)\n }\n else {\n show(evt)\n }\n }\n\n function show (evt) {\n if (\n props.disable === true\n || (evt !== void 0 && evt.qAnchorHandled === true)\n || (canShow !== void 0 && canShow(evt) !== true)\n ) {\n return\n }\n\n const listener = props[ 'onUpdate:modelValue' ] !== void 0\n\n if (listener === true && __QUASAR_SSR_SERVER__ !== true) {\n emit('update:modelValue', true)\n payload = evt\n nextTick(() => {\n if (payload === evt) {\n payload = void 0\n }\n })\n }\n\n if (props.modelValue === null || listener === false || __QUASAR_SSR_SERVER__) {\n processShow(evt)\n }\n }\n\n function processShow (evt) {\n if (showing.value === true) {\n return\n }\n\n showing.value = true\n\n emit('before-show', evt)\n\n if (handleShow !== void 0) {\n handleShow(evt)\n }\n else {\n emit('show', evt)\n }\n }\n\n function hide (evt) {\n if (__QUASAR_SSR_SERVER__ || props.disable === true) {\n return\n }\n\n const listener = props[ 'onUpdate:modelValue' ] !== void 0\n\n if (listener === true && __QUASAR_SSR_SERVER__ !== true) {\n emit('update:modelValue', false)\n payload = evt\n nextTick(() => {\n if (payload === evt) {\n payload = void 0\n }\n })\n }\n\n if (props.modelValue === null || listener === false || __QUASAR_SSR_SERVER__) {\n processHide(evt)\n }\n }\n\n function processHide (evt) {\n if (showing.value === false) {\n return\n }\n\n showing.value = false\n\n emit('before-hide', evt)\n\n if (handleHide !== void 0) {\n handleHide(evt)\n }\n else {\n emit('hide', evt)\n }\n }\n\n function processModelChange (val) {\n if (props.disable === true && val === true) {\n if (props[ 'onUpdate:modelValue' ] !== void 0) {\n emit('update:modelValue', false)\n }\n }\n else if ((val === true) !== showing.value) {\n const fn = val === true ? processShow : processHide\n fn(payload)\n }\n }\n\n watch(() => props.modelValue, processModelChange)\n\n if (hideOnRouteChange !== void 0 && vmHasRouter(vm) === true) {\n watch(() => proxy.$route.fullPath, () => {\n if (hideOnRouteChange.value === true && showing.value === true) {\n hide()\n }\n })\n }\n\n processOnMount === true && onMounted(() => {\n processModelChange(props.modelValue)\n })\n\n // expose public methods\n const publicMethods = { show, hide, toggle }\n Object.assign(proxy, publicMethods)\n\n return publicMethods\n}\n","import { getParentVm } from './vm.js'\n\nexport const portalList = []\n\nexport function getPortalVm (el) {\n return portalList.find(vm =>\n vm.__qPortalInnerRef.value !== null\n && vm.__qPortalInnerRef.value.contains(el)\n )\n}\n\nexport function closePortalMenus (vm, evt) {\n do {\n if (vm.$options.name === 'QMenu') {\n vm.hide(evt)\n\n // is this a point of separation?\n if (vm.$props.separateClosePopup === true) {\n return getParentVm(vm)\n }\n }\n else if (vm.__qPortalInnerRef !== void 0) {\n // treat it as point of separation if parent is QPopupProxy\n // (so mobile matches desktop behavior)\n // and hide it too\n const parent = getParentVm(vm)\n\n if (parent !== void 0 && parent.$options.name === 'QPopupProxy') {\n vm.hide(evt)\n return parent\n }\n else {\n return vm\n }\n }\n\n vm = getParentVm(vm)\n } while (vm !== void 0 && vm !== null)\n}\n\nexport function closePortals (vm, evt, depth) {\n while (depth !== 0 && vm !== void 0 && vm !== null) {\n if (vm.__qPortalInnerRef !== void 0) {\n depth--\n\n if (vm.$options.name === 'QMenu') {\n vm = closePortalMenus(vm, evt)\n continue\n }\n\n vm.hide(evt)\n }\n\n vm = getParentVm(vm)\n }\n}\n","import { h, ref, onUnmounted, Teleport } from 'vue'\n\nimport { noop } from '../../utils/event.js'\nimport { addFocusWaitFlag, removeFocusWaitFlag } from '../../utils/private/focus-manager.js'\nimport { createGlobalNode, removeGlobalNode } from '../../utils/private/global-nodes.js'\nimport { portalList } from '../../utils/private/portal.js'\n\nfunction isOnGlobalDialog (vm) {\n vm = vm.parent\n\n while (vm !== void 0 && vm !== null) {\n if (vm.type.name === 'QGlobalDialog') {\n return true\n }\n if (vm.type.name === 'QDialog' || vm.type.name === 'QMenu') {\n return false\n }\n\n vm = vm.parent\n }\n\n return false\n}\n\n// Warning!\n// You MUST specify \"inheritAttrs: false\" in your component\n\nexport default function (vm, innerRef, renderPortalContent, checkGlobalDialog) {\n // showing, including while in show/hide transition\n const portalIsActive = ref(false)\n\n // showing & not in any show/hide transition\n const portalIsAccessible = ref(false)\n\n if (__QUASAR_SSR_SERVER__) {\n return {\n portalIsActive,\n portalIsAccessible,\n\n showPortal: noop,\n hidePortal: noop,\n renderPortal: noop\n }\n }\n\n let portalEl = null\n const focusObj = {}\n const onGlobalDialog = checkGlobalDialog === true && isOnGlobalDialog(vm)\n\n function showPortal (isReady) {\n if (isReady === true) {\n removeFocusWaitFlag(focusObj)\n portalIsAccessible.value = true\n return\n }\n\n portalIsAccessible.value = false\n\n if (portalIsActive.value === false) {\n if (onGlobalDialog === false && portalEl === null) {\n portalEl = createGlobalNode()\n }\n\n portalIsActive.value = true\n\n // register portal\n portalList.push(vm.proxy)\n\n addFocusWaitFlag(focusObj)\n }\n }\n\n function hidePortal (isReady) {\n portalIsAccessible.value = false\n\n if (isReady !== true) { return }\n\n removeFocusWaitFlag(focusObj)\n portalIsActive.value = false\n\n // unregister portal\n const index = portalList.indexOf(vm.proxy)\n if (index > -1) {\n portalList.splice(index, 1)\n }\n\n if (portalEl !== null) {\n removeGlobalNode(portalEl)\n portalEl = null\n }\n }\n\n onUnmounted(() => { hidePortal(true) })\n\n // expose publicly needed stuff for portal utils\n Object.assign(vm.proxy, { __qPortalInnerRef: innerRef })\n\n return {\n showPortal,\n hidePortal,\n\n portalIsActive,\n portalIsAccessible,\n\n renderPortal: () => (\n onGlobalDialog === true\n ? renderPortalContent()\n : (\n portalIsActive.value === true\n ? [ h(Teleport, { to: portalEl }, renderPortalContent()) ]\n : void 0\n )\n )\n }\n}\n","import { ref, computed, watch, nextTick } from 'vue'\n\nexport const useTransitionProps = {\n transitionShow: {\n type: String,\n default: 'fade'\n },\n\n transitionHide: {\n type: String,\n default: 'fade'\n },\n\n transitionDuration: {\n type: [ String, Number ],\n default: 300\n }\n}\n\nexport default function (props, showing) {\n const transitionState = ref(showing.value)\n\n watch(showing, val => {\n nextTick(() => { transitionState.value = val })\n })\n\n // return transition\n return {\n transition: computed(() => 'q-transition--' + (\n transitionState.value === true ? props.transitionHide : props.transitionShow\n )),\n\n transitionStyle: computed(() => `--q-transition-duration: ${ props.transitionDuration }ms`)\n }\n}\n","import { nextTick, onBeforeUnmount } from 'vue'\n\n/*\n * Usage:\n * registerTick(fn)\n * registerTick(fn)\n */\n\nexport default function () {\n let tickFn\n\n onBeforeUnmount(() => {\n tickFn = void 0\n })\n\n return {\n registerTick (fn) {\n tickFn = fn\n\n nextTick(() => {\n if (tickFn === fn) {\n tickFn()\n tickFn = void 0\n }\n })\n },\n\n removeTick () {\n tickFn = void 0\n }\n }\n}\n","import { onBeforeUnmount } from 'vue'\n\nexport default function () {\n let timer\n\n onBeforeUnmount(() => {\n clearTimeout(timer)\n })\n\n return {\n registerTimeout (fn, delay) {\n clearTimeout(timer)\n timer = setTimeout(fn, delay)\n },\n\n removeTimeout () {\n clearTimeout(timer)\n }\n }\n}\n","import { client } from '../../plugins/Platform.js'\nimport { isKeyCode } from './key-composition.js'\n\nconst handlers = []\nlet escDown\n\nfunction onKeydown (evt) {\n escDown = evt.keyCode === 27\n}\n\nfunction onBlur () {\n if (escDown === true) {\n escDown = false\n }\n}\n\nfunction onKeyup (evt) {\n if (escDown === true) {\n escDown = false\n\n if (isKeyCode(evt, 27) === true) {\n handlers[ handlers.length - 1 ](evt)\n }\n }\n}\n\nfunction update (action) {\n window[ action ]('keydown', onKeydown)\n window[ action ]('blur', onBlur)\n window[ action ]('keyup', onKeyup)\n escDown = false\n}\n\nexport function addEscapeKey (fn) {\n if (client.is.desktop === true) {\n handlers.push(fn)\n\n if (handlers.length === 1) {\n update('addEventListener')\n }\n }\n}\n\nexport function removeEscapeKey (fn) {\n const index = handlers.indexOf(fn)\n if (index > -1) {\n handlers.splice(index, 1)\n\n if (handlers.length === 0) {\n update('removeEventListener')\n }\n }\n}\n","import { client } from '../../plugins/Platform.js'\n\nconst handlers = []\n\nfunction trigger (e) {\n handlers[ handlers.length - 1 ](e)\n}\n\nexport function addFocusout (fn) {\n if (client.is.desktop === true) {\n handlers.push(fn)\n\n if (handlers.length === 1) {\n document.body.addEventListener('focusin', trigger)\n }\n }\n}\n\nexport function removeFocusout (fn) {\n const index = handlers.indexOf(fn)\n if (index > -1) {\n handlers.splice(index, 1)\n\n if (handlers.length === 0) {\n document.body.removeEventListener('focusin', trigger)\n }\n }\n}\n","import { listenOpts } from '../event.js'\nimport { portalList } from '../private/portal.js'\n\nlet timer\n\nconst\n { notPassiveCapture } = listenOpts,\n registeredList = []\n\nfunction globalHandler (evt) {\n clearTimeout(timer)\n\n const target = evt.target\n\n if (\n target === void 0\n || target.nodeType === 8\n || target.classList.contains('no-pointer-events') === true\n ) {\n return\n }\n\n // check last portal vm if it's\n // a QDialog and not in seamless mode\n let portalIndex = portalList.length - 1\n\n while (portalIndex >= 0) {\n const proxy = portalList[ portalIndex ].$\n\n if (proxy.type.name !== 'QDialog') {\n break\n }\n\n if (proxy.props.seamless !== true) {\n return\n }\n\n portalIndex--\n }\n\n for (let i = registeredList.length - 1; i >= 0; i--) {\n const state = registeredList[ i ]\n\n if (\n (\n state.anchorEl.value === null\n || state.anchorEl.value.contains(target) === false\n )\n && (\n target === document.body\n || (\n state.innerRef.value !== null\n && state.innerRef.value.contains(target) === false\n )\n )\n ) {\n // mark the event as being processed by clickOutside\n // used to prevent refocus after menu close\n evt.qClickOutside = true\n state.onClickOutside(evt)\n }\n else {\n return\n }\n }\n}\n\nexport function addClickOutside (clickOutsideProps) {\n registeredList.push(clickOutsideProps)\n\n if (registeredList.length === 1) {\n document.addEventListener('mousedown', globalHandler, notPassiveCapture)\n document.addEventListener('touchstart', globalHandler, notPassiveCapture)\n }\n}\n\nexport function removeClickOutside (clickOutsideProps) {\n const index = registeredList.findIndex(h => h === clickOutsideProps)\n\n if (index > -1) {\n registeredList.splice(index, 1)\n\n if (registeredList.length === 0) {\n clearTimeout(timer)\n document.removeEventListener('mousedown', globalHandler, notPassiveCapture)\n document.removeEventListener('touchstart', globalHandler, notPassiveCapture)\n }\n }\n}\n","import { getScrollbarWidth } from '../scroll.js'\nimport { client } from '../../plugins/Platform.js'\n\nlet vpLeft, vpTop\n\nexport function validatePosition (pos) {\n const parts = pos.split(' ')\n if (parts.length !== 2) {\n return false\n }\n if ([ 'top', 'center', 'bottom' ].includes(parts[ 0 ]) !== true) {\n console.error('Anchor/Self position must start with one of top/center/bottom')\n return false\n }\n if ([ 'left', 'middle', 'right', 'start', 'end' ].includes(parts[ 1 ]) !== true) {\n console.error('Anchor/Self position must end with one of left/middle/right/start/end')\n return false\n }\n return true\n}\n\nexport function validateOffset (val) {\n if (!val) { return true }\n if (val.length !== 2) { return false }\n if (typeof val[ 0 ] !== 'number' || typeof val[ 1 ] !== 'number') {\n return false\n }\n return true\n}\n\nconst horizontalPos = {\n 'start#ltr': 'left',\n 'start#rtl': 'right',\n 'end#ltr': 'right',\n 'end#rtl': 'left'\n}\n\n;[ 'left', 'middle', 'right' ].forEach(pos => {\n horizontalPos[ `${ pos }#ltr` ] = pos\n horizontalPos[ `${ pos }#rtl` ] = pos\n})\n\nexport function parsePosition (pos, rtl) {\n const parts = pos.split(' ')\n return {\n vertical: parts[ 0 ],\n horizontal: horizontalPos[ `${ parts[ 1 ] }#${ rtl === true ? 'rtl' : 'ltr' }` ]\n }\n}\n\nexport function getAnchorProps (el, offset) {\n let { top, left, right, bottom, width, height } = el.getBoundingClientRect()\n\n if (offset !== void 0) {\n top -= offset[ 1 ]\n left -= offset[ 0 ]\n bottom += offset[ 1 ]\n right += offset[ 0 ]\n\n width += offset[ 0 ]\n height += offset[ 1 ]\n }\n\n return {\n top,\n left,\n right,\n bottom,\n width,\n height,\n middle: left + (right - left) / 2,\n center: top + (bottom - top) / 2\n }\n}\n\nexport function getTargetProps (el) {\n return {\n top: 0,\n center: el.offsetHeight / 2,\n bottom: el.offsetHeight,\n left: 0,\n middle: el.offsetWidth / 2,\n right: el.offsetWidth\n }\n}\n\n// cfg: { el, anchorEl, anchorOrigin, selfOrigin, offset, absoluteOffset, cover, fit, maxHeight, maxWidth }\nexport function setPosition (cfg) {\n if (client.is.ios === true && window.visualViewport !== void 0) {\n // uses the q-position-engine CSS class\n\n const el = document.body.style\n const { offsetLeft: left, offsetTop: top } = window.visualViewport\n\n if (left !== vpLeft) {\n el.setProperty('--q-pe-left', left + 'px')\n vpLeft = left\n }\n if (top !== vpTop) {\n el.setProperty('--q-pe-top', top + 'px')\n vpTop = top\n }\n }\n\n let anchorProps\n\n // scroll position might change\n // if max-height/-width changes, so we\n // need to restore it after we calculate\n // the new positioning\n const { scrollLeft, scrollTop } = cfg.el\n\n if (cfg.absoluteOffset === void 0) {\n anchorProps = getAnchorProps(cfg.anchorEl, cfg.cover === true ? [ 0, 0 ] : cfg.offset)\n }\n else {\n const\n { top: anchorTop, left: anchorLeft } = cfg.anchorEl.getBoundingClientRect(),\n top = anchorTop + cfg.absoluteOffset.top,\n left = anchorLeft + cfg.absoluteOffset.left\n\n anchorProps = { top, left, width: 1, height: 1, right: left + 1, center: top, middle: left, bottom: top + 1 }\n }\n\n let elStyle = {\n maxHeight: cfg.maxHeight,\n maxWidth: cfg.maxWidth,\n visibility: 'visible'\n }\n\n if (cfg.fit === true || cfg.cover === true) {\n elStyle.minWidth = anchorProps.width + 'px'\n if (cfg.cover === true) {\n elStyle.minHeight = anchorProps.height + 'px'\n }\n }\n\n Object.assign(cfg.el.style, elStyle)\n\n const\n targetProps = getTargetProps(cfg.el),\n props = {\n top: anchorProps[ cfg.anchorOrigin.vertical ] - targetProps[ cfg.selfOrigin.vertical ],\n left: anchorProps[ cfg.anchorOrigin.horizontal ] - targetProps[ cfg.selfOrigin.horizontal ]\n }\n\n applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin)\n\n elStyle = {\n top: props.top + 'px',\n left: props.left + 'px'\n }\n\n if (props.maxHeight !== void 0) {\n elStyle.maxHeight = props.maxHeight + 'px'\n\n if (anchorProps.height > props.maxHeight) {\n elStyle.minHeight = elStyle.maxHeight\n }\n }\n if (props.maxWidth !== void 0) {\n elStyle.maxWidth = props.maxWidth + 'px'\n\n if (anchorProps.width > props.maxWidth) {\n elStyle.minWidth = elStyle.maxWidth\n }\n }\n\n Object.assign(cfg.el.style, elStyle)\n\n // restore scroll position\n if (cfg.el.scrollTop !== scrollTop) {\n cfg.el.scrollTop = scrollTop\n }\n if (cfg.el.scrollLeft !== scrollLeft) {\n cfg.el.scrollLeft = scrollLeft\n }\n}\n\nfunction applyBoundaries (props, anchorProps, targetProps, anchorOrigin, selfOrigin) {\n const\n currentHeight = targetProps.bottom,\n currentWidth = targetProps.right,\n margin = getScrollbarWidth(),\n innerHeight = window.innerHeight - margin,\n innerWidth = document.body.clientWidth\n\n if (props.top < 0 || props.top + currentHeight > innerHeight) {\n if (selfOrigin.vertical === 'center') {\n props.top = anchorProps[ anchorOrigin.vertical ] > innerHeight / 2\n ? Math.max(0, innerHeight - currentHeight)\n : 0\n props.maxHeight = Math.min(currentHeight, innerHeight)\n }\n else if (anchorProps[ anchorOrigin.vertical ] > innerHeight / 2) {\n const anchorY = Math.min(\n innerHeight,\n anchorOrigin.vertical === 'center'\n ? anchorProps.center\n : (anchorOrigin.vertical === selfOrigin.vertical ? anchorProps.bottom : anchorProps.top)\n )\n props.maxHeight = Math.min(currentHeight, anchorY)\n props.top = Math.max(0, anchorY - currentHeight)\n }\n else {\n props.top = Math.max(0, anchorOrigin.vertical === 'center'\n ? anchorProps.center\n : (anchorOrigin.vertical === selfOrigin.vertical ? anchorProps.top : anchorProps.bottom)\n )\n props.maxHeight = Math.min(currentHeight, innerHeight - props.top)\n }\n }\n\n if (props.left < 0 || props.left + currentWidth > innerWidth) {\n props.maxWidth = Math.min(currentWidth, innerWidth)\n if (selfOrigin.horizontal === 'middle') {\n props.left = anchorProps[ anchorOrigin.horizontal ] > innerWidth / 2\n ? Math.max(0, innerWidth - currentWidth)\n : 0\n }\n else if (anchorProps[ anchorOrigin.horizontal ] > innerWidth / 2) {\n const anchorX = Math.min(\n innerWidth,\n anchorOrigin.horizontal === 'middle'\n ? anchorProps.middle\n : (anchorOrigin.horizontal === selfOrigin.horizontal ? anchorProps.right : anchorProps.left)\n )\n props.maxWidth = Math.min(currentWidth, anchorX)\n props.left = Math.max(0, anchorX - props.maxWidth)\n }\n else {\n props.left = Math.max(0, anchorOrigin.horizontal === 'middle'\n ? anchorProps.middle\n : (anchorOrigin.horizontal === selfOrigin.horizontal ? anchorProps.left : anchorProps.right)\n )\n props.maxWidth = Math.min(currentWidth, innerWidth - props.left)\n }\n }\n}\n","import { h, ref, computed, watch, Transition, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport useAnchor, { useAnchorProps } from '../../composables/private/use-anchor.js'\nimport useScrollTarget from '../../composables/private/use-scroll-target.js'\nimport useModelToggle, { useModelToggleProps, useModelToggleEmits } from '../../composables/private/use-model-toggle.js'\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport usePortal from '../../composables/private/use-portal.js'\nimport useTransition, { useTransitionProps } from '../../composables/private/use-transition.js'\nimport useTick from '../../composables/private/use-tick.js'\nimport useTimeout from '../../composables/private/use-timeout.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { closePortalMenus } from '../../utils/private/portal.js'\nimport { getScrollTarget } from '../../utils/scroll.js'\nimport { position, stopAndPrevent } from '../../utils/event.js'\nimport { hSlot } from '../../utils/private/render.js'\nimport { addEscapeKey, removeEscapeKey } from '../../utils/private/escape-key.js'\nimport { addFocusout, removeFocusout } from '../../utils/private/focusout.js'\nimport { childHasFocus } from '../../utils/dom.js'\nimport { addClickOutside, removeClickOutside } from '../../utils/private/click-outside.js'\nimport { addFocusFn } from '../../utils/private/focus-manager.js'\n\nimport {\n validatePosition, validateOffset, setPosition, parsePosition\n} from '../../utils/private/position-engine.js'\n\nexport default createComponent({\n name: 'QMenu',\n\n inheritAttrs: false,\n\n props: {\n ...useAnchorProps,\n ...useModelToggleProps,\n ...useDarkProps,\n ...useTransitionProps,\n\n persistent: Boolean,\n autoClose: Boolean,\n separateClosePopup: Boolean,\n\n noRouteDismiss: Boolean,\n noRefocus: Boolean,\n noFocus: Boolean,\n\n fit: Boolean,\n cover: Boolean,\n\n square: Boolean,\n\n anchor: {\n type: String,\n validator: validatePosition\n },\n self: {\n type: String,\n validator: validatePosition\n },\n offset: {\n type: Array,\n validator: validateOffset\n },\n\n scrollTarget: {\n default: void 0\n },\n\n touchPosition: Boolean,\n\n maxHeight: {\n type: String,\n default: null\n },\n maxWidth: {\n type: String,\n default: null\n }\n },\n\n emits: [\n ...useModelToggleEmits,\n 'click', 'escape-key'\n ],\n\n setup (props, { slots, emit, attrs }) {\n let refocusTarget = null, absoluteOffset, unwatchPosition, avoidAutoClose\n\n const vm = getCurrentInstance()\n const { proxy } = vm\n const { $q } = proxy\n\n const innerRef = ref(null)\n const showing = ref(false)\n\n const hideOnRouteChange = computed(() =>\n props.persistent !== true\n && props.noRouteDismiss !== true\n )\n\n const isDark = useDark(props, $q)\n const { registerTick, removeTick } = useTick()\n const { registerTimeout, removeTimeout } = useTimeout()\n const { transition, transitionStyle } = useTransition(props, showing)\n const { localScrollTarget, changeScrollEvent, unconfigureScrollTarget } = useScrollTarget(props, configureScrollTarget)\n\n const { anchorEl, canShow } = useAnchor({ showing })\n\n const { hide } = useModelToggle({\n showing, canShow, handleShow, handleHide,\n hideOnRouteChange,\n processOnMount: true\n })\n\n const { showPortal, hidePortal, renderPortal } = usePortal(vm, innerRef, renderPortalContent)\n\n const clickOutsideProps = {\n anchorEl,\n innerRef,\n onClickOutside (e) {\n if (props.persistent !== true && showing.value === true) {\n hide(e)\n\n if (\n // always prevent touch event\n e.type === 'touchstart'\n // prevent click if it's on a dialog backdrop\n || e.target.classList.contains('q-dialog__backdrop')\n ) {\n stopAndPrevent(e)\n }\n\n return true\n }\n }\n }\n\n const anchorOrigin = computed(() =>\n parsePosition(\n props.anchor || (\n props.cover === true ? 'center middle' : 'bottom start'\n ),\n $q.lang.rtl\n )\n )\n\n const selfOrigin = computed(() => (\n props.cover === true\n ? anchorOrigin.value\n : parsePosition(props.self || 'top start', $q.lang.rtl)\n ))\n\n const menuClass = computed(() =>\n (props.square === true ? ' q-menu--square' : '')\n + (isDark.value === true ? ' q-menu--dark q-dark' : '')\n )\n\n const onEvents = computed(() => (\n props.autoClose === true\n ? { onClick: onAutoClose }\n : {}\n ))\n\n const handlesFocus = computed(() =>\n showing.value === true && props.persistent !== true\n )\n\n watch(handlesFocus, val => {\n if (val === true) {\n addEscapeKey(onEscapeKey)\n addClickOutside(clickOutsideProps)\n }\n else {\n removeEscapeKey(onEscapeKey)\n removeClickOutside(clickOutsideProps)\n }\n })\n\n function focus () {\n addFocusFn(() => {\n let node = innerRef.value\n\n if (node && node.contains(document.activeElement) !== true) {\n node = node.querySelector('[autofocus], [data-autofocus]') || node\n node.focus({ preventScroll: true })\n }\n })\n }\n\n function handleShow (evt) {\n removeTick()\n removeTimeout()\n\n refocusTarget = props.noRefocus === false\n ? document.activeElement\n : null\n\n addFocusout(onFocusout)\n\n showPortal()\n configureScrollTarget()\n\n absoluteOffset = void 0\n\n if (evt !== void 0 && (props.touchPosition || props.contextMenu)) {\n const pos = position(evt)\n\n if (pos.left !== void 0) {\n const { top, left } = anchorEl.value.getBoundingClientRect()\n absoluteOffset = { left: pos.left - left, top: pos.top - top }\n }\n }\n\n if (unwatchPosition === void 0) {\n unwatchPosition = watch(\n () => $q.screen.width + '|' + $q.screen.height + '|' + props.self + '|' + props.anchor + '|' + $q.lang.rtl,\n updatePosition\n )\n }\n\n if (props.noFocus !== true) {\n document.activeElement.blur()\n }\n\n registerTick(() => {\n updatePosition()\n props.noFocus !== true && focus()\n })\n\n registerTimeout(() => {\n // required in order to avoid the \"double-tap needed\" issue\n if ($q.platform.is.ios === true) {\n // if auto-close, then this click should\n // not close the menu\n avoidAutoClose = props.autoClose\n innerRef.value.click()\n }\n\n updatePosition()\n showPortal(true) // done showing portal\n emit('show', evt)\n }, props.transitionDuration)\n }\n\n function handleHide (evt) {\n removeTick()\n removeTimeout()\n hidePortal()\n\n anchorCleanup(true)\n\n if (\n refocusTarget !== null\n && (\n // menu was hidden from code or ESC plugin\n evt === void 0\n // menu was not closed from a mouse or touch clickOutside\n || evt.qClickOutside !== true\n )\n ) {\n refocusTarget.focus()\n refocusTarget = null\n }\n\n registerTimeout(() => {\n hidePortal(true) // done hiding, now destroy\n emit('hide', evt)\n }, props.transitionDuration)\n }\n\n function anchorCleanup (hiding) {\n absoluteOffset = void 0\n\n if (unwatchPosition !== void 0) {\n unwatchPosition()\n unwatchPosition = void 0\n }\n\n if (hiding === true || showing.value === true) {\n removeFocusout(onFocusout)\n unconfigureScrollTarget()\n removeClickOutside(clickOutsideProps)\n removeEscapeKey(onEscapeKey)\n }\n\n if (hiding !== true) {\n refocusTarget = null\n }\n }\n\n function configureScrollTarget () {\n if (anchorEl.value !== null || props.scrollTarget !== void 0) {\n localScrollTarget.value = getScrollTarget(anchorEl.value, props.scrollTarget)\n changeScrollEvent(localScrollTarget.value, updatePosition)\n }\n }\n\n function onAutoClose (e) {\n // if auto-close, then the ios double-tap fix which\n // issues a click should not close the menu\n if (avoidAutoClose !== true) {\n closePortalMenus(proxy, e)\n emit('click', e)\n }\n else {\n avoidAutoClose = false\n }\n }\n\n function onFocusout (evt) {\n // the focus is not in a vue child component\n if (\n handlesFocus.value === true\n && props.noFocus !== true\n && childHasFocus(innerRef.value, evt.target) !== true\n ) {\n focus()\n }\n }\n\n function onEscapeKey (evt) {\n emit('escape-key')\n hide(evt)\n }\n\n function updatePosition () {\n const el = innerRef.value\n\n if (el === null || anchorEl.value === null) {\n return\n }\n\n setPosition({\n el,\n offset: props.offset,\n anchorEl: anchorEl.value,\n anchorOrigin: anchorOrigin.value,\n selfOrigin: selfOrigin.value,\n absoluteOffset,\n fit: props.fit,\n cover: props.cover,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth\n })\n }\n\n function renderPortalContent () {\n return h(\n Transition,\n { name: transition.value, appear: true },\n () => (\n showing.value === true\n ? h('div', {\n ...attrs,\n ref: innerRef,\n tabindex: -1,\n class: [\n 'q-menu q-position-engine scroll' + menuClass.value,\n attrs.class\n ],\n style: [\n attrs.style,\n transitionStyle.value\n ],\n ...onEvents.value\n }, hSlot(slots.default))\n : null\n )\n )\n }\n\n onBeforeUnmount(anchorCleanup)\n\n // expose public methods\n Object.assign(proxy, { focus, updatePosition })\n\n return renderPortal\n }\n})\n","import { h, computed, inject, getCurrentInstance } from 'vue'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hSlot } from '../../utils/private/render.js'\nimport { pageContainerKey, layoutKey } from '../../utils/private/symbols.js'\n\nexport default createComponent({\n name: 'QPage',\n\n props: {\n padding: Boolean,\n styleFn: Function\n },\n\n setup (props, { slots }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const $layout = inject(layoutKey)\n inject(pageContainerKey, () => {\n console.error('QPage needs to be child of QPageContainer')\n })\n\n const style = computed(() => {\n const offset\n = ($layout.header.space === true ? $layout.header.size : 0)\n + ($layout.footer.space === true ? $layout.footer.size : 0)\n\n if (typeof props.styleFn === 'function') {\n const height = $layout.isContainer.value === true\n ? $layout.containerHeight.value\n : $q.screen.height\n\n return props.styleFn(offset, height)\n }\n\n return {\n minHeight: $layout.isContainer.value === true\n ? ($layout.containerHeight.value - offset) + 'px'\n : (\n $q.screen.height === 0\n ? (offset !== 0 ? `calc(100vh - ${ offset }px)` : '100vh')\n : ($q.screen.height - offset) + 'px'\n )\n }\n })\n\n const classes = computed(() =>\n `q-page ${ props.padding === true ? ' q-layout-padding' : '' }`\n )\n\n return () => h('main', {\n class: classes.value,\n style: style.value\n }, hSlot(slots.default))\n }\n})\n","import { h, computed, provide, inject, getCurrentInstance } from 'vue'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hSlot } from '../../utils/private/render.js'\nimport { pageContainerKey, layoutKey } from '../../utils/private/symbols.js'\n\nexport default createComponent({\n name: 'QPageContainer',\n\n setup (_, { slots }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const $layout = inject(layoutKey, () => {\n console.error('QPageContainer needs to be child of QLayout')\n })\n\n provide(pageContainerKey, true)\n\n const style = computed(() => {\n const css = {}\n\n if ($layout.header.space === true) {\n css.paddingTop = `${ $layout.header.size }px`\n }\n if ($layout.right.space === true) {\n css[ `padding${ $q.lang.rtl === true ? 'Left' : 'Right' }` ] = `${ $layout.right.size }px`\n }\n if ($layout.footer.space === true) {\n css.paddingBottom = `${ $layout.footer.size }px`\n }\n if ($layout.left.space === true) {\n css[ `padding${ $q.lang.rtl === true ? 'Right' : 'Left' }` ] = `${ $layout.left.size }px`\n }\n\n return css\n })\n\n return () => h('div', {\n class: 'q-page-container',\n style: style.value\n }, hSlot(slots.default))\n }\n})\n","import { ref, onMounted } from 'vue'\n\n// using it to manage SSR rendering with best performance\nimport { isRuntimeSsrPreHydration } from '../../plugins/Platform.js'\n\nexport default function () {\n const canRender = ref(!isRuntimeSsrPreHydration.value)\n\n if (canRender.value === false) {\n onMounted(() => {\n canRender.value = true\n })\n }\n\n return canRender\n}\n","import { h, onMounted, onBeforeUnmount, getCurrentInstance, nextTick } from 'vue'\n\nimport useCanRender from '../../composables/private/use-can-render.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { listenOpts, noop } from '../../utils/event.js'\n\nconst hasObserver = typeof ResizeObserver !== 'undefined'\nconst resizeProps = hasObserver === true\n ? {}\n : {\n style: 'display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;',\n url: 'about:blank'\n }\n\nexport default createComponent({\n name: 'QResizeObserver',\n\n props: {\n debounce: {\n type: [ String, Number ],\n default: 100\n }\n },\n\n emits: [ 'resize' ],\n\n setup (props, { emit }) {\n if (__QUASAR_SSR_SERVER__) { return noop }\n\n let timer = null, targetEl, size = { width: -1, height: -1 }\n\n function trigger (immediately) {\n if (immediately === true || props.debounce === 0 || props.debounce === '0') {\n emitEvent()\n }\n else if (timer === null) {\n timer = setTimeout(emitEvent, props.debounce)\n }\n }\n\n function emitEvent () {\n clearTimeout(timer)\n timer = null\n\n if (targetEl) {\n const { offsetWidth: width, offsetHeight: height } = targetEl\n\n if (width !== size.width || height !== size.height) {\n size = { width, height }\n emit('resize', size)\n }\n }\n }\n\n const vm = getCurrentInstance()\n\n // expose public methods\n Object.assign(vm.proxy, { trigger })\n\n if (hasObserver === true) {\n let observer\n\n onMounted(() => {\n nextTick(() => {\n targetEl = vm.proxy.$el.parentNode\n\n if (targetEl) {\n observer = new ResizeObserver(trigger)\n observer.observe(targetEl)\n emitEvent()\n }\n })\n })\n\n onBeforeUnmount(() => {\n clearTimeout(timer)\n\n if (observer !== void 0) {\n if (observer.disconnect !== void 0) {\n observer.disconnect()\n }\n else if (targetEl) { // FF for Android\n observer.unobserve(targetEl)\n }\n }\n })\n\n return noop\n }\n else { // no observer, so fallback to old iframe method\n const canRender = useCanRender()\n\n let curDocView\n\n function cleanup () {\n clearTimeout(timer)\n\n if (curDocView !== void 0) {\n // iOS is fuzzy, need to check it first\n if (curDocView.removeEventListener !== void 0) {\n curDocView.removeEventListener('resize', trigger, listenOpts.passive)\n }\n curDocView = void 0\n }\n }\n\n function onObjLoad () {\n cleanup()\n\n if (targetEl && targetEl.contentDocument) {\n curDocView = targetEl.contentDocument.defaultView\n curDocView.addEventListener('resize', trigger, listenOpts.passive)\n emitEvent()\n }\n }\n\n onMounted(() => {\n nextTick(() => {\n targetEl = vm.proxy.$el\n targetEl && onObjLoad()\n })\n })\n\n onBeforeUnmount(cleanup)\n\n return () => {\n if (canRender.value === true) {\n return h('object', {\n style: resizeProps.style,\n tabindex: -1, // fix for Firefox\n type: 'text/html',\n data: resizeProps.url,\n 'aria-hidden': 'true',\n onLoad: onObjLoad\n })\n }\n }\n }\n }\n})\n","import { h, computed, getCurrentInstance } from 'vue'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\n\nimport { createComponent } from '../../utils/private/create.js'\n\nconst insetMap = {\n true: 'inset',\n item: 'item-inset',\n 'item-thumbnail': 'item-thumbnail-inset'\n}\n\nexport const margins = {\n xs: 2,\n sm: 4,\n md: 8,\n lg: 16,\n xl: 24\n}\n\nexport default createComponent({\n name: 'QSeparator',\n\n props: {\n ...useDarkProps,\n\n spaced: [ Boolean, String ],\n inset: [ Boolean, String ],\n vertical: Boolean,\n color: String,\n size: String\n },\n\n setup (props) {\n const vm = getCurrentInstance()\n const isDark = useDark(props, vm.proxy.$q)\n\n const orientation = computed(() => (\n props.vertical === true\n ? 'vertical'\n : 'horizontal'\n ))\n\n const orientClass = computed(() => ` q-separator--${ orientation.value }`)\n\n const insetClass = computed(() => (\n props.inset !== false\n ? `${ orientClass.value }-${ insetMap[ props.inset ] }`\n : ''\n ))\n\n const classes = computed(() =>\n `q-separator${ orientClass.value }${ insetClass.value }`\n + (props.color !== void 0 ? ` bg-${ props.color }` : '')\n + (isDark.value === true ? ' q-separator--dark' : '')\n )\n\n const style = computed(() => {\n const acc = {}\n\n if (props.size !== void 0) {\n acc[ props.vertical === true ? 'width' : 'height' ] = props.size\n }\n\n if (props.spaced !== false) {\n const size = props.spaced === true\n ? `${ margins.md }px`\n : props.spaced in margins ? `${ margins[ props.spaced ] }px` : props.spaced\n\n const dir = props.vertical === true\n ? [ 'Left', 'Right' ]\n : [ 'Top', 'Bottom' ]\n\n acc[ `margin${ dir[ 0 ] }` ] = acc[ `margin${ dir[ 1 ] }` ] = size\n }\n\n return acc\n })\n\n return () => h('hr', {\n class: classes.value,\n style: style.value,\n 'aria-orientation': orientation.value\n })\n }\n})\n","import { computed } from 'vue'\nimport { useSizeDefaults } from '../../composables/private/use-size.js'\n\nexport const useSpinnerProps = {\n size: {\n type: [ Number, String ],\n default: '1em'\n },\n color: String\n}\n\nexport default function useSpinner (props) {\n return {\n cSize: computed(() => (\n props.size in useSizeDefaults\n ? `${ useSizeDefaults[ props.size ] }px`\n : props.size\n )),\n\n classes: computed(() =>\n 'q-spinner' + (props.color ? ` text-${ props.color }` : '')\n )\n }\n}\n","import { h } from 'vue'\n\nimport useSpinner, { useSpinnerProps } from './use-spinner.js'\n\nimport { createComponent } from '../../utils/private/create.js'\n\nexport default createComponent({\n name: 'QSpinner',\n\n props: {\n ...useSpinnerProps,\n\n thickness: {\n type: Number,\n default: 5\n }\n },\n\n setup (props) {\n const { cSize, classes } = useSpinner(props)\n\n return () => h('svg', {\n class: classes.value + ' q-spinner-mat',\n width: cSize.value,\n height: cSize.value,\n viewBox: '25 25 50 50'\n }, [\n h('circle', {\n class: 'path',\n cx: '50',\n cy: '50',\n r: '20',\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-width': props.thickness,\n 'stroke-miterlimit': '10'\n })\n ])\n }\n})\n","import { h, computed } from 'vue'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default createComponent({\n name: 'QToolbar',\n\n props: {\n inset: Boolean\n },\n\n setup (props, { slots }) {\n const classes = computed(() =>\n 'q-toolbar row no-wrap items-center'\n + (props.inset === true ? ' q-toolbar--inset' : '')\n )\n\n return () => h('div', { class: classes.value }, hSlot(slots.default))\n }\n})\n","import { h, computed } from 'vue'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default createComponent({\n name: 'QToolbarTitle',\n\n props: {\n shrink: Boolean\n },\n\n setup (props, { slots }) {\n const classes = computed(() =>\n 'q-toolbar__title ellipsis'\n + (props.shrink === true ? ' col-shrink' : '')\n )\n\n return () => h('div', { class: classes.value }, hSlot(slots.default))\n }\n})\n","import { computed } from 'vue'\n\nexport const useDarkProps = {\n dark: {\n type: Boolean,\n default: null\n }\n}\n\nexport default function (props, $q) {\n // return isDark\n return computed(() => (\n props.dark === null\n ? $q.dark.isActive\n : props.dark\n ))\n}\n","import { h, computed } from 'vue'\n\nexport const useFormProps = {\n name: String\n}\n\nexport function useFormAttrs (props) {\n return computed(() => ({\n type: 'hidden',\n name: props.name,\n value: props.modelValue\n }))\n}\n\nexport function useFormInject (formAttrs = {}) {\n return (child, action, className) => {\n child[ action ](\n h('input', {\n class: 'hidden' + (className || ''),\n ...formAttrs.value\n })\n )\n }\n}\n\nexport function useFormInputNameAttr (props) {\n return computed(() => props.name || props.for)\n}\n","/*\n * Inspired by RouterLink from Vue Router\n * --> API should match!\n */\n\nimport { computed, getCurrentInstance } from 'vue'\n\nimport { prevent } from '../../utils/event.js'\nimport { vmHasRouter } from '../../utils/private/vm.js'\n\n// Get the original path value of a record by following its aliasOf\nfunction getOriginalPath (record) {\n return record\n ? (\n record.aliasOf\n ? record.aliasOf.path\n : record.path\n ) : ''\n}\n\nfunction isSameRouteRecord (a, b) {\n // since the original record has an undefined value for aliasOf\n // but all aliases point to the original record, this will always compare\n // the original record\n return (a.aliasOf || a) === (b.aliasOf || b)\n}\n\nfunction includesParams (outer, inner) {\n for (const key in inner) {\n const\n innerValue = inner[ key ],\n outerValue = outer[ key ]\n\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue) {\n return false\n }\n }\n else if (\n Array.isArray(outerValue) === false\n || outerValue.length !== innerValue.length\n || innerValue.some((value, i) => value !== outerValue[ i ])\n ) {\n return false\n }\n }\n\n return true\n}\n\nfunction isEquivalentArray (a, b) {\n return Array.isArray(b) === true\n ? a.length === b.length && a.every((value, i) => value === b[ i ])\n : a.length === 1 && a[ 0 ] === b\n}\n\nfunction isSameRouteLocationParamsValue (a, b) {\n return Array.isArray(a) === true\n ? isEquivalentArray(a, b)\n : (\n Array.isArray(b) === true\n ? isEquivalentArray(b, a)\n : a === b\n )\n}\n\nfunction isSameRouteLocationParams (a, b) {\n if (Object.keys(a).length !== Object.keys(b).length) {\n return false\n }\n\n for (const key in a) {\n if (isSameRouteLocationParamsValue(a[ key ], b[ key ]) === false) {\n return false\n }\n }\n\n return true\n}\n\nexport const useRouterLinkProps = {\n // router-link\n to: [ String, Object ],\n replace: Boolean,\n exact: Boolean,\n activeClass: {\n type: String,\n default: 'q-router-link--active'\n },\n exactActiveClass: {\n type: String,\n default: 'q-router-link--exact-active'\n },\n\n // regular link\n href: String,\n target: String,\n\n // state\n disable: Boolean\n}\n\n// external props: type, tag\n\nexport default function (fallbackTag) {\n const vm = getCurrentInstance()\n const { props, proxy } = vm\n\n const hasRouter = vmHasRouter(vm)\n const hasHrefLink = computed(() => props.disable !== true && props.href !== void 0)\n\n const hasRouterLinkProps = computed(() =>\n hasRouter === true\n && props.disable !== true\n && hasHrefLink.value !== true\n && props.to !== void 0 && props.to !== null && props.to !== ''\n )\n\n const linkRoute = computed(() => {\n if (hasRouterLinkProps.value === true) {\n try { return proxy.$router.resolve(props.to) }\n catch (err) {}\n }\n\n return null\n })\n\n const hasRouterLink = computed(() => linkRoute.value !== null)\n const hasLink = computed(() => hasHrefLink.value === true || hasRouterLink.value === true)\n\n const linkTag = computed(() => (\n props.type === 'a' || hasLink.value === true\n ? 'a'\n : (props.tag || fallbackTag || 'div')\n ))\n\n const linkProps = computed(() => (\n hasHrefLink.value === true\n ? {\n href: props.href,\n target: props.target\n }\n : (\n hasRouterLink.value === true\n ? {\n href: linkRoute.value.href,\n target: props.target\n }\n : {}\n )\n ))\n\n const linkActiveIndex = computed(() => {\n if (hasRouterLink.value === false) {\n return null\n }\n\n const\n { matched } = linkRoute.value,\n { length } = matched,\n routeMatched = matched[ length - 1 ]\n\n if (routeMatched === void 0) {\n return -1\n }\n\n const currentMatched = proxy.$route.matched\n\n if (currentMatched.length === 0) {\n return -1\n }\n\n const index = currentMatched.findIndex(\n isSameRouteRecord.bind(null, routeMatched)\n )\n\n if (index > -1) {\n return index\n }\n\n // possible parent record\n const parentRecordPath = getOriginalPath(matched[ length - 2 ])\n\n return (\n // we are dealing with nested routes\n length > 1\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n && getOriginalPath(routeMatched) === parentRecordPath\n // avoid comparing the child with its parent\n && currentMatched[ currentMatched.length - 1 ].path !== parentRecordPath\n ? currentMatched.findIndex(\n isSameRouteRecord.bind(null, matched[ length - 2 ])\n )\n : index\n )\n })\n\n const linkIsActive = computed(() =>\n hasRouterLink.value === true\n && linkActiveIndex.value > -1\n && includesParams(proxy.$route.params, linkRoute.value.params)\n )\n\n const linkIsExactActive = computed(() =>\n linkIsActive.value === true\n && linkActiveIndex.value === proxy.$route.matched.length - 1\n && isSameRouteLocationParams(proxy.$route.params, linkRoute.value.params)\n )\n\n const linkClass = computed(() => (\n hasRouterLink.value === true\n ? (\n linkIsExactActive.value === true\n ? ` ${ props.exactActiveClass } ${ props.activeClass }`\n : (\n props.exact === true\n ? ''\n : (linkIsActive.value === true ? ` ${ props.activeClass }` : '')\n )\n )\n : ''\n ))\n\n // should match RouterLink from Vue Router\n function navigateToRouterLink (e) {\n if (\n // component is not disabled\n props.disable === true\n\n // don't redirect with control keys\n || e.metaKey || e.altKey || e.ctrlKey || e.shiftKey\n\n // don't redirect when preventDefault called\n // ...unless calling go() from @click(e, go)\n || (e.__qNavigate !== true && e.defaultPrevented === true)\n\n // don't redirect on right click\n || (e.button !== undefined && e.button !== 0)\n\n // don't redirect if it should open in a new window\n || props.target === '_blank'\n ) {\n return false\n }\n\n prevent(e)\n\n return proxy.$router[ props.replace === true ? 'replace' : 'push' ](props.to)\n .catch(err => err)\n }\n\n return {\n hasRouterLink,\n hasHrefLink,\n hasLink,\n\n linkTag,\n linkRoute,\n linkIsActive,\n linkIsExactActive,\n linkClass,\n linkProps,\n\n navigateToRouterLink\n }\n}\n","import { computed } from 'vue'\n\nexport const useSizeDefaults = {\n xs: 18,\n sm: 24,\n md: 32,\n lg: 38,\n xl: 46\n}\n\nexport const useSizeProps = {\n size: String\n}\n\nexport default function (props, sizes = useSizeDefaults) {\n // return sizeStyle\n return computed(() => (\n props.size !== void 0\n ? { fontSize: props.size in sizes ? `${ sizes[ props.size ] }px` : props.size }\n : null\n ))\n}\n","import { inject } from 'vue'\nimport { quasarKey } from '../utils/private/symbols.js'\n\n/**\n * Returns the $q instance.\n * Equivalent to `this.$q` inside templates.\n */\nexport default function useQuasar () {\n return inject(quasarKey)\n}\n","export default {\n name: 'material-icons',\n type: {\n positive: 'check_circle',\n negative: 'warning',\n info: 'info',\n warning: 'priority_high'\n },\n arrow: {\n up: 'arrow_upward',\n right: 'arrow_forward',\n down: 'arrow_downward',\n left: 'arrow_back',\n dropdown: 'arrow_drop_down'\n },\n chevron: {\n left: 'chevron_left',\n right: 'chevron_right'\n },\n colorPicker: {\n spectrum: 'gradient',\n tune: 'tune',\n palette: 'style'\n },\n pullToRefresh: {\n icon: 'refresh'\n },\n carousel: {\n left: 'chevron_left',\n right: 'chevron_right',\n up: 'keyboard_arrow_up',\n down: 'keyboard_arrow_down',\n navigationIcon: 'lens'\n },\n chip: {\n remove: 'cancel',\n selected: 'check'\n },\n datetime: {\n arrowLeft: 'chevron_left',\n arrowRight: 'chevron_right',\n now: 'access_time',\n today: 'today'\n },\n editor: {\n bold: 'format_bold',\n italic: 'format_italic',\n strikethrough: 'strikethrough_s',\n underline: 'format_underlined',\n unorderedList: 'format_list_bulleted',\n orderedList: 'format_list_numbered',\n subscript: 'vertical_align_bottom',\n superscript: 'vertical_align_top',\n hyperlink: 'link',\n toggleFullscreen: 'fullscreen',\n quote: 'format_quote',\n left: 'format_align_left',\n center: 'format_align_center',\n right: 'format_align_right',\n justify: 'format_align_justify',\n print: 'print',\n outdent: 'format_indent_decrease',\n indent: 'format_indent_increase',\n removeFormat: 'format_clear',\n formatting: 'text_format',\n fontSize: 'format_size',\n align: 'format_align_left',\n hr: 'remove',\n undo: 'undo',\n redo: 'redo',\n heading: 'format_size',\n code: 'code',\n size: 'format_size',\n font: 'font_download',\n viewSource: 'code'\n },\n expansionItem: {\n icon: 'keyboard_arrow_down',\n denseIcon: 'arrow_drop_down'\n },\n fab: {\n icon: 'add',\n activeIcon: 'close'\n },\n field: {\n clear: 'cancel',\n error: 'error'\n },\n pagination: {\n first: 'first_page',\n prev: 'keyboard_arrow_left',\n next: 'keyboard_arrow_right',\n last: 'last_page'\n },\n rating: {\n icon: 'grade'\n },\n stepper: {\n done: 'check',\n active: 'edit',\n error: 'warning'\n },\n tabs: {\n left: 'chevron_left',\n right: 'chevron_right',\n up: 'keyboard_arrow_up',\n down: 'keyboard_arrow_down'\n },\n table: {\n arrowUp: 'arrow_upward',\n warning: 'warning',\n firstPage: 'first_page',\n prevPage: 'chevron_left',\n nextPage: 'chevron_right',\n lastPage: 'last_page'\n },\n tree: {\n icon: 'play_arrow'\n },\n uploader: {\n done: 'done',\n clear: 'clear',\n add: 'add_box',\n upload: 'cloud_upload',\n removeQueue: 'clear_all',\n removeUploaded: 'done_all'\n }\n}\n","import defineReactivePlugin from './utils/private/define-reactive-plugin.js'\nimport { injectProp } from './utils/private/inject-obj-prop.js'\n// no extension on purpose for next one:\nimport materialIcons from '../icon-set/material-icons'\n\nconst Plugin = defineReactivePlugin({\n iconMapFn: null,\n __icons: {}\n}, {\n set (setObject, ssrContext) {\n const def = { ...setObject, rtl: setObject.rtl === true }\n\n if (__QUASAR_SSR_SERVER__) {\n if (ssrContext === void 0) {\n console.error('SSR ERROR: second param required: Quasar.iconSet.set(iconSet, ssrContext)')\n return\n }\n\n def.set = ssrContext.$q.iconSet.set\n Object.assign(ssrContext.$q.iconSet, def)\n }\n else {\n def.set = Plugin.set\n Object.assign(Plugin.__icons, def)\n }\n },\n\n install ({ $q, iconSet, ssrContext }) {\n if (__QUASAR_SSR_SERVER__) {\n const initialSet = iconSet || materialIcons\n\n $q.iconMapFn = ssrContext.$q.config.iconMapFn || this.iconMapFn || null\n $q.iconSet = {}\n $q.iconSet.set = setObject => {\n this.set(setObject, ssrContext)\n }\n\n $q.iconSet.set(initialSet)\n }\n else {\n if ($q.config.iconMapFn !== void 0) {\n this.iconMapFn = $q.config.iconMapFn\n }\n\n $q.iconSet = this.__icons\n\n injectProp($q, 'iconMapFn', () => this.iconMapFn, val => { this.iconMapFn = val })\n\n if (this.__installed === true) {\n iconSet !== void 0 && this.set(iconSet)\n }\n else {\n this.set(iconSet || materialIcons)\n }\n }\n }\n})\n\nexport default Plugin\n","import { isRuntimeSsrPreHydration, client } from './Platform.js'\n\nimport defineReactivePlugin from '../utils/private/define-reactive-plugin.js'\nimport { listenOpts, noop } from '../utils/event.js'\nimport debounce from '../utils/debounce.js'\n\nconst SIZE_LIST = [ 'sm', 'md', 'lg', 'xl' ]\nconst { passive } = listenOpts\n\nexport default defineReactivePlugin({\n width: 0,\n height: 0,\n name: 'xs',\n\n sizes: {\n sm: 600,\n md: 1024,\n lg: 1440,\n xl: 1920\n },\n\n lt: {\n sm: true,\n md: true,\n lg: true,\n xl: true\n },\n gt: {\n xs: false,\n sm: false,\n md: false,\n lg: false\n },\n\n xs: true,\n sm: false,\n md: false,\n lg: false,\n xl: false\n}, {\n setSizes: noop,\n setDebounce: noop,\n\n install ({ $q, onSSRHydrated }) {\n $q.screen = this\n\n if (__QUASAR_SSR_SERVER__) { return }\n\n if (this.__installed === true) {\n if ($q.config.screen !== void 0) {\n if ($q.config.screen.bodyClasses === false) {\n document.body.classList.remove(`screen--${ this.name }`)\n }\n else {\n this.__update(true)\n }\n }\n return\n }\n\n const { visualViewport } = window\n const target = visualViewport || window\n const scrollingElement = document.scrollingElement || document.documentElement\n const getSize = visualViewport === void 0 || client.is.mobile === true\n ? () => [\n Math.max(window.innerWidth, scrollingElement.clientWidth),\n Math.max(window.innerHeight, scrollingElement.clientHeight)\n ]\n : () => [\n visualViewport.width * visualViewport.scale + window.innerWidth - scrollingElement.clientWidth,\n visualViewport.height * visualViewport.scale + window.innerHeight - scrollingElement.clientHeight\n ]\n\n const classes = $q.config.screen !== void 0 && $q.config.screen.bodyClasses === true\n\n this.__update = force => {\n const [ w, h ] = getSize()\n\n if (h !== this.height) {\n this.height = h\n }\n\n if (w !== this.width) {\n this.width = w\n }\n else if (force !== true) {\n return\n }\n\n let s = this.sizes\n\n this.gt.xs = w >= s.sm\n this.gt.sm = w >= s.md\n this.gt.md = w >= s.lg\n this.gt.lg = w >= s.xl\n this.lt.sm = w < s.sm\n this.lt.md = w < s.md\n this.lt.lg = w < s.lg\n this.lt.xl = w < s.xl\n this.xs = this.lt.sm\n this.sm = this.gt.xs === true && this.lt.md === true\n this.md = this.gt.sm === true && this.lt.lg === true\n this.lg = this.gt.md === true && this.lt.xl === true\n this.xl = this.gt.lg\n\n s = (this.xs === true && 'xs')\n || (this.sm === true && 'sm')\n || (this.md === true && 'md')\n || (this.lg === true && 'lg')\n || 'xl'\n\n if (s !== this.name) {\n if (classes === true) {\n document.body.classList.remove(`screen--${ this.name }`)\n document.body.classList.add(`screen--${ s }`)\n }\n this.name = s\n }\n }\n\n let updateEvt, updateSizes = {}, updateDebounce = 16\n\n this.setSizes = sizes => {\n SIZE_LIST.forEach(name => {\n if (sizes[ name ] !== void 0) {\n updateSizes[ name ] = sizes[ name ]\n }\n })\n }\n this.setDebounce = deb => {\n updateDebounce = deb\n }\n\n const start = () => {\n const style = getComputedStyle(document.body)\n\n // if css props available\n if (style.getPropertyValue('--q-size-sm')) {\n SIZE_LIST.forEach(name => {\n this.sizes[ name ] = parseInt(style.getPropertyValue(`--q-size-${ name }`), 10)\n })\n }\n\n this.setSizes = sizes => {\n SIZE_LIST.forEach(name => {\n if (sizes[ name ]) {\n this.sizes[ name ] = sizes[ name ]\n }\n })\n this.__update(true)\n }\n\n this.setDebounce = delay => {\n updateEvt !== void 0 && target.removeEventListener('resize', updateEvt, passive)\n updateEvt = delay > 0\n ? debounce(this.__update, delay)\n : this.__update\n target.addEventListener('resize', updateEvt, passive)\n }\n\n this.setDebounce(updateDebounce)\n\n if (Object.keys(updateSizes).length > 0) {\n this.setSizes(updateSizes)\n updateSizes = void 0 // free up memory\n }\n else {\n this.__update()\n }\n\n // due to optimizations, this would be left out otherwise\n classes === true && this.name === 'xs'\n && document.body.classList.add('screen--xs')\n }\n\n if (isRuntimeSsrPreHydration.value === true) {\n onSSRHydrated.push(start)\n }\n else {\n start()\n }\n }\n})\n","import defineReactivePlugin from '../utils/private/define-reactive-plugin.js'\nimport { isRuntimeSsrPreHydration } from './Platform.js'\n\nconst Plugin = defineReactivePlugin({\n isActive: false,\n mode: false\n}, {\n __media: void 0,\n\n set (val) {\n if (__QUASAR_SSR_SERVER__) { return }\n\n Plugin.mode = val\n\n if (val === 'auto') {\n if (Plugin.__media === void 0) {\n Plugin.__media = window.matchMedia('(prefers-color-scheme: dark)')\n Plugin.__updateMedia = () => { Plugin.set('auto') }\n Plugin.__media.addListener(Plugin.__updateMedia)\n }\n\n val = Plugin.__media.matches\n }\n else if (Plugin.__media !== void 0) {\n Plugin.__media.removeListener(Plugin.__updateMedia)\n Plugin.__media = void 0\n }\n\n Plugin.isActive = val === true\n\n document.body.classList.remove(`body--${ val === true ? 'light' : 'dark' }`)\n document.body.classList.add(`body--${ val === true ? 'dark' : 'light' }`)\n },\n\n toggle () {\n if (__QUASAR_SSR_SERVER__ !== true) {\n Plugin.set(Plugin.isActive === false)\n }\n },\n\n install ({ $q, onSSRHydrated, ssrContext }) {\n const { dark } = $q.config\n\n if (__QUASAR_SSR_SERVER__) {\n this.isActive = dark === true\n\n $q.dark = {\n isActive: false,\n mode: false,\n set: val => {\n ssrContext._meta.bodyClasses = ssrContext._meta.bodyClasses\n .replace(' body--light', '')\n .replace(' body--dark', '') + ` body--${ val === true ? 'dark' : 'light' }`\n\n $q.dark.isActive = val === true\n $q.dark.mode = val\n },\n toggle: () => {\n $q.dark.set($q.dark.isActive === false)\n }\n }\n\n $q.dark.set(dark)\n return\n }\n\n $q.dark = this\n\n if (this.__installed === true && dark === void 0) {\n return\n }\n\n this.isActive = dark === true\n\n const initialVal = dark !== void 0 ? dark : false\n\n if (isRuntimeSsrPreHydration.value === true) {\n const ssrSet = val => {\n this.__fromSSR = val\n }\n\n const originalSet = this.set\n\n this.set = ssrSet\n ssrSet(initialVal)\n\n onSSRHydrated.push(() => {\n this.set = originalSet\n this.set(this.__fromSSR)\n })\n }\n else {\n this.set(initialVal)\n }\n }\n})\n\nexport default Plugin\n","import { client } from './plugins/Platform.js'\nimport { noop } from './utils/event.js'\n\nconst getTrue = () => true\n\nfunction filterInvalidPath (path) {\n return typeof path === 'string'\n && path !== ''\n && path !== '/'\n && path !== '#/'\n}\n\nfunction normalizeExitPath (path) {\n path.startsWith('#') === true && (path = path.substring(1))\n path.startsWith('/') === false && (path = '/' + path)\n path.endsWith('/') === true && (path = path.substring(0, path.length - 1))\n return '#' + path\n}\n\nfunction getShouldExitFn (cfg) {\n if (cfg.backButtonExit === false) {\n return () => false\n }\n\n if (cfg.backButtonExit === '*') {\n return getTrue\n }\n\n // Add default root path\n const exitPaths = [ '#/' ]\n\n // Add custom exit paths\n Array.isArray(cfg.backButtonExit) === true && exitPaths.push(\n ...cfg.backButtonExit.filter(filterInvalidPath).map(normalizeExitPath)\n )\n\n return () => exitPaths.includes(window.location.hash)\n}\n\nexport default {\n __history: [],\n add: noop,\n remove: noop,\n\n install ({ $q }) {\n if (__QUASAR_SSR_SERVER__ || this.__installed === true) { return }\n\n const { cordova, capacitor } = client.is\n\n if (cordova !== true && capacitor !== true) {\n return\n }\n\n const qConf = $q.config[ cordova === true ? 'cordova' : 'capacitor' ]\n\n if (qConf !== void 0 && qConf.backButton === false) {\n return\n }\n\n // if the '@capacitor/app' plugin is not installed\n // then we got nothing to do\n if (\n // if we're on Capacitor mode\n capacitor === true\n // and it's also not in Capacitor's main instance\n && (window.Capacitor === void 0 || window.Capacitor.Plugins.App === void 0)\n ) {\n return\n }\n\n this.add = entry => {\n if (entry.condition === void 0) {\n entry.condition = getTrue\n }\n this.__history.push(entry)\n }\n\n this.remove = entry => {\n const index = this.__history.indexOf(entry)\n if (index >= 0) {\n this.__history.splice(index, 1)\n }\n }\n\n const shouldExit = getShouldExitFn(\n Object.assign(\n { backButtonExit: true },\n qConf\n )\n )\n\n const backHandler = () => {\n if (this.__history.length) {\n const entry = this.__history[ this.__history.length - 1 ]\n\n if (entry.condition() === true) {\n this.__history.pop()\n entry.handler()\n }\n }\n else if (shouldExit() === true) {\n navigator.app.exitApp()\n }\n else {\n window.history.back()\n }\n }\n\n if (cordova === true) {\n document.addEventListener('deviceready', () => {\n document.addEventListener('backbutton', backHandler, false)\n })\n }\n else {\n window.Capacitor.Plugins.App.addListener('backButton', backHandler)\n }\n }\n}\n","import setCssVar from './utils/set-css-var.js'\nimport { noop } from './utils/event.js'\nimport { onKeyDownComposition } from './utils/private/key-composition.js'\nimport { isRuntimeSsrPreHydration, client, iosCorrection } from './plugins/Platform.js'\n\nfunction getMobilePlatform (is) {\n if (is.ios === true) return 'ios'\n if (is.android === true) return 'android'\n}\n\nfunction getBodyClasses ({ is, has, within }, cfg) {\n const cls = [\n is.desktop === true ? 'desktop' : 'mobile',\n `${ has.touch === false ? 'no-' : '' }touch`\n ]\n\n if (is.mobile === true) {\n const mobile = getMobilePlatform(is)\n mobile !== void 0 && cls.push('platform-' + mobile)\n }\n\n if (is.nativeMobile === true) {\n const type = is.nativeMobileWrapper\n\n cls.push(type)\n cls.push('native-mobile')\n\n if (\n is.ios === true\n && (cfg[ type ] === void 0 || cfg[ type ].iosStatusBarPadding !== false)\n ) {\n cls.push('q-ios-padding')\n }\n }\n else if (is.electron === true) {\n cls.push('electron')\n }\n else if (is.bex === true) {\n cls.push('bex')\n }\n\n within.iframe === true && cls.push('within-iframe')\n\n return cls\n}\n\nfunction applyClientSsrCorrections () {\n const classes = document.body.className\n let newCls = classes\n\n if (iosCorrection !== void 0) {\n newCls = newCls.replace('desktop', 'platform-ios mobile')\n }\n\n if (client.has.touch === true) {\n newCls = newCls.replace('no-touch', 'touch')\n }\n\n if (client.within.iframe === true) {\n newCls += ' within-iframe'\n }\n\n if (classes !== newCls) {\n document.body.className = newCls\n }\n}\n\nfunction setColors (brand) {\n for (const color in brand) {\n setCssVar(color, brand[ color ])\n }\n}\n\nexport default {\n install (opts) {\n if (__QUASAR_SSR_SERVER__) {\n const { $q, ssrContext } = opts\n const cls = getBodyClasses($q.platform, $q.config)\n\n if ($q.config.screen !== void 0 && $q.config.screen.bodyClass === true) {\n cls.push('screen--xs')\n }\n\n ssrContext._meta.bodyClasses += cls.join(' ')\n\n const brand = $q.config.brand\n if (brand !== void 0) {\n const vars = Object.keys(brand)\n .map(key => `--q-${ key }:${ brand[ key ] };`)\n .join('')\n\n ssrContext._meta.endingHeadTags += ``\n }\n\n return\n }\n\n if (this.__installed === true) { return }\n\n if (isRuntimeSsrPreHydration.value === true) {\n applyClientSsrCorrections()\n }\n else {\n const { $q } = opts\n\n $q.config.brand !== void 0 && setColors($q.config.brand)\n\n const cls = getBodyClasses(client, $q.config)\n document.body.classList.add.apply(document.body.classList, cls)\n }\n\n if (client.is.ios === true) {\n // needed for iOS button active state\n document.body.addEventListener('touchstart', noop)\n }\n\n window.addEventListener('keydown', onKeyDownComposition, true)\n }\n}\n","import { createApp } from 'vue'\n\nimport Platform, { isRuntimeSsrPreHydration } from './plugins/Platform.js'\nimport Screen from './plugins/Screen.js'\nimport Dark from './plugins/Dark.js'\nimport History from './history.js'\nimport Lang from './lang.js'\nimport Body from './body.js'\nimport IconSet from './icon-set.js'\n\nimport { quasarKey } from './utils/private/symbols.js'\nimport { globalConfig, globalConfigIsFrozen, freezeGlobalConfig } from './utils/private/global-config.js'\nimport { isObject } from './utils/private/is.js'\n\nconst autoInstalledPlugins = [\n Platform,\n Body,\n Dark,\n Screen,\n History,\n Lang,\n IconSet\n]\n\nexport function createChildApp (appCfg, parentApp) {\n const app = createApp(appCfg)\n\n app.config.globalProperties = parentApp.config.globalProperties\n\n const { reload, ...appContext } = parentApp._context\n Object.assign(app._context, appContext)\n\n return app\n}\n\nfunction installPlugins (pluginOpts, pluginList) {\n pluginList.forEach(Plugin => {\n Plugin.install(pluginOpts)\n Plugin.__installed = true\n })\n}\n\nfunction prepareApp (app, uiOpts, pluginOpts) {\n app.config.globalProperties.$q = pluginOpts.$q\n app.provide(quasarKey, pluginOpts.$q)\n\n installPlugins(pluginOpts, autoInstalledPlugins)\n\n uiOpts.components !== void 0 && Object.values(uiOpts.components).forEach(c => {\n if (isObject(c) === true && c.name !== void 0) {\n app.component(c.name, c)\n }\n })\n\n uiOpts.directives !== void 0 && Object.values(uiOpts.directives).forEach(d => {\n if (isObject(d) === true && d.name !== void 0) {\n app.directive(d.name, d)\n }\n })\n\n uiOpts.plugins !== void 0 && installPlugins(\n pluginOpts,\n Object.values(uiOpts.plugins).filter(\n p => typeof p.install === 'function' && autoInstalledPlugins.includes(p) === false\n )\n )\n\n if (isRuntimeSsrPreHydration.value === true) {\n pluginOpts.$q.onSSRHydrated = () => {\n pluginOpts.onSSRHydrated.forEach(fn => { fn() })\n pluginOpts.$q.onSSRHydrated = () => {}\n }\n }\n}\n\nexport default __QUASAR_SSR_SERVER__\n ? function (parentApp, opts = {}, ssrContext) {\n const $q = {\n version: __QUASAR_VERSION__,\n config: opts.config || {}\n }\n\n Object.assign(ssrContext, {\n $q,\n _meta: {\n htmlAttrs: '',\n headTags: '',\n endingHeadTags: '',\n bodyClasses: '',\n bodyAttrs: 'data-server-rendered',\n bodyTags: ''\n }\n })\n\n if (ssrContext._modules === void 0) {\n // not OK. means the SSR build is not using @quasar/ssr-helpers,\n // but we shouldn't crash the app\n ssrContext._modules = []\n }\n\n if (ssrContext.onRendered === void 0) {\n // not OK. means the SSR build is not using @quasar/ssr-helpers,\n // but we shouldn't crash the app\n ssrContext.onRendered = () => {}\n }\n\n parentApp.config.globalProperties.ssrContext = ssrContext\n\n prepareApp(parentApp, opts, {\n parentApp,\n $q,\n lang: opts.lang,\n iconSet: opts.iconSet,\n ssrContext\n })\n }\n : function (parentApp, opts = {}) {\n const $q = { version: __QUASAR_VERSION__ }\n\n if (globalConfigIsFrozen === false) {\n if (opts.config !== void 0) {\n Object.assign(globalConfig, opts.config)\n }\n\n $q.config = { ...globalConfig }\n freezeGlobalConfig()\n }\n else {\n $q.config = opts.config || {}\n }\n\n prepareApp(parentApp, opts, {\n parentApp,\n $q,\n lang: opts.lang,\n iconSet: opts.iconSet,\n onSSRHydrated: []\n })\n }\n","export default {\n isoName: 'en-US',\n nativeName: 'English (US)',\n label: {\n clear: 'Clear',\n ok: 'OK',\n cancel: 'Cancel',\n close: 'Close',\n set: 'Set',\n select: 'Select',\n reset: 'Reset',\n remove: 'Remove',\n update: 'Update',\n create: 'Create',\n search: 'Search',\n filter: 'Filter',\n refresh: 'Refresh'\n },\n date: {\n days: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n daysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n firstDayOfWeek: 0, // 0-6, 0 - Sunday, 1 Monday, ...\n format24h: false,\n pluralDay: 'days'\n },\n table: {\n noData: 'No data available',\n noResults: 'No matching records found',\n loading: 'Loading...',\n selectedRecords: rows => (\n rows === 1\n ? '1 record selected.'\n : (rows === 0 ? 'No' : rows) + ' records selected.'\n ),\n recordsPerPage: 'Records per page:',\n allRows: 'All',\n pagination: (start, end, total) => start + '-' + end + ' of ' + total,\n columns: 'Columns'\n },\n editor: {\n url: 'URL',\n bold: 'Bold',\n italic: 'Italic',\n strikethrough: 'Strikethrough',\n underline: 'Underline',\n unorderedList: 'Unordered List',\n orderedList: 'Ordered List',\n subscript: 'Subscript',\n superscript: 'Superscript',\n hyperlink: 'Hyperlink',\n toggleFullscreen: 'Toggle Fullscreen',\n quote: 'Quote',\n left: 'Left align',\n center: 'Center align',\n right: 'Right align',\n justify: 'Justify align',\n print: 'Print',\n outdent: 'Decrease indentation',\n indent: 'Increase indentation',\n removeFormat: 'Remove formatting',\n formatting: 'Formatting',\n fontSize: 'Font Size',\n align: 'Align',\n hr: 'Insert Horizontal Rule',\n undo: 'Undo',\n redo: 'Redo',\n heading1: 'Heading 1',\n heading2: 'Heading 2',\n heading3: 'Heading 3',\n heading4: 'Heading 4',\n heading5: 'Heading 5',\n heading6: 'Heading 6',\n paragraph: 'Paragraph',\n code: 'Code',\n size1: 'Very small',\n size2: 'A bit small',\n size3: 'Normal',\n size4: 'Medium-large',\n size5: 'Big',\n size6: 'Very big',\n size7: 'Maximum',\n defaultFont: 'Default Font',\n viewSource: 'View Source'\n },\n tree: {\n noNodes: 'No nodes available',\n noResults: 'No matching nodes found'\n }\n}\n","import defineReactivePlugin from './utils/private/define-reactive-plugin.js'\n// no extension on purpose for next one:\nimport defaultLang from '../lang/en-US'\n\nfunction getLocale () {\n if (__QUASAR_SSR_SERVER__) { return }\n\n const val = Array.isArray(navigator.languages) === true && navigator.languages.length > 0\n ? navigator.languages[ 0 ]\n : navigator.language\n\n if (typeof val === 'string') {\n return val.split(/[-_]/).map((v, i) => (\n i === 0\n ? v.toLowerCase()\n : (\n i > 1 || v.length < 4\n ? v.toUpperCase()\n : (v[ 0 ].toUpperCase() + v.slice(1).toLowerCase())\n )\n )).join('-')\n }\n}\n\nconst Plugin = defineReactivePlugin({\n __langPack: {}\n}, {\n getLocale,\n\n set (langObject = defaultLang, ssrContext) {\n const lang = {\n ...langObject,\n rtl: langObject.rtl === true,\n getLocale\n }\n\n if (__QUASAR_SSR_SERVER__) {\n if (ssrContext === void 0) {\n console.error('SSR ERROR: second param required: Quasar.lang.set(lang, ssrContext)')\n return\n }\n\n const dir = lang.rtl === true ? 'rtl' : 'ltr'\n const attrs = `lang=${ lang.isoName } dir=${ dir }`\n\n lang.set = ssrContext.$q.lang.set\n\n ssrContext._meta.htmlAttrs = ssrContext.__qPrevLang !== void 0\n ? ssrContext._meta.htmlAttrs.replace(ssrContext.__qPrevLang, attrs)\n : attrs\n\n ssrContext.__qPrevLang = attrs\n ssrContext.$q.lang = lang\n }\n else {\n const el = document.documentElement\n el.setAttribute('dir', lang.rtl === true ? 'rtl' : 'ltr')\n el.setAttribute('lang', lang.isoName)\n\n lang.set = Plugin.set\n\n Object.assign(Plugin.__langPack, lang)\n\n Plugin.props = lang\n Plugin.isoName = lang.isoName\n Plugin.nativeName = lang.nativeName\n }\n },\n\n install ({ $q, lang, ssrContext }) {\n if (__QUASAR_SSR_SERVER__) {\n const initialLang = lang || defaultLang\n\n $q.lang = {}\n $q.lang.set = langObject => {\n this.set(langObject, ssrContext)\n }\n\n $q.lang.set(initialLang)\n\n // one-time SSR server operation\n if (this.isoName !== initialLang.isoName) {\n this.isoName = initialLang.isoName\n this.nativeName = initialLang.nativeName\n this.props = initialLang\n }\n }\n else {\n $q.lang = Plugin.__langPack\n\n if (this.__installed === true) {\n lang !== void 0 && this.set(lang)\n }\n else {\n this.set(lang || defaultLang)\n }\n }\n }\n})\n\nexport default Plugin\nexport { defaultLang }\n","import { h, ref, markRaw, TransitionGroup } from 'vue'\n\nimport QAvatar from '../components/avatar/QAvatar.js'\nimport QIcon from '../components/icon/QIcon.js'\nimport QBtn from '../components/btn/QBtn.js'\nimport QSpinner from '../components/spinner/QSpinner.js'\n\nimport { createComponent } from '../utils/private/create.js'\nimport { noop } from '../utils/event.js'\nimport { createGlobalNode } from '../utils/private/global-nodes.js'\nimport { createChildApp } from '../install-quasar.js'\nimport { isObject } from '../utils/private/is.js'\n\nlet uid = 0\n\nconst defaults = {}\nconst groups = {}\nconst notificationsList = {}\nconst positionClass = {}\nconst emptyRE = /^\\s*$/\nconst notifRefs = []\n\nconst positionList = [\n 'top-left', 'top-right',\n 'bottom-left', 'bottom-right',\n 'top', 'bottom', 'left', 'right', 'center'\n]\n\nconst badgePositions = [\n 'top-left', 'top-right',\n 'bottom-left', 'bottom-right'\n]\n\nconst notifTypes = {\n positive: {\n icon: $q => $q.iconSet.type.positive,\n color: 'positive'\n },\n\n negative: {\n icon: $q => $q.iconSet.type.negative,\n color: 'negative'\n },\n\n warning: {\n icon: $q => $q.iconSet.type.warning,\n color: 'warning',\n textColor: 'dark'\n },\n\n info: {\n icon: $q => $q.iconSet.type.info,\n color: 'info'\n },\n\n ongoing: {\n group: false,\n timeout: 0,\n spinner: true,\n color: 'grey-8'\n }\n}\n\nfunction addNotification (config, $q, originalApi) {\n if (!config) {\n return logError('parameter required')\n }\n\n let Api\n const notif = { textColor: 'white' }\n\n if (config.ignoreDefaults !== true) {\n Object.assign(notif, defaults)\n }\n\n if (isObject(config) === false) {\n if (notif.type) {\n Object.assign(notif, notifTypes[ notif.type ])\n }\n\n config = { message: config }\n }\n\n Object.assign(notif, notifTypes[ config.type || notif.type ], config)\n\n if (typeof notif.icon === 'function') {\n notif.icon = notif.icon($q)\n }\n\n if (!notif.spinner) {\n notif.spinner = false\n }\n else {\n if (notif.spinner === true) {\n notif.spinner = QSpinner\n }\n\n notif.spinner = markRaw(notif.spinner)\n }\n\n notif.meta = {\n hasMedia: Boolean(notif.spinner !== false || notif.icon || notif.avatar),\n hasText: hasContent(notif.message) || hasContent(notif.caption)\n }\n\n if (notif.position) {\n if (positionList.includes(notif.position) === false) {\n return logError('wrong position', config)\n }\n }\n else {\n notif.position = 'bottom'\n }\n\n if (notif.timeout === void 0) {\n notif.timeout = 5000\n }\n else {\n const t = parseInt(notif.timeout, 10)\n if (isNaN(t) || t < 0) {\n return logError('wrong timeout', config)\n }\n notif.timeout = t\n }\n\n if (notif.timeout === 0) {\n notif.progress = false\n }\n else if (notif.progress === true) {\n notif.meta.progressClass = 'q-notification__progress' + (\n notif.progressClass\n ? ` ${ notif.progressClass }`\n : ''\n )\n\n notif.meta.progressStyle = {\n animationDuration: `${ notif.timeout + 1000 }ms`\n }\n }\n\n const actions = (\n Array.isArray(config.actions) === true\n ? config.actions\n : []\n ).concat(\n config.ignoreDefaults !== true && Array.isArray(defaults.actions) === true\n ? defaults.actions\n : []\n ).concat(\n notifTypes[ config.type ] !== void 0 && Array.isArray(notifTypes[ config.type ].actions) === true\n ? notifTypes[ config.type ].actions\n : []\n )\n\n const { closeBtn } = notif\n closeBtn && actions.push({\n label: typeof closeBtn === 'string'\n ? closeBtn\n : $q.lang.label.close\n })\n\n notif.actions = actions.map(({ handler, noDismiss, ...item }) => ({\n flat: true,\n ...item,\n onClick: typeof handler === 'function'\n ? () => {\n handler()\n noDismiss !== true && dismiss()\n }\n : () => { dismiss() }\n }))\n\n if (notif.multiLine === void 0) {\n notif.multiLine = notif.actions.length > 1\n }\n\n Object.assign(notif.meta, {\n class: 'q-notification row items-stretch'\n + ` q-notification--${ notif.multiLine === true ? 'multi-line' : 'standard' }`\n + (notif.color !== void 0 ? ` bg-${ notif.color }` : '')\n + (notif.textColor !== void 0 ? ` text-${ notif.textColor }` : '')\n + (notif.classes !== void 0 ? ` ${ notif.classes }` : ''),\n\n wrapperClass: 'q-notification__wrapper col relative-position border-radius-inherit '\n + (notif.multiLine === true ? 'column no-wrap justify-center' : 'row items-center'),\n\n contentClass: 'q-notification__content row items-center'\n + (notif.multiLine === true ? '' : ' col'),\n\n leftClass: notif.meta.hasText === true ? 'additional' : 'single',\n\n attrs: {\n role: 'alert',\n ...notif.attrs\n }\n })\n\n if (notif.group === false) {\n notif.group = void 0\n notif.meta.group = void 0\n }\n else {\n if (notif.group === void 0 || notif.group === true) {\n // do not replace notifications with different buttons\n notif.group = [\n notif.message,\n notif.caption,\n notif.multiline\n ].concat(\n notif.actions.map(props => `${ props.label }*${ props.icon }`)\n ).join('|')\n }\n\n notif.meta.group = notif.group + '|' + notif.position\n }\n\n if (notif.actions.length === 0) {\n notif.actions = void 0\n }\n else {\n notif.meta.actionsClass = 'q-notification__actions row items-center '\n + (notif.multiLine === true ? 'justify-end' : 'col-auto')\n + (notif.meta.hasMedia === true ? ' q-notification__actions--with-media' : '')\n }\n\n if (originalApi !== void 0) {\n // reset timeout if any\n clearTimeout(originalApi.notif.meta.timer)\n\n // retain uid\n notif.meta.uid = originalApi.notif.meta.uid\n\n // replace notif\n const index = notificationsList[ notif.position ].value.indexOf(originalApi.notif)\n notificationsList[ notif.position ].value[ index ] = notif\n }\n else {\n const original = groups[ notif.meta.group ]\n\n // woohoo, it's a new notification\n if (original === void 0) {\n notif.meta.uid = uid++\n notif.meta.badge = 1\n\n if ([ 'left', 'right', 'center' ].indexOf(notif.position) !== -1) {\n notificationsList[ notif.position ].value.splice(\n Math.floor(notificationsList[ notif.position ].value.length / 2),\n 0,\n notif\n )\n }\n else {\n const action = notif.position.indexOf('top') > -1 ? 'unshift' : 'push'\n notificationsList[ notif.position ].value[ action ](notif)\n }\n\n if (notif.group !== void 0) {\n groups[ notif.meta.group ] = notif\n }\n }\n // ok, so it's NOT a new one\n else {\n // reset timeout if any\n clearTimeout(original.meta.timer)\n\n if (notif.badgePosition !== void 0) {\n if (badgePositions.includes(notif.badgePosition) === false) {\n return logError('wrong badgePosition', config)\n }\n }\n else {\n notif.badgePosition = `top-${ notif.position.indexOf('left') > -1 ? 'right' : 'left' }`\n }\n\n notif.meta.uid = original.meta.uid\n notif.meta.badge = original.meta.badge + 1\n notif.meta.badgeClass = `q-notification__badge q-notification__badge--${ notif.badgePosition }`\n + (notif.badgeColor !== void 0 ? ` bg-${ notif.badgeColor }` : '')\n + (notif.badgeTextColor !== void 0 ? ` text-${ notif.badgeTextColor }` : '')\n + (notif.badgeClass ? ` ${ notif.badgeClass }` : '')\n\n const index = notificationsList[ notif.position ].value.indexOf(original)\n notificationsList[ notif.position ].value[ index ] = groups[ notif.meta.group ] = notif\n }\n }\n\n const dismiss = () => {\n removeNotification(notif)\n Api = void 0\n }\n\n if (notif.timeout > 0) {\n notif.meta.timer = setTimeout(() => {\n dismiss()\n }, notif.timeout + /* show duration */ 1000)\n }\n\n // only non-groupable can be updated\n if (notif.group !== void 0) {\n return props => {\n if (props !== void 0) {\n logError('trying to update a grouped one which is forbidden', config)\n }\n else {\n dismiss()\n }\n }\n }\n\n Api = {\n dismiss,\n config,\n notif\n }\n\n if (originalApi !== void 0) {\n Object.assign(originalApi, Api)\n return\n }\n\n return props => {\n // if notification wasn't previously dismissed\n if (Api !== void 0) {\n // if no params, then we must dismiss the notification\n if (props === void 0) {\n Api.dismiss()\n }\n // otherwise we're updating it\n else {\n const newNotif = Object.assign({}, Api.config, props, {\n group: false,\n position: notif.position\n })\n\n addNotification(newNotif, $q, Api)\n }\n }\n }\n}\n\nfunction removeNotification (notif) {\n clearTimeout(notif.meta.timer)\n\n const index = notificationsList[ notif.position ].value.indexOf(notif)\n if (index !== -1) {\n if (notif.group !== void 0) {\n delete groups[ notif.meta.group ]\n }\n\n const el = notifRefs[ '' + notif.meta.uid ]\n\n if (el) {\n const { width, height } = getComputedStyle(el)\n\n el.style.left = `${ el.offsetLeft }px`\n el.style.width = width\n el.style.height = height\n }\n\n notificationsList[ notif.position ].value.splice(index, 1)\n\n if (typeof notif.onDismiss === 'function') {\n notif.onDismiss()\n }\n }\n}\n\nfunction hasContent (str) {\n return str !== void 0\n && str !== null\n && emptyRE.test(str) !== true\n}\n\nfunction logError (error, config) {\n console.error(`Notify: ${ error }`, config)\n return false\n}\n\nfunction getComponent () {\n return createComponent({\n name: 'QNotifications',\n\n // hide App from Vue devtools\n devtools: { hide: true },\n\n setup () {\n return () => h('div', { class: 'q-notifications' }, positionList.map(pos => {\n return h(TransitionGroup, {\n key: pos,\n class: positionClass[ pos ],\n tag: 'div',\n name: `q-notification--${ pos }`\n }, () => notificationsList[ pos ].value.map(notif => {\n const meta = notif.meta\n const mainChild = []\n\n if (meta.hasMedia === true) {\n if (notif.spinner !== false) {\n mainChild.push(\n h(notif.spinner, {\n class: 'q-notification__spinner q-notification__spinner--' + meta.leftClass,\n color: notif.spinnerColor,\n size: notif.spinnerSize\n })\n )\n }\n else if (notif.icon) {\n mainChild.push(\n h(QIcon, {\n class: 'q-notification__icon q-notification__icon--' + meta.leftClass,\n name: notif.icon,\n color: notif.iconColor,\n size: notif.iconSize,\n role: 'img'\n })\n )\n }\n else if (notif.avatar) {\n mainChild.push(\n h(QAvatar, {\n class: 'q-notification__avatar q-notification__avatar--' + meta.leftClass\n }, () => h('img', { src: notif.avatar, 'aria-hidden': 'true' }))\n )\n }\n }\n\n if (meta.hasText === true) {\n let msgChild\n const msgData = { class: 'q-notification__message col' }\n\n if (notif.html === true) {\n msgData.innerHTML = notif.caption\n ? `${ notif.message }
${ notif.caption }
`\n : notif.message\n }\n else {\n const msgNode = [ notif.message ]\n msgChild = notif.caption\n ? [\n h('div', msgNode),\n h('div', { class: 'q-notification__caption' }, [ notif.caption ])\n ]\n : msgNode\n }\n\n mainChild.push(\n h('div', msgData, msgChild)\n )\n }\n\n const child = [\n h('div', { class: meta.contentClass }, mainChild)\n ]\n\n notif.progress === true && child.push(\n h('div', {\n key: `${ meta.uid }|p|${ meta.badge }`,\n class: meta.progressClass,\n style: meta.progressStyle\n })\n )\n\n notif.actions !== void 0 && child.push(\n h('div', {\n class: meta.actionsClass\n }, notif.actions.map(props => h(QBtn, props)))\n )\n\n meta.badge > 1 && child.push(\n h('div', {\n key: `${ meta.uid }|${ meta.badge }`,\n class: notif.meta.badgeClass,\n style: notif.badgeStyle\n }, [ meta.badge ])\n )\n\n return h('div', {\n ref: el => { notifRefs[ '' + meta.uid ] = el },\n key: meta.uid,\n class: meta.class,\n ...meta.attrs\n }, [\n h('div', { class: meta.wrapperClass }, child)\n ])\n }))\n }))\n }\n })\n}\n\nexport default {\n setDefaults (opts) {\n if (__QUASAR_SSR_SERVER__ !== true) {\n isObject(opts) === true && Object.assign(defaults, opts)\n }\n },\n\n registerType (typeName, typeOpts) {\n if (__QUASAR_SSR_SERVER__ !== true && isObject(typeOpts) === true) {\n notifTypes[ typeName ] = typeOpts\n }\n },\n\n install ({ $q, parentApp }) {\n $q.notify = this.create = __QUASAR_SSR_SERVER__\n ? noop\n : opts => addNotification(opts, $q)\n\n $q.notify.setDefaults = this.setDefaults\n $q.notify.registerType = this.registerType\n\n if ($q.config.notify !== void 0) {\n this.setDefaults($q.config.notify)\n }\n\n if (__QUASAR_SSR_SERVER__ !== true && this.__installed !== true) {\n positionList.forEach(pos => {\n notificationsList[ pos ] = ref([])\n\n const\n vert = [ 'left', 'center', 'right' ].includes(pos) === true ? 'center' : (pos.indexOf('top') > -1 ? 'top' : 'bottom'),\n align = pos.indexOf('left') > -1 ? 'start' : (pos.indexOf('right') > -1 ? 'end' : 'center'),\n classes = [ 'left', 'right' ].includes(pos) ? `items-${ pos === 'left' ? 'start' : 'end' } justify-center` : (pos === 'center' ? 'flex-center' : `items-${ align }`)\n\n positionClass[ pos ] = `q-notifications__list q-notifications__list--${ vert } fixed column no-wrap ${ classes }`\n })\n\n const el = createGlobalNode('q-notify')\n createChildApp(getComponent(), parentApp).mount(el)\n }\n }\n}\n","/* eslint-disable no-useless-escape */\n\nimport { ref, reactive } from 'vue'\nimport { injectProp } from '../utils/private/inject-obj-prop'\n\n/**\n * __ QUASAR_SSR __ -> runs on SSR on client or server\n * __ QUASAR_SSR_SERVER __ -> runs on SSR on server\n * __ QUASAR_SSR_CLIENT __ -> runs on SSR on client\n * __ QUASAR_SSR_PWA __ -> built with SSR+PWA; may run on SSR on client or on PWA client\n * (needs runtime detection)\n */\n\nexport const isRuntimeSsrPreHydration = __QUASAR_SSR_SERVER__\n ? { value: true }\n : ref(\n __QUASAR_SSR_CLIENT__ && (\n __QUASAR_SSR_PWA__ ? document.body.getAttribute('data-server-rendered') !== null : true\n )\n )\n\nexport let iosEmulated = false\nexport let iosCorrection\n\nfunction getMatch (userAgent, platformMatch) {\n const match = /(edg|edge|edga|edgios)\\/([\\w.]+)/.exec(userAgent)\n || /(opr)[\\/]([\\w.]+)/.exec(userAgent)\n || /(vivaldi)[\\/]([\\w.]+)/.exec(userAgent)\n || /(chrome|crios)[\\/]([\\w.]+)/.exec(userAgent)\n || /(version)(applewebkit)[\\/]([\\w.]+).*(safari)[\\/]([\\w.]+)/.exec(userAgent)\n || /(webkit)[\\/]([\\w.]+).*(version)[\\/]([\\w.]+).*(safari)[\\/]([\\w.]+)/.exec(userAgent)\n || /(firefox|fxios)[\\/]([\\w.]+)/.exec(userAgent)\n || /(webkit)[\\/]([\\w.]+)/.exec(userAgent)\n || /(opera)(?:.*version|)[\\/]([\\w.]+)/.exec(userAgent)\n || []\n\n return {\n browser: match[ 5 ] || match[ 3 ] || match[ 1 ] || '',\n version: match[ 2 ] || match[ 4 ] || '0',\n versionNumber: match[ 4 ] || match[ 2 ] || '0',\n platform: platformMatch[ 0 ] || ''\n }\n}\n\nfunction getPlatformMatch (userAgent) {\n return /(ipad)/.exec(userAgent)\n || /(ipod)/.exec(userAgent)\n || /(windows phone)/.exec(userAgent)\n || /(iphone)/.exec(userAgent)\n || /(kindle)/.exec(userAgent)\n || /(silk)/.exec(userAgent)\n || /(android)/.exec(userAgent)\n || /(win)/.exec(userAgent)\n || /(mac)/.exec(userAgent)\n || /(linux)/.exec(userAgent)\n || /(cros)/.exec(userAgent)\n // TODO: Remove BlackBerry detection. BlackBerry OS, BlackBerry 10, and BlackBerry PlayBook OS\n // is officially dead as of January 4, 2022 (https://www.blackberry.com/us/en/support/devices/end-of-life)\n || /(playbook)/.exec(userAgent)\n || /(bb)/.exec(userAgent)\n || /(blackberry)/.exec(userAgent)\n || []\n}\n\nconst hasTouch = __QUASAR_SSR_SERVER__\n ? false\n : 'ontouchstart' in window || window.navigator.maxTouchPoints > 0\n\nfunction applyIosCorrection (is) {\n iosCorrection = { is: { ...is } }\n\n delete is.mac\n delete is.desktop\n\n const platform = Math.min(window.innerHeight, window.innerWidth) > 414\n ? 'ipad'\n : 'iphone'\n\n Object.assign(is, {\n mobile: true,\n ios: true,\n platform,\n [ platform ]: true\n })\n}\n\nfunction getPlatform (UA) {\n const\n userAgent = UA.toLowerCase(),\n platformMatch = getPlatformMatch(userAgent),\n matched = getMatch(userAgent, platformMatch),\n browser = {}\n\n if (matched.browser) {\n browser[ matched.browser ] = true\n browser.version = matched.version\n browser.versionNumber = parseInt(matched.versionNumber, 10)\n }\n\n if (matched.platform) {\n browser[ matched.platform ] = true\n }\n\n const knownMobiles = browser.android\n || browser.ios\n || browser.bb\n || browser.blackberry\n || browser.ipad\n || browser.iphone\n || browser.ipod\n || browser.kindle\n || browser.playbook\n || browser.silk\n || browser[ 'windows phone' ]\n\n // These are all considered mobile platforms, meaning they run a mobile browser\n if (knownMobiles === true || userAgent.indexOf('mobile') > -1) {\n browser.mobile = true\n\n if (browser.edga || browser.edgios) {\n browser.edge = true\n matched.browser = 'edge'\n }\n else if (browser.crios) {\n browser.chrome = true\n matched.browser = 'chrome'\n }\n else if (browser.fxios) {\n browser.firefox = true\n matched.browser = 'firefox'\n }\n }\n // If it's not mobile we should consider it's desktop platform, meaning it runs a desktop browser\n // It's a workaround for anonymized user agents\n // (browser.cros || browser.mac || browser.linux || browser.win)\n else {\n browser.desktop = true\n }\n\n // Set iOS if on iPod, iPad or iPhone\n if (browser.ipod || browser.ipad || browser.iphone) {\n browser.ios = true\n }\n\n if (browser[ 'windows phone' ]) {\n browser.winphone = true\n delete browser[ 'windows phone' ]\n }\n\n // TODO: The assumption about WebKit based browsers below is not completely accurate.\n // Google released Blink(a fork of WebKit) engine on April 3, 2013, which is really different than WebKit today.\n // Today, one might want to check for WebKit to deal with its bugs, which is used on all browsers on iOS, and Safari browser on all platforms.\n\n // Chrome, Opera 15+, Vivaldi and Safari are webkit based browsers\n if (\n browser.chrome\n || browser.opr\n || browser.safari\n || browser.vivaldi\n // we expect unknown, non iOS mobile browsers to be webkit based\n || (\n browser.mobile === true\n && browser.ios !== true\n && knownMobiles !== true\n )\n ) {\n browser.webkit = true\n }\n\n // TODO: (Qv3) rename the terms 'edge' to 'edge legacy'(or remove it) then 'edge chromium' to 'edge' to match with the known up-to-date terms\n // Microsoft Edge is the new Chromium-based browser. Microsoft Edge Legacy is the old EdgeHTML-based browser (EOL: March 9, 2021).\n if (browser.edg) {\n matched.browser = 'edgechromium'\n browser.edgeChromium = true\n }\n\n // Blackberry browsers are marked as Safari on BlackBerry\n if ((browser.safari && browser.blackberry) || browser.bb) {\n matched.browser = 'blackberry'\n browser.blackberry = true\n }\n\n // Playbook browsers are marked as Safari on Playbook\n if (browser.safari && browser.playbook) {\n matched.browser = 'playbook'\n browser.playbook = true\n }\n\n // Opera 15+ are identified as opr\n if (browser.opr) {\n matched.browser = 'opera'\n browser.opera = true\n }\n\n // Stock Android browsers are marked as Safari on Android.\n if (browser.safari && browser.android) {\n matched.browser = 'android'\n browser.android = true\n }\n\n // Kindle browsers are marked as Safari on Kindle\n if (browser.safari && browser.kindle) {\n matched.browser = 'kindle'\n browser.kindle = true\n }\n\n // Kindle Silk browsers are marked as Safari on Kindle\n if (browser.safari && browser.silk) {\n matched.browser = 'silk'\n browser.silk = true\n }\n\n if (browser.vivaldi) {\n matched.browser = 'vivaldi'\n browser.vivaldi = true\n }\n\n // Assign the name and platform variable\n browser.name = matched.browser\n browser.platform = matched.platform\n\n if (__QUASAR_SSR_SERVER__ !== true) {\n if (userAgent.indexOf('electron') > -1) {\n browser.electron = true\n }\n else if (document.location.href.indexOf('-extension://') > -1) {\n browser.bex = true\n }\n else {\n if (window.Capacitor !== void 0) {\n browser.capacitor = true\n browser.nativeMobile = true\n browser.nativeMobileWrapper = 'capacitor'\n }\n else if (window._cordovaNative !== void 0 || window.cordova !== void 0) {\n browser.cordova = true\n browser.nativeMobile = true\n browser.nativeMobileWrapper = 'cordova'\n }\n\n if (\n hasTouch === true\n && browser.mac === true\n && (\n (browser.desktop === true && browser.safari === true)\n || (\n browser.nativeMobile === true\n && browser.android !== true\n && browser.ios !== true\n && browser.ipad !== true\n )\n )\n ) {\n /*\n * Correction needed for iOS since the default\n * setting on iPad is to request desktop view; if we have\n * touch support and the user agent says it's a\n * desktop, we infer that it's an iPhone/iPad with desktop view\n * so we must fix the false positives\n */\n applyIosCorrection(browser)\n }\n }\n }\n\n return browser\n}\n\nconst userAgent = __QUASAR_SSR_SERVER__\n ? ''\n : navigator.userAgent || navigator.vendor || window.opera\n\nconst ssrClient = {\n has: {\n touch: false,\n webStorage: false\n },\n within: { iframe: false }\n}\n\n// We export \"client\" for hydration error-free parts,\n// like touch directives who do not (and must NOT) wait\n// for the client takeover;\n// Do NOT import this directly in your app, unless you really know\n// what you are doing.\nexport const client = __QUASAR_SSR_SERVER__\n ? ssrClient\n : {\n userAgent,\n is: getPlatform(userAgent),\n has: {\n touch: hasTouch\n },\n within: {\n iframe: window.self !== window.top\n }\n }\n\nconst Platform = {\n install (opts) {\n const { $q } = opts\n\n if (__QUASAR_SSR_SERVER__) {\n $q.platform = this.parseSSR(opts.ssrContext)\n }\n else if (isRuntimeSsrPreHydration.value === true) {\n // takeover should increase accuracy for\n // the rest of the props; we also avoid\n // hydration errors\n opts.onSSRHydrated.push(() => {\n isRuntimeSsrPreHydration.value = false\n Object.assign($q.platform, client)\n iosCorrection = void 0\n })\n\n // we need to make platform reactive\n // for the takeover phase\n $q.platform = reactive(this)\n }\n else {\n $q.platform = this\n }\n }\n}\n\nif (__QUASAR_SSR_SERVER__) {\n Platform.parseSSR = (ssrContext) => {\n const userAgent = ssrContext.req.headers[ 'user-agent' ] || ssrContext.req.headers[ 'User-Agent' ] || ''\n return {\n ...client,\n userAgent,\n is: getPlatform(userAgent)\n }\n }\n}\nelse {\n // do not access window.localStorage without\n // devland actually using it as this will get\n // reported under \"Cookies\" in Google Chrome\n let hasWebStorage\n\n injectProp(client.has, 'webStorage', () => {\n if (hasWebStorage !== void 0) {\n return hasWebStorage\n }\n\n try {\n if (window.localStorage) {\n hasWebStorage = true\n return true\n }\n }\n catch (e) {}\n\n hasWebStorage = false\n return false\n })\n\n iosEmulated = client.is.ios === true\n && window.navigator.vendor.toLowerCase().indexOf('apple') === -1\n\n if (isRuntimeSsrPreHydration.value === true) {\n // must match with server-side before\n // client taking over in order to prevent\n // hydration errors\n Object.assign(Platform, client, iosCorrection, ssrClient)\n }\n else {\n Object.assign(Platform, client)\n }\n}\n\nexport default Platform\n","export default function (fn, wait = 250, immediate) {\n let timeout\n\n function debounced (/* ...args */) {\n const args = arguments\n\n const later = () => {\n timeout = void 0\n if (immediate !== true) {\n fn.apply(this, args)\n }\n }\n\n clearTimeout(timeout)\n if (immediate === true && timeout === void 0) {\n fn.apply(this, args)\n }\n timeout = setTimeout(later, wait)\n }\n\n debounced.cancel = () => {\n clearTimeout(timeout)\n }\n\n return debounced\n}\n","import { isRef } from 'vue'\n\nexport function offset (el) {\n if (el === window) {\n return { top: 0, left: 0 }\n }\n const { top, left } = el.getBoundingClientRect()\n return { top, left }\n}\n\nexport function style (el, property) {\n return window.getComputedStyle(el).getPropertyValue(property)\n}\n\nexport function height (el) {\n return el === window\n ? window.innerHeight\n : el.getBoundingClientRect().height\n}\n\nexport function width (el) {\n return el === window\n ? window.innerWidth\n : el.getBoundingClientRect().width\n}\n\nexport function css (element, css) {\n const style = element.style\n\n for (const prop in css) {\n style[ prop ] = css[ prop ]\n }\n}\n\nexport function cssBatch (elements, style) {\n elements.forEach(el => css(el, style))\n}\n\nexport function ready (fn) {\n if (typeof fn !== 'function') {\n return\n }\n\n if (document.readyState !== 'loading') {\n return fn()\n }\n\n document.addEventListener('DOMContentLoaded', fn, false)\n}\n\n// internal\nexport function getElement (el) {\n if (el === void 0 || el === null) {\n return void 0\n }\n\n if (typeof el === 'string') {\n try {\n return document.querySelector(el) || void 0\n }\n catch (err) {\n return void 0\n }\n }\n\n const target = isRef(el) === true\n ? el.value\n : el\n\n if (target) {\n return target.$el || target\n }\n}\n\n// internal\nexport function childHasFocus (el, focusedEl) {\n if (el === void 0 || el === null || el.contains(focusedEl) === true) {\n return true\n }\n\n for (let next = el.nextElementSibling; next !== null; next = next.nextElementSibling) {\n if (next.contains(focusedEl)) {\n return true\n }\n }\n\n return false\n}\n\nexport default {\n offset,\n style,\n height,\n width,\n css,\n cssBatch,\n ready\n}\n","export const listenOpts = {\n hasPassive: false,\n passiveCapture: true,\n notPassiveCapture: true\n}\n\ntry {\n const opts = Object.defineProperty({}, 'passive', {\n get () {\n Object.assign(listenOpts, {\n hasPassive: true,\n passive: { passive: true },\n notPassive: { passive: false },\n passiveCapture: { passive: true, capture: true },\n notPassiveCapture: { passive: false, capture: true }\n })\n }\n })\n window.addEventListener('qtest', null, opts)\n window.removeEventListener('qtest', null, opts)\n}\ncatch (e) {}\n\nexport function noop () {}\n\nexport function leftClick (e) {\n return e.button === 0\n}\n\nexport function middleClick (e) {\n return e.button === 1\n}\n\nexport function rightClick (e) {\n return e.button === 2\n}\n\nexport function position (e) {\n if (e.touches && e.touches[ 0 ]) {\n e = e.touches[ 0 ]\n }\n else if (e.changedTouches && e.changedTouches[ 0 ]) {\n e = e.changedTouches[ 0 ]\n }\n else if (e.targetTouches && e.targetTouches[ 0 ]) {\n e = e.targetTouches[ 0 ]\n }\n\n return {\n top: e.clientY,\n left: e.clientX\n }\n}\n\nexport function getEventPath (e) {\n if (e.path) {\n return e.path\n }\n if (e.composedPath) {\n return e.composedPath()\n }\n\n const path = []\n let el = e.target\n\n while (el) {\n path.push(el)\n\n if (el.tagName === 'HTML') {\n path.push(document)\n path.push(window)\n return path\n }\n\n el = el.parentElement\n }\n}\n\n// Reasonable defaults\nconst\n LINE_HEIGHT = 40,\n PAGE_HEIGHT = 800\n\nexport function getMouseWheelDistance (e) {\n let x = e.deltaX, y = e.deltaY\n\n if ((x || y) && e.deltaMode) {\n const multiplier = e.deltaMode === 1 ? LINE_HEIGHT : PAGE_HEIGHT\n x *= multiplier\n y *= multiplier\n }\n\n if (e.shiftKey && !x) {\n [ y, x ] = [ x, y ]\n }\n\n return { x, y }\n}\n\nexport function stop (e) {\n e.stopPropagation()\n}\n\nexport function prevent (e) {\n e.cancelable !== false && e.preventDefault()\n}\n\nexport function stopAndPrevent (e) {\n e.cancelable !== false && e.preventDefault()\n e.stopPropagation()\n}\n\nexport function preventDraggable (el, status) {\n if (el === void 0 || (status === true && el.__dragPrevented === true)) {\n return\n }\n\n const fn = status === true\n ? el => {\n el.__dragPrevented = true\n el.addEventListener('dragstart', prevent, listenOpts.notPassiveCapture)\n }\n : el => {\n delete el.__dragPrevented\n el.removeEventListener('dragstart', prevent, listenOpts.notPassiveCapture)\n }\n\n el.querySelectorAll('a, img').forEach(fn)\n}\n\nexport function addEvt (ctx, targetName, events) {\n const name = `__q_${ targetName }_evt`\n\n ctx[ name ] = ctx[ name ] !== void 0\n ? ctx[ name ].concat(events)\n : events\n\n events.forEach(evt => {\n evt[ 0 ].addEventListener(evt[ 1 ], ctx[ evt[ 2 ] ], listenOpts[ evt[ 3 ] ])\n })\n}\n\nexport function cleanEvt (ctx, targetName) {\n const name = `__q_${ targetName }_evt`\n\n if (ctx[ name ] !== void 0) {\n ctx[ name ].forEach(evt => {\n evt[ 0 ].removeEventListener(evt[ 1 ], ctx[ evt[ 2 ] ], listenOpts[ evt[ 3 ] ])\n })\n ctx[ name ] = void 0\n }\n}\n\n/*\n * also update /types/utils/event.d.ts\n */\n\nexport default {\n listenOpts,\n leftClick,\n middleClick,\n rightClick,\n position,\n getEventPath,\n getMouseWheelDistance,\n stop,\n prevent,\n stopAndPrevent,\n preventDraggable\n}\n","import { defineComponent, markRaw } from 'vue'\n\nexport const createComponent = raw => markRaw(defineComponent(raw))\nexport const createDirective = raw => markRaw(raw)\n","\nimport { reactive } from 'vue'\nimport { injectProp } from './inject-obj-prop'\n\nexport default __QUASAR_SSR_SERVER__\n ? (state, plugin) => {\n Object.assign(plugin, state)\n return plugin\n }\n : (state, plugin) => {\n const reactiveState = reactive(state)\n\n for (const name in state) {\n injectProp(\n plugin,\n name,\n () => reactiveState[ name ],\n val => { reactiveState[ name ] = val }\n )\n }\n\n return plugin\n }\n","let queue = []\nlet waitFlags = []\n\nfunction clearFlag (flag) {\n waitFlags = waitFlags.filter(entry => entry !== flag)\n}\n\nexport function addFocusWaitFlag (flag) {\n clearFlag(flag)\n waitFlags.push(flag)\n}\n\nexport function removeFocusWaitFlag (flag) {\n clearFlag(flag)\n\n if (waitFlags.length === 0 && queue.length > 0) {\n // only call last focus handler (can't focus multiple things at once)\n queue[ queue.length - 1 ]()\n queue = []\n }\n}\n\nexport function addFocusFn (fn) {\n if (waitFlags.length === 0) {\n fn()\n }\n else {\n queue.push(fn)\n }\n}\n\nexport function removeFocusFn (fn) {\n queue = queue.filter(entry => entry !== fn)\n}\n","\nexport const globalConfig = {}\nexport let globalConfigIsFrozen = false\n\nexport function freezeGlobalConfig () {\n globalConfigIsFrozen = true\n}\n","import { globalConfig } from './global-config.js'\n\nconst globalNodes = []\nlet target = __QUASAR_SSR_SERVER__\n ? void 0\n : document.body\n\nexport function createGlobalNode (id) {\n const el = document.createElement('div')\n\n if (id !== void 0) {\n el.id = id\n }\n\n if (globalConfig.globalNodes !== void 0) {\n const cls = globalConfig.globalNodes.class\n if (cls !== void 0) {\n el.className = cls\n }\n }\n\n target.appendChild(el)\n globalNodes.push(el)\n\n return el\n}\n\nexport function removeGlobalNode (el) {\n globalNodes.splice(globalNodes.indexOf(el), 1)\n el.remove()\n}\n\nexport function changeGlobalNodesTarget (el) {\n if (el !== target) {\n target = el\n\n globalNodes.forEach(el => {\n if (el.contains(target) === false) {\n target.appendChild(el)\n }\n })\n }\n}\n","export function injectProp (target, propName, get, set) {\n Object.defineProperty(target, propName, {\n get,\n set,\n enumerable: true\n })\n}\n\nexport function injectMultipleProps (target, props) {\n for (const key in props) {\n injectProp(target, key, props[ key ])\n }\n}\n","const\n hasMap = typeof Map === 'function',\n hasSet = typeof Set === 'function',\n hasArrayBuffer = typeof ArrayBuffer === 'function'\n\nexport function isDeepEqual (a, b) {\n if (a === b) {\n return true\n }\n\n if (a !== null && b !== null && typeof a === 'object' && typeof b === 'object') {\n if (a.constructor !== b.constructor) {\n return false\n }\n\n let length, i\n\n if (a.constructor === Array) {\n length = a.length\n\n if (length !== b.length) {\n return false\n }\n\n for (i = length; i-- !== 0;) {\n if (isDeepEqual(a[ i ], b[ i ]) !== true) {\n return false\n }\n }\n\n return true\n }\n\n if (hasMap === true && a.constructor === Map) {\n if (a.size !== b.size) {\n return false\n }\n\n i = a.entries().next()\n while (i.done !== true) {\n if (b.has(i.value[ 0 ]) !== true) {\n return false\n }\n i = i.next()\n }\n\n i = a.entries().next()\n while (i.done !== true) {\n if (isDeepEqual(i.value[ 1 ], b.get(i.value[ 0 ])) !== true) {\n return false\n }\n i = i.next()\n }\n\n return true\n }\n\n if (hasSet === true && a.constructor === Set) {\n if (a.size !== b.size) {\n return false\n }\n\n i = a.entries().next()\n while (i.done !== true) {\n if (b.has(i.value[ 0 ]) !== true) {\n return false\n }\n i = i.next()\n }\n\n return true\n }\n\n if (hasArrayBuffer === true && a.buffer != null && a.buffer.constructor === ArrayBuffer) {\n length = a.length\n\n if (length !== b.length) {\n return false\n }\n\n for (i = length; i-- !== 0;) {\n if (a[ i ] !== b[ i ]) {\n return false\n }\n }\n\n return true\n }\n\n if (a.constructor === RegExp) {\n return a.source === b.source && a.flags === b.flags\n }\n\n if (a.valueOf !== Object.prototype.valueOf) {\n return a.valueOf() === b.valueOf()\n }\n\n if (a.toString !== Object.prototype.toString) {\n return a.toString() === b.toString()\n }\n\n const keys = Object.keys(a).filter(key => a[ key ] !== void 0)\n length = keys.length\n\n if (length !== Object.keys(b).filter(key => b[ key ] !== void 0).length) {\n return false\n }\n\n for (i = length; i-- !== 0;) {\n const key = keys[ i ]\n if (isDeepEqual(a[ key ], b[ key ]) !== true) {\n return false\n }\n }\n\n return true\n }\n\n // true if both NaN, false otherwise\n return a !== a && b !== b // eslint-disable-line no-self-compare\n}\n\n// not perfect, but what we ARE interested is for Arrays not to slip in\n// as spread operator will mess things up in various areas\nexport function isObject (v) {\n return v !== null && typeof v === 'object' && Array.isArray(v) !== true\n}\n\nexport function isDate (v) {\n return Object.prototype.toString.call(v) === '[object Date]'\n}\n\nexport function isRegexp (v) {\n return Object.prototype.toString.call(v) === '[object RegExp]'\n}\n\nexport function isNumber (v) {\n return typeof v === 'number' && isFinite(v)\n}\n","let lastKeyCompositionStatus = false\n\nexport function onKeyDownComposition (evt) {\n lastKeyCompositionStatus = evt.isComposing === true\n}\n\nexport function shouldIgnoreKey (evt) {\n return lastKeyCompositionStatus === true\n || evt !== Object(evt)\n || evt.isComposing === true\n || evt.qKeyEvent === true\n}\n\nexport function isKeyCode (evt, keyCodes) {\n return shouldIgnoreKey(evt) === true\n ? false\n : [].concat(keyCodes).includes(evt.keyCode)\n}\n","import { h, withDirectives } from 'vue'\n\nexport function hSlot (slot, otherwise) {\n return slot !== void 0\n ? slot() || otherwise\n : otherwise\n}\n\nexport function hUniqueSlot (slot, otherwise) {\n if (slot !== void 0) {\n const vnode = slot()\n if (vnode !== void 0 && vnode !== null) {\n return vnode.slice()\n }\n }\n\n return otherwise\n}\n\n/**\n * Source definitely exists,\n * so it's merged with the possible slot\n */\nexport function hMergeSlot (slot, source) {\n return slot !== void 0\n ? source.concat(slot())\n : source\n}\n\n/**\n * Merge with possible slot,\n * even if source might not exist\n */\nexport function hMergeSlotSafely (slot, source) {\n if (slot === void 0) {\n return source\n }\n\n return source !== void 0\n ? source.concat(slot())\n : slot()\n}\n\n/*\n * (String) key - unique vnode key\n * (Boolean) condition - should change ONLY when adding/removing directive\n */\nexport function hDir (\n tag,\n data,\n children,\n key,\n condition,\n getDirsFn\n) {\n data.key = key + condition\n\n const vnode = h(tag, data, children)\n\n return condition === true\n ? withDirectives(vnode, getDirsFn())\n : vnode\n}\n","export const quasarKey = '_q_'\nexport const timelineKey = '_q_t_'\nexport const stepperKey = '_q_s_'\nexport const layoutKey = '_q_l_'\nexport const pageContainerKey = '_q_pc_'\nexport const fabKey = '_q_f_'\nexport const formKey = '_q_fo_'\nexport const tabsKey = '_q_tabs_'\nexport const uploaderKey = '_q_u_'\n","// used directly by docs too\nexport function getParentVm (vm) {\n if (Object(vm.$parent) === vm.$parent) {\n return vm.$parent\n }\n\n vm = vm.$.parent\n\n while (Object(vm) === vm) {\n if (Object(vm.proxy) === vm.proxy) {\n return vm.proxy\n }\n\n vm = vm.parent\n }\n}\n\nfunction fillNormalizedVNodes (children, vnode) {\n if (typeof vnode.type === 'symbol') {\n if (Array.isArray(vnode.children) === true) {\n vnode.children.forEach(child => {\n fillNormalizedVNodes(children, child)\n })\n }\n }\n else {\n children.add(vnode)\n }\n}\n\n// vnodes from rendered in advanced slots\nexport function getNormalizedVNodes (vnodes) {\n const children = new Set()\n\n vnodes.forEach(vnode => {\n fillNormalizedVNodes(children, vnode)\n })\n\n return Array.from(children)\n}\n\nexport function vmHasRouter (vm) {\n return vm.appContext.config.globalProperties.$router !== void 0\n}\n","import { css, getElement } from './dom.js'\n\nconst scrollTargets = __QUASAR_SSR_SERVER__\n ? []\n : [ null, document, document.body, document.scrollingElement, document.documentElement ]\n\nexport function getScrollTarget (el, targetEl) {\n let target = getElement(targetEl)\n\n if (target === void 0) {\n if (el === void 0 || el === null) {\n return window\n }\n\n target = el.closest('.scroll,.scroll-y,.overflow-auto')\n }\n\n return scrollTargets.includes(target)\n ? window\n : target\n}\n\nexport function getScrollHeight (el) {\n return (el === window ? document.body : el).scrollHeight\n}\n\nexport function getScrollWidth (el) {\n return (el === window ? document.body : el).scrollWidth\n}\n\nexport function getVerticalScrollPosition (scrollTarget) {\n return scrollTarget === window\n ? window.pageYOffset || window.scrollY || document.body.scrollTop || 0\n : scrollTarget.scrollTop\n}\n\nexport function getHorizontalScrollPosition (scrollTarget) {\n return scrollTarget === window\n ? window.pageXOffset || window.scrollX || document.body.scrollLeft || 0\n : scrollTarget.scrollLeft\n}\n\nexport function animVerticalScrollTo (el, to, duration = 0 /* , prevTime */) {\n const prevTime = arguments[ 3 ] === void 0 ? performance.now() : arguments[ 3 ]\n const pos = getVerticalScrollPosition(el)\n\n if (duration <= 0) {\n if (pos !== to) {\n setScroll(el, to)\n }\n return\n }\n\n requestAnimationFrame(nowTime => {\n const frameTime = nowTime - prevTime\n const newPos = pos + (to - pos) / Math.max(frameTime, duration) * frameTime\n setScroll(el, newPos)\n if (newPos !== to) {\n animVerticalScrollTo(el, to, duration - frameTime, nowTime)\n }\n })\n}\n\nexport function animHorizontalScrollTo (el, to, duration = 0 /* , prevTime */) {\n const prevTime = arguments[ 3 ] === void 0 ? performance.now() : arguments[ 3 ]\n const pos = getHorizontalScrollPosition(el)\n\n if (duration <= 0) {\n if (pos !== to) {\n setHorizontalScroll(el, to)\n }\n return\n }\n\n requestAnimationFrame(nowTime => {\n const frameTime = nowTime - prevTime\n const newPos = pos + (to - pos) / Math.max(frameTime, duration) * frameTime\n setHorizontalScroll(el, newPos)\n if (newPos !== to) {\n animHorizontalScrollTo(el, to, duration - frameTime, nowTime)\n }\n })\n}\n\nfunction setScroll (scrollTarget, offset) {\n if (scrollTarget === window) {\n window.scrollTo(window.pageXOffset || window.scrollX || document.body.scrollLeft || 0, offset)\n return\n }\n scrollTarget.scrollTop = offset\n}\n\nfunction setHorizontalScroll (scrollTarget, offset) {\n if (scrollTarget === window) {\n window.scrollTo(offset, window.pageYOffset || window.scrollY || document.body.scrollTop || 0)\n return\n }\n scrollTarget.scrollLeft = offset\n}\n\nexport function setVerticalScrollPosition (scrollTarget, offset, duration) {\n if (duration) {\n animVerticalScrollTo(scrollTarget, offset, duration)\n return\n }\n setScroll(scrollTarget, offset)\n}\n\nexport function setHorizontalScrollPosition (scrollTarget, offset, duration) {\n if (duration) {\n animHorizontalScrollTo(scrollTarget, offset, duration)\n return\n }\n setHorizontalScroll(scrollTarget, offset)\n}\n\nlet size\nexport function getScrollbarWidth () {\n if (size !== undefined) {\n return size\n }\n\n const\n inner = document.createElement('p'),\n outer = document.createElement('div')\n\n css(inner, {\n width: '100%',\n height: '200px'\n })\n css(outer, {\n position: 'absolute',\n top: '0px',\n left: '0px',\n visibility: 'hidden',\n width: '200px',\n height: '150px',\n overflow: 'hidden'\n })\n\n outer.appendChild(inner)\n\n document.body.appendChild(outer)\n\n const w1 = inner.offsetWidth\n outer.style.overflow = 'scroll'\n let w2 = inner.offsetWidth\n\n if (w1 === w2) {\n w2 = outer.clientWidth\n }\n\n outer.remove()\n size = w1 - w2\n\n return size\n}\n\nexport function hasScrollbar (el, onY = true) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n\n return onY\n ? (\n el.scrollHeight > el.clientHeight && (\n el.classList.contains('scroll')\n || el.classList.contains('overflow-auto')\n || [ 'auto', 'scroll' ].includes(window.getComputedStyle(el)[ 'overflow-y' ])\n )\n )\n : (\n el.scrollWidth > el.clientWidth && (\n el.classList.contains('scroll')\n || el.classList.contains('overflow-auto')\n || [ 'auto', 'scroll' ].includes(window.getComputedStyle(el)[ 'overflow-x' ])\n )\n )\n}\n\nexport default {\n getScrollTarget,\n\n getScrollHeight,\n getScrollWidth,\n\n getVerticalScrollPosition,\n getHorizontalScrollPosition,\n\n animVerticalScrollTo,\n animHorizontalScrollTo,\n\n setVerticalScrollPosition,\n setHorizontalScrollPosition,\n\n getScrollbarWidth,\n hasScrollbar\n}\n","export default function setCssVar (propName, value, element = document.body) {\n if (typeof propName !== 'string') {\n throw new TypeError('Expected a string as propName')\n }\n if (typeof value !== 'string') {\n throw new TypeError('Expected a string as value')\n }\n if (!(element instanceof Element)) {\n throw new TypeError('Expected a DOM element')\n }\n\n element.style.setProperty(`--q-${ propName }`, value)\n}\n","import installQuasar from './install-quasar.js'\nimport lang from './lang.js'\nimport iconSet from './icon-set.js'\n\nexport default {\n version: __QUASAR_VERSION__,\n install: installQuasar,\n lang,\n iconSet\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","import { extend, isArray, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\r\n console.warn(`[Vue warn] ${msg}`, ...args);\r\n}\n\nlet activeEffectScope;\r\nclass EffectScope {\r\n constructor(detached = false) {\r\n /**\r\n * @internal\r\n */\r\n this.active = true;\r\n /**\r\n * @internal\r\n */\r\n this.effects = [];\r\n /**\r\n * @internal\r\n */\r\n this.cleanups = [];\r\n if (!detached && activeEffectScope) {\r\n this.parent = activeEffectScope;\r\n this.index =\r\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n }\r\n }\r\n run(fn) {\r\n if (this.active) {\r\n const currentEffectScope = activeEffectScope;\r\n try {\r\n activeEffectScope = this;\r\n return fn();\r\n }\r\n finally {\r\n activeEffectScope = currentEffectScope;\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`cannot run an inactive effect scope.`);\r\n }\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n on() {\r\n activeEffectScope = this;\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n off() {\r\n activeEffectScope = this.parent;\r\n }\r\n stop(fromParent) {\r\n if (this.active) {\r\n let i, l;\r\n for (i = 0, l = this.effects.length; i < l; i++) {\r\n this.effects[i].stop();\r\n }\r\n for (i = 0, l = this.cleanups.length; i < l; i++) {\r\n this.cleanups[i]();\r\n }\r\n if (this.scopes) {\r\n for (i = 0, l = this.scopes.length; i < l; i++) {\r\n this.scopes[i].stop(true);\r\n }\r\n }\r\n // nested scope, dereference from parent to avoid memory leaks\r\n if (this.parent && !fromParent) {\r\n // optimized O(1) removal\r\n const last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\nfunction recordEffectScope(effect, scope = activeEffectScope) {\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`onScopeDispose() is called when there is no active effect scope` +\r\n ` to be associated with.`);\r\n }\r\n}\n\nconst createDep = (effects) => {\r\n const dep = new Set(effects);\r\n dep.w = 0;\r\n dep.n = 0;\r\n return dep;\r\n};\r\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\r\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\r\nconst initDepMarkers = ({ deps }) => {\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].w |= trackOpBit; // set was tracked\r\n }\r\n }\r\n};\r\nconst finalizeDepMarkers = (effect) => {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n let ptr = 0;\r\n for (let i = 0; i < deps.length; i++) {\r\n const dep = deps[i];\r\n if (wasTracked(dep) && !newTracked(dep)) {\r\n dep.delete(effect);\r\n }\r\n else {\r\n deps[ptr++] = dep;\r\n }\r\n // clear bits\r\n dep.w &= ~trackOpBit;\r\n dep.n &= ~trackOpBit;\r\n }\r\n deps.length = ptr;\r\n }\r\n};\n\nconst targetMap = new WeakMap();\r\n// The number of effects currently being tracked recursively.\r\nlet effectTrackDepth = 0;\r\nlet trackOpBit = 1;\r\n/**\r\n * The bitwise track markers support at most 30 levels of recursion.\r\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\r\n * When recursion depth is greater, fall back to using a full cleanup.\r\n */\r\nconst maxMarkerBits = 30;\r\nlet activeEffect;\r\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\r\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\r\nclass ReactiveEffect {\r\n constructor(fn, scheduler = null, scope) {\r\n this.fn = fn;\r\n this.scheduler = scheduler;\r\n this.active = true;\r\n this.deps = [];\r\n this.parent = undefined;\r\n recordEffectScope(this, scope);\r\n }\r\n run() {\r\n if (!this.active) {\r\n return this.fn();\r\n }\r\n let parent = activeEffect;\r\n let lastShouldTrack = shouldTrack;\r\n while (parent) {\r\n if (parent === this) {\r\n return;\r\n }\r\n parent = parent.parent;\r\n }\r\n try {\r\n this.parent = activeEffect;\r\n activeEffect = this;\r\n shouldTrack = true;\r\n trackOpBit = 1 << ++effectTrackDepth;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n initDepMarkers(this);\r\n }\r\n else {\r\n cleanupEffect(this);\r\n }\r\n return this.fn();\r\n }\r\n finally {\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n finalizeDepMarkers(this);\r\n }\r\n trackOpBit = 1 << --effectTrackDepth;\r\n activeEffect = this.parent;\r\n shouldTrack = lastShouldTrack;\r\n this.parent = undefined;\r\n if (this.deferStop) {\r\n this.stop();\r\n }\r\n }\r\n }\r\n stop() {\r\n // stopped while running itself - defer the cleanup\r\n if (activeEffect === this) {\r\n this.deferStop = true;\r\n }\r\n else if (this.active) {\r\n cleanupEffect(this);\r\n if (this.onStop) {\r\n this.onStop();\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction cleanupEffect(effect) {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].delete(effect);\r\n }\r\n deps.length = 0;\r\n }\r\n}\r\nfunction effect(fn, options) {\r\n if (fn.effect) {\r\n fn = fn.effect.fn;\r\n }\r\n const _effect = new ReactiveEffect(fn);\r\n if (options) {\r\n extend(_effect, options);\r\n if (options.scope)\r\n recordEffectScope(_effect, options.scope);\r\n }\r\n if (!options || !options.lazy) {\r\n _effect.run();\r\n }\r\n const runner = _effect.run.bind(_effect);\r\n runner.effect = _effect;\r\n return runner;\r\n}\r\nfunction stop(runner) {\r\n runner.effect.stop();\r\n}\r\nlet shouldTrack = true;\r\nconst trackStack = [];\r\nfunction pauseTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = false;\r\n}\r\nfunction enableTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = true;\r\n}\r\nfunction resetTracking() {\r\n const last = trackStack.pop();\r\n shouldTrack = last === undefined ? true : last;\r\n}\r\nfunction track(target, type, key) {\r\n if (shouldTrack && activeEffect) {\r\n let depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n targetMap.set(target, (depsMap = new Map()));\r\n }\r\n let dep = depsMap.get(key);\r\n if (!dep) {\r\n depsMap.set(key, (dep = createDep()));\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { effect: activeEffect, target, type, key }\r\n : undefined;\r\n trackEffects(dep, eventInfo);\r\n }\r\n}\r\nfunction trackEffects(dep, debuggerEventExtraInfo) {\r\n let shouldTrack = false;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n if (!newTracked(dep)) {\r\n dep.n |= trackOpBit; // set newly tracked\r\n shouldTrack = !wasTracked(dep);\r\n }\r\n }\r\n else {\r\n // Full cleanup mode.\r\n shouldTrack = !dep.has(activeEffect);\r\n }\r\n if (shouldTrack) {\r\n dep.add(activeEffect);\r\n activeEffect.deps.push(dep);\r\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\r\n activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));\r\n }\r\n }\r\n}\r\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\r\n const depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n // never been tracked\r\n return;\r\n }\r\n let deps = [];\r\n if (type === \"clear\" /* CLEAR */) {\r\n // collection being cleared\r\n // trigger all effects for target\r\n deps = [...depsMap.values()];\r\n }\r\n else if (key === 'length' && isArray(target)) {\r\n depsMap.forEach((dep, key) => {\r\n if (key === 'length' || key >= newValue) {\r\n deps.push(dep);\r\n }\r\n });\r\n }\r\n else {\r\n // schedule runs for SET | ADD | DELETE\r\n if (key !== void 0) {\r\n deps.push(depsMap.get(key));\r\n }\r\n // also run for iteration key on ADD | DELETE | Map.SET\r\n switch (type) {\r\n case \"add\" /* ADD */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n else if (isIntegerKey(key)) {\r\n // new index added to array -> length changes\r\n deps.push(depsMap.get('length'));\r\n }\r\n break;\r\n case \"delete\" /* DELETE */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n break;\r\n case \"set\" /* SET */:\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n }\r\n break;\r\n }\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { target, type, key, newValue, oldValue, oldTarget }\r\n : undefined;\r\n if (deps.length === 1) {\r\n if (deps[0]) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(deps[0], eventInfo);\r\n }\r\n else {\r\n triggerEffects(deps[0]);\r\n }\r\n }\r\n }\r\n else {\r\n const effects = [];\r\n for (const dep of deps) {\r\n if (dep) {\r\n effects.push(...dep);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(createDep(effects), eventInfo);\r\n }\r\n else {\r\n triggerEffects(createDep(effects));\r\n }\r\n }\r\n}\r\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\r\n // spread into array for stabilization\r\n const effects = isArray(dep) ? dep : [...dep];\r\n for (const effect of effects) {\r\n if (effect.computed) {\r\n triggerEffect(effect, debuggerEventExtraInfo);\r\n }\r\n }\r\n for (const effect of effects) {\r\n if (!effect.computed) {\r\n triggerEffect(effect, debuggerEventExtraInfo);\r\n }\r\n }\r\n}\r\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\r\n if (effect !== activeEffect || effect.allowRecurse) {\r\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\r\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\r\n }\r\n if (effect.scheduler) {\r\n effect.scheduler();\r\n }\r\n else {\r\n effect.run();\r\n }\r\n }\r\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\r\nconst builtInSymbols = new Set(\r\n/*#__PURE__*/\r\nObject.getOwnPropertyNames(Symbol)\r\n // ios10.x Object.getOwnPropertyNames(Symbol) can enumerate 'arguments' and 'caller'\r\n // but accessing them on Symbol leads to TypeError because Symbol is a strict mode\r\n // function\r\n .filter(key => key !== 'arguments' && key !== 'caller')\r\n .map(key => Symbol[key])\r\n .filter(isSymbol));\r\nconst get = /*#__PURE__*/ createGetter();\r\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\r\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\r\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\r\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\r\nfunction createArrayInstrumentations() {\r\n const instrumentations = {};\r\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n const arr = toRaw(this);\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n track(arr, \"get\" /* GET */, i + '');\r\n }\r\n // we run the method using the original args first (which may be reactive)\r\n const res = arr[key](...args);\r\n if (res === -1 || res === false) {\r\n // if that didn't work, run it again using raw values.\r\n return arr[key](...args.map(toRaw));\r\n }\r\n else {\r\n return res;\r\n }\r\n };\r\n });\r\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n pauseTracking();\r\n const res = toRaw(this)[key].apply(this, args);\r\n resetTracking();\r\n return res;\r\n };\r\n });\r\n return instrumentations;\r\n}\r\nfunction createGetter(isReadonly = false, shallow = false) {\r\n return function get(target, key, receiver) {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_isShallow\" /* IS_SHALLOW */) {\r\n return shallow;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */ &&\r\n receiver ===\r\n (isReadonly\r\n ? shallow\r\n ? shallowReadonlyMap\r\n : readonlyMap\r\n : shallow\r\n ? shallowReactiveMap\r\n : reactiveMap).get(target)) {\r\n return target;\r\n }\r\n const targetIsArray = isArray(target);\r\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\r\n return Reflect.get(arrayInstrumentations, key, receiver);\r\n }\r\n const res = Reflect.get(target, key, receiver);\r\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\r\n return res;\r\n }\r\n if (!isReadonly) {\r\n track(target, \"get\" /* GET */, key);\r\n }\r\n if (shallow) {\r\n return res;\r\n }\r\n if (isRef(res)) {\r\n // ref unwrapping - skip unwrap for Array + integer key.\r\n return targetIsArray && isIntegerKey(key) ? res : res.value;\r\n }\r\n if (isObject(res)) {\r\n // Convert returned value into a proxy as well. we do the isObject check\r\n // here to avoid invalid value warning. Also need to lazy access readonly\r\n // and reactive here to avoid circular dependency.\r\n return isReadonly ? readonly(res) : reactive(res);\r\n }\r\n return res;\r\n };\r\n}\r\nconst set = /*#__PURE__*/ createSetter();\r\nconst shallowSet = /*#__PURE__*/ createSetter(true);\r\nfunction createSetter(shallow = false) {\r\n return function set(target, key, value, receiver) {\r\n let oldValue = target[key];\r\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\r\n return false;\r\n }\r\n if (!shallow && !isReadonly(value)) {\r\n if (!isShallow(value)) {\r\n value = toRaw(value);\r\n oldValue = toRaw(oldValue);\r\n }\r\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n }\r\n const hadKey = isArray(target) && isIntegerKey(key)\r\n ? Number(key) < target.length\r\n : hasOwn(target, key);\r\n const result = Reflect.set(target, key, value, receiver);\r\n // don't trigger if target is something up in the prototype chain of original\r\n if (target === toRaw(receiver)) {\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n }\r\n return result;\r\n };\r\n}\r\nfunction deleteProperty(target, key) {\r\n const hadKey = hasOwn(target, key);\r\n const oldValue = target[key];\r\n const result = Reflect.deleteProperty(target, key);\r\n if (result && hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction has(target, key) {\r\n const result = Reflect.has(target, key);\r\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\r\n track(target, \"has\" /* HAS */, key);\r\n }\r\n return result;\r\n}\r\nfunction ownKeys(target) {\r\n track(target, \"iterate\" /* ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\r\n return Reflect.ownKeys(target);\r\n}\r\nconst mutableHandlers = {\r\n get,\r\n set,\r\n deleteProperty,\r\n has,\r\n ownKeys\r\n};\r\nconst readonlyHandlers = {\r\n get: readonlyGet,\r\n set(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n },\r\n deleteProperty(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n }\r\n};\r\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\r\n get: shallowGet,\r\n set: shallowSet\r\n});\r\n// Props handlers are special in the sense that it should not unwrap top-level\r\n// refs (in order to allow refs to be explicitly passed down), but should\r\n// retain the reactivity of the normal readonly object.\r\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\r\n get: shallowReadonlyGet\r\n});\n\nconst toShallow = (value) => value;\r\nconst getProto = (v) => Reflect.getPrototypeOf(v);\r\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\r\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\r\n // of the value\r\n target = target[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (!isReadonly) {\r\n if (key !== rawKey) {\r\n track(rawTarget, \"get\" /* GET */, key);\r\n }\r\n track(rawTarget, \"get\" /* GET */, rawKey);\r\n }\r\n const { has } = getProto(rawTarget);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n if (has.call(rawTarget, key)) {\r\n return wrap(target.get(key));\r\n }\r\n else if (has.call(rawTarget, rawKey)) {\r\n return wrap(target.get(rawKey));\r\n }\r\n else if (target !== rawTarget) {\r\n // #3602 readonly(reactive(Map))\r\n // ensure that the nested reactive `Map` can do tracking for itself\r\n target.get(key);\r\n }\r\n}\r\nfunction has$1(key, isReadonly = false) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (!isReadonly) {\r\n if (key !== rawKey) {\r\n track(rawTarget, \"has\" /* HAS */, key);\r\n }\r\n track(rawTarget, \"has\" /* HAS */, rawKey);\r\n }\r\n return key === rawKey\r\n ? target.has(key)\r\n : target.has(key) || target.has(rawKey);\r\n}\r\nfunction size(target, isReadonly = false) {\r\n target = target[\"__v_raw\" /* RAW */];\r\n !isReadonly && track(toRaw(target), \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return Reflect.get(target, 'size', target);\r\n}\r\nfunction add(value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const proto = getProto(target);\r\n const hadKey = proto.has.call(target, value);\r\n if (!hadKey) {\r\n target.add(value);\r\n trigger(target, \"add\" /* ADD */, value, value);\r\n }\r\n return this;\r\n}\r\nfunction set$1(key, value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get.call(target, key);\r\n target.set(key, value);\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n return this;\r\n}\r\nfunction deleteEntry(key) {\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get ? get.call(target, key) : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.delete(key);\r\n if (hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction clear() {\r\n const target = toRaw(this);\r\n const hadItems = target.size !== 0;\r\n const oldTarget = (process.env.NODE_ENV !== 'production')\r\n ? isMap(target)\r\n ? new Map(target)\r\n : new Set(target)\r\n : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.clear();\r\n if (hadItems) {\r\n trigger(target, \"clear\" /* CLEAR */, undefined, undefined, oldTarget);\r\n }\r\n return result;\r\n}\r\nfunction createForEach(isReadonly, isShallow) {\r\n return function forEach(callback, thisArg) {\r\n const observed = this;\r\n const target = observed[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(rawTarget, \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return target.forEach((value, key) => {\r\n // important: make sure the callback is\r\n // 1. invoked with the reactive map as `this` and 3rd arg\r\n // 2. the value received should be a corresponding reactive/readonly.\r\n return callback.call(thisArg, wrap(value), wrap(key), observed);\r\n });\r\n };\r\n}\r\nfunction createIterableMethod(method, isReadonly, isShallow) {\r\n return function (...args) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const targetIsMap = isMap(rawTarget);\r\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\r\n const isKeyOnly = method === 'keys' && targetIsMap;\r\n const innerIterator = target[method](...args);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly &&\r\n track(rawTarget, \"iterate\" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\r\n // return a wrapped iterator which returns observed versions of the\r\n // values emitted from the real iterator\r\n return {\r\n // iterator protocol\r\n next() {\r\n const { value, done } = innerIterator.next();\r\n return done\r\n ? { value, done }\r\n : {\r\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\r\n done\r\n };\r\n },\r\n // iterable protocol\r\n [Symbol.iterator]() {\r\n return this;\r\n }\r\n };\r\n };\r\n}\r\nfunction createReadonlyMethod(type) {\r\n return function (...args) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\r\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\r\n }\r\n return type === \"delete\" /* DELETE */ ? false : this;\r\n };\r\n}\r\nfunction createInstrumentations() {\r\n const mutableInstrumentations = {\r\n get(key) {\r\n return get$1(this, key);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, false)\r\n };\r\n const shallowInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, false, true);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, true)\r\n };\r\n const readonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, false)\r\n };\r\n const shallowReadonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, true)\r\n };\r\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\r\n iteratorMethods.forEach(method => {\r\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\r\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\r\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\r\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\r\n });\r\n return [\r\n mutableInstrumentations,\r\n readonlyInstrumentations,\r\n shallowInstrumentations,\r\n shallowReadonlyInstrumentations\r\n ];\r\n}\r\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\r\nfunction createInstrumentationGetter(isReadonly, shallow) {\r\n const instrumentations = shallow\r\n ? isReadonly\r\n ? shallowReadonlyInstrumentations\r\n : shallowInstrumentations\r\n : isReadonly\r\n ? readonlyInstrumentations\r\n : mutableInstrumentations;\r\n return (target, key, receiver) => {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */) {\r\n return target;\r\n }\r\n return Reflect.get(hasOwn(instrumentations, key) && key in target\r\n ? instrumentations\r\n : target, key, receiver);\r\n };\r\n}\r\nconst mutableCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\r\n};\r\nconst shallowCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\r\n};\r\nconst readonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\r\n};\r\nconst shallowReadonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\r\n};\r\nfunction checkIdentityKeys(target, has, key) {\r\n const rawKey = toRaw(key);\r\n if (rawKey !== key && has.call(target, rawKey)) {\r\n const type = toRawType(target);\r\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\r\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\r\n `which can lead to inconsistencies. ` +\r\n `Avoid differentiating between the raw and reactive versions ` +\r\n `of an object and only use the reactive version if possible.`);\r\n }\r\n}\n\nconst reactiveMap = new WeakMap();\r\nconst shallowReactiveMap = new WeakMap();\r\nconst readonlyMap = new WeakMap();\r\nconst shallowReadonlyMap = new WeakMap();\r\nfunction targetTypeMap(rawType) {\r\n switch (rawType) {\r\n case 'Object':\r\n case 'Array':\r\n return 1 /* COMMON */;\r\n case 'Map':\r\n case 'Set':\r\n case 'WeakMap':\r\n case 'WeakSet':\r\n return 2 /* COLLECTION */;\r\n default:\r\n return 0 /* INVALID */;\r\n }\r\n}\r\nfunction getTargetType(value) {\r\n return value[\"__v_skip\" /* SKIP */] || !Object.isExtensible(value)\r\n ? 0 /* INVALID */\r\n : targetTypeMap(toRawType(value));\r\n}\r\nfunction reactive(target) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (isReadonly(target)) {\r\n return target;\r\n }\r\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\r\n}\r\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\r\n}\r\n/**\r\n * Creates a readonly copy of the original object. Note the returned copy is not\r\n * made reactive, but `readonly` can be called on an already reactive object.\r\n */\r\nfunction readonly(target) {\r\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\r\n}\r\n/**\r\n * Returns a reactive-copy of the original object, where only the root level\r\n * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n * returned properties.\r\n * This is used for creating the props proxy object for stateful components.\r\n */\r\nfunction shallowReadonly(target) {\r\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\r\n}\r\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\r\n if (!isObject(target)) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`value cannot be made reactive: ${String(target)}`);\r\n }\r\n return target;\r\n }\r\n // target is already a Proxy, return it.\r\n // exception: calling readonly() on a reactive object\r\n if (target[\"__v_raw\" /* RAW */] &&\r\n !(isReadonly && target[\"__v_isReactive\" /* IS_REACTIVE */])) {\r\n return target;\r\n }\r\n // target already has corresponding Proxy\r\n const existingProxy = proxyMap.get(target);\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n // only specific value types can be observed.\r\n const targetType = getTargetType(target);\r\n if (targetType === 0 /* INVALID */) {\r\n return target;\r\n }\r\n const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers);\r\n proxyMap.set(target, proxy);\r\n return proxy;\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\" /* RAW */]);\r\n }\r\n return !!(value && value[\"__v_isReactive\" /* IS_REACTIVE */]);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value[\"__v_isReadonly\" /* IS_READONLY */]);\r\n}\r\nfunction isShallow(value) {\r\n return !!(value && value[\"__v_isShallow\" /* IS_SHALLOW */]);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n const raw = observed && observed[\"__v_raw\" /* RAW */];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* SKIP */, true);\r\n return value;\r\n}\r\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\r\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\r\n if (shouldTrack && activeEffect) {\r\n ref = toRaw(ref);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n trackEffects(ref.dep || (ref.dep = createDep()), {\r\n target: ref,\r\n type: \"get\" /* GET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n trackEffects(ref.dep || (ref.dep = createDep()));\r\n }\r\n }\r\n}\r\nfunction triggerRefValue(ref, newVal) {\r\n ref = toRaw(ref);\r\n if (ref.dep) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(ref.dep, {\r\n target: ref,\r\n type: \"set\" /* SET */,\r\n key: 'value',\r\n newValue: newVal\r\n });\r\n }\r\n else {\r\n triggerEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction isRef(r) {\r\n return !!(r && r.__v_isRef === true);\r\n}\r\nfunction ref(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n return new RefImpl(rawValue, shallow);\r\n}\r\nclass RefImpl {\r\n constructor(value, __v_isShallow) {\r\n this.__v_isShallow = __v_isShallow;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._rawValue = __v_isShallow ? value : toRaw(value);\r\n this._value = __v_isShallow ? value : toReactive(value);\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n return this._value;\r\n }\r\n set value(newVal) {\r\n newVal = this.__v_isShallow ? newVal : toRaw(newVal);\r\n if (hasChanged(newVal, this._rawValue)) {\r\n this._rawValue = newVal;\r\n this._value = this.__v_isShallow ? newVal : toReactive(newVal);\r\n triggerRefValue(this, newVal);\r\n }\r\n }\r\n}\r\nfunction triggerRef(ref) {\r\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nconst shallowUnwrapHandlers = {\r\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\r\n set: (target, key, value, receiver) => {\r\n const oldValue = target[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n else {\r\n return Reflect.set(target, key, value, receiver);\r\n }\r\n }\r\n};\r\nfunction proxyRefs(objectWithRefs) {\r\n return isReactive(objectWithRefs)\r\n ? objectWithRefs\r\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\r\n}\r\nclass CustomRefImpl {\r\n constructor(factory) {\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\r\n this._get = get;\r\n this._set = set;\r\n }\r\n get value() {\r\n return this._get();\r\n }\r\n set value(newVal) {\r\n this._set(newVal);\r\n }\r\n}\r\nfunction customRef(factory) {\r\n return new CustomRefImpl(factory);\r\n}\r\nfunction toRefs(object) {\r\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\r\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\r\n }\r\n const ret = isArray(object) ? new Array(object.length) : {};\r\n for (const key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nclass ObjectRefImpl {\r\n constructor(_object, _key, _defaultValue) {\r\n this._object = _object;\r\n this._key = _key;\r\n this._defaultValue = _defaultValue;\r\n this.__v_isRef = true;\r\n }\r\n get value() {\r\n const val = this._object[this._key];\r\n return val === undefined ? this._defaultValue : val;\r\n }\r\n set value(newVal) {\r\n this._object[this._key] = newVal;\r\n }\r\n}\r\nfunction toRef(object, key, defaultValue) {\r\n const val = object[key];\r\n return isRef(val)\r\n ? val\r\n : new ObjectRefImpl(object, key, defaultValue);\r\n}\n\nclass ComputedRefImpl {\r\n constructor(getter, _setter, isReadonly, isSSR) {\r\n this._setter = _setter;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._dirty = true;\r\n this.effect = new ReactiveEffect(getter, () => {\r\n if (!this._dirty) {\r\n this._dirty = true;\r\n triggerRefValue(this);\r\n }\r\n });\r\n this.effect.computed = this;\r\n this.effect.active = this._cacheable = !isSSR;\r\n this[\"__v_isReadonly\" /* IS_READONLY */] = isReadonly;\r\n }\r\n get value() {\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n const self = toRaw(this);\r\n trackRefValue(self);\r\n if (self._dirty || !self._cacheable) {\r\n self._dirty = false;\r\n self._value = self.effect.run();\r\n }\r\n return self._value;\r\n }\r\n set value(newValue) {\r\n this._setter(newValue);\r\n }\r\n}\r\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\r\n let getter;\r\n let setter;\r\n const onlyGetter = isFunction(getterOrOptions);\r\n if (onlyGetter) {\r\n getter = getterOrOptions;\r\n setter = (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n console.warn('Write operation failed: computed value is readonly');\r\n }\r\n : NOOP;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\r\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\r\n cRef.effect.onTrack = debugOptions.onTrack;\r\n cRef.effect.onTrigger = debugOptions.onTrigger;\r\n }\r\n return cRef;\r\n}\n\nvar _a;\r\nconst tick = /*#__PURE__*/ Promise.resolve();\r\nconst queue = [];\r\nlet queued = false;\r\nconst scheduler = (fn) => {\r\n queue.push(fn);\r\n if (!queued) {\r\n queued = true;\r\n tick.then(flush);\r\n }\r\n};\r\nconst flush = () => {\r\n for (let i = 0; i < queue.length; i++) {\r\n queue[i]();\r\n }\r\n queue.length = 0;\r\n queued = false;\r\n};\r\nclass DeferredComputedRefImpl {\r\n constructor(getter) {\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this[_a] = true;\r\n let compareTarget;\r\n let hasCompareTarget = false;\r\n let scheduled = false;\r\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\r\n if (this.dep) {\r\n if (computedTrigger) {\r\n compareTarget = this._value;\r\n hasCompareTarget = true;\r\n }\r\n else if (!scheduled) {\r\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\r\n scheduled = true;\r\n hasCompareTarget = false;\r\n scheduler(() => {\r\n if (this.effect.active && this._get() !== valueToCompare) {\r\n triggerRefValue(this);\r\n }\r\n scheduled = false;\r\n });\r\n }\r\n // chained upstream computeds are notified synchronously to ensure\r\n // value invalidation in case of sync access; normal effects are\r\n // deferred to be triggered in scheduler.\r\n for (const e of this.dep) {\r\n if (e.computed instanceof DeferredComputedRefImpl) {\r\n e.scheduler(true /* computedTrigger */);\r\n }\r\n }\r\n }\r\n this._dirty = true;\r\n });\r\n this.effect.computed = this;\r\n }\r\n _get() {\r\n if (this._dirty) {\r\n this._dirty = false;\r\n return (this._value = this.effect.run());\r\n }\r\n return this._value;\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n return toRaw(this)._get();\r\n }\r\n}\r\n_a = \"__v_isReadonly\" /* IS_READONLY */;\r\nfunction deferredComputed(getter) {\r\n return new DeferredComputedRefImpl(getter);\r\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, hasOwn, isModelListener, hasChanged, remove, isObject, isSet, isMap, isPlainObject, invokeArrayFns, isBuiltInDirective, capitalize, isGloballyWhitelisted, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, NO, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\r\nfunction pushWarningContext(vnode) {\r\n stack.push(vnode);\r\n}\r\nfunction popWarningContext() {\r\n stack.pop();\r\n}\r\nfunction warn(msg, ...args) {\r\n // avoid props formatting or warn handler tracking deps that might be mutated\r\n // during patch, leading to infinite recursion.\r\n pauseTracking();\r\n const instance = stack.length ? stack[stack.length - 1].component : null;\r\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\r\n const trace = getComponentTrace();\r\n if (appWarnHandler) {\r\n callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [\r\n msg + args.join(''),\r\n instance && instance.proxy,\r\n trace\r\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\r\n .join('\\n'),\r\n trace\r\n ]);\r\n }\r\n else {\r\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\r\n /* istanbul ignore if */\r\n if (trace.length &&\r\n // avoid spamming console during tests\r\n !false) {\r\n warnArgs.push(`\\n`, ...formatTrace(trace));\r\n }\r\n console.warn(...warnArgs);\r\n }\r\n resetTracking();\r\n}\r\nfunction getComponentTrace() {\r\n let currentVNode = stack[stack.length - 1];\r\n if (!currentVNode) {\r\n return [];\r\n }\r\n // we can't just use the stack because it will be incomplete during updates\r\n // that did not start from the root. Re-construct the parent chain using\r\n // instance parent pointers.\r\n const normalizedStack = [];\r\n while (currentVNode) {\r\n const last = normalizedStack[0];\r\n if (last && last.vnode === currentVNode) {\r\n last.recurseCount++;\r\n }\r\n else {\r\n normalizedStack.push({\r\n vnode: currentVNode,\r\n recurseCount: 0\r\n });\r\n }\r\n const parentInstance = currentVNode.component && currentVNode.component.parent;\r\n currentVNode = parentInstance && parentInstance.vnode;\r\n }\r\n return normalizedStack;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatTrace(trace) {\r\n const logs = [];\r\n trace.forEach((entry, i) => {\r\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\r\n });\r\n return logs;\r\n}\r\nfunction formatTraceEntry({ vnode, recurseCount }) {\r\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\r\n const isRoot = vnode.component ? vnode.component.parent == null : false;\r\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\r\n const close = `>` + postfix;\r\n return vnode.props\r\n ? [open, ...formatProps(vnode.props), close]\r\n : [open + close];\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProps(props) {\r\n const res = [];\r\n const keys = Object.keys(props);\r\n keys.slice(0, 3).forEach(key => {\r\n res.push(...formatProp(key, props[key]));\r\n });\r\n if (keys.length > 3) {\r\n res.push(` ...`);\r\n }\r\n return res;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProp(key, value, raw) {\r\n if (isString(value)) {\r\n value = JSON.stringify(value);\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (typeof value === 'number' ||\r\n typeof value === 'boolean' ||\r\n value == null) {\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (isRef(value)) {\r\n value = formatProp(key, toRaw(value.value), true);\r\n return raw ? value : [`${key}=Ref<`, value, `>`];\r\n }\r\n else if (isFunction(value)) {\r\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\r\n }\r\n else {\r\n value = toRaw(value);\r\n return raw ? value : [`${key}=`, value];\r\n }\r\n}\n\nconst ErrorTypeStrings = {\r\n [\"sp\" /* SERVER_PREFETCH */]: 'serverPrefetch hook',\r\n [\"bc\" /* BEFORE_CREATE */]: 'beforeCreate hook',\r\n [\"c\" /* CREATED */]: 'created hook',\r\n [\"bm\" /* BEFORE_MOUNT */]: 'beforeMount hook',\r\n [\"m\" /* MOUNTED */]: 'mounted hook',\r\n [\"bu\" /* BEFORE_UPDATE */]: 'beforeUpdate hook',\r\n [\"u\" /* UPDATED */]: 'updated',\r\n [\"bum\" /* BEFORE_UNMOUNT */]: 'beforeUnmount hook',\r\n [\"um\" /* UNMOUNTED */]: 'unmounted hook',\r\n [\"a\" /* ACTIVATED */]: 'activated hook',\r\n [\"da\" /* DEACTIVATED */]: 'deactivated hook',\r\n [\"ec\" /* ERROR_CAPTURED */]: 'errorCaptured hook',\r\n [\"rtc\" /* RENDER_TRACKED */]: 'renderTracked hook',\r\n [\"rtg\" /* RENDER_TRIGGERED */]: 'renderTriggered hook',\r\n [0 /* SETUP_FUNCTION */]: 'setup function',\r\n [1 /* RENDER_FUNCTION */]: 'render function',\r\n [2 /* WATCH_GETTER */]: 'watcher getter',\r\n [3 /* WATCH_CALLBACK */]: 'watcher callback',\r\n [4 /* WATCH_CLEANUP */]: 'watcher cleanup function',\r\n [5 /* NATIVE_EVENT_HANDLER */]: 'native event handler',\r\n [6 /* COMPONENT_EVENT_HANDLER */]: 'component event handler',\r\n [7 /* VNODE_HOOK */]: 'vnode hook',\r\n [8 /* DIRECTIVE_HOOK */]: 'directive hook',\r\n [9 /* TRANSITION_HOOK */]: 'transition hook',\r\n [10 /* APP_ERROR_HANDLER */]: 'app errorHandler',\r\n [11 /* APP_WARN_HANDLER */]: 'app warnHandler',\r\n [12 /* FUNCTION_REF */]: 'ref function',\r\n [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',\r\n [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\r\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\r\n};\r\nfunction callWithErrorHandling(fn, instance, type, args) {\r\n let res;\r\n try {\r\n res = args ? fn(...args) : fn();\r\n }\r\n catch (err) {\r\n handleError(err, instance, type);\r\n }\r\n return res;\r\n}\r\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\r\n if (isFunction(fn)) {\r\n const res = callWithErrorHandling(fn, instance, type, args);\r\n if (res && isPromise(res)) {\r\n res.catch(err => {\r\n handleError(err, instance, type);\r\n });\r\n }\r\n return res;\r\n }\r\n const values = [];\r\n for (let i = 0; i < fn.length; i++) {\r\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\r\n }\r\n return values;\r\n}\r\nfunction handleError(err, instance, type, throwInDev = true) {\r\n const contextVNode = instance ? instance.vnode : null;\r\n if (instance) {\r\n let cur = instance.parent;\r\n // the exposed instance is the render proxy to keep it consistent with 2.x\r\n const exposedInstance = instance.proxy;\r\n // in production the hook receives only the error code\r\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\r\n while (cur) {\r\n const errorCapturedHooks = cur.ec;\r\n if (errorCapturedHooks) {\r\n for (let i = 0; i < errorCapturedHooks.length; i++) {\r\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\r\n return;\r\n }\r\n }\r\n }\r\n cur = cur.parent;\r\n }\r\n // app-level handling\r\n const appErrorHandler = instance.appContext.config.errorHandler;\r\n if (appErrorHandler) {\r\n callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\r\n return;\r\n }\r\n }\r\n logError(err, type, contextVNode, throwInDev);\r\n}\r\nfunction logError(err, type, contextVNode, throwInDev = true) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const info = ErrorTypeStrings[type];\r\n if (contextVNode) {\r\n pushWarningContext(contextVNode);\r\n }\r\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\r\n if (contextVNode) {\r\n popWarningContext();\r\n }\r\n // crash in dev by default so it's more noticeable\r\n if (throwInDev) {\r\n throw err;\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n }\r\n else {\r\n // recover in prod to reduce the impact on end-user\r\n console.error(err);\r\n }\r\n}\n\nlet isFlushing = false;\r\nlet isFlushPending = false;\r\nconst queue = [];\r\nlet flushIndex = 0;\r\nconst pendingPreFlushCbs = [];\r\nlet activePreFlushCbs = null;\r\nlet preFlushIndex = 0;\r\nconst pendingPostFlushCbs = [];\r\nlet activePostFlushCbs = null;\r\nlet postFlushIndex = 0;\r\nconst resolvedPromise = /*#__PURE__*/ Promise.resolve();\r\nlet currentFlushPromise = null;\r\nlet currentPreFlushParentJob = null;\r\nconst RECURSION_LIMIT = 100;\r\nfunction nextTick(fn) {\r\n const p = currentFlushPromise || resolvedPromise;\r\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\r\n}\r\n// #2768\r\n// Use binary-search to find a suitable position in the queue,\r\n// so that the queue maintains the increasing order of job's id,\r\n// which can prevent the job from being skipped and also can avoid repeated patching.\r\nfunction findInsertionIndex(id) {\r\n // the start index should be `flushIndex + 1`\r\n let start = flushIndex + 1;\r\n let end = queue.length;\r\n while (start < end) {\r\n const middle = (start + end) >>> 1;\r\n const middleJobId = getId(queue[middle]);\r\n middleJobId < id ? (start = middle + 1) : (end = middle);\r\n }\r\n return start;\r\n}\r\nfunction queueJob(job) {\r\n // the dedupe search uses the startIndex argument of Array.includes()\r\n // by default the search index includes the current job that is being run\r\n // so it cannot recursively trigger itself again.\r\n // if the job is a watch() callback, the search will start with a +1 index to\r\n // allow it recursively trigger itself - it is the user's responsibility to\r\n // ensure it doesn't end up in an infinite loop.\r\n if ((!queue.length ||\r\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) &&\r\n job !== currentPreFlushParentJob) {\r\n if (job.id == null) {\r\n queue.push(job);\r\n }\r\n else {\r\n queue.splice(findInsertionIndex(job.id), 0, job);\r\n }\r\n queueFlush();\r\n }\r\n}\r\nfunction queueFlush() {\r\n if (!isFlushing && !isFlushPending) {\r\n isFlushPending = true;\r\n currentFlushPromise = resolvedPromise.then(flushJobs);\r\n }\r\n}\r\nfunction invalidateJob(job) {\r\n const i = queue.indexOf(job);\r\n if (i > flushIndex) {\r\n queue.splice(i, 1);\r\n }\r\n}\r\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\r\n if (!isArray(cb)) {\r\n if (!activeQueue ||\r\n !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\r\n pendingQueue.push(cb);\r\n }\r\n }\r\n else {\r\n // if cb is an array, it is a component lifecycle hook which can only be\r\n // triggered by a job, which is already deduped in the main queue, so\r\n // we can skip duplicate check here to improve perf\r\n pendingQueue.push(...cb);\r\n }\r\n queueFlush();\r\n}\r\nfunction queuePreFlushCb(cb) {\r\n queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\r\n}\r\nfunction queuePostFlushCb(cb) {\r\n queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\r\n}\r\nfunction flushPreFlushCbs(seen, parentJob = null) {\r\n if (pendingPreFlushCbs.length) {\r\n currentPreFlushParentJob = parentJob;\r\n activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\r\n pendingPreFlushCbs.length = 0;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n checkRecursiveUpdates(seen, activePreFlushCbs[preFlushIndex])) {\r\n continue;\r\n }\r\n activePreFlushCbs[preFlushIndex]();\r\n }\r\n activePreFlushCbs = null;\r\n preFlushIndex = 0;\r\n currentPreFlushParentJob = null;\r\n // recursively flush until it drains\r\n flushPreFlushCbs(seen, parentJob);\r\n }\r\n}\r\nfunction flushPostFlushCbs(seen) {\r\n // flush any pre cbs queued during the flush (e.g. pre watchers)\r\n flushPreFlushCbs();\r\n if (pendingPostFlushCbs.length) {\r\n const deduped = [...new Set(pendingPostFlushCbs)];\r\n pendingPostFlushCbs.length = 0;\r\n // #1947 already has active queue, nested flushPostFlushCbs call\r\n if (activePostFlushCbs) {\r\n activePostFlushCbs.push(...deduped);\r\n return;\r\n }\r\n activePostFlushCbs = deduped;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\r\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\r\n continue;\r\n }\r\n activePostFlushCbs[postFlushIndex]();\r\n }\r\n activePostFlushCbs = null;\r\n postFlushIndex = 0;\r\n }\r\n}\r\nconst getId = (job) => job.id == null ? Infinity : job.id;\r\nfunction flushJobs(seen) {\r\n isFlushPending = false;\r\n isFlushing = true;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n flushPreFlushCbs(seen);\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child so its render effect will have smaller\r\n // priority number)\r\n // 2. If a component is unmounted during a parent component's update,\r\n // its update can be skipped.\r\n queue.sort((a, b) => getId(a) - getId(b));\r\n // conditional usage of checkRecursiveUpdate must be determined out of\r\n // try ... catch block since Rollup by default de-optimizes treeshaking\r\n // inside try-catch. This can leave all warning code unshaked. Although\r\n // they would get eventually shaken by a minifier like terser, some minifiers\r\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\r\n const check = (process.env.NODE_ENV !== 'production')\r\n ? (job) => checkRecursiveUpdates(seen, job)\r\n : NOOP;\r\n try {\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job && job.active !== false) {\r\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\r\n continue;\r\n }\r\n // console.log(`running:`, job.id)\r\n callWithErrorHandling(job, null, 14 /* SCHEDULER */);\r\n }\r\n }\r\n }\r\n finally {\r\n flushIndex = 0;\r\n queue.length = 0;\r\n flushPostFlushCbs(seen);\r\n isFlushing = false;\r\n currentFlushPromise = null;\r\n // some postFlushCb queued jobs!\r\n // keep flushing until it drains.\r\n if (queue.length ||\r\n pendingPreFlushCbs.length ||\r\n pendingPostFlushCbs.length) {\r\n flushJobs(seen);\r\n }\r\n }\r\n}\r\nfunction checkRecursiveUpdates(seen, fn) {\r\n if (!seen.has(fn)) {\r\n seen.set(fn, 1);\r\n }\r\n else {\r\n const count = seen.get(fn);\r\n if (count > RECURSION_LIMIT) {\r\n const instance = fn.ownerInstance;\r\n const componentName = instance && getComponentName(instance.type);\r\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\r\n `This means you have a reactive effect that is mutating its own ` +\r\n `dependencies and thus recursively triggering itself. Possible sources ` +\r\n `include component template, render function, updated hook or ` +\r\n `watcher source function.`);\r\n return true;\r\n }\r\n else {\r\n seen.set(fn, count + 1);\r\n }\r\n }\r\n}\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, initialDef) {\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n initialDef: normalizeClassComponent(initialDef),\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction normalizeClassComponent(component) {\r\n return isClassComponent(component) ? component.__vccOpts : component;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record) {\r\n return;\r\n }\r\n // update initial record (for not-yet-rendered component)\r\n record.initialDef.render = newRender;\r\n [...record.instances].forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n normalizeClassComponent(instance.type).render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n newComp = normalizeClassComponent(newComp);\r\n // update initial def (for not-yet-rendered components)\r\n updateComponentDef(record.initialDef, newComp);\r\n // create a snapshot which avoids the set being mutated during updates\r\n const instances = [...record.instances];\r\n for (const instance of instances) {\r\n const oldComp = normalizeClassComponent(instance.type);\r\n if (!hmrDirtyComponents.has(oldComp)) {\r\n // 1. Update existing comp definition to match new one\r\n if (oldComp !== record.initialDef) {\r\n updateComponentDef(oldComp, newComp);\r\n }\r\n // 2. mark definition dirty. This forces the renderer to replace the\r\n // component on patch.\r\n hmrDirtyComponents.add(oldComp);\r\n }\r\n // 3. invalidate options resolution cache\r\n instance.appContext.optionsCache.delete(instance.type);\r\n // 4. actually update\r\n if (instance.ceReload) {\r\n // custom element\r\n hmrDirtyComponents.add(oldComp);\r\n instance.ceReload(newComp.styles);\r\n hmrDirtyComponents.delete(oldComp);\r\n }\r\n else if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n // instance is the inner component of an async custom element\r\n // invoke to reset styles\r\n if (instance.parent.type.__asyncLoader &&\r\n instance.parent.ceReload) {\r\n instance.parent.ceReload(newComp.styles);\r\n }\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n }\r\n // 5. make sure to cleanup dirty hmr components after update\r\n queuePostFlushCb(() => {\r\n for (const instance of instances) {\r\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\r\n }\r\n });\r\n}\r\nfunction updateComponentDef(oldComp, newComp) {\r\n extend(oldComp, newComp);\r\n for (const key in oldComp) {\r\n if (key !== '__file' && !(key in newComp)) {\r\n delete oldComp[key];\r\n }\r\n }\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nlet buffer = [];\r\nlet devtoolsNotInstalled = false;\r\nfunction emit(event, ...args) {\r\n if (devtools) {\r\n devtools.emit(event, ...args);\r\n }\r\n else if (!devtoolsNotInstalled) {\r\n buffer.push({ event, args });\r\n }\r\n}\r\nfunction setDevtoolsHook(hook, target) {\r\n var _a, _b;\r\n devtools = hook;\r\n if (devtools) {\r\n devtools.enabled = true;\r\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\r\n buffer = [];\r\n }\r\n else if (\r\n // handle late devtools injection - only do this if we are in an actual\r\n // browser environment to avoid the timer handle stalling test runner exit\r\n // (#4815)\r\n typeof window !== 'undefined' &&\r\n // some envs mock window but not fully\r\n window.HTMLElement &&\r\n // also exclude jsdom\r\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\r\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\r\n replay.push((newHook) => {\r\n setDevtoolsHook(newHook, target);\r\n });\r\n // clear buffer after 3s - the user probably doesn't have devtools installed\r\n // at all, and keeping the buffer will cause memory leaks (#4738)\r\n setTimeout(() => {\r\n if (!devtools) {\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n }, 3000);\r\n }\r\n else {\r\n // non-browser env, assume not installed\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\r\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\r\nfunction createDevtoolsPerformanceHook(hook) {\r\n return (component, type, time) => {\r\n emit(hook, component.appContext.app, component.uid, component, type, time);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\r\n if (instance.isUnmounted)\r\n return;\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions) &&\r\n !(false )) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n let handlerName;\r\n let handler = props[(handlerName = toHandlerKey(event))] ||\r\n // also try camelCase event handler (#2249)\r\n props[(handlerName = toHandlerKey(camelize(event)))];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n instance.emitted = {};\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n instance.emitted[handlerName] = true;\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.emitsCache;\r\n const cached = cache.get(comp);\r\n if (cached !== undefined) {\r\n return cached;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, null);\r\n return null;\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n cache.set(comp, normalized);\r\n return normalized;\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\n/**\r\n * Note: rendering calls maybe nested. The function returns the parent rendering\r\n * instance if present, which should be restored after the render is done:\r\n *\r\n * ```js\r\n * const prev = setCurrentRenderingInstance(i)\r\n * // ...render\r\n * setCurrentRenderingInstance(prev)\r\n * ```\r\n */\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = (instance && instance.type.__scopeId) || null;\r\n return prev;\r\n}\r\n/**\r\n * Set scope id when creating hoisted vnodes.\r\n * @private compiler helper\r\n */\r\nfunction pushScopeId(id) {\r\n currentScopeId = id;\r\n}\r\n/**\r\n * Technically we no longer need this after 3.0.8 but we need to keep the same\r\n * API for backwards compat w/ code generated by compilers.\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n currentScopeId = null;\r\n}\r\n/**\r\n * Only for backwards compat\r\n * @private\r\n */\r\nconst withScopeId = (_id) => withCtx;\r\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private compiler helper\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\r\n) {\r\n if (!ctx)\r\n return fn;\r\n // already normalized\r\n if (fn._n) {\r\n return fn;\r\n }\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we disable block tracking and\r\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\r\n // This isn't necessary if rendering a compiled ``, so we flip the\r\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(-1);\r\n }\r\n const prevInstance = setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(prevInstance);\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(1);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentUpdated(ctx);\r\n }\r\n return res;\r\n };\r\n // mark normalized to avoid duplicated wrapping\r\n renderFnWithContext._n = true;\r\n // mark this as compiled by default\r\n // this is used in vnode.ts -> normalizeChildren() to set the slot\r\n // rendering flag.\r\n renderFnWithContext._c = true;\r\n // disable block tracking by default\r\n renderFnWithContext._d = true;\r\n return renderFnWithContext;\r\n}\n\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\r\n let result;\r\n let fallthroughAttrs;\r\n const prev = setCurrentRenderingInstance(instance);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n }\r\n catch (err) {\r\n blockStack.length = 0;\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (fallthroughAttrs && inheritAttrs !== false) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n // clone before mutating since the root may be a hoisted vnode\r\n root = cloneVNode(root);\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n setCurrentRenderingInstance(prev);\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n name: 'Suspense',\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary,\r\n normalize: normalizeSuspenseChildren\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl );\r\nfunction triggerEvent(vnode, name) {\r\n const eventListener = vnode.props && vnode.props[name];\r\n if (isFunction(eventListener)) {\r\n eventListener();\r\n }\r\n}\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onPending');\r\n triggerEvent(vnode, 'onFallback');\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n triggerEvent(n2, 'onPending');\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n triggerEvent(vnode, 'onResolve');\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onFallback');\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n suspense.isInFallback = true;\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult, false);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n const isSlotChildren = shapeFlag & 32 /* SLOTS_CHILDREN */;\r\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\r\n vnode.ssFallback = isSlotChildren\r\n ? normalizeSuspenseSlot(children.fallback)\r\n : createVNode(Comment);\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n let block;\r\n if (isFunction(s)) {\r\n const trackBlock = isBlockTreeEnabled && s._c;\r\n if (trackBlock) {\r\n // disableTracking: false\r\n // allow block tracking for compiled slots\r\n // (see ./componentRenderContext.ts)\r\n s._d = false;\r\n openBlock();\r\n }\r\n s = s();\r\n if (trackBlock) {\r\n s._d = true;\r\n block = currentBlock;\r\n closeBlock();\r\n }\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n s = normalizeVNode(s);\r\n if (block && !s.dynamicChildren) {\r\n s.dynamicChildren = block.filter(c => c !== s);\r\n }\r\n return s;\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`provide() can only be used inside setup().`);\r\n }\r\n }\r\n else {\r\n let provides = currentInstance.provides;\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\r\n if (parentProvides === provides) {\r\n provides = currentInstance.provides = Object.create(parentProvides);\r\n }\r\n // TS doesn't allow symbol as index type\r\n provides[key] = value;\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n // fallback to `currentRenderingInstance` so that this can be called in\r\n // a functional component\r\n const instance = currentInstance || currentRenderingInstance;\r\n if (instance) {\r\n // #2400\r\n // to support `app.use` plugins,\r\n // fallback to appContext's `provides` if the instance is at root\r\n const provides = instance.parent == null\r\n ? instance.vnode.appContext && instance.vnode.appContext.provides\r\n : instance.parent.provides;\r\n if (provides && key in provides) {\r\n // TS doesn't allow symbol as index type\r\n return provides[key];\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue)\r\n ? defaultValue.call(instance.proxy)\r\n : defaultValue;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injection \"${String(key)}\" not found.`);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`inject() can only be used inside setup() or functional components.`);\r\n }\r\n}\n\n// Simple effect.\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\nfunction watchPostEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));\r\n}\r\nfunction watchSyncEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\r\n}\r\n// initial value for watchers to trigger on undefined initial values\r\nconst INITIAL_WATCHER_VALUE = {};\r\n// implementation\r\nfunction watch(source, cb, options) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\r\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\r\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\r\n `supports \\`watch(source, cb, options?) signature.`);\r\n }\r\n return doWatch(source, cb, options);\r\n}\r\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\r\n if ((process.env.NODE_ENV !== 'production') && !cb) {\r\n if (immediate !== undefined) {\r\n warn(`watch() \"immediate\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n if (deep !== undefined) {\r\n warn(`watch() \"deep\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n }\r\n const warnInvalidSource = (s) => {\r\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\r\n `a reactive object, or an array of these types.`);\r\n };\r\n const instance = currentInstance;\r\n let getter;\r\n let forceTrigger = false;\r\n let isMultiSource = false;\r\n if (isRef(source)) {\r\n getter = () => source.value;\r\n forceTrigger = isShallow$1(source);\r\n }\r\n else if (isReactive(source)) {\r\n getter = () => source;\r\n deep = true;\r\n }\r\n else if (isArray(source)) {\r\n isMultiSource = true;\r\n forceTrigger = source.some(s => isReactive(s) || isShallow$1(s));\r\n getter = () => source.map(s => {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return callWithErrorHandling(s, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\r\n }\r\n });\r\n }\r\n else if (isFunction(source)) {\r\n if (cb) {\r\n // getter with cb\r\n getter = () => callWithErrorHandling(source, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n // no cb -> simple effect\r\n getter = () => {\r\n if (instance && instance.isUnmounted) {\r\n return;\r\n }\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return callWithAsyncErrorHandling(source, instance, 3 /* WATCH_CALLBACK */, [onCleanup]);\r\n };\r\n }\r\n }\r\n else {\r\n getter = NOOP;\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\r\n }\r\n if (cb && deep) {\r\n const baseGetter = getter;\r\n getter = () => traverse(baseGetter());\r\n }\r\n let cleanup;\r\n let onCleanup = (fn) => {\r\n cleanup = effect.onStop = () => {\r\n callWithErrorHandling(fn, instance, 4 /* WATCH_CLEANUP */);\r\n };\r\n };\r\n // in SSR there is no need to setup an actual effect, and it should be noop\r\n // unless it's eager\r\n if (isInSSRComponentSetup) {\r\n // we will also not call the invalidate callback (+ runner is not set up)\r\n onCleanup = NOOP;\r\n if (!cb) {\r\n getter();\r\n }\r\n else if (immediate) {\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n getter(),\r\n isMultiSource ? [] : undefined,\r\n onCleanup\r\n ]);\r\n }\r\n return NOOP;\r\n }\r\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\r\n const job = () => {\r\n if (!effect.active) {\r\n return;\r\n }\r\n if (cb) {\r\n // watch(source, cb)\r\n const newValue = effect.run();\r\n if (deep ||\r\n forceTrigger ||\r\n (isMultiSource\r\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\r\n : hasChanged(newValue, oldValue)) ||\r\n (false )) {\r\n // cleanup before running cb again\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n newValue,\r\n // pass undefined as the old value when it's changed for the first time\r\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\r\n onCleanup\r\n ]);\r\n oldValue = newValue;\r\n }\r\n }\r\n else {\r\n // watchEffect\r\n effect.run();\r\n }\r\n };\r\n // important: mark the job as a watcher callback so that scheduler knows\r\n // it is allowed to self-trigger (#1727)\r\n job.allowRecurse = !!cb;\r\n let scheduler;\r\n if (flush === 'sync') {\r\n scheduler = job; // the scheduler function gets called directly\r\n }\r\n else if (flush === 'post') {\r\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\r\n }\r\n else {\r\n // default: 'pre'\r\n scheduler = () => queuePreFlushCb(job);\r\n }\r\n const effect = new ReactiveEffect(getter, scheduler);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n effect.onTrack = onTrack;\r\n effect.onTrigger = onTrigger;\r\n }\r\n // initial run\r\n if (cb) {\r\n if (immediate) {\r\n job();\r\n }\r\n else {\r\n oldValue = effect.run();\r\n }\r\n }\r\n else if (flush === 'post') {\r\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\r\n }\r\n else {\r\n effect.run();\r\n }\r\n return () => {\r\n effect.stop();\r\n if (instance && instance.scope) {\r\n remove(instance.scope.effects, effect);\r\n }\r\n };\r\n}\r\n// this.$watch\r\nfunction instanceWatch(source, value, options) {\r\n const publicThis = this.proxy;\r\n const getter = isString(source)\r\n ? source.includes('.')\r\n ? createPathGetter(publicThis, source)\r\n : () => publicThis[source]\r\n : source.bind(publicThis, publicThis);\r\n let cb;\r\n if (isFunction(value)) {\r\n cb = value;\r\n }\r\n else {\r\n cb = value.handler;\r\n options = value;\r\n }\r\n const cur = currentInstance;\r\n setCurrentInstance(this);\r\n const res = doWatch(getter, cb.bind(publicThis), options);\r\n if (cur) {\r\n setCurrentInstance(cur);\r\n }\r\n else {\r\n unsetCurrentInstance();\r\n }\r\n return res;\r\n}\r\nfunction createPathGetter(ctx, path) {\r\n const segments = path.split('.');\r\n return () => {\r\n let cur = ctx;\r\n for (let i = 0; i < segments.length && cur; i++) {\r\n cur = cur[segments[i]];\r\n }\r\n return cur;\r\n };\r\n}\r\nfunction traverse(value, seen) {\r\n if (!isObject(value) || value[\"__v_skip\" /* SKIP */]) {\r\n return value;\r\n }\r\n seen = seen || new Set();\r\n if (seen.has(value)) {\r\n return value;\r\n }\r\n seen.add(value);\r\n if (isRef(value)) {\r\n traverse(value.value, seen);\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n traverse(value[i], seen);\r\n }\r\n }\r\n else if (isSet(value) || isMap(value)) {\r\n value.forEach((v) => {\r\n traverse(v, seen);\r\n });\r\n }\r\n else if (isPlainObject(value)) {\r\n for (const key in value) {\r\n traverse(value[key], seen);\r\n }\r\n }\r\n return value;\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n let child = children[0];\r\n if (children.length > 1) {\r\n let hasFound = false;\r\n // locate first non-comment child\r\n for (const c of children) {\r\n if (c.type !== Comment) {\r\n if ((process.env.NODE_ENV !== 'production') && hasFound) {\r\n // warn more than one non-comment child\r\n warn(' can only be used on a single element or component. ' +\r\n 'Use for lists.');\r\n break;\r\n }\r\n child = c;\r\n hasFound = true;\r\n if (!(process.env.NODE_ENV !== 'production'))\r\n break;\r\n }\r\n }\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n mode &&\r\n mode !== 'in-out' &&\r\n mode !== 'out-in' &&\r\n mode !== 'default') {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out' && innerChild.type !== Comment) {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const callAsyncHook = (hook, args) => {\r\n const done = args[1];\r\n callHook(hook, args);\r\n if (isArray(hook)) {\r\n if (hook.every(hook => hook.length <= 1))\r\n done();\r\n }\r\n else if (hook.length <= 1) {\r\n done();\r\n }\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n callAsyncHook(hook, [el, done]);\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n callAsyncHook(onLeave, [el, done]);\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n let child = children[i];\r\n // #5360 inherit parent key in case of \r\n const key = parentKey == null\r\n ? child.key\r\n : String(parentKey) + String(child.key != null ? child.key : i);\r\n // handle fragment children case, e.g. v-for\r\n if (child.type === Fragment) {\r\n if (child.patchFlag & 128 /* KEYED_FRAGMENT */)\r\n keyedFragmentCount++;\r\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));\r\n }\r\n // comment placeholders should be skipped, e.g. v-if\r\n else if (keepComment || child.type !== Comment) {\r\n ret.push(key != null ? cloneVNode(child, { key }) : child);\r\n }\r\n }\r\n // #1126 if a transition children list contains multiple sub fragments, these\r\n // fragments will be merged into a flat children array. Since each v-for\r\n // fragment may contain different static bindings inside, we need to de-op\r\n // these children to force full diffs to ensure correct behavior.\r\n if (keyedFragmentCount > 1) {\r\n for (let i = 0; i < ret.length; i++) {\r\n ret[i].patchFlag = -2 /* BAIL */;\r\n }\r\n }\r\n return ret;\r\n}\n\n// implementation, close to no-op\r\nfunction defineComponent(options) {\r\n return isFunction(options) ? { setup: options, name: options.name } : options;\r\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\r\nfunction defineAsyncComponent(source) {\r\n if (isFunction(source)) {\r\n source = { loader: source };\r\n }\r\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\r\n suspensible = true, onError: userOnError } = source;\r\n let pendingRequest = null;\r\n let resolvedComp;\r\n let retries = 0;\r\n const retry = () => {\r\n retries++;\r\n pendingRequest = null;\r\n return load();\r\n };\r\n const load = () => {\r\n let thisRequest;\r\n return (pendingRequest ||\r\n (thisRequest = pendingRequest =\r\n loader()\r\n .catch(err => {\r\n err = err instanceof Error ? err : new Error(String(err));\r\n if (userOnError) {\r\n return new Promise((resolve, reject) => {\r\n const userRetry = () => resolve(retry());\r\n const userFail = () => reject(err);\r\n userOnError(err, userRetry, userFail, retries + 1);\r\n });\r\n }\r\n else {\r\n throw err;\r\n }\r\n })\r\n .then((comp) => {\r\n if (thisRequest !== pendingRequest && pendingRequest) {\r\n return pendingRequest;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && !comp) {\r\n warn(`Async component loader resolved to undefined. ` +\r\n `If you are using retry(), make sure to return its return value.`);\r\n }\r\n // interop module default\r\n if (comp &&\r\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\r\n throw new Error(`Invalid async component load result: ${comp}`);\r\n }\r\n resolvedComp = comp;\r\n return comp;\r\n })));\r\n };\r\n return defineComponent({\r\n name: 'AsyncComponentWrapper',\r\n __asyncLoader: load,\r\n get __asyncResolved() {\r\n return resolvedComp;\r\n },\r\n setup() {\r\n const instance = currentInstance;\r\n // already resolved\r\n if (resolvedComp) {\r\n return () => createInnerComp(resolvedComp, instance);\r\n }\r\n const onError = (err) => {\r\n pendingRequest = null;\r\n handleError(err, instance, 13 /* ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\r\n };\r\n // suspense-controlled or SSR.\r\n if ((suspensible && instance.suspense) ||\r\n (isInSSRComponentSetup)) {\r\n return load()\r\n .then(comp => {\r\n return () => createInnerComp(comp, instance);\r\n })\r\n .catch(err => {\r\n onError(err);\r\n return () => errorComponent\r\n ? createVNode(errorComponent, {\r\n error: err\r\n })\r\n : null;\r\n });\r\n }\r\n const loaded = ref(false);\r\n const error = ref();\r\n const delayed = ref(!!delay);\r\n if (delay) {\r\n setTimeout(() => {\r\n delayed.value = false;\r\n }, delay);\r\n }\r\n if (timeout != null) {\r\n setTimeout(() => {\r\n if (!loaded.value && !error.value) {\r\n const err = new Error(`Async component timed out after ${timeout}ms.`);\r\n onError(err);\r\n error.value = err;\r\n }\r\n }, timeout);\r\n }\r\n load()\r\n .then(() => {\r\n loaded.value = true;\r\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\r\n // parent is keep-alive, force update so the loaded component's\r\n // name is taken into account\r\n queueJob(instance.parent.update);\r\n }\r\n })\r\n .catch(err => {\r\n onError(err);\r\n error.value = err;\r\n });\r\n return () => {\r\n if (loaded.value && resolvedComp) {\r\n return createInnerComp(resolvedComp, instance);\r\n }\r\n else if (error.value && errorComponent) {\r\n return createVNode(errorComponent, {\r\n error: error.value\r\n });\r\n }\r\n else if (loadingComponent && !delayed.value) {\r\n return createVNode(loadingComponent);\r\n }\r\n };\r\n }\r\n });\r\n}\r\nfunction createInnerComp(comp, { vnode: { ref, props, children, shapeFlag }, parent }) {\r\n const vnode = createVNode(comp, props, children);\r\n // ensure inner component inherits the async wrapper's ref owner\r\n vnode.ref = ref;\r\n return vnode;\r\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\r\nconst KeepAliveImpl = {\r\n name: `KeepAlive`,\r\n // Marker for special handling inside the renderer. We are not using a ===\r\n // check directly on KeepAlive in the renderer, because importing it directly\r\n // would prevent it from being tree-shaken.\r\n __isKeepAlive: true,\r\n props: {\r\n include: [String, RegExp, Array],\r\n exclude: [String, RegExp, Array],\r\n max: [String, Number]\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n // KeepAlive communicates with the instantiated renderer via the\r\n // ctx where the renderer passes in its internals,\r\n // and the KeepAlive instance exposes activate/deactivate implementations.\r\n // The whole point of this is to avoid importing KeepAlive directly in the\r\n // renderer to facilitate tree-shaking.\r\n const sharedContext = instance.ctx;\r\n // if the internal renderer is not registered, it indicates that this is server-side rendering,\r\n // for KeepAlive, we just need to render its children\r\n if (!sharedContext.renderer) {\r\n return () => {\r\n const children = slots.default && slots.default();\r\n return children && children.length === 1 ? children[0] : children;\r\n };\r\n }\r\n const cache = new Map();\r\n const keys = new Set();\r\n let current = null;\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n instance.__v_cache = cache;\r\n }\r\n const parentSuspense = instance.suspense;\r\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\r\n const storageContainer = createElement('div');\r\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\r\n const instance = vnode.component;\r\n move(vnode, container, anchor, 0 /* ENTER */, parentSuspense);\r\n // in case props have changed\r\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);\r\n queuePostRenderEffect(() => {\r\n instance.isDeactivated = false;\r\n if (instance.a) {\r\n invokeArrayFns(instance.a);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n sharedContext.deactivate = (vnode) => {\r\n const instance = vnode.component;\r\n move(vnode, storageContainer, null, 1 /* LEAVE */, parentSuspense);\r\n queuePostRenderEffect(() => {\r\n if (instance.da) {\r\n invokeArrayFns(instance.da);\r\n }\r\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\r\n if (vnodeHook) {\r\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\r\n }\r\n instance.isDeactivated = true;\r\n }, parentSuspense);\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n // Update components tree\r\n devtoolsComponentAdded(instance);\r\n }\r\n };\r\n function unmount(vnode) {\r\n // reset the shapeFlag so it can be properly unmounted\r\n resetShapeFlag(vnode);\r\n _unmount(vnode, instance, parentSuspense, true);\r\n }\r\n function pruneCache(filter) {\r\n cache.forEach((vnode, key) => {\r\n const name = getComponentName(vnode.type);\r\n if (name && (!filter || !filter(name))) {\r\n pruneCacheEntry(key);\r\n }\r\n });\r\n }\r\n function pruneCacheEntry(key) {\r\n const cached = cache.get(key);\r\n if (!current || cached.type !== current.type) {\r\n unmount(cached);\r\n }\r\n else if (current) {\r\n // current active instance should no longer be kept-alive.\r\n // we can't unmount it now but it might be later, so reset its flag now.\r\n resetShapeFlag(current);\r\n }\r\n cache.delete(key);\r\n keys.delete(key);\r\n }\r\n // prune cache on include/exclude prop change\r\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\r\n include && pruneCache(name => matches(include, name));\r\n exclude && pruneCache(name => !matches(exclude, name));\r\n }, \r\n // prune post-render after `current` has been updated\r\n { flush: 'post', deep: true });\r\n // cache sub tree after render\r\n let pendingCacheKey = null;\r\n const cacheSubtree = () => {\r\n // fix #1621, the pendingCacheKey could be 0\r\n if (pendingCacheKey != null) {\r\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\r\n }\r\n };\r\n onMounted(cacheSubtree);\r\n onUpdated(cacheSubtree);\r\n onBeforeUnmount(() => {\r\n cache.forEach(cached => {\r\n const { subTree, suspense } = instance;\r\n const vnode = getInnerChild(subTree);\r\n if (cached.type === vnode.type) {\r\n // current instance will be unmounted as part of keep-alive's unmount\r\n resetShapeFlag(vnode);\r\n // but invoke its deactivated hook here\r\n const da = vnode.component.da;\r\n da && queuePostRenderEffect(da, suspense);\r\n return;\r\n }\r\n unmount(cached);\r\n });\r\n });\r\n return () => {\r\n pendingCacheKey = null;\r\n if (!slots.default) {\r\n return null;\r\n }\r\n const children = slots.default();\r\n const rawVNode = children[0];\r\n if (children.length > 1) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`KeepAlive should contain exactly one component child.`);\r\n }\r\n current = null;\r\n return children;\r\n }\r\n else if (!isVNode(rawVNode) ||\r\n (!(rawVNode.shapeFlag & 4 /* STATEFUL_COMPONENT */) &&\r\n !(rawVNode.shapeFlag & 128 /* SUSPENSE */))) {\r\n current = null;\r\n return rawVNode;\r\n }\r\n let vnode = getInnerChild(rawVNode);\r\n const comp = vnode.type;\r\n // for async components, name check should be based in its loaded\r\n // inner component if available\r\n const name = getComponentName(isAsyncWrapper(vnode)\r\n ? vnode.type.__asyncResolved || {}\r\n : comp);\r\n const { include, exclude, max } = props;\r\n if ((include && (!name || !matches(include, name))) ||\r\n (exclude && name && matches(exclude, name))) {\r\n current = vnode;\r\n return rawVNode;\r\n }\r\n const key = vnode.key == null ? comp : vnode.key;\r\n const cachedVNode = cache.get(key);\r\n // clone vnode if it's reused because we are going to mutate it\r\n if (vnode.el) {\r\n vnode = cloneVNode(vnode);\r\n if (rawVNode.shapeFlag & 128 /* SUSPENSE */) {\r\n rawVNode.ssContent = vnode;\r\n }\r\n }\r\n // #1513 it's possible for the returned vnode to be cloned due to attr\r\n // fallthrough or scopeId, so the vnode here may not be the final vnode\r\n // that is mounted. Instead of caching it directly, we store the pending\r\n // key and cache `instance.subTree` (the normalized vnode) in\r\n // beforeMount/beforeUpdate hooks.\r\n pendingCacheKey = key;\r\n if (cachedVNode) {\r\n // copy over mounted state\r\n vnode.el = cachedVNode.el;\r\n vnode.component = cachedVNode.component;\r\n if (vnode.transition) {\r\n // recursively update transition hooks on subTree\r\n setTransitionHooks(vnode, vnode.transition);\r\n }\r\n // avoid vnode being mounted as fresh\r\n vnode.shapeFlag |= 512 /* COMPONENT_KEPT_ALIVE */;\r\n // make this key the freshest\r\n keys.delete(key);\r\n keys.add(key);\r\n }\r\n else {\r\n keys.add(key);\r\n // prune oldest entry\r\n if (max && keys.size > parseInt(max, 10)) {\r\n pruneCacheEntry(keys.values().next().value);\r\n }\r\n }\r\n // avoid vnode being unmounted\r\n vnode.shapeFlag |= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n current = vnode;\r\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst KeepAlive = KeepAliveImpl;\r\nfunction matches(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.some((p) => matches(p, name));\r\n }\r\n else if (isString(pattern)) {\r\n return pattern.split(',').includes(name);\r\n }\r\n else if (pattern.test) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction onActivated(hook, target) {\r\n registerKeepAliveHook(hook, \"a\" /* ACTIVATED */, target);\r\n}\r\nfunction onDeactivated(hook, target) {\r\n registerKeepAliveHook(hook, \"da\" /* DEACTIVATED */, target);\r\n}\r\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\r\n // cache the deactivate branch check wrapper for injected hooks so the same\r\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\r\n // deactivation check\".\r\n const wrappedHook = hook.__wdc ||\r\n (hook.__wdc = () => {\r\n // only fire the hook if the target instance is NOT in a deactivated branch.\r\n let current = target;\r\n while (current) {\r\n if (current.isDeactivated) {\r\n return;\r\n }\r\n current = current.parent;\r\n }\r\n return hook();\r\n });\r\n injectHook(type, wrappedHook, target);\r\n // In addition to registering it on the target instance, we walk up the parent\r\n // chain and register it on all ancestor instances that are keep-alive roots.\r\n // This avoids the need to walk the entire component tree when invoking these\r\n // hooks, and more importantly, avoids the need to track child components in\r\n // arrays.\r\n if (target) {\r\n let current = target.parent;\r\n while (current && current.parent) {\r\n if (isKeepAlive(current.parent.vnode)) {\r\n injectToKeepAliveRoot(wrappedHook, type, target, current);\r\n }\r\n current = current.parent;\r\n }\r\n }\r\n}\r\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\r\n // injectHook wraps the original for error handling, so make sure to remove\r\n // the wrapped version.\r\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\r\n onUnmounted(() => {\r\n remove(keepAliveRoot[type], injected);\r\n }, target);\r\n}\r\nfunction resetShapeFlag(vnode) {\r\n let shapeFlag = vnode.shapeFlag;\r\n if (shapeFlag & 256 /* COMPONENT_SHOULD_KEEP_ALIVE */) {\r\n shapeFlag -= 256 /* COMPONENT_SHOULD_KEEP_ALIVE */;\r\n }\r\n if (shapeFlag & 512 /* COMPONENT_KEPT_ALIVE */) {\r\n shapeFlag -= 512 /* COMPONENT_KEPT_ALIVE */;\r\n }\r\n vnode.shapeFlag = shapeFlag;\r\n}\r\nfunction getInnerChild(vnode) {\r\n return vnode.shapeFlag & 128 /* SUSPENSE */ ? vnode.ssContent : vnode;\r\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\r\n if (target) {\r\n const hooks = target[type] || (target[type] = []);\r\n // cache the error handling wrapper for injected hooks so the same hook\r\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\r\n // handling\".\r\n const wrappedHook = hook.__weh ||\r\n (hook.__weh = (...args) => {\r\n if (target.isUnmounted) {\r\n return;\r\n }\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n // Set currentInstance during hook invocation.\r\n // This assumes the hook does not synchronously trigger other hooks, which\r\n // can only be false when the user does something really funky.\r\n setCurrentInstance(target);\r\n const res = callWithAsyncErrorHandling(hook, target, type, args);\r\n unsetCurrentInstance();\r\n resetTracking();\r\n return res;\r\n });\r\n if (prepend) {\r\n hooks.unshift(wrappedHook);\r\n }\r\n else {\r\n hooks.push(wrappedHook);\r\n }\r\n return wrappedHook;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\r\n warn(`${apiName} is called when there is no active component instance to be ` +\r\n `associated with. ` +\r\n `Lifecycle injection APIs can only be used during execution of setup().` +\r\n (` If you are using async setup(), make sure to register lifecycle ` +\r\n `hooks before the first await statement.`\r\n ));\r\n }\r\n}\r\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \r\n// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\r\n(!isInSSRComponentSetup || lifecycle === \"sp\" /* SERVER_PREFETCH */) &&\r\n injectHook(lifecycle, hook, target);\r\nconst onBeforeMount = createHook(\"bm\" /* BEFORE_MOUNT */);\r\nconst onMounted = createHook(\"m\" /* MOUNTED */);\r\nconst onBeforeUpdate = createHook(\"bu\" /* BEFORE_UPDATE */);\r\nconst onUpdated = createHook(\"u\" /* UPDATED */);\r\nconst onBeforeUnmount = createHook(\"bum\" /* BEFORE_UNMOUNT */);\r\nconst onUnmounted = createHook(\"um\" /* UNMOUNTED */);\r\nconst onServerPrefetch = createHook(\"sp\" /* SERVER_PREFETCH */);\r\nconst onRenderTriggered = createHook(\"rtg\" /* RENDER_TRIGGERED */);\r\nconst onRenderTracked = createHook(\"rtc\" /* RENDER_TRACKED */);\r\nfunction onErrorCaptured(hook, target = currentInstance) {\r\n injectHook(\"ec\" /* ERROR_CAPTURED */, hook, target);\r\n}\n\n/**\r\nRuntime helper for applying directives to a vnode. Example usage:\r\n\nconst comp = resolveComponent('comp')\r\nconst foo = resolveDirective('foo')\r\nconst bar = resolveDirective('bar')\r\n\nreturn withDirectives(h(comp), [\r\n [foo, this.x],\r\n [bar, this.y]\r\n])\r\n*/\r\nfunction validateDirectiveName(name) {\r\n if (isBuiltInDirective(name)) {\r\n warn('Do not use built-in directive ids as custom directive id: ' + name);\r\n }\r\n}\r\n/**\r\n * Adds directives to a VNode.\r\n */\r\nfunction withDirectives(vnode, directives) {\r\n const internalInstance = currentRenderingInstance;\r\n if (internalInstance === null) {\r\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\r\n return vnode;\r\n }\r\n const instance = getExposeProxy(internalInstance) ||\r\n internalInstance.proxy;\r\n const bindings = vnode.dirs || (vnode.dirs = []);\r\n for (let i = 0; i < directives.length; i++) {\r\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\r\n if (isFunction(dir)) {\r\n dir = {\r\n mounted: dir,\r\n updated: dir\r\n };\r\n }\r\n if (dir.deep) {\r\n traverse(value);\r\n }\r\n bindings.push({\r\n dir,\r\n instance,\r\n value,\r\n oldValue: void 0,\r\n arg,\r\n modifiers\r\n });\r\n }\r\n return vnode;\r\n}\r\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\r\n const bindings = vnode.dirs;\r\n const oldBindings = prevVNode && prevVNode.dirs;\r\n for (let i = 0; i < bindings.length; i++) {\r\n const binding = bindings[i];\r\n if (oldBindings) {\r\n binding.oldValue = oldBindings[i].value;\r\n }\r\n let hook = binding.dir[name];\r\n if (hook) {\r\n // disable tracking inside all lifecycle hooks\r\n // since they can potentially be called inside effects.\r\n pauseTracking();\r\n callWithAsyncErrorHandling(hook, instance, 8 /* DIRECTIVE_HOOK */, [\r\n vnode.el,\r\n binding,\r\n vnode,\r\n prevVNode\r\n ]);\r\n resetTracking();\r\n }\r\n }\r\n}\n\nconst COMPONENTS = 'components';\r\nconst DIRECTIVES = 'directives';\r\n/**\r\n * @private\r\n */\r\nfunction resolveComponent(name, maybeSelfReference) {\r\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\r\n}\r\nconst NULL_DYNAMIC_COMPONENT = Symbol();\r\n/**\r\n * @private\r\n */\r\nfunction resolveDynamicComponent(component) {\r\n if (isString(component)) {\r\n return resolveAsset(COMPONENTS, component, false) || component;\r\n }\r\n else {\r\n // invalid types will fallthrough to createVNode and raise warning\r\n return (component || NULL_DYNAMIC_COMPONENT);\r\n }\r\n}\r\n/**\r\n * @private\r\n */\r\nfunction resolveDirective(name) {\r\n return resolveAsset(DIRECTIVES, name);\r\n}\r\n// implementation\r\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\r\n const instance = currentRenderingInstance || currentInstance;\r\n if (instance) {\r\n const Component = instance.type;\r\n // explicit self name has highest priority\r\n if (type === COMPONENTS) {\r\n const selfName = getComponentName(Component);\r\n if (selfName &&\r\n (selfName === name ||\r\n selfName === camelize(name) ||\r\n selfName === capitalize(camelize(name)))) {\r\n return Component;\r\n }\r\n }\r\n const res = \r\n // local registration\r\n // check instance[type] first which is resolved for options API\r\n resolve(instance[type] || Component[type], name) ||\r\n // global registration\r\n resolve(instance.appContext[type], name);\r\n if (!res && maybeSelfReference) {\r\n // fallback to implicit self-reference\r\n return Component;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && warnMissing && !res) {\r\n const extra = type === COMPONENTS\r\n ? `\\nIf this is a native custom element, make sure to exclude it from ` +\r\n `component resolution via compilerOptions.isCustomElement.`\r\n : ``;\r\n warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\r\n }\r\n return res;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`resolve${capitalize(type.slice(0, -1))} ` +\r\n `can only be used in render() or setup().`);\r\n }\r\n}\r\nfunction resolve(registry, name) {\r\n return (registry &&\r\n (registry[name] ||\r\n registry[camelize(name)] ||\r\n registry[capitalize(camelize(name))]));\r\n}\n\n/**\r\n * Actual implementation\r\n */\r\nfunction renderList(source, renderItem, cache, index) {\r\n let ret;\r\n const cached = (cache && cache[index]);\r\n if (isArray(source) || isString(source)) {\r\n ret = new Array(source.length);\r\n for (let i = 0, l = source.length; i < l; i++) {\r\n ret[i] = renderItem(source[i], i, undefined, cached && cached[i]);\r\n }\r\n }\r\n else if (typeof source === 'number') {\r\n if ((process.env.NODE_ENV !== 'production') && !Number.isInteger(source)) {\r\n warn(`The v-for range expect an integer value but got ${source}.`);\r\n }\r\n ret = new Array(source);\r\n for (let i = 0; i < source; i++) {\r\n ret[i] = renderItem(i + 1, i, undefined, cached && cached[i]);\r\n }\r\n }\r\n else if (isObject(source)) {\r\n if (source[Symbol.iterator]) {\r\n ret = Array.from(source, (item, i) => renderItem(item, i, undefined, cached && cached[i]));\r\n }\r\n else {\r\n const keys = Object.keys(source);\r\n ret = new Array(keys.length);\r\n for (let i = 0, l = keys.length; i < l; i++) {\r\n const key = keys[i];\r\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\r\n }\r\n }\r\n }\r\n else {\r\n ret = [];\r\n }\r\n if (cache) {\r\n cache[index] = ret;\r\n }\r\n return ret;\r\n}\n\n/**\r\n * Compiler runtime helper for creating dynamic slots object\r\n * @private\r\n */\r\nfunction createSlots(slots, dynamicSlots) {\r\n for (let i = 0; i < dynamicSlots.length; i++) {\r\n const slot = dynamicSlots[i];\r\n // array of dynamic slot generated by \r\n if (isArray(slot)) {\r\n for (let j = 0; j < slot.length; j++) {\r\n slots[slot[j].name] = slot[j].fn;\r\n }\r\n }\r\n else if (slot) {\r\n // conditional single slot generated by \r\n slots[slot.name] = slot.fn;\r\n }\r\n }\r\n return slots;\r\n}\n\n/**\r\n * Compiler runtime helper for rendering ``\r\n * @private\r\n */\r\nfunction renderSlot(slots, name, props = {}, \r\n// this is not a user-facing function, so the fallback is always generated by\r\n// the compiler and guaranteed to be a function returning an array\r\nfallback, noSlotted) {\r\n if (currentRenderingInstance.isCE ||\r\n (currentRenderingInstance.parent &&\r\n isAsyncWrapper(currentRenderingInstance.parent) &&\r\n currentRenderingInstance.parent.isCE)) {\r\n return createVNode('slot', name === 'default' ? null : { name }, fallback && fallback());\r\n }\r\n let slot = slots[name];\r\n if ((process.env.NODE_ENV !== 'production') && slot && slot.length > 1) {\r\n warn(`SSR-optimized slot function detected in a non-SSR-optimized render ` +\r\n `function. You need to mark this component with $dynamic-slots in the ` +\r\n `parent template.`);\r\n slot = () => [];\r\n }\r\n // a compiled slot disables block tracking by default to avoid manual\r\n // invocation interfering with template-based block tracking, but in\r\n // `renderSlot` we can be sure that it's template-based so we can force\r\n // enable it.\r\n if (slot && slot._c) {\r\n slot._d = false;\r\n }\r\n openBlock();\r\n const validSlotContent = slot && ensureValidVNode(slot(props));\r\n const rendered = createBlock(Fragment, { key: props.key || `_${name}` }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 /* STABLE */\r\n ? 64 /* STABLE_FRAGMENT */\r\n : -2 /* BAIL */);\r\n if (!noSlotted && rendered.scopeId) {\r\n rendered.slotScopeIds = [rendered.scopeId + '-s'];\r\n }\r\n if (slot && slot._c) {\r\n slot._d = true;\r\n }\r\n return rendered;\r\n}\r\nfunction ensureValidVNode(vnodes) {\r\n return vnodes.some(child => {\r\n if (!isVNode(child))\r\n return true;\r\n if (child.type === Comment)\r\n return false;\r\n if (child.type === Fragment &&\r\n !ensureValidVNode(child.children))\r\n return false;\r\n return true;\r\n })\r\n ? vnodes\r\n : null;\r\n}\n\n/**\r\n * For prefixing keys in v-on=\"obj\" with \"on\"\r\n * @private\r\n */\r\nfunction toHandlers(obj) {\r\n const ret = {};\r\n if ((process.env.NODE_ENV !== 'production') && !isObject(obj)) {\r\n warn(`v-on with no argument expects an object value.`);\r\n return ret;\r\n }\r\n for (const key in obj) {\r\n ret[toHandlerKey(key)] = obj[key];\r\n }\r\n return ret;\r\n}\n\n/**\r\n * #2437 In Vue 3, functional components do not have a public instance proxy but\r\n * they exist in the internal parent chain. For code that relies on traversing\r\n * public $parent chains, skip functional ones and go to the parent instead.\r\n */\r\nconst getPublicInstance = (i) => {\r\n if (!i)\r\n return null;\r\n if (isStatefulComponent(i))\r\n return getExposeProxy(i) || i.proxy;\r\n return getPublicInstance(i.parent);\r\n};\r\nconst publicPropertiesMap = \r\n// Move PURE marker to new line to workaround compiler discarding it\r\n// due to type annotation\r\n/*#__PURE__*/ extend(Object.create(null), {\r\n $: i => i,\r\n $el: i => i.vnode.el,\r\n $data: i => i.data,\r\n $props: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.props) : i.props),\r\n $attrs: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.attrs) : i.attrs),\r\n $slots: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.slots) : i.slots),\r\n $refs: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.refs) : i.refs),\r\n $parent: i => getPublicInstance(i.parent),\r\n $root: i => getPublicInstance(i.root),\r\n $emit: i => i.emit,\r\n $options: i => (__VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type),\r\n $forceUpdate: i => i.f || (i.f = () => queueJob(i.update)),\r\n $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy)),\r\n $watch: i => (__VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP)\r\n});\r\nconst isReservedPrefix = (key) => key === '_' || key === '$';\r\nconst PublicInstanceProxyHandlers = {\r\n get({ _: instance }, key) {\r\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\r\n // for internal formatters to know that this is a Vue instance\r\n if ((process.env.NODE_ENV !== 'production') && key === '__isVue') {\r\n return true;\r\n }\r\n // prioritize