{"version":3,"file":"js/chunk-vendors.859bfe8f.js","mappings":"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","sources":["webpack://dnbase/./node_modules/quasar/src/components/btn/use-btn.js","webpack://dnbase/./node_modules/quasar/src/components/btn/QBtn.js","webpack://dnbase/./node_modules/quasar/src/directives/TouchPan.js","webpack://dnbase/./node_modules/quasar/src/components/drawer/QDrawer.js","webpack://dnbase/./node_modules/quasar/src/components/footer/QFooter.js","webpack://dnbase/./node_modules/quasar/src/components/header/QHeader.js","webpack://dnbase/./node_modules/quasar/src/components/icon/QIcon.js","webpack://dnbase/./node_modules/quasar/src/components/item/QItem.js","webpack://dnbase/./node_modules/quasar/src/components/item/QItemLabel.js","webpack://dnbase/./node_modules/quasar/src/components/item/QItemSection.js","webpack://dnbase/./node_modules/quasar/src/components/item/QList.js","webpack://dnbase/./node_modules/quasar/src/components/scroll-observer/QScrollObserver.js","webpack://dnbase/./node_modules/quasar/src/components/layout/QLayout.js","webpack://dnbase/./node_modules/quasar/src/components/page/QPageContainer.js","webpack://dnbase/./node_modules/quasar/src/composables/private/use-can-render.js","webpack://dnbase/./node_modules/quasar/src/components/resize-observer/QResizeObserver.js","webpack://dnbase/./node_modules/quasar/src/components/spinner/use-spinner.js","webpack://dnbase/./node_modules/quasar/src/components/spinner/QSpinner.js","webpack://dnbase/./node_modules/quasar/src/components/tabs/QTabs.js","webpack://dnbase/./node_modules/quasar/src/components/toolbar/QToolbar.js","webpack://dnbase/./node_modules/quasar/src/components/toolbar/QToolbarTitle.js","webpack://dnbase/./node_modules/quasar/src/composables/private/use-align.js","webpack://dnbase/./node_modules/quasar/src/composables/private/use-dark.js","webpack://dnbase/./node_modules/quasar/src/composables/private/use-history.js","webpack://dnbase/./node_modules/quasar/src/composables/private/use-model-toggle.js","webpack://dnbase/./node_modules/quasar/src/composables/private/use-prevent-scroll.js","webpack://dnbase/./node_modules/quasar/src/composables/private/use-router-link.js","webpack://dnbase/./node_modules/quasar/src/composables/private/use-size.js","webpack://dnbase/./node_modules/quasar/src/composables/private/use-tick.js","webpack://dnbase/./node_modules/quasar/src/composables/private/use-timeout.js","webpack://dnbase/./node_modules/quasar/src/utils/throttle.js","webpack://dnbase/./node_modules/quasar/src/directives/Ripple.js","webpack://dnbase/./node_modules/quasar/src/history.js","webpack://dnbase/./node_modules/quasar/src/plugins/Loading.js","webpack://dnbase/./node_modules/quasar/src/plugins/Platform.js","webpack://dnbase/./node_modules/quasar/src/utils/debounce.js","webpack://dnbase/./node_modules/quasar/src/utils/dom.js","webpack://dnbase/./node_modules/quasar/src/utils/event.js","webpack://dnbase/./node_modules/quasar/src/utils/format.js","webpack://dnbase/./node_modules/quasar/src/utils/is.js","webpack://dnbase/./node_modules/quasar/src/utils/prevent-scroll.js","webpack://dnbase/./node_modules/quasar/src/utils/private/create.js","webpack://dnbase/./node_modules/quasar/src/utils/private/define-reactive-plugin.js","webpack://dnbase/./node_modules/quasar/src/utils/private/global-config.js","webpack://dnbase/./node_modules/quasar/src/utils/private/global-nodes.js","webpack://dnbase/./node_modules/quasar/src/utils/private/inject-obj-prop.js","webpack://dnbase/./node_modules/quasar/src/utils/private/key-composition.js","webpack://dnbase/./node_modules/quasar/src/utils/private/render.js","webpack://dnbase/./node_modules/quasar/src/utils/private/rtl.js","webpack://dnbase/./node_modules/quasar/src/utils/private/selection.js","webpack://dnbase/./node_modules/quasar/src/utils/private/symbols.js","webpack://dnbase/./node_modules/quasar/src/utils/private/touch.js","webpack://dnbase/./node_modules/quasar/src/utils/private/vm.js","webpack://dnbase/./node_modules/quasar/src/utils/scroll.js","webpack://dnbase/./node_modules/quasar/src/plugins/Screen.js","webpack://dnbase/./node_modules/quasar/src/plugins/Dark.js","webpack://dnbase/./node_modules/quasar/lang/en-US.mjs","webpack://dnbase/./node_modules/quasar/src/lang.js","webpack://dnbase/./node_modules/quasar/src/utils/set-css-var.js","webpack://dnbase/./node_modules/quasar/src/body.js","webpack://dnbase/./node_modules/quasar/icon-set/material-icons.mjs","webpack://dnbase/./node_modules/quasar/src/icon-set.js","webpack://dnbase/./node_modules/quasar/src/install-quasar.js","webpack://dnbase/./node_modules/quasar/src/vue-plugin.js","webpack://dnbase/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://dnbase/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://dnbase/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://dnbase/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://dnbase/./node_modules/core-js/internals/a-callable.js","webpack://dnbase/./node_modules/core-js/internals/an-object.js","webpack://dnbase/./node_modules/core-js/internals/array-includes.js","webpack://dnbase/./node_modules/core-js/internals/array-set-length.js","webpack://dnbase/./node_modules/core-js/internals/classof-raw.js","webpack://dnbase/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://dnbase/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://dnbase/./node_modules/core-js/internals/create-property-descriptor.js","webpack://dnbase/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://dnbase/./node_modules/core-js/internals/define-built-in.js","webpack://dnbase/./node_modules/core-js/internals/define-global-property.js","webpack://dnbase/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://dnbase/./node_modules/core-js/internals/descriptors.js","webpack://dnbase/./node_modules/core-js/internals/document-all.js","webpack://dnbase/./node_modules/core-js/internals/document-create-element.js","webpack://dnbase/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://dnbase/./node_modules/core-js/internals/engine-user-agent.js","webpack://dnbase/./node_modules/core-js/internals/engine-v8-version.js","webpack://dnbase/./node_modules/core-js/internals/enum-bug-keys.js","webpack://dnbase/./node_modules/core-js/internals/export.js","webpack://dnbase/./node_modules/core-js/internals/fails.js","webpack://dnbase/./node_modules/core-js/internals/function-bind-native.js","webpack://dnbase/./node_modules/core-js/internals/function-call.js","webpack://dnbase/./node_modules/core-js/internals/function-name.js","webpack://dnbase/./node_modules/core-js/internals/function-uncurry-this-raw.js","webpack://dnbase/./node_modules/core-js/internals/function-uncurry-this.js","webpack://dnbase/./node_modules/core-js/internals/get-built-in.js","webpack://dnbase/./node_modules/core-js/internals/get-method.js","webpack://dnbase/./node_modules/core-js/internals/global.js","webpack://dnbase/./node_modules/core-js/internals/has-own-property.js","webpack://dnbase/./node_modules/core-js/internals/hidden-keys.js","webpack://dnbase/./node_modules/core-js/internals/ie8-dom-define.js","webpack://dnbase/./node_modules/core-js/internals/indexed-object.js","webpack://dnbase/./node_modules/core-js/internals/inspect-source.js","webpack://dnbase/./node_modules/core-js/internals/internal-state.js","webpack://dnbase/./node_modules/core-js/internals/is-array.js","webpack://dnbase/./node_modules/core-js/internals/is-callable.js","webpack://dnbase/./node_modules/core-js/internals/is-forced.js","webpack://dnbase/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://dnbase/./node_modules/core-js/internals/is-object.js","webpack://dnbase/./node_modules/core-js/internals/is-pure.js","webpack://dnbase/./node_modules/core-js/internals/is-symbol.js","webpack://dnbase/./node_modules/core-js/internals/length-of-array-like.js","webpack://dnbase/./node_modules/core-js/internals/make-built-in.js","webpack://dnbase/./node_modules/core-js/internals/math-trunc.js","webpack://dnbase/./node_modules/core-js/internals/object-define-property.js","webpack://dnbase/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://dnbase/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://dnbase/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://dnbase/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://dnbase/./node_modules/core-js/internals/object-keys-internal.js","webpack://dnbase/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://dnbase/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://dnbase/./node_modules/core-js/internals/own-keys.js","webpack://dnbase/./node_modules/core-js/internals/regexp-flags.js","webpack://dnbase/./node_modules/core-js/internals/require-object-coercible.js","webpack://dnbase/./node_modules/core-js/internals/shared-key.js","webpack://dnbase/./node_modules/core-js/internals/shared-store.js","webpack://dnbase/./node_modules/core-js/internals/shared.js","webpack://dnbase/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://dnbase/./node_modules/core-js/internals/to-absolute-index.js","webpack://dnbase/./node_modules/core-js/internals/to-indexed-object.js","webpack://dnbase/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://dnbase/./node_modules/core-js/internals/to-length.js","webpack://dnbase/./node_modules/core-js/internals/to-object.js","webpack://dnbase/./node_modules/core-js/internals/to-primitive.js","webpack://dnbase/./node_modules/core-js/internals/to-property-key.js","webpack://dnbase/./node_modules/core-js/internals/try-to-string.js","webpack://dnbase/./node_modules/core-js/internals/uid.js","webpack://dnbase/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://dnbase/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://dnbase/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://dnbase/./node_modules/core-js/internals/well-known-symbol.js","webpack://dnbase/./node_modules/core-js/modules/es.array.push.js","webpack://dnbase/./node_modules/core-js/modules/es.array.unshift.js","webpack://dnbase/./node_modules/core-js/modules/es.regexp.flags.js","webpack://dnbase/./node_modules/vue-cli-plugin-quasar/lib/runtime.auto-import.js","webpack://dnbase/./node_modules/vue-loader/dist/exportHelper.js","webpack://dnbase/./node_modules/pinia/node_modules/vue-demi/lib/index.mjs","webpack://dnbase/./node_modules/@vue/devtools-api/lib/esm/env.js","webpack://dnbase/./node_modules/@vue/devtools-api/lib/esm/const.js","webpack://dnbase/./node_modules/@vue/devtools-api/lib/esm/time.js","webpack://dnbase/./node_modules/pinia/dist/pinia.mjs","webpack://dnbase/./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack://dnbase/./node_modules/@vue/devtools-api/lib/esm/index.js","webpack://dnbase/./node_modules/vue-router/dist/vue-router.mjs"],"sourcesContent":["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 { 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 { 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 { isRuntimeSsrPreHydration } from '../../plugins/Platform.js'\n\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hMergeSlot } from '../../utils/private/render.js'\nimport { layoutKey, emptyRenderFn } from '../../utils/private/symbols.js'\n\nexport default createComponent({\n name: 'QFooter',\n\n props: {\n modelValue: {\n type: Boolean,\n default: true\n },\n reveal: Boolean,\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('QFooter 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 const windowHeight = ref(\n isRuntimeSsrPreHydration.value === true || $layout.isContainer.value === true\n ? 0\n : window.innerHeight\n )\n\n const fixed = computed(() =>\n props.reveal === true\n || $layout.view.value.indexOf('F') > -1\n || ($q.platform.is.ios && $layout.isContainer.value === true)\n )\n\n const containerHeight = computed(() => (\n $layout.isContainer.value === true\n ? $layout.containerHeight.value\n : windowHeight.value\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 = $layout.scroll.value.position + containerHeight.value + size.value - $layout.height.value\n return offset > 0 ? offset : 0\n })\n\n const hidden = computed(() =>\n props.modelValue !== true || (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-footer q-layout__section--marginal '\n + (fixed.value === true ? 'fixed' : 'absolute') + '-bottom'\n + (props.bordered === true ? ' q-footer--bordered' : '')\n + (hidden.value === true ? ' q-footer--hidden' : '')\n + (\n props.modelValue !== true\n ? ' q-layout--prevent-focus' + (fixed.value !== true ? ' hidden' : '')\n : ''\n )\n )\n\n const style = computed(() => {\n const\n view = $layout.rows.value.bottom,\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('footer', 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 updateRevealed () {\n if (props.reveal !== true) { return }\n\n const { direction, position, inflectionPoint } = $layout.scroll.value\n\n updateLocal(revealed, (\n direction === 'up'\n || position - inflectionPoint < 100\n || $layout.height.value - containerHeight.value - position - size.value < 300\n ))\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([ size, $layout.scroll, $layout.height ], updateRevealed)\n\n watch(() => $q.screen.height, val => {\n $layout.isContainer.value !== true && updateLocal(windowHeight, val)\n })\n\n const instance = {}\n\n $layout.instances.footer = 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.footer === instance) {\n $layout.instances.footer = void 0\n updateLayout('size', 0)\n updateLayout('offset', 0)\n updateLayout('space', false)\n }\n })\n\n return () => {\n const child = hMergeSlot(slots.default, [\n h(QResizeObserver, {\n debounce: 0,\n onResize\n })\n ])\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 return h('footer', {\n class: classes.value,\n style: style.value,\n onFocusin\n }, 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 { 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 { 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 { 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, ref, computed, watch, onBeforeUnmount, onActivated, onDeactivated, getCurrentInstance, provide } from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\n\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 { noop } from '../../utils/event.js'\nimport { hSlot } from '../../utils/private/render.js'\nimport { tabsKey } from '../../utils/private/symbols.js'\nimport { rtlHasScrollBug } from '../../utils/private/rtl.js'\n\nfunction getIndicatorClass (color, top, vertical) {\n const pos = vertical === true\n ? [ 'left', 'right' ]\n : [ 'top', 'bottom' ]\n\n return `absolute-${ top === true ? pos[ 0 ] : pos[ 1 ] }${ color ? ` text-${ color }` : '' }`\n}\n\nconst alignValues = [ 'left', 'center', 'right', 'justify' ]\n\nexport default createComponent({\n name: 'QTabs',\n\n props: {\n modelValue: [ Number, String ],\n\n align: {\n type: String,\n default: 'center',\n validator: v => alignValues.includes(v)\n },\n breakpoint: {\n type: [ String, Number ],\n default: 600\n },\n\n vertical: Boolean,\n shrink: Boolean,\n stretch: Boolean,\n\n activeClass: String,\n activeColor: String,\n activeBgColor: String,\n indicatorColor: String,\n leftIcon: String,\n rightIcon: String,\n\n outsideArrows: Boolean,\n mobileArrows: Boolean,\n\n switchIndicator: Boolean,\n\n narrowIndicator: Boolean,\n inlineLabel: Boolean,\n noCaps: Boolean,\n\n dense: Boolean,\n\n contentClass: String,\n\n 'onUpdate:modelValue': [ Function, Array ]\n },\n\n setup (props, { slots, emit }) {\n const { proxy } = getCurrentInstance()\n const { $q } = proxy\n\n const { registerTick: registerScrollTick } = useTick()\n const { registerTick: registerUpdateArrowsTick } = useTick()\n const { registerTick: registerAnimateTick } = useTick()\n\n const { registerTimeout: registerFocusTimeout, removeTimeout: removeFocusTimeout } = useTimeout()\n const { registerTimeout: registerScrollToTabTimeout, removeTimeout: removeScrollToTabTimeout } = useTimeout()\n\n const rootRef = ref(null)\n const contentRef = ref(null)\n\n const currentModel = ref(props.modelValue)\n const scrollable = ref(false)\n const leftArrow = ref(true)\n const rightArrow = ref(false)\n const justify = ref(false)\n\n const arrowsEnabled = computed(() =>\n $q.platform.is.desktop === true || props.mobileArrows === true\n )\n\n const tabDataList = []\n const tabDataListLen = ref(0)\n const hasFocus = ref(false)\n\n let animateTimer, scrollTimer, unwatchRoute\n let localUpdateArrows = arrowsEnabled.value === true\n ? updateArrowsFn\n : noop\n\n const tabProps = computed(() => ({\n activeClass: props.activeClass,\n activeColor: props.activeColor,\n activeBgColor: props.activeBgColor,\n indicatorClass: getIndicatorClass(\n props.indicatorColor,\n props.switchIndicator,\n props.vertical\n ),\n narrowIndicator: props.narrowIndicator,\n inlineLabel: props.inlineLabel,\n noCaps: props.noCaps\n }))\n\n const hasActiveTab = computed(() => {\n const len = tabDataListLen.value\n const val = currentModel.value\n\n for (let i = 0; i < len; i++) {\n if (tabDataList[ i ].name.value === val) {\n return true\n }\n }\n\n return false\n })\n\n const alignClass = computed(() => {\n const align = scrollable.value === true\n ? 'left'\n : (justify.value === true ? 'justify' : props.align)\n\n return `q-tabs__content--align-${ align }`\n })\n\n const classes = computed(() =>\n 'q-tabs row no-wrap items-center'\n + ` q-tabs--${ scrollable.value === true ? '' : 'not-' }scrollable`\n + ` q-tabs--${ props.vertical === true ? 'vertical' : 'horizontal' }`\n + ` q-tabs__arrows--${ arrowsEnabled.value === true && props.outsideArrows === true ? 'outside' : 'inside' }`\n + (props.dense === true ? ' q-tabs--dense' : '')\n + (props.shrink === true ? ' col-shrink' : '')\n + (props.stretch === true ? ' self-stretch' : '')\n )\n\n const innerClass = computed(() =>\n 'q-tabs__content row no-wrap items-center self-stretch hide-scrollbar relative-position '\n + alignClass.value\n + (props.contentClass !== void 0 ? ` ${ props.contentClass }` : '')\n + ($q.platform.is.mobile === true ? ' scroll' : '')\n )\n\n const domProps = computed(() => (\n props.vertical === true\n ? { container: 'height', content: 'offsetHeight', scroll: 'scrollHeight' }\n : { container: 'width', content: 'offsetWidth', scroll: 'scrollWidth' }\n ))\n\n const isRTL = computed(() => props.vertical !== true && $q.lang.rtl === true)\n const rtlPosCorrection = computed(() => rtlHasScrollBug === false && isRTL.value === true)\n\n watch(isRTL, localUpdateArrows)\n\n watch(() => props.modelValue, name => {\n updateModel({ name, setCurrent: true, skipEmit: true })\n })\n\n watch(() => props.outsideArrows, () => {\n recalculateScroll()\n })\n\n watch(arrowsEnabled, v => {\n localUpdateArrows = v === true\n ? updateArrowsFn\n : noop\n\n recalculateScroll()\n })\n\n function updateModel ({ name, setCurrent, skipEmit, fromRoute }) {\n if (currentModel.value !== name) {\n if (skipEmit !== true && props[ 'onUpdate:modelValue' ] !== void 0) {\n emit('update:modelValue', name)\n }\n\n if (\n setCurrent === true\n || props[ 'onUpdate:modelValue' ] === void 0\n ) {\n animate(currentModel.value, name)\n currentModel.value = name\n }\n }\n }\n\n function recalculateScroll () {\n registerScrollTick(() => {\n updateContainer({\n width: rootRef.value.offsetWidth,\n height: rootRef.value.offsetHeight\n })\n })\n }\n\n function updateContainer (domSize) {\n // it can be called faster than component being initialized\n // so we need to protect against that case\n // (one example of such case is the docs release notes page)\n if (domProps.value === void 0 || contentRef.value === null) { return }\n\n const\n size = domSize[ domProps.value.container ],\n scrollSize = Math.min(\n contentRef.value[ domProps.value.scroll ],\n Array.prototype.reduce.call(\n contentRef.value.children,\n (acc, el) => acc + (el[ domProps.value.content ] || 0),\n 0\n )\n ),\n scroll = size > 0 && scrollSize > size // when there is no tab, in Chrome, size === 0 and scrollSize === 1\n\n scrollable.value = scroll\n\n // Arrows need to be updated even if the scroll status was already true\n scroll === true && registerUpdateArrowsTick(localUpdateArrows)\n\n justify.value = size < parseInt(props.breakpoint, 10)\n }\n\n function animate (oldName, newName) {\n const\n oldTab = oldName !== void 0 && oldName !== null && oldName !== ''\n ? tabDataList.find(tab => tab.name.value === oldName)\n : null,\n newTab = newName !== void 0 && newName !== null && newName !== ''\n ? tabDataList.find(tab => tab.name.value === newName)\n : null\n\n if (oldTab && newTab) {\n const\n oldEl = oldTab.tabIndicatorRef.value,\n newEl = newTab.tabIndicatorRef.value\n\n clearTimeout(animateTimer)\n\n oldEl.style.transition = 'none'\n oldEl.style.transform = 'none'\n newEl.style.transition = 'none'\n newEl.style.transform = 'none'\n\n const\n oldPos = oldEl.getBoundingClientRect(),\n newPos = newEl.getBoundingClientRect()\n\n newEl.style.transform = props.vertical === true\n ? `translate3d(0,${ oldPos.top - newPos.top }px,0) scale3d(1,${ newPos.height ? oldPos.height / newPos.height : 1 },1)`\n : `translate3d(${ oldPos.left - newPos.left }px,0,0) scale3d(${ newPos.width ? oldPos.width / newPos.width : 1 },1,1)`\n\n // allow scope updates to kick in (QRouteTab needs more time)\n registerAnimateTick(() => {\n animateTimer = setTimeout(() => {\n newEl.style.transition = 'transform .25s cubic-bezier(.4, 0, .2, 1)'\n newEl.style.transform = 'none'\n }, 70)\n })\n }\n\n if (newTab && scrollable.value === true) {\n scrollToTabEl(newTab.rootRef.value)\n }\n }\n\n function scrollToTabEl (el) {\n const\n { left, width, top, height } = contentRef.value.getBoundingClientRect(),\n newPos = el.getBoundingClientRect()\n\n let offset = props.vertical === true ? newPos.top - top : newPos.left - left\n\n if (offset < 0) {\n contentRef.value[ props.vertical === true ? 'scrollTop' : 'scrollLeft' ] += Math.floor(offset)\n localUpdateArrows()\n return\n }\n\n offset += props.vertical === true ? newPos.height - height : newPos.width - width\n if (offset > 0) {\n contentRef.value[ props.vertical === true ? 'scrollTop' : 'scrollLeft' ] += Math.ceil(offset)\n localUpdateArrows()\n }\n }\n\n function updateArrowsFn () {\n const content = contentRef.value\n if (content !== null) {\n const\n rect = content.getBoundingClientRect(),\n pos = props.vertical === true ? content.scrollTop : Math.abs(content.scrollLeft)\n\n if (isRTL.value === true) {\n leftArrow.value = Math.ceil(pos + rect.width) < content.scrollWidth - 1\n rightArrow.value = pos > 0\n }\n else {\n leftArrow.value = pos > 0\n rightArrow.value = props.vertical === true\n ? Math.ceil(pos + rect.height) < content.scrollHeight\n : Math.ceil(pos + rect.width) < content.scrollWidth\n }\n }\n }\n\n function animScrollTo (value) {\n stopAnimScroll()\n scrollTimer = setInterval(() => {\n if (scrollTowards(value) === true) {\n stopAnimScroll()\n }\n }, 5)\n }\n\n function scrollToStart () {\n animScrollTo(rtlPosCorrection.value === true ? Number.MAX_SAFE_INTEGER : 0)\n }\n\n function scrollToEnd () {\n animScrollTo(rtlPosCorrection.value === true ? 0 : Number.MAX_SAFE_INTEGER)\n }\n\n function stopAnimScroll () {\n clearInterval(scrollTimer)\n }\n\n function onKbdNavigate (keyCode, fromEl) {\n const tabs = Array.prototype.filter.call(\n contentRef.value.children,\n el => el === fromEl || (el.matches && el.matches('.q-tab.q-focusable') === true)\n )\n\n const len = tabs.length\n if (len === 0) { return }\n\n if (keyCode === 36) { // Home\n scrollToTabEl(tabs[ 0 ])\n tabs[ 0 ].focus()\n return true\n }\n if (keyCode === 35) { // End\n scrollToTabEl(tabs[ len - 1 ])\n tabs[ len - 1 ].focus()\n return true\n }\n\n const dirPrev = keyCode === (props.vertical === true ? 38 /* ArrowUp */ : 37 /* ArrowLeft */)\n const dirNext = keyCode === (props.vertical === true ? 40 /* ArrowDown */ : 39 /* ArrowRight */)\n\n const dir = dirPrev === true ? -1 : (dirNext === true ? 1 : void 0)\n\n if (dir !== void 0) {\n const rtlDir = isRTL.value === true ? -1 : 1\n const index = tabs.indexOf(fromEl) + dir * rtlDir\n\n if (index >= 0 && index < len) {\n scrollToTabEl(tabs[ index ])\n tabs[ index ].focus({ preventScroll: true })\n }\n\n return true\n }\n }\n\n // let's speed up execution of time-sensitive scrollTowards()\n // with a computed variable by directly applying the minimal\n // number of instructions on get/set functions\n const posFn = computed(() => (\n rtlPosCorrection.value === true\n ? { get: content => Math.abs(content.scrollLeft), set: (content, pos) => { content.scrollLeft = -pos } }\n : (\n props.vertical === true\n ? { get: content => content.scrollTop, set: (content, pos) => { content.scrollTop = pos } }\n : { get: content => content.scrollLeft, set: (content, pos) => { content.scrollLeft = pos } }\n )\n ))\n\n function scrollTowards (value) {\n const\n content = contentRef.value,\n { get, set } = posFn.value\n\n let\n done = false,\n pos = get(content)\n\n const direction = value < pos ? -1 : 1\n\n pos += direction * 5\n\n if (pos < 0) {\n done = true\n pos = 0\n }\n else if (\n (direction === -1 && pos <= value)\n || (direction === 1 && pos >= value)\n ) {\n done = true\n pos = value\n }\n\n set(content, pos)\n localUpdateArrows()\n\n return done\n }\n\n function hasQueryIncluded (targetQuery, matchingQuery) {\n for (const key in targetQuery) {\n if (targetQuery[ key ] !== matchingQuery[ key ]) {\n return false\n }\n }\n\n return true\n }\n\n // do not use directly; use verifyRouteModel() instead\n function updateActiveRoute () {\n let name = null, bestScore = { matchedLen: 0, queryDiff: 9999, hrefLen: 0 }\n\n const list = tabDataList.filter(tab => tab.routeData !== void 0 && tab.routeData.hasRouterLink.value === true)\n const { hash: currentHash, query: currentQuery } = proxy.$route\n const currentQueryLen = Object.keys(currentQuery).length\n\n // Vue Router does not keep account of hash & query when matching\n // so we're doing this as well\n\n for (const tab of list) {\n const exact = tab.routeData.exact.value === true\n\n if (tab.routeData[ exact === true ? 'linkIsExactActive' : 'linkIsActive' ].value !== true) {\n // it cannot match anything as it's not active nor exact-active\n continue\n }\n\n const { hash, query, matched, href } = tab.routeData.resolvedLink.value\n const queryLen = Object.keys(query).length\n\n if (exact === true) {\n if (hash !== currentHash) {\n // it's set to exact but it doesn't matches the hash\n continue\n }\n\n if (\n queryLen !== currentQueryLen\n || hasQueryIncluded(currentQuery, query) === false\n ) {\n // it's set to exact but it doesn't matches the query\n continue\n }\n\n // yey, we found the perfect match (route + hash + query)\n name = tab.name.value\n break\n }\n\n if (hash !== '' && hash !== currentHash) {\n // it has hash and it doesn't matches\n continue\n }\n\n if (\n queryLen !== 0\n && hasQueryIncluded(query, currentQuery) === false\n ) {\n // it has query and it doesn't includes the current one\n continue\n }\n\n const newScore = {\n matchedLen: matched.length,\n queryDiff: currentQueryLen - queryLen,\n hrefLen: href.length - hash.length\n }\n\n if (newScore.matchedLen > bestScore.matchedLen) {\n // it matches more routes so it's more specific so we set it as current champion\n name = tab.name.value\n bestScore = newScore\n continue\n }\n else if (newScore.matchedLen !== bestScore.matchedLen) {\n // it matches less routes than the current champion so we discard it\n continue\n }\n\n if (newScore.queryDiff < bestScore.queryDiff) {\n // query is closer to the current one so we set it as current champion\n name = tab.name.value\n bestScore = newScore\n }\n else if (newScore.queryDiff !== bestScore.queryDiff) {\n // it matches less routes than the current champion so we discard it\n continue\n }\n\n if (newScore.hrefLen > bestScore.hrefLen) {\n // href is lengthier so it's more specific so we set it as current champion\n name = tab.name.value\n bestScore = newScore\n }\n }\n\n if (\n name === null\n && tabDataList.some(tab => tab.routeData === void 0 && tab.name.value === currentModel.value) === true\n ) {\n // we shouldn't interfere if non-route tab is active\n return\n }\n\n updateModel({ name, setCurrent: true })\n }\n\n function onFocusin (e) {\n removeFocusTimeout()\n\n if (\n hasFocus.value !== true\n && rootRef.value !== null\n && e.target\n && typeof e.target.closest === 'function'\n ) {\n const tab = e.target.closest('.q-tab')\n\n // if the target is contained by a QTab/QRouteTab\n // (it might be other elements focused, like additional QBtn)\n if (tab && rootRef.value.contains(tab) === true) {\n hasFocus.value = true\n scrollable.value === true && scrollToTabEl(tab)\n }\n }\n }\n\n function onFocusout () {\n registerFocusTimeout(() => { hasFocus.value = false }, 30)\n }\n\n function verifyRouteModel () {\n if ($tabs.avoidRouteWatcher === false) {\n registerScrollToTabTimeout(updateActiveRoute)\n }\n else {\n removeScrollToTabTimeout()\n }\n }\n\n function watchRoute () {\n if (unwatchRoute === void 0) {\n const unwatch = watch(() => proxy.$route.fullPath, verifyRouteModel)\n unwatchRoute = () => {\n unwatch()\n unwatchRoute = void 0\n }\n }\n }\n\n function registerTab (tabData) {\n tabDataList.push(tabData)\n tabDataListLen.value++\n\n recalculateScroll()\n\n // if it's a QTab or we don't have Vue Router\n if (tabData.routeData === void 0 || proxy.$route === void 0) {\n // we should position to the currently active tab (if any)\n registerScrollToTabTimeout(() => {\n if (scrollable.value === true) {\n const value = currentModel.value\n const newTab = value !== void 0 && value !== null && value !== ''\n ? tabDataList.find(tab => tab.name.value === value)\n : null\n\n newTab && scrollToTabEl(newTab.rootRef.value)\n }\n })\n }\n // else if it's a QRouteTab with a valid link\n else {\n // start watching route\n watchRoute()\n\n if (tabData.routeData.hasRouterLink.value === true) {\n verifyRouteModel()\n }\n }\n }\n\n function unregisterTab (tabData) {\n tabDataList.splice(tabDataList.indexOf(tabData), 1)\n tabDataListLen.value--\n\n recalculateScroll()\n\n if (unwatchRoute !== void 0 && tabData.routeData !== void 0) {\n // unwatch route if we don't have any QRouteTabs left\n if (tabDataList.every(tab => tab.routeData === void 0) === true) {\n unwatchRoute()\n }\n\n // then update model\n verifyRouteModel()\n }\n }\n\n const $tabs = {\n currentModel,\n tabProps,\n hasFocus,\n hasActiveTab,\n\n registerTab,\n unregisterTab,\n\n verifyRouteModel,\n updateModel,\n onKbdNavigate,\n\n avoidRouteWatcher: false // false | string (uid)\n }\n\n provide(tabsKey, $tabs)\n\n function cleanup () {\n clearTimeout(animateTimer)\n stopAnimScroll()\n unwatchRoute !== void 0 && unwatchRoute()\n }\n\n let hadRouteWatcher\n\n onBeforeUnmount(cleanup)\n\n onDeactivated(() => {\n hadRouteWatcher = unwatchRoute !== void 0\n cleanup()\n })\n\n onActivated(() => {\n hadRouteWatcher === true && watchRoute()\n recalculateScroll()\n })\n\n return () => {\n const child = [\n h(QResizeObserver, { onResize: updateContainer }),\n\n h('div', {\n ref: contentRef,\n class: innerClass.value,\n onScroll: localUpdateArrows\n }, hSlot(slots.default))\n ]\n\n arrowsEnabled.value === true && child.push(\n h(QIcon, {\n class: 'q-tabs__arrow q-tabs__arrow--left absolute q-tab__icon'\n + (leftArrow.value === true ? '' : ' q-tabs__arrow--faded'),\n name: props.leftIcon || $q.iconSet.tabs[ props.vertical === true ? 'up' : 'left' ],\n onMousedownPassive: scrollToStart,\n onTouchstartPassive: scrollToStart,\n onMouseupPassive: stopAnimScroll,\n onMouseleavePassive: stopAnimScroll,\n onTouchendPassive: stopAnimScroll\n }),\n\n h(QIcon, {\n class: 'q-tabs__arrow q-tabs__arrow--right absolute q-tab__icon'\n + (rightArrow.value === true ? '' : ' q-tabs__arrow--faded'),\n name: props.rightIcon || $q.iconSet.tabs[ props.vertical === true ? 'down' : 'right' ],\n onMousedownPassive: scrollToEnd,\n onTouchstartPassive: scrollToEnd,\n onMouseupPassive: stopAnimScroll,\n onMouseleavePassive: stopAnimScroll,\n onTouchendPassive: stopAnimScroll\n })\n )\n\n return h('div', {\n ref: rootRef,\n class: classes.value,\n role: 'tablist',\n onFocusin,\n onFocusout\n }, child)\n }\n }\n})\n","import { h, computed } from 'vue'\n\nimport { createComponent } from '../../utils/private/create.js'\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default createComponent({\n name: 'QToolbar',\n\n props: {\n inset: Boolean\n },\n\n setup (props, { slots }) {\n const classes = computed(() =>\n 'q-toolbar row no-wrap items-center'\n + (props.inset === true ? ' q-toolbar--inset' : '')\n )\n\n return () => h('div', { class: classes.value, 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","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\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 { 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 { 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 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 { 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 { 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","import { client } from './plugins/Platform.js'\nimport { noop } from './utils/event.js'\n\nconst getTrue = () => true\n\nfunction filterInvalidPath (path) {\n return typeof path === 'string'\n && path !== ''\n && path !== '/'\n && path !== '#/'\n}\n\nfunction normalizeExitPath (path) {\n path.startsWith('#') === true && (path = path.substring(1))\n path.startsWith('/') === false && (path = '/' + path)\n path.endsWith('/') === true && (path = path.substring(0, path.length - 1))\n return '#' + path\n}\n\nfunction getShouldExitFn (cfg) {\n if (cfg.backButtonExit === false) {\n return () => false\n }\n\n if (cfg.backButtonExit === '*') {\n return getTrue\n }\n\n // Add default root path\n const exitPaths = [ '#/' ]\n\n // Add custom exit paths\n Array.isArray(cfg.backButtonExit) === true && exitPaths.push(\n ...cfg.backButtonExit.filter(filterInvalidPath).map(normalizeExitPath)\n )\n\n return () => exitPaths.includes(window.location.hash)\n}\n\nexport default {\n __history: [],\n add: noop,\n remove: noop,\n\n install ({ $q }) {\n if (__QUASAR_SSR_SERVER__ || this.__installed === true) { return }\n\n const { cordova, capacitor } = client.is\n\n if (cordova !== true && capacitor !== true) {\n return\n }\n\n const qConf = $q.config[ cordova === true ? 'cordova' : 'capacitor' ]\n\n if (qConf !== void 0 && qConf.backButton === false) {\n return\n }\n\n // if the '@capacitor/app' plugin is not installed\n // then we got nothing to do\n if (\n // if we're on Capacitor mode\n capacitor === true\n // and it's also not in Capacitor's main instance\n && (window.Capacitor === void 0 || window.Capacitor.Plugins.App === void 0)\n ) {\n return\n }\n\n this.add = entry => {\n if (entry.condition === void 0) {\n entry.condition = getTrue\n }\n this.__history.push(entry)\n }\n\n this.remove = entry => {\n const index = this.__history.indexOf(entry)\n if (index >= 0) {\n this.__history.splice(index, 1)\n }\n }\n\n const shouldExit = getShouldExitFn(\n Object.assign(\n { backButtonExit: true },\n qConf\n )\n )\n\n const backHandler = () => {\n if (this.__history.length) {\n const entry = this.__history[ this.__history.length - 1 ]\n\n if (entry.condition() === true) {\n this.__history.pop()\n entry.handler()\n }\n }\n else if (shouldExit() === true) {\n navigator.app.exitApp()\n }\n else {\n window.history.back()\n }\n }\n\n if (cordova === true) {\n document.addEventListener('deviceready', () => {\n document.addEventListener('backbutton', backHandler, false)\n })\n }\n else {\n window.Capacitor.Plugins.App.addListener('backButton', backHandler)\n }\n }\n}\n","import { h, createApp, Transition, onMounted } from 'vue'\n\nimport QSpinner from '../components/spinner/QSpinner.js'\n\nimport defineReactivePlugin from '../utils/private/define-reactive-plugin.js'\nimport { createGlobalNode, removeGlobalNode } from '../utils/private/global-nodes.js'\nimport preventScroll from '../utils/prevent-scroll.js'\nimport { isObject } from '../utils/is.js'\n\nlet\n app,\n vm,\n uid = 0,\n timeout,\n props = {},\n activeGroups = {}\n\nconst originalDefaults = {\n group: '__default_quasar_group__',\n delay: 0,\n message: false,\n html: false,\n spinnerSize: 80,\n spinnerColor: '',\n messageColor: '',\n backgroundColor: '',\n boxClass: '',\n spinner: QSpinner,\n customClass: ''\n}\n\nconst defaults = { ...originalDefaults }\n\nfunction registerProps (opts) {\n if (opts && opts.group !== void 0 && activeGroups[ opts.group ] !== void 0) {\n return Object.assign(activeGroups[ opts.group ], opts)\n }\n\n const newProps = isObject(opts) === true && opts.ignoreDefaults === true\n ? { ...originalDefaults, ...opts }\n : { ...defaults, ...opts }\n\n activeGroups[ newProps.group ] = newProps\n return newProps\n}\n\nconst Plugin = defineReactivePlugin({\n isActive: false\n}, {\n show (opts) {\n if (__QUASAR_SSR_SERVER__) { return }\n\n props = registerProps(opts)\n const { group } = props\n\n Plugin.isActive = true\n\n if (app !== void 0) {\n props.uid = uid\n vm.$forceUpdate()\n }\n else {\n props.uid = ++uid\n clearTimeout(timeout)\n\n timeout = setTimeout(() => {\n timeout = void 0\n\n const el = createGlobalNode('q-loading')\n\n app = createApp({\n name: 'QLoading',\n\n setup () {\n onMounted(() => {\n preventScroll(true)\n })\n\n function onAfterLeave () {\n // might be called to finalize\n // previous leave, even if it was cancelled\n if (Plugin.isActive !== true && app !== void 0) {\n preventScroll(false)\n app.unmount(el)\n removeGlobalNode(el)\n app = void 0\n vm = void 0\n }\n }\n\n function getContent () {\n if (Plugin.isActive !== true) {\n return null\n }\n\n const content = [\n h(props.spinner, {\n class: 'q-loading__spinner',\n color: props.spinnerColor,\n size: props.spinnerSize\n })\n ]\n\n props.message && content.push(\n h('div', {\n class: 'q-loading__message'\n + (props.messageColor ? ` text-${ props.messageColor }` : ''),\n [ props.html === true ? 'innerHTML' : 'textContent' ]: props.message\n })\n )\n\n return h('div', {\n class: 'q-loading fullscreen flex flex-center z-max ' + props.customClass.trim(),\n key: props.uid\n }, [\n h('div', {\n class: 'q-loading__backdrop'\n + (props.backgroundColor ? ` bg-${ props.backgroundColor }` : '')\n }),\n\n h('div', {\n class: 'q-loading__box column items-center ' + props.boxClass\n }, content)\n ])\n }\n\n return () => h(Transition, {\n name: 'q-transition--fade',\n appear: true,\n onAfterLeave\n }, getContent)\n }\n })\n\n vm = app.mount(el)\n }, props.delay)\n }\n\n return paramProps => {\n // if we don't have params (or not an Object param) then we need to hide this group\n if (paramProps === void 0 || Object(paramProps) !== paramProps) {\n Plugin.hide(group)\n return\n }\n\n // else we have params so we need to update this group\n Plugin.show({ ...paramProps, group })\n }\n },\n\n hide (group) {\n if (__QUASAR_SSR_SERVER__ !== true && Plugin.isActive === true) {\n if (group === void 0) {\n // clear out any active groups\n activeGroups = {}\n }\n else if (activeGroups[ group ] === void 0) {\n // we've already hidden it so nothing to do\n return\n }\n else {\n // remove active group\n delete activeGroups[ group ]\n\n const keys = Object.keys(activeGroups)\n\n // if there are other groups registered then\n // show last registered one since that one is still active\n if (keys.length !== 0) {\n // get last registered group\n const lastGroup = keys[ keys.length - 1 ]\n Plugin.show({ group: lastGroup })\n return\n }\n }\n\n if (timeout !== void 0) {\n clearTimeout(timeout)\n timeout = void 0\n }\n\n Plugin.isActive = false\n }\n },\n\n setDefaults (opts) {\n if (__QUASAR_SSR_SERVER__ !== true) {\n isObject(opts) === true && Object.assign(defaults, opts)\n }\n },\n\n install ({ $q }) {\n $q.loading = this\n\n if (__QUASAR_SSR_SERVER__ !== true && $q.config.loading !== void 0) {\n this.setDefaults($q.config.loading)\n }\n }\n})\n\nexport default Plugin\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 { 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 { defineComponent, markRaw } from 'vue'\n\nexport const createComponent = raw => markRaw(defineComponent(raw))\nexport const createDirective = raw => markRaw(raw)\n","\nimport { reactive } from 'vue'\nimport { injectProp } from './inject-obj-prop'\n\nexport default __QUASAR_SSR_SERVER__\n ? (state, plugin) => {\n Object.assign(plugin, state)\n return plugin\n }\n : (state, plugin) => {\n const reactiveState = reactive(state)\n\n for (const name in state) {\n injectProp(\n plugin,\n name,\n () => reactiveState[ name ],\n val => { reactiveState[ name ] = val }\n )\n }\n\n return plugin\n }\n","\nexport const globalConfig = {}\nexport let globalConfigIsFrozen = false\n\nexport function freezeGlobalConfig () {\n globalConfigIsFrozen = true\n}\n","import { globalConfig } from './global-config.js'\n\nconst globalNodes = []\nlet target = __QUASAR_SSR_SERVER__\n ? void 0\n : document.body\n\nexport function createGlobalNode (id) {\n const el = document.createElement('div')\n\n if (id !== void 0) {\n el.id = id\n }\n\n if (globalConfig.globalNodes !== void 0) {\n const cls = globalConfig.globalNodes.class\n if (cls !== void 0) {\n el.className = cls\n }\n }\n\n target.appendChild(el)\n globalNodes.push(el)\n\n return el\n}\n\nexport function removeGlobalNode (el) {\n globalNodes.splice(globalNodes.indexOf(el), 1)\n el.remove()\n}\n\nexport function changeGlobalNodesTarget (el) {\n if (el !== target) {\n target = el\n\n globalNodes.forEach(el => {\n if (el.contains(target) === false) {\n target.appendChild(el)\n }\n })\n }\n}\n","export function injectProp (target, propName, get, set) {\n Object.defineProperty(target, propName, {\n get,\n set,\n enumerable: true\n })\n 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","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 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","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","\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","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