{"version":3,"file":"js/chunk-vendors.0d20913a.js","mappings":"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","sources":["webpack://domains/./node_modules/quasar/src/components/badge/QBadge.js","webpack://domains/./node_modules/quasar/src/composables/private/use-align.js","webpack://domains/./node_modules/quasar/src/components/btn/use-btn.js","webpack://domains/./node_modules/quasar/src/components/btn/QBtn.js","webpack://domains/./node_modules/quasar/src/components/checkbox/QCheckbox.js","webpack://domains/./node_modules/quasar/src/composables/private/use-refocus-target.js","webpack://domains/./node_modules/quasar/src/utils/private/option-sizes.js","webpack://domains/./node_modules/quasar/src/components/checkbox/use-checkbox.js","webpack://domains/./node_modules/quasar/src/components/drawer/QDrawer.js","webpack://domains/./node_modules/quasar/src/components/header/QHeader.js","webpack://domains/./node_modules/quasar/src/components/icon/QIcon.js","webpack://domains/./node_modules/quasar/src/components/input/use-mask.js","webpack://domains/./node_modules/quasar/src/composables/private/use-file-dom-props.js","webpack://domains/./node_modules/quasar/src/components/input/QInput.js","webpack://domains/./node_modules/quasar/src/components/item/QItem.js","webpack://domains/./node_modules/quasar/src/components/item/QItemLabel.js","webpack://domains/./node_modules/quasar/src/components/item/QItemSection.js","webpack://domains/./node_modules/quasar/src/components/item/QList.js","webpack://domains/./node_modules/quasar/src/components/scroll-observer/QScrollObserver.js","webpack://domains/./node_modules/quasar/src/components/layout/QLayout.js","webpack://domains/./node_modules/quasar/src/components/page/QPageContainer.js","webpack://domains/./node_modules/quasar/src/components/slider/use-slider.js","webpack://domains/./node_modules/quasar/src/components/range/QRange.js","webpack://domains/./node_modules/quasar/src/composables/private/use-can-render.js","webpack://domains/./node_modules/quasar/src/components/resize-observer/QResizeObserver.js","webpack://domains/./node_modules/quasar/src/components/field/QField.js","webpack://domains/./node_modules/quasar/src/components/chip/QChip.js","webpack://domains/./node_modules/quasar/src/composables/private/use-anchor.js","webpack://domains/./node_modules/quasar/src/composables/private/use-scroll-target.js","webpack://domains/./node_modules/quasar/src/utils/private/global-nodes.js","webpack://domains/./node_modules/quasar/src/utils/private/portal.js","webpack://domains/./node_modules/quasar/src/composables/private/use-portal.js","webpack://domains/./node_modules/quasar/src/composables/private/use-transition.js","webpack://domains/./node_modules/quasar/src/composables/private/use-tick.js","webpack://domains/./node_modules/quasar/src/utils/private/escape-key.js","webpack://domains/./node_modules/quasar/src/utils/private/focusout.js","webpack://domains/./node_modules/quasar/src/utils/private/click-outside.js","webpack://domains/./node_modules/quasar/src/utils/private/position-engine.js","webpack://domains/./node_modules/quasar/src/components/menu/QMenu.js","webpack://domains/./node_modules/quasar/src/components/dialog/QDialog.js","webpack://domains/./node_modules/quasar/src/components/select/QSelect.js","webpack://domains/./node_modules/quasar/src/components/space/QSpace.js","webpack://domains/./node_modules/quasar/src/components/spinner/use-spinner.js","webpack://domains/./node_modules/quasar/src/components/spinner/QSpinner.js","webpack://domains/./node_modules/quasar/src/components/table/QTh.js","webpack://domains/./node_modules/quasar/src/components/separator/QSeparator.js","webpack://domains/./node_modules/quasar/src/components/markup-table/QMarkupTable.js","webpack://domains/./node_modules/quasar/src/components/table/get-table-middle.js","webpack://domains/./node_modules/quasar/src/components/virtual-scroll/QVirtualScroll.js","webpack://domains/./node_modules/quasar/src/components/linear-progress/QLinearProgress.js","webpack://domains/./node_modules/quasar/src/composables/private/use-fullscreen.js","webpack://domains/./node_modules/quasar/src/utils/private/sort.js","webpack://domains/./node_modules/quasar/src/components/table/table-sort.js","webpack://domains/./node_modules/quasar/src/components/table/table-filter.js","webpack://domains/./node_modules/quasar/src/components/table/table-pagination.js","webpack://domains/./node_modules/quasar/src/components/table/table-row-selection.js","webpack://domains/./node_modules/quasar/src/components/table/table-row-expand.js","webpack://domains/./node_modules/quasar/src/components/table/table-column-selection.js","webpack://domains/./node_modules/quasar/src/components/table/QTable.js","webpack://domains/./node_modules/quasar/src/components/table/QTd.js","webpack://domains/./node_modules/quasar/src/components/toggle/QToggle.js","webpack://domains/./node_modules/quasar/src/components/toolbar/QToolbar.js","webpack://domains/./node_modules/quasar/src/components/toolbar/QToolbarTitle.js","webpack://domains/./node_modules/quasar/src/utils/private/rtl.js","webpack://domains/./node_modules/quasar/src/components/virtual-scroll/use-virtual-scroll.js","webpack://domains/./node_modules/quasar/src/composables/private/use-dark.js","webpack://domains/./node_modules/quasar/src/composables/use-form-child.js","webpack://domains/./node_modules/quasar/src/utils/patterns.js","webpack://domains/./node_modules/quasar/src/composables/private/use-validate.js","webpack://domains/./node_modules/quasar/src/composables/private/use-split-attrs.js","webpack://domains/./node_modules/quasar/src/utils/uid.js","webpack://domains/./node_modules/quasar/src/composables/private/use-field.js","webpack://domains/./node_modules/quasar/src/composables/private/use-form.js","webpack://domains/./node_modules/quasar/src/composables/private/use-history.js","webpack://domains/./node_modules/quasar/src/composables/private/use-key-composition.js","webpack://domains/./node_modules/quasar/src/composables/private/use-model-toggle.js","webpack://domains/./node_modules/quasar/src/utils/prevent-scroll.js","webpack://domains/./node_modules/quasar/src/composables/private/use-prevent-scroll.js","webpack://domains/./node_modules/quasar/src/composables/private/use-router-link.js","webpack://domains/./node_modules/quasar/src/composables/private/use-size.js","webpack://domains/./node_modules/quasar/src/composables/private/use-timeout.js","webpack://domains/./node_modules/quasar/src/utils/throttle.js","webpack://domains/./node_modules/quasar/src/directives/Ripple.js","webpack://domains/./node_modules/quasar/src/utils/private/touch.js","webpack://domains/./node_modules/quasar/src/directives/TouchPan.js","webpack://domains/./node_modules/quasar/src/history.js","webpack://domains/./node_modules/quasar/src/plugins/Platform.js","webpack://domains/./node_modules/quasar/src/utils/debounce.js","webpack://domains/./node_modules/quasar/src/utils/dom.js","webpack://domains/./node_modules/quasar/src/utils/event.js","webpack://domains/./node_modules/quasar/src/utils/format.js","webpack://domains/./node_modules/quasar/src/utils/is.js","webpack://domains/./node_modules/quasar/src/utils/private/create.js","webpack://domains/./node_modules/quasar/src/utils/private/focus-manager.js","webpack://domains/./node_modules/quasar/src/utils/private/global-config.js","webpack://domains/./node_modules/quasar/src/utils/private/inject-obj-prop.js","webpack://domains/./node_modules/quasar/src/utils/private/key-composition.js","webpack://domains/./node_modules/quasar/src/utils/private/render.js","webpack://domains/./node_modules/quasar/src/utils/private/selection.js","webpack://domains/./node_modules/quasar/src/utils/private/symbols.js","webpack://domains/./node_modules/quasar/src/utils/private/vm.js","webpack://domains/./node_modules/quasar/src/utils/scroll.js","webpack://domains/./node_modules/quasar/src/utils/private/define-reactive-plugin.js","webpack://domains/./node_modules/quasar/src/plugins/Screen.js","webpack://domains/./node_modules/quasar/src/plugins/Dark.js","webpack://domains/./node_modules/quasar/lang/en-US.mjs","webpack://domains/./node_modules/quasar/src/lang.js","webpack://domains/./node_modules/quasar/src/utils/set-css-var.js","webpack://domains/./node_modules/quasar/src/body.js","webpack://domains/./node_modules/quasar/icon-set/material-icons.mjs","webpack://domains/./node_modules/quasar/src/icon-set.js","webpack://domains/./node_modules/quasar/src/install-quasar.js","webpack://domains/./node_modules/quasar/src/vue-plugin.js","webpack://domains/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://domains/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://domains/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://domains/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://domains/./node_modules/axios/node_modules/form-data/lib/browser.js","webpack://domains/./node_modules/core-js/internals/a-callable.js","webpack://domains/./node_modules/core-js/internals/a-possible-prototype.js","webpack://domains/./node_modules/core-js/internals/an-object.js","webpack://domains/./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://domains/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://domains/./node_modules/core-js/internals/array-includes.js","webpack://domains/./node_modules/core-js/internals/array-iteration-from-last.js","webpack://domains/./node_modules/core-js/internals/array-set-length.js","webpack://domains/./node_modules/core-js/internals/classof-raw.js","webpack://domains/./node_modules/core-js/internals/classof.js","webpack://domains/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://domains/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://domains/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://domains/./node_modules/core-js/internals/create-property-descriptor.js","webpack://domains/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://domains/./node_modules/core-js/internals/define-built-in.js","webpack://domains/./node_modules/core-js/internals/define-global-property.js","webpack://domains/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://domains/./node_modules/core-js/internals/descriptors.js","webpack://domains/./node_modules/core-js/internals/document-all.js","webpack://domains/./node_modules/core-js/internals/document-create-element.js","webpack://domains/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://domains/./node_modules/core-js/internals/engine-user-agent.js","webpack://domains/./node_modules/core-js/internals/engine-v8-version.js","webpack://domains/./node_modules/core-js/internals/enum-bug-keys.js","webpack://domains/./node_modules/core-js/internals/export.js","webpack://domains/./node_modules/core-js/internals/fails.js","webpack://domains/./node_modules/core-js/internals/function-bind-context.js","webpack://domains/./node_modules/core-js/internals/function-bind-native.js","webpack://domains/./node_modules/core-js/internals/function-call.js","webpack://domains/./node_modules/core-js/internals/function-name.js","webpack://domains/./node_modules/core-js/internals/function-uncurry-this-raw.js","webpack://domains/./node_modules/core-js/internals/function-uncurry-this.js","webpack://domains/./node_modules/core-js/internals/get-built-in.js","webpack://domains/./node_modules/core-js/internals/get-method.js","webpack://domains/./node_modules/core-js/internals/global.js","webpack://domains/./node_modules/core-js/internals/has-own-property.js","webpack://domains/./node_modules/core-js/internals/hidden-keys.js","webpack://domains/./node_modules/core-js/internals/ie8-dom-define.js","webpack://domains/./node_modules/core-js/internals/indexed-object.js","webpack://domains/./node_modules/core-js/internals/inspect-source.js","webpack://domains/./node_modules/core-js/internals/internal-state.js","webpack://domains/./node_modules/core-js/internals/is-array.js","webpack://domains/./node_modules/core-js/internals/is-callable.js","webpack://domains/./node_modules/core-js/internals/is-forced.js","webpack://domains/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://domains/./node_modules/core-js/internals/is-object.js","webpack://domains/./node_modules/core-js/internals/is-pure.js","webpack://domains/./node_modules/core-js/internals/is-symbol.js","webpack://domains/./node_modules/core-js/internals/length-of-array-like.js","webpack://domains/./node_modules/core-js/internals/make-built-in.js","webpack://domains/./node_modules/core-js/internals/math-trunc.js","webpack://domains/./node_modules/core-js/internals/object-define-property.js","webpack://domains/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://domains/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://domains/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://domains/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://domains/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://domains/./node_modules/core-js/internals/object-keys-internal.js","webpack://domains/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://domains/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://domains/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://domains/./node_modules/core-js/internals/own-keys.js","webpack://domains/./node_modules/core-js/internals/regexp-flags.js","webpack://domains/./node_modules/core-js/internals/require-object-coercible.js","webpack://domains/./node_modules/core-js/internals/shared-key.js","webpack://domains/./node_modules/core-js/internals/shared-store.js","webpack://domains/./node_modules/core-js/internals/shared.js","webpack://domains/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://domains/./node_modules/core-js/internals/to-absolute-index.js","webpack://domains/./node_modules/core-js/internals/to-indexed-object.js","webpack://domains/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://domains/./node_modules/core-js/internals/to-length.js","webpack://domains/./node_modules/core-js/internals/to-object.js","webpack://domains/./node_modules/core-js/internals/to-primitive.js","webpack://domains/./node_modules/core-js/internals/to-property-key.js","webpack://domains/./node_modules/core-js/internals/to-string-tag-support.js","webpack://domains/./node_modules/core-js/internals/try-to-string.js","webpack://domains/./node_modules/core-js/internals/uid.js","webpack://domains/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://domains/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://domains/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://domains/./node_modules/core-js/internals/well-known-symbol.js","webpack://domains/./node_modules/core-js/modules/es.array.push.js","webpack://domains/./node_modules/core-js/modules/es.array.unshift.js","webpack://domains/./node_modules/core-js/modules/es.regexp.flags.js","webpack://domains/./node_modules/core-js/modules/es.typed-array.find-last-index.js","webpack://domains/./node_modules/core-js/modules/es.typed-array.find-last.js","webpack://domains/./node_modules/dayjs/dayjs.min.js","webpack://domains/./node_modules/vue-cli-plugin-quasar/lib/runtime.auto-import.js","webpack://domains/./node_modules/vue-loader/dist/exportHelper.js","webpack://domains/./node_modules/axios/lib/helpers/bind.js","webpack://domains/./node_modules/axios/lib/utils.js","webpack://domains/./node_modules/axios/lib/core/AxiosError.js","webpack://domains/./node_modules/axios/lib/env/classes/FormData.js","webpack://domains/./node_modules/axios/lib/helpers/toFormData.js","webpack://domains/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://domains/./node_modules/axios/lib/helpers/buildURL.js","webpack://domains/./node_modules/axios/lib/core/InterceptorManager.js","webpack://domains/./node_modules/axios/lib/defaults/transitional.js","webpack://domains/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://domains/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://domains/./node_modules/axios/lib/platform/browser/index.js","webpack://domains/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://domains/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://domains/./node_modules/axios/lib/core/settle.js","webpack://domains/./node_modules/axios/lib/helpers/cookies.js","webpack://domains/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://domains/./node_modules/axios/lib/helpers/combineURLs.js","webpack://domains/./node_modules/axios/lib/core/buildFullPath.js","webpack://domains/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://domains/./node_modules/axios/lib/cancel/CanceledError.js","webpack://domains/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://domains/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://domains/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://domains/./node_modules/axios/lib/helpers/speedometer.js","webpack://domains/./node_modules/axios/lib/adapters/xhr.js","webpack://domains/./node_modules/axios/lib/adapters/index.js","webpack://domains/./node_modules/axios/lib/defaults/index.js","webpack://domains/./node_modules/axios/lib/core/transformData.js","webpack://domains/./node_modules/axios/lib/cancel/isCancel.js","webpack://domains/./node_modules/axios/lib/core/dispatchRequest.js","webpack://domains/./node_modules/axios/lib/core/mergeConfig.js","webpack://domains/./node_modules/axios/lib/env/data.js","webpack://domains/./node_modules/axios/lib/helpers/validator.js","webpack://domains/./node_modules/axios/lib/core/Axios.js","webpack://domains/./node_modules/axios/lib/cancel/CancelToken.js","webpack://domains/./node_modules/axios/lib/helpers/spread.js","webpack://domains/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://domains/./node_modules/axios/lib/axios.js","webpack://domains/./node_modules/axios/index.js"],"sourcesContent":["import { h, computed } from 'vue'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hMergeSlot } from '../../utils/private/render.js'\n\nconst alignValues = [ 'top', 'middle', 'bottom' ]\n\nexport default createComponent({\n name: 'QBadge',\n\n props: {\n color: String,\n textColor: String,\n\n floating: Boolean,\n transparent: Boolean,\n multiLine: Boolean,\n outline: Boolean,\n rounded: Boolean,\n\n label: [ Number, String ],\n\n align: {\n type: String,\n validator: v => alignValues.includes(v)\n }\n },\n\n setup (props, { slots }) {\n const style = computed(() => {\n return props.align !== void 0\n ? { verticalAlign: props.align }\n : null\n })\n\n const classes = computed(() => {\n const text = props.outline === true\n ? props.color || props.textColor\n : props.textColor\n\n return 'q-badge flex inline items-center no-wrap'\n + ` q-badge--${ props.multiLine === true ? 'multi' : 'single' }-line`\n + (props.outline === true\n ? ' q-badge--outline'\n : (props.color !== void 0 ? ` bg-${ props.color }` : '')\n )\n + (text !== void 0 ? ` text-${ text }` : '')\n + (props.floating === true ? ' q-badge--floating' : '')\n + (props.rounded === true ? ' q-badge--rounded' : '')\n + (props.transparent === true ? ' q-badge--transparent' : '')\n })\n\n return () => h('div', {\n class: classes.value,\n style: style.value,\n role: 'status',\n 'aria-label': props.label\n }, hMergeSlot(slots.default, props.label !== void 0 ? [ props.label ] : []))\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\nexport const btnPadding = {\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 btnDesignOptions = [ 'flat', 'outline', 'push', 'unelevated' ]\nexport const getBtnDesign = (props, defaultValue) => {\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 defaultValue\n}\nexport const getBtnDesignAttr = props => {\n const design = getBtnDesign(props)\n return design !== void 0\n ? { [ design ]: true }\n : {}\n}\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 ...btnDesignOptions.reduce(\n (acc, val) => (acc[ val ] = Boolean) && acc,\n {}\n ),\n\n square: Boolean,\n round: Boolean,\n rounded: 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, linkAttrs, navigateOnClick } = useRouterLink({\n fallbackTag: 'button'\n })\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 btnPadding ? btnPadding[ 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(() => getBtnDesign(props, 'standard'))\n\n const attributes = computed(() => {\n const acc = { tabindex: tabIndex.value }\n\n if (hasLink.value === true) {\n Object.assign(acc, linkAttrs.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\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 const shape = props.round === true\n ? 'round'\n : `rectangle${ isRounded.value === true ? ' q-btn--rounded' : (props.square === true ? ' q-btn--square' : '') }`\n\n return `q-btn--${ design.value } q-btn--${ shape }`\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 + (props.square ? ' q-btn--square' : '')\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 hasLink,\n linkTag,\n navigateOnClick,\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 onTouchstart: [ Function, Array ]\n },\n\n emits: [ 'click', 'keydown', 'mousedown', 'keyup' ],\n\n setup (props, { slots, emit }) {\n const { proxy } = getCurrentInstance()\n\n const {\n classes, style, innerClasses,\n attributes,\n hasLink, linkTag, navigateOnClick,\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 onTouchstart: onLoadingEvt,\n onClick: onLoadingEvt,\n onKeydown: onLoadingEvt,\n onKeyup: onLoadingEvt\n }\n }\n\n if (isActionable.value === true) {\n const acc = {\n onClick,\n onKeydown,\n onMousedown\n }\n\n if (proxy.$q.platform.has.touch === true) {\n const suffix = props.onTouchstart !== void 0\n ? ''\n : 'Passive'\n\n acc[ `onTouchstart${ suffix }` ] = onTouchstart\n }\n\n return acc\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 navigateOnClick(e)\n }\n\n function onKeydown (e) {\n // is it already destroyed?\n if (rootRef.value === null) { return }\n\n emit('keydown', e)\n\n if (isKeyCode(e, [ 13, 32 ]) === true && keyboardTarget !== rootRef.value) {\n keyboardTarget !== null && cleanup()\n\n if (e.defaultPrevented !== true) {\n // focus external button if the focus helper was focused before\n rootRef.value.focus()\n\n keyboardTarget = rootRef.value\n rootRef.value.classList.add('q-btn--active')\n document.addEventListener('keyup', onPressEnd, true)\n rootRef.value.addEventListener('blur', onPressEnd, passiveCapture)\n }\n\n stopAndPrevent(e)\n }\n }\n\n function onTouchstart (e) {\n // is it already destroyed?\n if (rootRef.value === null) { return }\n\n emit('touchstart', e)\n\n if (e.defaultPrevented === true) { return }\n\n if (touchTarget !== rootRef.value) {\n touchTarget !== null && cleanup()\n touchTarget = rootRef.value\n\n localTouchTargetEl = e.target\n localTouchTargetEl.addEventListener('touchcancel', onPressEnd, passiveCapture)\n localTouchTargetEl.addEventListener('touchend', onPressEnd, passiveCapture)\n }\n\n // avoid duplicated mousedown event\n // triggering another early ripple\n avoidMouseRipple = true\n clearTimeout(mouseTimer)\n mouseTimer = setTimeout(() => {\n avoidMouseRipple = false\n }, 200)\n }\n\n function onMousedown (e) {\n // is it already destroyed?\n if (rootRef.value === null) { return }\n\n e.qSkipRipple = avoidMouseRipple === true\n emit('mousedown', e)\n\n if (e.defaultPrevented !== true && mouseTarget !== rootRef.value) {\n mouseTarget !== null && cleanup()\n mouseTarget = rootRef.value\n rootRef.value.classList.add('q-btn--active')\n document.addEventListener('mouseup', onPressEnd, passiveCapture)\n }\n }\n\n function onPressEnd (e) {\n // is it already destroyed?\n if (rootRef.value === null) { return }\n\n // needed for IE (because it emits blur when focusing button from focus helper)\n if (e !== void 0 && e.type === 'blur' && document.activeElement === rootRef.value) {\n return\n }\n\n if (e !== void 0 && e.type === 'keyup') {\n if (keyboardTarget === rootRef.value && isKeyCode(e, [ 13, 32 ]) === true) {\n // for click trigger\n const evt = new MouseEvent('click', e)\n evt.qKeyEvent = true\n e.defaultPrevented === true && prevent(evt)\n e.cancelBubble === true && stop(evt)\n rootRef.value.dispatchEvent(evt)\n\n stopAndPrevent(e)\n\n // for ripple\n e.qKeyEvent = true\n }\n\n emit('keyup', e)\n }\n\n cleanup()\n }\n\n function cleanup (destroying) {\n const blurTarget = blurTargetRef.value\n\n if (\n destroying !== true\n && (touchTarget === rootRef.value || mouseTarget === rootRef.value)\n && blurTarget !== null\n && blurTarget !== document.activeElement\n ) {\n blurTarget.setAttribute('tabindex', -1)\n blurTarget.focus()\n }\n\n if (touchTarget === rootRef.value) {\n if (localTouchTargetEl !== null) {\n localTouchTargetEl.removeEventListener('touchcancel', onPressEnd, passiveCapture)\n localTouchTargetEl.removeEventListener('touchend', onPressEnd, passiveCapture)\n }\n touchTarget = localTouchTargetEl = null\n }\n\n if (mouseTarget === rootRef.value) {\n document.removeEventListener('mouseup', onPressEnd, passiveCapture)\n mouseTarget = null\n }\n\n if (keyboardTarget === rootRef.value) {\n document.removeEventListener('keyup', onPressEnd, true)\n rootRef.value !== null && rootRef.value.removeEventListener('blur', onPressEnd, passiveCapture)\n keyboardTarget = null\n }\n\n rootRef.value !== null && rootRef.value.classList.remove('q-btn--active')\n }\n\n function onLoadingEvt (evt) {\n stopAndPrevent(evt)\n evt.qSkipRipple = true\n }\n\n onBeforeUnmount(() => {\n cleanup(true)\n })\n\n // expose public methods\n Object.assign(proxy, { click: onClick })\n\n return () => {\n let inner = []\n\n props.icon !== void 0 && inner.push(\n h(QIcon, {\n name: props.icon,\n left: props.stack === false && hasLabel.value === true,\n role: 'img',\n 'aria-hidden': 'true'\n })\n )\n\n hasLabel.value === true && inner.push(\n h('span', { class: 'block' }, [ props.label ])\n )\n\n inner = hMergeSlot(slots.default, inner)\n\n if (props.iconRight !== void 0 && props.round === false) {\n inner.push(\n h(QIcon, {\n name: props.iconRight,\n right: props.stack === false && hasLabel.value === true,\n role: 'img',\n 'aria-hidden': 'true'\n })\n )\n }\n\n const child = [\n h('span', {\n class: 'q-focus-helper',\n ref: blurTargetRef\n })\n ]\n\n if (props.loading === true && props.percentage !== void 0) {\n child.push(\n h('span', {\n class: 'q-btn__progress absolute-full overflow-hidden' + (props.darkPercentage === true ? ' q-btn__progress--dark' : '')\n }, [\n h('span', {\n class: 'q-btn__progress-indicator fit block',\n style: percentageStyle.value\n })\n ])\n )\n }\n\n child.push(\n h('span', {\n class: 'q-btn__content text-center col items-center q-anchor--skip ' + innerClasses.value\n }, inner)\n )\n\n props.loading !== null && child.push(\n h(Transition, {\n name: 'q-transition--fade'\n }, () => (\n props.loading === true\n ? [\n h('span', {\n key: 'loading',\n class: 'absolute-full flex flex-center'\n }, slots.loading !== void 0 ? slots.loading() : [ h(QSpinner) ])\n ]\n : null\n ))\n )\n\n return withDirectives(\n h(\n linkTag.value,\n nodeProps.value,\n child\n ),\n [ [\n Ripple,\n ripple.value,\n void 0,\n rippleProps.value\n ] ]\n )\n }\n }\n})\n","import { h, computed } from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport useCheckbox, { useCheckboxProps, useCheckboxEmits } from './use-checkbox.js'\n\nconst bgNode = h('div', {\n key: 'svg',\n class: 'q-checkbox__bg absolute'\n}, [\n h('svg', {\n class: 'q-checkbox__svg fit absolute-full',\n viewBox: '0 0 24 24'\n }, [\n h('path', {\n class: 'q-checkbox__truthy',\n fill: 'none',\n d: 'M1.73,12.91 8.1,19.28 22.79,4.59'\n }),\n\n h('path', {\n class: 'q-checkbox__indet',\n d: 'M4,14H20V10H4'\n })\n ])\n])\n\nexport default createComponent({\n name: 'QCheckbox',\n\n props: useCheckboxProps,\n emits: useCheckboxEmits,\n\n setup (props) {\n function getInner (isTrue, isIndeterminate) {\n const icon = computed(() =>\n (isTrue.value === true\n ? props.checkedIcon\n : (isIndeterminate.value === true\n ? props.indeterminateIcon\n : props.uncheckedIcon\n )\n ) || null\n )\n\n return () => (\n icon.value !== null\n ? [\n h('div', {\n key: 'icon',\n class: 'q-checkbox__icon-container absolute-full flex flex-center no-wrap'\n }, [\n h(QIcon, {\n class: 'q-checkbox__icon',\n name: icon.value\n })\n ])\n ]\n : [ bgNode ]\n )\n }\n\n return useCheckbox('checkbox', getInner)\n }\n})\n","import { h, computed, ref } from 'vue'\n\nexport default function (props, rootRef) {\n const refocusRef = ref(null)\n\n const refocusTargetEl = computed(() => {\n if (props.disable === true) {\n return null\n }\n\n return h('span', {\n ref: refocusRef,\n class: 'no-outline',\n tabindex: -1\n })\n })\n\n function refocusTarget (e) {\n const root = rootRef.value\n\n if (e !== void 0 && e.type.indexOf('key') === 0) {\n if (\n root !== null\n && document.activeElement !== root\n && root.contains(document.activeElement) === true\n ) {\n root.focus()\n }\n }\n else if (\n refocusRef.value !== null\n && (e === void 0 || (root !== null && root.contains(e.target) === true))\n ) {\n refocusRef.value.focus()\n }\n }\n\n return {\n refocusTargetEl,\n refocusTarget\n }\n}\n","export default {\n xs: 30,\n sm: 35,\n md: 40,\n lg: 50,\n xl: 60\n}\n","import { h, ref, computed, getCurrentInstance, toRaw } from 'vue'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport useSize, { useSizeProps } from '../../composables/private/use-size.js'\nimport useRefocusTarget from '../../composables/private/use-refocus-target.js'\nimport { useFormInject, useFormProps } from '../../composables/private/use-form.js'\n\nimport optionSizes from '../../utils/private/option-sizes.js'\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { hSlot, hMergeSlot } from '../../utils/private/render.js'\n\nexport const useCheckboxProps = {\n ...useDarkProps,\n ...useSizeProps,\n ...useFormProps,\n\n modelValue: {\n required: true,\n default: null\n },\n val: {},\n\n trueValue: { default: true },\n falseValue: { default: false },\n indeterminateValue: { default: null },\n\n checkedIcon: String,\n uncheckedIcon: String,\n indeterminateIcon: String,\n\n toggleOrder: {\n type: String,\n validator: v => v === 'tf' || v === 'ft'\n },\n toggleIndeterminate: Boolean,\n\n label: String,\n leftLabel: Boolean,\n\n color: String,\n keepColor: Boolean,\n dense: Boolean,\n\n disable: Boolean,\n tabindex: [ String, Number ]\n}\n\nexport const useCheckboxEmits = [ 'update:modelValue' ]\n\nexport default function (type, getInner) {\n const { props, slots, emit, proxy } = getCurrentInstance()\n const { $q } = proxy\n\n const isDark = useDark(props, $q)\n\n const rootRef = ref(null)\n const { refocusTargetEl, refocusTarget } = useRefocusTarget(props, rootRef)\n const sizeStyle = useSize(props, optionSizes)\n\n const modelIsArray = computed(() =>\n props.val !== void 0 && Array.isArray(props.modelValue)\n )\n\n const index = computed(() => {\n const val = toRaw(props.val)\n return modelIsArray.value === true\n ? props.modelValue.findIndex(opt => toRaw(opt) === val)\n : -1\n })\n\n const isTrue = computed(() => (\n modelIsArray.value === true\n ? index.value > -1\n : toRaw(props.modelValue) === toRaw(props.trueValue)\n ))\n\n const isFalse = computed(() => (\n modelIsArray.value === true\n ? index.value === -1\n : toRaw(props.modelValue) === toRaw(props.falseValue)\n ))\n\n const isIndeterminate = computed(() =>\n isTrue.value === false && isFalse.value === false\n )\n\n const tabindex = computed(() => (\n props.disable === true ? -1 : props.tabindex || 0\n ))\n\n const classes = computed(() =>\n `q-${ type } cursor-pointer no-outline row inline no-wrap items-center`\n + (props.disable === true ? ' disabled' : '')\n + (isDark.value === true ? ` q-${ type }--dark` : '')\n + (props.dense === true ? ` q-${ type }--dense` : '')\n + (props.leftLabel === true ? ' reverse' : '')\n )\n\n const innerClass = computed(() => {\n const state = isTrue.value === true ? 'truthy' : (isFalse.value === true ? 'falsy' : 'indet')\n const color = props.color !== void 0 && (\n props.keepColor === true\n || (type === 'toggle' ? isTrue.value === true : isFalse.value !== true)\n )\n ? ` text-${ props.color }`\n : ''\n\n return `q-${ type }__inner relative-position non-selectable q-${ type }__inner--${ state }${ color }`\n })\n\n const formAttrs = computed(() => {\n const prop = { type: 'checkbox' }\n\n props.name !== void 0 && Object.assign(prop, {\n '^checked': isTrue.value === true ? 'checked' : void 0,\n name: props.name,\n value: modelIsArray.value === true\n ? props.val\n : props.trueValue\n })\n\n return prop\n })\n\n const injectFormInput = useFormInject(formAttrs)\n\n const attributes = computed(() => {\n const attrs = {\n tabindex: tabindex.value,\n role: type === 'toggle' ? 'switch' : 'checkbox',\n 'aria-label': props.label,\n 'aria-checked': isIndeterminate.value === true\n ? 'mixed'\n : (isTrue.value === true ? 'true' : 'false')\n }\n\n if (props.disable === true) {\n attrs[ 'aria-disabled' ] = 'true'\n }\n\n return attrs\n })\n\n function onClick (e) {\n if (e !== void 0) {\n stopAndPrevent(e)\n refocusTarget(e)\n }\n\n if (props.disable !== true) {\n emit('update:modelValue', getNextValue(), e)\n }\n }\n\n function getNextValue () {\n if (modelIsArray.value === true) {\n if (isTrue.value === true) {\n const val = props.modelValue.slice()\n val.splice(index.value, 1)\n return val\n }\n\n return props.modelValue.concat([ props.val ])\n }\n\n if (isTrue.value === true) {\n if (props.toggleOrder !== 'ft' || props.toggleIndeterminate === false) {\n return props.falseValue\n }\n }\n else if (isFalse.value === true) {\n if (props.toggleOrder === 'ft' || props.toggleIndeterminate === false) {\n return props.trueValue\n }\n }\n else {\n return props.toggleOrder !== 'ft'\n ? props.trueValue\n : props.falseValue\n }\n\n return props.indeterminateValue\n }\n\n function onKeydown (e) {\n if (e.keyCode === 13 || e.keyCode === 32) {\n stopAndPrevent(e)\n }\n }\n\n function onKeyup (e) {\n if (e.keyCode === 13 || e.keyCode === 32) {\n onClick(e)\n }\n }\n\n const getInnerContent = getInner(isTrue, isIndeterminate)\n\n // expose public methods\n Object.assign(proxy, { toggle: onClick })\n\n return () => {\n const inner = getInnerContent()\n\n props.disable !== true && injectFormInput(\n inner,\n 'unshift',\n ` q-${ type }__native absolute q-ma-none q-pa-none`\n )\n\n const child = [\n h('div', {\n class: innerClass.value,\n style: sizeStyle.value,\n 'aria-hidden': 'true'\n }, inner)\n ]\n\n if (refocusTargetEl.value !== null) {\n child.push(refocusTargetEl.value)\n }\n\n const label = props.label !== void 0\n ? hMergeSlot(slots.default, [ props.label ])\n : hSlot(slots.default)\n\n label !== void 0 && child.push(\n h('div', {\n class: `q-${ type }__label q-anchor--skip`\n }, label)\n )\n\n return h('div', {\n ref: rootRef,\n class: classes.value,\n ...attributes.value,\n onClick,\n onKeydown,\n onKeyup\n }, child)\n }\n}\n","import { h, withDirectives, ref, computed, watch, onMounted, onBeforeUnmount, nextTick, inject, getCurrentInstance } from 'vue'\n\nimport useHistory from '../../composables/private/use-history.js'\nimport useModelToggle, { useModelToggleProps, useModelToggleEmits } from '../../composables/private/use-model-toggle.js'\nimport usePreventScroll from '../../composables/private/use-prevent-scroll.js'\nimport useTimeout from '../../composables/private/use-timeout.js'\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\n\nimport TouchPan from '../../directives/TouchPan.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { between } from '../../utils/format.js'\nimport { hSlot, hDir } from '../../utils/private/render.js'\nimport { layoutKey, emptyRenderFn } from '../../utils/private/symbols.js'\n\nconst duration = 150\n\nexport default createComponent({\n name: 'QDrawer',\n\n inheritAttrs: false,\n\n props: {\n ...useModelToggleProps,\n ...useDarkProps,\n\n side: {\n type: String,\n default: 'left',\n validator: v => [ 'left', 'right' ].includes(v)\n },\n\n width: {\n type: Number,\n default: 300\n },\n\n mini: Boolean,\n miniToOverlay: Boolean,\n miniWidth: {\n type: Number,\n default: 57\n },\n\n breakpoint: {\n type: Number,\n default: 1023\n },\n showIfAbove: Boolean,\n\n behavior: {\n type: String,\n validator: v => [ 'default', 'desktop', 'mobile' ].includes(v),\n default: 'default'\n },\n\n bordered: Boolean,\n elevated: Boolean,\n\n overlay: Boolean,\n persistent: Boolean,\n noSwipeOpen: Boolean,\n noSwipeClose: Boolean,\n noSwipeBackdrop: Boolean\n },\n\n emits: [\n ...useModelToggleEmits,\n 'onLayout', 'miniState'\n ],\n\n setup (props, { slots, emit, attrs }) {\n const vm = getCurrentInstance()\n const { proxy: { $q } } = vm\n\n const isDark = useDark(props, $q)\n const { preventBodyScroll } = usePreventScroll()\n const { registerTimeout, removeTimeout } = useTimeout()\n\n const $layout = inject(layoutKey, emptyRenderFn)\n if ($layout === emptyRenderFn) {\n console.error('QDrawer needs to be child of QLayout')\n return emptyRenderFn\n }\n\n let lastDesktopState, timerMini, layoutTotalWidthWatcher\n\n const belowBreakpoint = ref(\n props.behavior === 'mobile'\n || (props.behavior !== 'desktop' && $layout.totalWidth.value <= props.breakpoint)\n )\n\n const isMini = computed(() =>\n props.mini === true && belowBreakpoint.value !== true\n )\n\n const size = computed(() => (\n isMini.value === true\n ? props.miniWidth\n : props.width\n ))\n\n const showing = ref(\n props.showIfAbove === true && belowBreakpoint.value === false\n ? true\n : props.modelValue === true\n )\n\n const hideOnRouteChange = computed(() =>\n props.persistent !== true\n && (belowBreakpoint.value === true || onScreenOverlay.value === true)\n )\n\n function handleShow (evt, noEvent) {\n addToHistory()\n\n evt !== false && $layout.animate()\n applyPosition(0)\n\n if (belowBreakpoint.value === true) {\n const otherInstance = $layout.instances[ otherSide.value ]\n if (otherInstance !== void 0 && otherInstance.belowBreakpoint === true) {\n otherInstance.hide(false)\n }\n\n applyBackdrop(1)\n $layout.isContainer.value !== true && preventBodyScroll(true)\n }\n else {\n applyBackdrop(0)\n evt !== false && setScrollable(false)\n }\n\n registerTimeout(() => {\n evt !== false && setScrollable(true)\n noEvent !== true && emit('show', evt)\n }, duration)\n }\n\n function handleHide (evt, noEvent) {\n removeFromHistory()\n\n evt !== false && $layout.animate()\n\n applyBackdrop(0)\n applyPosition(stateDirection.value * size.value)\n\n cleanup()\n\n if (noEvent !== true) {\n registerTimeout(() => { emit('hide', evt) }, duration)\n }\n else {\n removeTimeout()\n }\n }\n\n const { show, hide } = useModelToggle({\n showing,\n hideOnRouteChange,\n handleShow,\n handleHide\n })\n\n const { addToHistory, removeFromHistory } = useHistory(showing, hide, hideOnRouteChange)\n\n const instance = {\n belowBreakpoint,\n hide\n }\n\n const rightSide = computed(() => props.side === 'right')\n\n const stateDirection = computed(() =>\n ($q.lang.rtl === true ? -1 : 1) * (rightSide.value === true ? 1 : -1)\n )\n\n const flagBackdropBg = ref(0)\n const flagPanning = ref(false)\n const flagMiniAnimate = ref(false)\n const flagContentPosition = ref( // starting with \"hidden\" for SSR\n size.value * stateDirection.value\n )\n\n const otherSide = computed(() => (rightSide.value === true ? 'left' : 'right'))\n const offset = computed(() => (\n showing.value === true && belowBreakpoint.value === false && props.overlay === false\n ? (props.miniToOverlay === true ? props.miniWidth : size.value)\n : 0\n ))\n\n const fixed = computed(() =>\n props.overlay === true\n || props.miniToOverlay === true\n || $layout.view.value.indexOf(rightSide.value ? 'R' : 'L') > -1\n || ($q.platform.is.ios === true && $layout.isContainer.value === true)\n )\n\n const onLayout = computed(() =>\n props.overlay === false\n && showing.value === true\n && belowBreakpoint.value === false\n )\n\n const onScreenOverlay = computed(() =>\n props.overlay === true\n && showing.value === true\n && belowBreakpoint.value === false\n )\n\n const backdropClass = computed(() =>\n 'fullscreen q-drawer__backdrop'\n + (showing.value === false && flagPanning.value === false ? ' hidden' : '')\n )\n\n const backdropStyle = computed(() => ({\n backgroundColor: `rgba(0,0,0,${ flagBackdropBg.value * 0.4 })`\n }))\n\n const headerSlot = computed(() => (\n rightSide.value === true\n ? $layout.rows.value.top[ 2 ] === 'r'\n : $layout.rows.value.top[ 0 ] === 'l'\n ))\n\n const footerSlot = computed(() => (\n rightSide.value === true\n ? $layout.rows.value.bottom[ 2 ] === 'r'\n : $layout.rows.value.bottom[ 0 ] === 'l'\n ))\n\n const aboveStyle = computed(() => {\n const css = {}\n\n if ($layout.header.space === true && headerSlot.value === false) {\n if (fixed.value === true) {\n css.top = `${ $layout.header.offset }px`\n }\n else if ($layout.header.space === true) {\n css.top = `${ $layout.header.size }px`\n }\n }\n\n if ($layout.footer.space === true && footerSlot.value === false) {\n if (fixed.value === true) {\n css.bottom = `${ $layout.footer.offset }px`\n }\n else if ($layout.footer.space === true) {\n css.bottom = `${ $layout.footer.size }px`\n }\n }\n\n return css\n })\n\n const style = computed(() => {\n const style = {\n width: `${ size.value }px`,\n transform: `translateX(${ flagContentPosition.value }px)`\n }\n\n return belowBreakpoint.value === true\n ? style\n : Object.assign(style, aboveStyle.value)\n })\n\n const contentClass = computed(() =>\n 'q-drawer__content fit '\n + ($layout.isContainer.value !== true ? 'scroll' : 'overflow-auto')\n )\n\n const classes = computed(() =>\n `q-drawer q-drawer--${ props.side }`\n + (flagMiniAnimate.value === true ? ' q-drawer--mini-animate' : '')\n + (props.bordered === true ? ' q-drawer--bordered' : '')\n + (isDark.value === true ? ' q-drawer--dark q-dark' : '')\n + (\n flagPanning.value === true\n ? ' no-transition'\n : (showing.value === true ? '' : ' q-layout--prevent-focus')\n )\n + (\n belowBreakpoint.value === true\n ? ' fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding'\n : ` q-drawer--${ isMini.value === true ? 'mini' : 'standard' }`\n + (fixed.value === true || onLayout.value !== true ? ' fixed' : '')\n + (props.overlay === true || props.miniToOverlay === true ? ' q-drawer--on-top' : '')\n + (headerSlot.value === true ? ' q-drawer--top-padding' : '')\n )\n )\n\n const openDirective = computed(() => {\n // if props.noSwipeOpen !== true\n const dir = $q.lang.rtl === true ? props.side : otherSide.value\n\n return [ [\n TouchPan,\n onOpenPan,\n void 0,\n {\n [ dir ]: true,\n mouse: true\n }\n ] ]\n })\n\n const contentCloseDirective = computed(() => {\n // if belowBreakpoint.value === true && props.noSwipeClose !== true\n const dir = $q.lang.rtl === true ? otherSide.value : props.side\n\n return [ [\n TouchPan,\n onClosePan,\n void 0,\n {\n [ dir ]: true,\n mouse: true\n }\n ] ]\n })\n\n const backdropCloseDirective = computed(() => {\n // if showing.value === true && props.noSwipeBackdrop !== true\n const dir = $q.lang.rtl === true ? otherSide.value : props.side\n\n return [ [\n TouchPan,\n onClosePan,\n void 0,\n {\n [ dir ]: true,\n mouse: true,\n mouseAllDir: true\n }\n ] ]\n })\n\n function updateBelowBreakpoint () {\n updateLocal(belowBreakpoint, (\n props.behavior === 'mobile'\n || (props.behavior !== 'desktop' && $layout.totalWidth.value <= props.breakpoint)\n ))\n }\n\n watch(belowBreakpoint, val => {\n if (val === true) { // from lg to xs\n lastDesktopState = showing.value\n showing.value === true && hide(false)\n }\n else if (\n props.overlay === false\n && props.behavior !== 'mobile'\n && lastDesktopState !== false\n ) { // from xs to lg\n if (showing.value === true) {\n applyPosition(0)\n applyBackdrop(0)\n cleanup()\n }\n else {\n show(false)\n }\n }\n })\n\n watch(() => props.side, (newSide, oldSide) => {\n if ($layout.instances[ oldSide ] === instance) {\n $layout.instances[ oldSide ] = void 0\n $layout[ oldSide ].space = false\n $layout[ oldSide ].offset = 0\n }\n\n $layout.instances[ newSide ] = instance\n $layout[ newSide ].size = size.value\n $layout[ newSide ].space = onLayout.value\n $layout[ newSide ].offset = offset.value\n })\n\n watch($layout.totalWidth, () => {\n if ($layout.isContainer.value === true || document.qScrollPrevented !== true) {\n updateBelowBreakpoint()\n }\n })\n\n watch(\n () => props.behavior + props.breakpoint,\n updateBelowBreakpoint\n )\n\n watch($layout.isContainer, val => {\n showing.value === true && preventBodyScroll(val !== true)\n val === true && updateBelowBreakpoint()\n })\n\n watch($layout.scrollbarWidth, () => {\n applyPosition(showing.value === true ? 0 : void 0)\n })\n\n watch(offset, val => { updateLayout('offset', val) })\n\n watch(onLayout, val => {\n emit('onLayout', val)\n updateLayout('space', val)\n })\n\n watch(rightSide, () => { applyPosition() })\n\n watch(size, val => {\n applyPosition()\n updateSizeOnLayout(props.miniToOverlay, val)\n })\n\n watch(() => props.miniToOverlay, val => {\n updateSizeOnLayout(val, size.value)\n })\n\n watch(() => $q.lang.rtl, () => { applyPosition() })\n\n watch(() => props.mini, () => {\n if (props.modelValue === true) {\n animateMini()\n $layout.animate()\n }\n })\n\n watch(isMini, val => { emit('miniState', val) })\n\n function applyPosition (position) {\n if (position === void 0) {\n nextTick(() => {\n position = showing.value === true ? 0 : size.value\n applyPosition(stateDirection.value * position)\n })\n }\n else {\n if (\n $layout.isContainer.value === true\n && rightSide.value === true\n && (belowBreakpoint.value === true || Math.abs(position) === size.value)\n ) {\n position += stateDirection.value * $layout.scrollbarWidth.value\n }\n\n flagContentPosition.value = position\n }\n }\n\n function applyBackdrop (x) {\n flagBackdropBg.value = x\n }\n\n function setScrollable (v) {\n const action = v === true\n ? 'remove'\n : ($layout.isContainer.value !== true ? 'add' : '')\n\n action !== '' && document.body.classList[ action ]('q-body--drawer-toggle')\n }\n\n function animateMini () {\n clearTimeout(timerMini)\n\n if (vm.proxy && vm.proxy.$el) {\n // need to speed it up and apply it immediately,\n // even faster than Vue's nextTick!\n vm.proxy.$el.classList.add('q-drawer--mini-animate')\n }\n\n flagMiniAnimate.value = true\n timerMini = setTimeout(() => {\n flagMiniAnimate.value = false\n if (vm && vm.proxy && vm.proxy.$el) {\n vm.proxy.$el.classList.remove('q-drawer--mini-animate')\n }\n }, 150)\n }\n\n function onOpenPan (evt) {\n if (showing.value !== false) {\n // some browsers might capture and trigger this\n // even if Drawer has just been opened (but animation is still pending)\n return\n }\n\n const\n width = size.value,\n position = between(evt.distance.x, 0, width)\n\n if (evt.isFinal === true) {\n const opened = position >= Math.min(75, width)\n\n if (opened === true) {\n show()\n }\n else {\n $layout.animate()\n applyBackdrop(0)\n applyPosition(stateDirection.value * width)\n }\n\n flagPanning.value = false\n return\n }\n\n applyPosition(\n ($q.lang.rtl === true ? rightSide.value !== true : rightSide.value)\n ? Math.max(width - position, 0)\n : Math.min(0, position - width)\n )\n applyBackdrop(\n between(position / width, 0, 1)\n )\n\n if (evt.isFirst === true) {\n flagPanning.value = true\n }\n }\n\n function onClosePan (evt) {\n if (showing.value !== true) {\n // some browsers might capture and trigger this\n // even if Drawer has just been closed (but animation is still pending)\n return\n }\n\n const\n width = size.value,\n dir = evt.direction === props.side,\n position = ($q.lang.rtl === true ? dir !== true : dir)\n ? between(evt.distance.x, 0, width)\n : 0\n\n if (evt.isFinal === true) {\n const opened = Math.abs(position) < Math.min(75, width)\n\n if (opened === true) {\n $layout.animate()\n applyBackdrop(1)\n applyPosition(0)\n }\n else {\n hide()\n }\n\n flagPanning.value = false\n return\n }\n\n applyPosition(stateDirection.value * position)\n applyBackdrop(between(1 - position / width, 0, 1))\n\n if (evt.isFirst === true) {\n flagPanning.value = true\n }\n }\n\n function cleanup () {\n preventBodyScroll(false)\n setScrollable(true)\n }\n\n function updateLayout (prop, val) {\n $layout.update(props.side, prop, val)\n }\n\n function updateLocal (prop, val) {\n if (prop.value !== val) {\n prop.value = val\n }\n }\n\n function updateSizeOnLayout (miniToOverlay, size) {\n updateLayout('size', miniToOverlay === true ? props.miniWidth : size)\n }\n\n $layout.instances[ props.side ] = instance\n updateSizeOnLayout(props.miniToOverlay, size.value)\n updateLayout('space', onLayout.value)\n updateLayout('offset', offset.value)\n\n if (\n props.showIfAbove === true\n && props.modelValue !== true\n && showing.value === true\n && props[ 'onUpdate:modelValue' ] !== void 0\n ) {\n emit('update:modelValue', true)\n }\n\n onMounted(() => {\n emit('onLayout', onLayout.value)\n emit('miniState', isMini.value)\n\n lastDesktopState = props.showIfAbove === true\n\n const fn = () => {\n const action = showing.value === true ? handleShow : handleHide\n action(false, true)\n }\n\n if ($layout.totalWidth.value !== 0) {\n // make sure that all computed properties\n // have been updated before calling handleShow/handleHide()\n nextTick(fn)\n return\n }\n\n layoutTotalWidthWatcher = watch($layout.totalWidth, () => {\n layoutTotalWidthWatcher()\n layoutTotalWidthWatcher = void 0\n\n if (showing.value === false && props.showIfAbove === true && belowBreakpoint.value === false) {\n show(false)\n }\n else {\n fn()\n }\n })\n })\n\n onBeforeUnmount(() => {\n layoutTotalWidthWatcher !== void 0 && layoutTotalWidthWatcher()\n clearTimeout(timerMini)\n\n showing.value === true && cleanup()\n\n if ($layout.instances[ props.side ] === instance) {\n $layout.instances[ props.side ] = void 0\n updateLayout('size', 0)\n updateLayout('offset', 0)\n updateLayout('space', false)\n }\n })\n\n return () => {\n const child = []\n\n if (belowBreakpoint.value === true) {\n props.noSwipeOpen === false && child.push(\n withDirectives(\n h('div', {\n key: 'open',\n class: `q-drawer__opener fixed-${ props.side }`,\n 'aria-hidden': 'true'\n }),\n openDirective.value\n )\n )\n\n child.push(\n hDir(\n 'div',\n {\n ref: 'backdrop',\n class: backdropClass.value,\n style: backdropStyle.value,\n 'aria-hidden': 'true',\n onClick: hide\n },\n void 0,\n 'backdrop',\n props.noSwipeBackdrop !== true && showing.value === true,\n () => backdropCloseDirective.value\n )\n )\n }\n\n const mini = isMini.value === true && slots.mini !== void 0\n const content = [\n h('div', {\n ...attrs,\n key: '' + mini, // required otherwise Vue will not diff correctly\n class: [\n contentClass.value,\n attrs.class\n ]\n }, mini === true\n ? slots.mini()\n : hSlot(slots.default)\n )\n ]\n\n if (props.elevated === true && showing.value === true) {\n content.push(\n h('div', {\n class: 'q-layout__shadow absolute-full overflow-hidden no-pointer-events'\n })\n )\n }\n\n child.push(\n hDir(\n 'aside',\n { ref: 'content', class: classes.value, style: style.value },\n content,\n 'contentclose',\n props.noSwipeClose !== true && belowBreakpoint.value === true,\n () => contentCloseDirective.value\n )\n )\n\n return h('div', { class: 'q-drawer-container' }, child)\n }\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, emptyRenderFn } 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, emptyRenderFn)\n if ($layout === emptyRenderFn) {\n console.error('QHeader needs to be child of QLayout')\n return emptyRenderFn\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 { 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 + (unmaskChar === '' ? '' : '[' + unmaskChar + ']*') + '$'\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(props.reverseFillMask === true ? val : val.slice(0, mask.length))\n if (unmaskMatch !== null) {\n val = unmaskMatch.slice(1).join('')\n }\n\n const\n extractMatch = [],\n extractMatcherLength = extractMatcher.length\n\n for (let i = 0, str = val; i < extractMatcherLength; i++) {\n const m = extractMatcher[ i ].exec(str)\n\n if (m === null) {\n break\n }\n\n str = str.slice(m.shift().length)\n extractMatch.push(...m)\n }\n if (extractMatch.length > 0) {\n return extractMatch.join('')\n }\n\n return val\n }\n maskMarked = mask.map(v => (typeof v === 'string' ? v : MARKER)).join('')\n maskReplaced = maskMarked.split(MARKER).join(fillChar)\n }\n\n function updateMaskValue (rawVal, updateMaskInternalsFlag, inputType) {\n const\n inp = inputRef.value,\n end = inp.selectionEnd,\n endReverse = inp.value.length - end,\n unmasked = unmaskValue(rawVal)\n\n // Update here so unmask uses the original fillChar\n updateMaskInternalsFlag === true && updateMaskInternals()\n\n const\n preMasked = maskValue(unmasked),\n masked = props.fillMask !== false\n ? fillWithMask(preMasked)\n : preMasked,\n changed = innerValue.value !== masked\n\n // We want to avoid \"flickering\" so we set value immediately\n inp.value !== masked && (inp.value = masked)\n\n changed === true && (innerValue.value = masked)\n\n document.activeElement === inp && nextTick(() => {\n if (masked === maskReplaced) {\n const cursor = props.reverseFillMask === true ? maskReplaced.length : 0\n inp.setSelectionRange(cursor, cursor, 'forward')\n\n return\n }\n\n if (inputType === 'insertFromPaste' && props.reverseFillMask !== true) {\n const cursor = end - 1\n moveCursor.right(inp, cursor, cursor)\n\n return\n }\n\n if ([ 'deleteContentBackward', 'deleteContentForward' ].indexOf(inputType) > -1) {\n const cursor = props.reverseFillMask === true\n ? (\n end === 0\n ? (masked.length > preMasked.length ? 1 : 0)\n : Math.max(0, masked.length - (masked === maskReplaced ? 0 : Math.min(preMasked.length, endReverse) + 1)) + 1\n )\n : end\n\n inp.setSelectionRange(cursor, cursor, 'forward')\n return\n }\n\n if (props.reverseFillMask === true) {\n if (changed === true) {\n const cursor = Math.max(0, masked.length - (masked === maskReplaced ? 0 : Math.min(preMasked.length, endReverse + 1)))\n\n if (cursor === 1 && end === 1) {\n inp.setSelectionRange(cursor, cursor, 'forward')\n }\n else {\n moveCursor.rightReverse(inp, cursor, cursor)\n }\n }\n else {\n const cursor = masked.length - endReverse\n inp.setSelectionRange(cursor, cursor, 'backward')\n }\n }\n else {\n if (changed === true) {\n const cursor = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, end) - 1)\n moveCursor.right(inp, cursor, cursor)\n }\n else {\n const cursor = end - 1\n moveCursor.right(inp, cursor, cursor)\n }\n }\n })\n\n const val = props.unmaskedValue === true\n ? unmaskValue(masked)\n : masked\n\n String(props.modelValue) !== val && emitValue(val, true)\n }\n\n function moveCursorForPaste (inp, start, end) {\n const preMasked = maskValue(unmaskValue(inp.value))\n\n start = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, start))\n\n inp.setSelectionRange(start, end, 'forward')\n }\n\n const moveCursor = {\n left (inp, start, end, selection) {\n const noMarkBefore = maskMarked.slice(start - 1).indexOf(MARKER) === -1\n let i = Math.max(0, start - 1)\n\n for (; i >= 0; i--) {\n if (maskMarked[ i ] === MARKER) {\n start = i\n noMarkBefore === true && start++\n break\n }\n }\n\n if (\n i < 0\n && maskMarked[ start ] !== void 0\n && maskMarked[ start ] !== MARKER\n ) {\n return moveCursor.right(inp, 0, 0)\n }\n\n start >= 0 && inp.setSelectionRange(\n start,\n selection === true ? end : start, 'backward'\n )\n },\n\n right (inp, start, end, selection) {\n const limit = inp.value.length\n let i = Math.min(limit, end + 1)\n\n for (; i <= limit; i++) {\n if (maskMarked[ i ] === MARKER) {\n end = i\n break\n }\n else if (maskMarked[ i - 1 ] === MARKER) {\n end = i\n }\n }\n\n if (\n i > limit\n && maskMarked[ end - 1 ] !== void 0\n && maskMarked[ end - 1 ] !== MARKER\n ) {\n return moveCursor.left(inp, limit, limit)\n }\n\n inp.setSelectionRange(selection ? start : end, end, 'forward')\n },\n\n leftReverse (inp, start, end, selection) {\n const\n localMaskMarked = getPaddedMaskMarked(inp.value.length)\n let i = Math.max(0, start - 1)\n\n for (; i >= 0; i--) {\n if (localMaskMarked[ i - 1 ] === MARKER) {\n start = i\n break\n }\n else if (localMaskMarked[ i ] === MARKER) {\n start = i\n if (i === 0) {\n break\n }\n }\n }\n\n if (\n i < 0\n && localMaskMarked[ start ] !== void 0\n && localMaskMarked[ start ] !== MARKER\n ) {\n return moveCursor.rightReverse(inp, 0, 0)\n }\n\n start >= 0 && inp.setSelectionRange(\n start,\n selection === true ? end : start, 'backward'\n )\n },\n\n rightReverse (inp, start, end, selection) {\n const\n limit = inp.value.length,\n localMaskMarked = getPaddedMaskMarked(limit),\n noMarkBefore = localMaskMarked.slice(0, end + 1).indexOf(MARKER) === -1\n let i = Math.min(limit, end + 1)\n\n for (; i <= limit; i++) {\n if (localMaskMarked[ i - 1 ] === MARKER) {\n end = i\n end > 0 && noMarkBefore === true && end--\n break\n }\n }\n\n if (\n i > limit\n && localMaskMarked[ end - 1 ] !== void 0\n && localMaskMarked[ end - 1 ] !== MARKER\n ) {\n return moveCursor.leftReverse(inp, limit, limit)\n }\n\n inp.setSelectionRange(selection === true ? start : end, end, 'forward')\n }\n }\n\n function onMaskedKeydown (e) {\n if (shouldIgnoreKey(e) === true) {\n return\n }\n\n const\n inp = inputRef.value,\n start = inp.selectionStart,\n end = inp.selectionEnd\n\n if (e.keyCode === 37 || e.keyCode === 39) { // Left / Right\n const fn = moveCursor[ (e.keyCode === 39 ? 'right' : 'left') + (props.reverseFillMask === true ? 'Reverse' : '') ]\n\n e.preventDefault()\n fn(inp, start, end, e.shiftKey)\n }\n else if (\n e.keyCode === 8 // Backspace\n && props.reverseFillMask !== true\n && start === end\n ) {\n moveCursor.left(inp, start, end, true)\n }\n else if (\n e.keyCode === 46 // Delete\n && props.reverseFillMask === true\n && start === end\n ) {\n moveCursor.rightReverse(inp, start, end, true)\n }\n }\n\n function maskValue (val) {\n if (val === void 0 || val === null || val === '') { return '' }\n\n if (props.reverseFillMask === true) {\n return maskValueReverse(val)\n }\n\n const mask = computedMask\n\n let valIndex = 0, output = ''\n\n for (let maskIndex = 0; maskIndex < mask.length; maskIndex++) {\n const\n valChar = val[ valIndex ],\n maskDef = mask[ maskIndex ]\n\n if (typeof maskDef === 'string') {\n output += maskDef\n valChar === maskDef && valIndex++\n }\n else if (valChar !== void 0 && maskDef.regex.test(valChar)) {\n output += maskDef.transform !== void 0\n ? maskDef.transform(valChar)\n : valChar\n valIndex++\n }\n else {\n return output\n }\n }\n\n return output\n }\n\n function maskValueReverse (val) {\n const\n mask = computedMask,\n firstTokenIndex = maskMarked.indexOf(MARKER)\n\n let valIndex = val.length - 1, output = ''\n\n for (let maskIndex = mask.length - 1; maskIndex >= 0 && valIndex > -1; maskIndex--) {\n const maskDef = mask[ maskIndex ]\n\n let valChar = val[ valIndex ]\n\n if (typeof maskDef === 'string') {\n output = maskDef + output\n valChar === maskDef && valIndex--\n }\n else if (valChar !== void 0 && maskDef.regex.test(valChar)) {\n do {\n output = (maskDef.transform !== void 0 ? maskDef.transform(valChar) : valChar) + output\n valIndex--\n valChar = val[ valIndex ]\n // eslint-disable-next-line no-unmodified-loop-condition\n } while (firstTokenIndex === maskIndex && valChar !== void 0 && maskDef.regex.test(valChar))\n }\n else {\n return output\n }\n }\n\n return output\n }\n\n function unmaskValue (val) {\n return typeof val !== 'string' || computedUnmask === void 0\n ? (typeof val === 'number' ? computedUnmask('' + val) : val)\n : computedUnmask(val)\n }\n\n function fillWithMask (val) {\n if (maskReplaced.length - val.length <= 0) {\n return val\n }\n\n return props.reverseFillMask === true && val.length > 0\n ? maskReplaced.slice(0, -val.length) + val\n : val + maskReplaced.slice(val.length)\n }\n\n return {\n innerValue,\n hasMask,\n moveCursorForPaste,\n updateMaskValue,\n onMaskedKeydown\n }\n}\n","import { computed } from 'vue'\n\nexport default function (props, typeGuard) {\n function getFormDomProps () {\n const model = props.modelValue\n\n try {\n const dt = 'DataTransfer' in window\n ? new DataTransfer()\n : ('ClipboardEvent' in window\n ? new ClipboardEvent('').clipboardData\n : void 0\n )\n\n if (Object(model) === model) {\n ('length' in model\n ? Array.from(model)\n : [ model ]\n ).forEach(file => {\n dt.items.add(file)\n })\n }\n\n return {\n files: dt.files\n }\n }\n catch (e) {\n return {\n files: void 0\n }\n }\n }\n\n return typeGuard === true\n ? computed(() => {\n if (props.type !== 'file') {\n return\n }\n\n return getFormDomProps()\n })\n : computed(getFormDomProps)\n}\n","import { 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'\nimport { injectProp } from '../../utils/private/inject-obj-prop.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 { proxy } = getCurrentInstance()\n const { $q } = proxy\n\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) {\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 (e.target.qComposing === true) {\n temp.value = val\n\n return\n }\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 requestAnimationFrame(() => {\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 // Firefox rulez #14263, #14344\n $q.platform.is.firefox !== true && (inp.style.overflow = 'hidden')\n inp.style.height = '1px'\n parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px'\n\n inp.style.height = inp.scrollHeight + 'px'\n inp.style.overflow = overflow\n parentStyle.marginBottom = ''\n }\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 Object.assign(proxy, {\n focus,\n select,\n getNativeElement: () => inputRef.value // deprecated\n })\n\n injectProp(proxy, 'nativeEl', () => inputRef.value)\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 { hasLink, linkAttrs, linkClass, linkTag, navigateOnClick } = 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 ? ` q-item--active${ props.activeClass !== void 0 ? ` ${ props.activeClass }` : '' }`\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 navigateOnClick(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 role: 'listitem',\n onClick,\n onKeyup\n }\n\n if (isClickable.value === true) {\n data.tabindex = props.tabindex || '0'\n Object.assign(data, linkAttrs.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: 'QItemLabel',\n\n props: {\n overline: Boolean,\n caption: Boolean,\n header: Boolean,\n lines: [ Number, String ]\n },\n\n setup (props, { slots }) {\n const parsedLines = computed(() => parseInt(props.lines, 10))\n\n const classes = computed(() =>\n 'q-item__label'\n + (props.overline === true ? ' q-item__label--overline text-overline' : '')\n + (props.caption === true ? ' q-item__label--caption text-caption' : '')\n + (props.header === true ? ' q-item__label--header' : '')\n + (parsedLines.value === 1 ? ' ellipsis' : '')\n )\n\n const style = computed(() => {\n return props.lines !== void 0 && parsedLines.value > 1\n ? {\n overflow: 'hidden',\n display: '-webkit-box',\n '-webkit-box-orient': 'vertical',\n '-webkit-line-clamp': parsedLines.value\n }\n : null\n })\n\n return () => h('div', {\n style: style.value,\n class: classes.value\n }, 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: '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 tag: {\n type: String,\n default: 'div'\n }\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(props.tag, { class: classes.value, role: 'list' }, 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 { proxy } = getCurrentInstance()\n\n watch(() => proxy.$q.lang.rtl, emitEvent)\n\n onMounted(() => {\n parentEl = proxy.$el.parentNode\n configureScrollTarget()\n })\n\n onBeforeUnmount(() => {\n clearTimer !== null && clearTimer()\n unconfigureScrollTarget()\n })\n\n // expose public methods\n Object.assign(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('scrollHeight', 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 { 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, emptyRenderFn } 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, emptyRenderFn)\n if ($layout === emptyRenderFn) {\n console.error('QPageContainer needs to be child of QLayout')\n return emptyRenderFn\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 { h, ref, computed, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport TouchPan from '../../directives/TouchPan.js'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport { useFormProps, useFormInject } from '../../composables/private/use-form.js'\n\nimport { between } from '../../utils/format.js'\nimport { position } from '../../utils/event.js'\nimport { isNumber, isObject } from '../../utils/is.js'\nimport { hDir } from '../../utils/private/render.js'\n\nconst markerPrefixClass = 'q-slider__marker-labels'\nconst defaultMarkerConvertFn = v => ({ value: v })\nconst defaultMarkerLabelRenderFn = ({ marker }) => h('div', {\n key: marker.value,\n style: marker.style,\n class: marker.classes\n}, marker.label)\n\n// PGDOWN, LEFT, DOWN, PGUP, RIGHT, UP\nexport const keyCodes = [ 34, 37, 40, 33, 39, 38 ]\n\nexport const useSliderProps = {\n ...useDarkProps,\n ...useFormProps,\n\n min: {\n type: Number,\n default: 0\n },\n max: {\n type: Number,\n default: 100\n },\n innerMin: Number,\n innerMax: Number,\n\n step: {\n type: Number,\n default: 1,\n validator: v => v >= 0\n },\n\n snap: Boolean,\n\n vertical: Boolean,\n reverse: Boolean,\n\n hideSelection: Boolean,\n\n color: String,\n markerLabelsClass: String,\n\n label: Boolean,\n labelColor: String,\n labelTextColor: String,\n labelAlways: Boolean,\n switchLabelSide: Boolean,\n\n markers: [ Boolean, Number ],\n markerLabels: [ Boolean, Array, Object, Function ],\n switchMarkerLabelsSide: Boolean,\n\n trackImg: String,\n trackColor: String,\n innerTrackImg: String,\n innerTrackColor: String,\n selectionColor: String,\n selectionImg: String,\n\n thumbSize: {\n type: String,\n default: '20px'\n },\n trackSize: {\n type: String,\n default: '4px'\n },\n\n disable: Boolean,\n readonly: Boolean,\n dense: Boolean,\n\n tabindex: [ String, Number ],\n\n thumbColor: String,\n thumbPath: {\n type: String,\n default: 'M 4, 10 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0'\n }\n}\n\nexport const useSliderEmits = [ 'pan', 'update:modelValue', 'change' ]\n\nexport default function ({ updateValue, updatePosition, getDragging, formAttrs }) {\n const { props, emit, slots, proxy: { $q } } = getCurrentInstance()\n const isDark = useDark(props, $q)\n\n const injectFormInput = useFormInject(formAttrs)\n\n const active = ref(false)\n const preventFocus = ref(false)\n const focus = ref(false)\n const dragging = ref(false)\n\n const axis = computed(() => (props.vertical === true ? '--v' : '--h'))\n const labelSide = computed(() => '-' + (props.switchLabelSide === true ? 'switched' : 'standard'))\n\n const isReversed = computed(() => (\n props.vertical === true\n ? props.reverse === true\n : props.reverse !== ($q.lang.rtl === true)\n ))\n\n const innerMin = computed(() => (\n isNaN(props.innerMin) === true || props.innerMin < props.min\n ? props.min\n : props.innerMin\n ))\n const innerMax = computed(() => (\n isNaN(props.innerMax) === true || props.innerMax > props.max\n ? props.max\n : props.innerMax\n ))\n\n const editable = computed(() => (\n props.disable !== true && props.readonly !== true\n && innerMin.value < innerMax.value\n ))\n\n const decimals = computed(() => (String(props.step).trim().split('.')[ 1 ] || '').length)\n const step = computed(() => (props.step === 0 ? 1 : props.step))\n const tabindex = computed(() => (editable.value === true ? props.tabindex || 0 : -1))\n\n const trackLen = computed(() => props.max - props.min)\n const innerBarLen = computed(() => innerMax.value - innerMin.value)\n\n const innerMinRatio = computed(() => convertModelToRatio(innerMin.value))\n const innerMaxRatio = computed(() => convertModelToRatio(innerMax.value))\n\n const positionProp = computed(() => (\n props.vertical === true\n ? (isReversed.value === true ? 'bottom' : 'top')\n : (isReversed.value === true ? 'right' : 'left')\n ))\n\n const sizeProp = computed(() => (props.vertical === true ? 'height' : 'width'))\n const thicknessProp = computed(() => (props.vertical === true ? 'width' : 'height'))\n const orientation = computed(() => (props.vertical === true ? 'vertical' : 'horizontal'))\n\n const attributes = computed(() => {\n const acc = {\n role: 'slider',\n 'aria-valuemin': innerMin.value,\n 'aria-valuemax': innerMax.value,\n 'aria-orientation': orientation.value,\n 'data-step': props.step\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 const classes = computed(() =>\n `q-slider q-slider${ axis.value } q-slider--${ active.value === true ? '' : 'in' }active inline no-wrap `\n + (props.vertical === true ? 'row' : 'column')\n + (props.disable === true ? ' disabled' : ' q-slider--enabled' + (editable.value === true ? ' q-slider--editable' : ''))\n + (focus.value === 'both' ? ' q-slider--focus' : '')\n + (props.label || props.labelAlways === true ? ' q-slider--label' : '')\n + (props.labelAlways === true ? ' q-slider--label-always' : '')\n + (isDark.value === true ? ' q-slider--dark' : '')\n + (props.dense === true ? ' q-slider--dense q-slider--dense' + axis.value : '')\n )\n\n function getPositionClass (name) {\n const cls = 'q-slider__' + name\n return `${ cls } ${ cls }${ axis.value } ${ cls }${ axis.value }${ labelSide.value }`\n }\n function getAxisClass (name) {\n const cls = 'q-slider__' + name\n return `${ cls } ${ cls }${ axis.value }`\n }\n\n const selectionBarClass = computed(() => {\n const color = props.selectionColor || props.color\n return 'q-slider__selection absolute'\n + (color !== void 0 ? ` text-${ color }` : '')\n })\n const markerClass = computed(() => getAxisClass('markers') + ' absolute overflow-hidden')\n const trackContainerClass = computed(() => getAxisClass('track-container'))\n const pinClass = computed(() => getPositionClass('pin'))\n const labelClass = computed(() => getPositionClass('label'))\n const textContainerClass = computed(() => getPositionClass('text-container'))\n const markerLabelsContainerClass = computed(() =>\n getPositionClass('marker-labels-container')\n + (props.markerLabelsClass !== void 0 ? ` ${ props.markerLabelsClass }` : '')\n )\n\n const trackClass = computed(() =>\n 'q-slider__track relative-position no-outline'\n + (props.trackColor !== void 0 ? ` bg-${ props.trackColor }` : '')\n )\n const trackStyle = computed(() => {\n const acc = { [ thicknessProp.value ]: props.trackSize }\n if (props.trackImg !== void 0) {\n acc.backgroundImage = `url(${ props.trackImg }) !important`\n }\n return acc\n })\n\n const innerBarClass = computed(() =>\n 'q-slider__inner absolute'\n + (props.innerTrackColor !== void 0 ? ` bg-${ props.innerTrackColor }` : '')\n )\n const innerBarStyle = computed(() => {\n const acc = {\n [ positionProp.value ]: `${ 100 * innerMinRatio.value }%`,\n [ sizeProp.value ]: `${ 100 * (innerMaxRatio.value - innerMinRatio.value) }%`\n }\n if (props.innerTrackImg !== void 0) {\n acc.backgroundImage = `url(${ props.innerTrackImg }) !important`\n }\n return acc\n })\n\n function convertRatioToModel (ratio) {\n const { min, max, step } = props\n let model = min + ratio * (max - min)\n\n if (step > 0) {\n const modulo = (model - min) % step\n model += (Math.abs(modulo) >= step / 2 ? (modulo < 0 ? -1 : 1) * step : 0) - modulo\n }\n\n if (decimals.value > 0) {\n model = parseFloat(model.toFixed(decimals.value))\n }\n\n return between(model, innerMin.value, innerMax.value)\n }\n\n function convertModelToRatio (model) {\n return trackLen.value === 0\n ? 0\n : (model - props.min) / trackLen.value\n }\n\n function getDraggingRatio (evt, dragging) {\n const\n pos = position(evt),\n val = props.vertical === true\n ? between((pos.top - dragging.top) / dragging.height, 0, 1)\n : between((pos.left - dragging.left) / dragging.width, 0, 1)\n\n return between(\n isReversed.value === true ? 1.0 - val : val,\n innerMinRatio.value,\n innerMaxRatio.value\n )\n }\n\n const markerStep = computed(() => (\n isNumber(props.markers) === true ? props.markers : step.value)\n )\n\n const markerTicks = computed(() => {\n const acc = []\n const step = markerStep.value\n const max = props.max\n\n let value = props.min\n do {\n acc.push(value)\n value += step\n } while (value < max)\n\n acc.push(max)\n return acc\n })\n\n const markerLabelClass = computed(() => {\n const prefix = ` ${ markerPrefixClass }${ axis.value }-`\n return markerPrefixClass\n + `${ prefix }${ props.switchMarkerLabelsSide === true ? 'switched' : 'standard' }`\n + `${ prefix }${ isReversed.value === true ? 'rtl' : 'ltr' }`\n })\n\n const markerLabelsList = computed(() => {\n if (props.markerLabels === false) { return null }\n\n return getMarkerList(props.markerLabels).map((entry, index) => ({\n index,\n value: entry.value,\n label: entry.label || entry.value,\n classes: markerLabelClass.value\n + (entry.classes !== void 0 ? ' ' + entry.classes : ''),\n style: {\n ...getMarkerLabelStyle(entry.value),\n ...(entry.style || {})\n }\n }))\n })\n\n const markerScope = computed(() => ({\n markerList: markerLabelsList.value,\n markerMap: markerLabelsMap.value,\n classes: markerLabelClass.value, // TODO ts definition\n getStyle: getMarkerLabelStyle\n }))\n\n const markerStyle = computed(() => {\n if (innerBarLen.value !== 0) {\n const size = 100 * markerStep.value / innerBarLen.value\n\n return {\n ...innerBarStyle.value,\n backgroundSize: props.vertical === true\n ? `2px ${ size }%`\n : `${ size }% 2px`\n }\n }\n\n return null\n })\n\n function getMarkerList (def) {\n if (def === false) { return null }\n\n if (def === true) {\n return markerTicks.value.map(defaultMarkerConvertFn)\n }\n\n if (typeof def === 'function') {\n return markerTicks.value.map(value => {\n const item = def(value)\n return isObject(item) === true ? { ...item, value } : { value, label: item }\n })\n }\n\n const filterFn = ({ value }) => value >= props.min && value <= props.max\n\n if (Array.isArray(def) === true) {\n return def\n .map(item => (isObject(item) === true ? item : { value: item }))\n .filter(filterFn)\n }\n\n return Object.keys(def).map(key => {\n const item = def[ key ]\n const value = Number(key)\n return isObject(item) === true ? { ...item, value } : { value, label: item }\n }).filter(filterFn)\n }\n\n function getMarkerLabelStyle (val) {\n return { [ positionProp.value ]: `${ 100 * (val - props.min) / trackLen.value }%` }\n }\n\n const markerLabelsMap = computed(() => {\n if (props.markerLabels === false) { return null }\n\n const acc = {}\n markerLabelsList.value.forEach(entry => {\n acc[ entry.value ] = entry\n })\n return acc\n })\n\n function getMarkerLabelsContent () {\n if (slots[ 'marker-label-group' ] !== void 0) {\n return slots[ 'marker-label-group' ](markerScope.value)\n }\n\n const fn = slots[ 'marker-label' ] || defaultMarkerLabelRenderFn\n return markerLabelsList.value.map(marker => fn({\n marker,\n ...markerScope.value\n }))\n }\n\n const panDirective = computed(() => {\n // if editable.value === true\n return [ [\n TouchPan,\n onPan,\n void 0,\n {\n [ orientation.value ]: true,\n prevent: true,\n stop: true,\n mouse: true,\n mouseAllDir: true\n }\n ] ]\n })\n\n function onPan (event) {\n if (event.isFinal === true) {\n if (dragging.value !== void 0) {\n updatePosition(event.evt)\n // only if touch, because we also have mousedown/up:\n event.touch === true && updateValue(true)\n dragging.value = void 0\n emit('pan', 'end')\n }\n active.value = false\n focus.value = false\n }\n else if (event.isFirst === true) {\n dragging.value = getDragging(event.evt)\n updatePosition(event.evt)\n updateValue()\n active.value = true\n emit('pan', 'start')\n }\n else {\n updatePosition(event.evt)\n updateValue()\n }\n }\n\n function onBlur () {\n focus.value = false\n }\n\n function onActivate (evt) {\n updatePosition(evt, getDragging(evt))\n updateValue()\n\n preventFocus.value = true\n active.value = true\n\n document.addEventListener('mouseup', onDeactivate, true)\n }\n\n function onDeactivate () {\n preventFocus.value = false\n active.value = false\n\n updateValue(true)\n onBlur()\n\n document.removeEventListener('mouseup', onDeactivate, true)\n }\n\n function onMobileClick (evt) {\n updatePosition(evt, getDragging(evt))\n updateValue(true)\n }\n\n function onKeyup (evt) {\n if (keyCodes.includes(evt.keyCode)) {\n updateValue(true)\n }\n }\n\n function getTextContainerStyle (ratio) {\n if (props.vertical === true) { return null }\n\n const p = $q.lang.rtl !== props.reverse ? 1 - ratio : ratio\n return {\n transform: `translateX(calc(${ 2 * p - 1 } * ${ props.thumbSize } / 2 + ${ 50 - 100 * p }%))`\n }\n }\n\n function getThumbRenderFn (thumb) {\n const focusClass = computed(() => (\n preventFocus.value === false && (focus.value === thumb.focusValue || focus.value === 'both')\n ? ' q-slider--focus'\n : ''\n ))\n\n const classes = computed(() =>\n `q-slider__thumb q-slider__thumb${ axis.value } q-slider__thumb${ axis.value }-${ isReversed.value === true ? 'rtl' : 'ltr' } absolute non-selectable`\n + focusClass.value\n + (thumb.thumbColor.value !== void 0 ? ` text-${ thumb.thumbColor.value }` : '')\n )\n\n const style = computed(() => ({\n width: props.thumbSize,\n height: props.thumbSize,\n [ positionProp.value ]: `${ 100 * thumb.ratio.value }%`,\n zIndex: focus.value === thumb.focusValue ? 2 : void 0\n }))\n\n const pinColor = computed(() => (\n thumb.labelColor.value !== void 0\n ? ` text-${ thumb.labelColor.value }`\n : ''\n ))\n\n const textContainerStyle = computed(() => getTextContainerStyle(thumb.ratio.value))\n\n const textClass = computed(() => (\n 'q-slider__text'\n + (thumb.labelTextColor.value !== void 0 ? ` text-${ thumb.labelTextColor.value }` : '')\n ))\n\n return () => {\n const thumbContent = [\n h('svg', {\n class: 'q-slider__thumb-shape absolute-full',\n viewBox: '0 0 20 20',\n 'aria-hidden': 'true'\n }, [\n h('path', { d: props.thumbPath })\n ]),\n\n h('div', { class: 'q-slider__focus-ring fit' })\n ]\n\n if (props.label === true || props.labelAlways === true) {\n thumbContent.push(\n h('div', {\n class: pinClass.value + ' absolute fit no-pointer-events' + pinColor.value\n }, [\n h('div', {\n class: labelClass.value,\n style: { minWidth: props.thumbSize }\n }, [\n h('div', {\n class: textContainerClass.value,\n style: textContainerStyle.value\n }, [\n h('span', { class: textClass.value }, thumb.label.value)\n ])\n ])\n ])\n )\n\n if (props.name !== void 0 && props.disable !== true) {\n injectFormInput(thumbContent, 'push')\n }\n }\n\n return h('div', {\n class: classes.value,\n style: style.value,\n ...thumb.getNodeData()\n }, thumbContent)\n }\n }\n\n function getContent (selectionBarStyle, trackContainerTabindex, trackContainerEvents, injectThumb) {\n const trackContent = []\n\n props.innerTrackColor !== 'transparent' && trackContent.push(\n h('div', {\n key: 'inner',\n class: innerBarClass.value,\n style: innerBarStyle.value\n })\n )\n\n props.selectionColor !== 'transparent' && trackContent.push(\n h('div', {\n key: 'selection',\n class: selectionBarClass.value,\n style: selectionBarStyle.value\n })\n )\n\n props.markers !== false && trackContent.push(\n h('div', {\n key: 'marker',\n class: markerClass.value,\n style: markerStyle.value\n })\n )\n\n injectThumb(trackContent)\n\n const content = [\n hDir(\n 'div',\n {\n key: 'trackC',\n class: trackContainerClass.value,\n tabindex: trackContainerTabindex.value,\n ...trackContainerEvents.value\n },\n [\n h('div', {\n class: trackClass.value,\n style: trackStyle.value\n }, trackContent)\n ],\n 'slide',\n editable.value, () => panDirective.value\n )\n ]\n\n if (props.markerLabels !== false) {\n const action = props.switchMarkerLabelsSide === true\n ? 'unshift'\n : 'push'\n\n content[ action ](\n h('div', {\n key: 'markerL',\n class: markerLabelsContainerClass.value\n }, getMarkerLabelsContent())\n )\n }\n\n return content\n }\n\n onBeforeUnmount(() => {\n document.removeEventListener('mouseup', onDeactivate, true)\n })\n\n return {\n state: {\n active,\n focus,\n preventFocus,\n dragging,\n\n editable,\n classes,\n tabindex,\n attributes,\n\n step,\n decimals,\n trackLen,\n innerMin,\n innerMinRatio,\n innerMax,\n innerMaxRatio,\n positionProp,\n sizeProp,\n isReversed\n },\n\n methods: {\n onActivate,\n onMobileClick,\n onBlur,\n onKeyup,\n getContent,\n getThumbRenderFn,\n convertRatioToModel,\n convertModelToRatio,\n getDraggingRatio\n }\n }\n}\n","import { h, ref, computed, watch, getCurrentInstance } from 'vue'\n\nimport useSlider, {\n useSliderProps,\n useSliderEmits,\n keyCodes\n} from '../slider/use-slider.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { between } from '../../utils/format.js'\n\nconst dragType = {\n MIN: 0,\n RANGE: 1,\n MAX: 2\n}\n\nexport default createComponent({\n name: 'QRange',\n\n props: {\n ...useSliderProps,\n\n modelValue: {\n type: Object,\n default: () => ({ min: null, max: null }),\n validator: v => 'min' in v && 'max' in v\n },\n\n dragRange: Boolean,\n dragOnlyRange: Boolean,\n\n leftLabelColor: String,\n leftLabelTextColor: String,\n rightLabelColor: String,\n rightLabelTextColor: String,\n\n leftLabelValue: [ String, Number ],\n rightLabelValue: [ String, Number ],\n\n leftThumbColor: String,\n rightThumbColor: String\n },\n\n emits: useSliderEmits,\n\n setup (props, { emit }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const { state, methods } = useSlider({\n updateValue, updatePosition, getDragging,\n formAttrs: computed(() => ({\n type: 'hidden',\n name: props.name,\n value: `${ props.modelValue.min }|${ props.modelValue.max }`\n }))\n })\n\n const rootRef = ref(null)\n const curMinRatio = ref(0)\n const curMaxRatio = ref(0)\n const model = ref({ min: 0, max: 0 })\n\n function normalizeModel () {\n model.value.min = props.modelValue.min === null\n ? state.innerMin.value\n : between(props.modelValue.min, state.innerMin.value, state.innerMax.value)\n\n model.value.max = props.modelValue.max === null\n ? state.innerMax.value\n : between(props.modelValue.max, state.innerMin.value, state.innerMax.value)\n }\n\n watch(\n () => `${ props.modelValue.min }|${ props.modelValue.max }|${ state.innerMin.value }|${ state.innerMax.value }`,\n normalizeModel\n )\n\n normalizeModel()\n\n const modelMinRatio = computed(() => methods.convertModelToRatio(model.value.min))\n const modelMaxRatio = computed(() => methods.convertModelToRatio(model.value.max))\n\n const ratioMin = computed(() => (\n state.active.value === true ? curMinRatio.value : modelMinRatio.value\n ))\n const ratioMax = computed(() => (\n state.active.value === true ? curMaxRatio.value : modelMaxRatio.value\n ))\n\n const selectionBarStyle = computed(() => {\n const acc = {\n [ state.positionProp.value ]: `${ 100 * ratioMin.value }%`,\n [ state.sizeProp.value ]: `${ 100 * (ratioMax.value - ratioMin.value) }%`\n }\n if (props.selectionImg !== void 0) {\n acc.backgroundImage = `url(${ props.selectionImg }) !important`\n }\n return acc\n })\n\n const trackContainerEvents = computed(() => {\n if (state.editable.value !== true) {\n return {}\n }\n\n if ($q.platform.is.mobile === true) {\n return { onClick: methods.onMobileClick }\n }\n\n const evt = { onMousedown: methods.onActivate }\n\n if (props.dragRange === true || props.dragOnlyRange === true) {\n Object.assign(evt, {\n onFocus: () => { state.focus.value = 'both' },\n onBlur: methods.onBlur,\n onKeydown,\n onKeyup: methods.onKeyup\n })\n }\n\n return evt\n })\n\n function getEvents (side) {\n return $q.platform.is.mobile !== true && state.editable.value === true && props.dragOnlyRange !== true\n ? {\n onFocus: () => { state.focus.value = side },\n onBlur: methods.onBlur,\n onKeydown,\n onKeyup: methods.onKeyup\n }\n : {}\n }\n\n const thumbTabindex = computed(() => (props.dragOnlyRange !== true ? state.tabindex.value : null))\n const trackContainerTabindex = computed(() => (\n $q.platform.is.mobile !== true && (props.dragRange || props.dragOnlyRange === true)\n ? state.tabindex.value\n : null\n ))\n\n const minThumbRef = ref(null)\n const minEvents = computed(() => getEvents('min'))\n const getMinThumb = methods.getThumbRenderFn({\n focusValue: 'min',\n getNodeData: () => ({\n ref: minThumbRef,\n key: 'tmin',\n ...minEvents.value,\n tabindex: thumbTabindex.value\n }),\n ratio: ratioMin,\n label: computed(() => (\n props.leftLabelValue !== void 0\n ? props.leftLabelValue\n : model.value.min\n )),\n thumbColor: computed(() => props.leftThumbColor || props.thumbColor || props.color),\n labelColor: computed(() => props.leftLabelColor || props.labelColor),\n labelTextColor: computed(() => props.leftLabelTextColor || props.labelTextColor)\n })\n\n const maxEvents = computed(() => getEvents('max'))\n const getMaxThumb = methods.getThumbRenderFn({\n focusValue: 'max',\n getNodeData: () => ({\n ...maxEvents.value,\n key: 'tmax',\n tabindex: thumbTabindex.value\n }),\n ratio: ratioMax,\n label: computed(() => (\n props.rightLabelValue !== void 0\n ? props.rightLabelValue\n : model.value.max\n )),\n thumbColor: computed(() => props.rightThumbColor || props.thumbColor || props.color),\n labelColor: computed(() => props.rightLabelColor || props.labelColor),\n labelTextColor: computed(() => props.rightLabelTextColor || props.labelTextColor)\n })\n\n function updateValue (change) {\n if (model.value.min !== props.modelValue.min || model.value.max !== props.modelValue.max) {\n emit('update:modelValue', { ...model.value })\n }\n change === true && emit('change', { ...model.value })\n }\n\n function getDragging (event) {\n const\n { left, top, width, height } = rootRef.value.getBoundingClientRect(),\n sensitivity = props.dragOnlyRange === true\n ? 0\n : (props.vertical === true\n ? minThumbRef.value.offsetHeight / (2 * height)\n : minThumbRef.value.offsetWidth / (2 * width)\n )\n\n const dragging = {\n left,\n top,\n width,\n height,\n valueMin: model.value.min,\n valueMax: model.value.max,\n ratioMin: modelMinRatio.value,\n ratioMax: modelMaxRatio.value\n }\n\n const ratio = methods.getDraggingRatio(event, dragging)\n\n if (props.dragOnlyRange !== true && ratio < dragging.ratioMin + sensitivity) {\n dragging.type = dragType.MIN\n }\n else if (props.dragOnlyRange === true || ratio < dragging.ratioMax - sensitivity) {\n if (props.dragRange === true || props.dragOnlyRange === true) {\n dragging.type = dragType.RANGE\n Object.assign(dragging, {\n offsetRatio: ratio,\n offsetModel: methods.convertRatioToModel(ratio),\n rangeValue: dragging.valueMax - dragging.valueMin,\n rangeRatio: dragging.ratioMax - dragging.ratioMin\n })\n }\n else {\n dragging.type = dragging.ratioMax - ratio < ratio - dragging.ratioMin\n ? dragType.MAX\n : dragType.MIN\n }\n }\n else {\n dragging.type = dragType.MAX\n }\n\n return dragging\n }\n\n function updatePosition (event, dragging = state.dragging.value) {\n let pos\n const ratio = methods.getDraggingRatio(event, dragging)\n const localModel = methods.convertRatioToModel(ratio)\n\n switch (dragging.type) {\n case dragType.MIN:\n if (ratio <= dragging.ratioMax) {\n pos = {\n minR: ratio,\n maxR: dragging.ratioMax,\n min: localModel,\n max: dragging.valueMax\n }\n state.focus.value = 'min'\n }\n else {\n pos = {\n minR: dragging.ratioMax,\n maxR: ratio,\n min: dragging.valueMax,\n max: localModel\n }\n state.focus.value = 'max'\n }\n break\n\n case dragType.MAX:\n if (ratio >= dragging.ratioMin) {\n pos = {\n minR: dragging.ratioMin,\n maxR: ratio,\n min: dragging.valueMin,\n max: localModel\n }\n state.focus.value = 'max'\n }\n else {\n pos = {\n minR: ratio,\n maxR: dragging.ratioMin,\n min: localModel,\n max: dragging.valueMin\n }\n state.focus.value = 'min'\n }\n break\n\n case dragType.RANGE:\n const\n ratioDelta = ratio - dragging.offsetRatio,\n minR = between(dragging.ratioMin + ratioDelta, 0, 1 - dragging.rangeRatio),\n modelDelta = localModel - dragging.offsetModel,\n min = between(dragging.valueMin + modelDelta, props.min, props.max - dragging.rangeValue)\n\n pos = {\n minR,\n maxR: minR + dragging.rangeRatio,\n min: parseFloat(min.toFixed(state.decimals.value)),\n max: parseFloat((min + dragging.rangeValue).toFixed(state.decimals.value))\n }\n\n state.focus.value = 'both'\n break\n }\n\n // If either of the values to be emitted are null, set them to the defaults the user has entered.\n model.value = model.value.min === null || model.value.max === null\n ? { min: pos.min || props.min, max: pos.max || props.max }\n : { min: pos.min, max: pos.max }\n\n if (props.snap !== true || props.step === 0) {\n curMinRatio.value = pos.minR\n curMaxRatio.value = pos.maxR\n }\n else {\n curMinRatio.value = methods.convertModelToRatio(model.value.min)\n curMaxRatio.value = methods.convertModelToRatio(model.value.max)\n }\n }\n\n function onKeydown (evt) {\n if (!keyCodes.includes(evt.keyCode)) {\n return\n }\n\n stopAndPrevent(evt)\n\n const\n stepVal = ([ 34, 33 ].includes(evt.keyCode) ? 10 : 1) * state.step.value,\n offset = (\n ([ 34, 37, 40 ].includes(evt.keyCode) ? -1 : 1)\n * (state.isReversed.value === true ? -1 : 1)\n * (props.vertical === true ? -1 : 1) * stepVal\n )\n\n if (state.focus.value === 'both') {\n const interval = model.value.max - model.value.min\n const min = between(\n parseFloat((model.value.min + offset).toFixed(state.decimals.value)),\n state.innerMin.value,\n state.innerMax.value - interval\n )\n\n model.value = {\n min,\n max: parseFloat((min + interval).toFixed(state.decimals.value))\n }\n }\n else if (state.focus.value === false) {\n return\n }\n else {\n const which = state.focus.value\n\n model.value = {\n ...model.value,\n [ which ]: between(\n parseFloat((model.value[ which ] + offset).toFixed(state.decimals.value)),\n which === 'min' ? state.innerMin.value : model.value.min,\n which === 'max' ? state.innerMax.value : model.value.max\n )\n }\n }\n\n updateValue()\n }\n\n return () => {\n const content = methods.getContent(\n selectionBarStyle,\n trackContainerTabindex,\n trackContainerEvents,\n node => {\n node.push(\n getMinThumb(),\n getMaxThumb()\n )\n }\n )\n\n return h('div', {\n ref: rootRef,\n class: 'q-range ' + state.classes.value + (\n props.modelValue.min === null || props.modelValue.max === null\n ? ' q-slider--no-value'\n : ''\n ),\n ...state.attributes.value,\n 'aria-valuenow': props.modelValue.min + '|' + props.modelValue.max\n }, content)\n }\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 { proxy } = getCurrentInstance()\n\n if (hasObserver === true) {\n let observer\n\n // initialize as soon as possible\n const init = stop => {\n targetEl = proxy.$el.parentNode\n\n if (targetEl) {\n observer = new ResizeObserver(trigger)\n observer.observe(targetEl)\n emitEvent()\n }\n else if (stop !== true) {\n nextTick(() => { init(true) })\n }\n }\n\n onMounted(() => { init() })\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 = proxy.$el\n targetEl && onObjLoad()\n })\n })\n\n onBeforeUnmount(cleanup)\n\n // expose public method\n proxy.trigger = trigger\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 useField, { useFieldState, useFieldProps, useFieldEmits } from '../../composables/private/use-field.js'\n\nimport { createComponent } from '../../utils/private/create.js'\n\nexport default createComponent({\n name: 'QField',\n\n inheritAttrs: false,\n\n props: useFieldProps,\n\n emits: useFieldEmits,\n\n setup () {\n return useField(useFieldState())\n }\n})\n","import { h, computed, getCurrentInstance } from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport Ripple from '../../directives/Ripple.js'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport useSize, { useSizeProps } from '../../composables/private/use-size.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { hMergeSlotSafely, hDir } from '../../utils/private/render.js'\n\nexport const defaultSizes = {\n xs: 8,\n sm: 10,\n md: 14,\n lg: 20,\n xl: 24\n}\n\nexport default createComponent({\n name: 'QChip',\n\n props: {\n ...useDarkProps,\n ...useSizeProps,\n\n dense: Boolean,\n\n icon: String,\n iconRight: String,\n iconRemove: String,\n iconSelected: String,\n label: [ String, Number ],\n\n color: String,\n textColor: String,\n\n modelValue: {\n type: Boolean,\n default: true\n },\n selected: {\n type: Boolean,\n default: null\n },\n\n square: Boolean,\n outline: Boolean,\n clickable: Boolean,\n removable: Boolean,\n\n removeAriaLabel: String,\n\n tabindex: [ String, Number ],\n disable: Boolean,\n\n ripple: {\n type: [ Boolean, Object ],\n default: true\n }\n },\n\n emits: [ 'update:modelValue', 'update:selected', 'remove', 'click' ],\n\n setup (props, { slots, emit }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const isDark = useDark(props, $q)\n const sizeStyle = useSize(props, defaultSizes)\n\n const hasLeftIcon = computed(() => props.selected === true || props.icon !== void 0)\n\n const leftIcon = computed(() => (\n props.selected === true\n ? props.iconSelected || $q.iconSet.chip.selected\n : props.icon\n ))\n\n const removeIcon = computed(() => props.iconRemove || $q.iconSet.chip.remove)\n\n const isClickable = computed(() =>\n props.disable === false\n && (props.clickable === true || props.selected !== null)\n )\n\n const classes = computed(() => {\n const text = props.outline === true\n ? props.color || props.textColor\n : props.textColor\n\n return 'q-chip row inline no-wrap items-center'\n + (props.outline === false && props.color !== void 0 ? ` bg-${ props.color }` : '')\n + (text ? ` text-${ text } q-chip--colored` : '')\n + (props.disable === true ? ' disabled' : '')\n + (props.dense === true ? ' q-chip--dense' : '')\n + (props.outline === true ? ' q-chip--outline' : '')\n + (props.selected === true ? ' q-chip--selected' : '')\n + (isClickable.value === true ? ' q-chip--clickable cursor-pointer non-selectable q-hoverable' : '')\n + (props.square === true ? ' q-chip--square' : '')\n + (isDark.value === true ? ' q-chip--dark q-dark' : '')\n })\n\n const attributes = computed(() => {\n const chip = props.disable === true\n ? { tabindex: -1, 'aria-disabled': 'true' }\n : { tabindex: props.tabindex || 0 }\n const remove = {\n ...chip,\n role: 'button',\n 'aria-hidden': 'false',\n 'aria-label': props.removeAriaLabel || $q.lang.label.remove\n }\n\n return { chip, remove }\n })\n\n function onKeyup (e) {\n e.keyCode === 13 /* ENTER */ && onClick(e)\n }\n\n function onClick (e) {\n if (!props.disable) {\n emit('update:selected', !props.selected)\n emit('click', e)\n }\n }\n\n function onRemove (e) {\n if (e.keyCode === void 0 || e.keyCode === 13) {\n stopAndPrevent(e)\n if (props.disable === false) {\n emit('update:modelValue', false)\n emit('remove')\n }\n }\n }\n\n function getContent () {\n const child = []\n\n isClickable.value === true && child.push(\n h('div', { class: 'q-focus-helper' })\n )\n\n hasLeftIcon.value === true && child.push(\n h(QIcon, {\n class: 'q-chip__icon q-chip__icon--left',\n name: leftIcon.value\n })\n )\n\n const label = props.label !== void 0\n ? [ h('div', { class: 'ellipsis' }, [ props.label ]) ]\n : void 0\n\n child.push(\n h('div', {\n class: 'q-chip__content col row no-wrap items-center q-anchor--skip'\n }, hMergeSlotSafely(slots.default, label))\n )\n\n props.iconRight && child.push(\n h(QIcon, {\n class: 'q-chip__icon q-chip__icon--right',\n name: props.iconRight\n })\n )\n\n props.removable === true && child.push(\n h(QIcon, {\n class: 'q-chip__icon q-chip__icon--remove cursor-pointer',\n name: removeIcon.value,\n ...attributes.value.remove,\n onClick: onRemove,\n onKeyup: onRemove\n })\n )\n\n return child\n }\n\n return () => {\n if (props.modelValue === false) { return }\n\n const data = {\n class: classes.value,\n style: sizeStyle.value\n }\n\n isClickable.value === true && Object.assign(\n data,\n attributes.value.chip,\n { onClick, onKeyup }\n )\n\n return hDir(\n 'div',\n data,\n getContent(),\n 'ripple',\n props.ripple !== false && props.disable !== true,\n () => [ [ Ripple, props.ripple ] ]\n )\n }\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 === '' || proxy.$el.parentNode === null) {\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 { 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","import { getParentProxy } from './vm.js'\n\nexport const portalProxyList = []\n\nexport function getPortalProxy (el) {\n return portalProxyList.find(proxy =>\n proxy.contentEl !== null\n && proxy.contentEl.contains(el)\n )\n}\n\nexport function closePortalMenus (proxy, evt) {\n do {\n if (proxy.$options.name === 'QMenu') {\n proxy.hide(evt)\n\n // is this a point of separation?\n if (proxy.$props.separateClosePopup === true) {\n return getParentProxy(proxy)\n }\n }\n else if (proxy.__qPortal === true) {\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 = getParentProxy(proxy)\n\n if (parent !== void 0 && parent.$options.name === 'QPopupProxy') {\n proxy.hide(evt)\n return parent\n }\n else {\n return proxy\n }\n }\n\n proxy = getParentProxy(proxy)\n } while (proxy !== void 0 && proxy !== null)\n}\n\nexport function closePortals (proxy, evt, depth) {\n while (depth !== 0 && proxy !== void 0 && proxy !== null) {\n if (proxy.__qPortal === true) {\n depth--\n\n if (proxy.$options.name === 'QMenu') {\n proxy = closePortalMenus(proxy, evt)\n continue\n }\n\n proxy.hide(evt)\n }\n\n proxy = getParentProxy(proxy)\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 { portalProxyList } from '../../utils/private/portal.js'\nimport { injectProp } from '../../utils/private/inject-obj-prop.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 portalProxyList.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 = portalProxyList.indexOf(vm.proxy)\n if (index !== -1) {\n portalProxyList.splice(index, 1)\n }\n\n if (portalEl !== null) {\n removeGlobalNode(portalEl)\n portalEl = null\n }\n }\n\n onUnmounted(() => { hidePortal(true) })\n\n // needed for portal vm detection\n vm.proxy.__qPortal = true\n\n // public way of accessing the rendered content\n injectProp(vm.proxy, 'contentEl', () => innerRef.value)\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 { computed } 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, defaultShowFn = () => {}, defaultHideFn = () => {}) {\n return {\n transitionProps: computed(() => {\n const show = `q-transition--${ props.transitionShow || defaultShowFn() }`\n const hide = `q-transition--${ props.transitionHide || defaultHideFn() }`\n\n return {\n appear: true,\n\n enterFromClass: `${ show }-enter-from`,\n enterActiveClass: `${ show }-enter-active`,\n enterToClass: `${ show }-enter-to`,\n\n leaveFromClass: `${ hide }-leave-from`,\n leaveActiveClass: `${ hide }-leave-active`,\n leaveToClass: `${ hide }-leave-to`\n }\n }),\n\n transitionStyle: computed(() => `--q-transition-duration: ${ props.transitionDuration }ms`)\n }\n}\n","import { nextTick, onDeactivated, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport { vmIsDestroyed } from '../../utils/private/vm'\n\n/*\n * Usage:\n * registerTick(fn)\n * removeTick()\n */\n\nexport default function () {\n let tickFn\n const vm = getCurrentInstance()\n\n function removeTick () {\n tickFn = void 0\n }\n\n onDeactivated(removeTick)\n onBeforeUnmount(removeTick)\n\n return {\n removeTick,\n\n registerTick (fn) {\n tickFn = fn\n\n nextTick(() => {\n if (tickFn === fn) {\n // we also check if VM is destroyed, since if it\n // got to trigger one nextTick() we cannot stop it\n vmIsDestroyed(vm) === false && tickFn()\n tickFn = void 0\n }\n })\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 { portalProxyList } 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 = portalProxyList.length - 1\n\n while (portalIndex >= 0) {\n const proxy = portalProxyList[ 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', 'escapeKey'\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 } = useTimeout()\n const { transitionProps, transitionStyle } = useTransition(props)\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][tabindex], [data-autofocus][tabindex]')\n || node.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]')\n || node.querySelector('[autofocus], [data-autofocus]')\n || node\n node.focus({ preventScroll: true })\n }\n })\n }\n\n function handleShow (evt) {\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 // should removeTick() if this gets removed\n registerTick(() => {\n updatePosition()\n props.noFocus !== true && focus()\n })\n\n // should removeTimeout() if this gets removed\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 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 // should removeTimeout() if this gets removed\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('escapeKey')\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 transitionProps.value,\n () => (\n showing.value === true\n ? h('div', {\n role: 'menu',\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, ref, computed, watch, onBeforeUnmount, Transition, getCurrentInstance } from 'vue'\n\nimport useHistory from '../../composables/private/use-history.js'\nimport useTimeout from '../../composables/private/use-timeout.js'\nimport useTick from '../../composables/private/use-tick.js'\nimport useModelToggle, { useModelToggleProps, useModelToggleEmits } from '../../composables/private/use-model-toggle.js'\nimport useTransition, { useTransitionProps } from '../../composables/private/use-transition.js'\nimport usePortal from '../../composables/private/use-portal.js'\nimport usePreventScroll from '../../composables/private/use-prevent-scroll.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { childHasFocus } from '../../utils/dom.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 { addFocusFn } from '../../utils/private/focus-manager.js'\n\nlet maximizedModals = 0\n\nconst positionClass = {\n standard: 'fixed-full flex-center',\n top: 'fixed-top justify-center',\n bottom: 'fixed-bottom justify-center',\n right: 'fixed-right items-center',\n left: 'fixed-left items-center'\n}\n\nconst defaultTransitions = {\n standard: [ 'scale', 'scale' ],\n top: [ 'slide-down', 'slide-up' ],\n bottom: [ 'slide-up', 'slide-down' ],\n right: [ 'slide-left', 'slide-right' ],\n left: [ 'slide-right', 'slide-left' ]\n}\n\nexport default createComponent({\n name: 'QDialog',\n\n inheritAttrs: false,\n\n props: {\n ...useModelToggleProps,\n ...useTransitionProps,\n\n transitionShow: String, // override useTransitionProps\n transitionHide: String, // override useTransitionProps\n\n persistent: Boolean,\n autoClose: Boolean,\n allowFocusOutside: Boolean,\n\n noEscDismiss: Boolean,\n noBackdropDismiss: Boolean,\n noRouteDismiss: Boolean,\n noRefocus: Boolean,\n noFocus: Boolean,\n noShake: Boolean,\n\n seamless: Boolean,\n\n maximized: Boolean,\n fullWidth: Boolean,\n fullHeight: Boolean,\n\n square: Boolean,\n\n position: {\n type: String,\n default: 'standard',\n validator: val => val === 'standard'\n || [ 'top', 'bottom', 'left', 'right' ].includes(val)\n }\n },\n\n emits: [\n ...useModelToggleEmits,\n 'shake', 'click', 'escapeKey'\n ],\n\n setup (props, { slots, emit, attrs }) {\n const vm = getCurrentInstance()\n\n const innerRef = ref(null)\n const showing = ref(false)\n const animating = ref(false)\n\n let shakeTimeout, refocusTarget = null, isMaximized, avoidAutoClose\n\n const hideOnRouteChange = computed(() =>\n props.persistent !== true\n && props.noRouteDismiss !== true\n && props.seamless !== true\n )\n\n const { preventBodyScroll } = usePreventScroll()\n const { registerTimeout } = useTimeout()\n const { registerTick, removeTick } = useTick()\n\n const { transitionProps, transitionStyle } = useTransition(\n props,\n () => defaultTransitions[ props.position ][ 0 ],\n () => defaultTransitions[ props.position ][ 1 ]\n )\n\n const { showPortal, hidePortal, portalIsAccessible, renderPortal } = usePortal(\n vm, innerRef, renderPortalContent, /* pls do check if on a global dialog */ true\n )\n\n const { hide } = useModelToggle({\n showing,\n hideOnRouteChange,\n handleShow,\n handleHide,\n processOnMount: true\n })\n\n const { addToHistory, removeFromHistory } = useHistory(showing, hide, hideOnRouteChange)\n\n const classes = computed(() =>\n 'q-dialog__inner flex no-pointer-events'\n + ` q-dialog__inner--${ props.maximized === true ? 'maximized' : 'minimized' }`\n + ` q-dialog__inner--${ props.position } ${ positionClass[ props.position ] }`\n + (animating.value === true ? ' q-dialog__inner--animating' : '')\n + (props.fullWidth === true ? ' q-dialog__inner--fullwidth' : '')\n + (props.fullHeight === true ? ' q-dialog__inner--fullheight' : '')\n + (props.square === true ? ' q-dialog__inner--square' : '')\n )\n\n const useBackdrop = computed(() => showing.value === true && props.seamless !== true)\n\n const onEvents = computed(() => (\n props.autoClose === true\n ? { onClick: onAutoClose }\n : {}\n ))\n\n const rootClasses = computed(() => [\n 'q-dialog fullscreen no-pointer-events '\n + `q-dialog--${ useBackdrop.value === true ? 'modal' : 'seamless' }`,\n attrs.class\n ])\n\n watch(() => props.maximized, state => {\n showing.value === true && updateMaximized(state)\n })\n\n watch(useBackdrop, val => {\n preventBodyScroll(val)\n\n if (val === true) {\n addFocusout(onFocusChange)\n addEscapeKey(onEscapeKey)\n }\n else {\n removeFocusout(onFocusChange)\n removeEscapeKey(onEscapeKey)\n }\n })\n\n function handleShow (evt) {\n addToHistory()\n\n refocusTarget = props.noRefocus === false && document.activeElement !== null\n ? document.activeElement\n : null\n\n updateMaximized(props.maximized)\n showPortal()\n animating.value = true\n\n if (props.noFocus !== true) {\n document.activeElement !== null && document.activeElement.blur()\n registerTick(focus)\n }\n else {\n removeTick()\n }\n\n // should removeTimeout() if this gets removed\n registerTimeout(() => {\n if (vm.proxy.$q.platform.is.ios === true) {\n if (props.seamless !== true && document.activeElement) {\n const\n { top, bottom } = document.activeElement.getBoundingClientRect(),\n { innerHeight } = window,\n height = window.visualViewport !== void 0\n ? window.visualViewport.height\n : innerHeight\n\n if (top > 0 && bottom > height / 2) {\n document.scrollingElement.scrollTop = Math.min(\n document.scrollingElement.scrollHeight - height,\n bottom >= innerHeight\n ? Infinity\n : Math.ceil(document.scrollingElement.scrollTop + bottom - height / 2)\n )\n }\n\n document.activeElement.scrollIntoView()\n }\n\n // required in order to avoid the \"double-tap needed\" issue\n avoidAutoClose = true\n innerRef.value.click()\n avoidAutoClose = false\n }\n\n showPortal(true) // done showing portal\n animating.value = false\n emit('show', evt)\n }, props.transitionDuration)\n }\n\n function handleHide (evt) {\n removeTick()\n removeFromHistory()\n cleanup(true)\n animating.value = true\n hidePortal()\n\n if (refocusTarget !== null) {\n refocusTarget.focus()\n refocusTarget = null\n }\n\n // should removeTimeout() if this gets removed\n registerTimeout(() => {\n hidePortal(true) // done hiding, now destroy\n animating.value = false\n emit('hide', evt)\n }, props.transitionDuration)\n }\n\n function focus (selector) {\n addFocusFn(() => {\n let node = innerRef.value\n\n if (node === null || node.contains(document.activeElement) === true) {\n return\n }\n\n node = (selector !== '' ? node.querySelector(selector) : null)\n || node.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]')\n || node.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]')\n || node.querySelector('[autofocus], [data-autofocus]')\n || node\n node.focus({ preventScroll: true })\n })\n }\n\n function shake (refocusTarget) {\n if (refocusTarget && typeof refocusTarget.focus === 'function') {\n refocusTarget.focus({ preventScroll: true })\n }\n else {\n focus()\n }\n\n emit('shake')\n\n const node = innerRef.value\n\n if (node !== null) {\n node.classList.remove('q-animate--scale')\n node.classList.add('q-animate--scale')\n clearTimeout(shakeTimeout)\n shakeTimeout = setTimeout(() => {\n if (innerRef.value !== null) {\n node.classList.remove('q-animate--scale')\n // some platforms (like desktop Chrome)\n // require calling focus() again\n focus()\n }\n }, 170)\n }\n }\n\n function onEscapeKey () {\n if (props.seamless !== true) {\n if (props.persistent === true || props.noEscDismiss === true) {\n props.maximized !== true && props.noShake !== true && shake()\n }\n else {\n emit('escapeKey')\n hide()\n }\n }\n }\n\n function cleanup (hiding) {\n clearTimeout(shakeTimeout)\n\n if (hiding === true || showing.value === true) {\n updateMaximized(false)\n\n if (props.seamless !== true) {\n preventBodyScroll(false)\n removeFocusout(onFocusChange)\n removeEscapeKey(onEscapeKey)\n }\n }\n\n if (hiding !== true) {\n refocusTarget = null\n }\n }\n\n function updateMaximized (active) {\n if (active === true) {\n if (isMaximized !== true) {\n maximizedModals < 1 && document.body.classList.add('q-body--dialog')\n maximizedModals++\n\n isMaximized = true\n }\n }\n else if (isMaximized === true) {\n if (maximizedModals < 2) {\n document.body.classList.remove('q-body--dialog')\n }\n\n maximizedModals--\n isMaximized = false\n }\n }\n\n function onAutoClose (e) {\n if (avoidAutoClose !== true) {\n hide(e)\n emit('click', e)\n }\n }\n\n function onBackdropClick (e) {\n if (props.persistent !== true && props.noBackdropDismiss !== true) {\n hide(e)\n }\n else if (props.noShake !== true) {\n shake(e.relatedTarget)\n }\n }\n\n function onFocusChange (evt) {\n // the focus is not in a vue child component\n if (\n props.allowFocusOutside !== true\n && portalIsAccessible.value === true\n && childHasFocus(innerRef.value, evt.target) !== true\n ) {\n focus('[tabindex]:not([tabindex=\"-1\"])')\n }\n }\n\n Object.assign(vm.proxy, {\n // expose public methods\n focus, shake,\n\n // private but needed by QSelect\n __updateRefocusTarget (target) {\n refocusTarget = target || null\n }\n })\n\n onBeforeUnmount(cleanup)\n\n function renderPortalContent () {\n return h('div', {\n role: 'dialog',\n 'aria-modal': useBackdrop.value === true ? 'true' : 'false',\n ...attrs,\n class: rootClasses.value\n }, [\n h(Transition, {\n name: 'q-transition--fade',\n appear: true\n }, () => (\n useBackdrop.value === true\n ? h('div', {\n class: 'q-dialog__backdrop fixed-full',\n style: transitionStyle.value,\n 'aria-hidden': 'true',\n tabindex: -1,\n onFocusin: onBackdropClick\n })\n : null\n )),\n\n h(\n Transition,\n transitionProps.value,\n () => (\n showing.value === true\n ? h('div', {\n ref: innerRef,\n class: classes.value,\n style: transitionStyle.value,\n tabindex: -1,\n ...onEvents.value\n }, hSlot(slots.default))\n : null\n )\n )\n ])\n }\n\n return renderPortal\n }\n})\n","import { h, ref, computed, watch, onBeforeUpdate, onUpdated, onBeforeUnmount, nextTick, getCurrentInstance } from 'vue'\n\nimport QField from '../field/QField.js'\nimport QIcon from '../icon/QIcon.js'\nimport QChip from '../chip/QChip.js'\n\nimport QItem from '../item/QItem.js'\nimport QItemSection from '../item/QItemSection.js'\nimport QItemLabel from '../item/QItemLabel.js'\n\nimport QMenu from '../menu/QMenu.js'\nimport QDialog from '../dialog/QDialog.js'\n\nimport useField, { useFieldState, useFieldProps, useFieldEmits, fieldValueIsFilled } from '../../composables/private/use-field.js'\nimport { useVirtualScroll, useVirtualScrollProps } from '../virtual-scroll/use-virtual-scroll.js'\nimport { useFormProps, useFormInputNameAttr } from '../../composables/private/use-form.js'\nimport useKeyComposition from '../../composables/private/use-key-composition.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { isDeepEqual } from '../../utils/is.js'\nimport { stop, prevent, stopAndPrevent } from '../../utils/event.js'\nimport { normalizeToInterval } from '../../utils/format.js'\nimport { shouldIgnoreKey, isKeyCode } from '../../utils/private/key-composition.js'\nimport { hMergeSlot } from '../../utils/private/render.js'\n\nconst validateNewValueMode = v => [ 'add', 'add-unique', 'toggle' ].includes(v)\nconst reEscapeList = '.*+?^${}()|[]\\\\'\nconst fieldPropsList = Object.keys(useFieldProps)\n\nexport default createComponent({\n name: 'QSelect',\n\n inheritAttrs: false,\n\n props: {\n ...useVirtualScrollProps,\n ...useFormProps,\n ...useFieldProps,\n\n modelValue: {\n required: true\n },\n\n multiple: Boolean,\n\n displayValue: [ String, Number ],\n displayValueHtml: Boolean,\n dropdownIcon: String,\n\n options: {\n type: Array,\n default: () => []\n },\n\n optionValue: [ Function, String ],\n optionLabel: [ Function, String ],\n optionDisable: [ Function, String ],\n\n hideSelected: Boolean,\n hideDropdownIcon: Boolean,\n fillInput: Boolean,\n\n maxValues: [ Number, String ],\n\n optionsDense: Boolean,\n optionsDark: {\n type: Boolean,\n default: null\n },\n optionsSelectedClass: String,\n optionsHtml: Boolean,\n\n optionsCover: Boolean,\n\n menuShrink: Boolean,\n menuAnchor: String,\n menuSelf: String,\n menuOffset: Array,\n\n popupContentClass: String,\n popupContentStyle: [ String, Array, Object ],\n\n useInput: Boolean,\n useChips: Boolean,\n\n newValueMode: {\n type: String,\n validator: validateNewValueMode\n },\n\n mapOptions: Boolean,\n emitValue: Boolean,\n\n inputDebounce: {\n type: [ Number, String ],\n default: 500\n },\n\n inputClass: [ Array, String, Object ],\n inputStyle: [ Array, String, Object ],\n\n tabindex: {\n type: [ String, Number ],\n default: 0\n },\n\n autocomplete: String,\n\n transitionShow: String,\n transitionHide: String,\n transitionDuration: [ String, Number ],\n\n behavior: {\n type: String,\n validator: v => [ 'default', 'menu', 'dialog' ].includes(v),\n default: 'default'\n },\n\n virtualScrollItemSize: {\n type: [ Number, String ],\n default: void 0\n },\n\n onNewValue: Function,\n onFilter: Function\n },\n\n emits: [\n ...useFieldEmits,\n 'add', 'remove', 'inputValue', 'newValue',\n 'keyup', 'keypress', 'keydown',\n 'filterAbort'\n ],\n\n setup (props, { slots, emit }) {\n const { proxy } = getCurrentInstance()\n const { $q } = proxy\n\n const menu = ref(false)\n const dialog = ref(false)\n const optionIndex = ref(-1)\n const inputValue = ref('')\n const dialogFieldFocused = ref(false)\n const innerLoadingIndicator = ref(false)\n\n let inputTimer, innerValueCache,\n hasDialog, userInputValue, filterId, defaultInputValue,\n transitionShowComputed, searchBuffer, searchBufferExp\n\n const inputRef = ref(null)\n const targetRef = ref(null)\n const menuRef = ref(null)\n const dialogRef = ref(null)\n const menuContentRef = ref(null)\n\n const nameProp = useFormInputNameAttr(props)\n\n const onComposition = useKeyComposition(onInput)\n\n const virtualScrollLength = computed(() => (\n Array.isArray(props.options)\n ? props.options.length\n : 0\n ))\n\n const virtualScrollItemSizeComputed = computed(() => (\n props.virtualScrollItemSize === void 0\n ? (props.optionsDense === true ? 24 : 48)\n : props.virtualScrollItemSize\n ))\n\n const {\n virtualScrollSliceRange,\n virtualScrollSliceSizeComputed,\n localResetVirtualScroll,\n padVirtualScroll,\n onVirtualScrollEvt,\n scrollTo,\n setVirtualScrollSize\n } = useVirtualScroll({\n virtualScrollLength, getVirtualScrollTarget, getVirtualScrollEl,\n virtualScrollItemSizeComputed\n })\n\n const state = useFieldState()\n\n const innerValue = computed(() => {\n const\n mapNull = props.mapOptions === true && props.multiple !== true,\n val = props.modelValue !== void 0 && (props.modelValue !== null || mapNull === true)\n ? (props.multiple === true && Array.isArray(props.modelValue) ? props.modelValue : [ props.modelValue ])\n : []\n\n if (props.mapOptions === true && Array.isArray(props.options) === true) {\n const cache = props.mapOptions === true && innerValueCache !== void 0\n ? innerValueCache\n : []\n const values = val.map(v => getOption(v, cache))\n\n return props.modelValue === null && mapNull === true\n ? values.filter(v => v !== null)\n : values\n }\n\n return val\n })\n\n const innerFieldProps = computed(() => {\n const acc = {}\n fieldPropsList.forEach(key => {\n const val = props[ key ]\n if (val !== void 0) {\n acc[ key ] = val\n }\n })\n return acc\n })\n\n const isOptionsDark = computed(() => (\n props.optionsDark === null\n ? state.isDark.value\n : props.optionsDark\n ))\n\n const hasValue = computed(() => fieldValueIsFilled(innerValue.value))\n\n const computedInputClass = computed(() => {\n let cls = 'q-field__input q-placeholder col'\n\n if (props.hideSelected === true || innerValue.value.length === 0) {\n return [ cls, props.inputClass ]\n }\n\n cls += ' q-field__input--padding'\n\n return props.inputClass === void 0\n ? cls\n : [ cls, props.inputClass ]\n })\n\n const menuContentClass = computed(() =>\n (props.virtualScrollHorizontal === true ? 'q-virtual-scroll--horizontal' : '')\n + (props.popupContentClass ? ' ' + props.popupContentClass : '')\n )\n\n const noOptions = computed(() => virtualScrollLength.value === 0)\n\n const selectedString = computed(() =>\n innerValue.value\n .map(opt => getOptionLabel.value(opt))\n .join(', ')\n )\n\n const needsHtmlFn = computed(() => (\n props.optionsHtml === true\n ? () => true\n : opt => opt !== void 0 && opt !== null && opt.html === true\n ))\n\n const valueAsHtml = computed(() => (\n props.displayValueHtml === true || (\n props.displayValue === void 0 && (\n props.optionsHtml === true\n || innerValue.value.some(needsHtmlFn.value)\n )\n )\n ))\n\n const tabindex = computed(() => (state.focused.value === true ? props.tabindex : -1))\n\n const comboboxAttrs = computed(() => ({\n tabindex: props.tabindex,\n role: 'combobox',\n 'aria-label': props.label,\n 'aria-readonly': props.readonly === true ? 'true' : 'false',\n 'aria-autocomplete': props.useInput === true ? 'list' : 'none',\n 'aria-expanded': menu.value === true ? 'true' : 'false',\n 'aria-owns': `${ state.targetUid.value }_lb`,\n 'aria-controls': `${ state.targetUid.value }_lb`\n }))\n\n const listboxAttrs = computed(() => {\n const attrs = {\n id: `${ state.targetUid.value }_lb`,\n role: 'listbox',\n 'aria-multiselectable': props.multiple === true ? 'true' : 'false'\n }\n\n if (optionIndex.value >= 0) {\n attrs[ 'aria-activedescendant' ] = `${ state.targetUid.value }_${ optionIndex.value }`\n }\n\n return attrs\n })\n\n const selectedScope = computed(() => {\n return innerValue.value.map((opt, i) => ({\n index: i,\n opt,\n html: needsHtmlFn.value(opt),\n selected: true,\n removeAtIndex: removeAtIndexAndFocus,\n toggleOption,\n tabindex: tabindex.value\n }))\n })\n\n const optionScope = computed(() => {\n if (virtualScrollLength.value === 0) {\n return []\n }\n\n const { from, to } = virtualScrollSliceRange.value\n\n return props.options.slice(from, to).map((opt, i) => {\n const disable = isOptionDisabled.value(opt) === true\n const index = from + i\n\n const itemProps = {\n clickable: true,\n active: false,\n activeClass: computedOptionsSelectedClass.value,\n manualFocus: true,\n focused: false,\n disable,\n tabindex: -1,\n dense: props.optionsDense,\n dark: isOptionsDark.value,\n role: 'option',\n id: `${ state.targetUid.value }_${ index }`,\n onClick: () => { toggleOption(opt) }\n }\n\n if (disable !== true) {\n isOptionSelected(opt) === true && (itemProps.active = true)\n optionIndex.value === index && (itemProps.focused = true)\n\n itemProps[ 'aria-selected' ] = itemProps.active === true ? 'true' : 'false'\n\n if ($q.platform.is.desktop === true) {\n itemProps.onMousemove = () => { menu.value === true && setOptionIndex(index) }\n }\n }\n\n return {\n index,\n opt,\n html: needsHtmlFn.value(opt),\n label: getOptionLabel.value(opt),\n selected: itemProps.active,\n focused: itemProps.focused,\n toggleOption,\n setOptionIndex,\n itemProps\n }\n })\n })\n\n const dropdownArrowIcon = computed(() => (\n props.dropdownIcon !== void 0\n ? props.dropdownIcon\n : $q.iconSet.arrow.dropdown\n ))\n\n const squaredMenu = computed(() =>\n props.optionsCover === false\n && props.outlined !== true\n && props.standout !== true\n && props.borderless !== true\n && props.rounded !== true\n )\n\n const computedOptionsSelectedClass = computed(() => (\n props.optionsSelectedClass !== void 0\n ? props.optionsSelectedClass\n : (props.color !== void 0 ? `text-${ props.color }` : '')\n ))\n\n // returns method to get value of an option;\n // takes into account 'option-value' prop\n const getOptionValue = computed(() => getPropValueFn(props.optionValue, 'value'))\n\n // returns method to get label of an option;\n // takes into account 'option-label' prop\n const getOptionLabel = computed(() => getPropValueFn(props.optionLabel, 'label'))\n\n // returns method to tell if an option is disabled;\n // takes into account 'option-disable' prop\n const isOptionDisabled = computed(() => getPropValueFn(props.optionDisable, 'disable'))\n\n const innerOptionsValue = computed(() => innerValue.value.map(opt => getOptionValue.value(opt)))\n\n const inputControlEvents = computed(() => {\n const evt = {\n onInput,\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: onComposition,\n onKeydown: onTargetKeydown,\n onKeyup: onTargetAutocomplete,\n onKeypress: onTargetKeypress,\n onFocus: selectInputText,\n onClick (e) { hasDialog === true && stop(e) }\n }\n\n evt.onCompositionstart = evt.onCompositionupdate = evt.onCompositionend = onComposition\n\n return evt\n })\n\n watch(innerValue, val => {\n innerValueCache = val\n\n if (\n props.useInput === true\n && props.fillInput === true\n && props.multiple !== true\n // Prevent re-entering in filter while filtering\n // Also prevent clearing inputValue while filtering\n && state.innerLoading.value !== true\n && ((dialog.value !== true && menu.value !== true) || hasValue.value !== true)\n ) {\n userInputValue !== true && resetInputValue()\n if (dialog.value === true || menu.value === true) {\n filter('')\n }\n }\n }, { immediate: true })\n\n watch(() => props.fillInput, resetInputValue)\n\n watch(menu, updateMenu)\n\n watch(virtualScrollLength, rerenderMenu)\n\n function getEmittingOptionValue (opt) {\n return props.emitValue === true\n ? getOptionValue.value(opt)\n : opt\n }\n\n function removeAtIndex (index) {\n if (index > -1 && index < innerValue.value.length) {\n if (props.multiple === true) {\n const model = props.modelValue.slice()\n emit('remove', { index, value: model.splice(index, 1)[ 0 ] })\n emit('update:modelValue', model)\n }\n else {\n emit('update:modelValue', null)\n }\n }\n }\n\n function removeAtIndexAndFocus (index) {\n removeAtIndex(index)\n state.focus()\n }\n\n function add (opt, unique) {\n const val = getEmittingOptionValue(opt)\n\n if (props.multiple !== true) {\n props.fillInput === true && updateInputValue(\n getOptionLabel.value(opt),\n true,\n true\n )\n\n emit('update:modelValue', val)\n return\n }\n\n if (innerValue.value.length === 0) {\n emit('add', { index: 0, value: val })\n emit('update:modelValue', props.multiple === true ? [ val ] : val)\n return\n }\n\n if (unique === true && isOptionSelected(opt) === true) {\n return\n }\n\n if (props.maxValues !== void 0 && props.modelValue.length >= props.maxValues) {\n return\n }\n\n const model = props.modelValue.slice()\n\n emit('add', { index: model.length, value: val })\n model.push(val)\n emit('update:modelValue', model)\n }\n\n function toggleOption (opt, keepOpen) {\n if (state.editable.value !== true || opt === void 0 || isOptionDisabled.value(opt) === true) {\n return\n }\n\n const optValue = getOptionValue.value(opt)\n\n if (props.multiple !== true) {\n if (keepOpen !== true) {\n updateInputValue(\n props.fillInput === true ? getOptionLabel.value(opt) : '',\n true,\n true\n )\n\n hidePopup()\n }\n\n targetRef.value !== null && targetRef.value.focus()\n\n if (\n innerValue.value.length === 0\n || isDeepEqual(getOptionValue.value(innerValue.value[ 0 ]), optValue) !== true\n ) {\n emit('update:modelValue', props.emitValue === true ? optValue : opt)\n }\n return\n }\n\n (hasDialog !== true || dialogFieldFocused.value === true) && state.focus()\n\n selectInputText()\n\n if (innerValue.value.length === 0) {\n const val = props.emitValue === true ? optValue : opt\n emit('add', { index: 0, value: val })\n emit('update:modelValue', props.multiple === true ? [ val ] : val)\n return\n }\n\n const\n model = props.modelValue.slice(),\n index = innerOptionsValue.value.findIndex(v => isDeepEqual(v, optValue))\n\n if (index > -1) {\n emit('remove', { index, value: model.splice(index, 1)[ 0 ] })\n }\n else {\n if (props.maxValues !== void 0 && model.length >= props.maxValues) {\n return\n }\n\n const val = props.emitValue === true ? optValue : opt\n\n emit('add', { index: model.length, value: val })\n model.push(val)\n }\n\n emit('update:modelValue', model)\n }\n\n function setOptionIndex (index) {\n if ($q.platform.is.desktop !== true) { return }\n\n const val = index > -1 && index < virtualScrollLength.value\n ? index\n : -1\n\n if (optionIndex.value !== val) {\n optionIndex.value = val\n }\n }\n\n function moveOptionSelection (offset = 1, skipInputValue) {\n if (menu.value === true) {\n let index = optionIndex.value\n do {\n index = normalizeToInterval(\n index + offset,\n -1,\n virtualScrollLength.value - 1\n )\n }\n while (index !== -1 && index !== optionIndex.value && isOptionDisabled.value(props.options[ index ]) === true)\n\n if (optionIndex.value !== index) {\n setOptionIndex(index)\n scrollTo(index)\n\n if (skipInputValue !== true && props.useInput === true && props.fillInput === true) {\n setInputValue(index >= 0\n ? getOptionLabel.value(props.options[ index ])\n : defaultInputValue\n )\n }\n }\n }\n }\n\n function getOption (value, valueCache) {\n const fn = opt => isDeepEqual(getOptionValue.value(opt), value)\n return props.options.find(fn) || valueCache.find(fn) || value\n }\n\n function getPropValueFn (propValue, defaultVal) {\n const val = propValue !== void 0\n ? propValue\n : defaultVal\n\n return typeof val === 'function'\n ? val\n : opt => (opt !== null && typeof opt === 'object' && val in opt ? opt[ val ] : opt)\n }\n\n function isOptionSelected (opt) {\n const val = getOptionValue.value(opt)\n return innerOptionsValue.value.find(v => isDeepEqual(v, val)) !== void 0\n }\n\n function selectInputText (e) {\n if (\n props.useInput === true\n && targetRef.value !== null\n && (e === void 0 || (targetRef.value === e.target && e.target.value === selectedString.value))\n ) {\n targetRef.value.select()\n }\n }\n\n function onTargetKeyup (e) {\n // if ESC and we have an opened menu\n // then stop propagation (might be caught by a QDialog\n // and so it will also close the QDialog, which is wrong)\n if (isKeyCode(e, 27) === true && menu.value === true) {\n stop(e)\n // on ESC we need to close the dialog also\n hidePopup()\n resetInputValue()\n }\n\n emit('keyup', e)\n }\n\n function onTargetAutocomplete (e) {\n const { value } = e.target\n\n if (e.keyCode !== void 0) {\n onTargetKeyup(e)\n return\n }\n\n e.target.value = ''\n clearTimeout(inputTimer)\n resetInputValue()\n\n if (typeof value === 'string' && value.length > 0) {\n const needle = value.toLocaleLowerCase()\n const findFn = extractFn => {\n const option = props.options.find(opt => extractFn.value(opt).toLocaleLowerCase() === needle)\n\n if (option === void 0) {\n return false\n }\n\n if (innerValue.value.indexOf(option) === -1) {\n toggleOption(option)\n }\n else {\n hidePopup()\n }\n\n return true\n }\n const fillFn = afterFilter => {\n if (findFn(getOptionValue) === true) {\n return\n }\n if (findFn(getOptionLabel) === true || afterFilter === true) {\n return\n }\n\n filter(value, true, () => fillFn(true))\n }\n\n fillFn()\n }\n else {\n state.clearValue(e)\n }\n }\n\n function onTargetKeypress (e) {\n emit('keypress', e)\n }\n\n function onTargetKeydown (e) {\n emit('keydown', e)\n\n if (shouldIgnoreKey(e) === true) {\n return\n }\n\n const newValueModeValid = inputValue.value.length > 0\n && (props.newValueMode !== void 0 || props.onNewValue !== void 0)\n\n const tabShouldSelect = e.shiftKey !== true\n && props.multiple !== true\n && (optionIndex.value > -1 || newValueModeValid === true)\n\n // escape\n if (e.keyCode === 27) {\n prevent(e) // prevent clearing the inputValue\n return\n }\n\n // tab\n if (e.keyCode === 9 && tabShouldSelect === false) {\n closeMenu()\n return\n }\n\n if (e.target === void 0 || e.target.id !== state.targetUid.value) { return }\n\n // down\n if (\n e.keyCode === 40\n && state.innerLoading.value !== true\n && menu.value === false\n ) {\n stopAndPrevent(e)\n showPopup()\n return\n }\n\n // backspace\n if (\n e.keyCode === 8\n && props.hideSelected !== true\n && inputValue.value.length === 0\n ) {\n if (props.multiple === true && Array.isArray(props.modelValue) === true) {\n removeAtIndex(props.modelValue.length - 1)\n }\n else if (props.multiple !== true && props.modelValue !== null) {\n emit('update:modelValue', null)\n }\n return\n }\n\n // home, end - 36, 35\n if (\n (e.keyCode === 35 || e.keyCode === 36)\n && (typeof inputValue.value !== 'string' || inputValue.value.length === 0)\n ) {\n stopAndPrevent(e)\n optionIndex.value = -1\n moveOptionSelection(e.keyCode === 36 ? 1 : -1, props.multiple)\n }\n\n // pg up, pg down - 33, 34\n if (\n (e.keyCode === 33 || e.keyCode === 34)\n && virtualScrollSliceSizeComputed.value !== void 0\n ) {\n stopAndPrevent(e)\n optionIndex.value = Math.max(\n -1,\n Math.min(\n virtualScrollLength.value,\n optionIndex.value + (e.keyCode === 33 ? -1 : 1) * virtualScrollSliceSizeComputed.value.view\n )\n )\n moveOptionSelection(e.keyCode === 33 ? 1 : -1, props.multiple)\n }\n\n // up, down\n if (e.keyCode === 38 || e.keyCode === 40) {\n stopAndPrevent(e)\n moveOptionSelection(e.keyCode === 38 ? -1 : 1, props.multiple)\n }\n\n const optionsLength = virtualScrollLength.value\n\n // clear search buffer if expired\n if (searchBuffer === void 0 || searchBufferExp < Date.now()) {\n searchBuffer = ''\n }\n\n // keyboard search when not having use-input\n if (\n optionsLength > 0\n && props.useInput !== true\n && e.key !== void 0\n && e.key.length === 1 // printable char\n && e.altKey === e.ctrlKey // not kbd shortcut\n && (e.keyCode !== 32 || searchBuffer.length > 0) // space in middle of search\n ) {\n menu.value !== true && showPopup(e)\n\n const\n char = e.key.toLocaleLowerCase(),\n keyRepeat = searchBuffer.length === 1 && searchBuffer[ 0 ] === char\n\n searchBufferExp = Date.now() + 1500\n if (keyRepeat === false) {\n stopAndPrevent(e)\n searchBuffer += char\n }\n\n const searchRe = new RegExp('^' + searchBuffer.split('').map(l => (reEscapeList.indexOf(l) > -1 ? '\\\\' + l : l)).join('.*'), 'i')\n\n let index = optionIndex.value\n\n if (keyRepeat === true || index < 0 || searchRe.test(getOptionLabel.value(props.options[ index ])) !== true) {\n do {\n index = normalizeToInterval(index + 1, -1, optionsLength - 1)\n }\n while (index !== optionIndex.value && (\n isOptionDisabled.value(props.options[ index ]) === true\n || searchRe.test(getOptionLabel.value(props.options[ index ])) !== true\n ))\n }\n\n if (optionIndex.value !== index) {\n nextTick(() => {\n setOptionIndex(index)\n scrollTo(index)\n\n if (index >= 0 && props.useInput === true && props.fillInput === true) {\n setInputValue(getOptionLabel.value(props.options[ index ]))\n }\n })\n }\n\n return\n }\n\n // enter, space (when not using use-input and not in search), or tab (when not using multiple and option selected)\n // same target is checked above\n if (\n e.keyCode !== 13\n && (e.keyCode !== 32 || props.useInput === true || searchBuffer !== '')\n && (e.keyCode !== 9 || tabShouldSelect === false)\n ) { return }\n\n e.keyCode !== 9 && stopAndPrevent(e)\n\n if (optionIndex.value > -1 && optionIndex.value < optionsLength) {\n toggleOption(props.options[ optionIndex.value ])\n return\n }\n\n if (newValueModeValid === true) {\n const done = (val, mode) => {\n if (mode) {\n if (validateNewValueMode(mode) !== true) {\n return\n }\n }\n else {\n mode = props.newValueMode\n }\n\n if (val === void 0 || val === null) {\n return\n }\n\n updateInputValue('', props.multiple !== true, true)\n\n const fn = mode === 'toggle' ? toggleOption : add\n fn(val, mode === 'add-unique')\n\n if (props.multiple !== true) {\n targetRef.value !== null && targetRef.value.focus()\n hidePopup()\n }\n }\n\n if (props.onNewValue !== void 0) {\n emit('newValue', inputValue.value, done)\n }\n else {\n done(inputValue.value)\n }\n\n if (props.multiple !== true) {\n return\n }\n }\n\n if (menu.value === true) {\n closeMenu()\n }\n else if (state.innerLoading.value !== true) {\n showPopup()\n }\n }\n\n function getVirtualScrollEl () {\n return hasDialog === true\n ? menuContentRef.value\n : (\n menuRef.value !== null && menuRef.value.contentEl !== null\n ? menuRef.value.contentEl\n : void 0\n )\n }\n\n function getVirtualScrollTarget () {\n return getVirtualScrollEl()\n }\n\n function getSelection () {\n if (props.hideSelected === true) {\n return []\n }\n\n if (slots[ 'selected-item' ] !== void 0) {\n return selectedScope.value.map(scope => slots[ 'selected-item' ](scope)).slice()\n }\n\n if (slots.selected !== void 0) {\n return [].concat(slots.selected())\n }\n\n if (props.useChips === true) {\n return selectedScope.value.map((scope, i) => h(QChip, {\n key: 'option-' + i,\n removable: state.editable.value === true && isOptionDisabled.value(scope.opt) !== true,\n dense: true,\n textColor: props.color,\n tabindex: tabindex.value,\n onRemove () { scope.removeAtIndex(i) }\n }, () => h('span', {\n class: 'ellipsis',\n [ scope.html === true ? 'innerHTML' : 'textContent' ]: getOptionLabel.value(scope.opt)\n })))\n }\n\n return [\n h('span', {\n [ valueAsHtml.value === true ? 'innerHTML' : 'textContent' ]: props.displayValue !== void 0\n ? props.displayValue\n : selectedString.value\n })\n ]\n }\n\n function getAllOptions () {\n if (noOptions.value === true) {\n return slots[ 'no-option' ] !== void 0\n ? slots[ 'no-option' ]({ inputValue: inputValue.value })\n : void 0\n }\n\n const fn = slots.option !== void 0\n ? slots.option\n : scope => {\n return h(QItem, {\n key: scope.index,\n ...scope.itemProps\n }, () => {\n return h(\n QItemSection,\n () => h(\n QItemLabel,\n () => h('span', {\n [ scope.html === true ? 'innerHTML' : 'textContent' ]: scope.label\n })\n )\n )\n })\n }\n\n let options = padVirtualScroll('div', optionScope.value.map(fn))\n\n if (slots[ 'before-options' ] !== void 0) {\n options = slots[ 'before-options' ]().concat(options)\n }\n\n return hMergeSlot(slots[ 'after-options' ], options)\n }\n\n function getInput (fromDialog, isTarget) {\n const attrs = isTarget === true ? { ...comboboxAttrs.value, ...state.splitAttrs.attributes.value } : void 0\n\n const data = {\n ref: isTarget === true ? targetRef : void 0,\n key: 'i_t',\n class: computedInputClass.value,\n style: props.inputStyle,\n value: inputValue.value !== void 0 ? inputValue.value : '',\n // required for Android in order to show ENTER key when in form\n type: 'search',\n ...attrs,\n id: isTarget === true ? state.targetUid.value : void 0,\n maxlength: props.maxlength,\n autocomplete: props.autocomplete,\n 'data-autofocus': (fromDialog !== true && props.autofocus === true) || void 0,\n disabled: props.disable === true,\n readonly: props.readonly === true,\n ...inputControlEvents.value\n }\n\n if (fromDialog !== true && hasDialog === true) {\n if (Array.isArray(data.class) === true) {\n data.class = [ ...data.class, 'no-pointer-events' ]\n }\n else {\n data.class += ' no-pointer-events'\n }\n }\n\n return h('input', data)\n }\n\n function onInput (e) {\n clearTimeout(inputTimer)\n\n if (e && e.target && e.target.qComposing === true) {\n return\n }\n\n setInputValue(e.target.value || '')\n // mark it here as user input so that if updateInputValue is called\n // before filter is called the indicator is reset\n userInputValue = true\n defaultInputValue = inputValue.value\n\n if (\n state.focused.value !== true\n && (hasDialog !== true || dialogFieldFocused.value === true)\n ) {\n state.focus()\n }\n\n if (props.onFilter !== void 0) {\n inputTimer = setTimeout(() => {\n filter(inputValue.value)\n }, props.inputDebounce)\n }\n }\n\n function setInputValue (val) {\n if (inputValue.value !== val) {\n inputValue.value = val\n emit('inputValue', val)\n }\n }\n\n function updateInputValue (val, noFiltering, internal) {\n userInputValue = internal !== true\n\n if (props.useInput === true) {\n setInputValue(val)\n\n if (noFiltering === true || internal !== true) {\n defaultInputValue = val\n }\n\n noFiltering !== true && filter(val)\n }\n }\n\n function filter (val, keepClosed, afterUpdateFn) {\n if (props.onFilter === void 0 || (keepClosed !== true && state.focused.value !== true)) {\n return\n }\n\n if (state.innerLoading.value === true) {\n emit('filterAbort')\n }\n else {\n state.innerLoading.value = true\n innerLoadingIndicator.value = true\n }\n\n if (\n val !== ''\n && props.multiple !== true\n && innerValue.value.length > 0\n && userInputValue !== true\n && val === getOptionLabel.value(innerValue.value[ 0 ])\n ) {\n val = ''\n }\n\n const localFilterId = setTimeout(() => {\n menu.value === true && (menu.value = false)\n }, 10)\n\n clearTimeout(filterId)\n filterId = localFilterId\n\n emit(\n 'filter',\n val,\n (fn, afterFn) => {\n if ((keepClosed === true || state.focused.value === true) && filterId === localFilterId) {\n clearTimeout(filterId)\n\n typeof fn === 'function' && fn()\n\n // hide indicator to allow arrow to animate\n innerLoadingIndicator.value = false\n\n nextTick(() => {\n state.innerLoading.value = false\n\n if (state.editable.value === true) {\n if (keepClosed === true) {\n menu.value === true && hidePopup()\n }\n else if (menu.value === true) {\n updateMenu(true)\n }\n else {\n menu.value = true\n }\n }\n\n typeof afterFn === 'function' && nextTick(() => { afterFn(proxy) })\n typeof afterUpdateFn === 'function' && nextTick(() => { afterUpdateFn(proxy) })\n })\n }\n },\n () => {\n if (state.focused.value === true && filterId === localFilterId) {\n clearTimeout(filterId)\n state.innerLoading.value = false\n innerLoadingIndicator.value = false\n }\n menu.value === true && (menu.value = false)\n }\n )\n }\n\n function getMenu () {\n return h(QMenu, {\n ref: menuRef,\n class: menuContentClass.value,\n style: props.popupContentStyle,\n modelValue: menu.value,\n fit: props.menuShrink !== true,\n cover: props.optionsCover === true && noOptions.value !== true && props.useInput !== true,\n anchor: props.menuAnchor,\n self: props.menuSelf,\n offset: props.menuOffset,\n dark: isOptionsDark.value,\n noParentEvent: true,\n noRefocus: true,\n noFocus: true,\n square: squaredMenu.value,\n transitionShow: props.transitionShow,\n transitionHide: props.transitionHide,\n transitionDuration: props.transitionDuration,\n separateClosePopup: true,\n ...listboxAttrs.value,\n onScrollPassive: onVirtualScrollEvt,\n onBeforeShow: onControlPopupShow,\n onBeforeHide: onMenuBeforeHide,\n onShow: onMenuShow\n }, getAllOptions)\n }\n\n function onMenuBeforeHide (e) {\n onControlPopupHide(e)\n closeMenu()\n }\n\n function onMenuShow () {\n setVirtualScrollSize()\n }\n\n function onDialogFieldFocus (e) {\n stop(e)\n targetRef.value !== null && targetRef.value.focus()\n dialogFieldFocused.value = true\n window.scrollTo(window.pageXOffset || window.scrollX || document.body.scrollLeft || 0, 0)\n }\n\n function onDialogFieldBlur (e) {\n stop(e)\n nextTick(() => {\n dialogFieldFocused.value = false\n })\n }\n\n function getDialog () {\n const content = [\n h(QField, {\n class: `col-auto ${ state.fieldClass.value }`,\n ...innerFieldProps.value,\n for: state.targetUid.value,\n dark: isOptionsDark.value,\n square: true,\n loading: innerLoadingIndicator.value,\n itemAligned: false,\n filled: true,\n stackLabel: inputValue.value.length > 0,\n ...state.splitAttrs.listeners.value,\n onFocus: onDialogFieldFocus,\n onBlur: onDialogFieldBlur\n }, {\n ...slots,\n rawControl: () => state.getControl(true),\n before: void 0,\n after: void 0\n })\n ]\n\n menu.value === true && content.push(\n h('div', {\n ref: menuContentRef,\n class: menuContentClass.value + ' scroll',\n style: props.popupContentStyle,\n ...listboxAttrs.value,\n onClick: prevent,\n onScrollPassive: onVirtualScrollEvt\n }, getAllOptions())\n )\n\n return h(QDialog, {\n ref: dialogRef,\n modelValue: dialog.value,\n position: props.useInput === true ? 'top' : void 0,\n transitionShow: transitionShowComputed,\n transitionHide: props.transitionHide,\n transitionDuration: props.transitionDuration,\n onBeforeShow: onControlPopupShow,\n onBeforeHide: onDialogBeforeHide,\n onHide: onDialogHide,\n onShow: onDialogShow\n }, () => h('div', {\n class: 'q-select__dialog'\n + (isOptionsDark.value === true ? ' q-select__dialog--dark q-dark' : '')\n + (dialogFieldFocused.value === true ? ' q-select__dialog--focused' : '')\n }, content))\n }\n\n function onDialogBeforeHide (e) {\n onControlPopupHide(e)\n\n if (dialogRef.value !== null) {\n dialogRef.value.__updateRefocusTarget(\n state.rootRef.value.querySelector('.q-field__native > [tabindex]:last-child')\n )\n }\n\n state.focused.value = false\n }\n\n function onDialogHide (e) {\n hidePopup()\n state.focused.value === false && emit('blur', e)\n resetInputValue()\n }\n\n function onDialogShow () {\n const el = document.activeElement\n if (\n (el === null || el.id !== state.targetUid.value)\n && targetRef.value !== null\n && targetRef.value !== el\n ) {\n targetRef.value.focus()\n }\n\n setVirtualScrollSize()\n }\n\n function closeMenu () {\n if (dialog.value === true) {\n return\n }\n\n optionIndex.value = -1\n\n if (menu.value === true) {\n menu.value = false\n }\n\n if (state.focused.value === false) {\n clearTimeout(filterId)\n filterId = void 0\n\n if (state.innerLoading.value === true) {\n emit('filterAbort')\n state.innerLoading.value = false\n innerLoadingIndicator.value = false\n }\n }\n }\n\n function showPopup (e) {\n if (state.editable.value !== true) {\n return\n }\n\n if (hasDialog === true) {\n state.onControlFocusin(e)\n dialog.value = true\n nextTick(() => {\n state.focus()\n })\n }\n else {\n state.focus()\n }\n\n if (props.onFilter !== void 0) {\n filter(inputValue.value)\n }\n else if (noOptions.value !== true || slots[ 'no-option' ] !== void 0) {\n menu.value = true\n }\n }\n\n function hidePopup () {\n dialog.value = false\n closeMenu()\n }\n\n function resetInputValue () {\n props.useInput === true && updateInputValue(\n props.multiple !== true && props.fillInput === true && innerValue.value.length > 0\n ? getOptionLabel.value(innerValue.value[ 0 ]) || ''\n : '',\n true,\n true\n )\n }\n\n function updateMenu (show) {\n let optionIndex = -1\n\n if (show === true) {\n if (innerValue.value.length > 0) {\n const val = getOptionValue.value(innerValue.value[ 0 ])\n optionIndex = props.options.findIndex(v => isDeepEqual(getOptionValue.value(v), val))\n }\n\n localResetVirtualScroll(optionIndex)\n }\n\n setOptionIndex(optionIndex)\n }\n\n function rerenderMenu (newLength, oldLength) {\n if (menu.value === true && state.innerLoading.value === false) {\n localResetVirtualScroll(-1, true)\n\n nextTick(() => {\n if (menu.value === true && state.innerLoading.value === false) {\n if (newLength > oldLength) {\n localResetVirtualScroll()\n }\n else {\n updateMenu(true)\n }\n }\n })\n }\n }\n\n function updateMenuPosition () {\n if (dialog.value === false && menuRef.value !== null) {\n menuRef.value.updatePosition()\n }\n }\n\n function onControlPopupShow (e) {\n e !== void 0 && stop(e)\n emit('popupShow', e)\n state.hasPopupOpen = true\n state.onControlFocusin(e)\n }\n\n function onControlPopupHide (e) {\n e !== void 0 && stop(e)\n emit('popupHide', e)\n state.hasPopupOpen = false\n state.onControlFocusout(e)\n }\n\n function updatePreState () {\n hasDialog = $q.platform.is.mobile !== true && props.behavior !== 'dialog'\n ? false\n : props.behavior !== 'menu' && (\n props.useInput === true\n ? slots[ 'no-option' ] !== void 0 || props.onFilter !== void 0 || noOptions.value === false\n : true\n )\n\n transitionShowComputed = $q.platform.is.ios === true && hasDialog === true && props.useInput === true\n ? 'fade'\n : props.transitionShow\n }\n\n onBeforeUpdate(updatePreState)\n onUpdated(updateMenuPosition)\n\n updatePreState()\n\n onBeforeUnmount(() => {\n clearTimeout(inputTimer)\n })\n\n // expose public methods\n Object.assign(proxy, {\n showPopup, hidePopup,\n removeAtIndex, add, toggleOption,\n getOptionIndex: () => optionIndex.value,\n setOptionIndex, moveOptionSelection,\n filter, updateMenuPosition, updateInputValue,\n isOptionSelected,\n getEmittingOptionValue,\n isOptionDisabled: (...args) => isOptionDisabled.value.apply(null, args) === true,\n getOptionValue: (...args) => getOptionValue.value.apply(null, args),\n getOptionLabel: (...args) => getOptionLabel.value.apply(null, args)\n })\n\n Object.assign(state, {\n innerValue,\n\n fieldClass: computed(() =>\n `q-select q-field--auto-height q-select--with${ props.useInput !== true ? 'out' : '' }-input`\n + ` q-select--with${ props.useChips !== true ? 'out' : '' }-chips`\n + ` q-select--${ props.multiple === true ? 'multiple' : 'single' }`\n ),\n\n inputRef,\n targetRef,\n hasValue,\n showPopup,\n\n floatingLabel: computed(() =>\n (props.hideSelected !== true && hasValue.value === true)\n || typeof inputValue.value === 'number'\n || inputValue.value.length > 0\n || fieldValueIsFilled(props.displayValue)\n ),\n\n getControlChild: () => {\n if (\n state.editable.value !== false && (\n dialog.value === true // dialog always has menu displayed, so need to render it\n || noOptions.value !== true\n || slots[ 'no-option' ] !== void 0\n )\n ) {\n return hasDialog === true ? getDialog() : getMenu()\n }\n else if (state.hasPopupOpen === true) {\n // explicitly set it otherwise TAB will not blur component\n state.hasPopupOpen = false\n }\n },\n\n controlEvents: {\n onFocusin (e) { state.onControlFocusin(e) },\n onFocusout (e) {\n state.onControlFocusout(e, () => {\n resetInputValue()\n closeMenu()\n })\n },\n onClick (e) {\n // label from QField will propagate click on the input\n prevent(e)\n\n if (hasDialog !== true && menu.value === true) {\n closeMenu()\n targetRef.value !== null && targetRef.value.focus()\n return\n }\n\n showPopup(e)\n }\n },\n\n getControl: fromDialog => {\n const child = getSelection()\n const isTarget = fromDialog === true || dialog.value !== true || hasDialog !== true\n\n if (props.useInput === true) {\n child.push(getInput(fromDialog, isTarget))\n }\n // there can be only one (when dialog is opened the control in dialog should be target)\n else if (state.editable.value === true) {\n const attrs = isTarget === true ? comboboxAttrs.value : void 0\n\n child.push(\n h('input', {\n ref: isTarget === true ? targetRef : void 0,\n key: 'd_t',\n class: 'q-select__focus-target',\n id: isTarget === true ? state.targetUid.value : void 0,\n readonly: true,\n 'data-autofocus': (fromDialog !== true && props.autofocus === true) || void 0,\n ...attrs,\n onKeydown: onTargetKeydown,\n onKeyup: onTargetKeyup,\n onKeypress: onTargetKeypress\n })\n )\n\n if (isTarget === true && typeof props.autocomplete === 'string' && props.autocomplete.length > 0) {\n child.push(\n h('input', {\n class: 'q-select__autocomplete-input',\n autocomplete: props.autocomplete,\n tabindex: -1,\n onKeyup: onTargetAutocomplete\n })\n )\n }\n }\n\n if (nameProp.value !== void 0 && props.disable !== true && innerOptionsValue.value.length > 0) {\n const opts = innerOptionsValue.value.map(value => h('option', { value, selected: true }))\n\n child.push(\n h('select', {\n class: 'hidden',\n name: nameProp.value,\n multiple: props.multiple\n }, opts)\n )\n }\n\n const attrs = props.useInput === true || isTarget !== true ? void 0 : state.splitAttrs.attributes.value\n\n return h('div', {\n class: 'q-field__native row items-center',\n ...attrs\n }, child)\n },\n\n getInnerAppend: () => (\n props.loading !== true && innerLoadingIndicator.value !== true && props.hideDropdownIcon !== true\n ? [\n h(QIcon, {\n class: 'q-select__dropdown-icon' + (menu.value === true ? ' rotate-180' : ''),\n name: dropdownArrowIcon.value\n })\n ]\n : null\n )\n })\n\n return useField(state)\n }\n})\n","import { h } from 'vue'\n\nimport { createComponent } from '../../utils/private/create.js'\n\nconst space = h('div', { class: 'q-space' })\n\nexport default createComponent({\n name: 'QSpace',\n\n setup () {\n return () => space\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, getCurrentInstance } from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hSlot, hUniqueSlot } from '../../utils/private/render.js'\n\nexport default createComponent({\n name: 'QTh',\n\n props: {\n props: Object,\n autoWidth: Boolean\n },\n\n emits: [ 'click' ],\n\n setup (props, { slots, emit }) {\n const vm = getCurrentInstance()\n const { proxy: { $q } } = vm\n\n const onClick = evt => { emit('click', evt) }\n\n return () => {\n if (props.props === void 0) {\n return h('th', {\n class: props.autoWidth === true ? 'q-table--col-auto-width' : '',\n onClick\n }, hSlot(slots.default))\n }\n\n let col, child\n const name = vm.vnode.key\n\n if (name) {\n col = props.props.colsMap[ name ]\n if (col === void 0) { return }\n }\n else {\n col = props.props.col\n }\n\n if (col.sortable === true) {\n const action = col.align === 'right'\n ? 'unshift'\n : 'push'\n\n child = hUniqueSlot(slots.default, [])\n child[ action ](\n h(QIcon, {\n class: col.__iconClass,\n name: $q.iconSet.table.arrowUp\n })\n )\n }\n else {\n child = hSlot(slots.default)\n }\n\n const data = {\n class: col.__thClass\n + (props.autoWidth === true ? ' q-table--col-auto-width' : ''),\n style: col.headerStyle,\n onClick: evt => {\n col.sortable === true && props.props.sort(col) // eslint-disable-line\n onClick(evt)\n }\n }\n\n return h('th', data, child)\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 { h, computed, getCurrentInstance } from 'vue'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hSlot } from '../../utils/private/render.js'\n\nconst separatorValues = [ 'horizontal', 'vertical', 'cell', 'none' ]\n\nexport default createComponent({\n name: 'QMarkupTable',\n\n props: {\n ...useDarkProps,\n\n dense: Boolean,\n flat: Boolean,\n bordered: Boolean,\n square: Boolean,\n wrapCells: Boolean,\n\n separator: {\n type: String,\n default: 'horizontal',\n validator: v => separatorValues.includes(v)\n }\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-markup-table q-table__container q-table__card'\n + ` q-table--${ props.separator }-separator`\n + (isDark.value === true ? ' q-table--dark q-table__card--dark q-dark' : '')\n + (props.dense === true ? ' q-table--dense' : '')\n + (props.flat === true ? ' q-table--flat' : '')\n + (props.bordered === true ? ' q-table--bordered' : '')\n + (props.square === true ? ' q-table--square' : '')\n + (props.wrapCells === false ? ' q-table--no-wrap' : '')\n )\n\n return () => h('div', {\n class: classes.value\n }, [\n h('table', { class: 'q-table' }, hSlot(slots.default))\n ])\n }\n})\n","import { h } from 'vue'\n\nexport default function (props, content) {\n return h('div', props, [\n h('table', { class: 'q-table' }, content)\n ])\n}\n","import { h, ref, computed, watch, onBeforeMount, onMounted, onBeforeUnmount, onActivated, onDeactivated } from 'vue'\n\nimport QList from '../item/QList.js'\nimport QMarkupTable from '../markup-table/QMarkupTable.js'\nimport getTableMiddle from '../table/get-table-middle.js'\n\nimport { useVirtualScroll, useVirtualScrollProps } from './use-virtual-scroll.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { getScrollTarget } from '../../utils/scroll.js'\nimport { listenOpts } from '../../utils/event.js'\nimport { hMergeSlot } from '../../utils/private/render.js'\n\nconst comps = {\n list: QList,\n table: QMarkupTable\n}\n\nconst typeOptions = [ 'list', 'table', '__qtable' ]\n\nexport default createComponent({\n name: 'QVirtualScroll',\n\n props: {\n ...useVirtualScrollProps,\n\n type: {\n type: String,\n default: 'list',\n validator: v => typeOptions.includes(v)\n },\n\n items: {\n type: Array,\n default: () => []\n },\n\n itemsFn: Function,\n itemsSize: Number,\n\n scrollTarget: {\n default: void 0\n }\n },\n\n setup (props, { slots, attrs }) {\n let localScrollTarget\n const rootRef = ref(null)\n\n const virtualScrollLength = computed(() => (\n props.itemsSize >= 0 && props.itemsFn !== void 0\n ? parseInt(props.itemsSize, 10)\n : (Array.isArray(props.items) ? props.items.length : 0)\n ))\n\n const {\n virtualScrollSliceRange,\n localResetVirtualScroll,\n padVirtualScroll,\n onVirtualScrollEvt\n } = useVirtualScroll({\n virtualScrollLength, getVirtualScrollTarget, getVirtualScrollEl\n })\n\n const virtualScrollScope = computed(() => {\n if (virtualScrollLength.value === 0) {\n return []\n }\n\n const mapFn = (item, i) => ({\n index: virtualScrollSliceRange.value.from + i,\n item\n })\n\n return props.itemsFn === void 0\n ? props.items.slice(virtualScrollSliceRange.value.from, virtualScrollSliceRange.value.to).map(mapFn)\n : props.itemsFn(virtualScrollSliceRange.value.from, virtualScrollSliceRange.value.to - virtualScrollSliceRange.value.from).map(mapFn)\n })\n\n const classes = computed(() =>\n 'q-virtual-scroll q-virtual-scroll' + (props.virtualScrollHorizontal === true ? '--horizontal' : '--vertical')\n + (props.scrollTarget !== void 0 ? '' : ' scroll')\n )\n\n const attributes = computed(() => (\n props.scrollTarget !== void 0 ? {} : { tabindex: 0 }\n ))\n\n watch(virtualScrollLength, () => {\n localResetVirtualScroll()\n })\n\n watch(() => props.scrollTarget, () => {\n unconfigureScrollTarget()\n configureScrollTarget()\n })\n\n function getVirtualScrollEl () {\n return rootRef.value.$el || rootRef.value\n }\n\n function getVirtualScrollTarget () {\n return localScrollTarget\n }\n\n function configureScrollTarget () {\n localScrollTarget = getScrollTarget(getVirtualScrollEl(), props.scrollTarget)\n localScrollTarget.addEventListener('scroll', onVirtualScrollEvt, listenOpts.passive)\n }\n\n function unconfigureScrollTarget () {\n if (localScrollTarget !== void 0) {\n localScrollTarget.removeEventListener('scroll', onVirtualScrollEvt, listenOpts.passive)\n localScrollTarget = void 0\n }\n }\n\n function __getVirtualChildren () {\n let child = padVirtualScroll(\n props.type === 'list' ? 'div' : 'tbody',\n virtualScrollScope.value.map(slots.default)\n )\n\n if (slots.before !== void 0) {\n child = slots.before().concat(child)\n }\n\n return hMergeSlot(slots.after, child)\n }\n\n onBeforeMount(() => {\n localResetVirtualScroll()\n })\n\n onMounted(() => {\n configureScrollTarget()\n })\n\n onActivated(() => {\n configureScrollTarget()\n })\n\n onDeactivated(() => {\n unconfigureScrollTarget()\n })\n\n onBeforeUnmount(() => {\n unconfigureScrollTarget()\n })\n\n return () => {\n if (slots.default === void 0) {\n console.error('QVirtualScroll: default scoped slot is required for rendering')\n return\n }\n\n return props.type === '__qtable'\n ? getTableMiddle(\n { ref: rootRef, class: 'q-table__middle ' + classes.value },\n __getVirtualChildren()\n )\n : h(comps[ props.type ], {\n ...attrs,\n ref: rootRef,\n class: [ attrs.class, classes.value ],\n ...attributes.value\n }, __getVirtualChildren)\n }\n }\n})\n","import { h, computed, getCurrentInstance } from 'vue'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport useSize, { useSizeProps } from '../../composables/private/use-size.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hMergeSlot } from '../../utils/private/render.js'\n\nconst defaultSizes = {\n xs: 2,\n sm: 4,\n md: 6,\n lg: 10,\n xl: 14\n}\n\nfunction width (val, reverse, $q) {\n return {\n transform: reverse === true\n ? `translateX(${ $q.lang.rtl === true ? '-' : '' }100%) scale3d(${ -val },1,1)`\n : `scale3d(${ val },1,1)`\n }\n}\n\nexport default createComponent({\n name: 'QLinearProgress',\n\n props: {\n ...useDarkProps,\n ...useSizeProps,\n\n value: {\n type: Number,\n default: 0\n },\n buffer: Number,\n\n color: String,\n trackColor: String,\n\n reverse: Boolean,\n stripe: Boolean,\n indeterminate: Boolean,\n query: Boolean,\n rounded: Boolean,\n\n animationSpeed: {\n type: [ String, Number ],\n default: 2100\n },\n\n instantFeedback: Boolean\n },\n\n setup (props, { slots }) {\n const { proxy } = getCurrentInstance()\n const isDark = useDark(props, proxy.$q)\n const sizeStyle = useSize(props, defaultSizes)\n\n const motion = computed(() => props.indeterminate === true || props.query === true)\n const widthReverse = computed(() => props.reverse !== props.query)\n const style = computed(() => ({\n ...(sizeStyle.value !== null ? sizeStyle.value : {}),\n '--q-linear-progress-speed': `${ props.animationSpeed }ms`\n }))\n\n const classes = computed(() =>\n 'q-linear-progress'\n + (props.color !== void 0 ? ` text-${ props.color }` : '')\n + (props.reverse === true || props.query === true ? ' q-linear-progress--reverse' : '')\n + (props.rounded === true ? ' rounded-borders' : '')\n )\n\n const trackStyle = computed(() => width(props.buffer !== void 0 ? props.buffer : 1, widthReverse.value, proxy.$q))\n const trackClass = computed(() =>\n 'q-linear-progress__track absolute-full'\n + ` q-linear-progress__track--with${ props.instantFeedback === true ? 'out' : '' }-transition`\n + ` q-linear-progress__track--${ isDark.value === true ? 'dark' : 'light' }`\n + (props.trackColor !== void 0 ? ` bg-${ props.trackColor }` : '')\n )\n\n const modelStyle = computed(() => width(motion.value === true ? 1 : props.value, widthReverse.value, proxy.$q))\n const modelClass = computed(() =>\n 'q-linear-progress__model absolute-full'\n + ` q-linear-progress__model--with${ props.instantFeedback === true ? 'out' : '' }-transition`\n + ` q-linear-progress__model--${ motion.value === true ? 'in' : '' }determinate`\n )\n\n const stripeStyle = computed(() => ({ width: `${ props.value * 100 }%` }))\n const stripeClass = computed(() =>\n `q-linear-progress__stripe absolute-${ props.reverse === true ? 'right' : 'left' }`\n )\n\n return () => {\n const child = [\n h('div', {\n class: trackClass.value,\n style: trackStyle.value\n }),\n\n h('div', {\n class: modelClass.value,\n style: modelStyle.value\n })\n ]\n\n props.stripe === true && motion.value === false && child.push(\n h('div', {\n class: stripeClass.value,\n style: stripeStyle.value\n })\n )\n\n return h('div', {\n class: classes.value,\n style: style.value,\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 1,\n 'aria-valuenow': props.indeterminate === true\n ? void 0\n : props.value\n }, hMergeSlot(slots.default, child))\n }\n }\n})\n","import { ref, watch, onBeforeMount, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport History from '../../history.js'\nimport { vmHasRouter } from '../../utils/private/vm.js'\n\nlet counter = 0\n\nexport const useFullscreenProps = {\n fullscreen: Boolean,\n noRouteFullscreenExit: Boolean\n}\n\nexport const useFullscreenEmits = [ 'update:fullscreen', 'fullscreen' ]\n\nexport default function () {\n const vm = getCurrentInstance()\n const { props, emit, proxy } = vm\n\n let historyEntry, fullscreenFillerNode, container\n const inFullscreen = ref(false)\n\n vmHasRouter(vm) === true && watch(() => proxy.$route.fullPath, () => {\n props.noRouteFullscreenExit !== true && exitFullscreen()\n })\n\n watch(() => props.fullscreen, v => {\n if (inFullscreen.value !== v) {\n toggleFullscreen()\n }\n })\n\n watch(inFullscreen, v => {\n emit('update:fullscreen', v)\n emit('fullscreen', v)\n })\n\n function toggleFullscreen () {\n if (inFullscreen.value === true) {\n exitFullscreen()\n }\n else {\n setFullscreen()\n }\n }\n\n function setFullscreen () {\n if (inFullscreen.value === true) {\n return\n }\n\n inFullscreen.value = true\n container = proxy.$el.parentNode\n container.replaceChild(fullscreenFillerNode, proxy.$el)\n document.body.appendChild(proxy.$el)\n\n counter++\n if (counter === 1) {\n document.body.classList.add('q-body--fullscreen-mixin')\n }\n\n historyEntry = {\n handler: exitFullscreen\n }\n History.add(historyEntry)\n }\n\n function exitFullscreen () {\n if (inFullscreen.value !== true) {\n return\n }\n\n if (historyEntry !== void 0) {\n History.remove(historyEntry)\n historyEntry = void 0\n }\n\n container.replaceChild(proxy.$el, fullscreenFillerNode)\n inFullscreen.value = false\n\n counter = Math.max(0, counter - 1)\n\n if (counter === 0) {\n document.body.classList.remove('q-body--fullscreen-mixin')\n\n if (proxy.$el.scrollIntoView !== void 0) {\n setTimeout(() => { proxy.$el.scrollIntoView() })\n }\n }\n }\n\n onBeforeMount(() => {\n fullscreenFillerNode = document.createElement('span')\n })\n\n onMounted(() => {\n props.fullscreen === true && setFullscreen()\n })\n\n onBeforeUnmount(exitFullscreen)\n\n // expose public methods\n Object.assign(proxy, {\n toggleFullscreen,\n setFullscreen,\n exitFullscreen\n })\n\n return {\n inFullscreen,\n toggleFullscreen\n }\n}\n","export function sortDate (a, b) {\n return (new Date(a)) - (new Date(b))\n}\n\nexport function sortBoolean (a, b) {\n return a && !b\n ? -1\n : (!a && b ? 1 : 0)\n}\n","import { computed } from 'vue'\n\nimport { sortDate } from '../../utils/private/sort.js'\nimport { isNumber, isDate, isObject } from '../../utils/is.js'\n\nexport const useTableSortProps = {\n sortMethod: Function,\n binaryStateSort: Boolean,\n columnSortOrder: {\n type: String,\n validator: v => v === 'ad' || v === 'da',\n default: 'ad'\n }\n}\n\nexport function useTableSort (props, computedPagination, colList, setPagination) {\n const columnToSort = computed(() => {\n const { sortBy } = computedPagination.value\n\n return sortBy\n ? colList.value.find(def => def.name === sortBy) || null\n : null\n })\n\n const computedSortMethod = computed(() => (\n props.sortMethod !== void 0\n ? props.sortMethod\n : (data, sortBy, descending) => {\n const col = colList.value.find(def => def.name === sortBy)\n if (col === void 0 || col.field === void 0) {\n return data\n }\n\n const\n dir = descending === true ? -1 : 1,\n val = typeof col.field === 'function'\n ? v => col.field(v)\n : v => v[ col.field ]\n\n return data.sort((a, b) => {\n let\n A = val(a),\n B = val(b)\n\n if (A === null || A === void 0) {\n return -1 * dir\n }\n if (B === null || B === void 0) {\n return 1 * dir\n }\n if (col.sort !== void 0) {\n return col.sort(A, B, a, b) * dir\n }\n if (isNumber(A) === true && isNumber(B) === true) {\n return (A - B) * dir\n }\n if (isDate(A) === true && isDate(B) === true) {\n return sortDate(A, B) * dir\n }\n if (typeof A === 'boolean' && typeof B === 'boolean') {\n return (A - B) * dir\n }\n\n [ A, B ] = [ A, B ].map(s => (s + '').toLocaleString().toLowerCase())\n\n return A < B\n ? -1 * dir\n : (A === B ? 0 : dir)\n })\n }\n ))\n\n function sort (col /* String(col name) or Object(col definition) */) {\n let sortOrder = props.columnSortOrder\n\n if (isObject(col) === true) {\n if (col.sortOrder) {\n sortOrder = col.sortOrder\n }\n\n col = col.name\n }\n else {\n const def = colList.value.find(def => def.name === col)\n if (def !== void 0 && def.sortOrder) {\n sortOrder = def.sortOrder\n }\n }\n\n let { sortBy, descending } = computedPagination.value\n\n if (sortBy !== col) {\n sortBy = col\n descending = sortOrder === 'da'\n }\n else if (props.binaryStateSort === true) {\n descending = !descending\n }\n else if (descending === true) {\n if (sortOrder === 'ad') {\n sortBy = null\n }\n else {\n descending = false\n }\n }\n else { // ascending\n if (sortOrder === 'ad') {\n descending = true\n }\n else {\n sortBy = null\n }\n }\n\n setPagination({ sortBy, descending, page: 1 })\n }\n\n return {\n columnToSort,\n computedSortMethod,\n sort\n }\n}\n","import { computed, watch, nextTick } from 'vue'\n\nexport const useTableFilterProps = {\n filter: [ String, Object ],\n filterMethod: Function\n}\n\nexport function useTableFilter (props, setPagination) {\n const computedFilterMethod = computed(() => (\n props.filterMethod !== void 0\n ? props.filterMethod\n : (rows, terms, cols, cellValue) => {\n const lowerTerms = terms ? terms.toLowerCase() : ''\n return rows.filter(\n row => cols.some(col => {\n const val = cellValue(col, row) + ''\n const haystack = (val === 'undefined' || val === 'null') ? '' : val.toLowerCase()\n return haystack.indexOf(lowerTerms) !== -1\n })\n )\n }\n ))\n\n watch(\n () => props.filter,\n () => {\n nextTick(() => {\n setPagination({ page: 1 }, true)\n })\n },\n { deep: true }\n )\n\n return { computedFilterMethod }\n}\n","import { ref, computed, watch, nextTick } from 'vue'\n\nfunction samePagination (oldPag, newPag) {\n for (const prop in newPag) {\n if (newPag[ prop ] !== oldPag[ prop ]) {\n return false\n }\n }\n return true\n}\n\nfunction fixPagination (p) {\n if (p.page < 1) {\n p.page = 1\n }\n if (p.rowsPerPage !== void 0 && p.rowsPerPage < 1) {\n p.rowsPerPage = 0\n }\n return p\n}\n\nexport const useTablePaginationProps = {\n pagination: Object,\n rowsPerPageOptions: {\n type: Array,\n default: () => [ 5, 7, 10, 15, 20, 25, 50, 0 ]\n },\n\n 'onUpdate:pagination': [ Function, Array ]\n}\n\nexport function useTablePaginationState (vm, getCellValue) {\n const { props, emit } = vm\n\n const innerPagination = ref(\n Object.assign({\n sortBy: null,\n descending: false,\n page: 1,\n rowsPerPage: props.rowsPerPageOptions.length > 0\n ? props.rowsPerPageOptions[ 0 ]\n : 5\n }, props.pagination)\n )\n\n const computedPagination = computed(() => {\n const pag = props[ 'onUpdate:pagination' ] !== void 0\n ? { ...innerPagination.value, ...props.pagination }\n : innerPagination.value\n\n return fixPagination(pag)\n })\n\n const isServerSide = computed(() => computedPagination.value.rowsNumber !== void 0)\n\n function sendServerRequest (pagination) {\n requestServerInteraction({\n pagination,\n filter: props.filter\n })\n }\n\n function requestServerInteraction (prop = {}) {\n nextTick(() => {\n emit('request', {\n pagination: prop.pagination || computedPagination.value,\n filter: prop.filter || props.filter,\n getCellValue\n })\n })\n }\n\n function setPagination (val, forceServerRequest) {\n const newPagination = fixPagination({\n ...computedPagination.value,\n ...val\n })\n\n if (samePagination(computedPagination.value, newPagination) === true) {\n if (isServerSide.value === true && forceServerRequest === true) {\n sendServerRequest(newPagination)\n }\n return\n }\n\n if (isServerSide.value === true) {\n sendServerRequest(newPagination)\n return\n }\n\n if (\n props.pagination !== void 0\n && props[ 'onUpdate:pagination' ] !== void 0\n ) {\n emit('update:pagination', newPagination)\n }\n else {\n innerPagination.value = newPagination\n }\n }\n\n return {\n innerPagination,\n computedPagination,\n isServerSide,\n\n requestServerInteraction,\n setPagination\n }\n}\n\nexport function useTablePagination (vm, innerPagination, computedPagination, isServerSide, setPagination, filteredSortedRowsNumber) {\n const { props, emit, proxy: { $q } } = vm\n\n const computedRowsNumber = computed(() => (\n isServerSide.value === true\n ? computedPagination.value.rowsNumber || 0\n : filteredSortedRowsNumber.value\n ))\n\n const firstRowIndex = computed(() => {\n const { page, rowsPerPage } = computedPagination.value\n return (page - 1) * rowsPerPage\n })\n\n const lastRowIndex = computed(() => {\n const { page, rowsPerPage } = computedPagination.value\n return page * rowsPerPage\n })\n\n const isFirstPage = computed(() => computedPagination.value.page === 1)\n\n const pagesNumber = computed(() => (\n computedPagination.value.rowsPerPage === 0\n ? 1\n : Math.max(\n 1,\n Math.ceil(computedRowsNumber.value / computedPagination.value.rowsPerPage)\n )\n ))\n\n const isLastPage = computed(() => (\n lastRowIndex.value === 0\n ? true\n : computedPagination.value.page >= pagesNumber.value\n ))\n\n const computedRowsPerPageOptions = computed(() => {\n const opts = props.rowsPerPageOptions.includes(innerPagination.value.rowsPerPage)\n ? props.rowsPerPageOptions\n : [ innerPagination.value.rowsPerPage ].concat(props.rowsPerPageOptions)\n\n return opts.map(count => ({\n label: count === 0 ? $q.lang.table.allRows : '' + count,\n value: count\n }))\n })\n\n watch(pagesNumber, (lastPage, oldLastPage) => {\n if (lastPage === oldLastPage) {\n return\n }\n\n const currentPage = computedPagination.value.page\n if (lastPage && !currentPage) {\n setPagination({ page: 1 })\n }\n else if (lastPage < currentPage) {\n setPagination({ page: lastPage })\n }\n })\n\n function firstPage () {\n setPagination({ page: 1 })\n }\n\n function prevPage () {\n const { page } = computedPagination.value\n if (page > 1) {\n setPagination({ page: page - 1 })\n }\n }\n\n function nextPage () {\n const { page, rowsPerPage } = computedPagination.value\n if (lastRowIndex.value > 0 && page * rowsPerPage < computedRowsNumber.value) {\n setPagination({ page: page + 1 })\n }\n }\n\n function lastPage () {\n setPagination({ page: pagesNumber.value })\n }\n\n if (props[ 'onUpdate:pagination' ] !== void 0) {\n emit('update:pagination', { ...computedPagination.value })\n }\n\n return {\n firstRowIndex,\n lastRowIndex,\n isFirstPage,\n isLastPage,\n pagesNumber,\n computedRowsPerPageOptions,\n computedRowsNumber,\n\n firstPage,\n prevPage,\n nextPage,\n lastPage\n }\n}\n","import { computed } from 'vue'\n\nexport const useTableRowSelectionProps = {\n selection: {\n type: String,\n default: 'none',\n validator: v => [ 'single', 'multiple', 'none' ].includes(v)\n },\n selected: {\n type: Array,\n default: () => []\n }\n}\n\nexport const useTableRowSelectionEmits = [ 'update:selected', 'selection' ]\n\nexport function useTableRowSelection (props, emit, computedRows, getRowKey) {\n const selectedKeys = computed(() => {\n const keys = {}\n props.selected.map(getRowKey.value).forEach(key => {\n keys[ key ] = true\n })\n return keys\n })\n\n const hasSelectionMode = computed(() => {\n return props.selection !== 'none'\n })\n\n const singleSelection = computed(() => {\n return props.selection === 'single'\n })\n\n const multipleSelection = computed(() => {\n return props.selection === 'multiple'\n })\n\n const allRowsSelected = computed(() =>\n computedRows.value.length > 0 && computedRows.value.every(\n row => selectedKeys.value[ getRowKey.value(row) ] === true\n )\n )\n\n const someRowsSelected = computed(() =>\n allRowsSelected.value !== true\n && computedRows.value.some(row => selectedKeys.value[ getRowKey.value(row) ] === true)\n )\n\n const rowsSelectedNumber = computed(() => props.selected.length)\n\n function isRowSelected (key) {\n return selectedKeys.value[ key ] === true\n }\n\n function clearSelection () {\n emit('update:selected', [])\n }\n\n function updateSelection (keys, rows, added, evt) {\n emit('selection', { rows, added, keys, evt })\n\n const payload = singleSelection.value === true\n ? (added === true ? rows : [])\n : (\n added === true\n ? props.selected.concat(rows)\n : props.selected.filter(\n row => keys.includes(getRowKey.value(row)) === false\n )\n )\n\n emit('update:selected', payload)\n }\n\n return {\n hasSelectionMode,\n singleSelection,\n multipleSelection,\n allRowsSelected,\n someRowsSelected,\n rowsSelectedNumber,\n\n isRowSelected,\n clearSelection,\n updateSelection\n }\n}\n","import { ref, watch } from 'vue'\n\nfunction getVal (val) {\n return Array.isArray(val)\n ? val.slice()\n : []\n}\n\nexport const useTableRowExpandProps = {\n expanded: Array // v-model:expanded\n}\n\nexport const useTableRowExpandEmits = [ 'update:expanded' ]\n\nexport function useTableRowExpand (props, emit) {\n const innerExpanded = ref(getVal(props.expanded))\n\n watch(() => props.expanded, val => {\n innerExpanded.value = getVal(val)\n })\n\n function isRowExpanded (key) {\n return innerExpanded.value.includes(key)\n }\n\n function setExpanded (val) {\n if (props.expanded !== void 0) {\n emit('update:expanded', val)\n }\n else {\n innerExpanded.value = val\n }\n }\n\n function updateExpanded (key, add) {\n const target = innerExpanded.value.slice()\n const index = target.indexOf(key)\n\n if (add === true) {\n if (index === -1) {\n target.push(key)\n setExpanded(target)\n }\n }\n else if (index !== -1) {\n target.splice(index, 1)\n setExpanded(target)\n }\n }\n\n return {\n isRowExpanded,\n setExpanded,\n updateExpanded\n }\n}\n","import { computed } from 'vue'\n\nimport { isNumber } from '../../utils/is.js'\n\nexport const useTableColumnSelectionProps = {\n visibleColumns: Array\n}\n\nexport function useTableColumnSelection (props, computedPagination, hasSelectionMode) {\n const colList = computed(() => {\n if (props.columns !== void 0) {\n return props.columns\n }\n\n // we infer columns from first row\n const row = props.rows[ 0 ]\n\n return row !== void 0\n ? Object.keys(row).map(name => ({\n name,\n label: name.toUpperCase(),\n field: name,\n align: isNumber(row[ name ]) ? 'right' : 'left',\n sortable: true\n }))\n : []\n })\n\n const computedCols = computed(() => {\n const { sortBy, descending } = computedPagination.value\n\n const cols = props.visibleColumns !== void 0\n ? colList.value.filter(col => col.required === true || props.visibleColumns.includes(col.name) === true)\n : colList.value\n\n return cols.map(col => {\n const align = col.align || 'right'\n const alignClass = `text-${ align }`\n\n return {\n ...col,\n align,\n __iconClass: `q-table__sort-icon q-table__sort-icon--${ align }`,\n __thClass: alignClass\n + (col.headerClasses !== void 0 ? ' ' + col.headerClasses : '')\n + (col.sortable === true ? ' sortable' : '')\n + (col.name === sortBy ? ` sorted ${ descending === true ? 'sort-desc' : '' }` : ''),\n\n __tdStyle: col.style !== void 0\n ? (\n typeof col.style !== 'function'\n ? () => col.style\n : col.style\n )\n : () => null,\n\n __tdClass: col.classes !== void 0\n ? (\n typeof col.classes !== 'function'\n ? () => alignClass + ' ' + col.classes\n : row => alignClass + ' ' + col.classes(row)\n )\n : () => alignClass\n }\n })\n })\n\n const computedColsMap = computed(() => {\n const names = {}\n computedCols.value.forEach(col => {\n names[ col.name ] = col\n })\n return names\n })\n\n const computedColspan = computed(() => {\n return props.tableColspan !== void 0\n ? props.tableColspan\n : computedCols.value.length + (hasSelectionMode.value === true ? 1 : 0)\n })\n\n return {\n colList,\n computedCols,\n computedColsMap,\n computedColspan\n }\n}\n","import { h, ref, computed, watch, getCurrentInstance } from 'vue'\n\nimport QTh from './QTh.js'\n\nimport QSeparator from '../separator/QSeparator.js'\nimport QIcon from '../icon/QIcon.js'\nimport QVirtualScroll from '../virtual-scroll/QVirtualScroll.js'\nimport QSelect from '../select/QSelect.js'\nimport QLinearProgress from '../linear-progress/QLinearProgress.js'\nimport QCheckbox from '../checkbox/QCheckbox.js'\nimport QBtn from '../btn/QBtn.js'\n\nimport getTableMiddle from './get-table-middle.js'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport { commonVirtPropsList } from '../virtual-scroll/use-virtual-scroll.js'\nimport useFullscreen, { useFullscreenProps, useFullscreenEmits } from '../../composables/private/use-fullscreen.js'\n\nimport { useTableSort, useTableSortProps } from './table-sort.js'\nimport { useTableFilter, useTableFilterProps } from './table-filter.js'\nimport { useTablePaginationState, useTablePagination, useTablePaginationProps } from './table-pagination.js'\nimport { useTableRowSelection, useTableRowSelectionProps, useTableRowSelectionEmits } from './table-row-selection.js'\nimport { useTableRowExpand, useTableRowExpandProps, useTableRowExpandEmits } from './table-row-expand.js'\nimport { useTableColumnSelection, useTableColumnSelectionProps } from './table-column-selection.js'\n\nimport { injectProp, injectMultipleProps } from '../../utils/private/inject-obj-prop.js'\nimport { createComponent } from '../../utils/private/create.js'\n\nconst bottomClass = 'q-table__bottom row items-center'\n\nconst commonVirtPropsObj = {}\ncommonVirtPropsList.forEach(p => { commonVirtPropsObj[ p ] = {} })\n\nexport default createComponent({\n name: 'QTable',\n\n props: {\n rows: {\n type: Array,\n default: () => []\n },\n rowKey: {\n type: [ String, Function ],\n default: 'id'\n },\n\n columns: Array,\n loading: Boolean,\n\n iconFirstPage: String,\n iconPrevPage: String,\n iconNextPage: String,\n iconLastPage: String,\n\n title: String,\n\n hideHeader: Boolean,\n\n grid: Boolean,\n gridHeader: Boolean,\n\n dense: Boolean,\n flat: Boolean,\n bordered: Boolean,\n square: Boolean,\n separator: {\n type: String,\n default: 'horizontal',\n validator: v => [ 'horizontal', 'vertical', 'cell', 'none' ].includes(v)\n },\n wrapCells: Boolean,\n\n virtualScroll: Boolean,\n virtualScrollTarget: {\n default: void 0\n },\n ...commonVirtPropsObj,\n\n noDataLabel: String,\n noResultsLabel: String,\n loadingLabel: String,\n selectedRowsLabel: Function,\n rowsPerPageLabel: String,\n paginationLabel: Function,\n\n color: {\n type: String,\n default: 'grey-8'\n },\n\n titleClass: [ String, Array, Object ],\n tableStyle: [ String, Array, Object ],\n tableClass: [ String, Array, Object ],\n tableHeaderStyle: [ String, Array, Object ],\n tableHeaderClass: [ String, Array, Object ],\n cardContainerClass: [ String, Array, Object ],\n cardContainerStyle: [ String, Array, Object ],\n cardStyle: [ String, Array, Object ],\n cardClass: [ String, Array, Object ],\n\n hideBottom: Boolean,\n hideSelectedBanner: Boolean,\n hideNoData: Boolean,\n hidePagination: Boolean,\n\n onRowClick: Function,\n onRowDblclick: Function,\n onRowContextmenu: Function,\n\n ...useDarkProps,\n ...useFullscreenProps,\n\n ...useTableColumnSelectionProps,\n ...useTableFilterProps,\n ...useTablePaginationProps,\n ...useTableRowExpandProps,\n ...useTableRowSelectionProps,\n ...useTableSortProps\n },\n\n emits: [\n 'request', 'virtualScroll',\n ...useFullscreenEmits,\n ...useTableRowExpandEmits,\n ...useTableRowSelectionEmits\n ],\n\n setup (props, { slots, emit }) {\n const vm = getCurrentInstance()\n const { proxy: { $q } } = vm\n\n const isDark = useDark(props, $q)\n const { inFullscreen, toggleFullscreen } = useFullscreen()\n\n const getRowKey = computed(() => (\n typeof props.rowKey === 'function'\n ? props.rowKey\n : row => row[ props.rowKey ]\n ))\n\n const rootRef = ref(null)\n const virtScrollRef = ref(null)\n const hasVirtScroll = computed(() => props.grid !== true && props.virtualScroll === true)\n\n const cardDefaultClass = computed(() =>\n ' q-table__card'\n + (isDark.value === true ? ' q-table__card--dark q-dark' : '')\n + (props.square === true ? ' q-table--square' : '')\n + (props.flat === true ? ' q-table--flat' : '')\n + (props.bordered === true ? ' q-table--bordered' : '')\n )\n\n const __containerClass = computed(() =>\n `q-table__container q-table--${ props.separator }-separator column no-wrap`\n + (props.grid === true ? ' q-table--grid' : cardDefaultClass.value)\n + (isDark.value === true ? ' q-table--dark' : '')\n + (props.dense === true ? ' q-table--dense' : '')\n + (props.wrapCells === false ? ' q-table--no-wrap' : '')\n + (inFullscreen.value === true ? ' fullscreen scroll' : '')\n )\n\n const containerClass = computed(() =>\n __containerClass.value + (props.loading === true ? ' q-table--loading' : '')\n )\n\n watch(\n () => props.tableStyle + props.tableClass + props.tableHeaderStyle + props.tableHeaderClass + __containerClass.value,\n () => { hasVirtScroll.value === true && virtScrollRef.value !== null && virtScrollRef.value.reset() }\n )\n\n const {\n innerPagination,\n computedPagination,\n isServerSide,\n\n requestServerInteraction,\n setPagination\n } = useTablePaginationState(vm, getCellValue)\n\n const { computedFilterMethod } = useTableFilter(props, setPagination)\n const { isRowExpanded, setExpanded, updateExpanded } = useTableRowExpand(props, emit)\n\n const filteredSortedRows = computed(() => {\n let rows = props.rows\n\n if (isServerSide.value === true || rows.length === 0) {\n return rows\n }\n\n const { sortBy, descending } = computedPagination.value\n\n if (props.filter) {\n rows = computedFilterMethod.value(rows, props.filter, computedCols.value, getCellValue)\n }\n\n if (columnToSort.value !== null) {\n rows = computedSortMethod.value(\n props.rows === rows ? rows.slice() : rows,\n sortBy,\n descending\n )\n }\n\n return rows\n })\n\n const filteredSortedRowsNumber = computed(() => filteredSortedRows.value.length)\n\n const computedRows = computed(() => {\n let rows = filteredSortedRows.value\n\n if (isServerSide.value === true) {\n return rows\n }\n\n const { rowsPerPage } = computedPagination.value\n\n if (rowsPerPage !== 0) {\n if (firstRowIndex.value === 0 && props.rows !== rows) {\n if (rows.length > lastRowIndex.value) {\n rows = rows.slice(0, lastRowIndex.value)\n }\n }\n else {\n rows = rows.slice(firstRowIndex.value, lastRowIndex.value)\n }\n }\n\n return rows\n })\n\n const {\n hasSelectionMode,\n singleSelection,\n multipleSelection,\n allRowsSelected,\n someRowsSelected,\n rowsSelectedNumber,\n\n isRowSelected,\n clearSelection,\n updateSelection\n } = useTableRowSelection(props, emit, computedRows, getRowKey)\n\n const { colList, computedCols, computedColsMap, computedColspan } = useTableColumnSelection(props, computedPagination, hasSelectionMode)\n\n const { columnToSort, computedSortMethod, sort } = useTableSort(props, computedPagination, colList, setPagination)\n\n const {\n firstRowIndex,\n lastRowIndex,\n isFirstPage,\n isLastPage,\n pagesNumber,\n computedRowsPerPageOptions,\n computedRowsNumber,\n\n firstPage,\n prevPage,\n nextPage,\n lastPage\n } = useTablePagination(vm, innerPagination, computedPagination, isServerSide, setPagination, filteredSortedRowsNumber)\n\n const nothingToDisplay = computed(() => computedRows.value.length === 0)\n\n const virtProps = computed(() => {\n const acc = {}\n\n commonVirtPropsList\n .forEach(p => { acc[ p ] = props[ p ] })\n\n if (acc.virtualScrollItemSize === void 0) {\n acc.virtualScrollItemSize = props.dense === true ? 28 : 48\n }\n\n return acc\n })\n\n function resetVirtualScroll () {\n hasVirtScroll.value === true && virtScrollRef.value.reset()\n }\n\n function getBody () {\n if (props.grid === true) {\n return getGridBody()\n }\n\n const header = props.hideHeader !== true ? getTHead : null\n\n if (hasVirtScroll.value === true) {\n const topRow = slots[ 'top-row' ]\n const bottomRow = slots[ 'bottom-row' ]\n\n const virtSlots = {\n default: props => getTBodyTR(props.item, slots.body, props.index)\n }\n\n if (topRow !== void 0) {\n const topContent = h('tbody', topRow({ cols: computedCols.value }))\n\n virtSlots.before = header === null\n ? () => topContent\n : () => [ header() ].concat(topContent)\n }\n else if (header !== null) {\n virtSlots.before = header\n }\n\n if (bottomRow !== void 0) {\n virtSlots.after = () => h('tbody', bottomRow({ cols: computedCols.value }))\n }\n\n return h(QVirtualScroll, {\n ref: virtScrollRef,\n class: props.tableClass,\n style: props.tableStyle,\n ...virtProps.value,\n scrollTarget: props.virtualScrollTarget,\n items: computedRows.value,\n type: '__qtable',\n tableColspan: computedColspan.value,\n onVirtualScroll: onVScroll\n }, virtSlots)\n }\n\n const child = [\n getTBody()\n ]\n\n if (header !== null) {\n child.unshift(header())\n }\n\n return getTableMiddle({\n class: [ 'q-table__middle scroll', props.tableClass ],\n style: props.tableStyle\n }, child)\n }\n\n function scrollTo (toIndex, edge) {\n if (virtScrollRef.value !== null) {\n virtScrollRef.value.scrollTo(toIndex, edge)\n return\n }\n\n toIndex = parseInt(toIndex, 10)\n const rowEl = rootRef.value.querySelector(`tbody tr:nth-of-type(${ toIndex + 1 })`)\n\n if (rowEl !== null) {\n const scrollTarget = rootRef.value.querySelector('.q-table__middle.scroll')\n const offsetTop = rowEl.offsetTop - props.virtualScrollStickySizeStart\n const direction = offsetTop < scrollTarget.scrollTop ? 'decrease' : 'increase'\n\n scrollTarget.scrollTop = offsetTop\n\n emit('virtualScroll', {\n index: toIndex,\n from: 0,\n to: innerPagination.value.rowsPerPage - 1,\n direction\n })\n }\n }\n\n function onVScroll (info) {\n emit('virtualScroll', info)\n }\n\n function getProgress () {\n return [\n h(QLinearProgress, {\n class: 'q-table__linear-progress',\n color: props.color,\n dark: isDark.value,\n indeterminate: true,\n trackColor: 'transparent'\n })\n ]\n }\n\n function getTBodyTR (row, bodySlot, pageIndex) {\n const\n key = getRowKey.value(row),\n selected = isRowSelected(key)\n\n if (bodySlot !== void 0) {\n return bodySlot(\n getBodyScope({\n key,\n row,\n pageIndex,\n __trClass: selected ? 'selected' : ''\n })\n )\n }\n\n const\n bodyCell = slots[ 'body-cell' ],\n child = computedCols.value.map(col => {\n const\n bodyCellCol = slots[ `body-cell-${ col.name }` ],\n slot = bodyCellCol !== void 0 ? bodyCellCol : bodyCell\n\n return slot !== void 0\n ? slot(getBodyCellScope({ key, row, pageIndex, col }))\n : h('td', {\n class: col.__tdClass(row),\n style: col.__tdStyle(row)\n }, getCellValue(col, row))\n })\n\n if (hasSelectionMode.value === true) {\n const slot = slots[ 'body-selection' ]\n const content = slot !== void 0\n ? slot(getBodySelectionScope({ key, row, pageIndex }))\n : [\n h(QCheckbox, {\n modelValue: selected,\n color: props.color,\n dark: isDark.value,\n dense: props.dense,\n 'onUpdate:modelValue': (adding, evt) => {\n updateSelection([ key ], [ row ], adding, evt)\n }\n })\n ]\n\n child.unshift(\n h('td', { class: 'q-table--col-auto-width' }, content)\n )\n }\n\n const data = { key, class: { selected } }\n\n if (props.onRowClick !== void 0) {\n data.class[ 'cursor-pointer' ] = true\n data.onClick = evt => {\n emit('RowClick', evt, row, pageIndex)\n }\n }\n\n if (props.onRowDblclick !== void 0) {\n data.class[ 'cursor-pointer' ] = true\n data.onDblclick = evt => {\n emit('RowDblclick', evt, row, pageIndex)\n }\n }\n\n if (props.onRowContextmenu !== void 0) {\n data.class[ 'cursor-pointer' ] = true\n data.onContextmenu = evt => {\n emit('RowContextmenu', evt, row, pageIndex)\n }\n }\n\n return h('tr', data, child)\n }\n\n function getTBody () {\n const\n body = slots.body,\n topRow = slots[ 'top-row' ],\n bottomRow = slots[ 'bottom-row' ]\n\n let child = computedRows.value.map(\n (row, pageIndex) => getTBodyTR(row, body, pageIndex)\n )\n\n if (topRow !== void 0) {\n child = topRow({ cols: computedCols.value }).concat(child)\n }\n if (bottomRow !== void 0) {\n child = child.concat(bottomRow({ cols: computedCols.value }))\n }\n\n return h('tbody', child)\n }\n\n function getBodyScope (data) {\n injectBodyCommonScope(data)\n\n data.cols = data.cols.map(\n col => injectProp({ ...col }, 'value', () => getCellValue(col, data.row))\n )\n\n return data\n }\n\n function getBodyCellScope (data) {\n injectBodyCommonScope(data)\n injectProp(data, 'value', () => getCellValue(data.col, data.row))\n return data\n }\n\n function getBodySelectionScope (data) {\n injectBodyCommonScope(data)\n return data\n }\n\n function injectBodyCommonScope (data) {\n Object.assign(data, {\n cols: computedCols.value,\n colsMap: computedColsMap.value,\n sort,\n rowIndex: firstRowIndex.value + data.pageIndex,\n color: props.color,\n dark: isDark.value,\n dense: props.dense\n })\n\n hasSelectionMode.value === true && injectProp(\n data,\n 'selected',\n () => isRowSelected(data.key),\n (adding, evt) => {\n updateSelection([ data.key ], [ data.row ], adding, evt)\n }\n )\n\n injectProp(\n data,\n 'expand',\n () => isRowExpanded(data.key),\n adding => { updateExpanded(data.key, adding) }\n )\n }\n\n function getCellValue (col, row) {\n const val = typeof col.field === 'function' ? col.field(row) : row[ col.field ]\n return col.format !== void 0 ? col.format(val, row) : val\n }\n\n const marginalsScope = computed(() => ({\n pagination: computedPagination.value,\n pagesNumber: pagesNumber.value,\n isFirstPage: isFirstPage.value,\n isLastPage: isLastPage.value,\n firstPage,\n prevPage,\n nextPage,\n lastPage,\n\n inFullscreen: inFullscreen.value,\n toggleFullscreen\n }))\n\n function getTopDiv () {\n const\n top = slots.top,\n topLeft = slots[ 'top-left' ],\n topRight = slots[ 'top-right' ],\n topSelection = slots[ 'top-selection' ],\n hasSelection = hasSelectionMode.value === true\n && topSelection !== void 0\n && rowsSelectedNumber.value > 0,\n topClass = 'q-table__top relative-position row items-center'\n\n if (top !== void 0) {\n return h('div', { class: topClass }, [ top(marginalsScope.value) ])\n }\n\n let child\n\n if (hasSelection === true) {\n child = topSelection(marginalsScope.value).slice()\n }\n else {\n child = []\n\n if (topLeft !== void 0) {\n child.push(\n h('div', { class: 'q-table-control' }, [\n topLeft(marginalsScope.value)\n ])\n )\n }\n else if (props.title) {\n child.push(\n h('div', { class: 'q-table__control' }, [\n h('div', {\n class: [ 'q-table__title', props.titleClass ]\n }, props.title)\n ])\n )\n }\n }\n\n if (topRight !== void 0) {\n child.push(\n h('div', { class: 'q-table__separator col' })\n )\n child.push(\n h('div', { class: 'q-table__control' }, [\n topRight(marginalsScope.value)\n ])\n )\n }\n\n if (child.length === 0) {\n return\n }\n\n return h('div', { class: topClass }, child)\n }\n\n const headerSelectedValue = computed(() => (\n someRowsSelected.value === true\n ? null\n : allRowsSelected.value\n ))\n\n function getTHead () {\n const child = getTHeadTR()\n\n if (props.loading === true && slots.loading === void 0) {\n child.push(\n h('tr', { class: 'q-table__progress' }, [\n h('th', {\n class: 'relative-position',\n colspan: computedColspan.value\n }, getProgress())\n ])\n )\n }\n\n return h('thead', child)\n }\n\n function getTHeadTR () {\n const\n header = slots.header,\n headerCell = slots[ 'header-cell' ]\n\n if (header !== void 0) {\n return header(\n getHeaderScope({ header: true })\n ).slice()\n }\n\n const child = computedCols.value.map(col => {\n const\n headerCellCol = slots[ `header-cell-${ col.name }` ],\n slot = headerCellCol !== void 0 ? headerCellCol : headerCell,\n props = getHeaderScope({ col })\n\n return slot !== void 0\n ? slot(props)\n : h(QTh, {\n key: col.name,\n props\n }, () => col.label)\n })\n\n if (singleSelection.value === true && props.grid !== true) {\n child.unshift(\n h('th', { class: 'q-table--col-auto-width' }, ' ')\n )\n }\n else if (multipleSelection.value === true) {\n const slot = slots[ 'header-selection' ]\n const content = slot !== void 0\n ? slot(getHeaderScope({}))\n : [\n h(QCheckbox, {\n color: props.color,\n modelValue: headerSelectedValue.value,\n dark: isDark.value,\n dense: props.dense,\n 'onUpdate:modelValue': onMultipleSelectionSet\n })\n ]\n\n child.unshift(\n h('th', { class: 'q-table--col-auto-width' }, content)\n )\n }\n\n return [\n h('tr', {\n class: props.tableHeaderClass,\n style: props.tableHeaderStyle\n }, child)\n ]\n }\n\n function getHeaderScope (data) {\n Object.assign(data, {\n cols: computedCols.value,\n sort,\n colsMap: computedColsMap.value,\n color: props.color,\n dark: isDark.value,\n dense: props.dense\n })\n\n if (multipleSelection.value === true) {\n injectProp(\n data,\n 'selected',\n () => headerSelectedValue.value,\n onMultipleSelectionSet\n )\n }\n\n return data\n }\n\n function onMultipleSelectionSet (val) {\n if (someRowsSelected.value === true) {\n val = false\n }\n\n updateSelection(\n computedRows.value.map(getRowKey.value),\n computedRows.value,\n val\n )\n }\n\n const navIcon = computed(() => {\n const ico = [\n props.iconFirstPage || $q.iconSet.table.firstPage,\n props.iconPrevPage || $q.iconSet.table.prevPage,\n props.iconNextPage || $q.iconSet.table.nextPage,\n props.iconLastPage || $q.iconSet.table.lastPage\n ]\n return $q.lang.rtl === true ? ico.reverse() : ico\n })\n\n function getBottomDiv () {\n if (props.hideBottom === true) {\n return\n }\n\n if (nothingToDisplay.value === true) {\n if (props.hideNoData === true) {\n return\n }\n\n const message = props.loading === true\n ? props.loadingLabel || $q.lang.table.loading\n : (props.filter ? props.noResultsLabel || $q.lang.table.noResults : props.noDataLabel || $q.lang.table.noData)\n\n const noData = slots[ 'no-data' ]\n const children = noData !== void 0\n ? [ noData({ message, icon: $q.iconSet.table.warning, filter: props.filter }) ]\n : [\n h(QIcon, {\n class: 'q-table__bottom-nodata-icon',\n name: $q.iconSet.table.warning\n }),\n message\n ]\n\n return h('div', { class: bottomClass + ' q-table__bottom--nodata' }, children)\n }\n\n const bottom = slots.bottom\n\n if (bottom !== void 0) {\n return h('div', { class: bottomClass }, [ bottom(marginalsScope.value) ])\n }\n\n const child = props.hideSelectedBanner !== true && hasSelectionMode.value === true && rowsSelectedNumber.value > 0\n ? [\n h('div', { class: 'q-table__control' }, [\n h('div', [\n (props.selectedRowsLabel || $q.lang.table.selectedRecords)(rowsSelectedNumber.value)\n ])\n ])\n ]\n : []\n\n if (props.hidePagination !== true) {\n return h('div', {\n class: bottomClass + ' justify-end'\n }, getPaginationDiv(child))\n }\n\n if (child.length > 0) {\n return h('div', { class: bottomClass }, child)\n }\n }\n\n function onPagSelection (pag) {\n setPagination({\n page: 1,\n rowsPerPage: pag.value\n })\n }\n\n function getPaginationDiv (child) {\n let control\n const\n { rowsPerPage } = computedPagination.value,\n paginationLabel = props.paginationLabel || $q.lang.table.pagination,\n paginationSlot = slots.pagination,\n hasOpts = props.rowsPerPageOptions.length > 1\n\n child.push(\n h('div', { class: 'q-table__separator col' })\n )\n\n if (hasOpts === true) {\n child.push(\n h('div', { class: 'q-table__control' }, [\n h('span', { class: 'q-table__bottom-item' }, [\n props.rowsPerPageLabel || $q.lang.table.recordsPerPage\n ]),\n h(QSelect, {\n class: 'q-table__select inline q-table__bottom-item',\n color: props.color,\n modelValue: rowsPerPage,\n options: computedRowsPerPageOptions.value,\n displayValue: rowsPerPage === 0\n ? $q.lang.table.allRows\n : rowsPerPage,\n dark: isDark.value,\n borderless: true,\n dense: true,\n optionsDense: true,\n optionsCover: true,\n 'onUpdate:modelValue': onPagSelection\n })\n ])\n )\n }\n\n if (paginationSlot !== void 0) {\n control = paginationSlot(marginalsScope.value)\n }\n else {\n control = [\n h('span', rowsPerPage !== 0 ? { class: 'q-table__bottom-item' } : {}, [\n rowsPerPage\n ? paginationLabel(firstRowIndex.value + 1, Math.min(lastRowIndex.value, computedRowsNumber.value), computedRowsNumber.value)\n : paginationLabel(1, filteredSortedRowsNumber.value, computedRowsNumber.value)\n ])\n ]\n\n if (rowsPerPage !== 0 && pagesNumber.value > 1) {\n const btnProps = {\n color: props.color,\n round: true,\n dense: true,\n flat: true\n }\n\n if (props.dense === true) {\n btnProps.size = 'sm'\n }\n\n pagesNumber.value > 2 && control.push(\n h(QBtn, {\n key: 'pgFirst',\n ...btnProps,\n icon: navIcon.value[ 0 ],\n disable: isFirstPage.value,\n onClick: firstPage\n })\n )\n\n control.push(\n h(QBtn, {\n key: 'pgPrev',\n ...btnProps,\n icon: navIcon.value[ 1 ],\n disable: isFirstPage.value,\n onClick: prevPage\n }),\n\n h(QBtn, {\n key: 'pgNext',\n ...btnProps,\n icon: navIcon.value[ 2 ],\n disable: isLastPage.value,\n onClick: nextPage\n })\n )\n\n pagesNumber.value > 2 && control.push(\n h(QBtn, {\n key: 'pgLast',\n ...btnProps,\n icon: navIcon.value[ 3 ],\n disable: isLastPage.value,\n onClick: lastPage\n })\n )\n }\n }\n\n child.push(\n h('div', { class: 'q-table__control' }, control)\n )\n\n return child\n }\n\n function getGridHeader () {\n const child = props.gridHeader === true\n ? [\n h('table', { class: 'q-table' }, [\n getTHead(h)\n ])\n ]\n : (\n props.loading === true && slots.loading === void 0\n ? getProgress(h)\n : void 0\n )\n\n return h('div', { class: 'q-table__middle' }, child)\n }\n\n function getGridBody () {\n const item = slots.item !== void 0\n ? slots.item\n : scope => {\n const child = scope.cols.map(\n col => h('div', { class: 'q-table__grid-item-row' }, [\n h('div', { class: 'q-table__grid-item-title' }, [ col.label ]),\n h('div', { class: 'q-table__grid-item-value' }, [ col.value ])\n ])\n )\n\n if (hasSelectionMode.value === true) {\n const slot = slots[ 'body-selection' ]\n const content = slot !== void 0\n ? slot(scope)\n : [\n h(QCheckbox, {\n modelValue: scope.selected,\n color: props.color,\n dark: isDark.value,\n dense: props.dense,\n 'onUpdate:modelValue': (adding, evt) => {\n updateSelection([ scope.key ], [ scope.row ], adding, evt)\n }\n })\n ]\n\n child.unshift(\n h('div', { class: 'q-table__grid-item-row' }, content),\n h(QSeparator, { dark: isDark.value })\n )\n }\n\n const data = {\n class: [\n 'q-table__grid-item-card' + cardDefaultClass.value,\n props.cardClass\n ],\n style: props.cardStyle\n }\n\n if (\n props.onRowClick !== void 0\n || props.onRowDblclick !== void 0\n ) {\n data.class[ 0 ] += ' cursor-pointer'\n\n if (props.onRowClick !== void 0) {\n data.onClick = evt => {\n emit('RowClick', evt, scope.row, scope.pageIndex)\n }\n }\n\n if (props.onRowDblclick !== void 0) {\n data.onDblclick = evt => {\n emit('RowDblclick', evt, scope.row, scope.pageIndex)\n }\n }\n }\n\n return h('div', {\n class: 'q-table__grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3'\n + (scope.selected === true ? ' q-table__grid-item--selected' : '')\n }, [\n h('div', data, child)\n ])\n }\n\n return h('div', {\n class: [\n 'q-table__grid-content row',\n props.cardContainerClass\n ],\n style: props.cardContainerStyle\n }, computedRows.value.map((row, pageIndex) => {\n return item(getBodyScope({\n key: getRowKey.value(row),\n row,\n pageIndex\n }))\n }))\n }\n\n // expose public methods and needed computed props\n Object.assign(vm.proxy, {\n requestServerInteraction,\n setPagination,\n firstPage,\n prevPage,\n nextPage,\n lastPage,\n isRowSelected,\n clearSelection,\n isRowExpanded,\n setExpanded,\n sort,\n resetVirtualScroll,\n scrollTo,\n getCellValue\n })\n\n injectMultipleProps(vm.proxy, {\n filteredSortedRows: () => filteredSortedRows.value,\n computedRows: () => computedRows.value,\n computedRowsNumber: () => computedRowsNumber.value\n })\n\n return () => {\n const child = [ getTopDiv() ]\n const data = { ref: rootRef, class: containerClass.value }\n\n if (props.grid === true) {\n child.push(getGridHeader())\n }\n else {\n Object.assign(data, {\n class: [ data.class, props.cardClass ],\n style: props.cardStyle\n })\n }\n\n child.push(\n getBody(),\n getBottomDiv()\n )\n\n if (props.loading === true && slots.loading !== void 0) {\n child.push(\n slots.loading()\n )\n }\n\n return h('div', data, child)\n }\n }\n})\n","import { h, computed, getCurrentInstance } from 'vue'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default createComponent({\n name: 'QTd',\n\n props: {\n props: Object,\n autoWidth: Boolean,\n noHover: Boolean\n },\n\n setup (props, { slots }) {\n const vm = getCurrentInstance()\n const classes = computed(() =>\n 'q-td' + (props.autoWidth === true ? ' q-table--col-auto-width' : '')\n + (props.noHover === true ? ' q-td--no-hover' : '')\n + ' '\n )\n\n return () => {\n if (props.props === void 0) {\n return h('td', { class: classes.value }, hSlot(slots.default))\n }\n\n const name = vm.vnode.key\n const col = (\n (props.props.colsMap !== void 0 ? props.props.colsMap[ name ] : null)\n || props.props.col\n )\n\n if (col === void 0) { return }\n\n const { row } = props.props\n\n return h('td', {\n class: classes.value + col.__tdClass(row),\n style: col.__tdStyle(row)\n }, hSlot(slots.default))\n }\n }\n})\n","import { h, computed } from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport useCheckbox, { useCheckboxProps, useCheckboxEmits } from '../checkbox/use-checkbox.js'\n\nimport { createComponent } from '../../utils/private/create.js'\n\nexport default createComponent({\n name: 'QToggle',\n\n props: {\n ...useCheckboxProps,\n\n icon: String,\n iconColor: String\n },\n\n emits: useCheckboxEmits,\n\n setup (props) {\n function getInner (isTrue, isIndeterminate) {\n const icon = computed(() =>\n (isTrue.value === true\n ? props.checkedIcon\n : (isIndeterminate.value === true ? props.indeterminateIcon : props.uncheckedIcon)\n ) || props.icon\n )\n\n const color = computed(() => (isTrue.value === true ? props.iconColor : null))\n\n return () => [\n h('div', { class: 'q-toggle__track' }),\n\n h('div', {\n class: 'q-toggle__thumb absolute flex flex-center no-wrap'\n }, icon.value !== void 0\n ? [\n h(QIcon, {\n name: icon.value,\n color: color.value\n })\n ]\n : void 0\n )\n ]\n }\n\n return useCheckbox('toggle', getInner)\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, role: 'toolbar' }, 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","let rtlHasScrollBug = false\n\n// mobile Chrome takes the crown for this\nif (!__QUASAR_SSR__) {\n const scroller = document.createElement('div')\n scroller.setAttribute('dir', 'rtl')\n Object.assign(scroller.style, {\n width: '1px',\n height: '1px',\n overflow: 'auto'\n })\n\n const spacer = document.createElement('div')\n Object.assign(spacer.style, {\n width: '1000px',\n height: '1px'\n })\n\n document.body.appendChild(scroller)\n scroller.appendChild(spacer)\n scroller.scrollLeft = -1000\n\n rtlHasScrollBug = scroller.scrollLeft >= 0\n\n scroller.remove()\n}\n\nexport {\n rtlHasScrollBug\n}\n","import { h, ref, computed, watch, onActivated, onDeactivated, onBeforeMount, onBeforeUnmount, nextTick, getCurrentInstance } from 'vue'\n\nimport debounce from '../../utils/debounce.js'\nimport { noop } from '../../utils/event.js'\nimport { rtlHasScrollBug } from '../../utils/private/rtl.js'\n\nconst aggBucketSize = 1000\n\nconst scrollToEdges = [\n 'start',\n 'center',\n 'end',\n 'start-force',\n 'center-force',\n 'end-force'\n]\n\nconst filterProto = Array.prototype.filter\n\nconst setOverflowAnchor = __QUASAR_SSR__ || window.getComputedStyle(document.body).overflowAnchor === void 0\n ? noop\n : function (contentEl, index) {\n if (contentEl === null) {\n return\n }\n\n cancelAnimationFrame(contentEl._qOverflowAnimationFrame)\n contentEl._qOverflowAnimationFrame = requestAnimationFrame(() => {\n if (contentEl === null) {\n return\n }\n\n const children = contentEl.children || []\n\n filterProto\n .call(children, el => el.dataset && el.dataset.qVsAnchor !== void 0)\n .forEach(el => {\n delete el.dataset.qVsAnchor\n })\n\n const el = children[ index ]\n\n if (el && el.dataset) {\n el.dataset.qVsAnchor = ''\n }\n })\n }\n\nfunction sumFn (acc, h) {\n return acc + h\n}\n\nfunction getScrollDetails (\n parent,\n child,\n beforeRef,\n afterRef,\n horizontal,\n rtl,\n stickyStart,\n stickyEnd\n) {\n const\n parentCalc = parent === window ? document.scrollingElement || document.documentElement : parent,\n propElSize = horizontal === true ? 'offsetWidth' : 'offsetHeight',\n details = {\n scrollStart: 0,\n scrollViewSize: -stickyStart - stickyEnd,\n scrollMaxSize: 0,\n offsetStart: -stickyStart,\n offsetEnd: -stickyEnd\n }\n\n if (horizontal === true) {\n if (parent === window) {\n details.scrollStart = window.pageXOffset || window.scrollX || document.body.scrollLeft || 0\n details.scrollViewSize += document.documentElement.clientWidth\n }\n else {\n details.scrollStart = parentCalc.scrollLeft\n details.scrollViewSize += parentCalc.clientWidth\n }\n details.scrollMaxSize = parentCalc.scrollWidth\n\n if (rtl === true) {\n details.scrollStart = (rtlHasScrollBug === true ? details.scrollMaxSize - details.scrollViewSize : 0) - details.scrollStart\n }\n }\n else {\n if (parent === window) {\n details.scrollStart = window.pageYOffset || window.scrollY || document.body.scrollTop || 0\n details.scrollViewSize += document.documentElement.clientHeight\n }\n else {\n details.scrollStart = parentCalc.scrollTop\n details.scrollViewSize += parentCalc.clientHeight\n }\n details.scrollMaxSize = parentCalc.scrollHeight\n }\n\n if (beforeRef !== null) {\n for (let el = beforeRef.previousElementSibling; el !== null; el = el.previousElementSibling) {\n if (el.classList.contains('q-virtual-scroll--skip') === false) {\n details.offsetStart += el[ propElSize ]\n }\n }\n }\n\n if (afterRef !== null) {\n for (let el = afterRef.nextElementSibling; el !== null; el = el.nextElementSibling) {\n if (el.classList.contains('q-virtual-scroll--skip') === false) {\n details.offsetEnd += el[ propElSize ]\n }\n }\n }\n\n if (child !== parent) {\n const\n parentRect = parentCalc.getBoundingClientRect(),\n childRect = child.getBoundingClientRect()\n\n if (horizontal === true) {\n details.offsetStart += childRect.left - parentRect.left\n details.offsetEnd -= childRect.width\n }\n else {\n details.offsetStart += childRect.top - parentRect.top\n details.offsetEnd -= childRect.height\n }\n\n if (parent !== window) {\n details.offsetStart += details.scrollStart\n }\n details.offsetEnd += details.scrollMaxSize - details.offsetStart\n }\n\n return details\n}\n\nfunction setScroll (parent, scroll, horizontal, rtl) {\n if (scroll === 'end') {\n scroll = (parent === window ? document.body : parent)[\n horizontal === true ? 'scrollWidth' : 'scrollHeight'\n ]\n }\n\n if (parent === window) {\n if (horizontal === true) {\n if (rtl === true) {\n scroll = (rtlHasScrollBug === true ? document.body.scrollWidth - document.documentElement.clientWidth : 0) - scroll\n }\n window.scrollTo(scroll, window.pageYOffset || window.scrollY || document.body.scrollTop || 0)\n }\n else {\n window.scrollTo(window.pageXOffset || window.scrollX || document.body.scrollLeft || 0, scroll)\n }\n }\n else if (horizontal === true) {\n if (rtl === true) {\n scroll = (rtlHasScrollBug === true ? parent.scrollWidth - parent.offsetWidth : 0) - scroll\n }\n parent.scrollLeft = scroll\n }\n else {\n parent.scrollTop = scroll\n }\n}\n\nfunction sumSize (sizeAgg, size, from, to) {\n if (from >= to) { return 0 }\n\n const\n lastTo = size.length,\n fromAgg = Math.floor(from / aggBucketSize),\n toAgg = Math.floor((to - 1) / aggBucketSize) + 1\n\n let total = sizeAgg.slice(fromAgg, toAgg).reduce(sumFn, 0)\n\n if (from % aggBucketSize !== 0) {\n total -= size.slice(fromAgg * aggBucketSize, from).reduce(sumFn, 0)\n }\n if (to % aggBucketSize !== 0 && to !== lastTo) {\n total -= size.slice(to, toAgg * aggBucketSize).reduce(sumFn, 0)\n }\n\n return total\n}\n\nconst commonVirtScrollProps = {\n virtualScrollSliceSize: {\n type: [ Number, String ],\n default: null\n },\n\n virtualScrollSliceRatioBefore: {\n type: [ Number, String ],\n default: 1\n },\n\n virtualScrollSliceRatioAfter: {\n type: [ Number, String ],\n default: 1\n },\n\n virtualScrollItemSize: {\n type: [ Number, String ],\n default: 24\n },\n\n virtualScrollStickySizeStart: {\n type: [ Number, String ],\n default: 0\n },\n\n virtualScrollStickySizeEnd: {\n type: [ Number, String ],\n default: 0\n },\n\n tableColspan: [ Number, String ]\n}\n\nexport const commonVirtPropsList = Object.keys(commonVirtScrollProps)\n\nexport const useVirtualScrollProps = {\n virtualScrollHorizontal: Boolean,\n onVirtualScroll: Function,\n ...commonVirtScrollProps\n}\n\nexport function useVirtualScroll ({\n virtualScrollLength, getVirtualScrollTarget, getVirtualScrollEl,\n virtualScrollItemSizeComputed // optional\n}) {\n const vm = getCurrentInstance()\n\n const { props, emit, proxy } = vm\n const { $q } = proxy\n\n let prevScrollStart, prevToIndex, localScrollViewSize, virtualScrollSizesAgg = [], virtualScrollSizes\n\n const virtualScrollPaddingBefore = ref(0)\n const virtualScrollPaddingAfter = ref(0)\n const virtualScrollSliceSizeComputed = ref({})\n\n const beforeRef = ref(null)\n const afterRef = ref(null)\n const contentRef = ref(null)\n\n const virtualScrollSliceRange = ref({ from: 0, to: 0 })\n\n const colspanAttr = computed(() => (props.tableColspan !== void 0 ? props.tableColspan : 100))\n\n if (virtualScrollItemSizeComputed === void 0) {\n virtualScrollItemSizeComputed = computed(() => props.virtualScrollItemSize)\n }\n\n const needsReset = computed(() => virtualScrollItemSizeComputed.value + ';' + props.virtualScrollHorizontal)\n\n const needsSliceRecalc = computed(() =>\n needsReset.value + ';' + props.virtualScrollSliceRatioBefore + ';' + props.virtualScrollSliceRatioAfter\n )\n\n watch(needsSliceRecalc, () => { setVirtualScrollSize() })\n watch(needsReset, reset)\n\n function reset () {\n localResetVirtualScroll(prevToIndex, true)\n }\n\n function refresh (toIndex) {\n localResetVirtualScroll(toIndex === void 0 ? prevToIndex : toIndex)\n }\n\n function scrollTo (toIndex, edge) {\n const scrollEl = getVirtualScrollTarget()\n\n if (scrollEl === void 0 || scrollEl === null || scrollEl.nodeType === 8) {\n return\n }\n\n const scrollDetails = getScrollDetails(\n scrollEl,\n getVirtualScrollEl(),\n beforeRef.value,\n afterRef.value,\n props.virtualScrollHorizontal,\n $q.lang.rtl,\n props.virtualScrollStickySizeStart,\n props.virtualScrollStickySizeEnd\n )\n\n localScrollViewSize !== scrollDetails.scrollViewSize && setVirtualScrollSize(scrollDetails.scrollViewSize)\n\n setVirtualScrollSliceRange(\n scrollEl,\n scrollDetails,\n Math.min(virtualScrollLength.value - 1, Math.max(0, parseInt(toIndex, 10) || 0)),\n 0,\n scrollToEdges.indexOf(edge) > -1 ? edge : (prevToIndex > -1 && toIndex > prevToIndex ? 'end' : 'start')\n )\n }\n\n function localOnVirtualScrollEvt () {\n const scrollEl = getVirtualScrollTarget()\n\n if (scrollEl === void 0 || scrollEl === null || scrollEl.nodeType === 8) {\n return\n }\n\n const\n scrollDetails = getScrollDetails(\n scrollEl,\n getVirtualScrollEl(),\n beforeRef.value,\n afterRef.value,\n props.virtualScrollHorizontal,\n $q.lang.rtl,\n props.virtualScrollStickySizeStart,\n props.virtualScrollStickySizeEnd\n ),\n listLastIndex = virtualScrollLength.value - 1,\n listEndOffset = scrollDetails.scrollMaxSize - scrollDetails.offsetStart - scrollDetails.offsetEnd - virtualScrollPaddingAfter.value\n\n if (prevScrollStart === scrollDetails.scrollStart) {\n return\n }\n\n if (scrollDetails.scrollMaxSize <= 0) {\n setVirtualScrollSliceRange(scrollEl, scrollDetails, 0, 0)\n return\n }\n\n localScrollViewSize !== scrollDetails.scrollViewSize && setVirtualScrollSize(scrollDetails.scrollViewSize)\n\n updateVirtualScrollSizes(virtualScrollSliceRange.value.from)\n\n const scrollMaxStart = Math.floor(scrollDetails.scrollMaxSize\n - Math.max(scrollDetails.scrollViewSize, scrollDetails.offsetEnd)\n - Math.min(virtualScrollSizes[ listLastIndex ], scrollDetails.scrollViewSize / 2))\n\n if (scrollMaxStart > 0 && Math.ceil(scrollDetails.scrollStart) >= scrollMaxStart) {\n setVirtualScrollSliceRange(\n scrollEl,\n scrollDetails,\n listLastIndex,\n scrollDetails.scrollMaxSize - scrollDetails.offsetEnd - virtualScrollSizesAgg.reduce(sumFn, 0)\n )\n\n return\n }\n\n let\n toIndex = 0,\n listOffset = scrollDetails.scrollStart - scrollDetails.offsetStart,\n offset = listOffset\n\n if (listOffset <= listEndOffset && listOffset + scrollDetails.scrollViewSize >= virtualScrollPaddingBefore.value) {\n listOffset -= virtualScrollPaddingBefore.value\n toIndex = virtualScrollSliceRange.value.from\n offset = listOffset\n }\n else {\n for (let j = 0; listOffset >= virtualScrollSizesAgg[ j ] && toIndex < listLastIndex; j++) {\n listOffset -= virtualScrollSizesAgg[ j ]\n toIndex += aggBucketSize\n }\n }\n\n while (listOffset > 0 && toIndex < listLastIndex) {\n listOffset -= virtualScrollSizes[ toIndex ]\n if (listOffset > -scrollDetails.scrollViewSize) {\n toIndex++\n offset = listOffset\n }\n else {\n offset = virtualScrollSizes[ toIndex ] + listOffset\n }\n }\n\n setVirtualScrollSliceRange(\n scrollEl,\n scrollDetails,\n toIndex,\n offset\n )\n }\n\n function setVirtualScrollSliceRange (scrollEl, scrollDetails, toIndex, offset, align) {\n const alignForce = typeof align === 'string' && align.indexOf('-force') > -1\n const alignEnd = alignForce === true ? align.replace('-force', '') : align\n const alignRange = alignEnd !== void 0 ? alignEnd : 'start'\n\n let\n from = Math.max(0, toIndex - virtualScrollSliceSizeComputed.value[ alignRange ]),\n to = from + virtualScrollSliceSizeComputed.value.total\n\n if (to > virtualScrollLength.value) {\n to = virtualScrollLength.value\n from = Math.max(0, to - virtualScrollSliceSizeComputed.value.total)\n }\n\n prevScrollStart = scrollDetails.scrollStart\n\n const rangeChanged = from !== virtualScrollSliceRange.value.from || to !== virtualScrollSliceRange.value.to\n\n if (rangeChanged === false && alignEnd === void 0) {\n emitScroll(toIndex)\n return\n }\n\n const { activeElement } = document\n const contentEl = contentRef.value\n if (\n rangeChanged === true\n && contentEl !== null\n && contentEl !== activeElement\n && contentEl.contains(activeElement) === true\n ) {\n contentEl.addEventListener('focusout', onBlurRefocusFn)\n\n setTimeout(() => {\n contentEl !== null && contentEl.removeEventListener('focusout', onBlurRefocusFn)\n })\n }\n\n setOverflowAnchor(contentEl, toIndex - from)\n\n const sizeBefore = alignEnd !== void 0 ? virtualScrollSizes.slice(from, toIndex).reduce(sumFn, 0) : 0\n\n if (rangeChanged === true) {\n // vue key matching algorithm works only if\n // the array of VNodes changes on only one of the ends\n // so we first change one end and then the other\n\n const tempTo = to >= virtualScrollSliceRange.value.from && from <= virtualScrollSliceRange.value.to\n ? virtualScrollSliceRange.value.to\n : to\n\n virtualScrollSliceRange.value = { from, to: tempTo }\n virtualScrollPaddingBefore.value = sumSize(virtualScrollSizesAgg, virtualScrollSizes, 0, from)\n virtualScrollPaddingAfter.value = sumSize(virtualScrollSizesAgg, virtualScrollSizes, to, virtualScrollLength.value)\n\n requestAnimationFrame(() => {\n if (virtualScrollSliceRange.value.to !== to && prevScrollStart === scrollDetails.scrollStart) {\n virtualScrollSliceRange.value = { from: virtualScrollSliceRange.value.from, to }\n virtualScrollPaddingAfter.value = sumSize(virtualScrollSizesAgg, virtualScrollSizes, to, virtualScrollLength.value)\n }\n })\n }\n\n requestAnimationFrame(() => {\n // if the scroll was changed give up\n // (another call to setVirtualScrollSliceRange before animation frame)\n if (prevScrollStart !== scrollDetails.scrollStart) {\n return\n }\n\n if (rangeChanged === true) {\n updateVirtualScrollSizes(from)\n }\n\n const\n sizeAfter = virtualScrollSizes.slice(from, toIndex).reduce(sumFn, 0),\n posStart = sizeAfter + scrollDetails.offsetStart + virtualScrollPaddingBefore.value,\n posEnd = posStart + virtualScrollSizes[ toIndex ]\n\n let scrollPosition = posStart + offset\n\n if (alignEnd !== void 0) {\n const sizeDiff = sizeAfter - sizeBefore\n const scrollStart = scrollDetails.scrollStart + sizeDiff\n\n scrollPosition = alignForce !== true && scrollStart < posStart && posEnd < scrollStart + scrollDetails.scrollViewSize\n ? scrollStart\n : (\n alignEnd === 'end'\n ? posEnd - scrollDetails.scrollViewSize\n : posStart - (alignEnd === 'start' ? 0 : Math.round((scrollDetails.scrollViewSize - virtualScrollSizes[ toIndex ]) / 2))\n )\n }\n\n prevScrollStart = scrollPosition\n\n setScroll(\n scrollEl,\n scrollPosition,\n props.virtualScrollHorizontal,\n $q.lang.rtl\n )\n\n emitScroll(toIndex)\n })\n }\n\n function updateVirtualScrollSizes (from) {\n const contentEl = contentRef.value\n\n if (contentEl) {\n const\n children = filterProto.call(\n contentEl.children,\n el => el.classList && el.classList.contains('q-virtual-scroll--skip') === false\n ),\n childrenLength = children.length,\n sizeFn = props.virtualScrollHorizontal === true\n ? el => el.getBoundingClientRect().width\n : el => el.offsetHeight\n\n let\n index = from,\n size, diff\n\n for (let i = 0; i < childrenLength;) {\n size = sizeFn(children[ i ])\n i++\n\n while (i < childrenLength && children[ i ].classList.contains('q-virtual-scroll--with-prev') === true) {\n size += sizeFn(children[ i ])\n i++\n }\n\n diff = size - virtualScrollSizes[ index ]\n\n if (diff !== 0) {\n virtualScrollSizes[ index ] += diff\n virtualScrollSizesAgg[ Math.floor(index / aggBucketSize) ] += diff\n }\n\n index++\n }\n }\n }\n\n function onBlurRefocusFn () {\n contentRef.value !== null && contentRef.value !== void 0 && contentRef.value.focus()\n }\n\n function localResetVirtualScroll (toIndex, fullReset) {\n const defaultSize = 1 * virtualScrollItemSizeComputed.value\n\n if (fullReset === true || Array.isArray(virtualScrollSizes) === false) {\n virtualScrollSizes = []\n }\n\n const oldVirtualScrollSizesLength = virtualScrollSizes.length\n\n virtualScrollSizes.length = virtualScrollLength.value\n\n for (let i = virtualScrollLength.value - 1; i >= oldVirtualScrollSizesLength; i--) {\n virtualScrollSizes[ i ] = defaultSize\n }\n\n const jMax = Math.floor((virtualScrollLength.value - 1) / aggBucketSize)\n virtualScrollSizesAgg = []\n for (let j = 0; j <= jMax; j++) {\n let size = 0\n const iMax = Math.min((j + 1) * aggBucketSize, virtualScrollLength.value)\n for (let i = j * aggBucketSize; i < iMax; i++) {\n size += virtualScrollSizes[ i ]\n }\n virtualScrollSizesAgg.push(size)\n }\n\n prevToIndex = -1\n prevScrollStart = void 0\n\n virtualScrollPaddingBefore.value = sumSize(virtualScrollSizesAgg, virtualScrollSizes, 0, virtualScrollSliceRange.value.from)\n virtualScrollPaddingAfter.value = sumSize(virtualScrollSizesAgg, virtualScrollSizes, virtualScrollSliceRange.value.to, virtualScrollLength.value)\n\n if (toIndex >= 0) {\n updateVirtualScrollSizes(virtualScrollSliceRange.value.from)\n nextTick(() => { scrollTo(toIndex) })\n }\n else {\n onVirtualScrollEvt()\n }\n }\n\n function setVirtualScrollSize (scrollViewSize) {\n if (scrollViewSize === void 0 && typeof window !== 'undefined') {\n const scrollEl = getVirtualScrollTarget()\n\n if (scrollEl !== void 0 && scrollEl !== null && scrollEl.nodeType !== 8) {\n scrollViewSize = getScrollDetails(\n scrollEl,\n getVirtualScrollEl(),\n beforeRef.value,\n afterRef.value,\n props.virtualScrollHorizontal,\n $q.lang.rtl,\n props.virtualScrollStickySizeStart,\n props.virtualScrollStickySizeEnd\n ).scrollViewSize\n }\n }\n\n localScrollViewSize = scrollViewSize\n\n const virtualScrollSliceRatioBefore = parseFloat(props.virtualScrollSliceRatioBefore) || 0\n const virtualScrollSliceRatioAfter = parseFloat(props.virtualScrollSliceRatioAfter) || 0\n const multiplier = 1 + virtualScrollSliceRatioBefore + virtualScrollSliceRatioAfter\n const view = scrollViewSize === void 0 || scrollViewSize <= 0\n ? 1\n : Math.ceil(scrollViewSize / virtualScrollItemSizeComputed.value)\n\n const baseSize = Math.max(\n 1,\n view,\n Math.ceil((props.virtualScrollSliceSize > 0 ? props.virtualScrollSliceSize : 10) / multiplier)\n )\n\n virtualScrollSliceSizeComputed.value = {\n total: Math.ceil(baseSize * multiplier),\n start: Math.ceil(baseSize * virtualScrollSliceRatioBefore),\n center: Math.ceil(baseSize * (0.5 + virtualScrollSliceRatioBefore)),\n end: Math.ceil(baseSize * (1 + virtualScrollSliceRatioBefore)),\n view\n }\n }\n\n function padVirtualScroll (tag, content) {\n const paddingSize = props.virtualScrollHorizontal === true ? 'width' : 'height'\n const style = {\n [ '--q-virtual-scroll-item-' + paddingSize ]: virtualScrollItemSizeComputed.value + 'px'\n }\n\n return [\n tag === 'tbody'\n ? h(tag, {\n class: 'q-virtual-scroll__padding',\n key: 'before',\n ref: beforeRef\n }, [\n h('tr', [\n h('td', {\n style: { [ paddingSize ]: `${ virtualScrollPaddingBefore.value }px`, ...style },\n colspan: colspanAttr.value\n })\n ])\n ])\n : h(tag, {\n class: 'q-virtual-scroll__padding',\n key: 'before',\n ref: beforeRef,\n style: { [ paddingSize ]: `${ virtualScrollPaddingBefore.value }px`, ...style }\n }),\n\n h(tag, {\n class: 'q-virtual-scroll__content',\n key: 'content',\n ref: contentRef,\n tabindex: -1\n }, content.flat()),\n\n tag === 'tbody'\n ? h(tag, {\n class: 'q-virtual-scroll__padding',\n key: 'after',\n ref: afterRef\n }, [\n h('tr', [\n h('td', {\n style: { [ paddingSize ]: `${ virtualScrollPaddingAfter.value }px`, ...style },\n colspan: colspanAttr.value\n })\n ])\n ])\n : h(tag, {\n class: 'q-virtual-scroll__padding',\n key: 'after',\n ref: afterRef,\n style: { [ paddingSize ]: `${ virtualScrollPaddingAfter.value }px`, ...style }\n })\n ]\n }\n\n function emitScroll (index) {\n if (prevToIndex !== index) {\n props.onVirtualScroll !== void 0 && emit('virtualScroll', {\n index,\n from: virtualScrollSliceRange.value.from,\n to: virtualScrollSliceRange.value.to - 1,\n direction: index < prevToIndex ? 'decrease' : 'increase',\n ref: proxy\n })\n\n prevToIndex = index\n }\n }\n\n setVirtualScrollSize()\n const onVirtualScrollEvt = debounce(\n localOnVirtualScrollEvt,\n $q.platform.is.ios === true ? 120 : 35\n )\n\n onBeforeMount(() => {\n setVirtualScrollSize()\n })\n\n let shouldActivate = false\n\n onDeactivated(() => {\n shouldActivate = true\n })\n\n onActivated(() => {\n if (shouldActivate !== true) { return }\n\n const scrollEl = getVirtualScrollTarget()\n\n if (prevScrollStart !== void 0 && scrollEl !== void 0 && scrollEl !== null && scrollEl.nodeType !== 8) {\n setScroll(\n scrollEl,\n prevScrollStart,\n props.virtualScrollHorizontal,\n $q.lang.rtl\n )\n }\n else {\n scrollTo(prevToIndex)\n }\n })\n\n __QUASAR_SSR__ || onBeforeUnmount(() => {\n onVirtualScrollEvt.cancel()\n })\n\n // expose public methods\n Object.assign(proxy, { scrollTo, reset, refresh })\n\n return {\n virtualScrollSliceRange,\n virtualScrollSliceSizeComputed,\n\n setVirtualScrollSize,\n onVirtualScrollEvt,\n localResetVirtualScroll,\n padVirtualScroll,\n\n scrollTo,\n reset,\n refresh\n }\n}\n","import { computed } from 'vue'\n\nexport const useDarkProps = {\n dark: {\n type: Boolean,\n default: null\n }\n}\n\nexport default function (props, $q) {\n // return isDark\n return computed(() => (\n props.dark === null\n ? $q.dark.isActive\n : props.dark\n ))\n}\n","import { inject, watch, getCurrentInstance, onMounted, onBeforeUnmount } 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 onMounted(() => {\n // register to parent QForm\n props.disable !== true && $form.bindComponent(proxy)\n })\n\n onBeforeUnmount(() => {\n // un-register from parent QForm\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","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/debounce.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 const setDirty = innerLoading.value !== true\n ? () => { isDirtyModel.value = true }\n : () => {}\n\n const update = (err, msg) => {\n err === true && setDirty()\n\n innerError.value = err\n innerErrorMessage.value = msg || null\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, testPattern)\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","/**\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 { 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', 'popupShow', 'popupHide' ]\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 onClick: prevent\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 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 // expose public methods\n Object.assign(proxy, { focus, blur })\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 === true || void 0,\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 { 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 { onBeforeUnmount } from 'vue'\n\nimport History from '../../history.js'\n\nexport default function (showing, hide, hideOnRouteChange) {\n let historyEntry\n\n function removeFromHistory () {\n if (historyEntry !== void 0) {\n History.remove(historyEntry)\n historyEntry = void 0\n }\n }\n\n onBeforeUnmount(() => {\n showing.value === true && removeFromHistory()\n })\n\n return {\n removeFromHistory,\n\n addToHistory () {\n historyEntry = {\n condition: () => hideOnRouteChange.value === true,\n handler: hide\n }\n\n History.add(historyEntry)\n }\n }\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 (\n e.type === 'compositionupdate'\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}\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 'beforeShow', 'show', 'beforeHide', '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('beforeShow', 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('beforeHide', 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 { getEventPath, listenOpts, stopAndPrevent } from '../utils/event.js'\nimport { hasScrollbar, getVerticalScrollPosition, getHorizontalScrollPosition } from '../utils/scroll.js'\nimport { client } from '../plugins/Platform.js'\n\nlet\n registered = 0,\n scrollPositionX,\n scrollPositionY,\n maxScrollTop,\n vpPendingUpdate = false,\n bodyLeft,\n bodyTop,\n closeTimer\n\nfunction onWheel (e) {\n if (shouldPreventScroll(e)) {\n stopAndPrevent(e)\n }\n}\n\nfunction shouldPreventScroll (e) {\n if (e.target === document.body || e.target.classList.contains('q-layout__backdrop')) {\n return true\n }\n\n const\n path = getEventPath(e),\n shift = e.shiftKey && !e.deltaX,\n scrollY = !shift && Math.abs(e.deltaX) <= Math.abs(e.deltaY),\n delta = shift || scrollY ? e.deltaY : e.deltaX\n\n for (let index = 0; index < path.length; index++) {\n const el = path[ index ]\n\n if (hasScrollbar(el, scrollY)) {\n return scrollY\n ? (\n delta < 0 && el.scrollTop === 0\n ? true\n : delta > 0 && el.scrollTop + el.clientHeight === el.scrollHeight\n )\n : (\n delta < 0 && el.scrollLeft === 0\n ? true\n : delta > 0 && el.scrollLeft + el.clientWidth === el.scrollWidth\n )\n }\n }\n\n return true\n}\n\nfunction onAppleScroll (e) {\n if (e.target === document) {\n // required, otherwise iOS blocks further scrolling\n // until the mobile scrollbar dissappears\n document.scrollingElement.scrollTop = document.scrollingElement.scrollTop // eslint-disable-line\n }\n}\n\nfunction onAppleResize (evt) {\n if (vpPendingUpdate === true) {\n return\n }\n\n vpPendingUpdate = true\n\n requestAnimationFrame(() => {\n vpPendingUpdate = false\n\n const\n { height } = evt.target,\n { clientHeight, scrollTop } = document.scrollingElement\n\n if (maxScrollTop === void 0 || height !== window.innerHeight) {\n maxScrollTop = clientHeight - height\n document.scrollingElement.scrollTop = scrollTop\n }\n\n if (scrollTop > maxScrollTop) {\n document.scrollingElement.scrollTop -= Math.ceil((scrollTop - maxScrollTop) / 8)\n }\n })\n}\n\nfunction apply (action) {\n const\n body = document.body,\n hasViewport = window.visualViewport !== void 0\n\n if (action === 'add') {\n const { overflowY, overflowX } = window.getComputedStyle(body)\n\n scrollPositionX = getHorizontalScrollPosition(window)\n scrollPositionY = getVerticalScrollPosition(window)\n bodyLeft = body.style.left\n bodyTop = body.style.top\n\n body.style.left = `-${ scrollPositionX }px`\n body.style.top = `-${ scrollPositionY }px`\n\n if (overflowX !== 'hidden' && (overflowX === 'scroll' || body.scrollWidth > window.innerWidth)) {\n body.classList.add('q-body--force-scrollbar-x')\n }\n if (overflowY !== 'hidden' && (overflowY === 'scroll' || body.scrollHeight > window.innerHeight)) {\n body.classList.add('q-body--force-scrollbar-y')\n }\n\n body.classList.add('q-body--prevent-scroll')\n document.qScrollPrevented = true\n if (client.is.ios === true) {\n if (hasViewport === true) {\n window.scrollTo(0, 0)\n window.visualViewport.addEventListener('resize', onAppleResize, listenOpts.passiveCapture)\n window.visualViewport.addEventListener('scroll', onAppleResize, listenOpts.passiveCapture)\n window.scrollTo(0, 0)\n }\n else {\n window.addEventListener('scroll', onAppleScroll, listenOpts.passiveCapture)\n }\n }\n }\n\n if (client.is.desktop === true && client.is.mac === true) {\n // ref. https://developers.google.com/web/updates/2017/01/scrolling-intervention\n window[ `${ action }EventListener` ]('wheel', onWheel, listenOpts.notPassive)\n }\n\n if (action === 'remove') {\n if (client.is.ios === true) {\n if (hasViewport === true) {\n window.visualViewport.removeEventListener('resize', onAppleResize, listenOpts.passiveCapture)\n window.visualViewport.removeEventListener('scroll', onAppleResize, listenOpts.passiveCapture)\n }\n else {\n window.removeEventListener('scroll', onAppleScroll, listenOpts.passiveCapture)\n }\n }\n\n body.classList.remove('q-body--prevent-scroll')\n body.classList.remove('q-body--force-scrollbar-x')\n body.classList.remove('q-body--force-scrollbar-y')\n\n document.qScrollPrevented = false\n\n body.style.left = bodyLeft\n body.style.top = bodyTop\n\n window.scrollTo(scrollPositionX, scrollPositionY)\n maxScrollTop = void 0\n }\n}\n\nexport default function (state) {\n let action = 'add'\n\n if (state === true) {\n registered++\n\n if (closeTimer !== void 0) {\n clearTimeout(closeTimer)\n closeTimer = void 0\n return\n }\n\n if (registered > 1) {\n return\n }\n }\n else {\n if (registered === 0) {\n return\n }\n\n registered--\n\n if (registered > 0) {\n return\n }\n\n action = 'remove'\n\n if (client.is.ios === true && client.is.nativeMobile === true) {\n clearTimeout(closeTimer)\n\n closeTimer = setTimeout(() => {\n apply(action)\n closeTimer = void 0\n }, 100)\n return\n }\n }\n\n apply(action)\n}\n","import preventScroll from '../../utils/prevent-scroll.js'\n\nexport default function () {\n let currentState\n\n return {\n preventBodyScroll (state) {\n if (\n state !== currentState\n && (currentState !== void 0 || state === true)\n ) {\n currentState = state\n preventScroll(state)\n }\n }\n }\n}\n","/*\n * Inspired by RouterLink from Vue Router\n * --> API should match!\n */\n\nimport { computed, getCurrentInstance } from 'vue'\n\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, useDisableForRouterLinkProps = true } = {}) {\n const vm = getCurrentInstance()\n const { props, proxy, emit } = vm\n\n const hasRouter = vmHasRouter(vm)\n const hasHrefLink = computed(() => props.disable !== true && props.href !== void 0)\n\n // for perf reasons, we use minimum amount of runtime work\n const hasRouterLinkProps = useDisableForRouterLinkProps === true\n ? computed(() =>\n hasRouter === true\n && props.disable !== true\n && hasHrefLink.value !== true\n && props.to !== void 0 && props.to !== null && props.to !== ''\n )\n : computed(() =>\n hasRouter === true\n && hasHrefLink.value !== true\n && props.to !== void 0 && props.to !== null && props.to !== ''\n )\n\n const resolvedLink = computed(() => (\n hasRouterLinkProps.value === true\n ? getLink(props.to)\n : null\n ))\n\n const hasRouterLink = computed(() => resolvedLink.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 linkAttrs = computed(() => (\n hasHrefLink.value === true\n ? {\n href: props.href,\n target: props.target\n }\n : (\n hasRouterLink.value === true\n ? {\n href: resolvedLink.value.href,\n target: props.target\n }\n : {}\n )\n ))\n\n const linkActiveIndex = computed(() => {\n if (hasRouterLink.value === false) {\n return -1\n }\n\n const\n { matched } = resolvedLink.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, resolvedLink.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, resolvedLink.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 function getLink (to) {\n try { return proxy.$router.resolve(to) }\n catch (_) {}\n\n return null\n }\n\n /**\n * @returns Promise\n */\n function navigateToRouterLink (\n e,\n { returnRouterError, to = props.to, replace = props.replace } = {}\n ) {\n if (props.disable === true) {\n // ensure native navigation is prevented in all cases,\n // like when useDisableForRouterLinkProps === false (QRouteTab)\n e.preventDefault()\n return Promise.resolve(false)\n }\n\n if (\n // don't redirect with control keys;\n // should match RouterLink from Vue Router\n e.metaKey || e.altKey || e.ctrlKey || e.shiftKey\n\n // don't redirect on right click\n || (e.button !== void 0 && e.button !== 0)\n\n // don't redirect if it should open in a new window\n || props.target === '_blank'\n ) {\n return Promise.resolve(false)\n }\n\n // hinder the native navigation\n e.preventDefault()\n\n // then() can also return a \"soft\" router error (Vue Router behavior)\n const promise = proxy.$router[ replace === true ? 'replace' : 'push' ](to)\n\n return returnRouterError === true\n ? promise\n // else catching hard errors and also \"soft\" ones - then(err => ...)\n : promise.then(() => {}).catch(() => {})\n }\n\n // warning! ensure that the component using it has 'click' included in its 'emits' definition prop\n function navigateOnClick (e) {\n if (hasRouterLink.value === true) {\n const go = opts => navigateToRouterLink(e, opts)\n\n emit('click', e, go)\n e.defaultPrevented !== true && go()\n }\n else {\n emit('click', e)\n }\n }\n\n return {\n hasRouterLink,\n hasHrefLink,\n hasLink,\n\n linkTag,\n resolvedLink,\n linkIsActive,\n linkIsExactActive,\n linkClass,\n linkAttrs,\n\n getLink,\n navigateToRouterLink,\n navigateOnClick\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 { onDeactivated, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport { vmIsDestroyed } from '../../utils/private/vm'\n\n/*\n * Usage:\n * registerTimeout(fn[, delay])\n * removeTimeout()\n */\n\nexport default function () {\n let timer\n const vm = getCurrentInstance()\n\n function removeTimeout () {\n clearTimeout(timer)\n }\n\n onDeactivated(removeTimeout)\n onBeforeUnmount(removeTimeout)\n\n return {\n removeTimeout,\n\n registerTimeout (fn, delay) {\n clearTimeout(timer)\n\n if (vmIsDestroyed(vm) === false) {\n timer = setTimeout(fn, delay)\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 }) {\n const cfg = Object.assign({}, ctx.cfg.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 cfg = binding.instance.$.appContext.config.globalProperties.$q.config || {}\n\n if (cfg.ripple === false) {\n return\n }\n\n const ctx = {\n cfg,\n enabled: binding.value !== false,\n modifiers: {},\n abort: [],\n\n start (evt) {\n if (\n ctx.enabled === true\n && evt.qSkipRipple !== true\n && evt.type === (ctx.modifiers.early === true ? 'pointerdown' : 'click')\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, 'pointerdown', '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 if (ctx !== void 0) {\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\n beforeUnmount (el) {\n const ctx = el.__qripple\n if (ctx !== void 0) {\n ctx.abort.forEach(fn => { fn() })\n cleanEvt(ctx, 'main')\n delete el._qripple\n }\n }\n }\n)\n","const modifiersAll = {\n left: true,\n right: true,\n up: true,\n down: true,\n horizontal: true,\n vertical: true\n}\n\nconst directionList = Object.keys(modifiersAll)\n\nmodifiersAll.all = true\n\nexport function getModifierDirections (mod) {\n const dir = {}\n\n for (const direction of directionList) {\n if (mod[ direction ] === true) {\n dir[ direction ] = true\n }\n }\n\n if (Object.keys(dir).length === 0) {\n return modifiersAll\n }\n\n if (dir.horizontal === true) {\n dir.left = dir.right = true\n }\n else if (dir.left === true && dir.right === true) {\n dir.horizontal = true\n }\n\n if (dir.vertical === true) {\n dir.up = dir.down = true\n }\n else if (dir.up === true && dir.down === true) {\n dir.vertical = true\n }\n\n if (dir.horizontal === true && dir.vertical === true) {\n dir.all = true\n }\n\n return dir\n}\n\nexport function shouldStart (evt, ctx) {\n return ctx.event === void 0\n && evt.target !== void 0\n && evt.target.draggable !== true\n && typeof ctx.handler === 'function'\n && evt.target.nodeName.toUpperCase() !== 'INPUT'\n && (evt.qClonedBy === void 0 || evt.qClonedBy.indexOf(ctx.uid) === -1)\n}\n","import { client } from '../plugins/Platform.js'\n\nimport { createDirective } from '../utils/private/create.js'\nimport { getModifierDirections, shouldStart } from '../utils/private/touch.js'\nimport { addEvt, cleanEvt, position, leftClick, prevent, stop, stopAndPrevent, preventDraggable, noop } from '../utils/event.js'\nimport { clearSelection } from '../utils/private/selection.js'\nimport getSSRProps from '../utils/private/noop-ssr-directive-transform.js'\n\nfunction getChanges (evt, ctx, isFinal) {\n const pos = position(evt)\n let\n dir,\n distX = pos.left - ctx.event.x,\n distY = pos.top - ctx.event.y,\n absX = Math.abs(distX),\n absY = Math.abs(distY)\n\n const direction = ctx.direction\n\n if (direction.horizontal === true && direction.vertical !== true) {\n dir = distX < 0 ? 'left' : 'right'\n }\n else if (direction.horizontal !== true && direction.vertical === true) {\n dir = distY < 0 ? 'up' : 'down'\n }\n else if (direction.up === true && distY < 0) {\n dir = 'up'\n if (absX > absY) {\n if (direction.left === true && distX < 0) {\n dir = 'left'\n }\n else if (direction.right === true && distX > 0) {\n dir = 'right'\n }\n }\n }\n else if (direction.down === true && distY > 0) {\n dir = 'down'\n if (absX > absY) {\n if (direction.left === true && distX < 0) {\n dir = 'left'\n }\n else if (direction.right === true && distX > 0) {\n dir = 'right'\n }\n }\n }\n else if (direction.left === true && distX < 0) {\n dir = 'left'\n if (absX < absY) {\n if (direction.up === true && distY < 0) {\n dir = 'up'\n }\n else if (direction.down === true && distY > 0) {\n dir = 'down'\n }\n }\n }\n else if (direction.right === true && distX > 0) {\n dir = 'right'\n if (absX < absY) {\n if (direction.up === true && distY < 0) {\n dir = 'up'\n }\n else if (direction.down === true && distY > 0) {\n dir = 'down'\n }\n }\n }\n\n let synthetic = false\n\n if (dir === void 0 && isFinal === false) {\n if (ctx.event.isFirst === true || ctx.event.lastDir === void 0) {\n return {}\n }\n\n dir = ctx.event.lastDir\n synthetic = true\n\n if (dir === 'left' || dir === 'right') {\n pos.left -= distX\n absX = 0\n distX = 0\n }\n else {\n pos.top -= distY\n absY = 0\n distY = 0\n }\n }\n\n return {\n synthetic,\n payload: {\n evt,\n touch: ctx.event.mouse !== true,\n mouse: ctx.event.mouse === true,\n position: pos,\n direction: dir,\n isFirst: ctx.event.isFirst,\n isFinal: isFinal === true,\n duration: Date.now() - ctx.event.time,\n distance: {\n x: absX,\n y: absY\n },\n offset: {\n x: distX,\n y: distY\n },\n delta: {\n x: pos.left - ctx.event.lastX,\n y: pos.top - ctx.event.lastY\n }\n }\n }\n}\n\nlet uid = 0\n\nexport default createDirective(__QUASAR_SSR_SERVER__\n ? { name: 'touch-pan', getSSRProps }\n : {\n name: 'touch-pan',\n\n beforeMount (el, { value, modifiers }) {\n // early return, we don't need to do anything\n if (modifiers.mouse !== true && client.has.touch !== true) {\n return\n }\n\n function handleEvent (evt, mouseEvent) {\n if (modifiers.mouse === true && mouseEvent === true) {\n stopAndPrevent(evt)\n }\n else {\n modifiers.stop === true && stop(evt)\n modifiers.prevent === true && prevent(evt)\n }\n }\n\n const ctx = {\n uid: 'qvtp_' + (uid++),\n handler: value,\n modifiers,\n direction: getModifierDirections(modifiers),\n\n noop,\n\n mouseStart (evt) {\n if (shouldStart(evt, ctx) && leftClick(evt)) {\n addEvt(ctx, 'temp', [\n [ document, 'mousemove', 'move', 'notPassiveCapture' ],\n [ document, 'mouseup', 'end', 'passiveCapture' ]\n ])\n\n ctx.start(evt, true)\n }\n },\n\n touchStart (evt) {\n if (shouldStart(evt, ctx)) {\n const target = evt.target\n\n addEvt(ctx, 'temp', [\n [ target, 'touchmove', 'move', 'notPassiveCapture' ],\n [ target, 'touchcancel', 'end', 'passiveCapture' ],\n [ target, 'touchend', 'end', 'passiveCapture' ]\n ])\n\n ctx.start(evt)\n }\n },\n\n start (evt, mouseEvent) {\n client.is.firefox === true && preventDraggable(el, true)\n ctx.lastEvt = evt\n\n /*\n * Stop propagation so possible upper v-touch-pan don't catch this as well;\n * If we're not the target (based on modifiers), we'll re-emit the event later\n */\n if (mouseEvent === true || modifiers.stop === true) {\n /*\n * are we directly switching to detected state?\n * clone event only otherwise\n */\n if (\n ctx.direction.all !== true\n // account for UMD too where modifiers will be lowercased to work\n && (mouseEvent !== true || (ctx.modifiers.mouseAllDir !== true && ctx.modifiers.mousealldir !== true))\n ) {\n const clone = evt.type.indexOf('mouse') > -1\n ? new MouseEvent(evt.type, evt)\n : new TouchEvent(evt.type, evt)\n\n evt.defaultPrevented === true && prevent(clone)\n evt.cancelBubble === true && stop(clone)\n\n Object.assign(clone, {\n qKeyEvent: evt.qKeyEvent,\n qClickOutside: evt.qClickOutside,\n qAnchorHandled: evt.qAnchorHandled,\n qClonedBy: evt.qClonedBy === void 0\n ? [ ctx.uid ]\n : evt.qClonedBy.concat(ctx.uid)\n })\n\n ctx.initialEvent = {\n target: evt.target,\n event: clone\n }\n }\n\n stop(evt)\n }\n\n const { left, top } = position(evt)\n\n ctx.event = {\n x: left,\n y: top,\n time: Date.now(),\n mouse: mouseEvent === true,\n detected: false,\n isFirst: true,\n isFinal: false,\n lastX: left,\n lastY: top\n }\n },\n\n move (evt) {\n if (ctx.event === void 0) {\n return\n }\n\n const\n pos = position(evt),\n distX = pos.left - ctx.event.x,\n distY = pos.top - ctx.event.y\n\n // prevent buggy browser behavior (like Blink-based engine ones on Windows)\n // where the mousemove event occurs even if there's no movement after mousedown\n // https://bugs.chromium.org/p/chromium/issues/detail?id=161464\n // https://bugs.chromium.org/p/chromium/issues/detail?id=721341\n // https://github.com/quasarframework/quasar/issues/10721\n if (distX === 0 && distY === 0) {\n return\n }\n\n ctx.lastEvt = evt\n\n const isMouseEvt = ctx.event.mouse === true\n const start = () => {\n handleEvent(evt, isMouseEvt)\n\n let cursor\n if (modifiers.preserveCursor !== true && modifiers.preservecursor !== true) {\n cursor = document.documentElement.style.cursor || ''\n document.documentElement.style.cursor = 'grabbing'\n }\n\n isMouseEvt === true && document.body.classList.add('no-pointer-events--children')\n document.body.classList.add('non-selectable')\n clearSelection()\n\n ctx.styleCleanup = withDelayedFn => {\n ctx.styleCleanup = void 0\n\n if (cursor !== void 0) {\n document.documentElement.style.cursor = cursor\n }\n\n document.body.classList.remove('non-selectable')\n\n if (isMouseEvt === true) {\n const remove = () => {\n document.body.classList.remove('no-pointer-events--children')\n }\n\n if (withDelayedFn !== void 0) {\n setTimeout(() => {\n remove()\n withDelayedFn()\n }, 50)\n }\n else { remove() }\n }\n else if (withDelayedFn !== void 0) {\n withDelayedFn()\n }\n }\n }\n\n if (ctx.event.detected === true) {\n ctx.event.isFirst !== true && handleEvent(evt, ctx.event.mouse)\n\n const { payload, synthetic } = getChanges(evt, ctx, false)\n\n if (payload !== void 0) {\n if (ctx.handler(payload) === false) {\n ctx.end(evt)\n }\n else {\n if (ctx.styleCleanup === void 0 && ctx.event.isFirst === true) {\n start()\n }\n\n ctx.event.lastX = payload.position.left\n ctx.event.lastY = payload.position.top\n ctx.event.lastDir = synthetic === true ? void 0 : payload.direction\n ctx.event.isFirst = false\n }\n }\n\n return\n }\n\n if (\n ctx.direction.all === true\n // account for UMD too where modifiers will be lowercased to work\n || (isMouseEvt === true && (ctx.modifiers.mouseAllDir === true || ctx.modifiers.mousealldir === true))\n ) {\n start()\n ctx.event.detected = true\n ctx.move(evt)\n return\n }\n\n const\n absX = Math.abs(distX),\n absY = Math.abs(distY)\n\n if (absX !== absY) {\n if (\n (ctx.direction.horizontal === true && absX > absY)\n || (ctx.direction.vertical === true && absX < absY)\n || (ctx.direction.up === true && absX < absY && distY < 0)\n || (ctx.direction.down === true && absX < absY && distY > 0)\n || (ctx.direction.left === true && absX > absY && distX < 0)\n || (ctx.direction.right === true && absX > absY && distX > 0)\n ) {\n ctx.event.detected = true\n ctx.move(evt)\n }\n else {\n ctx.end(evt, true)\n }\n }\n },\n\n end (evt, abort) {\n if (ctx.event === void 0) {\n return\n }\n\n cleanEvt(ctx, 'temp')\n client.is.firefox === true && preventDraggable(el, false)\n\n if (abort === true) {\n ctx.styleCleanup !== void 0 && ctx.styleCleanup()\n\n if (ctx.event.detected !== true && ctx.initialEvent !== void 0) {\n ctx.initialEvent.target.dispatchEvent(ctx.initialEvent.event)\n }\n }\n else if (ctx.event.detected === true) {\n ctx.event.isFirst === true && ctx.handler(getChanges(evt === void 0 ? ctx.lastEvt : evt, ctx).payload)\n\n const { payload } = getChanges(evt === void 0 ? ctx.lastEvt : evt, ctx, true)\n const fn = () => { ctx.handler(payload) }\n\n if (ctx.styleCleanup !== void 0) {\n ctx.styleCleanup(fn)\n }\n else {\n fn()\n }\n }\n\n ctx.event = void 0\n ctx.initialEvent = void 0\n ctx.lastEvt = void 0\n }\n }\n\n el.__qtouchpan = ctx\n\n if (modifiers.mouse === true) {\n // account for UMD too where modifiers will be lowercased to work\n const capture = modifiers.mouseCapture === true || modifiers.mousecapture === true\n ? 'Capture'\n : ''\n\n addEvt(ctx, 'main', [\n [ el, 'mousedown', 'mouseStart', `passive${ capture }` ]\n ])\n }\n\n client.has.touch === true && addEvt(ctx, 'main', [\n [ el, 'touchstart', 'touchStart', `passive${ modifiers.capture === true ? 'Capture' : '' }` ],\n [ el, 'touchmove', 'noop', 'notPassiveCapture' ] // cannot be passive (ex: iOS scroll)\n ])\n },\n\n updated (el, bindings) {\n const ctx = el.__qtouchpan\n\n if (ctx !== void 0) {\n if (bindings.oldValue !== bindings.value) {\n typeof value !== 'function' && ctx.end()\n ctx.handler = bindings.value\n }\n\n ctx.direction = getModifierDirections(bindings.modifiers)\n }\n },\n\n beforeUnmount (el) {\n const ctx = el.__qtouchpan\n\n if (ctx !== void 0) {\n // emit the end event when the directive is destroyed while active\n // this is only needed in TouchPan because the rest of the touch directives do not emit an end event\n // the condition is also checked in the start of function but we avoid the call\n ctx.event !== void 0 && ctx.end()\n\n cleanEvt(ctx, 'main')\n cleanEvt(ctx, 'temp')\n\n client.is.firefox === true && preventDraggable(el, false)\n ctx.styleCleanup !== void 0 && ctx.styleCleanup()\n\n delete el.__qtouchpan\n }\n }\n }\n)\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","/* 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 { unref } 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 = unref(el)\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","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","\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 (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 (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 (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\nexport default {\n deepEqual: isDeepEqual,\n object: isObject,\n date: isDate,\n regexp: isRegexp,\n number: isNumber\n}\n","import { defineComponent, markRaw } from 'vue'\n\nexport const createComponent = raw => markRaw(defineComponent(raw))\nexport const createDirective = raw => markRaw(raw)\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","export function injectProp (target, propName, get, set) {\n Object.defineProperty(target, propName, {\n get,\n set,\n enumerable: true\n })\n return target\n}\n\nexport function injectMultipleProps (target, props) {\n for (const key in props) {\n injectProp(target, key, props[ key ])\n }\n return target\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","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","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\nexport const emptyRenderFn = () => {}\n","\n// copied to docs too\nexport function getParentProxy (proxy) {\n if (Object(proxy.$parent) === proxy.$parent) {\n return proxy.$parent\n }\n\n let { parent } = proxy.$\n\n while (Object(parent) === parent) {\n if (Object(parent.proxy) === parent.proxy) {\n return parent.proxy\n }\n\n parent = parent.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\nexport function vmIsDestroyed (vm) {\n return vm.isUnmounted === true || vm.isDeactivated === true\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","\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","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","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 expand: label => (label ? `Expand \"${ label }\"` : 'Expand'),\n collapse: label => (label ? `Collapse \"${ label }\"` : 'Collapse')\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","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 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","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 { 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/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","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","import { extend, isArray, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this.active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index =\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n run(fn) {\n if (this.active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n }\n finally {\n activeEffectScope = currentEffectScope;\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this.active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n // nested scope, dereference from parent to avoid memory leaks\n if (!this.detached && this.parent && !fromParent) {\n // optimized O(1) removal\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = undefined;\n this.active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`onScopeDispose() is called when there is no active effect scope` +\n ` to be associated with.`);\n }\n}\n\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit; // set was tracked\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n }\n else {\n deps[ptr++] = dep;\n }\n // clear bits\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\n\nconst targetMap = new WeakMap();\n// The number of effects currently being tracked recursively.\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\n/**\n * The bitwise track markers support at most 30 levels of recursion.\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\n * When recursion depth is greater, fall back to using a full cleanup.\n */\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = undefined;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n }\n else {\n cleanupEffect(this);\n }\n return this.fn();\n }\n finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = undefined;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n // stopped while running itself - defer the cleanup\n if (activeEffect === this) {\n this.deferStop = true;\n }\n else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect) {\n const { deps } = effect;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect);\n }\n deps.length = 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn);\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === undefined ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, (depsMap = new Map()));\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, (dep = createDep()));\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { effect: activeEffect, target, type, key }\n : undefined;\n trackEffects(dep, eventInfo);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit; // set newly tracked\n shouldTrack = !wasTracked(dep);\n }\n }\n else {\n // Full cleanup mode.\n shouldTrack = !dep.has(activeEffect);\n }\n if (shouldTrack) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\n activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n // never been tracked\n return;\n }\n let deps = [];\n if (type === \"clear\" /* TriggerOpTypes.CLEAR */) {\n // collection being cleared\n // trigger all effects for target\n deps = [...depsMap.values()];\n }\n else if (key === 'length' && isArray(target)) {\n depsMap.forEach((dep, key) => {\n if (key === 'length' || key >= newValue) {\n deps.push(dep);\n }\n });\n }\n else {\n // schedule runs for SET | ADD | DELETE\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n // also run for iteration key on ADD | DELETE | Map.SET\n switch (type) {\n case \"add\" /* TriggerOpTypes.ADD */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n else if (isIntegerKey(key)) {\n // new index added to array -> length changes\n deps.push(depsMap.get('length'));\n }\n break;\n case \"delete\" /* TriggerOpTypes.DELETE */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\" /* TriggerOpTypes.SET */:\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { target, type, key, newValue, oldValue, oldTarget }\n : undefined;\n if (deps.length === 1) {\n if (deps[0]) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(deps[0], eventInfo);\n }\n else {\n triggerEffects(deps[0]);\n }\n }\n }\n else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(createDep(effects), eventInfo);\n }\n else {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n // spread into array for stabilization\n const effects = isArray(dep) ? dep : [...dep];\n for (const effect of effects) {\n if (effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n for (const effect of effects) {\n if (!effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n}\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\n if (effect !== activeEffect || effect.allowRecurse) {\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\n }\n if (effect.scheduler) {\n effect.scheduler();\n }\n else {\n effect.run();\n }\n }\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n/*#__PURE__*/\nObject.getOwnPropertyNames(Symbol)\n // ios10.x Object.getOwnPropertyNames(Symbol) can enumerate 'arguments' and 'caller'\n // but accessing them on Symbol leads to TypeError because Symbol is a strict mode\n // function\n .filter(key => key !== 'arguments' && key !== 'caller')\n .map(key => Symbol[key])\n .filter(isSymbol));\nconst get = /*#__PURE__*/ createGetter();\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\n instrumentations[key] = function (...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\" /* TrackOpTypes.GET */, i + '');\n }\n // we run the method using the original args first (which may be reactive)\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n // if that didn't work, run it again using raw values.\n return arr[key](...args.map(toRaw));\n }\n else {\n return res;\n }\n };\n });\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\n instrumentations[key] = function (...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction createGetter(isReadonly = false, shallow = false) {\n return function get(target, key, receiver) {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */) {\n return shallow;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */ &&\n receiver ===\n (isReadonly\n ? shallow\n ? shallowReadonlyMap\n : readonlyMap\n : shallow\n ? shallowReactiveMap\n : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly) {\n track(target, \"get\" /* TrackOpTypes.GET */, key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n // ref unwrapping - skip unwrap for Array + integer key.\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n // Convert returned value into a proxy as well. we do the isObject check\n // here to avoid invalid value warning. Also need to lazy access readonly\n // and reactive here to avoid circular dependency.\n return isReadonly ? readonly(res) : reactive(res);\n }\n return res;\n };\n}\nconst set = /*#__PURE__*/ createSetter();\nconst shallowSet = /*#__PURE__*/ createSetter(true);\nfunction createSetter(shallow = false) {\n return function set(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!shallow) {\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key)\n ? Number(key) < target.length\n : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n // don't trigger if target is something up in the prototype chain of original\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\" /* TrackOpTypes.HAS */, key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\" /* TrackOpTypes.ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nconst mutableHandlers = {\n get,\n set,\n deleteProperty,\n has,\n ownKeys\n};\nconst readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n },\n deleteProperty(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n }\n};\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\n get: shallowGet,\n set: shallowSet\n});\n// Props handlers are special in the sense that it should not unwrap top-level\n// refs (in order to allow refs to be explicitly passed down), but should\n// retain the reactivity of the normal readonly object.\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\n get: shallowReadonlyGet\n});\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\n // of the value\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, key);\n }\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n }\n else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n }\n else if (target !== rawTarget) {\n // #3602 readonly(reactive(Map))\n // ensure that the nested reactive `Map` can do tracking for itself\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly = false) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, key);\n }\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, rawKey);\n }\n return key === rawKey\n ? target.has(key)\n : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n !isReadonly && track(toRaw(target), \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return Reflect.get(target, 'size', target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : undefined;\n // forward the operation before queueing reactions\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = (process.env.NODE_ENV !== 'production')\n ? isMap(target)\n ? new Map(target)\n : new Set(target)\n : undefined;\n // forward the operation before queueing reactions\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\" /* TriggerOpTypes.CLEAR */, undefined, undefined, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return target.forEach((value, key) => {\n // important: make sure the callback is\n // 1. invoked with the reactive map as `this` and 3rd arg\n // 2. the value received should be a corresponding reactive/readonly.\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function (...args) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\n const isKeyOnly = method === 'keys' && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly &&\n track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n // return a wrapped iterator which returns observed versions of the\n // values emitted from the real iterator\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done\n ? { value, done }\n : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function (...args) {\n if ((process.env.NODE_ENV !== 'production')) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\n }\n return type === \"delete\" /* TriggerOpTypes.DELETE */ ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\n iteratorMethods.forEach(method => {\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n ];\n}\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow\n ? isReadonly\n ? shallowReadonlyInstrumentations\n : shallowInstrumentations\n : isReadonly\n ? readonlyInstrumentations\n : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */) {\n return target;\n }\n return Reflect.get(hasOwn(instrumentations, key) && key in target\n ? instrumentations\n : target, key, receiver);\n };\n}\nconst mutableCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\n `which can lead to inconsistencies. ` +\n `Avoid differentiating between the raw and reactive versions ` +\n `of an object and only use the reactive version if possible.`);\n }\n}\n\nconst reactiveMap = new WeakMap();\nconst shallowReactiveMap = new WeakMap();\nconst readonlyMap = new WeakMap();\nconst shallowReadonlyMap = new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case 'Object':\n case 'Array':\n return 1 /* TargetType.COMMON */;\n case 'Map':\n case 'Set':\n case 'WeakMap':\n case 'WeakSet':\n return 2 /* TargetType.COLLECTION */;\n default:\n return 0 /* TargetType.INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\" /* ReactiveFlags.SKIP */] || !Object.isExtensible(value)\n ? 0 /* TargetType.INVALID */\n : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\n/**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\nfunction shallowReactive(target) {\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n}\n/**\n * Creates a readonly copy of the original object. Note the returned copy is not\n * made reactive, but `readonly` can be called on an already reactive object.\n */\nfunction readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\n/**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\nfunction shallowReadonly(target) {\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\n}\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n // target is already a Proxy, return it.\n // exception: calling readonly() on a reactive object\n if (target[\"__v_raw\" /* ReactiveFlags.RAW */] &&\n !(isReadonly && target[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */])) {\n return target;\n }\n // target already has corresponding Proxy\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n // only specific value types can be observed.\n const targetType = getTargetType(target);\n if (targetType === 0 /* TargetType.INVALID */) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 /* TargetType.COLLECTION */ ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\n if (shouldTrack && activeEffect) {\n ref = toRaw(ref);\n if ((process.env.NODE_ENV !== 'production')) {\n trackEffects(ref.dep || (ref.dep = createDep()), {\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n else {\n trackEffects(ref.dep || (ref.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref, newVal) {\n ref = toRaw(ref);\n if (ref.dep) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(ref.dep, {\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value',\n newValue: newVal\n });\n }\n else {\n triggerEffects(ref.dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = undefined;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, newVal);\n }\n }\n}\nfunction triggerRef(ref) {\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs)\n ? objectWithRefs\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = undefined;\n this.__v_isRef = true;\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === undefined ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n}\nfunction toRef(object, key, defaultValue) {\n const val = object[key];\n return isRef(val)\n ? val\n : new ObjectRefImpl(object, key, defaultValue);\n}\n\nvar _a;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = undefined;\n this.__v_isRef = true;\n this[_a] = false;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */] = isReadonly;\n }\n get value() {\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n const self = toRaw(this);\n trackRefValue(self);\n if (self._dirty || !self._cacheable) {\n self._dirty = false;\n self._value = self.effect.run();\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\n_a = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = (process.env.NODE_ENV !== 'production')\n ? () => {\n console.warn('Write operation failed: computed value is readonly');\n }\n : NOOP;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nvar _a$1;\nconst tick = /*#__PURE__*/ Promise.resolve();\nconst queue = [];\nlet queued = false;\nconst scheduler = (fn) => {\n queue.push(fn);\n if (!queued) {\n queued = true;\n tick.then(flush);\n }\n};\nconst flush = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n }\n queue.length = 0;\n queued = false;\n};\nclass DeferredComputedRefImpl {\n constructor(getter) {\n this.dep = undefined;\n this._dirty = true;\n this.__v_isRef = true;\n this[_a$1] = true;\n let compareTarget;\n let hasCompareTarget = false;\n let scheduled = false;\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\n if (this.dep) {\n if (computedTrigger) {\n compareTarget = this._value;\n hasCompareTarget = true;\n }\n else if (!scheduled) {\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\n scheduled = true;\n hasCompareTarget = false;\n scheduler(() => {\n if (this.effect.active && this._get() !== valueToCompare) {\n triggerRefValue(this);\n }\n scheduled = false;\n });\n }\n // chained upstream computeds are notified synchronously to ensure\n // value invalidation in case of sync access; normal effects are\n // deferred to be triggered in scheduler.\n for (const e of this.dep) {\n if (e.computed instanceof DeferredComputedRefImpl) {\n e.scheduler(true /* computedTrigger */);\n }\n }\n }\n this._dirty = true;\n });\n this.effect.computed = this;\n }\n _get() {\n if (this._dirty) {\n this._dirty = false;\n return (this._value = this.effect.run());\n }\n return this._value;\n }\n get value() {\n trackRefValue(this);\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n return toRaw(this)._get();\n }\n}\n_a$1 = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction deferredComputed(getter) {\n return new DeferredComputedRefImpl(getter);\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, isObject, isOn, hasOwn, isModelListener, hasChanged, remove, 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 = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn(msg, ...args) {\n // avoid props formatting or warn handler tracking deps that might be mutated\n // during patch, leading to infinite recursion.\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(appWarnHandler, instance, 11 /* ErrorCodes.APP_WARN_HANDLER */, [\n msg + args.join(''),\n instance && instance.proxy,\n trace\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\n .join('\\n'),\n trace\n ]);\n }\n else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n /* istanbul ignore if */\n if (trace.length &&\n // avoid spamming console during tests\n !false) {\n warnArgs.push(`\\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n // we can't just use the stack because it will be incomplete during updates\n // that did not start from the root. Re-construct the parent chain using\n // instance parent pointers.\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n }\n else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\n/* istanbul ignore next */\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\n const close = `>` + postfix;\n return vnode.props\n ? [open, ...formatProps(vnode.props), close]\n : [open + close];\n}\n/* istanbul ignore next */\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach(key => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\n/* istanbul ignore next */\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n }\n else if (typeof value === 'number' ||\n typeof value === 'boolean' ||\n value == null) {\n return raw ? value : [`${key}=${value}`];\n }\n else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n }\n else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n }\n else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\" /* LifecycleHooks.SERVER_PREFETCH */]: 'serverPrefetch hook',\n [\"bc\" /* LifecycleHooks.BEFORE_CREATE */]: 'beforeCreate hook',\n [\"c\" /* LifecycleHooks.CREATED */]: 'created hook',\n [\"bm\" /* LifecycleHooks.BEFORE_MOUNT */]: 'beforeMount hook',\n [\"m\" /* LifecycleHooks.MOUNTED */]: 'mounted hook',\n [\"bu\" /* LifecycleHooks.BEFORE_UPDATE */]: 'beforeUpdate hook',\n [\"u\" /* LifecycleHooks.UPDATED */]: 'updated',\n [\"bum\" /* LifecycleHooks.BEFORE_UNMOUNT */]: 'beforeUnmount hook',\n [\"um\" /* LifecycleHooks.UNMOUNTED */]: 'unmounted hook',\n [\"a\" /* LifecycleHooks.ACTIVATED */]: 'activated hook',\n [\"da\" /* LifecycleHooks.DEACTIVATED */]: 'deactivated hook',\n [\"ec\" /* LifecycleHooks.ERROR_CAPTURED */]: 'errorCaptured hook',\n [\"rtc\" /* LifecycleHooks.RENDER_TRACKED */]: 'renderTracked hook',\n [\"rtg\" /* LifecycleHooks.RENDER_TRIGGERED */]: 'renderTriggered hook',\n [0 /* ErrorCodes.SETUP_FUNCTION */]: 'setup function',\n [1 /* ErrorCodes.RENDER_FUNCTION */]: 'render function',\n [2 /* ErrorCodes.WATCH_GETTER */]: 'watcher getter',\n [3 /* ErrorCodes.WATCH_CALLBACK */]: 'watcher callback',\n [4 /* ErrorCodes.WATCH_CLEANUP */]: 'watcher cleanup function',\n [5 /* ErrorCodes.NATIVE_EVENT_HANDLER */]: 'native event handler',\n [6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */]: 'component event handler',\n [7 /* ErrorCodes.VNODE_HOOK */]: 'vnode hook',\n [8 /* ErrorCodes.DIRECTIVE_HOOK */]: 'directive hook',\n [9 /* ErrorCodes.TRANSITION_HOOK */]: 'transition hook',\n [10 /* ErrorCodes.APP_ERROR_HANDLER */]: 'app errorHandler',\n [11 /* ErrorCodes.APP_WARN_HANDLER */]: 'app warnHandler',\n [12 /* ErrorCodes.FUNCTION_REF */]: 'ref function',\n [13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */]: 'async component loader',\n [14 /* ErrorCodes.SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n }\n catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch(err => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n // the exposed instance is the render proxy to keep it consistent with 2.x\n const exposedInstance = instance.proxy;\n // in production the hook receives only the error code\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n // app-level handling\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(appErrorHandler, null, 10 /* ErrorCodes.APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if ((process.env.NODE_ENV !== 'production')) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n // crash in dev by default so it's more noticeable\n if (throwInDev) {\n throw err;\n }\n else {\n console.error(err);\n }\n }\n else {\n // recover in prod to reduce the impact on end-user\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /*#__PURE__*/ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\n// #2768\n// Use binary-search to find a suitable position in the queue,\n// so that the queue maintains the increasing order of job's id,\n// which can prevent the job from being skipped and also can avoid repeated patching.\nfunction findInsertionIndex(id) {\n // the start index should be `flushIndex + 1`\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = (start + end) >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? (start = middle + 1) : (end = middle);\n }\n return start;\n}\nfunction queueJob(job) {\n // the dedupe search uses the startIndex argument of Array.includes()\n // by default the search index includes the current job that is being run\n // so it cannot recursively trigger itself again.\n // if the job is a watch() callback, the search will start with a +1 index to\n // allow it recursively trigger itself - it is the user's responsibility to\n // ensure it doesn't end up in an infinite loop.\n if (!queue.length ||\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) {\n if (job.id == null) {\n queue.push(job);\n }\n else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs ||\n !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) {\n pendingPostFlushCbs.push(cb);\n }\n }\n else {\n // if cb is an array, it is a component lifecycle hook which can only be\n // triggered by a job, which is already deduped in the main queue, so\n // we can skip duplicate check here to improve perf\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(seen, \n// if currently flushing, skip the current job itself\ni = isFlushing ? flushIndex + 1 : 0) {\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if ((process.env.NODE_ENV !== 'production') && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n // #1947 already has active queue, nested flushPostFlushCbs call\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if ((process.env.NODE_ENV !== 'production') &&\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child so its render effect will have smaller\n // priority number)\n // 2. If a component is unmounted during a parent component's update,\n // its update can be skipped.\n queue.sort(comparator);\n // conditional usage of checkRecursiveUpdate must be determined out of\n // try ... catch block since Rollup by default de-optimizes treeshaking\n // inside try-catch. This can leave all warning code unshaked. Although\n // they would get eventually shaken by a minifier like terser, some minifiers\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\n const check = (process.env.NODE_ENV !== 'production')\n ? (job) => checkRecursiveUpdates(seen, job)\n : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\n continue;\n }\n // console.log(`running:`, job.id)\n callWithErrorHandling(job, null, 14 /* ErrorCodes.SCHEDULER */);\n }\n }\n }\n finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n // some postFlushCb queued jobs!\n // keep flushing until it drains.\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n }\n else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\n `This means you have a reactive effect that is mutating its own ` +\n `dependencies and thus recursively triggering itself. Possible sources ` +\n `include component template, render function, updated hook or ` +\n `watcher source function.`);\n return true;\n }\n else {\n seen.set(fn, count + 1);\n }\n }\n}\n\n/* eslint-disable no-restricted-globals */\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = new Set();\n// Expose the HMR runtime on the global object\n// This makes it entirely tree-shakable without polluting the exports and makes\n// it easier to be used in toolings like vue-loader\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\n// to be set so that its instances can be registered / removed.\nif ((process.env.NODE_ENV !== 'production')) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n // update initial record (for not-yet-rendered component)\n record.initialDef.render = newRender;\n [...record.instances].forEach(instance => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n // this flag forces child components with slot content to update\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n // update initial def (for not-yet-rendered components)\n updateComponentDef(record.initialDef, newComp);\n // create a snapshot which avoids the set being mutated during updates\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n // 1. Update existing comp definition to match new one\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n // 2. mark definition dirty. This forces the renderer to replace the\n // component on patch.\n hmrDirtyComponents.add(oldComp);\n }\n // 3. invalidate options resolution cache\n instance.appContext.optionsCache.delete(instance.type);\n // 4. actually update\n if (instance.ceReload) {\n // custom element\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n }\n else if (instance.parent) {\n // 4. Force the parent instance to re-render. This will cause all updated\n // components to be unmounted and re-mounted. Queue the update so that we\n // don't end up forcing the same parent to re-render multiple times.\n queueJob(instance.parent.update);\n // instance is the inner component of an async custom element\n // invoke to reset styles\n if (instance.parent.type.__asyncLoader &&\n instance.parent.ceReload) {\n instance.parent.ceReload(newComp.styles);\n }\n }\n else if (instance.appContext.reload) {\n // root instance mounted via createApp() has a reload method\n instance.appContext.reload();\n }\n else if (typeof window !== 'undefined') {\n // root instance inside tree created via raw render(). Force reload.\n window.location.reload();\n }\n else {\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\n }\n }\n // 5. make sure to cleanup dirty hmr components after update\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== '__file' && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n }\n catch (e) {\n console.error(e);\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\n `Full reload required.`);\n }\n };\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n }\n else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n }\n else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== 'undefined' &&\n // some envs mock window but not fully\n window.HTMLElement &&\n // also exclude jsdom\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n // clear buffer after 3s - the user probably doesn't have devtools installed\n // at all, and keeping the buffer will cause memory leaks (#4738)\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3000);\n }\n else {\n // non-browser env, assume not installed\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit(\"app:init\" /* DevtoolsHooks.APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit(\"app:unmount\" /* DevtoolsHooks.APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* DevtoolsHooks.COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = \n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* DevtoolsHooks.COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* DevtoolsHooks.COMPONENT_REMOVED */);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools &&\n typeof devtools.cleanupBuffer === 'function' &&\n // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\n };\n}\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* DevtoolsHooks.PERFORMANCE_START */);\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* DevtoolsHooks.PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit(\"component:emit\" /* DevtoolsHooks.COMPONENT_EMIT */, component.appContext.app, component, event, params);\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if ((process.env.NODE_ENV !== 'production')) {\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) &&\n !(false )) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\n }\n }\n else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith('update:');\n // for v-model update:xxx events, apply modifiers on args\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map(a => a.trim());\n }\n if (number) {\n args = rawArgs.map(toNumber);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\n `Note that HTML attributes are case-insensitive and you cannot use ` +\n `v-on to listen to camelCase events when using in-DOM templates. ` +\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\n }\n }\n let handlerName;\n let handler = props[(handlerName = toHandlerKey(event))] ||\n // also try camelCase event handler (#2249)\n props[(handlerName = toHandlerKey(camelize(event)))];\n // for v-model update:xxx events, also trigger kebab-case equivalent\n // for props passed via kebab-case\n if (!handler && isModelListener) {\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\n }\n if (handler) {\n callWithAsyncErrorHandling(handler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n }\n else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== undefined) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n // apply mixin/extends props\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach(key => (normalized[key] = null));\n }\n else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\n// Check if an incoming prop key is a declared emit event listener.\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\n// both considered matched listeners.\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, '');\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\n hasOwn(options, hyphenate(key)) ||\n hasOwn(options, key));\n}\n\n/**\n * mark the current rendering instance for asset resolution (e.g.\n * resolveComponent, resolveDirective) during render\n */\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\n/**\n * Note: rendering calls maybe nested. The function returns the parent rendering\n * instance if present, which should be restored after the render is done:\n *\n * ```js\n * const prev = setCurrentRenderingInstance(i)\n * // ...render\n * setCurrentRenderingInstance(prev)\n * ```\n */\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = (instance && instance.type.__scopeId) || null;\n return prev;\n}\n/**\n * Set scope id when creating hoisted vnodes.\n * @private compiler helper\n */\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\n/**\n * Technically we no longer need this after 3.0.8 but we need to keep the same\n * API for backwards compat w/ code generated by compilers.\n * @private\n */\nfunction popScopeId() {\n currentScopeId = null;\n}\n/**\n * Only for backwards compat\n * @private\n */\nconst withScopeId = (_id) => withCtx;\n/**\n * Wrap a slot function to memoize current rendering instance\n * @private compiler helper\n */\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\n) {\n if (!ctx)\n return fn;\n // already normalized\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n // If a user calls a compiled slot inside a template expression (#1745), it\n // can mess up block tracking, so by default we disable block tracking and\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\n // This isn't necessary if rendering a compiled ``, so we flip the\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n }\n finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n // mark normalized to avoid duplicated wrapping\n renderFnWithContext._n = true;\n // mark this as compiled by default\n // this is used in vnode.ts -> normalizeChildren() to set the slot\n // rendering flag.\n renderFnWithContext._c = true;\n // disable block tracking by default\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\n/**\n * dev only flag to track whether $attrs was used during render.\n * If $attrs was used during render then the warning for failed attrs\n * fallthrough can be suppressed.\n */\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) {\n // withProxy is a proxy with a different `has` trap only for\n // runtime-compiled render functions using `with` block.\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\n fallthroughAttrs = attrs;\n }\n else {\n // functional\n const render = Component;\n // in dev, mark attrs accessed if optional props (attrs === props)\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(render.length > 1\n ? render(props, (process.env.NODE_ENV !== 'production')\n ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n }\n : { attrs, slots, emit })\n : render(props, null /* we know it doesn't need it */));\n fallthroughAttrs = Component.props\n ? attrs\n : getFunctionalFallthrough(attrs);\n }\n }\n catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1 /* ErrorCodes.RENDER_FUNCTION */);\n result = createVNode(Comment);\n }\n // attr merging\n // in dev mode, comments are preserved, and it's possible for a template\n // to have comments along side the root element which makes it a fragment\n let root = result;\n let setRoot = undefined;\n if ((process.env.NODE_ENV !== 'production') &&\n result.patchFlag > 0 &&\n result.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 6 /* ShapeFlags.COMPONENT */)) {\n if (propsOptions && keys.some(isModelListener)) {\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\n // prop, it indicates this component expects to handle v-model and\n // it should not fallthrough.\n // related: #1543, #1643, #1989\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\n }\n root = cloneVNode(root, fallthroughAttrs);\n }\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n // ignore v-model handlers when they fail to fallthrough\n if (!isModelListener(key)) {\n // remove `on`, lowercase first letter to reflect event casing\n // accurately\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n }\n else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn(`Extraneous non-props attributes (` +\n `${extraAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes.`);\n }\n if (eventAttrs.length) {\n warn(`Extraneous non-emits event listeners (` +\n `${eventAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes. ` +\n `If the listener is intended to be a component custom event listener only, ` +\n `declare it using the \"emits\" option.`);\n }\n }\n }\n }\n // inherit directives\n if (vnode.dirs) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Runtime directive used on component with non-element root node. ` +\n `The directives will not function as intended.`);\n }\n // clone before mutating since the root may be a hoisted vnode\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n // inherit transition data\n if (vnode.transition) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Component inside renders non-element root node ` +\n `that cannot be animated.`);\n }\n root.transition = vnode.transition;\n }\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\n setRoot(root);\n }\n else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\n/**\n * dev only\n * In dev mode, template root level comments are rendered, which turns the\n * template into a fragment root, but we need to locate the single element\n * root for attrs and scope id processing.\n */\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, undefined];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n }\n else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n // ignore user comment\n if (child.type !== Comment || child.children === 'v-if') {\n if (singleRoot) {\n // has more than 1 non-comment child, return now\n return;\n }\n else {\n singleRoot = child;\n }\n }\n }\n else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === 'class' || key === 'style' || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return (vnode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 1 /* ShapeFlags.ELEMENT */) ||\n vnode.type === Comment // potential v-if branch switch\n );\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n // Parent component's render function was hot-updated. Since this may have\n // caused the child component's slots content to have changed, we need to\n // force the child to update as well.\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n // force child update for runtime directive or transition on component vnode.\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024 /* PatchFlags.DYNAMIC_SLOTS */) {\n // slot content that references values that might have changed,\n // e.g. in a v-for\n return true;\n }\n if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {\n if (!prevProps) {\n return !!nextProps;\n }\n // presence of this flag indicates props are always non-null\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n else if (patchFlag & 8 /* PatchFlags.PROPS */) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n }\n else {\n // this path is only taken by manually written render functions\n // so presence of any children leads to a forced update\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\n) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\n// Suspense exposes a component-like API, and is treated like a component\n// in the compiler, but internally it's a special built-in type that hooks\n// directly into the renderer.\nconst SuspenseImpl = {\n name: 'Suspense',\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \n // platform-specific impl passed from renderer\n rendererInternals) {\n if (n1 == null) {\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n else {\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\n// Force-casted public typing for h and TSX props inference\nconst Suspense = (SuspenseImpl\n );\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const { p: patch, o: { createElement } } = rendererInternals;\n const hiddenContainer = createElement('div');\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\n // start mounting the content subtree in an off-dom container\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\n // now check if we have encountered any async deps\n if (suspense.deps > 0) {\n // has async\n // invoke @fallback event\n triggerEvent(vnode, 'onPending');\n triggerEvent(vnode, 'onFallback');\n // mount the fallback tree\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds);\n setActiveBranch(suspense, vnode.ssFallback);\n }\n else {\n // Suspense has no async deps. Just resolve.\n suspense.resolve();\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = (n2.suspense = n1.suspense);\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n // same root type but content may have changed.\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else if (isInFallback) {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else {\n // toggled before pending tree is resolved\n suspense.pendingId++;\n if (isHydrating) {\n // if toggled before hydration is finished, the current DOM tree is\n // no longer valid. set it as the active branch so it will be unmounted\n // when resolved\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n }\n else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n // increment pending ID. this is used to invalidate async callbacks\n // reset suspense state\n suspense.deps = 0;\n // discard effects from pending branch\n suspense.effects.length = 0;\n // discard previous container\n suspense.hiddenContainer = createElement('div');\n if (isInFallback) {\n // already in fallback state\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // toggled \"back\" to current active branch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n // force resolve\n suspense.resolve(true);\n }\n else {\n // switched to a 3rd branch\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n }\n else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // root did not change, just normal patch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newBranch);\n }\n else {\n // root node toggled\n // invoke @pending event\n triggerEvent(n2, 'onPending');\n // mount pending branch in off-dom container\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n // incoming branch has no async deps, resolve now.\n suspense.resolve();\n }\n else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n }\n else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\n hasWarned = true;\n // @ts-ignore `console.info` cannot be null error\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\n }\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\n const timeout = toNumber(vnode.props && vnode.props.timeout);\n const suspense = {\n vnode,\n parent,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === 'number' ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: true,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false) {\n if ((process.env.NODE_ENV !== 'production')) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(`suspense.resolve() is called without a pending branch.`);\n }\n if (suspense.isUnmounted) {\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\n }\n }\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n }\n else if (!resume) {\n const delayEnter = activeBranch &&\n pendingBranch.transition &&\n pendingBranch.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n };\n }\n // this is initial anchor on mount\n let { anchor } = suspense;\n // unmount current active tree\n if (activeBranch) {\n // if the fallback tree was mounted, it may have been moved\n // as part of a parent suspense. get the latest anchor for insertion\n anchor = next(activeBranch);\n unmount(activeBranch, parentComponent, suspense, true);\n }\n if (!delayEnter) {\n // move content from off-dom container to actual container\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n // flush buffered effects\n // check if there is a pending parent suspense\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n // found a pending parent suspense, merge buffered post jobs\n // into that parent\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n // no pending parent suspense, flush all jobs\n if (!hasUnresolvedAncestor) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n // invoke @resolve event\n triggerEvent(vnode, 'onResolve');\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\n // invoke @fallback event\n triggerEvent(vnode, 'onFallback');\n const anchor = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n // mount the fallback tree\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n // unmount current active branch\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\n true // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container, anchor, type) {\n suspense.activeBranch &&\n move(suspense.activeBranch, container, anchor, type);\n suspense.container = container;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance\n .asyncDep.catch(err => {\n handleError(err, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);\n })\n .then(asyncSetupResult => {\n // retry when the setup() promise resolves.\n // component may have been unmounted before resolve.\n if (instance.isUnmounted ||\n suspense.isUnmounted ||\n suspense.pendingId !== instance.suspenseId) {\n return;\n }\n // retry from this component\n instance.asyncResolved = true;\n const { vnode } = instance;\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(vnode);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n // vnode may have been replaced if an update happened before the\n // async dep is resolved.\n vnode.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(instance, vnode, \n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el), \n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode.el);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n // only decrease deps count if suspense is not already resolved\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\n }\n if (suspense.pendingBranch) {\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n /* eslint-disable no-restricted-globals */\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\n // there are two possible scenarios for server-rendered suspense:\n // - success: ssr content should be fully resolved\n // - failure: ssr content should be the fallback branch.\n // however, on the client we don't really know if it has failed or not\n // attempt to hydrate the DOM assuming it has succeeded, but we still\n // need to construct a suspense boundary first\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\n if (suspense.deps === 0) {\n suspense.resolve();\n }\n return result;\n /* eslint-enable no-restricted-globals */\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */;\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\n vnode.ssFallback = isSlotChildren\n ? normalizeSuspenseSlot(children.fallback)\n : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n // disableTracking: false\n // allow block tracking for compiled slots\n // (see ./componentRenderContext.ts)\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\n warn(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter(c => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n }\n else {\n suspense.effects.push(fn);\n }\n }\n else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = (vnode.el = branch.el);\n // in case suspense is the root node of a component,\n // recursively update the HOC el\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`provide() can only be used inside setup().`);\n }\n }\n else {\n let provides = currentInstance.provides;\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n // TS doesn't allow symbol as index type\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n const instance = currentInstance || currentRenderingInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n const provides = instance.parent == null\n ? instance.vnode.appContext && instance.vnode.appContext.provides\n : instance.parent.provides;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue)\n ? defaultValue.call(instance.proxy)\n : defaultValue;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`injection \"${String(key)}\" not found.`);\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`inject() can only be used inside setup() or functional components.`);\n }\n}\n\n// Simple effect.\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\n}\n// initial value for watchers to trigger on undefined initial values\nconst INITIAL_WATCHER_VALUE = {};\n// implementation\nfunction watch(source, cb, options) {\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\n `supports \\`watch(source, cb, options?) signature.`);\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\n if ((process.env.NODE_ENV !== 'production') && !cb) {\n if (immediate !== undefined) {\n warn(`watch() \"immediate\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n if (deep !== undefined) {\n warn(`watch() \"deep\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n }\n const warnInvalidSource = (s) => {\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\n `a reactive object, or an array of these types.`);\n };\n const instance = currentInstance;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n }\n else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n }\n else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(s => isReactive(s) || isShallow$1(s));\n getter = () => source.map(s => {\n if (isRef(s)) {\n return s.value;\n }\n else if (isReactive(s)) {\n return traverse(s);\n }\n else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\n }\n });\n }\n else if (isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = () => callWithErrorHandling(source, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n // no cb -> simple effect\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(source, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [onCleanup]);\n };\n }\n }\n else {\n getter = NOOP;\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4 /* ErrorCodes.WATCH_CLEANUP */);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager\n if (isInSSRComponentSetup) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = NOOP;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n return NOOP;\n }\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n const newValue = effect.run();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\n : hasChanged(newValue, oldValue)) ||\n (false )) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n effect.run();\n }\n };\n // important: mark the job as a watcher callback so that scheduler knows\n // it is allowed to self-trigger (#1727)\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === 'sync') {\n scheduler = job; // the scheduler function gets called directly\n }\n else if (flush === 'post') {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n }\n else {\n // default: 'pre'\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if ((process.env.NODE_ENV !== 'production')) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n // initial run\n if (cb) {\n if (immediate) {\n job();\n }\n else {\n oldValue = effect.run();\n }\n }\n else if (flush === 'post') {\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\n }\n else {\n effect.run();\n }\n return () => {\n effect.stop();\n if (instance && instance.scope) {\n remove(instance.scope.effects, effect);\n }\n };\n}\n// this.$watch\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source)\n ? source.includes('.')\n ? createPathGetter(publicThis, source)\n : () => publicThis[source]\n : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n }\n else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n }\n else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split('.');\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject(value) || value[\"__v_skip\" /* ReactiveFlags.SKIP */]) {\n return value;\n }\n seen = seen || new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n }\n else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n }\n else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n // locate first non-comment child\n for (const c of children) {\n if (c.type !== Comment) {\n if ((process.env.NODE_ENV !== 'production') && hasFound) {\n // warn more than one non-comment child\n warn(' can only be used on a single element or component. ' +\n 'Use for lists.');\n break;\n }\n child = c;\n hasFound = true;\n if (!(process.env.NODE_ENV !== 'production'))\n break;\n }\n }\n }\n // there's no need to track reactivity for these props so use the raw\n // props for a bit better perf\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n // check mode\n if ((process.env.NODE_ENV !== 'production') &&\n mode &&\n mode !== 'in-out' &&\n mode !== 'out-in' &&\n mode !== 'default') {\n warn(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n // in the case of , we need to\n // compare the type of the kept-alive children.\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === undefined) {\n prevTransitionKey = key;\n }\n else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n // handle mode\n if (oldInnerChild &&\n oldInnerChild.type !== Comment &&\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\n // update old tree's hooks in case of dynamic transition\n setTransitionHooks(oldInnerChild, leavingHooks);\n // switching between different views\n if (mode === 'out-in') {\n state.isLeaving = true;\n // return placeholder node and queue update when leave finishes\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n instance.update();\n };\n return emptyPlaceholder(child);\n }\n else if (mode === 'in-out' && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n // early removal callback\n el._leaveCb = () => {\n earlyRemove();\n el._leaveCb = undefined;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\n// The transition hooks are attached to the vnode as vnode.transition\n// and will be called at appropriate timing in the renderer.\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook &&\n callWithAsyncErrorHandling(hook, instance, 9 /* ErrorCodes.TRANSITION_HOOK */, args);\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every(hook => hook.length <= 1))\n done();\n }\n else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n }\n else {\n return;\n }\n }\n // for same element (v-show)\n if (el._leaveCb) {\n el._leaveCb(true /* cancelled */);\n }\n // for toggled element with same key (v-if)\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode &&\n isSameVNodeType(vnode, leavingVNode) &&\n leavingVNode.el._leaveCb) {\n // force early removal (not cancelled)\n leavingVNode.el._leaveCb();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n }\n else {\n return;\n }\n }\n let called = false;\n const done = (el._enterCb = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n }\n else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el._enterCb = undefined;\n });\n if (hook) {\n callAsyncHook(hook, [el, done]);\n }\n else {\n done();\n }\n },\n leave(el, remove) {\n const key = String(vnode.key);\n if (el._enterCb) {\n el._enterCb(true /* cancelled */);\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = (el._leaveCb = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n }\n else {\n callHook(onAfterLeave, [el]);\n }\n el._leaveCb = undefined;\n if (leavingVNodesCache[key] === vnode) {\n delete leavingVNodesCache[key];\n }\n });\n leavingVNodesCache[key] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n }\n else {\n done();\n }\n },\n clone(vnode) {\n return resolveTransitionHooks(vnode, props, state, instance);\n }\n };\n return hooks;\n}\n// the placeholder really only handles one special case: KeepAlive\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\n// placeholder with empty content to avoid the KeepAlive instance from being\n// unmounted.\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode)\n ? vnode.children\n ? vnode.children[0]\n : undefined\n : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */ && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n }\n else if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n }\n else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n // #5360 inherit parent key in case of \n const key = parentKey == null\n ? child.key\n : String(parentKey) + String(child.key != null ? child.key : i);\n // handle fragment children case, e.g. v-for\n if (child.type === Fragment) {\n if (child.patchFlag & 128 /* PatchFlags.KEYED_FRAGMENT */)\n keyedFragmentCount++;\n ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));\n }\n // comment placeholders should be skipped, e.g. v-if\n else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n // #1126 if a transition children list contains multiple sub fragments, these\n // fragments will be merged into a flat children array. Since each v-for\n // fragment may contain different static bindings inside, we need to de-op\n // these children to force full diffs to ensure correct behavior.\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2 /* PatchFlags.BAIL */;\n }\n }\n return ret;\n}\n\n// implementation, close to no-op\nfunction defineComponent(options) {\n return isFunction(options) ? { setup: options, name: options.name } : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const { loader, loadingComponent, errorComponent, delay = 200, timeout, // undefined = never times out\n suspensible = true, onError: userOnError } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return (pendingRequest ||\n (thisRequest = pendingRequest =\n loader()\n .catch(err => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n }\n else {\n throw err;\n }\n })\n .then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if ((process.env.NODE_ENV !== 'production') && !comp) {\n warn(`Async component loader resolved to undefined. ` +\n `If you are using retry(), make sure to return its return value.`);\n }\n // interop module default\n if (comp &&\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\n comp = comp.default;\n }\n if ((process.env.NODE_ENV !== 'production') && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n })));\n };\n return defineComponent({\n name: 'AsyncComponentWrapper',\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n // already resolved\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(err, instance, 13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */, !errorComponent /* do not throw in dev if user provided error component */);\n };\n // suspense-controlled or SSR.\n if ((suspensible && instance.suspense) ||\n (isInSSRComponentSetup)) {\n return load()\n .then(comp => {\n return () => createInnerComp(comp, instance);\n })\n .catch(err => {\n onError(err);\n return () => errorComponent\n ? createVNode(errorComponent, {\n error: err\n })\n : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(`Async component timed out after ${timeout}ms.`);\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load()\n .then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n // parent is keep-alive, force update so the loaded component's\n // name is taken into account\n queueJob(instance.parent.update);\n }\n })\n .catch(err => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n }\n else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n }\n else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, { vnode: { ref, props, children, shapeFlag }, parent }) {\n const vnode = createVNode(comp, props, children);\n // ensure inner component inherits the async wrapper's ref owner\n vnode.ref = ref;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n // KeepAlive communicates with the instantiated renderer via the\n // ctx where the renderer passes in its internals,\n // and the KeepAlive instance exposes activate/deactivate implementations.\n // The whole point of this is to avoid importing KeepAlive directly in the\n // renderer to facilitate tree-shaking.\n const sharedContext = instance.ctx;\n // if the internal renderer is not registered, it indicates that this is server-side rendering,\n // for KeepAlive, we just need to render its children\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = new Map();\n const keys = new Set();\n let current = null;\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;\n const storageContainer = createElement('div');\n sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {\n const instance = vnode.component;\n move(vnode, container, anchor, 0 /* MoveType.ENTER */, parentSuspense);\n // in case props have changed\n patch(instance.vnode, vnode, container, anchor, instance, parentSuspense, isSVG, vnode.slotScopeIds, optimized);\n queuePostRenderEffect(() => {\n instance.isDeactivated = false;\n if (instance.a) {\n invokeArrayFns(instance.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\n }\n }, parentSuspense);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n // Update components tree\n devtoolsComponentAdded(instance);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance = vnode.component;\n move(vnode, storageContainer, null, 1 /* MoveType.LEAVE */, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance.da) {\n invokeArrayFns(instance.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance.parent, vnode);\n }\n instance.isDeactivated = true;\n }, parentSuspense);\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n // Update components tree\n devtoolsComponentAdded(instance);\n }\n };\n function unmount(vnode) {\n // reset the shapeFlag so it can be properly unmounted\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || cached.type !== current.type) {\n unmount(cached);\n }\n else if (current) {\n // current active instance should no longer be kept-alive.\n // we can't unmount it now but it might be later, so reset its flag now.\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n // prune cache on include/exclude prop change\n watch(() => [props.include, props.exclude], ([include, exclude]) => {\n include && pruneCache(name => matches(include, name));\n exclude && pruneCache(name => !matches(exclude, name));\n }, \n // prune post-render after `current` has been updated\n { flush: 'post', deep: true });\n // cache sub tree after render\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n // fix #1621, the pendingCacheKey could be 0\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach(cached => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type) {\n // current instance will be unmounted as part of keep-alive's unmount\n resetShapeFlag(vnode);\n // but invoke its deactivated hook here\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n }\n else if (!isVNode(rawVNode) ||\n (!(rawVNode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) &&\n !(rawVNode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */))) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n // for async components, name check should be based in its loaded\n // inner component if available\n const name = getComponentName(isAsyncWrapper(vnode)\n ? vnode.type.__asyncResolved || {}\n : comp);\n const { include, exclude, max } = props;\n if ((include && (!name || !matches(include, name))) ||\n (exclude && name && matches(exclude, name))) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n // clone vnode if it's reused because we are going to mutate it\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n rawVNode.ssContent = vnode;\n }\n }\n // #1513 it's possible for the returned vnode to be cloned due to attr\n // fallthrough or scopeId, so the vnode here may not be the final vnode\n // that is mounted. Instead of caching it directly, we store the pending\n // key and cache `instance.subTree` (the normalized vnode) in\n // beforeMount/beforeUpdate hooks.\n pendingCacheKey = key;\n if (cachedVNode) {\n // copy over mounted state\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n // recursively update transition hooks on subTree\n setTransitionHooks(vnode, vnode.transition);\n }\n // avoid vnode being mounted as fresh\n vnode.shapeFlag |= 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;\n // make this key the freshest\n keys.delete(key);\n keys.add(key);\n }\n else {\n keys.add(key);\n // prune oldest entry\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n // avoid vnode being unmounted\n vnode.shapeFlag |= 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n }\n else if (isString(pattern)) {\n return pattern.split(',').includes(name);\n }\n else if (pattern.test) {\n return pattern.test(name);\n }\n /* istanbul ignore next */\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\" /* LifecycleHooks.ACTIVATED */, target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\" /* LifecycleHooks.DEACTIVATED */, target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n // cache the deactivate branch check wrapper for injected hooks so the same\n // hook can be properly deduped by the scheduler. \"__wdc\" stands for \"with\n // deactivation check\".\n const wrappedHook = hook.__wdc ||\n (hook.__wdc = () => {\n // only fire the hook if the target instance is NOT in a deactivated branch.\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n // In addition to registering it on the target instance, we walk up the parent\n // chain and register it on all ancestor instances that are keep-alive roots.\n // This avoids the need to walk the entire component tree when invoking these\n // hooks, and more importantly, avoids the need to track child components in\n // arrays.\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n // injectHook wraps the original for error handling, so make sure to remove\n // the wrapped version.\n const injected = injectHook(type, hook, keepAliveRoot, true /* prepend */);\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n let shapeFlag = vnode.shapeFlag;\n if (shapeFlag & 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */) {\n shapeFlag -= 256 /* ShapeFlags.COMPONENT_SHOULD_KEEP_ALIVE */;\n }\n if (shapeFlag & 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */) {\n shapeFlag -= 512 /* ShapeFlags.COMPONENT_KEPT_ALIVE */;\n }\n vnode.shapeFlag = shapeFlag;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */ ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n // cache the error handling wrapper for injected hooks so the same hook\n // can be properly deduped by the scheduler. \"__weh\" stands for \"with error\n // handling\".\n const wrappedHook = hook.__weh ||\n (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n // disable tracking inside all lifecycle hooks\n // since they can potentially be called inside effects.\n pauseTracking();\n // Set currentInstance during hook invocation.\n // This assumes the hook does not synchronously trigger other hooks, which\n // can only be false when the user does something really funky.\n setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n unsetCurrentInstance();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n }\n else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n const apiName = toHandlerKey(ErrorTypeStrings[type].replace(/ hook$/, ''));\n warn(`${apiName} is called when there is no active component instance to be ` +\n `associated with. ` +\n `Lifecycle injection APIs can only be used during execution of setup().` +\n (` If you are using async setup(), make sure to register lifecycle ` +\n `hooks before the first await statement.`\n ));\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => \n// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n(!isInSSRComponentSetup || lifecycle === \"sp\" /* LifecycleHooks.SERVER_PREFETCH */) &&\n injectHook(lifecycle, (...args) => hook(...args), target);\nconst onBeforeMount = createHook(\"bm\" /* LifecycleHooks.BEFORE_MOUNT */);\nconst onMounted = createHook(\"m\" /* LifecycleHooks.MOUNTED */);\nconst onBeforeUpdate = createHook(\"bu\" /* LifecycleHooks.BEFORE_UPDATE */);\nconst onUpdated = createHook(\"u\" /* LifecycleHooks.UPDATED */);\nconst onBeforeUnmount = createHook(\"bum\" /* LifecycleHooks.BEFORE_UNMOUNT */);\nconst onUnmounted = createHook(\"um\" /* LifecycleHooks.UNMOUNTED */);\nconst onServerPrefetch = createHook(\"sp\" /* LifecycleHooks.SERVER_PREFETCH */);\nconst onRenderTriggered = createHook(\"rtg\" /* LifecycleHooks.RENDER_TRIGGERED */);\nconst onRenderTracked = createHook(\"rtc\" /* LifecycleHooks.RENDER_TRACKED */);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\" /* LifecycleHooks.ERROR_CAPTURED */, hook, target);\n}\n\n/**\nRuntime helper for applying directives to a vnode. Example usage:\n\nconst comp = resolveComponent('comp')\nconst foo = resolveDirective('foo')\nconst bar = resolveDirective('bar')\n\nreturn withDirectives(h(comp), [\n [foo, this.x],\n [bar, this.y]\n])\n*/\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn('Do not use built-in directive ids as custom directive id: ' + name);\n }\n}\n/**\n * Adds directives to a VNode.\n */\nfunction withDirectives(vnode, directives) {\n const internalInstance = currentRenderingInstance;\n if (internalInstance === null) {\n (process.env.NODE_ENV !== 'production') && warn(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(internalInstance) ||\n internalInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n // disable tracking inside all lifecycle hooks\n // since they can potentially be called inside effects.\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8 /* ErrorCodes.DIRECTIVE_HOOK */, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst COMPONENTS = 'components';\nconst DIRECTIVES = 'directives';\n/**\n * @private\n */\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol();\n/**\n * @private\n */\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n }\n else {\n // invalid types will fallthrough to createVNode and raise warning\n return (component || NULL_DYNAMIC_COMPONENT);\n }\n}\n/**\n * @private\n */\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\n// implementation\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n // explicit self name has highest priority\n if (type === COMPONENTS) {\n const selfName = getComponentName(Component, false /* do not include inferred name to avoid breaking existing code */);\n if (selfName &&\n (selfName === name ||\n selfName === camelize(name) ||\n selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = \n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) ||\n // global registration\n resolve(instance.appContext[type], name);\n if (!res && maybeSelfReference) {\n // fallback to implicit self-reference\n return Component;\n }\n if ((process.env.NODE_ENV !== 'production') && warnMissing && !res) {\n const extra = type === COMPONENTS\n ? `\\nIf this is a native custom element, make sure to exclude it from ` +\n `component resolution via compilerOptions.isCustomElement.`\n : ``;\n warn(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`resolve${capitalize(type.slice(0, -1))} ` +\n `can only be used in render() or setup().`);\n }\n}\nfunction resolve(registry, name) {\n return (registry &&\n (registry[name] ||\n registry[camelize(name)] ||\n registry[capitalize(camelize(name))]));\n}\n\n/**\n * Actual implementation\n */\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = (cache && cache[index]);\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, undefined, cached && cached[i]);\n }\n }\n else if (typeof source === 'number') {\n if ((process.env.NODE_ENV !== 'production') && !Number.isInteger(source)) {\n warn(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, undefined, cached && cached[i]);\n }\n }\n else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(source, (item, i) => renderItem(item, i, undefined, cached && cached[i]));\n }\n else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n }\n else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\n/**\n * Compiler runtime helper for creating dynamic slots object\n * @private\n */\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n // array of dynamic slot generated by \n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n }\n else if (slot) {\n // conditional single slot generated by \n slots[slot.name] = slot.key\n ? (...args) => {\n const res = slot.fn(...args);\n // attach branch key so each conditional branch is considered a\n // different fragment\n if (res)\n res.key = slot.key;\n return res;\n }\n : slot.fn;\n }\n }\n return slots;\n}\n\n/**\n * Compiler runtime helper for rendering ``\n * @private\n */\nfunction renderSlot(slots, name, props = {}, \n// this is not a user-facing function, so the fallback is always generated by\n// the compiler and guaranteed to be a function returning an array\nfallback, noSlotted) {\n if (currentRenderingInstance.isCE ||\n (currentRenderingInstance.parent &&\n isAsyncWrapper(currentRenderingInstance.parent) &&\n currentRenderingInstance.parent.isCE)) {\n return createVNode('slot', name === 'default' ? null : { name }, fallback && fallback());\n }\n let slot = slots[name];\n if ((process.env.NODE_ENV !== 'production') && slot && slot.length > 1) {\n warn(`SSR-optimized slot function detected in a non-SSR-optimized render ` +\n `function. You need to mark this component with $dynamic-slots in the ` +\n `parent template.`);\n slot = () => [];\n }\n // a compiled slot disables block tracking by default to avoid manual\n // invocation interfering with template-based block tracking, but in\n // `renderSlot` we can be sure that it's template-based so we can force\n // enable it.\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(Fragment, {\n key: props.key ||\n // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n (validSlotContent && validSlotContent.key) ||\n `_${name}`\n }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 /* SlotFlags.STABLE */\n ? 64 /* PatchFlags.STABLE_FRAGMENT */\n : -2 /* PatchFlags.BAIL */);\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + '-s'];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some(child => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment &&\n !ensureValidVNode(child.children))\n return false;\n return true;\n })\n ? vnodes\n : null;\n}\n\n/**\n * For prefixing keys in v-on=\"obj\" with \"on\"\n * @private\n */\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if ((process.env.NODE_ENV !== 'production') && !isObject(obj)) {\n warn(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key)\n ? `on:${key}`\n : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\n/**\n * #2437 In Vue 3, functional components do not have a public instance proxy but\n * they exist in the internal parent chain. For code that relies on traversing\n * public $parent chains, skip functional ones and go to the parent instead.\n */\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = \n// Move PURE marker to new line to workaround compiler discarding it\n// due to type annotation\n/*#__PURE__*/ extend(Object.create(null), {\n $: i => i,\n $el: i => i.vnode.el,\n $data: i => i.data,\n $props: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.props) : i.props),\n $attrs: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.attrs) : i.attrs),\n $slots: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.slots) : i.slots),\n $refs: i => ((process.env.NODE_ENV !== 'production') ? shallowReadonly(i.refs) : i.refs),\n $parent: i => getPublicInstance(i.parent),\n $root: i => getPublicInstance(i.root),\n $emit: i => i.emit,\n $options: i => (__VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type),\n $forceUpdate: i => i.f || (i.f = () => queueJob(i.update)),\n $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: i => (__VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP)\n});\nconst isReservedPrefix = (key) => key === '_' || key === '$';\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n // for internal formatters to know that this is a Vue instance\n if ((process.env.NODE_ENV !== 'production') && key === '__isVue') {\n return true;\n }\n // prioritize