{"version":3,"file":"js/chunk-vendors.bf8976ac.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/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-form.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-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/axios/index.js","webpack://vue-ui/./node_modules/axios/lib/adapters/xhr.js","webpack://vue-ui/./node_modules/axios/lib/axios.js","webpack://vue-ui/./node_modules/axios/lib/cancel/CancelToken.js","webpack://vue-ui/./node_modules/axios/lib/cancel/CanceledError.js","webpack://vue-ui/./node_modules/axios/lib/cancel/isCancel.js","webpack://vue-ui/./node_modules/axios/lib/core/Axios.js","webpack://vue-ui/./node_modules/axios/lib/core/AxiosError.js","webpack://vue-ui/./node_modules/axios/lib/core/InterceptorManager.js","webpack://vue-ui/./node_modules/axios/lib/core/buildFullPath.js","webpack://vue-ui/./node_modules/axios/lib/core/dispatchRequest.js","webpack://vue-ui/./node_modules/axios/lib/core/mergeConfig.js","webpack://vue-ui/./node_modules/axios/lib/core/settle.js","webpack://vue-ui/./node_modules/axios/lib/core/transformData.js","webpack://vue-ui/./node_modules/axios/lib/defaults/index.js","webpack://vue-ui/./node_modules/axios/lib/defaults/transitional.js","webpack://vue-ui/./node_modules/axios/lib/env/data.js","webpack://vue-ui/./node_modules/axios/lib/helpers/bind.js","webpack://vue-ui/./node_modules/axios/lib/helpers/buildURL.js","webpack://vue-ui/./node_modules/axios/lib/helpers/combineURLs.js","webpack://vue-ui/./node_modules/axios/lib/helpers/cookies.js","webpack://vue-ui/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://vue-ui/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://vue-ui/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://vue-ui/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://vue-ui/./node_modules/axios/lib/helpers/null.js","webpack://vue-ui/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://vue-ui/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://vue-ui/./node_modules/axios/lib/helpers/spread.js","webpack://vue-ui/./node_modules/axios/lib/helpers/toFormData.js","webpack://vue-ui/./node_modules/axios/lib/helpers/validator.js","webpack://vue-ui/./node_modules/axios/lib/utils.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, 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 + `window.__Q_META__=${ delete data.noscript && JSON.stringify(data) }`\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 { 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","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","/*\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