{"version":3,"file":"js/4565.d919dccf.js","mappings":"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,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJ,iBAAkB,EAClBC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAA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","sources":["webpack://geoviz-ui/../../../src/components/VApp/VApp.tsx","webpack://geoviz-ui/../../../src/components/VAvatar/VAvatar.tsx","webpack://geoviz-ui/../../../src/components/VBtnGroup/VBtnGroup.tsx","webpack://geoviz-ui/../../../src/components/VBtnToggle/VBtnToggle.tsx","webpack://geoviz-ui/../../../src/components/VCard/VCard.tsx","webpack://geoviz-ui/../../../src/components/VCard/VCardActions.tsx","webpack://geoviz-ui/../../../src/components/VCard/VCardItem.tsx","webpack://geoviz-ui/../../../src/components/VCard/VCardSubtitle.tsx","webpack://geoviz-ui/../../../src/components/VCard/VCardText.tsx","webpack://geoviz-ui/../../../src/components/VCard/VCardTitle.ts","webpack://geoviz-ui/../../../src/components/VSlideGroup/helpers.ts","webpack://geoviz-ui/../../../src/components/VSlideGroup/VSlideGroup.tsx","webpack://geoviz-ui/../../../src/components/VChipGroup/VChipGroup.tsx","webpack://geoviz-ui/../../../src/components/VChip/VChip.tsx","webpack://geoviz-ui/../../../src/components/VDefaultsProvider/VDefaultsProvider.tsx","webpack://geoviz-ui/../../../src/components/VDialog/VDialog.tsx","webpack://geoviz-ui/../../../src/components/VDivider/VDivider.tsx","webpack://geoviz-ui/../../../src/components/VForm/VForm.tsx","webpack://geoviz-ui/../../../src/components/VGrid/VCol.ts","webpack://geoviz-ui/../../../src/components/VGrid/VRow.ts","webpack://geoviz-ui/../../../src/components/VGrid/VSpacer.ts","webpack://geoviz-ui/../../../src/components/VIcon/VIcon.tsx","webpack://geoviz-ui/../../../src/components/VResponsive/VResponsive.tsx","webpack://geoviz-ui/../../../src/components/VImg/VImg.tsx","webpack://geoviz-ui/../../../src/components/VInput/InputIcon.tsx","webpack://geoviz-ui/../../../src/components/VInput/VInput.tsx","webpack://geoviz-ui/../../../src/components/VLabel/VLabel.tsx","webpack://geoviz-ui/../../../src/components/VList/VListGroup.tsx","webpack://geoviz-ui/../../../src/components/VList/VListChildren.tsx","webpack://geoviz-ui/../../../src/components/VList/VList.tsx","webpack://geoviz-ui/../../../src/components/VList/VListItem.tsx","webpack://geoviz-ui/../../../src/components/VList/VListItemSubtitle.tsx","webpack://geoviz-ui/../../../src/components/VList/VListItemTitle.ts","webpack://geoviz-ui/../../../src/components/VList/VListSubheader.tsx","webpack://geoviz-ui/../../../src/components/VList/list.ts","webpack://geoviz-ui/../../../src/components/VMenu/shared.ts","webpack://geoviz-ui/../../../src/components/VMessages/VMessages.tsx","webpack://geoviz-ui/../../../../src/components/VOverlay/util/point.ts","webpack://geoviz-ui/../../src/util/isFixedPosition.ts","webpack://geoviz-ui/../../../src/components/VOverlay/locationStrategies.ts","webpack://geoviz-ui/../../../src/components/VOverlay/requestNewFrame.ts","webpack://geoviz-ui/../../../src/components/VOverlay/scrollStrategies.ts","webpack://geoviz-ui/../../src/util/bindProps.ts","webpack://geoviz-ui/../../../src/components/VOverlay/useActivator.tsx","webpack://geoviz-ui/../../src/composables/hydration.ts","webpack://geoviz-ui/../../src/composables/stack.ts","webpack://geoviz-ui/../../src/composables/teleport.ts","webpack://geoviz-ui/../../src/util/dom.ts","webpack://geoviz-ui/../../../src/directives/click-outside/index.ts","webpack://geoviz-ui/../../../src/components/VOverlay/VOverlay.tsx","webpack://geoviz-ui/../../../src/components/VProgressCircular/VProgressCircular.tsx","webpack://geoviz-ui/../../../src/components/VProgressLinear/VProgressLinear.tsx","webpack://geoviz-ui/../../../src/components/VSelectionControl/VSelectionControl.tsx","webpack://geoviz-ui/../../../src/components/VCounter/VCounter.tsx","webpack://geoviz-ui/../../../src/components/VField/VFieldLabel.tsx","webpack://geoviz-ui/../../../src/components/VField/VField.tsx","webpack://geoviz-ui/../../../src/components/VTextField/VTextField.tsx","webpack://geoviz-ui/../../../src/components/VTooltip/VTooltip.tsx","webpack://geoviz-ui/../../../src/components/transitions/createTransition.ts","webpack://geoviz-ui/../../../src/components/transitions/dialog-transition.tsx","webpack://geoviz-ui/../../../src/components/transitions/expand-transition.ts","webpack://geoviz-ui/../../src/composables/border.ts","webpack://geoviz-ui/../../src/composables/color.ts","webpack://geoviz-ui/../../src/composables/component.ts","webpack://geoviz-ui/../../src/util/injectSelf.ts","webpack://geoviz-ui/../../src/composables/defaults.ts","webpack://geoviz-ui/../../src/composables/delay.ts","webpack://geoviz-ui/../../src/composables/density.ts","webpack://geoviz-ui/../../src/composables/dimensions.ts","webpack://geoviz-ui/../../src/composables/display.ts","webpack://geoviz-ui/../../src/composables/elevation.ts","webpack://geoviz-ui/../../src/composables/focus.ts","webpack://geoviz-ui/../../src/composables/form.ts","webpack://geoviz-ui/../../src/composables/forwardRefs.ts","webpack://geoviz-ui/../../src/composables/goto.ts","webpack://geoviz-ui/../../src/composables/group.ts","webpack://geoviz-ui/../../src/iconsets/mdi.ts","webpack://geoviz-ui/../../src/composables/icons.tsx","webpack://geoviz-ui/../../src/composables/intersectionObserver.ts","webpack://geoviz-ui/../../src/composables/lazy.ts","webpack://geoviz-ui/../../src/composables/list-items.ts","webpack://geoviz-ui/../../src/composables/loader.tsx","webpack://geoviz-ui/../../src/locale/en.ts","webpack://geoviz-ui/../../../src/locale/adapters/vuetify.ts","webpack://geoviz-ui/../../src/composables/locale.ts","webpack://geoviz-ui/../../src/composables/location.ts","webpack://geoviz-ui/../../../src/composables/nested/activeStrategies.ts","webpack://geoviz-ui/../../../src/composables/nested/openStrategies.ts","webpack://geoviz-ui/../../../src/composables/nested/selectStrategies.ts","webpack://geoviz-ui/../../../src/composables/nested/nested.ts","webpack://geoviz-ui/../../src/composables/position.ts","webpack://geoviz-ui/../../src/composables/proxiedModel.ts","webpack://geoviz-ui/../../src/composables/resizeObserver.ts","webpack://geoviz-ui/../../src/composables/rounded.ts","webpack://geoviz-ui/../../src/composables/router.tsx","webpack://geoviz-ui/../../src/composables/scopeId.ts","webpack://geoviz-ui/../../src/composables/selectLink.ts","webpack://geoviz-ui/../../src/composables/size.ts","webpack://geoviz-ui/../../src/composables/ssrBoot.ts","webpack://geoviz-ui/../../src/composables/tag.ts","webpack://geoviz-ui/../../src/composables/toggleScope.ts","webpack://geoviz-ui/../../src/composables/transition.ts","webpack://geoviz-ui/../../src/composables/validation.ts","webpack://geoviz-ui/../../src/composables/variant.tsx","webpack://geoviz-ui/../../../src/directives/intersect/index.ts","webpack://geoviz-ui/../../../../src/composables/date/adapters/vuetify.ts","webpack://geoviz-ui/../../../src/composables/date/date.ts","webpack://geoviz-ui/../src/framework.ts","webpack://geoviz-ui/../../src/iconsets/mdi-svg.ts","webpack://geoviz-ui/../../src/util/animation.ts","webpack://geoviz-ui/../../src/util/box.ts","webpack://geoviz-ui/../../../src/util/color/APCA.ts","webpack://geoviz-ui/../../../src/util/color/transformCIELAB.ts","webpack://geoviz-ui/../../../src/util/color/transformSRGB.ts","webpack://geoviz-ui/../../src/util/colorUtils.ts","webpack://geoviz-ui/../../src/util/console.ts","webpack://geoviz-ui/../../src/util/createSimpleFunctional.ts","webpack://geoviz-ui/../../src/util/defineComponent.tsx","webpack://geoviz-ui/../../src/util/easing.ts","webpack://geoviz-ui/../../src/util/getCurrentInstance.ts","webpack://geoviz-ui/../../src/util/getScrollParent.ts","webpack://geoviz-ui/../../src/util/globals.ts","webpack://geoviz-ui/../../src/util/propsFactory.ts","webpack://geoviz-ui/../../src/util/useRender.ts"],"sourcesContent":["// Styles\nimport './VApp.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\nimport { useRtl } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVAppProps = propsFactory({\n ...makeComponentProps(),\n ...makeLayoutProps({ fullHeight: true }),\n ...makeThemeProps(),\n}, 'VApp')\n\nexport const VApp = genericComponent()({\n name: 'VApp',\n\n props: makeVAppProps(),\n\n setup (props, { slots }) {\n const theme = provideTheme(props)\n const { layoutClasses, getLayoutItem, items, layoutRef } = createLayout(props)\n const { rtlClasses } = useRtl()\n\n useRender(() => (\n \n
\n { slots.default?.() }\n
\n \n ))\n\n return {\n getLayoutItem,\n items,\n theme,\n }\n },\n})\n\nexport type VApp = InstanceType\n","// Styles\nimport './VAvatar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVAvatarProps = propsFactory({\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n image: String,\n text: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n}, 'VAvatar')\n\nexport const VAvatar = genericComponent()({\n name: 'VAvatar',\n\n props: makeVAvatarProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n\n useRender(() => (\n \n { !slots.default ? (\n props.image\n ? ()\n : props.icon\n ? ()\n : props.text\n ) : (\n \n { slots.default() }\n \n )}\n\n { genOverlays(false, 'v-avatar') }\n \n ))\n\n return {}\n },\n})\n\nexport type VAvatar = InstanceType\n","// Styles\nimport './VBtnGroup.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVBtnGroupProps = propsFactory({\n baseColor: String,\n divided: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps(),\n}, 'VBtnGroup')\n\nexport const VBtnGroup = genericComponent()({\n name: 'VBtnGroup',\n\n props: makeVBtnGroupProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBtn: {\n height: 'auto',\n baseColor: toRef(props, 'baseColor'),\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n flat: true,\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n return (\n \n )\n })\n },\n})\n\nexport type VBtnGroup = InstanceType\n","// Styles\nimport './VBtnToggle.sass'\n\n// Components\nimport { makeVBtnGroupProps, VBtnGroup } from '@/components/VBtnGroup/VBtnGroup'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport type BtnToggleSlotProps = 'isSelected' | 'select' | 'selected' | 'next' | 'prev'\nexport interface DefaultBtnToggleSlot extends Pick {}\n\nexport const VBtnToggleSymbol: InjectionKey = Symbol.for('vuetify:v-btn-toggle')\n\ntype VBtnToggleSlots = {\n default: DefaultBtnToggleSlot\n}\n\nexport const makeVBtnToggleProps = propsFactory({\n ...makeVBtnGroupProps(),\n ...makeGroupProps(),\n}, 'VBtnToggle')\n\nexport const VBtnToggle = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VBtnToggleSlots,\n) => GenericProps>()({\n name: 'VBtnToggle',\n\n props: makeVBtnToggleProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isSelected, next, prev, select, selected } = useGroup(props, VBtnToggleSymbol)\n\n useRender(() => {\n const btnGroupProps = VBtnGroup.filterProps(props)\n\n return (\n \n { slots.default?.({\n isSelected,\n next,\n prev,\n select,\n selected,\n })}\n \n )\n })\n\n return {\n next,\n prev,\n select,\n }\n },\n})\n\nexport type VBtnToggle = InstanceType\n","/* eslint-disable complexity */\n\n// Styles\nimport './VCard.sass'\n\n// Components\nimport { VCardActions } from './VCardActions'\nimport { VCardItem } from './VCardItem'\nimport { VCardText } from './VCardText'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCardItemSlots } from './VCardItem'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport const makeVCardProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: {\n type: Boolean,\n default: undefined,\n },\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n subtitle: [String, Number],\n text: [String, Number],\n title: [String, Number],\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n}, 'VCard')\n\nexport type VCardSlots = VCardItemSlots & {\n default: never\n actions: never\n text: never\n loader: LoaderSlotProps\n image: never\n item: never\n}\n\nexport const VCard = genericComponent()({\n name: 'VCard',\n\n directives: { Ripple },\n\n props: makeVCardProps(),\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const link = useLink(props, attrs)\n\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value)\n )\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = !!(slots.title || props.title != null)\n const hasSubtitle = !!(slots.subtitle || props.subtitle != null)\n const hasHeader = hasTitle || hasSubtitle\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon)\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon)\n const hasImage = !!(slots.image || props.image)\n const hasCardItem = hasHeader || hasPrepend || hasAppend\n const hasText = !!(slots.text || props.text != null)\n\n return (\n \n { hasImage && (\n
\n { !slots.image ? (\n \n ) : (\n \n )}\n
\n )}\n\n \n\n { hasCardItem && (\n \n {{\n default: slots.item,\n prepend: slots.prepend,\n title: slots.title,\n subtitle: slots.subtitle,\n append: slots.append,\n }}\n \n )}\n\n { hasText && (\n \n { slots.text?.() ?? props.text }\n \n )}\n\n { slots.default?.() }\n\n { slots.actions && (\n \n )}\n\n { genOverlays(isClickable.value, 'v-card') }\n \n )\n })\n\n return {}\n },\n})\n\nexport type VCard = InstanceType\n","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\nexport const VCardActions = genericComponent()({\n name: 'VCardActions',\n\n props: makeComponentProps(),\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n slim: true,\n variant: 'text',\n },\n })\n\n useRender(() => (\n \n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VCardActions = InstanceType\n","// Components\nimport { VCardSubtitle } from './VCardSubtitle'\nimport { VCardTitle } from './VCardTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VCardItemSlots = {\n default: never\n prepend: never\n append: never\n title: never\n subtitle: never\n}\n\nexport const makeCardItemProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: [String, Number],\n title: [String, Number],\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n}, 'VCardItem')\n\nexport const VCardItem = genericComponent()({\n name: 'VCardItem',\n\n props: makeCardItemProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasTitle = !!(props.title != null || slots.title)\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle)\n\n return (\n \n { hasPrepend && (\n
\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n \n )}\n\n { props.prependIcon && (\n \n )}\n \n ) : (\n \n )}\n
\n )}\n\n
\n { hasTitle && (\n \n { slots.title?.() ?? props.title }\n \n )}\n\n { hasSubtitle && (\n \n { slots.subtitle?.() ?? props.subtitle }\n \n )}\n\n { slots.default?.() }\n
\n\n { hasAppend && (\n
\n { !slots.append ? (\n <>\n { props.appendIcon && (\n \n )}\n\n { props.appendAvatar && (\n \n )}\n \n ) : (\n \n )}\n
\n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VCardItem = InstanceType\n","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVCardSubtitleProps = propsFactory({\n opacity: [Number, String],\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VCardSubtitle')\n\nexport const VCardSubtitle = genericComponent()({\n name: 'VCardSubtitle',\n\n props: makeVCardSubtitleProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VCardSubtitle = InstanceType\n","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVCardTextProps = propsFactory({\n opacity: [Number, String],\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VCardText')\n\nexport const VCardText = genericComponent()({\n name: 'VCardText',\n\n props: makeVCardTextProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VCardText = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VCardTitle = createSimpleFunctional('v-card-title')\n\nexport type VCardTitle = InstanceType\n","export function calculateUpdatedTarget ({\n selectedElement,\n containerElement,\n isRtl,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerElement: HTMLElement\n isRtl: boolean\n isHorizontal: boolean\n}): number {\n const containerSize = getOffsetSize(isHorizontal, containerElement)\n const scrollPosition = getScrollPosition(isHorizontal, isRtl, containerElement)\n\n const childrenSize = getOffsetSize(isHorizontal, selectedElement)\n const childrenStartPosition = getOffsetPosition(isHorizontal, selectedElement)\n\n const additionalOffset = childrenSize * 0.4\n\n if (scrollPosition > childrenStartPosition) {\n return childrenStartPosition - additionalOffset\n } else if (scrollPosition + containerSize < childrenStartPosition + childrenSize) {\n return childrenStartPosition - containerSize + childrenSize + additionalOffset\n }\n\n return scrollPosition\n}\n\nexport function calculateCenteredTarget ({\n selectedElement,\n containerElement,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerElement: HTMLElement\n isHorizontal: boolean\n}): number {\n const containerOffsetSize = getOffsetSize(isHorizontal, containerElement)\n const childrenOffsetPosition = getOffsetPosition(isHorizontal, selectedElement)\n const childrenOffsetSize = getOffsetSize(isHorizontal, selectedElement)\n\n return childrenOffsetPosition - (containerOffsetSize / 2) + (childrenOffsetSize / 2)\n}\n\nexport function getScrollSize (isHorizontal: boolean, element?: HTMLElement) {\n const key = isHorizontal ? 'scrollWidth' : 'scrollHeight'\n return element?.[key] || 0\n}\n\nexport function getClientSize (isHorizontal: boolean, element?: HTMLElement) {\n const key = isHorizontal ? 'clientWidth' : 'clientHeight'\n return element?.[key] || 0\n}\n\nexport function getScrollPosition (isHorizontal: boolean, rtl: boolean, element?: HTMLElement) {\n if (!element) {\n return 0\n }\n\n const {\n scrollLeft,\n offsetWidth,\n scrollWidth,\n } = element\n\n if (isHorizontal) {\n return rtl\n ? scrollWidth - offsetWidth + scrollLeft\n : scrollLeft\n }\n\n return element.scrollTop\n}\n\nexport function getOffsetSize (isHorizontal: boolean, element?: HTMLElement) {\n const key = isHorizontal ? 'offsetWidth' : 'offsetHeight'\n return element?.[key] || 0\n}\n\nexport function getOffsetPosition (isHorizontal: boolean, element?: HTMLElement) {\n const key = isHorizontal ? 'offsetLeft' : 'offsetTop'\n return element?.[key] || 0\n}\n","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useGoTo } from '@/composables/goto'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport {\n calculateCenteredTarget,\n calculateUpdatedTarget,\n getClientSize,\n getOffsetSize,\n getScrollPosition,\n getScrollSize,\n} from './helpers'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport const VSlideGroupSymbol: InjectionKey = Symbol.for('vuetify:v-slide-group')\n\ninterface SlideGroupSlot {\n next: GroupProvide['next']\n prev: GroupProvide['prev']\n select: GroupProvide['select']\n isSelected: GroupProvide['isSelected']\n}\n\ntype VSlideGroupSlots = {\n default: SlideGroupSlot\n prev: SlideGroupSlot\n next: SlideGroupSlot\n}\n\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n\n ...makeComponentProps(),\n ...makeDisplayProps({ mobile: null }),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n}, 'VSlideGroup')\n\nexport const VSlideGroup = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VSlideGroupSlots,\n) => GenericProps>()({\n name: 'VSlideGroup',\n\n props: makeVSlideGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { displayClasses, mobile } = useDisplay(props)\n const group = useGroup(props, props.symbol)\n const isOverflowing = shallowRef(false)\n const scrollOffset = shallowRef(0)\n const containerSize = shallowRef(0)\n const contentSize = shallowRef(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const { resizeRef: contentRef, contentRect } = useResizeObserver()\n\n const goTo = useGoTo()\n const goToOptions = computed>(() => {\n return {\n container: containerRef.el,\n duration: 200,\n easing: 'easeOutQuart',\n }\n })\n\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[0])\n })\n\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1])\n })\n\n if (IN_BROWSER) {\n let frame = -1\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRect.value[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n }\n\n if (firstSelectedIndex.value >= 0 && contentRef.el) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.el.children[lastSelectedIndex.value] as HTMLElement\n\n scrollToChildren(selectedElement, props.centerActive)\n }\n })\n })\n }\n\n const isFocused = shallowRef(false)\n\n function scrollToChildren (children: HTMLElement, center?: boolean) {\n let target = 0\n\n if (center) {\n target = calculateCenteredTarget({\n containerElement: containerRef.el!,\n isHorizontal: isHorizontal.value,\n selectedElement: children,\n })\n } else {\n target = calculateUpdatedTarget({\n containerElement: containerRef.el!,\n isHorizontal: isHorizontal.value,\n isRtl: isRtl.value,\n selectedElement: children,\n })\n }\n\n scrollToPosition(target)\n }\n\n function scrollToPosition (newPosition: number) {\n if (!IN_BROWSER || !containerRef.el) return\n\n const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el)\n const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el)\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el)\n\n if (\n scrollSize <= offsetSize ||\n // Prevent scrolling by only a couple of pixels, which doesn't look smooth\n Math.abs(newPosition - scrollPosition) < 16\n ) return\n\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.el!\n\n newPosition = (scrollWidth - containerWidth) - newPosition\n }\n\n if (isHorizontal.value) {\n goTo.horizontal(newPosition, goToOptions.value)\n } else {\n goTo(newPosition, goToOptions.value)\n }\n }\n\n function onScroll (e: Event) {\n const { scrollTop, scrollLeft } = e.target as HTMLElement\n\n scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.el) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.el.children) {\n if (item === el) {\n scrollToChildren(item as HTMLElement)\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren\n let ignoreFocusEvent = false\n function onFocus (e: FocusEvent) {\n if (\n !ignoreFocusEvent &&\n !isFocused.value &&\n !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget as Node))\n ) focus()\n\n ignoreFocusEvent = false\n }\n\n function onFocusAffixes () {\n ignoreFocusEvent = true\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.el) return\n\n function toFocus (location: Parameters[0]) {\n e.preventDefault()\n focus(location)\n }\n\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n toFocus(isRtl.value ? 'prev' : 'next')\n } else if (e.key === 'ArrowLeft') {\n toFocus(isRtl.value ? 'next' : 'prev')\n }\n } else {\n if (e.key === 'ArrowDown') {\n toFocus('next')\n } else if (e.key === 'ArrowUp') {\n toFocus('prev')\n }\n }\n\n if (e.key === 'Home') {\n toFocus('first')\n } else if (e.key === 'End') {\n toFocus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.el) return\n\n let el: HTMLElement | undefined\n\n if (!location) {\n const focusable = focusableChildren(contentRef.el)\n el = focusable[0]\n } else if (location === 'next') {\n el = contentRef.el.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n\n if (!el) return focus('first')\n } else if (location === 'prev') {\n el = contentRef.el.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n\n if (!el) return focus('last')\n } else if (location === 'first') {\n el = (contentRef.el.firstElementChild as HTMLElement)\n } else if (location === 'last') {\n el = (contentRef.el.lastElementChild as HTMLElement)\n }\n\n if (el) {\n el.focus({ preventScroll: true })\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const direction = isHorizontal.value && isRtl.value ? -1 : 1\n\n const offsetStep = (location === 'prev' ? -direction : direction) * containerSize.value\n\n let newPosition = scrollOffset.value + offsetStep\n\n // TODO: improve it\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.el!\n\n newPosition += scrollWidth - containerWidth\n }\n\n scrollToPosition(newPosition)\n }\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n // 1 pixel in reserve, may be lost after rounding\n return Math.abs(scrollOffset.value) > 1\n })\n\n const hasNext = computed(() => {\n if (!containerRef.value) return false\n\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el)\n const clientSize = getClientSize(isHorizontal.value, containerRef.el)\n\n const scrollSizeMax = scrollSize - clientSize\n\n // 1 pixel in reserve, may be lost after rounding\n return scrollSizeMax - Math.abs(scrollOffset.value) > 1\n })\n\n useRender(() => (\n \n { hasAffixes.value && (\n hasPrev.value && scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n \n \n \n )}\n \n )}\n\n \n \n { slots.default?.(slotProps.value) }\n \n \n\n { hasAffixes.value && (\n hasNext.value && scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n \n \n \n )}\n \n )}\n \n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n hasPrev,\n hasNext,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType\n","// Styles\nimport './VChipGroup.sass'\n\n// Components\nimport { makeVSlideGroupProps, VSlideGroup } from '@/components/VSlideGroup/VSlideGroup'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { deepEqual, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group')\n\nexport const makeVChipGroupProps = propsFactory({\n column: Boolean,\n filter: Boolean,\n valueComparator: {\n type: Function as PropType,\n default: deepEqual,\n },\n\n ...makeVSlideGroupProps(),\n ...makeComponentProps(),\n ...makeGroupProps({ selectedClass: 'v-chip--selected' }),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n}, 'VChipGroup')\n\ntype VChipGroupSlots = {\n default: {\n isSelected: (id: number) => boolean\n select: (id: number, value: boolean) => void\n next: () => void\n prev: () => void\n selected: readonly number[]\n }\n}\n\nexport const VChipGroup = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VChipGroupSlots,\n) => GenericProps>()({\n name: 'VChipGroup',\n\n props: makeVChipGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VChipGroupSymbol)\n\n provideDefaults({\n VChip: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n filter: toRef(props, 'filter'),\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props)\n\n return (\n \n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n })}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VChipGroup = InstanceType\n","/* eslint-disable complexity */\n// Styles\nimport './VChip.sass'\n\n// Components\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VChipSlots = {\n default: {\n isSelected: boolean | undefined\n selectedClass: boolean | (string | undefined)[] | undefined\n select: ((value: boolean) => void) | undefined\n toggle: (() => void) | undefined\n value: unknown\n disabled: boolean\n }\n label: never\n prepend: never\n append: never\n close: never\n filter: never\n}\n\nexport const makeVChipProps = propsFactory({\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: {\n type: Boolean,\n default: undefined,\n },\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n onClick: EventProp<[MouseEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n}, 'VChip')\n\nexport const VChip = genericComponent()({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: makeVChipProps(),\n\n emits: {\n 'click:close': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n 'group:selected': (val: { value: boolean }) => true,\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { themeClasses } = provideTheme(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const link = useLink(props, attrs)\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (!!group || props.link || link.isClickable.value)\n )\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n isActive.value = false\n\n emit('click:close', e)\n },\n }))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n group?.toggle()\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppendMedia = !!(props.appendIcon || props.appendAvatar)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrependMedia = !!(props.prependIcon || props.prependAvatar)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n const hasColor = !group || group.isSelected.value\n\n return isActive.value && (\n \n { genOverlays(isClickable.value, 'v-chip') }\n\n { hasFilter && (\n \n \n { !slots.filter ? (\n \n ) : (\n \n )}\n \n \n )}\n\n { hasPrepend && (\n
\n { !slots.prepend ? (\n <>\n { props.prependIcon && (\n \n )}\n\n { props.prependAvatar && (\n \n )}\n \n ) : (\n \n )}\n
\n )}\n\n
\n { slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled,\n }) ?? props.text }\n
\n\n { hasAppend && (\n
\n { !slots.append ? (\n <>\n { props.appendIcon && (\n \n )}\n\n { props.appendAvatar && (\n \n )}\n \n ) : (\n \n )}\n
\n )}\n\n { hasClose && (\n \n { !slots.close ? (\n \n ) : (\n \n )}\n \n )}\n \n )\n }\n },\n})\n\nexport type VChip = InstanceType\n","// Composables\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { toRefs } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DefaultsOptions } from '@/composables/defaults'\n\nexport const makeVDefaultsProviderProps = propsFactory({\n defaults: Object as PropType,\n disabled: Boolean,\n reset: [Number, String],\n root: [Boolean, String],\n scoped: Boolean,\n}, 'VDefaultsProvider')\n\nexport const VDefaultsProvider = genericComponent(false)({\n name: 'VDefaultsProvider',\n\n props: makeVDefaultsProviderProps(),\n\n setup (props, { slots }) {\n const { defaults, disabled, reset, root, scoped } = toRefs(props)\n\n provideDefaults(defaults, {\n reset,\n root,\n scoped,\n disabled,\n })\n\n return () => slots.default?.()\n },\n})\n\nexport type VDefaultsProvider = InstanceType\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { mergeProps, nextTick, ref, watch } from 'vue'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVDialogProps = propsFactory({\n fullscreen: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n\n ...makeVOverlayProps({\n origin: 'center center' as const,\n scrollStrategy: 'block' as const,\n transition: { component: VDialogTransition as Component },\n zIndex: 2400,\n }),\n}, 'VDialog')\n\nexport const VDialog = genericComponent()({\n name: 'VDialog',\n\n props: makeVDialogProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n afterLeave: () => true,\n },\n\n setup (props, { emit, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const overlay = ref()\n function onFocusin (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n if (\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost dialog\n overlay.value?.globalTop &&\n // It isn't the document or the dialog body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the dialog body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n\n if (!focusable.length) return\n\n const firstElement = focusable[0]\n const lastElement = focusable[focusable.length - 1]\n\n if (before === firstElement) {\n lastElement.focus()\n } else {\n firstElement.focus()\n }\n }\n }\n\n if (IN_BROWSER) {\n watch(() => isActive.value && props.retainFocus, val => {\n val\n ? document.addEventListener('focusin', onFocusin)\n : document.removeEventListener('focusin', onFocusin)\n }, { immediate: true })\n }\n\n function onAfterEnter () {\n if (overlay.value?.contentEl && !overlay.value.contentEl.contains(document.activeElement)) {\n overlay.value.contentEl.focus({ preventScroll: true })\n }\n }\n\n function onAfterLeave () {\n emit('afterLeave')\n }\n\n watch(isActive, async val => {\n if (!val) {\n await nextTick()\n overlay.value!.activatorEl?.focus({ preventScroll: true })\n }\n })\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n const activatorProps = mergeProps({\n 'aria-haspopup': 'dialog',\n 'aria-expanded': String(isActive.value),\n }, props.activatorProps)\n const contentProps = mergeProps({\n tabindex: -1,\n }, props.contentProps)\n\n return (\n \n {{\n activator: slots.activator,\n default: (...args) => (\n \n { slots.default?.(...args) }\n \n ),\n }}\n \n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VDialog = InstanceType\n","// Styles\nimport './VDivider.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\ntype DividerKey = 'borderRightWidth' | 'borderTopWidth' | 'height' | 'width'\ntype DividerStyles = Partial>\n\nexport const makeVDividerProps = propsFactory({\n color: String,\n inset: Boolean,\n length: [Number, String],\n opacity: [Number, String],\n thickness: [Number, String],\n vertical: Boolean,\n\n ...makeComponentProps(),\n ...makeThemeProps(),\n}, 'VDivider')\n\nexport const VDivider = genericComponent()({\n name: 'VDivider',\n\n props: makeVDividerProps(),\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const dividerStyles = computed(() => {\n const styles: DividerStyles = {}\n\n if (props.length) {\n styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length)\n }\n\n if (props.thickness) {\n styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness)\n }\n\n return styles\n })\n\n useRender(() => {\n const divider = (\n \n )\n\n if (!slots.default) return divider\n\n return (\n \n { divider }\n\n
\n { slots.default() }\n
\n\n { divider }\n \n )\n })\n\n return {}\n },\n})\n\nexport type VDivider = InstanceType\n","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { createForm, makeFormProps } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { SubmitEventPromise } from '@/composables/form'\n\nexport const makeVFormProps = propsFactory({\n ...makeComponentProps(),\n ...makeFormProps(),\n}, 'VForm')\n\ntype VFormSlots = {\n default: ReturnType\n}\n\nexport const VForm = genericComponent()({\n name: 'VForm',\n\n props: makeVFormProps(),\n\n emits: {\n 'update:modelValue': (val: boolean | null) => true,\n submit: (e: SubmitEventPromise) => true,\n },\n\n setup (props, { slots, emit }) {\n const form = createForm(props)\n const formRef = ref()\n\n function onReset (e: Event) {\n e.preventDefault()\n form.reset()\n }\n\n function onSubmit (_e: Event) {\n const e = _e as SubmitEventPromise\n\n const ready = form.validate()\n e.then = ready.then.bind(ready)\n e.catch = ready.catch.bind(ready)\n e.finally = ready.finally.bind(ready)\n\n emit('submit', e)\n\n if (!e.defaultPrevented) {\n ready.then(({ valid }) => {\n if (valid) {\n formRef.value?.submit()\n }\n })\n }\n\n e.preventDefault()\n }\n\n useRender(() => ((\n \n { slots.default?.(form) }\n \n )))\n\n return forwardRefs(form, formRef)\n },\n})\n\nexport type VForm = InstanceType\n","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { breakpoints } from '@/composables/display'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\nimport type { Breakpoint } from '@/composables/display'\n\ntype BreakpointOffset = `offset${Capitalize}`\ntype BreakpointOrder = `order${Capitalize}`\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Record>)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n const offsetKey = ('offset' + capitalize(val)) as BreakpointOffset\n props[offsetKey] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record>)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n const orderKey = ('order' + capitalize(val)) as BreakpointOrder\n props[orderKey] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record>)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className: string = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n if (type === 'col') {\n className = 'v-' + className\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .v-col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nconst ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch'] as const\n\nexport const makeVColProps = propsFactory({\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String as PropType,\n default: null,\n validator: (str: any) => ALIGN_SELF_VALUES.includes(str),\n },\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VCol')\n\nexport const VCol = genericComponent()({\n name: 'VCol',\n\n props: makeVColProps(),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('v-col-'))\n\n classList.push({\n // Default to .v-col if no other col-{bp}-* classes generated nor `cols` specified.\n 'v-col': !hasColClasses || !props.cols,\n [`v-col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: [\n classes.value,\n props.class,\n ],\n style: props.style,\n }, slots.default?.())\n },\n})\n\nexport type VCol = InstanceType\n","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { breakpoints } from '@/composables/display'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\nimport type { Breakpoint } from '@/composables/display'\n\nconst ALIGNMENT = ['start', 'end', 'center'] as const\n\ntype BreakpointAlign = `align${Capitalize}`\ntype BreakpointJustify = `justify${Capitalize}`\ntype BreakpointAlignContent = `alignContent${Capitalize}`\n\nconst SPACE = ['space-between', 'space-around', 'space-evenly'] as const\n\nfunction makeRowProps <\n Name extends BreakpointAlign | BreakpointJustify | BreakpointAlignContent,\n Type,\n> (prefix: string, def: () => Prop) {\n return breakpoints.reduce((props, val) => {\n const prefixKey = prefix + capitalize(val) as Name\n props[prefixKey] = def()\n return props\n }, {} as Record>)\n}\n\nconst ALIGN_VALUES = [...ALIGNMENT, 'baseline', 'stretch'] as const\ntype AlignValue = typeof ALIGN_VALUES[number]\nconst alignValidator = (str: any) => ALIGN_VALUES.includes(str)\nconst alignProps = makeRowProps('align', () => ({\n type: String as PropType,\n default: null,\n validator: alignValidator,\n}))\n\nconst JUSTIFY_VALUES = [...ALIGNMENT, ...SPACE] as const\ntype JustifyValue = typeof JUSTIFY_VALUES[number]\nconst justifyValidator = (str: any) => JUSTIFY_VALUES.includes(str)\nconst justifyProps = makeRowProps('justify', () => ({\n type: String as PropType,\n default: null,\n validator: justifyValidator,\n}))\n\nconst ALIGN_CONTENT_VALUES = [...ALIGNMENT, ...SPACE, 'stretch'] as const\ntype AlignContentValue = typeof ALIGN_CONTENT_VALUES[number]\nconst alignContentValidator = (str: any) => ALIGN_CONTENT_VALUES.includes(str)\nconst alignContentProps = makeRowProps('alignContent', () => ({\n type: String as PropType,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport const makeVRowProps = propsFactory({\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String as PropType,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String as PropType,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String as PropType,\n default: null,\n validator: alignContentValidator,\n },\n\n ...alignContentProps,\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VRow')\n\nexport const VRow = genericComponent()({\n name: 'VRow',\n\n props: makeVRowProps(),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: [\n 'v-row',\n classes.value,\n props.class,\n ],\n style: props.style,\n }, slots.default?.())\n },\n})\n\nexport type VRow = InstanceType\n","// Styles\nimport './VGrid.sass'\n\n// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer')\n\nexport type VSpacer = InstanceType\n","// Styles\nimport './VIcon.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue, useIcon } from '@/composables/icons'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, Text, toRef } from 'vue'\nimport { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVIconProps = propsFactory({\n color: String,\n disabled: Boolean,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'i' }),\n ...makeThemeProps(),\n}, 'VIcon')\n\nexport const VIcon = genericComponent()({\n name: 'VIcon',\n\n props: makeVIconProps(),\n\n setup (props, { attrs, slots }) {\n const slotIcon = ref()\n\n const { themeClasses } = provideTheme(props)\n const { iconData } = useIcon(computed(() => slotIcon.value || props.icon))\n const { sizeClasses } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => {\n const slotValue = slots.default?.()\n if (slotValue) {\n slotIcon.value = flattenFragments(slotValue).filter(node =>\n node.type === Text && node.children && typeof node.children === 'string'\n )[0]?.children as string\n }\n const hasClick = !!(attrs.onClick || attrs.onClickOnce)\n\n return (\n \n { slotValue }\n \n )\n })\n\n return {}\n },\n})\n\nexport type VIcon = InstanceType\n","// Styles\nimport './VResponsive.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VResponsiveSlots = {\n default: never\n additional: never\n}\n\nexport function useAspectStyles (props: { aspectRatio?: string | number }) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio)\n\n return ratio\n ? { paddingBottom: String(1 / ratio * 100) + '%' }\n : undefined\n }),\n }\n}\n\nexport const makeVResponsiveProps = propsFactory({\n aspectRatio: [String, Number],\n contentClass: null,\n inline: Boolean,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n}, 'VResponsive')\n\nexport const VResponsive = genericComponent()({\n name: 'VResponsive',\n\n props: makeVResponsiveProps(),\n\n setup (props, { slots }) {\n const { aspectStyles } = useAspectStyles(props)\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => (\n \n
\n\n { slots.additional?.() }\n\n { slots.default && (\n
{ slots.default() }
\n )}\n
\n ))\n\n return {}\n },\n})\n\nexport type VResponsive = InstanceType\n","// Styles\nimport './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n ref,\n shallowRef,\n toRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getCurrentInstance,\n propsFactory,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: never\n placeholder: never\n error: never\n sources: never\n}\n\nexport const makeVImgProps = propsFactory({\n absolute: Boolean,\n alt: String,\n cover: Boolean,\n color: String,\n draggable: {\n type: [Boolean, String] as PropType,\n default: undefined,\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType,\n default: '',\n },\n crossorigin: String as PropType<'' | 'anonymous' | 'use-credentials'>,\n referrerpolicy: String as PropType<\n | 'no-referrer'\n | 'no-referrer-when-downgrade'\n | 'origin'\n | 'origin-when-cross-origin'\n | 'same-origin'\n | 'strict-origin'\n | 'strict-origin-when-cross-origin'\n | 'unsafe-url'\n >,\n srcset: String,\n position: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeTransitionProps(),\n}, 'VImg')\n\nexport const VImg = genericComponent()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: makeVImgProps(),\n\n emits: {\n loadstart: (value: string | undefined) => true,\n load: (value: string | undefined) => true,\n error: (value: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { roundedClasses } = useRounded(props)\n const vm = getCurrentInstance('VImg')\n\n const currentSrc = shallowRef('') // Set from srcset\n const image = ref()\n const state = shallowRef<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = shallowRef()\n const naturalHeight = shallowRef()\n\n const normalisedSrc = computed(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n setTimeout(() => {\n if (vm.isUnmounted) return\n\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n if (state.value === 'loading') onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n })\n }\n\n function onLoad () {\n if (vm.isUnmounted) return\n\n getSrc()\n pollForSize(image.value!)\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n if (vm.isUnmounted) return\n\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n\n onBeforeUnmount(() => {\n clearTimeout(timer)\n })\n\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n if (vm.isUnmounted) return\n\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n \n )\n\n const sources = slots.sources?.()\n\n return (\n \n {\n withDirectives(\n sources\n ? { sources }{ img }\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n \n )\n }\n\n const __preloadImage = () => (\n \n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n \n )}\n \n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n \n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n
{ slots.placeholder() }
\n }\n
\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n \n { state.value === 'error' &&\n
{ slots.error() }
\n }\n
\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return
\n }\n\n const isBooted = shallowRef(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => {\n const responsiveProps = VResponsive.filterProps(props)\n return (\n {{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n \n ),\n default: slots.default,\n }}\n )\n })\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType\n","// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Types\nimport type { IconValue } from '@/composables/icons'\n\ntype names = 'clear' | 'prepend' | 'append' | 'appendInner' | 'prependInner'\n\ntype EventProp any> = T | T[]\ntype InputIconProps = {\n label: string | undefined\n} & {\n [K in `${T}Icon`]: IconValue | undefined\n} & {\n [K in `onClick:${T}`]: EventProp | undefined\n}\n\ntype Listeners = U extends `onClick:${infer V extends names}` ? V : never\n\nexport function useInputIcon> (props: T & InputIconProps) {\n const { t } = useLocale()\n\n function InputIcon ({ name }: { name: Extract }) {\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendInner: 'appendAction',\n clear: 'clear',\n }[name]\n const listener = props[`onClick:${name}`]\n const label = listener && localeKey\n ? t(`$vuetify.input.${localeKey}`, props.label ?? '')\n : undefined\n\n return (\n \n )\n }\n\n return { InputIcon }\n}\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport { useInputIcon } from '@/components/VInput/InputIcon'\nimport { VMessages } from '@/components/VMessages/VMessages'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, getUid, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { VMessageSlot } from '@/components/VMessages/VMessages'\nimport type { GenericProps } from '@/util'\n\nexport interface VInputSlot {\n id: ComputedRef\n messagesId: ComputedRef\n isDirty: ComputedRef\n isDisabled: ComputedRef\n isReadonly: ComputedRef\n isPristine: Ref\n isValid: ComputedRef\n isValidating: Ref\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n centerAffix: {\n type: Boolean,\n default: true,\n },\n prependIcon: IconValue,\n hideDetails: [Boolean, String] as PropType,\n hideSpinButtons: Boolean,\n hint: String,\n persistentHint: Boolean,\n messages: {\n type: [Array, String] as PropType,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n 'onClick:prepend': EventProp<[MouseEvent]>(),\n 'onClick:append': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...only(makeDimensionProps(), [\n 'maxWidth',\n 'minWidth',\n 'width',\n ]),\n ...makeThemeProps(),\n ...makeValidationProps(),\n}, 'VInput')\n\nexport type VInputSlots = {\n default: VInputSlot\n prepend: VInputSlot\n append: VInputSlot\n details: VInputSlot\n message: VMessageSlot\n}\n\nexport const VInput = genericComponent(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VInputSlots,\n) => GenericProps>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { themeClasses } = provideTheme(props)\n const { rtlClasses } = useRtl()\n const { InputIcon } = useInputIcon(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props, 'v-input', id)\n\n const slotProps = computed(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n const messages = computed(() => {\n if (props.errorMessages?.length || (!isPristine.value && errorMessages.value.length)) {\n return errorMessages.value\n } else if (props.hint && (props.persistentHint || props.focused)) {\n return props.hint\n } else {\n return props.messages\n }\n })\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = messages.value.length > 0\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || !!slots.details)\n )\n\n return (\n \n { hasPrepend && (\n
\n { slots.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n \n )}\n
\n )}\n\n { slots.default && (\n
\n { slots.default?.(slotProps.value) }\n
\n )}\n\n { hasAppend && (\n
\n { props.appendIcon && (\n \n )}\n\n { slots.append?.(slotProps.value) }\n
\n )}\n\n { hasDetails && (\n
\n \n\n { slots.details?.(slotProps.value) }\n
\n )}\n
\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n isValid,\n errorMessages,\n }\n },\n})\n\nexport type VInput = InstanceType\n","// Styles\nimport './VLabel.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeThemeProps } from '@/composables/theme'\n\n// Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVLabelProps = propsFactory({\n text: String,\n\n onClick: EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeThemeProps(),\n}, 'VLabel')\n\nexport const VLabel = genericComponent()({\n name: 'VLabel',\n\n props: makeVLabelProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n { props.text }\n\n { slots.default?.() }\n \n ))\n\n return {}\n },\n})\n\nexport type VLabel = InstanceType\n","// Components\nimport { VExpandTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useList } from './list'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedGroupActivator, useNestedItem } from '@/composables/nested/nested'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VListGroupSlots = {\n default: never\n activator: { isOpen: boolean, props: Record }\n}\n\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n\n setup (_, { slots }) {\n useNestedGroupActivator()\n\n return () => slots.default?.()\n },\n})\n\nexport const makeVListGroupProps = propsFactory({\n /* @deprecated */\n activeColor: String,\n baseColor: String,\n color: String,\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n prependIcon: IconValue,\n appendIcon: IconValue,\n fluid: Boolean,\n subgroup: Boolean,\n title: String,\n value: null,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListGroup')\n\nexport const VListGroup = genericComponent()({\n name: 'VListGroup',\n\n props: makeVListGroupProps(),\n\n setup (props, { slots }) {\n const { isOpen, open, id: _id } = useNestedItem(toRef(props, 'value'), true)\n const id = computed(() => `v-list-group--id-${String(_id.value)}`)\n const list = useList()\n const { isBooted } = useSsrBoot()\n\n function onClick (e: Event) {\n e.stopPropagation()\n open(!isOpen.value, e)\n }\n\n const activatorProps = computed(() => ({\n onClick,\n class: 'v-list-group__header',\n id: id.value,\n }))\n\n const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon)\n const activatorDefaults = computed(() => ({\n VListItem: {\n active: isOpen.value,\n activeColor: props.activeColor,\n baseColor: props.baseColor,\n color: props.color,\n prependIcon: props.prependIcon || (props.subgroup && toggleIcon.value),\n appendIcon: props.appendIcon || (!props.subgroup && toggleIcon.value),\n title: props.title,\n value: props.value,\n },\n }))\n\n useRender(() => (\n \n { slots.activator && (\n \n \n { slots.activator({ props: activatorProps.value, isOpen: isOpen.value }) }\n \n \n )}\n\n \n
\n { slots.default?.() }\n
\n
\n \n ))\n\n return {\n isOpen,\n }\n },\n})\n\nexport type VListGroup = InstanceType\n","// Components\nimport { VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\nimport { VDivider } from '../VDivider'\n\n// Utilities\nimport { createList } from './list'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalListItem } from './VList'\nimport type { VListItemSlots } from './VListItem'\nimport type { GenericProps } from '@/util'\n\nexport type VListChildrenSlots = {\n [K in keyof Omit]: VListItemSlots[K] & { item: T }\n} & {\n default: never\n item: { props: InternalListItem['props'] }\n divider: { props: InternalListItem['props'] }\n subheader: { props: InternalListItem['props'] }\n header: { props: InternalListItem['props'] }\n}\n\nexport const makeVListChildrenProps = propsFactory({\n items: Array as PropType,\n returnObject: Boolean,\n}, 'VListChildren')\n\nexport const VListChildren = genericComponent(\n props: {\n items?: readonly T[]\n returnObject?: boolean\n },\n slots: VListChildrenSlots\n) => GenericProps>()({\n name: 'VListChildren',\n\n props: makeVListChildrenProps(),\n\n setup (props, { slots }) {\n createList()\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type, raw: item }) => {\n if (type === 'divider') {\n return slots.divider?.({ props: itemProps }) ?? (\n \n )\n }\n\n if (type === 'subheader') {\n return slots.subheader?.({ props: itemProps }) ?? (\n \n )\n }\n\n const slotsWithItem = {\n subtitle: slots.subtitle ? (slotProps: any) => slots.subtitle?.({ ...slotProps, item }) : undefined,\n prepend: slots.prepend ? (slotProps: any) => slots.prepend?.({ ...slotProps, item }) : undefined,\n append: slots.append ? (slotProps: any) => slots.append?.({ ...slotProps, item }) : undefined,\n title: slots.title ? (slotProps: any) => slots.title?.({ ...slotProps, item }) : undefined,\n }\n\n const listGroupProps = VListGroup.filterProps(itemProps)\n\n return children ? (\n \n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: props.returnObject ? item : itemProps.value,\n }\n\n return slots.header\n ? slots.header({ props: listItemProps })\n : (\n \n )\n },\n default: () => (\n \n ),\n }}\n \n ) : (\n slots.item ? slots.item({ props: itemProps }) : (\n \n )\n )\n })\n },\n})\n","// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { createList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeItemsProps } from '@/composables/list-items'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue'\nimport { EventProp, focusChild, genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListChildrenSlots } from './VListChildren'\nimport type { ItemProps, ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport interface InternalListItem extends ListItem {\n type?: 'item' | 'subheader' | 'divider'\n}\n\nfunction isPrimitive (value: unknown): value is string | number | boolean {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean'\n}\n\nfunction transformItem (props: ItemProps & { itemType?: string }, item: any): InternalListItem {\n const type = getPropertyFromItem(item, props.itemType, 'item')\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle)\n const value = getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? omit(item, ['children'])\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nfunction transformItems (props: ItemProps & { itemType?: string }, items: (string | object)[]) {\n const array: InternalListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useListItems (props: ItemProps & { itemType?: string }) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n expandIcon: String,\n collapseIcon: String,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n slim: Boolean,\n nav: Boolean,\n\n 'onClick:open': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onClick:select': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onUpdate:opened': EventProp<[]>(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n itemType: {\n type: String,\n default: 'type',\n },\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VList')\n\ntype ItemType = T extends readonly (infer U)[] ? U : never\n\nexport const VList = genericComponent(\n props: {\n items?: T\n itemTitle?: SelectItemKey>\n itemValue?: SelectItemKey>\n itemChildren?: SelectItemKey>\n itemProps?: SelectItemKey>\n selected?: S\n 'onUpdate:selected'?: (value: S) => void\n 'onClick:open'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n 'onClick:select'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n opened?: O\n 'onUpdate:opened'?: (value: O) => void\n },\n slots: VListChildrenSlots>\n) => GenericProps>()({\n name: 'VList',\n\n props: makeVListProps(),\n\n emits: {\n 'update:selected': (value: unknown) => true,\n 'update:activated': (value: unknown) => true,\n 'update:opened': (value: unknown) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:activate': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { children, open, parents, select } = useNested(props)\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(props, 'activeColor')\n const baseColor = toRef(props, 'baseColor')\n const color = toRef(props, 'color')\n\n createList()\n\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(props, 'expandIcon'),\n collapseIcon: toRef(props, 'collapseIcon'),\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n baseColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\n slim: toRef(props, 'slim'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const isFocused = shallowRef(false)\n const contentRef = ref()\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n const target = e.target as HTMLElement\n\n if (!contentRef.value || ['INPUT', 'TEXTAREA'].includes(target.tagName)) return\n\n if (e.key === 'ArrowDown') {\n focus('next')\n } else if (e.key === 'ArrowUp') {\n focus('prev')\n } else if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n } else {\n return\n }\n\n e.preventDefault()\n }\n\n function onMousedown (e: MouseEvent) {\n isFocused.value = true\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (contentRef.value) {\n return focusChild(contentRef.value, location)\n }\n }\n\n useRender(() => {\n return (\n \n \n \n )\n })\n\n return {\n open,\n select,\n focus,\n children,\n parents,\n }\n },\n})\n\nexport type VList = InstanceType\n","// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, watch } from 'vue'\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type ListItemSlot = {\n isActive: boolean\n isOpen: boolean\n isSelected: boolean\n isIndeterminate: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string | number\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string | number\n}\n\nexport type VListItemSlots = {\n prepend: ListItemSlot\n append: ListItemSlot\n default: ListItemSlot\n title: ListItemTitleSlot\n subtitle: ListItemSubtitleSlot\n}\n\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType,\n default: true,\n },\n slim: Boolean,\n subtitle: [String, Number],\n title: [String, Number],\n value: null,\n\n onClick: EventProp<[MouseEvent | KeyboardEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VListItem')\n\nexport const VListItem = genericComponent()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: makeVListItemProps(),\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value === undefined ? link.href.value : props.value)\n const {\n activate,\n isActivated,\n select,\n isOpen,\n isSelected,\n isIndeterminate,\n isGroupActivator,\n root,\n parent,\n openOnSelect,\n } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value))\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (!!list && (root.selectable.value || root.activatable.value || props.value != null)))\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const color = computed(() => props.color ?? props.activeColor)\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n }))\n\n watch(() => link.isActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true)\n }\n\n if (val) {\n openOnSelect(val)\n }\n }, { immediate: true })\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isOpen: isOpen.value,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n\n if (isGroupActivator) return\n\n if (root.activatable.value) {\n activate(!isActivated.value, e)\n } else if (root.selectable.value) {\n select(!isSelected.value, e)\n } else if (props.value != null) {\n select(!isSelected.value, e)\n }\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n e.target!.dispatchEvent(new MouseEvent('click', e))\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = (slots.title || props.title != null)\n const hasSubtitle = (slots.subtitle || props.subtitle != null)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n list?.updateHasPrepend(hasPrepend)\n\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color'])\n }\n\n return (\n \n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n
\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n \n )}\n\n { props.prependIcon && (\n \n )}\n \n ) : (\n \n { slots.prepend?.(slotProps.value) }\n \n )}\n\n
\n
\n )}\n\n
\n { hasTitle && (\n \n { slots.title?.({ title: props.title }) ?? props.title }\n \n )}\n\n { hasSubtitle && (\n \n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n \n )}\n\n { slots.default?.(slotProps.value) }\n
\n\n { hasAppend && (\n
\n { !slots.append ? (\n <>\n { props.appendIcon && (\n \n )}\n\n { props.appendAvatar && (\n \n )}\n \n ) : (\n \n { slots.append?.(slotProps.value) }\n \n )}\n\n
\n
\n )}\n \n )\n })\n\n return {\n activate,\n isActivated,\n isGroupActivator,\n isSelected,\n list,\n select,\n }\n },\n})\n\nexport type VListItem = InstanceType\n","// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVListItemSubtitleProps = propsFactory({\n opacity: [Number, String],\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListItemSubtitle')\n\nexport const VListItemSubtitle = genericComponent()({\n name: 'VListItemSubtitle',\n\n props: makeVListItemSubtitleProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VListItemSubtitle = InstanceType\n","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VListItemTitle = createSimpleFunctional('v-list-item-title')\n\nexport type VListItemTitle = InstanceType\n","// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVListSubheaderProps = propsFactory({\n color: String,\n inset: Boolean,\n sticky: Boolean,\n title: String,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListSubheader')\n\nexport const VListSubheader = genericComponent()({\n name: 'VListSubheader',\n\n props: makeVListSubheaderProps(),\n\n setup (props, { slots }) {\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n useRender(() => {\n const hasText = !!(slots.default || props.title)\n\n return (\n \n { hasText && (\n
\n { slots.default?.() ?? props.title }\n
\n )}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VListSubheader = InstanceType\n","// Utilities\nimport { computed, inject, provide, shallowRef } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\n// Depth\nexport const DepthKey: InjectionKey> = Symbol.for('vuetify:depth')\n\nexport function useDepth (hasPrepend?: Ref) {\n const parent = inject(DepthKey, shallowRef(-1))\n\n const depth = computed(() => parent.value + 1 + (hasPrepend?.value ? 1 : 0))\n\n provide(DepthKey, depth)\n\n return depth\n}\n\n// List\nexport const ListKey: InjectionKey<{\n hasPrepend: Ref\n updateHasPrepend: (value: boolean) => void\n}> = Symbol.for('vuetify:list')\n\nexport function createList () {\n const parent = inject(ListKey, { hasPrepend: shallowRef(false), updateHasPrepend: () => null })\n\n const data = {\n hasPrepend: shallowRef(false),\n updateHasPrepend: (value: boolean) => {\n if (value) data.hasPrepend.value = value\n },\n }\n\n provide(ListKey, data)\n\n return parent\n}\n\nexport function useList () {\n return inject(ListKey, null)\n}\n","// Types\nimport type { InjectionKey } from 'vue'\n\ninterface MenuProvide {\n register (): void\n unregister (): void\n closeParents (e?: MouseEvent): void\n}\n\nexport const VMenuSymbol: InjectionKey = Symbol.for('vuetify:v-menu')\n","// Styles\nimport './VMessages.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { Component, PropType } from 'vue'\n\nexport type VMessageSlot = {\n message: string\n}\n\nexport type VMessagesSlots = {\n message: VMessageSlot\n}\n\nexport const makeVMessagesProps = propsFactory({\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String] as PropType,\n default: () => ([]),\n },\n\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition as Component,\n leaveAbsolute: true,\n group: true,\n },\n }),\n}, 'VMessages')\n\nexport const VMessages = genericComponent()({\n name: 'VMessages',\n\n props: makeVMessagesProps(),\n\n setup (props, { slots }) {\n const messages = computed(() => wrapInArray(props.messages))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => props.color))\n\n useRender(() => (\n \n { props.active && (\n messages.value.map((message, i) => (\n \n { slots.message ? slots.message({ message }) : message }\n
\n ))\n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VMessages = InstanceType\n","// Types\nimport type { ParsedAnchor } from '@/util'\nimport type { Box } from '@/util/box'\n\ntype Point = { x: number, y: number }\ndeclare class As {\n private as: T\n}\ntype ElementPoint = Point & As<'element'>\ntype ViewportPoint = Point & As<'viewport'>\ntype Offset = Point & As<'offset'>\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport (point: ElementPoint, offset: Offset | Box) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y,\n } as ViewportPoint\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement (point: ViewportPoint, offset: Offset | Box) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y,\n } as ElementPoint\n}\n\n/** Get the difference between two points */\nexport function getOffset (a: T, b: T) {\n return {\n x: a.x - b.x,\n y: a.y - b.y,\n } as Offset\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint (anchor: ParsedAnchor, box: Box): ViewportPoint {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const { side, align } = anchor\n\n const x: number =\n align === 'left' ? 0\n : align === 'center' ? box.width / 2\n : align === 'right' ? box.width\n : align\n const y: number =\n side === 'top' ? 0\n : side === 'bottom' ? box.height\n : side\n\n return elementToViewport({ x, y } as ElementPoint, box)\n } else if (anchor.side === 'left' || anchor.side === 'right') {\n const { side, align } = anchor\n\n const x: number =\n side === 'left' ? 0\n : side === 'right' ? box.width\n : side\n const y: number =\n align === 'top' ? 0\n : align === 'center' ? box.height / 2\n : align === 'bottom' ? box.height\n : align\n\n return elementToViewport({ x, y } as ElementPoint, box)\n }\n\n return elementToViewport({\n x: box.width / 2,\n y: box.height / 2,\n } as ElementPoint, box)\n}\n","export function isFixedPosition (el?: HTMLElement) {\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n return true\n }\n el = el.offsetParent as HTMLElement\n }\n return false\n}\n","// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue'\nimport { anchorToPoint, getOffset } from './util/point'\nimport {\n clamp,\n consoleError,\n convertToUnit,\n destructComputed,\n flipAlign,\n flipCorner,\n flipSide,\n getAxis,\n getScrollParents,\n IN_BROWSER,\n isFixedPosition,\n nullifyTransforms,\n parseAnchor,\n propsFactory,\n} from '@/util'\nimport { Box, getOverflow, getTargetBox } from '@/util/box'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface LocationStrategyData {\n contentEl: Ref\n target: Ref\n isActive: Ref\n isRtl: Ref\n}\n\ntype LocationStrategyFn = (\n data: LocationStrategyData,\n props: StrategyProps,\n contentStyles: Ref>\n) => undefined | { updateLocation: (e?: Event) => void }\n\nconst locationStrategies = {\n static: staticLocationStrategy, // specific viewport position, usually centered\n connected: connectedLocationStrategy, // connected to a certain element\n}\n\nexport interface StrategyProps {\n locationStrategy: keyof typeof locationStrategies | LocationStrategyFn\n location: Anchor\n origin: Anchor | 'auto' | 'overlap'\n offset?: number | string | number[]\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n}\n\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function] as PropType,\n default: 'static',\n validator: (val: any) => typeof val === 'function' || val in locationStrategies,\n },\n location: {\n type: String as PropType,\n default: 'bottom',\n },\n origin: {\n type: String as PropType,\n default: 'auto',\n },\n offset: [Number, String, Array] as PropType,\n}, 'VOverlay-location-strategies')\n\nexport function useLocationStrategies (\n props: StrategyProps,\n data: LocationStrategyData\n) {\n const contentStyles = ref({})\n const updateLocation = ref<(e: Event) => void>()\n\n if (IN_BROWSER) {\n useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {\n watch(() => props.locationStrategy, reset)\n onScopeDispose(() => {\n window.removeEventListener('resize', onResize)\n updateLocation.value = undefined\n })\n\n window.addEventListener('resize', onResize, { passive: true })\n\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation\n }\n })\n }\n\n function onResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n return {\n contentStyles,\n updateLocation,\n }\n}\n\nfunction staticLocationStrategy () {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize (el: HTMLElement, isRtl: boolean) {\n // const scrollables = new Map()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el)\n\n if (isRtl) {\n contentBox.x += parseFloat(el.style.right || 0)\n } else {\n contentBox.x -= parseFloat(el.style.left || 0)\n }\n contentBox.y -= parseFloat(el.style.top || 0)\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox\n}\n\nfunction connectedLocationStrategy (data: LocationStrategyData, props: StrategyProps, contentStyles: Ref>) {\n const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value)\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n top: 0,\n [data.isRtl.value ? 'right' : 'left']: 0,\n })\n }\n\n const { preferredAnchor, preferredOrigin } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value)\n const parsedOrigin =\n props.origin === 'overlap' ? parsedAnchor\n : props.origin === 'auto' ? flipSide(parsedAnchor)\n : parseAnchor(props.origin, data.isRtl.value)\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin),\n }\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin,\n }\n }\n })\n\n const [minWidth, minHeight, maxWidth, maxHeight] =\n (['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const).map(key => {\n return computed(() => {\n const val = parseFloat(props[key]!)\n return isNaN(val) ? Infinity : val\n })\n })\n\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat)\n if (offset.length < 2) offset.push(0)\n return offset\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0]\n })\n\n let observe = false\n const observer = new ResizeObserver(() => {\n if (observe) updateLocation()\n })\n\n watch([data.target, data.contentEl], ([newTarget, newContentEl], [oldTarget, oldContentEl]) => {\n if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget)\n if (newTarget && !Array.isArray(newTarget)) observer.observe(newTarget)\n\n if (oldContentEl) observer.unobserve(oldContentEl)\n if (newContentEl) observer.observe(newContentEl)\n }, {\n immediate: true,\n })\n\n onScopeDispose(() => {\n observer.disconnect()\n })\n\n // eslint-disable-next-line max-statements\n function updateLocation () {\n observe = false\n requestAnimationFrame(() => observe = true)\n\n if (!data.target.value || !data.contentEl.value) return\n\n const targetBox = getTargetBox(data.target.value)\n const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value)\n const scrollParents = getScrollParents(data.contentEl.value)\n const viewportMargin = 12\n\n if (!scrollParents.length) {\n scrollParents.push(document.documentElement)\n if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {\n contentBox.x -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0)\n contentBox.y -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0)\n }\n }\n\n const viewport = scrollParents.reduce((box: Box | undefined, el) => {\n const rect = el.getBoundingClientRect()\n const scrollBox = new Box({\n x: el === document.documentElement ? 0 : rect.x,\n y: el === document.documentElement ? 0 : rect.y,\n width: el.clientWidth,\n height: el.clientHeight,\n })\n\n if (box) {\n return new Box({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),\n height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top),\n })\n }\n return scrollBox\n }, undefined!)\n viewport.x += viewportMargin\n viewport.y += viewportMargin\n viewport.width -= viewportMargin * 2\n viewport.height -= viewportMargin * 2\n\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value,\n }\n\n function checkOverflow (_placement: typeof placement) {\n const box = new Box(contentBox)\n const targetPoint = anchorToPoint(_placement.anchor, targetBox)\n const contentPoint = anchorToPoint(_placement.origin, box)\n\n let { x, y } = getOffset(targetPoint, contentPoint)\n\n switch (_placement.anchor.side) {\n case 'top': y -= offset.value[0]; break\n case 'bottom': y += offset.value[0]; break\n case 'left': x -= offset.value[0]; break\n case 'right': x += offset.value[0]; break\n }\n\n switch (_placement.anchor.align) {\n case 'top': y -= offset.value[1]; break\n case 'bottom': y += offset.value[1]; break\n case 'left': x -= offset.value[1]; break\n case 'right': x += offset.value[1]; break\n }\n\n box.x += x\n box.y += y\n\n box.width = Math.min(box.width, maxWidth.value)\n box.height = Math.min(box.height, maxHeight.value)\n\n const overflows = getOverflow(box, viewport)\n\n return { overflows, x, y }\n }\n\n let x = 0; let y = 0\n const available = { x: 0, y: 0 }\n const flipped = { x: false, y: false }\n let resets = -1\n while (true) {\n if (resets++ > 10) {\n consoleError('Infinite loop detected in connectedLocationStrategy')\n break\n }\n\n const { x: _x, y: _y, overflows } = checkOverflow(placement)\n\n x += _x\n y += _y\n\n contentBox.x += _x\n contentBox.y += _y\n\n // flip\n {\n const axis = getAxis(placement.anchor)\n const hasOverflowX = overflows.x.before || overflows.x.after\n const hasOverflowY = overflows.y.before || overflows.y.after\n\n let reset = false\n ;['x', 'y'].forEach(key => {\n if (\n (key === 'x' && hasOverflowX && !flipped.x) ||\n (key === 'y' && hasOverflowY && !flipped.y)\n ) {\n const newPlacement = { anchor: { ...placement.anchor }, origin: { ...placement.origin } }\n const flip = key === 'x'\n ? axis === 'y' ? flipAlign : flipSide\n : axis === 'y' ? flipSide : flipAlign\n newPlacement.anchor = flip(newPlacement.anchor)\n newPlacement.origin = flip(newPlacement.origin)\n const { overflows: newOverflows } = checkOverflow(newPlacement)\n if (\n (newOverflows[key].before <= overflows[key].before &&\n newOverflows[key].after <= overflows[key].after) ||\n (newOverflows[key].before + newOverflows[key].after <\n (overflows[key].before + overflows[key].after) / 2)\n ) {\n placement = newPlacement\n reset = flipped[key] = true\n }\n }\n })\n if (reset) continue\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before\n contentBox.x += overflows.x.before\n }\n if (overflows.x.after) {\n x -= overflows.x.after\n contentBox.x -= overflows.x.after\n }\n if (overflows.y.before) {\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n if (overflows.y.after) {\n y -= overflows.y.after\n contentBox.y -= overflows.y.after\n }\n\n // size\n {\n const overflows = getOverflow(contentBox, viewport)\n available.x = viewport.width - overflows.x.before - overflows.x.after\n available.y = viewport.height - overflows.y.before - overflows.y.after\n\n x += overflows.x.before\n contentBox.x += overflows.x.before\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n\n break\n }\n\n const axis = getAxis(placement.anchor)\n\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,\n top: convertToUnit(pixelRound(y)),\n left: data.isRtl.value ? undefined : convertToUnit(pixelRound(x)),\n right: data.isRtl.value ? convertToUnit(pixelRound(-x)) : undefined,\n minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),\n maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),\n maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value))),\n })\n\n return {\n available,\n contentBox,\n }\n }\n\n watch(\n () => [\n preferredAnchor.value,\n preferredOrigin.value,\n props.offset,\n props.minWidth,\n props.minHeight,\n props.maxWidth,\n props.maxHeight,\n ],\n () => updateLocation(),\n )\n\n nextTick(() => {\n const result = updateLocation()\n\n // TODO: overflowing content should only require a single updateLocation call\n // Icky hack to make sure the content is positioned consistently\n if (!result) return\n const { available, contentBox } = result\n if (contentBox.height > available.y) {\n requestAnimationFrame(() => {\n updateLocation()\n requestAnimationFrame(() => {\n updateLocation()\n })\n })\n }\n })\n\n return { updateLocation }\n}\n\nfunction pixelRound (val: number) {\n return Math.round(val * devicePixelRatio) / devicePixelRatio\n}\n\nfunction pixelCeil (val: number) {\n return Math.ceil(val * devicePixelRatio) / devicePixelRatio\n}\n","let clean = true\nconst frames = [] as any[]\n\n/**\n * Schedule a task to run in an animation frame on its own\n * This is useful for heavy tasks that may cause jank if all ran together\n */\nexport function requestNewFrame (cb: () => void) {\n if (!clean || frames.length) {\n frames.push(cb)\n run()\n } else {\n clean = false\n cb()\n run()\n }\n}\n\nlet raf = -1\nfunction run () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n const frame = frames.shift()\n if (frame) frame()\n\n if (frames.length) run()\n else clean = true\n })\n}\n","// Utilities\nimport { effectScope, onScopeDispose, watchEffect } from 'vue'\nimport { requestNewFrame } from './requestNewFrame'\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\n\nexport interface ScrollStrategyData {\n root: Ref\n contentEl: Ref\n targetEl: Ref\n isActive: Ref\n updateLocation: Ref<((e: Event) => void) | undefined>\n}\n\ntype ScrollStrategyFn = (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) => void\n\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy,\n}\n\nexport interface StrategyProps {\n scrollStrategy: keyof typeof scrollStrategies | ScrollStrategyFn\n contained: boolean | undefined\n}\n\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function] as PropType,\n default: 'block',\n validator: (val: any) => typeof val === 'function' || val in scrollStrategies,\n },\n}, 'VOverlay-scroll-strategies')\n\nexport function useScrollStrategies (\n props: StrategyProps,\n data: ScrollStrategyData\n) {\n if (!IN_BROWSER) return\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n\n if (!(data.isActive.value && props.scrollStrategy)) return\n\n scope = effectScope()\n await new Promise(resolve => setTimeout(resolve))\n scope.active && scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props, scope!)\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props, scope!)\n }\n })\n })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n}\n\nfunction closeScrollStrategy (data: ScrollStrategyData) {\n function onScroll (e: Event) {\n data.isActive.value = false\n }\n\n bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll)\n}\n\nfunction blockScrollStrategy (data: ScrollStrategyData, props: StrategyProps) {\n const offsetParent = data.root.value?.offsetParent\n const scrollElements = [...new Set([\n ...getScrollParents(data.targetEl.value, props.contained ? offsetParent : undefined),\n ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined),\n ])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'))\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth\n\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement)\n if (scrollableParent) {\n data.root.value!.classList.add('v-overlay--scroll-blocked')\n }\n\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft))\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop))\n\n if (el !== document.documentElement) {\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n }\n\n el.classList.add('v-overlay-scroll-blocked')\n })\n\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'))\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'))\n\n const scrollBehavior = el.style.scrollBehavior\n\n el.style.scrollBehavior = 'auto'\n el.style.removeProperty('--v-body-scroll-x')\n el.style.removeProperty('--v-body-scroll-y')\n el.style.removeProperty('--v-scrollbar-offset')\n el.classList.remove('v-overlay-scroll-blocked')\n\n el.scrollLeft = -x\n el.scrollTop = -y\n\n el.style.scrollBehavior = scrollBehavior\n })\n if (scrollableParent) {\n data.root.value!.classList.remove('v-overlay--scroll-blocked')\n }\n })\n}\n\nfunction repositionScrollStrategy (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) {\n let slow = false\n let raf = -1\n let ric = -1\n\n function update (e: Event) {\n requestNewFrame(() => {\n const start = performance.now()\n data.updateLocation.value?.(e)\n const time = performance.now() - start\n slow = time / (1000 / 60) > 2\n })\n }\n\n ric = (typeof requestIdleCallback === 'undefined' ? (cb: Function) => cb() : requestIdleCallback)(() => {\n scope.run(() => {\n bindScroll(data.targetEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e)\n })\n })\n } else {\n update(e)\n }\n })\n })\n })\n\n onScopeDispose(() => {\n typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric)\n cancelAnimationFrame(raf)\n })\n}\n\n/** @private */\nfunction bindScroll (el: HTMLElement | undefined, onScroll: (e: Event) => void) {\n const scrollElements = [document, ...getScrollParents(el)]\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, { passive: true })\n })\n\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll)\n })\n })\n}\n","// Utilities\nimport { eventName, isOn } from '@/util/helpers'\n\nconst handlers = new WeakMap void]>>()\n\nexport function bindProps (el: HTMLElement, props: Record) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k)\n const handler = handlers.get(el)\n if (props[k] == null) {\n handler?.forEach(v => {\n const [n, fn] = v\n if (n === name) {\n el.removeEventListener(name, fn)\n handler.delete(v)\n }\n })\n } else if (!handler || ![...handler]?.some(v => v[0] === name && v[1] === props[k])) {\n el.addEventListener(name, props[k])\n const _handler = handler || new Set()\n _handler.add([name, props[k]])\n if (!handlers.has(el)) handlers.set(el, _handler)\n }\n } else {\n if (props[k] == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, props[k])\n }\n }\n })\n}\n\nexport function unbindProps (el: HTMLElement, props: Record) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k)\n const handler = handlers.get(el)\n handler?.forEach(v => {\n const [n, fn] = v\n if (n === name) {\n el.removeEventListener(name, fn)\n handler.delete(v)\n }\n })\n } else {\n el.removeAttribute(k)\n }\n })\n}\n","// Components\nimport { VMenuSymbol } from '@/components/VMenu/shared'\n\n// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\n\n// Utilities\nimport {\n computed,\n effectScope,\n inject,\n mergeProps,\n nextTick,\n onScopeDispose,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n bindProps,\n getCurrentInstance,\n IN_BROWSER,\n matchesSelector,\n propsFactory,\n templateRef,\n unbindProps,\n} from '@/util'\n\n// Types\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n EffectScope,\n PropType,\n Ref,\n} from 'vue'\nimport type { DelayProps } from '@/composables/delay'\n\ninterface ActivatorProps extends DelayProps {\n target: 'parent' | 'cursor' | (string & {}) | Element | ComponentPublicInstance | [x: number, y: number] | undefined\n activator: 'parent' | (string & {}) | Element | ComponentPublicInstance | undefined\n activatorProps: Record\n\n openOnClick: boolean | undefined\n openOnHover: boolean\n openOnFocus: boolean | undefined\n\n closeOnContentClick: boolean\n}\n\nexport const makeActivatorProps = propsFactory({\n target: [String, Object] as PropType,\n activator: [String, Object] as PropType,\n activatorProps: {\n type: Object as PropType,\n default: () => ({}),\n },\n\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined,\n },\n\n closeOnContentClick: Boolean,\n\n ...makeDelayProps(),\n}, 'VOverlay-activator')\n\nexport function useActivator (\n props: ActivatorProps,\n { isActive, isTop, contentEl }: {\n isActive: Ref\n isTop: Ref\n contentEl: Ref\n }\n) {\n const vm = getCurrentInstance('useActivator')\n const activatorEl = ref()\n\n let isHovered = false\n let isFocused = false\n let firstEnter = true\n\n const openOnFocus = computed(() => props.openOnFocus || (props.openOnFocus == null && props.openOnHover))\n const openOnClick = computed(() => props.openOnClick || (props.openOnClick == null && !props.openOnHover && !openOnFocus.value))\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n if (\n value === (\n (props.openOnHover && isHovered) ||\n (openOnFocus.value && isFocused)\n ) && !(props.openOnHover && isActive.value && !isTop.value)\n ) {\n if (isActive.value !== value) {\n firstEnter = true\n }\n isActive.value = value\n }\n })\n\n const cursorTarget = ref<[x: number, y: number]>()\n const availableEvents = {\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n if (!isActive.value) {\n cursorTarget.value = [e.clientX, e.clientY]\n }\n isActive.value = !isActive.value\n },\n onMouseenter: (e: MouseEvent) => {\n if (e.sourceCapabilities?.firesTouchEvents) return\n\n isHovered = true\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n runOpenDelay()\n },\n onMouseleave: (e: MouseEvent) => {\n isHovered = false\n runCloseDelay()\n },\n onFocus: (e: FocusEvent) => {\n if (matchesSelector(e.target as HTMLElement, ':focus-visible') === false) return\n\n isFocused = true\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n\n runOpenDelay()\n },\n onBlur: (e: FocusEvent) => {\n isFocused = false\n e.stopPropagation()\n\n runCloseDelay()\n },\n }\n\n const activatorEvents = computed(() => {\n const events: Partial = {}\n\n if (openOnClick.value) {\n events.onClick = availableEvents.onClick\n }\n if (props.openOnHover) {\n events.onMouseenter = availableEvents.onMouseenter\n events.onMouseleave = availableEvents.onMouseleave\n }\n if (openOnFocus.value) {\n events.onFocus = availableEvents.onFocus\n events.onBlur = availableEvents.onBlur\n }\n\n return events\n })\n\n const contentEvents = computed(() => {\n const events: Record = {}\n\n if (props.openOnHover) {\n events.onMouseenter = () => {\n isHovered = true\n runOpenDelay()\n }\n events.onMouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n if (openOnFocus.value) {\n events.onFocusin = () => {\n isFocused = true\n runOpenDelay()\n }\n events.onFocusout = () => {\n isFocused = false\n runCloseDelay()\n }\n }\n\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null)\n events.onClick = () => {\n isActive.value = false\n menu?.closeParents()\n }\n }\n\n return events\n })\n\n const scrimEvents = computed(() => {\n const events: Record = {}\n\n if (props.openOnHover) {\n events.onMouseenter = () => {\n if (firstEnter) {\n isHovered = true\n firstEnter = false\n runOpenDelay()\n }\n }\n events.onMouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n return events\n })\n\n watch(isTop, val => {\n if (val && (\n (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused)) ||\n (openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))\n ) && !contentEl.value?.contains(document.activeElement)) {\n isActive.value = false\n }\n })\n\n watch(isActive, val => {\n if (!val) {\n setTimeout(() => {\n cursorTarget.value = undefined\n })\n }\n }, { flush: 'post' })\n\n const activatorRef = templateRef()\n watchEffect(() => {\n if (!activatorRef.value) return\n\n nextTick(() => {\n activatorEl.value = activatorRef.el\n })\n })\n\n const targetRef = templateRef()\n const target = computed(() => {\n if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value\n if (targetRef.value) return targetRef.el\n return getTarget(props.target, vm) || activatorEl.value\n })\n const targetEl = computed(() => {\n return Array.isArray(target.value)\n ? undefined\n : target.value\n })\n\n let scope: EffectScope\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope()\n scope.run(() => {\n _useActivator(props, vm, { activatorEl, activatorEvents })\n })\n } else if (scope) {\n scope.stop()\n }\n }, { flush: 'post', immediate: true })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n\n return { activatorEl, activatorRef, target, targetEl, targetRef, activatorEvents, contentEvents, scrimEvents }\n}\n\nfunction _useActivator (\n props: ActivatorProps,\n vm: ComponentInternalInstance,\n { activatorEl, activatorEvents }: Pick, 'activatorEl' | 'activatorEvents'>\n) {\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal)\n activator && unbindActivatorProps(activator)\n }\n if (val) {\n nextTick(() => bindActivatorProps())\n }\n }, { immediate: true })\n\n watch(() => props.activatorProps, () => {\n bindActivatorProps()\n })\n\n onScopeDispose(() => {\n unbindActivatorProps()\n })\n\n function bindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n bindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function unbindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n unbindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function getActivator (selector = props.activator): HTMLElement | undefined {\n const activator = getTarget(selector, vm)\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined\n\n return activatorEl.value\n }\n}\n\nfunction getTarget (\n selector: T,\n vm: ComponentInternalInstance\n): HTMLElement | undefined | (T extends any[] ? [x: number, y: number] : never) {\n if (!selector) return\n\n let target\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode\n while (el?.hasAttribute('data-no-activator')) {\n el = el.parentNode\n }\n target = el\n } else if (typeof selector === 'string') {\n // Selector\n target = document.querySelector(selector)\n } else if ('$el' in selector) {\n // Component (ref)\n target = selector.$el\n } else {\n // HTMLElement | Element | [x, y]\n target = selector\n }\n\n return target\n}\n","// Composables\nimport { useDisplay } from '@/composables/display'\n\n// Utilities\nimport { onMounted, shallowRef } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\nexport function useHydration () {\n if (!IN_BROWSER) return shallowRef(false)\n\n const { ssr } = useDisplay()\n\n if (ssr) {\n const isMounted = shallowRef(false)\n onMounted(() => {\n isMounted.value = true\n })\n return isMounted\n } else {\n return shallowRef(true)\n }\n}\n","// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, inject, onScopeDispose, provide, reactive, readonly, shallowRef, toRaw, watchEffect } from 'vue'\nimport { getCurrentInstance } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nconst StackSymbol: InjectionKey = Symbol.for('vuetify:stack')\n\ninterface StackProvide {\n activeChildren: Set\n}\n\nconst globalStack = reactive<[uid: number, zIndex: number][]>([])\n\nexport function useStack (\n isActive: Readonly>,\n zIndex: Readonly>,\n disableGlobalStack: boolean\n) {\n const vm = getCurrentInstance('useStack')\n const createStackEntry = !disableGlobalStack\n\n const parent = inject(StackSymbol, undefined)\n const stack: StackProvide = reactive({\n activeChildren: new Set(),\n })\n provide(StackSymbol, stack)\n\n const _zIndex = shallowRef(+zIndex.value)\n useToggleScope(isActive, () => {\n const lastZIndex = globalStack.at(-1)?.[1]\n _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value\n\n if (createStackEntry) {\n globalStack.push([vm.uid, _zIndex.value])\n }\n\n parent?.activeChildren.add(vm.uid)\n\n onScopeDispose(() => {\n if (createStackEntry) {\n const idx = toRaw(globalStack).findIndex(v => v[0] === vm.uid)\n globalStack.splice(idx, 1)\n }\n\n parent?.activeChildren.delete(vm.uid)\n })\n })\n\n const globalTop = shallowRef(true)\n if (createStackEntry) {\n watchEffect(() => {\n const _isTop = globalStack.at(-1)?.[0] === vm.uid\n setTimeout(() => globalTop.value = _isTop)\n })\n }\n\n const localTop = computed(() => !stack.activeChildren.size)\n\n return {\n globalTop: readonly(globalTop),\n localTop,\n stackStyles: computed(() => ({ zIndex: _zIndex.value })),\n }\n}\n","// Utilities\nimport { computed, warn } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\nexport function useTeleport (target: () => (boolean | string | ParentNode)) {\n const teleportTarget = computed(() => {\n const _target = target()\n\n if (_target === true || !IN_BROWSER) return undefined\n\n const targetElement =\n _target === false ? document.body\n : typeof _target === 'string' ? document.querySelector(_target)\n : _target\n\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`)\n return undefined\n }\n\n let container = [...targetElement.children].find(el => el.matches('.v-overlay-container'))\n\n if (!container) {\n container = document.createElement('div')\n container.className = 'v-overlay-container'\n targetElement.appendChild(container)\n }\n\n return container\n })\n\n return { teleportTarget }\n}\n","/**\n * Returns:\n * - 'null' if the node is not attached to the DOM\n * - the root node (HTMLDocument | ShadowRoot) otherwise\n */\nexport function attachedRoot (node: Node): null | HTMLDocument | ShadowRoot {\n /* istanbul ignore next */\n if (typeof node.getRootNode !== 'function') {\n // Shadow DOM not supported (IE11), lets find the root of this node\n while (node.parentNode) node = node.parentNode\n\n // The root parent is the document if the node is attached to the DOM\n if (node !== document) return null\n\n return document\n }\n\n const root = node.getRootNode()\n\n // The composed root node is the document if the node is attached to the DOM\n if (root !== document && root.getRootNode({ composed: true }) !== document) return null\n\n return root as HTMLDocument | ShadowRoot\n}\n","// Utilities\nimport { attachedRoot } from '@/util'\n\n// Types\nimport type { DirectiveBinding } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: MouseEvent) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirectiveBinding extends DirectiveBinding {\n value: ((e: MouseEvent) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el?.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: MouseEvent, binding: ClickOutsideDirectiveBinding): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler\n\n // Clicks in the Shadow DOM change their target while using setTimeout, so the original target is saved here\n e.shadowTarget = e.target\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const onClick = (e: Event) => directive(e as MouseEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as MouseEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: false,\n }\n }\n\n el._clickOutside[binding.instance!.$.uid] = {\n onClick,\n onMousedown,\n }\n },\n\n beforeUnmount (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside?.[binding.instance!.$.uid]) return\n\n const { onClick, onMousedown } = el._clickOutside[binding.instance!.$.uid]!\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[binding.instance!.$.uid]\n },\n}\n\nexport default ClickOutside\n","// Styles\nimport './VOverlay.sass'\n\n// Composables\nimport { makeLocationStrategyProps, useLocationStrategies } from './locationStrategies'\nimport { makeScrollStrategyProps, useScrollStrategies } from './scrollStrategies'\nimport { makeActivatorProps, useActivator } from './useActivator'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useHydration } from '@/composables/hydration'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useBackButton, useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useStack } from '@/composables/stack'\nimport { useTeleport } from '@/composables/teleport'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport { ClickOutside } from '@/directives/click-outside'\n\n// Utilities\nimport {\n computed,\n mergeProps,\n onBeforeUnmount,\n ref,\n Teleport,\n toRef,\n Transition,\n watch,\n} from 'vue'\nimport {\n animate,\n convertToUnit,\n genericComponent,\n getCurrentInstance,\n getScrollParent,\n IN_BROWSER,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { BackgroundColorData } from '@/composables/color'\nimport type { TemplateRef } from '@/util'\n\ninterface ScrimProps {\n [key: string]: unknown\n modelValue: boolean\n color: BackgroundColorData\n}\nfunction Scrim (props: ScrimProps) {\n const { modelValue, color, ...rest } = props\n return (\n \n { props.modelValue && (\n \n )}\n \n )\n}\n\nexport type OverlaySlots = {\n default: { isActive: Ref }\n activator: { isActive: boolean, props: Record, targetRef: TemplateRef }\n}\n\nexport const makeVOverlayProps = propsFactory({\n absolute: Boolean,\n attach: [Boolean, String, Object] as PropType,\n closeOnBack: {\n type: Boolean,\n default: true,\n },\n contained: Boolean,\n contentClass: null,\n contentProps: null,\n disabled: Boolean,\n opacity: [Number, String],\n noClickAnimation: Boolean,\n modelValue: Boolean,\n persistent: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 2000,\n },\n\n ...makeActivatorProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLazyProps(),\n ...makeLocationStrategyProps(),\n ...makeScrollStrategyProps(),\n ...makeThemeProps(),\n ...makeTransitionProps(),\n}, 'VOverlay')\n\nexport const VOverlay = genericComponent()({\n name: 'VOverlay',\n\n directives: { ClickOutside },\n\n inheritAttrs: false,\n\n props: {\n _disableGlobalStack: Boolean,\n\n ...makeVOverlayProps(),\n },\n\n emits: {\n 'click:outside': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n afterEnter: () => true,\n afterLeave: () => true,\n },\n\n setup (props, { slots, attrs, emit }) {\n const vm = getCurrentInstance('VOverlay')\n const root = ref()\n const scrimEl = ref()\n const contentEl = ref()\n const model = useProxiedModel(props, 'modelValue')\n const isActive = computed({\n get: () => model.value,\n set: v => {\n if (!(v && props.disabled)) model.value = v\n },\n })\n const { themeClasses } = provideTheme(props)\n const { rtlClasses, isRtl } = useRtl()\n const { hasContent, onAfterLeave: _onAfterLeave } = useLazy(props, isActive)\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const { globalTop, localTop, stackStyles } = useStack(isActive, toRef(props, 'zIndex'), props._disableGlobalStack)\n const {\n activatorEl, activatorRef,\n target, targetEl, targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents,\n } = useActivator(props, { isActive, isTop: localTop, contentEl })\n const { teleportTarget } = useTeleport(() => {\n const target = props.attach || props.contained\n if (target) return target\n const rootNode = activatorEl?.value?.getRootNode() || vm.proxy?.$el?.getRootNode()\n if (rootNode instanceof ShadowRoot) return rootNode\n return false\n })\n const { dimensionStyles } = useDimension(props)\n const isMounted = useHydration()\n const { scopeId } = useScopeId()\n\n watch(() => props.disabled, v => {\n if (v) isActive.value = false\n })\n\n const { contentStyles, updateLocation } = useLocationStrategies(props, {\n isRtl,\n contentEl,\n target,\n isActive,\n })\n useScrollStrategies(props, {\n root,\n contentEl,\n targetEl,\n isActive,\n updateLocation,\n })\n\n function onClickOutside (e: MouseEvent) {\n emit('click:outside', e)\n\n if (!props.persistent) isActive.value = false\n else animateClick()\n }\n\n function closeConditional (e: Event) {\n return isActive.value && globalTop.value && (\n // If using scrim, only close if clicking on it rather than anything opened on top\n !props.scrim || e.target === scrimEl.value || (e instanceof MouseEvent && e.shadowTarget === scrimEl.value)\n )\n }\n\n IN_BROWSER && watch(isActive, val => {\n if (val) {\n window.addEventListener('keydown', onKeydown)\n } else {\n window.removeEventListener('keydown', onKeydown)\n }\n }, { immediate: true })\n\n onBeforeUnmount(() => {\n if (!IN_BROWSER) return\n\n window.removeEventListener('keydown', onKeydown)\n })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === 'Escape' && globalTop.value) {\n if (!props.persistent) {\n isActive.value = false\n if (contentEl.value?.contains(document.activeElement)) {\n activatorEl.value?.focus()\n }\n } else animateClick()\n }\n }\n\n const router = useRouter()\n useToggleScope(() => props.closeOnBack, () => {\n useBackButton(router, next => {\n if (globalTop.value && isActive.value) {\n next(false)\n if (!props.persistent) isActive.value = false\n else animateClick()\n } else {\n next()\n }\n })\n })\n\n const top = ref()\n watch(() => isActive.value && (props.absolute || props.contained) && teleportTarget.value == null, val => {\n if (val) {\n const scrollParent = getScrollParent(root.value)\n if (scrollParent && scrollParent !== document.scrollingElement) {\n top.value = scrollParent.scrollTop\n }\n }\n })\n\n // Add a quick \"bounce\" animation to the content\n function animateClick () {\n if (props.noClickAnimation) return\n\n contentEl.value && animate(contentEl.value, [\n { transformOrigin: 'center' },\n { transform: 'scale(1.03)' },\n { transformOrigin: 'center' },\n ], {\n duration: 150,\n easing: standardEasing,\n })\n }\n\n function onAfterEnter () {\n emit('afterEnter')\n }\n\n function onAfterLeave () {\n _onAfterLeave()\n emit('afterLeave')\n }\n\n useRender(() => (\n <>\n { slots.activator?.({\n isActive: isActive.value,\n targetRef,\n props: mergeProps({\n ref: activatorRef,\n }, activatorEvents.value, props.activatorProps),\n })}\n\n { isMounted.value && hasContent.value && (\n \n \n \n \n [activatorEl.value] }}\n class={[\n 'v-overlay__content',\n props.contentClass,\n ]}\n style={[\n dimensionStyles.value,\n contentStyles.value,\n ]}\n { ...contentEvents.value }\n { ...props.contentProps }\n >\n { slots.default?.({ isActive }) }\n
\n \n \n \n )}\n \n ))\n\n return {\n activatorEl,\n scrimEl,\n target,\n animateClick,\n contentEl,\n globalTop,\n localTop,\n updateLocation,\n }\n },\n})\n\nexport type VOverlay = InstanceType\n","// Styles\nimport './VProgressCircular.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, toRef, watchEffect } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVProgressCircularProps = propsFactory({\n bgColor: String,\n color: String,\n indeterminate: [Boolean, String] as PropType,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n rotate: {\n type: [Number, String],\n default: 0,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'div' }),\n ...makeThemeProps(),\n}, 'VProgressCircular')\n\ntype VProgressCircularSlots = {\n default: { value: number }\n}\n\nexport const VProgressCircular = genericComponent()({\n name: 'VProgressCircular',\n\n props: makeVProgressCircularProps(),\n\n setup (props, { slots }) {\n const MAGIC_RADIUS_CONSTANT = 20\n const CIRCUMFERENCE = 2 * Math.PI * MAGIC_RADIUS_CONSTANT\n\n const root = ref()\n\n const { themeClasses } = provideTheme(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const { textColorClasses: underlayColorClasses, textColorStyles: underlayColorStyles } = useTextColor(toRef(props, 'bgColor'))\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n const { resizeRef, contentRect } = useResizeObserver()\n\n const normalizedValue = computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))))\n const width = computed(() => Number(props.width))\n const size = computed(() => {\n // Get size from element if size prop value is small, large etc\n return sizeStyles.value\n ? Number(props.size)\n : contentRect.value\n ? contentRect.value.width\n : Math.max(width.value, 32)\n })\n const diameter = computed(() => (MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value)) * 2)\n const strokeWidth = computed(() => width.value / size.value * diameter.value)\n const strokeDashOffset = computed(() => convertToUnit(((100 - normalizedValue.value) / 100) * CIRCUMFERENCE))\n\n watchEffect(() => {\n intersectionRef.value = root.value\n resizeRef.value = root.value\n })\n\n useRender(() => (\n \n \n \n\n \n \n\n { slots.default && (\n
\n { slots.default({ value: normalizedValue.value }) }\n
\n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VProgressCircular = InstanceType\n","// Styles\nimport './VProgressLinear.sass'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useRtl } from '@/composables/locale'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, Transition } from 'vue'\nimport { clamp, convertToUnit, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\ntype VProgressLinearSlots = {\n default: { value: number, buffer: number }\n}\n\nexport const makeVProgressLinearProps = propsFactory({\n absolute: Boolean,\n active: {\n type: Boolean,\n default: true,\n },\n bgColor: String,\n bgOpacity: [Number, String],\n bufferValue: {\n type: [Number, String],\n default: 0,\n },\n bufferColor: String,\n bufferOpacity: [Number, String],\n clickable: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n opacity: [Number, String],\n reverse: Boolean,\n stream: Boolean,\n striped: Boolean,\n roundedBar: Boolean,\n\n ...makeComponentProps(),\n ...makeLocationProps({ location: 'top' } as const),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VProgressLinear')\n\nexport const VProgressLinear = genericComponent()({\n name: 'VProgressLinear',\n\n props: makeVProgressLinearProps(),\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const progress = useProxiedModel(props, 'modelValue')\n const { isRtl, rtlClasses } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { locationStyles } = useLocation(props)\n const { textColorClasses, textColorStyles } = useTextColor(props, 'color')\n const {\n backgroundColorClasses,\n backgroundColorStyles,\n } = useBackgroundColor(computed(() => props.bgColor || props.color))\n const {\n backgroundColorClasses: bufferColorClasses,\n backgroundColorStyles: bufferColorStyles,\n } = useBackgroundColor(computed(() => props.bufferColor || props.bgColor || props.color))\n const {\n backgroundColorClasses: barColorClasses,\n backgroundColorStyles: barColorStyles,\n } = useBackgroundColor(props, 'color')\n const { roundedClasses } = useRounded(props)\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n const max = computed(() => parseFloat(props.max))\n const height = computed(() => parseFloat(props.height))\n const normalizedBuffer = computed(() => clamp(parseFloat(props.bufferValue) / max.value * 100, 0, 100))\n const normalizedValue = computed(() => clamp(parseFloat(progress.value) / max.value * 100, 0, 100))\n const isReversed = computed(() => isRtl.value !== props.reverse)\n const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition')\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia?.('(forced-colors: active)').matches\n\n function handleClick (e: MouseEvent) {\n if (!intersectionRef.value) return\n\n const { left, right, width } = intersectionRef.value.getBoundingClientRect()\n const value = isReversed.value ? (width - e.clientX) + (right - width) : e.clientX - left\n\n progress.value = Math.round(value / width * max.value)\n }\n\n useRender(() => (\n \n { props.stream && (\n \n )}\n\n \n\n \n\n \n { !props.indeterminate ? (\n \n ) : (\n
\n {['long', 'short'].map(bar => (\n \n ))}\n
\n )}\n
\n\n { slots.default && (\n
\n { slots.default({ value: normalizedValue.value, buffer: normalizedBuffer.value }) }\n
\n )}\n \n ))\n\n return {}\n },\n})\n\nexport type VProgressLinear = InstanceType\n","// Styles\nimport './VSelectionControl.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VLabel } from '@/components/VLabel'\nimport { makeSelectionControlGroupProps, VSelectionControlGroupSymbol } from '@/components/VSelectionControlGroup/VSelectionControlGroup'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useDensity } from '@/composables/density'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject, nextTick, ref, shallowRef } from 'vue'\nimport {\n filterInputAttrs,\n genericComponent,\n getUid,\n matchesSelector,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { CSSProperties, ExtractPropTypes, Ref, VNode, WritableComputedRef } from 'vue'\nimport type { IconValue } from '@/composables/icons'\nimport type { EventProp, GenericProps } from '@/util'\n\nexport type SelectionControlSlot = {\n model: WritableComputedRef\n textColorClasses: Ref\n textColorStyles: Ref\n backgroundColorClasses: Ref\n backgroundColorStyles: Ref\n inputNode: VNode\n icon: IconValue | undefined\n props: {\n onBlur: (e: Event) => void\n onFocus: (e: FocusEvent) => void\n id: string\n }\n}\n\nexport type VSelectionControlSlots = {\n default: {\n backgroundColorClasses: Ref\n backgroundColorStyles: Ref\n }\n label: { label: string | undefined, props: Record }\n input: SelectionControlSlot\n}\n\nexport const makeVSelectionControlProps = propsFactory({\n label: String,\n baseColor: String,\n trueValue: null,\n falseValue: null,\n value: null,\n\n ...makeComponentProps(),\n ...makeSelectionControlGroupProps(),\n}, 'VSelectionControl')\n\nexport function useSelectionControl (\n props: ExtractPropTypes> & {\n 'onUpdate:modelValue': EventProp | undefined\n }\n) {\n const group = inject(VSelectionControlGroupSymbol, undefined)\n const { densityClasses } = useDensity(props)\n const modelValue = useProxiedModel(props, 'modelValue')\n const trueValue = computed(() => (\n props.trueValue !== undefined ? props.trueValue\n : props.value !== undefined ? props.value\n : true\n ))\n const falseValue = computed(() => props.falseValue !== undefined ? props.falseValue : false)\n const isMultiple = computed(() => (\n !!props.multiple ||\n (props.multiple == null && Array.isArray(modelValue.value))\n ))\n const model = computed({\n get () {\n const val = group ? group.modelValue.value : modelValue.value\n\n return isMultiple.value\n ? wrapInArray(val).some((v: any) => props.valueComparator(v, trueValue.value))\n : props.valueComparator(val, trueValue.value)\n },\n set (val: boolean) {\n if (props.readonly) return\n\n const currentValue = val ? trueValue.value : falseValue.value\n\n let newVal = currentValue\n\n if (isMultiple.value) {\n newVal = val\n ? [...wrapInArray(modelValue.value), currentValue]\n : wrapInArray(modelValue.value).filter((item: any) => !props.valueComparator(item, trueValue.value))\n }\n\n if (group) {\n group.modelValue.value = newVal\n } else {\n modelValue.value = newVal\n }\n },\n })\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n if (props.error || props.disabled) return undefined\n\n return model.value ? props.color : props.baseColor\n }))\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(computed(() => {\n return (\n model.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : props.baseColor\n }))\n const icon = computed(() => model.value ? props.trueIcon : props.falseIcon)\n\n return {\n group,\n densityClasses,\n trueValue,\n falseValue,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n icon,\n }\n}\n\nexport const VSelectionControl = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VSelectionControlSlots,\n) => GenericProps>()({\n name: 'VSelectionControl',\n\n directives: { Ripple },\n\n inheritAttrs: false,\n\n props: makeVSelectionControlProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const {\n group,\n densityClasses,\n icon,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n trueValue,\n } = useSelectionControl(props)\n const uid = getUid()\n const isFocused = shallowRef(false)\n const isFocusVisible = shallowRef(false)\n const input = ref()\n const id = computed(() => props.id || `input-${uid}`)\n const isInteractive = computed(() => !props.disabled && !props.readonly)\n\n group?.onForceUpdate(() => {\n if (input.value) {\n input.value.checked = model.value\n }\n })\n\n function onFocus (e: FocusEvent) {\n if (!isInteractive.value) return\n\n isFocused.value = true\n if (matchesSelector(e.target as HTMLElement, ':focus-visible') !== false) {\n isFocusVisible.value = true\n }\n }\n\n function onBlur () {\n isFocused.value = false\n isFocusVisible.value = false\n }\n\n function onClickLabel (e: Event) {\n e.stopPropagation()\n }\n\n function onInput (e: Event) {\n if (!isInteractive.value) {\n if (input.value) {\n // model value is not updated when input is not interactive\n // but the internal checked state of the input is still updated,\n // so here it's value is restored\n input.value.checked = model.value\n }\n\n return\n }\n\n if (props.readonly && group) {\n nextTick(() => group.forceUpdate())\n }\n model.value = (e.target as HTMLInputElement).checked\n }\n\n useRender(() => {\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n const inputNode = (\n \n )\n\n return (\n \n \n { slots.default?.({\n backgroundColorClasses,\n backgroundColorStyles,\n })}\n\n \n { slots.input?.({\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n inputNode,\n icon: icon.value,\n props: {\n onFocus,\n onBlur,\n id: id.value,\n },\n } satisfies SelectionControlSlot) ?? (\n <>\n { icon.value && }\n\n { inputNode }\n \n )}\n \n \n\n { label && (\n \n { label }\n \n )}\n \n )\n })\n\n return {\n isFocused,\n input,\n }\n },\n})\n\nexport type VSelectionControl = InstanceType\n","// Styles\nimport './VCounter.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\n\nexport const makeVCounterProps = propsFactory({\n active: Boolean,\n disabled: Boolean,\n max: [Number, String],\n value: {\n type: [Number, String],\n default: 0,\n },\n\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: { component: VSlideYTransition as Component },\n }),\n}, 'VCounter')\n\nexport type VCounterSlot = {\n counter: string\n max: string | number | undefined\n value: string | number | undefined\n}\n\ntype VCounterSlots = {\n default: VCounterSlot\n}\n\nexport const VCounter = genericComponent()({\n name: 'VCounter',\n\n functional: true,\n\n props: makeVCounterProps(),\n\n setup (props, { slots }) {\n const counter = computed(() => {\n return props.max ? `${props.value} / ${props.max}` : String(props.value)\n })\n\n useRender(() => (\n \n parseFloat(props.max),\n },\n props.class,\n ]}\n style={ props.style }\n >\n { slots.default\n ? slots.default({\n counter: counter.value,\n max: props.max,\n value: props.value,\n })\n : counter.value\n }\n \n \n ))\n\n return {}\n },\n})\n\nexport type VCounter = InstanceType\n","// Components\nimport { VLabel } from '@/components/VLabel'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVFieldLabelProps = propsFactory({\n floating: Boolean,\n\n ...makeComponentProps(),\n}, 'VFieldLabel')\n\nexport const VFieldLabel = genericComponent()({\n name: 'VFieldLabel',\n\n props: makeVFieldLabelProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n \n ))\n\n return {}\n },\n})\n\nexport type VFieldLabel = InstanceType\n","// Styles\nimport './VField.sass'\n\n// Components\nimport { VFieldLabel } from './VFieldLabel'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n animate,\n convertToUnit,\n EventProp,\n genericComponent,\n getUid,\n isOn,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref\n isFocused: Ref\n controlRef: Ref\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n centerAffix: {\n type: Boolean,\n default: undefined,\n },\n color: String,\n baseColor: String,\n dirty: Boolean,\n disabled: {\n type: Boolean,\n default: null,\n },\n error: Boolean,\n flat: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n 'onClick:clear': EventProp<[MouseEvent]>(),\n 'onClick:appendInner': EventProp<[MouseEvent]>(),\n 'onClick:prependInner': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeLoaderProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n}, 'VField')\n\nexport type VFieldSlots = {\n clear: DefaultInputSlot & { props: Record }\n 'prepend-inner': DefaultInputSlot\n 'append-inner': DefaultInputSlot\n label: DefaultInputSlot & { label: string | undefined, props: Record }\n loader: LoaderSlotProps\n default: VFieldSlot\n}\n\nexport const VField = genericComponent(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VFieldSlots\n) => GenericProps>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n const { InputIcon } = useInputIcon(props)\n const { roundedClasses } = useRounded(props)\n const { rtlClasses } = useRtl()\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const labelRef = ref()\n const floatingLabelRef = ref()\n const controlRef = ref()\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return props.error || props.disabled ? undefined\n : isActive.value && isFocused.value ? props.color\n : props.baseColor\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const style = getComputedStyle(el)\n const targetStyle = getComputedStyle(targetEl)\n const duration = parseFloat(style.transitionDuration) * 1000 || 150\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'))\n const color = targetStyle.getPropertyValue('color')\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width,\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n }\n\n function onKeydownClear (e: KeyboardEvent) {\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n e.preventDefault()\n e.stopPropagation()\n\n props['onClick:clear']?.(new MouseEvent('click'))\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear)\n const label = () => (\n slots.label\n ? slots.label({\n ...slotProps.value,\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n )\n\n return (\n \n
\n\n \n\n { hasPrepend && (\n
\n { props.prependInnerIcon && (\n \n )}\n\n { slots['prepend-inner']?.(slotProps.value) }\n
\n )}\n\n
\n {['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && (\n \n { label() }\n \n )}\n\n \n { label() }\n \n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value,\n },\n focus,\n blur,\n } as VFieldSlot)}\n
\n\n { hasClear && (\n \n {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n \n { slots.clear\n ? slots.clear({\n ...slotProps.value,\n props: {\n onKeydown: onKeydownClear,\n onFocus: focus,\n onBlur: blur,\n onClick: props['onClick:clear'],\n },\n })\n : (\n \n )}\n \n
\n \n )}\n\n { hasAppend && (\n
\n { slots['append-inner']?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n \n )}\n
\n )}\n\n \n { isOutlined && (\n <>\n
\n\n { hasLabel.value && (\n
\n \n { label() }\n \n
\n )}\n\n
\n \n )}\n\n { isPlainOrUnderlined.value && hasLabel.value && (\n \n { label() }\n \n )}\n
\n
\n )\n })\n\n return {\n controlRef,\n }\n },\n})\n\nexport type VField = InstanceType\n\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps (attrs: Record) {\n const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style')\n return pick(attrs, keys)\n}\n","// Styles\nimport './VTextField.sass'\n\n// Components\nimport { VCounter } from '@/components/VCounter/VCounter'\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue'\nimport { callEvent, filterInputAttrs, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VCounterSlot } from '@/components/VCounter/VCounter'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function] as PropType number)>,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text',\n },\n modelModifiers: Object as PropType>,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n}, 'VTextField')\n\nexport type VTextFieldSlots = Omit & {\n default: never\n counter: VCounterSlot\n}\n\nexport const VTextField = genericComponent()({\n name: 'VTextField',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: makeVTextFieldProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value)\n : typeof props.counterValue === 'number' ? props.counterValue\n : (model.value ?? '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as unknown as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref()\n const vFieldRef = ref()\n const inputRef = ref()\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value ||\n props.active\n ))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n\n if (e.target === inputRef.value) return\n\n onFocus()\n e.preventDefault()\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = null\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value\n if (\n props.modelModifiers?.trim &&\n ['text', 'search', 'password', 'tel', 'url'].includes(props.type)\n ) {\n const caretPosition = [el.selectionStart, el.selectionEnd]\n nextTick(() => {\n el.selectionStart = caretPosition[0]\n el.selectionEnd = caretPosition[1]\n })\n }\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || (props.counter !== false && props.counter != null))\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = filterFieldProps(props)\n\n return (\n \n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n \n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => {\n const inputNode = (\n \n )\n\n return (\n <>\n { props.prefix && (\n \n \n { props.prefix }\n \n \n )}\n\n { slots.default ? (\n \n { slots.default() }\n { inputNode }\n \n ) : cloneVNode(inputNode, { class: fieldClass })}\n\n { props.suffix && (\n \n \n { props.suffix }\n \n \n )}\n \n )\n },\n }}\n \n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n \n\n \n \n )}\n \n ) : undefined,\n }}\n \n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType\n","// Styles\nimport './VTooltip.sass'\n\n// Components\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { computed, mergeProps, ref } from 'vue'\nimport { genericComponent, getUid, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { StrategyProps } from '@/components/VOverlay/locationStrategies'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVTooltipProps = propsFactory({\n id: String,\n text: String,\n\n ...omit(makeVOverlayProps({\n closeOnBack: false,\n location: 'end' as const,\n locationStrategy: 'connected' as const,\n eager: true,\n minWidth: 0,\n offset: 10,\n openOnClick: false,\n openOnHover: true,\n origin: 'auto' as const,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: false,\n }), [\n 'absolute',\n 'persistent',\n ]),\n}, 'VTooltip')\n\nexport const VTooltip = genericComponent()({\n name: 'VTooltip',\n\n props: makeVTooltipProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-tooltip-${uid}`)\n\n const overlay = ref()\n\n const location = computed(() => {\n return props.location.split(' ').length > 1\n ? props.location\n : props.location + ' center' as StrategyProps['location']\n })\n\n const origin = computed(() => {\n return (\n props.origin === 'auto' ||\n props.origin === 'overlap' ||\n props.origin.split(' ').length > 1 ||\n props.location.split(' ').length > 1\n ) ? props.origin\n : props.origin + ' center' as StrategyProps['origin']\n })\n\n const transition = computed(() => {\n if (props.transition) return props.transition\n return isActive.value ? 'scale-transition' : 'fade-transition'\n })\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-describedby': id.value,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n \n {{\n activator: slots.activator,\n default: (...args) => slots.default?.(...args) ?? props.text,\n }}\n \n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VTooltip = InstanceType\n","// Utilities\nimport { h, Transition, TransitionGroup } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { FunctionalComponent, PropType } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n disabled: Boolean,\n group: Boolean,\n hideOnLeave: Boolean,\n leaveAbsolute: Boolean,\n mode: String,\n origin: String,\n}, 'transition')\n\nexport function createCssTransition (\n name: string,\n origin?: string,\n mode?: string\n) {\n return genericComponent()({\n name,\n\n props: makeTransitionProps({\n mode,\n origin,\n }),\n\n setup (props, { slots }) {\n const functions = {\n onBeforeEnter (el: HTMLElement) {\n if (props.origin) {\n el.style.transformOrigin = props.origin\n }\n },\n onLeave (el: HTMLElement) {\n if (props.leaveAbsolute) {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = `${offsetTop}px`\n el.style.left = `${offsetLeft}px`\n el.style.width = `${offsetWidth}px`\n el.style.height = `${offsetHeight}px`\n }\n\n if (props.hideOnLeave) {\n el.style.setProperty('display', 'none', 'important')\n }\n },\n onAfterLeave (el: HTMLElement) {\n if (props.leaveAbsolute && el?._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n },\n }\n\n return () => {\n const tag = props.group ? TransitionGroup : Transition\n\n return h(tag as FunctionalComponent, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n ...(props.group ? undefined : { mode: props.mode }),\n ...(props.disabled ? {} : functions),\n }, slots.default)\n }\n },\n })\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record,\n mode = 'in-out'\n) {\n return genericComponent()({\n name,\n\n props: {\n mode: {\n type: String as PropType<'in-out' | 'out-in' | 'default'>,\n default: mode,\n },\n disabled: Boolean,\n group: Boolean,\n },\n\n setup (props, { slots }) {\n const tag = props.group ? TransitionGroup : Transition\n\n return () => {\n return h(tag as FunctionalComponent, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n // mode: props.mode, // TODO: vuejs/vue-next#3104\n ...(props.disabled ? {} : functions),\n }, slots.default)\n }\n },\n })\n}\n","// Utilities\nimport { Transition } from 'vue'\nimport {\n acceleratedEasing,\n animate,\n deceleratedEasing,\n genericComponent,\n nullifyTransforms,\n propsFactory,\n standardEasing,\n} from '@/util'\nimport { getTargetBox } from '@/util/box'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDialogTransitionProps = propsFactory({\n target: [Object, Array] as PropType,\n}, 'v-dialog-transition')\n\nexport const VDialogTransition = genericComponent()({\n name: 'VDialogTransition',\n\n props: makeVDialogTransitionProps(),\n\n setup (props, { slots }) {\n const functions = {\n onBeforeEnter (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n ;(el as HTMLElement).style.visibility = 'hidden'\n },\n async onEnter (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n await new Promise(resolve => requestAnimationFrame(resolve))\n ;(el as HTMLElement).style.visibility = ''\n\n const { x, y, sx, sy, speed } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = animate(el, [\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n {},\n ], {\n duration: 225 * speed,\n easing: deceleratedEasing,\n })\n getChildren(el)?.forEach(el => {\n animate(el, [\n { opacity: 0 },\n { opacity: 0, offset: 0.33 },\n {},\n ], {\n duration: 225 * 2 * speed,\n easing: standardEasing,\n })\n })\n animation.finished.then(() => done())\n },\n onAfterEnter (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n onBeforeLeave (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n },\n async onLeave (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n\n const { x, y, sx, sy, speed } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = animate(el, [\n {},\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n ], {\n duration: 125 * speed,\n easing: acceleratedEasing,\n })\n animation.finished.then(() => done())\n getChildren(el)?.forEach(el => {\n animate(el, [\n {},\n { opacity: 0, offset: 0.2 },\n { opacity: 0 },\n ], {\n duration: 125 * 2 * speed,\n easing: standardEasing,\n })\n })\n },\n onAfterLeave (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n }\n\n return () => {\n return props.target\n ? (\n \n )\n : \n }\n },\n})\n\n/** Animatable children (card, sheet, list) */\nfunction getChildren (el: Element) {\n const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children\n return els && [...els]\n}\n\nfunction getDimensions (target: HTMLElement | [x: number, y: number], el: HTMLElement) {\n const targetBox = getTargetBox(target)\n const elBox = nullifyTransforms(el)\n const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v))\n\n const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ')\n\n let offsetX = targetBox.left + targetBox.width / 2\n if (anchorSide === 'left' || anchorOffset === 'left') {\n offsetX -= targetBox.width / 2\n } else if (anchorSide === 'right' || anchorOffset === 'right') {\n offsetX += targetBox.width / 2\n }\n\n let offsetY = targetBox.top + targetBox.height / 2\n if (anchorSide === 'top' || anchorOffset === 'top') {\n offsetY -= targetBox.height / 2\n } else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {\n offsetY += targetBox.height / 2\n }\n\n const tsx = targetBox.width / elBox.width\n const tsy = targetBox.height / elBox.height\n const maxs = Math.max(1, tsx, tsy)\n const sx = tsx / maxs || 0\n const sy = tsy / maxs || 0\n\n // Animate elements larger than 12% of the screen area up to 1.5x slower\n const asa = (elBox.width * elBox.height) / (window.innerWidth * window.innerHeight)\n const speed = asa > 0.12\n ? Math.min(1.5, (asa - 0.12) * 10 + 1)\n : 1\n\n return {\n x: offsetX - (originX + elBox.left),\n y: offsetY - (originY + elBox.top),\n sx,\n sy,\n speed,\n }\n}\n\nexport type VDialogTransition = InstanceType\n","// Utilities\nimport { camelize } from 'vue'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = camelize(`offset-${sizeProperty}`) as 'offsetHeight' | 'offsetWidth'\n\n return {\n onBeforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n onEnter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n onAfterEnter: resetStyles,\n onEnterCancelled: resetStyles,\n\n onLeave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n onAfterLeave,\n onLeaveCancelled: onAfterLeave,\n }\n\n function onAfterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","// Utilities\nimport { computed, isRef } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface BorderProps {\n border?: boolean | number | string\n}\n\n// Composables\nexport const makeBorderProps = propsFactory({\n border: [Boolean, Number, String],\n}, 'border')\n\nexport function useBorder (\n props: BorderProps,\n name = getCurrentInstanceName(),\n) {\n const borderClasses = computed(() => {\n const border = isRef(props) ? props.value : props.border\n const classes: string[] = []\n\n if (border === true || border === '') {\n classes.push(`${name}--border`)\n } else if (\n typeof border === 'string' ||\n border === 0\n ) {\n for (const value of String(border).split(' ')) {\n classes.push(`border-${value}`)\n }\n }\n\n return classes\n })\n\n return { borderClasses }\n}\n","// Utilities\nimport { computed, isRef } from 'vue'\nimport { destructComputed, getForeground, isCssColor, isParsableColor, parseColor } from '@/util'\n\n// Types\nimport type { CSSProperties, Ref } from 'vue'\n\ntype ColorValue = string | false | null | undefined\n\nexport interface TextColorData {\n textColorClasses: Ref\n textColorStyles: Ref\n}\n\nexport interface BackgroundColorData {\n backgroundColorClasses: Ref\n backgroundColorStyles: Ref\n}\n\n// Composables\nexport function useColor (colors: Ref<{ background?: ColorValue, text?: ColorValue }>) {\n return destructComputed(() => {\n const classes: string[] = []\n const styles: CSSProperties = {}\n\n if (colors.value.background) {\n if (isCssColor(colors.value.background)) {\n styles.backgroundColor = colors.value.background\n\n if (!colors.value.text && isParsableColor(colors.value.background)) {\n const backgroundColor = parseColor(colors.value.background)\n if (backgroundColor.a == null || backgroundColor.a === 1) {\n const textColor = getForeground(backgroundColor)\n\n styles.color = textColor\n styles.caretColor = textColor\n }\n }\n } else {\n classes.push(`bg-${colors.value.background}`)\n }\n }\n\n if (colors.value.text) {\n if (isCssColor(colors.value.text)) {\n styles.color = colors.value.text\n styles.caretColor = colors.value.text\n } else {\n classes.push(`text-${colors.value.text}`)\n }\n }\n\n return { colorClasses: classes, colorStyles: styles }\n })\n}\n\nexport function useTextColor (color: Ref): TextColorData\nexport function useTextColor , K extends string> (props: T, name: K): TextColorData\nexport function useTextColor , K extends string> (\n props: T | Ref,\n name?: K\n): TextColorData {\n const colors = computed(() => ({\n text: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles,\n } = useColor(colors)\n\n return { textColorClasses, textColorStyles }\n}\n\nexport function useBackgroundColor (color: Ref): BackgroundColorData\nexport function useBackgroundColor , K extends string> (props: T, name: K): BackgroundColorData\nexport function useBackgroundColor , K extends string> (\n props: T | Ref,\n name?: K\n): BackgroundColorData {\n const colors = computed(() => ({\n background: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles,\n } = useColor(colors)\n\n return { backgroundColorClasses, backgroundColorStyles }\n}\n","// Utilities\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type { PropType, StyleValue } from 'vue'\n\nexport type ClassValue = any\n\nexport interface ComponentProps {\n class: ClassValue\n style: StyleValue | undefined\n}\n\n// Composables\nexport const makeComponentProps = propsFactory({\n class: [String, Array, Object] as PropType,\n style: {\n type: [String, Array, Object] as PropType,\n default: null,\n },\n}, 'component')\n","// Utilities\nimport { getCurrentInstance } from '@/util/getCurrentInstance'\n\n// Types\nimport type { ComponentInternalInstance, InjectionKey } from 'vue'\n\nexport function injectSelf(key: InjectionKey | string, vm?: ComponentInternalInstance): T | undefined\nexport function injectSelf (key: InjectionKey | string, vm = getCurrentInstance('injectSelf')) {\n const { provides } = vm\n\n if (provides && (key as string | symbol) in provides) {\n // TS doesn't allow symbol as index type\n return provides[key as string]\n }\n return undefined\n}\n","// Utilities\nimport { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue'\nimport { getCurrentInstance } from '@/util/getCurrentInstance'\nimport { mergeDeep, toKebabCase } from '@/util/helpers'\nimport { injectSelf } from '@/util/injectSelf'\n\n// Types\nimport type { ComputedRef, InjectionKey, Ref, VNode } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport type DefaultsInstance = undefined | {\n [key: string]: undefined | Record\n global?: Record\n}\n\nexport type DefaultsOptions = Partial\n\nexport const DefaultsSymbol: InjectionKey> = Symbol.for('vuetify:defaults')\n\nexport function createDefaults (options?: DefaultsInstance): Ref {\n return ref(options)\n}\n\nexport function injectDefaults () {\n const defaults = inject(DefaultsSymbol)\n\n if (!defaults) throw new Error('[Vuetify] Could not find defaults instance')\n\n return defaults\n}\n\nexport function provideDefaults (\n defaults?: MaybeRef,\n options?: {\n disabled?: MaybeRef\n reset?: MaybeRef\n root?: MaybeRef\n scoped?: MaybeRef\n }\n) {\n const injectedDefaults = injectDefaults()\n const providedDefaults = ref(defaults)\n\n const newDefaults = computed(() => {\n const disabled = unref(options?.disabled)\n\n if (disabled) return injectedDefaults.value\n\n const scoped = unref(options?.scoped)\n const reset = unref(options?.reset)\n const root = unref(options?.root)\n\n if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value\n\n let properties = mergeDeep(providedDefaults.value, { prev: injectedDefaults.value })\n\n if (scoped) return properties\n\n if (reset || root) {\n const len = Number(reset || Infinity)\n\n for (let i = 0; i <= len; i++) {\n if (!properties || !('prev' in properties)) {\n break\n }\n\n properties = properties.prev\n }\n\n if (properties && typeof root === 'string' && root in properties) {\n properties = mergeDeep(mergeDeep(properties, { prev: properties }), properties[root])\n }\n\n return properties\n }\n\n return properties.prev\n ? mergeDeep(properties.prev, properties)\n : properties\n }) as ComputedRef\n\n provide(DefaultsSymbol, newDefaults)\n\n return newDefaults\n}\n\nfunction propIsDefined (vnode: VNode, prop: string) {\n return typeof vnode.props?.[prop] !== 'undefined' ||\n typeof vnode.props?.[toKebabCase(prop)] !== 'undefined'\n}\n\nexport function internalUseDefaults (\n props: Record = {},\n name?: string,\n defaults = injectDefaults()\n) {\n const vm = getCurrentInstance('useDefaults')\n\n name = name ?? vm.type.name ?? vm.type.__name\n if (!name) {\n throw new Error('[Vuetify] Could not determine component name')\n }\n\n const componentDefaults = computed(() => defaults.value?.[props._as ?? name])\n const _props = new Proxy(props, {\n get (target, prop) {\n const propValue = Reflect.get(target, prop)\n if (prop === 'class' || prop === 'style') {\n return [componentDefaults.value?.[prop], propValue].filter(v => v != null)\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop]\n : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop]\n : propValue\n }\n return propValue\n },\n })\n\n const _subcomponentDefaults = shallowRef()\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(([key]) => key.startsWith(key[0].toUpperCase()))\n _subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined\n } else {\n _subcomponentDefaults.value = undefined\n }\n })\n\n function provideSubDefaults () {\n const injected = injectSelf(DefaultsSymbol, vm)\n provide(DefaultsSymbol, computed(() => {\n return _subcomponentDefaults.value ? mergeDeep(\n injected?.value ?? {},\n _subcomponentDefaults.value\n ) : injected?.value\n }))\n }\n\n return { props: _props, provideSubDefaults }\n}\n\nexport function useDefaults> (props: T, name?: string): T\nexport function useDefaults (props?: undefined, name?: string): Record\nexport function useDefaults (\n props: Record = {},\n name?: string,\n) {\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, name)\n provideSubDefaults()\n return _props\n}\n","// Utilities\nimport { defer, propsFactory } from '@/util'\n\n// Types\nexport interface DelayProps {\n closeDelay?: number | string\n openDelay?: number | string\n}\n\n// Composables\nexport const makeDelayProps = propsFactory({\n closeDelay: [Number, String],\n openDelay: [Number, String],\n}, 'delay')\n\nexport function useDelay (props: DelayProps, cb?: (value: boolean) => void) {\n let clearDelay: (() => void) = () => {}\n\n function runDelay (isOpening: boolean) {\n clearDelay?.()\n\n const delay = Number(isOpening ? props.openDelay : props.closeDelay)\n\n return new Promise(resolve => {\n clearDelay = defer(delay, () => {\n cb?.(isOpening)\n resolve(isOpening)\n })\n })\n }\n\n function runOpenDelay () {\n return runDelay(true)\n }\n\n function runCloseDelay () {\n return runDelay(false)\n }\n\n return {\n clearDelay,\n runOpenDelay,\n runCloseDelay,\n }\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'] as const\n\n// typeof allowedDensities[number] evalutes to any\n// when generating api types for whatever reason.\nexport type Density = null | 'default' | 'comfortable' | 'compact'\n\nexport interface DensityProps {\n density?: Density\n}\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String as PropType,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n}, 'density')\n\nexport function useDensity (\n props: DensityProps,\n name = getCurrentInstanceName(),\n) {\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`\n })\n\n return { densityClasses }\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nexport interface DimensionProps {\n height?: number | string\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n width?: number | string\n}\n\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String],\n}, 'dimension')\n\nexport function useDimension (props: DimensionProps) {\n const dimensionStyles = computed(() => {\n const styles: Record = {}\n\n const height = convertToUnit(props.height)\n const maxHeight = convertToUnit(props.maxHeight)\n const maxWidth = convertToUnit(props.maxWidth)\n const minHeight = convertToUnit(props.minHeight)\n const minWidth = convertToUnit(props.minWidth)\n const width = convertToUnit(props.width)\n\n if (height != null) styles.height = height\n if (maxHeight != null) styles.maxHeight = maxHeight\n if (maxWidth != null) styles.maxWidth = maxWidth\n if (minHeight != null) styles.minHeight = minHeight\n if (minWidth != null) styles.minWidth = minWidth\n if (width != null) styles.width = width\n\n return styles\n })\n\n return { dimensionStyles }\n}\n","// Utilities\nimport { computed, inject, reactive, shallowRef, toRefs, watchEffect } from 'vue'\nimport { getCurrentInstanceName, mergeDeep, propsFactory } from '@/util'\nimport { IN_BROWSER, SUPPORTS_TOUCH } from '@/util/globals'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\n\nexport const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nexport type Breakpoint = typeof breakpoints[number]\n\nexport type DisplayBreakpoint = 'xs' | Breakpoint\n\nexport type DisplayThresholds = {\n [key in DisplayBreakpoint]: number\n}\n\nexport interface DisplayProps {\n mobile?: boolean | null\n mobileBreakpoint?: number | DisplayBreakpoint\n}\n\nexport interface DisplayOptions {\n mobileBreakpoint?: number | DisplayBreakpoint\n thresholds?: Partial\n}\n\nexport interface InternalDisplayOptions {\n mobileBreakpoint: number | DisplayBreakpoint\n thresholds: DisplayThresholds\n}\n\nexport type SSROptions = boolean | {\n clientWidth: number\n clientHeight?: number\n}\n\nexport interface DisplayPlatform {\n android: boolean\n ios: boolean\n cordova: boolean\n electron: boolean\n chrome: boolean\n edge: boolean\n firefox: boolean\n opera: boolean\n win: boolean\n mac: boolean\n linux: boolean\n touch: boolean\n ssr: boolean\n}\n\nexport interface DisplayInstance {\n xs: Ref\n sm: Ref\n md: Ref\n lg: Ref\n xl: Ref\n xxl: Ref\n smAndUp: Ref\n mdAndUp: Ref\n lgAndUp: Ref\n xlAndUp: Ref\n smAndDown: Ref\n mdAndDown: Ref\n lgAndDown: Ref\n xlAndDown: Ref\n name: Ref\n height: Ref\n width: Ref\n mobile: Ref\n mobileBreakpoint: Ref\n platform: Ref\n thresholds: Ref\n\n /** @internal */\n ssr: boolean\n\n update (): void\n}\n\nexport const DisplaySymbol: InjectionKey = Symbol.for('vuetify:display')\n\nconst defaultDisplayOptions: DisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560,\n },\n}\n\nconst parseDisplayOptions = (options: DisplayOptions = defaultDisplayOptions) => {\n return mergeDeep(defaultDisplayOptions, options) as InternalDisplayOptions\n}\n\nfunction getClientWidth (ssr?: SSROptions) {\n return IN_BROWSER && !ssr\n ? window.innerWidth\n : (typeof ssr === 'object' && ssr.clientWidth) || 0\n}\n\nfunction getClientHeight (ssr?: SSROptions) {\n return IN_BROWSER && !ssr\n ? window.innerHeight\n : (typeof ssr === 'object' && ssr.clientHeight) || 0\n}\n\nfunction getPlatform (ssr?: SSROptions): DisplayPlatform {\n const userAgent = IN_BROWSER && !ssr\n ? window.navigator.userAgent\n : 'ssr'\n\n function match (regexp: RegExp) {\n return Boolean(userAgent.match(regexp))\n }\n\n const android = match(/android/i)\n const ios = match(/iphone|ipad|ipod/i)\n const cordova = match(/cordova/i)\n const electron = match(/electron/i)\n const chrome = match(/chrome/i)\n const edge = match(/edge/i)\n const firefox = match(/firefox/i)\n const opera = match(/opera/i)\n const win = match(/win/i)\n const mac = match(/mac/i)\n const linux = match(/linux/i)\n\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr: userAgent === 'ssr',\n }\n}\n\nexport function createDisplay (options?: DisplayOptions, ssr?: SSROptions): DisplayInstance {\n const { thresholds, mobileBreakpoint } = parseDisplayOptions(options)\n\n const height = shallowRef(getClientHeight(ssr))\n const platform = shallowRef(getPlatform(ssr))\n const state = reactive({} as DisplayInstance)\n const width = shallowRef(getClientWidth(ssr))\n\n function updateSize () {\n height.value = getClientHeight()\n width.value = getClientWidth()\n }\n function update () {\n updateSize()\n platform.value = getPlatform()\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm\n const sm = width.value < thresholds.md && !xs\n const md = width.value < thresholds.lg && !(sm || xs)\n const lg = width.value < thresholds.xl && !(md || sm || xs)\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs)\n const xxl = width.value >= thresholds.xxl\n const name =\n xs ? 'xs'\n : sm ? 'sm'\n : md ? 'md'\n : lg ? 'lg'\n : xl ? 'xl'\n : 'xxl'\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint]\n const mobile = width.value < breakpointValue\n\n state.xs = xs\n state.sm = sm\n state.md = md\n state.lg = lg\n state.xl = xl\n state.xxl = xxl\n state.smAndUp = !xs\n state.mdAndUp = !(xs || sm)\n state.lgAndUp = !(xs || sm || md)\n state.xlAndUp = !(xs || sm || md || lg)\n state.smAndDown = !(md || lg || xl || xxl)\n state.mdAndDown = !(lg || xl || xxl)\n state.lgAndDown = !(xl || xxl)\n state.xlAndDown = !xxl\n state.name = name\n state.height = height.value\n state.width = width.value\n state.mobile = mobile\n state.mobileBreakpoint = mobileBreakpoint\n state.platform = platform.value\n state.thresholds = thresholds\n })\n\n if (IN_BROWSER) {\n window.addEventListener('resize', updateSize, { passive: true })\n }\n\n return { ...toRefs(state), update, ssr: !!ssr }\n}\n\nexport const makeDisplayProps = propsFactory({\n mobile: {\n type: Boolean as PropType,\n default: false,\n },\n mobileBreakpoint: [Number, String] as PropType,\n}, 'display')\n\nexport function useDisplay (\n props: DisplayProps = {},\n name = getCurrentInstanceName(),\n) {\n const display = inject(DisplaySymbol)\n\n if (!display) throw new Error('Could not find Vuetify display injection')\n\n const mobile = computed(() => {\n if (props.mobile != null) return props.mobile\n if (!props.mobileBreakpoint) return display.mobile.value\n\n const breakpointValue = typeof props.mobileBreakpoint === 'number'\n ? props.mobileBreakpoint\n : display.thresholds.value[props.mobileBreakpoint]\n\n return display.width.value < breakpointValue\n })\n\n const displayClasses = computed(() => {\n if (!name) return {}\n\n return { [`${name}--mobile`]: mobile.value }\n })\n\n return { ...display, displayClasses, mobile }\n}\n","// Utilities\nimport { computed, isRef } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nexport interface ElevationProps {\n elevation?: number | string | null\n}\n\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n validator (v: any) {\n const value = parseInt(v)\n\n return (\n !isNaN(value) &&\n value >= 0 &&\n // Material Design has a maximum elevation of 24\n // https://material.io/design/environment/elevation.html#default-elevations\n value <= 24\n )\n },\n },\n}, 'elevation')\n\ntype ElevationData = {\n elevationClasses: Ref\n}\n\nexport function useElevation (props: ElevationProps | Ref): ElevationData {\n const elevationClasses = computed(() => {\n const elevation = isRef(props) ? props.value : props.elevation\n const classes: string[] = []\n\n if (elevation == null) return classes\n\n classes.push(`elevation-${elevation}`)\n\n return classes\n })\n\n return { elevationClasses }\n}\n","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface FocusProps {\n focused: boolean\n 'onUpdate:focused': ((focused: boolean) => any) | undefined\n}\n\n// Composables\nexport const makeFocusProps = propsFactory({\n focused: Boolean,\n 'onUpdate:focused': EventProp<[boolean]>(),\n}, 'focus')\n\nexport function useFocus (\n props: FocusProps,\n name = getCurrentInstanceName()\n) {\n const isFocused = useProxiedModel(props, 'focused')\n const focusClasses = computed(() => {\n return ({\n [`${name}--focused`]: isFocused.value,\n })\n })\n\n function focus () {\n isFocused.value = true\n }\n\n function blur () {\n isFocused.value = false\n }\n\n return { focusClasses, isFocused, focus, blur }\n}\n","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, markRaw, provide, ref, shallowRef, toRef, watch } from 'vue'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, InjectionKey, PropType, Raw, Ref } from 'vue'\nimport type { ValidationProps } from './validation'\nimport type { EventProp } from '@/util'\n\nexport interface FormProvide {\n register: (item: {\n id: number | string\n vm: ComponentInternalInstance\n validate: () => Promise\n reset: () => Promise\n resetValidation: () => Promise\n }) => void\n unregister: (id: number | string) => void\n update: (id: number | string, isValid: boolean | null, errorMessages: string[]) => void\n items: Ref\n isDisabled: ComputedRef\n isReadonly: ComputedRef\n isValidating: Ref\n isValid: Ref\n validateOn: Ref\n}\n\nexport interface FormField {\n id: number | string\n validate: () => Promise\n reset: () => Promise\n resetValidation: () => Promise\n vm: Raw\n isValid: boolean | null\n errorMessages: string[]\n}\n\nexport interface FieldValidationResult {\n id: number | string\n errorMessages: string[]\n}\n\nexport interface FormValidationResult {\n valid: boolean\n errors: FieldValidationResult[]\n}\n\nexport interface SubmitEventPromise extends SubmitEvent, Promise {}\n\nexport const FormKey: InjectionKey = Symbol.for('vuetify:form')\n\nexport interface FormProps {\n disabled: boolean\n fastFail: boolean\n readonly: boolean\n modelValue: boolean | null\n 'onUpdate:modelValue': EventProp<[boolean | null]> | undefined\n validateOn: ValidationProps['validateOn']\n}\n\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean as PropType,\n default: null,\n },\n validateOn: {\n type: String as PropType,\n default: 'input',\n },\n}, 'form')\n\nexport function createForm (props: FormProps) {\n const model = useProxiedModel(props, 'modelValue')\n\n const isDisabled = computed(() => props.disabled)\n const isReadonly = computed(() => props.readonly)\n const isValidating = shallowRef(false)\n const items = ref([])\n const errors = ref([])\n\n async function validate () {\n const results = []\n let valid = true\n\n errors.value = []\n isValidating.value = true\n\n for (const item of items.value) {\n const itemErrorMessages = await item.validate()\n\n if (itemErrorMessages.length > 0) {\n valid = false\n\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages,\n })\n }\n\n if (!valid && props.fastFail) break\n }\n\n errors.value = results\n isValidating.value = false\n\n return { valid, errors: errors.value }\n }\n\n function reset () {\n items.value.forEach(item => item.reset())\n }\n\n function resetValidation () {\n items.value.forEach(item => item.resetValidation())\n }\n\n watch(items, () => {\n let valid = 0\n let invalid = 0\n const results = []\n\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++\n results.push({\n id: item.id,\n errorMessages: item.errorMessages,\n })\n } else if (item.isValid === true) valid++\n }\n\n errors.value = results\n model.value =\n invalid > 0 ? false\n : valid === items.value.length ? true\n : null\n }, { deep: true, flush: 'post' })\n\n provide(FormKey, {\n register: ({ id, vm, validate, reset, resetValidation }) => {\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`)\n }\n\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n vm: markRaw(vm),\n isValid: null,\n errorMessages: [],\n })\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id\n })\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id)\n\n if (!found) return\n\n found.isValid = isValid\n found.errorMessages = errorMessages\n },\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validateOn: toRef(props, 'validateOn'),\n })\n\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validate,\n reset,\n resetValidation,\n }\n}\n\nexport function useForm () {\n return inject(FormKey, null)\n}\n","// Types\nimport type { ComponentPublicInstance, Ref, UnwrapRef } from 'vue'\nimport type { UnionToIntersection } from '@/util'\n\nconst Refs = Symbol('Forwarded refs')\n\n/** Omit properties starting with P */\ntype OmitPrefix = [Extract] extends [never] ? T : Omit\n\ntype OmitProps = T extends { $props: any } ? Omit : T\n\nfunction getDescriptor (obj: any, key: PropertyKey) {\n let currentObj = obj\n while (currentObj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key)\n if (descriptor) return descriptor\n currentObj = Object.getPrototypeOf(currentObj)\n }\n return undefined\n}\n\nexport function forwardRefs | undefined>[]> (\n target: T,\n ...refs: U\n): T & UnionToIntersection<{ [K in keyof U]: OmitPrefix>>, '$'> }[number]> {\n (target as any)[Refs] = refs\n\n return new Proxy(target, {\n get (target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key)\n return typeof val === 'function'\n ? val.bind(ref.value)\n : val\n }\n }\n },\n has (target, key) {\n if (Reflect.has(target, key)) {\n return true\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return true\n }\n }\n return false\n },\n set (target, key, value) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value)\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return Reflect.set(ref.value, key, value)\n }\n }\n\n return false\n },\n getOwnPropertyDescriptor (target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key)\n if (descriptor) return descriptor\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue\n const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined)\n if (descriptor) return descriptor\n }\n\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (!childRefs) continue\n const queue = childRefs.slice()\n while (queue.length) {\n const ref = queue.shift()\n const descriptor = getDescriptor(ref.value, key)\n if (descriptor) return descriptor\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (childRefs) queue.push(...childRefs)\n }\n }\n\n return undefined\n },\n }) as any\n}\n","// Utilities\nimport { computed, inject } from 'vue'\nimport { useRtl } from './locale'\nimport { clamp, consoleWarn, mergeDeep, refElement } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance, InjectionKey, Ref } from 'vue'\nimport type { LocaleInstance, RtlInstance } from './locale'\n\nexport interface GoToInstance {\n rtl: Ref\n options: InternalGoToOptions\n}\n\nexport interface InternalGoToOptions {\n container: ComponentPublicInstance | HTMLElement | string\n duration: number\n layout: boolean\n offset: number\n easing: string | ((t: number) => number)\n patterns: Record number>\n}\n\nexport type GoToOptions = Partial\n\nexport const GoToSymbol: InjectionKey = Symbol.for('vuetify:goto')\n\nfunction genDefaults () {\n return {\n container: undefined,\n duration: 300,\n layout: false,\n offset: 0,\n easing: 'easeInOutCubic',\n patterns: {\n linear: (t: number) => t,\n easeInQuad: (t: number) => t ** 2,\n easeOutQuad: (t: number) => t * (2 - t),\n easeInOutQuad: (t: number) => (t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t),\n easeInCubic: (t: number) => t ** 3,\n easeOutCubic: (t: number) => --t ** 3 + 1,\n easeInOutCubic: (t: number) => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: (t: number) => t ** 4,\n easeOutQuart: (t: number) => 1 - --t ** 4,\n easeInOutQuart: (t: number) => (t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4),\n easeInQuint: (t: number) => t ** 5,\n easeOutQuint: (t: number) => 1 + --t ** 5,\n easeInOutQuint: (t: number) => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5,\n },\n }\n}\n\nfunction getContainer (el?: ComponentPublicInstance | HTMLElement | string) {\n return getTarget(el) ?? (document.scrollingElement || document.body) as HTMLElement\n}\n\nfunction getTarget (el: ComponentPublicInstance | HTMLElement | string | undefined) {\n return (typeof el === 'string') ? document.querySelector(el) : refElement(el)\n}\n\nfunction getOffset (target: any, horizontal?: boolean, rtl?: boolean): number {\n if (typeof target === 'number') return horizontal && rtl ? -target : target\n\n let el = getTarget(target)\n let totalOffset = 0\n while (el) {\n totalOffset += horizontal ? el.offsetLeft : el.offsetTop\n el = el.offsetParent as HTMLElement\n }\n\n return totalOffset\n}\n\nexport function createGoTo (\n options: GoToOptions| undefined,\n locale: LocaleInstance & RtlInstance\n): GoToInstance {\n return {\n rtl: locale.isRtl,\n options: mergeDeep(genDefaults(), options) as InternalGoToOptions,\n }\n}\n\nexport async function scrollTo (\n _target: ComponentPublicInstance | HTMLElement | number | string,\n _options: GoToOptions,\n horizontal?: boolean,\n goTo?: GoToInstance,\n) {\n const property = horizontal ? 'scrollLeft' : 'scrollTop'\n const options = mergeDeep(goTo?.options ?? genDefaults(), _options)\n const rtl = goTo?.rtl.value\n const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0\n const container = options.container === 'parent' && target instanceof HTMLElement\n ? target.parentElement!\n : getContainer(options.container)\n const ease = typeof options.easing === 'function' ? options.easing : options.patterns[options.easing]\n\n if (!ease) throw new TypeError(`Easing function \"${options.easing}\" not found.`)\n\n let targetLocation: number\n if (typeof target === 'number') {\n targetLocation = getOffset(target, horizontal, rtl)\n } else {\n targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl)\n\n if (options.layout) {\n const styles = window.getComputedStyle(target)\n const layoutOffset = styles.getPropertyValue('--v-layout-top')\n\n if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10)\n }\n }\n\n targetLocation += options.offset\n targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal)\n\n const startLocation = container[property] ?? 0\n\n if (targetLocation === startLocation) return Promise.resolve(targetLocation)\n\n const startTime = performance.now()\n\n return new Promise(resolve => requestAnimationFrame(function step (currentTime: number) {\n const timeElapsed = currentTime - startTime\n const progress = timeElapsed / options.duration\n const location = Math.floor(\n startLocation +\n (targetLocation - startLocation) *\n ease(clamp(progress, 0, 1))\n )\n\n container[property] = location\n\n // Allow for some jitter if target time has elapsed\n if (progress >= 1 && Math.abs(location - container[property]) < 10) {\n return resolve(targetLocation)\n } else if (progress > 2) {\n // The target might not be reachable\n consoleWarn('Scroll target is not reachable')\n return resolve(container[property])\n }\n\n requestAnimationFrame(step)\n }))\n}\n\nexport function useGoTo (_options: GoToOptions = {}) {\n const goToInstance = inject(GoToSymbol)\n const { isRtl } = useRtl()\n\n if (!goToInstance) throw new Error('[Vuetify] Could not find injected goto instance')\n\n const goTo = {\n ...goToInstance,\n // can be set via VLocaleProvider\n rtl: computed(() => goToInstance.rtl.value || isRtl.value),\n }\n\n async function go (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial,\n ) {\n return scrollTo(target, mergeDeep(_options, options), false, goTo)\n }\n\n go.horizontal = async (\n target: ComponentPublicInstance | HTMLElement | string | number,\n options?: Partial,\n ) => {\n return scrollTo(target, mergeDeep(_options, options), true, goTo)\n }\n\n return go\n}\n\n/**\n * Clamp target value to achieve a smooth scroll animation\n * when the value goes outside the scroll container size\n */\nfunction clampTarget (\n container: HTMLElement,\n value: number,\n rtl: boolean,\n horizontal: boolean,\n) {\n const { scrollWidth, scrollHeight } = container\n const [containerWidth, containerHeight] = container === document.scrollingElement\n ? [window.innerWidth, window.innerHeight]\n : [container.offsetWidth, container.offsetHeight]\n\n let min: number\n let max: number\n\n if (horizontal) {\n if (rtl) {\n min = -(scrollWidth - containerWidth)\n max = 0\n } else {\n min = 0\n max = scrollWidth - containerWidth\n }\n } else {\n min = 0\n max = scrollHeight + -containerHeight\n }\n\n return Math.max(Math.min(value, max), min)\n}\n","// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\nimport type { EventProp } from '@/util'\n\nexport interface GroupItem {\n id: number\n value: Ref\n disabled: Ref\n useIndexAsValue?: boolean\n}\n\nexport interface GroupProps {\n disabled: boolean\n modelValue: unknown\n multiple?: boolean\n mandatory?: boolean | 'force' | undefined\n max?: number | undefined\n selectedClass: string | undefined\n 'onUpdate:modelValue': EventProp<[unknown]> | undefined\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, cmp: ComponentInternalInstance) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref\n items: ComputedRef<{\n id: number\n value: unknown\n disabled: boolean | undefined\n }[]>\n disabled: Ref\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: number\n isSelected: Ref\n isFirst: Ref\n isLast: Ref\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref\n disabled: Ref\n group: GroupProvide\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\nexport interface GroupItemProps extends ExtractPropTypes> {\n 'onGroup:selected': EventProp<[{ value: boolean }]> | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance('useGroupItem')\n\n if (!vm) {\n throw new Error(\n '[Vuetify] useGroupItem composable must be used inside a component setup function'\n )\n }\n\n const id = getUid()\n\n provide(Symbol.for(`${injectKey.description}:id`), id)\n\n const group = inject(injectKey, null)\n\n if (!group) {\n if (!required) return group\n\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const value = toRef(props, 'value')\n const disabled = computed(() => !!(group.disabled.value || props.disabled))\n\n group.register({\n id,\n value,\n disabled,\n }, vm)\n\n onBeforeUnmount(() => {\n group.unregister(id)\n })\n\n const isSelected = computed(() => {\n return group.isSelected(id)\n })\n const isFirst = computed(() => {\n return group.items.value[0].id === id\n })\n const isLast = computed(() => {\n return group.items.value[group.items.value.length - 1].id === id\n })\n\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass])\n\n watch(isSelected, value => {\n vm.emit('group:selected', { value })\n }, { flush: 'sync' })\n\n return {\n id,\n isSelected,\n isFirst,\n isLast,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey\n) {\n let isUnmounted = false\n const items = reactive([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n\n return getIds(items, wrapInArray(v))\n },\n v => {\n const arr = getValues(items, v)\n\n return props.multiple ? arr : arr[0]\n }\n )\n\n const groupVm = getCurrentInstance('useGroup')\n\n function register (item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef\n\n const key = Symbol.for(`${injectKey.description}:id`)\n const children = findChildrenWithProvide(key, groupVm?.vnode)\n const index = children.indexOf(vm)\n\n if (unref(unwrapped.value) == null) {\n unwrapped.value = index\n unwrapped.useIndexAsValue = true\n }\n\n if (index > -1) {\n items.splice(index, 0, unwrapped)\n } else {\n items.push(unwrapped)\n }\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue()\n\n const index = items.findIndex(item => item.id === id)\n items.splice(index, 1)\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue () {\n const item = items.find(item => !item.disabled)\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id]\n }\n }\n\n onMounted(() => {\n forceMandatoryValue()\n })\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n onUpdated(() => {\n // #19655 update the items that use the index as the value.\n for (let i = 0; i < items.length; i++) {\n if (items[i].useIndexAsValue) {\n items[i].value = i\n }\n }\n })\n\n function select (id: number, value?: boolean) {\n const item = items.find(item => item.id === id)\n if (value && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\n const isSelected = ~index\n value = value ?? !isSelected\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (\n isSelected &&\n props.mandatory &&\n internalValue.length <= 1\n ) return\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && value) internalValue.push(id)\n else if (index >= 0 && !value) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n const isSelected = selected.value.includes(id)\n if (props.mandatory && isSelected) return\n\n selected.value = (value ?? !isSelected) ? [id] : []\n }\n }\n\n function step (offset: number) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop')\n\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled)\n item && (selected.value = [item.id])\n } else {\n const currentId = selected.value[0]\n const currentIndex = items.findIndex(i => i.id === currentId)\n\n let newIndex = (currentIndex + offset) % items.length\n let newItem = items[newIndex]\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length\n newItem = items[newIndex]\n }\n\n if (newItem.disabled) return\n\n selected.value = [items[newIndex].id]\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef, value: unknown) {\n const ids = getIds(items, [value])\n\n if (!ids.length) return -1\n\n return items.findIndex(item => item.id === ids[0])\n}\n\nfunction getIds (items: UnwrapRef, modelValue: any[]) {\n const ids: number[] = []\n\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value))\n const itemByIndex = items[value]\n\n if (item?.value != null) {\n ids.push(item.id)\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id)\n }\n })\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef, ids: any[]) {\n const values: unknown[] = []\n\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id)\n if (~itemIndex) {\n const item = items[itemIndex]\n values.push(item.value != null ? item.value : itemIndex)\n }\n })\n\n return values\n}\n","// Composables\nimport { VClassIcon } from '@/composables/icons'\n\n// Utilities\nimport { h } from 'vue'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle', // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle', // for carousel\n sortAsc: 'mdi-arrow-up',\n sortDesc: 'mdi-arrow-down',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n calendar: 'mdi-calendar',\n treeviewCollapse: 'mdi-menu-down',\n treeviewExpand: 'mdi-menu-right',\n eyeDropper: 'mdi-eyedropper',\n}\n\nconst mdi: IconSet = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: (props: any) => h(VClassIcon, { ...props, class: 'mdi' }),\n}\n\nexport { aliases, mdi }\n","// Icons\nimport { aliases, mdi } from '@/iconsets/mdi'\n\n// Utilities\nimport { computed, inject, unref } from 'vue'\nimport { consoleWarn, defineComponent, genericComponent, mergeDeep, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, JSXComponent, PropType, Ref } from 'vue'\n\nexport type IconValue =\n | string\n | (string | [path: string, opacity: number])[]\n | JSXComponent\nexport const IconValue = [String, Function, Object, Array] as PropType\n\nexport interface IconAliases {\n [name: string]: IconValue\n complete: IconValue\n cancel: IconValue\n close: IconValue\n delete: IconValue\n clear: IconValue\n success: IconValue\n info: IconValue\n warning: IconValue\n error: IconValue\n prev: IconValue\n next: IconValue\n checkboxOn: IconValue\n checkboxOff: IconValue\n checkboxIndeterminate: IconValue\n delimiter: IconValue\n sortAsc: IconValue\n sortDesc: IconValue\n expand: IconValue\n menu: IconValue\n subgroup: IconValue\n dropdown: IconValue\n radioOn: IconValue\n radioOff: IconValue\n edit: IconValue\n ratingEmpty: IconValue\n ratingFull: IconValue\n ratingHalf: IconValue\n loading: IconValue\n first: IconValue\n last: IconValue\n unfold: IconValue\n file: IconValue\n plus: IconValue\n minus: IconValue\n calendar: IconValue\n}\n\nexport interface IconProps {\n tag: string\n icon?: IconValue\n disabled?: Boolean\n}\n\ntype IconComponent = JSXComponent\n\nexport interface IconSet {\n component: IconComponent\n}\n\nexport type InternalIconOptions = {\n defaultSet: string\n aliases: Partial\n sets: Record\n}\n\nexport type IconOptions = Partial\n\ntype IconInstance = {\n component: IconComponent\n icon?: IconValue\n}\n\nexport const IconSymbol: InjectionKey = Symbol.for('vuetify:icons')\n\nexport const makeIconProps = propsFactory({\n icon: {\n type: IconValue,\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: String,\n required: true,\n },\n}, 'icon')\n\nexport const VComponentIcon = genericComponent()({\n name: 'VComponentIcon',\n\n props: makeIconProps(),\n\n setup (props, { slots }) {\n return () => {\n const Icon = props.icon as JSXComponent\n return (\n \n { props.icon ? : slots.default?.() }\n \n )\n }\n },\n})\nexport type VComponentIcon = InstanceType\n\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n\n inheritAttrs: false,\n\n props: makeIconProps(),\n\n setup (props, { attrs }) {\n return () => {\n return (\n \n \n { Array.isArray(props.icon)\n ? props.icon.map(path => (\n Array.isArray(path)\n ? \n : \n ))\n : \n }\n \n \n )\n }\n },\n})\nexport type VSvgIcon = InstanceType\n\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return { props.icon }\n }\n },\n})\nexport type VLigatureIcon = InstanceType\n\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return \n }\n },\n})\nexport type VClassIcon = InstanceType\n\nfunction genDefaults (): Record {\n return {\n svg: {\n component: VSvgIcon,\n },\n class: {\n component: VClassIcon,\n },\n }\n}\n\n// Composables\nexport function createIcons (options?: IconOptions) {\n const sets = genDefaults()\n const defaultSet = options?.defaultSet ?? 'mdi'\n\n if (defaultSet === 'mdi' && !sets.mdi) {\n sets.mdi = mdi\n }\n\n return mergeDeep({\n defaultSet,\n sets,\n aliases: {\n ...aliases,\n /* eslint-disable max-len */\n vuetify: [\n 'M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z',\n ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6],\n ],\n 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',\n 'vuetify-play': [\n 'm6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z',\n ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6],\n ],\n /* eslint-enable max-len */\n },\n }, options) as InternalIconOptions\n}\n\nexport const useIcon = (props: Ref) => {\n const icons = inject(IconSymbol)\n\n if (!icons) throw new Error('Missing Vuetify Icons provide!')\n\n const iconData = computed(() => {\n const iconAlias = unref(props)\n\n if (!iconAlias) return { component: VComponentIcon }\n\n let icon: IconValue | undefined = iconAlias\n\n if (typeof icon === 'string') {\n icon = icon.trim()\n\n if (icon.startsWith('$')) {\n icon = icons.aliases?.[icon.slice(1)]\n }\n }\n\n if (!icon) consoleWarn(`Could not find aliased icon \"${iconAlias}\"`)\n\n if (Array.isArray(icon)) {\n return {\n component: VSvgIcon,\n icon,\n }\n } else if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon,\n }\n }\n\n const iconSetName = Object.keys(icons.sets).find(\n setName => typeof icon === 'string' && icon.startsWith(`${setName}:`)\n )\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet]\n\n return {\n component: iconSet.component,\n icon: iconName,\n }\n })\n\n return { iconData }\n}\n","// Utilities\nimport { onBeforeUnmount, ref, shallowRef, watch } from 'vue'\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\nexport function useIntersectionObserver (callback?: IntersectionObserverCallback, options?: IntersectionObserverInit) {\n const intersectionRef = ref()\n const isIntersecting = shallowRef(false)\n\n if (SUPPORTS_INTERSECTION) {\n const observer = new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n callback?.(entries, observer)\n\n isIntersecting.value = !!entries.find(entry => entry.isIntersecting)\n }, options)\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(intersectionRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n isIntersecting.value = false\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return { intersectionRef, isIntersecting }\n}\n","// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport const makeLazyProps = propsFactory({\n eager: Boolean,\n}, 'lazy')\n\nexport function useLazy (props: { eager: boolean }, active: Ref) {\n const isBooted = shallowRef(false)\n const hasContent = computed(() => isBooted.value || props.eager || active.value)\n\n watch(active, () => isBooted.value = true)\n\n function onAfterLeave () {\n if (!props.eager) isBooted.value = false\n }\n\n return { isBooted, hasContent, onAfterLeave }\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { deepEqual, getPropertyFromItem, omit, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalItem } from '@/composables/filter'\nimport type { SelectItemKey } from '@/util'\n\nexport interface ListItem extends InternalItem {\n title: string\n props: {\n [key: string]: any\n title: string\n value: any\n }\n children?: ListItem[]\n}\n\nexport interface ItemProps {\n items: any[]\n itemTitle: SelectItemKey\n itemValue: SelectItemKey\n itemChildren: SelectItemKey\n itemProps: SelectItemKey\n returnObject: boolean\n valueComparator: typeof deepEqual\n}\n\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array as PropType,\n default: () => ([]),\n },\n itemTitle: {\n type: [String, Array, Function] as PropType,\n default: 'title',\n },\n itemValue: {\n type: [String, Array, Function] as PropType,\n default: 'value',\n },\n itemChildren: {\n type: [Boolean, String, Array, Function] as PropType,\n default: 'children',\n },\n itemProps: {\n type: [Boolean, String, Array, Function] as PropType,\n default: 'props',\n },\n returnObject: Boolean,\n valueComparator: {\n type: Function as PropType,\n default: deepEqual,\n },\n}, 'list-items')\n\nexport function transformItem (props: Omit, item: any): ListItem {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, title)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? typeof item === 'object' && item != null && !Array.isArray(item)\n ? 'children' in item\n ? omit(item, ['children'])\n : item\n : undefined\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nexport function transformItems (props: Omit, items: ItemProps['items']) {\n const array: ListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n const hasNullItem = computed(() => items.value.some(item => item.value === null))\n\n function transformIn (value: any[]): ListItem[] {\n if (!hasNullItem.value) {\n // When the model value is null, return an InternalItem\n // based on null only if null is one of the items\n value = value.filter(v => v !== null)\n }\n\n return value.map(v => {\n if (props.returnObject && typeof v === 'string') {\n // String model value means value is a custom input value from combobox\n // Don't look up existing items if the model value is a string\n return transformItem(props, v)\n }\n return items.value.find(item => props.valueComparator(v, item.value)) || transformItem(props, v)\n })\n }\n\n function transformOut (value: ListItem[]): any[] {\n return props.returnObject\n ? value.map(({ raw }) => raw)\n : value.map(({ value }) => value)\n }\n\n return { items, transformIn, transformOut }\n}\n","// Components\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, SetupContext } from 'vue'\nimport type { SlotsToProps } from '@/util'\n\nexport interface LoaderSlotProps {\n color: string | undefined\n isActive: boolean\n}\n\nexport interface LoaderProps {\n loading?: boolean | string\n}\n\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: [Boolean, String],\n}, 'loader')\n\nexport function useLoader (\n props: LoaderProps,\n name = getCurrentInstanceName(),\n) {\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading,\n }))\n\n return { loaderClasses }\n}\n\nexport function LoaderSlot (\n props: {\n absolute?: boolean\n active: boolean\n name: string\n color?: string\n } & ExtractPropTypes>,\n { slots }: SetupContext,\n) {\n return (\n
\n { slots.default?.({\n color: props.color,\n isActive: props.active,\n } as LoaderSlotProps) || (\n \n )}\n
\n )\n}\n","export default {\n badge: 'Badge',\n open: 'Open',\n close: 'Close',\n dismiss: 'Dismiss',\n confirmEdit: {\n ok: 'OK',\n cancel: 'Cancel',\n },\n dataIterator: {\n noResultsText: 'No matching records found',\n loadingText: 'Loading items...',\n },\n dataTable: {\n itemsPerPageText: 'Rows per page:',\n ariaLabel: {\n sortDescending: 'Sorted descending.',\n sortAscending: 'Sorted ascending.',\n sortNone: 'Not sorted.',\n activateNone: 'Activate to remove sorting.',\n activateDescending: 'Activate to sort descending.',\n activateAscending: 'Activate to sort ascending.',\n },\n sortBy: 'Sort by',\n },\n dataFooter: {\n itemsPerPageText: 'Items per page:',\n itemsPerPageAll: 'All',\n nextPage: 'Next page',\n prevPage: 'Previous page',\n firstPage: 'First page',\n lastPage: 'Last page',\n pageText: '{0}-{1} of {2}',\n },\n dateRangeInput: {\n divider: 'to',\n },\n datePicker: {\n itemsSelected: '{0} selected',\n range: {\n title: 'Select dates',\n header: 'Enter dates',\n },\n title: 'Select date',\n header: 'Enter date',\n input: {\n placeholder: 'Enter date',\n },\n },\n noDataText: 'No data available',\n carousel: {\n prev: 'Previous visual',\n next: 'Next visual',\n ariaLabel: {\n delimiter: 'Carousel slide {0} of {1}',\n },\n },\n calendar: {\n moreEvents: '{0} more',\n today: 'Today',\n },\n input: {\n clear: 'Clear {0}',\n prependAction: '{0} prepended action',\n appendAction: '{0} appended action',\n otp: 'Please enter OTP character {0}',\n },\n fileInput: {\n counter: '{0} files',\n counterSize: '{0} files ({1} in total)',\n },\n timePicker: {\n am: 'AM',\n pm: 'PM',\n title: 'Select Time',\n },\n pagination: {\n ariaLabel: {\n root: 'Pagination Navigation',\n next: 'Next page',\n previous: 'Previous page',\n page: 'Go to page {0}',\n currentPage: 'Page {0}, Current page',\n first: 'First page',\n last: 'Last page',\n },\n },\n stepper: {\n next: 'Next',\n prev: 'Previous',\n },\n rating: {\n ariaLabel: {\n item: 'Rating {0} of {1}',\n },\n },\n loading: 'Loading...',\n infiniteScroll: {\n loadMore: 'Load more',\n empty: 'No more',\n },\n}\n","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { ref, shallowRef, watch } from 'vue'\nimport { consoleError, consoleWarn, getObjectValueByPath } from '@/util'\n\n// Locales\nimport en from '@/locale/en'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { LocaleInstance, LocaleMessages, LocaleOptions } from '@/composables/locale'\n\nconst LANG_PREFIX = '$vuetify.'\n\nconst replace = (str: string, params: unknown[]) => {\n return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n return String(params[+index])\n })\n}\n\nconst createTranslateFunction = (\n current: Ref,\n fallback: Ref,\n messages: Ref,\n) => {\n return (key: string, ...params: unknown[]) => {\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params)\n }\n\n const shortKey = key.replace(LANG_PREFIX, '')\n const currentLocale = current.value && messages.value[current.value]\n const fallbackLocale = fallback.value && messages.value[fallback.value]\n\n let str: string = getObjectValueByPath(currentLocale, shortKey, null)\n\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`)\n str = getObjectValueByPath(fallbackLocale, shortKey, null)\n }\n\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`)\n str = key\n }\n\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`)\n str = key\n }\n\n return replace(str, params)\n }\n}\n\nfunction createNumberFunction (current: Ref, fallback: Ref) {\n return (value: number, options?: Intl.NumberFormatOptions) => {\n const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options)\n\n return numberFormat.format(value)\n }\n}\n\nfunction useProvided (props: any, prop: string, provided: Ref) {\n const internal = useProxiedModel(props, prop, props[prop] ?? provided.value)\n\n // TODO: Remove when defaultValue works\n internal.value = props[prop] ?? provided.value\n\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = provided.value\n }\n })\n\n return internal as Ref\n}\n\nfunction createProvideFunction (state: { current: Ref, fallback: Ref, messages: Ref }) {\n return (props: LocaleOptions): LocaleInstance => {\n const current = useProvided(props, 'locale', state.current)\n const fallback = useProvided(props, 'fallback', state.fallback)\n const messages = useProvided(props, 'messages', state.messages)\n\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({ current, fallback, messages }),\n }\n }\n}\n\nexport function createVuetifyAdapter (options?: LocaleOptions): LocaleInstance {\n const current = shallowRef(options?.locale ?? 'en')\n const fallback = shallowRef(options?.fallback ?? 'en')\n const messages = ref({ en, ...options?.messages })\n\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({ current, fallback, messages }),\n }\n}\n","// Utilities\nimport { computed, inject, provide, ref } from 'vue'\nimport { createVuetifyAdapter } from '@/locale/adapters/vuetify'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nexport interface LocaleMessages {\n [key: string]: LocaleMessages | string\n}\n\nexport interface LocaleOptions {\n messages?: LocaleMessages\n locale?: string\n fallback?: string\n adapter?: LocaleInstance\n}\n\nexport interface LocaleInstance {\n name: string\n messages: Ref\n current: Ref\n fallback: Ref\n t: (key: string, ...params: unknown[]) => string\n n: (value: number) => string\n provide: (props: LocaleOptions) => LocaleInstance\n}\n\nexport const LocaleSymbol: InjectionKey = Symbol.for('vuetify:locale')\n\nfunction isLocaleInstance (obj: any): obj is LocaleInstance {\n return obj.name != null\n}\n\nexport function createLocale (options?: LocaleOptions & RtlOptions) {\n const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options)\n const rtl = createRtl(i18n, options)\n\n return { ...i18n, ...rtl }\n}\n\nexport function useLocale () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n return locale\n}\n\nexport function provideLocale (props: LocaleOptions & RtlProps) {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance')\n\n const i18n = locale.provide(props)\n const rtl = provideRtl(i18n, locale.rtl, props)\n\n const data = { ...i18n, ...rtl }\n\n provide(LocaleSymbol, data)\n\n return data\n}\n\n// RTL\n\nexport interface RtlOptions {\n rtl?: Record\n}\n\nexport interface RtlProps {\n rtl?: boolean\n}\n\nexport interface RtlInstance {\n isRtl: Ref\n rtl: Ref>\n rtlClasses: Ref\n}\n\nexport const RtlSymbol: InjectionKey = Symbol.for('vuetify:rtl')\n\nfunction genDefaults () {\n return {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: true,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n km: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false,\n }\n}\n\nexport function createRtl (i18n: LocaleInstance, options?: RtlOptions): RtlInstance {\n const rtl = ref>(options?.rtl ?? genDefaults())\n const isRtl = computed(() => rtl.value[i18n.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function provideRtl (locale: LocaleInstance, rtl: RtlInstance['rtl'], props: RtlProps): RtlInstance {\n const isRtl = computed(() => props.rtl ?? rtl.value[locale.current.value] ?? false)\n\n return {\n isRtl,\n rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function useRtl () {\n const locale = inject(LocaleSymbol)\n\n if (!locale) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n return { isRtl: locale.isRtl, rtlClasses: locale.rtlClasses }\n}\n","// Composables\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { parseAnchor, propsFactory } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType } from 'vue'\nimport type { Anchor } from '@/util'\n\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n} as const\n\nexport interface LocationProps {\n location: Anchor | null | undefined\n}\n\nexport const makeLocationProps = propsFactory({\n location: String as PropType,\n}, 'location')\n\nexport function useLocation (props: LocationProps, opposite = false, offset?: (side: string) => number) {\n const { isRtl } = useRtl()\n\n const locationStyles = computed(() => {\n if (!props.location) return {}\n\n const { side, align } = parseAnchor(\n props.location.split(' ').length > 1\n ? props.location\n : `${props.location} center` as Anchor,\n isRtl.value\n )\n\n function getOffset (side: string) {\n return offset\n ? offset(side)\n : 0\n }\n\n const styles = {} as CSSProperties\n\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`\n else styles[side] = 0\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`\n else styles[align] = 0\n } else {\n if (side === 'center') styles.top = styles.left = '50%'\n else {\n styles[({\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top',\n } as const)[side]] = '50%'\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)',\n }[side]\n }\n\n return styles\n })\n\n return { locationStyles }\n}\n","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue'\nimport { wrapInArray } from '@/util'\n\nexport type ActiveStrategyFn = (data: {\n id: unknown\n value: boolean\n activated: Set\n children: Map\n parents: Map\n event?: Event\n}) => Set\n\nexport type ActiveStrategyTransformInFn = (\n v: unknown | undefined,\n children: Map,\n parents: Map,\n) => Set\n\nexport type ActiveStrategyTransformOutFn = (\n v: Set,\n children: Map,\n parents: Map,\n) => unknown\n\nexport type ActiveStrategy = {\n activate: ActiveStrategyFn\n in: ActiveStrategyTransformInFn\n out: ActiveStrategyTransformOutFn\n}\n\nexport const independentActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const strategy: ActiveStrategy = {\n activate: ({ id, value, activated }) => {\n id = toRaw(id)\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value && activated.size === 1 && activated.has(id)) return activated\n\n if (value) {\n activated.add(id)\n } else {\n activated.delete(id)\n }\n\n return activated\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n if (v != null) {\n for (const id of wrapInArray(v)) {\n set = strategy.activate({\n id,\n value: true,\n activated: new Set(set),\n children,\n parents,\n })\n }\n }\n\n return set\n },\n out: v => {\n return Array.from(v)\n },\n }\n\n return strategy\n}\n\nexport const independentSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ activated, id, ...rest }) => {\n id = toRaw(id)\n const singleSelected = activated.has(id) ? new Set([id]) : new Set()\n return parentStrategy.activate({ ...rest, id, activated: singleSelected })\n },\n in: (v, children, parents) => {\n let set = new Set()\n\n if (v != null) {\n const arr = wrapInArray(v)\n if (arr.length) {\n set = parentStrategy.in(arr.slice(0, 1), children, parents)\n }\n }\n\n return set\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleActiveStrategy = (mandatory?: boolean): ActiveStrategy => {\n const parentStrategy = independentSingleActiveStrategy(mandatory)\n\n const strategy: ActiveStrategy = {\n activate: ({ id, activated, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return activated\n\n return parentStrategy.activate({ id, activated, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n","// Utilities\nimport { toRaw } from 'vue'\n\nexport type OpenStrategyFn = (data: {\n id: unknown\n value: boolean\n opened: Set\n children: Map\n parents: Map\n event?: Event\n}) => Set\n\nexport type OpenSelectStrategyFn = (data: {\n id: unknown\n value: boolean\n opened: Set\n selected: Map\n children: Map\n parents: Map\n event?: Event\n}) => Set | null\n\nexport type OpenStrategy = {\n open: OpenStrategyFn\n select: OpenSelectStrategyFn\n}\n\nexport const singleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n const newOpened = new Set()\n newOpened.add(id)\n\n let parent = parents.get(id)\n\n while (parent != null) {\n newOpened.add(parent)\n parent = parents.get(parent)\n }\n\n return newOpened\n } else {\n opened.delete(id)\n return opened\n }\n },\n select: () => null,\n}\n\nexport const multipleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n let parent = toRaw(parents.get(id))\n opened.add(id)\n\n while (parent != null && parent !== id) {\n opened.add(parent)\n parent = toRaw(parents.get(parent))\n }\n\n return opened\n } else {\n opened.delete(id)\n }\n return opened\n },\n select: () => null,\n}\n\nexport const listOpenStrategy: OpenStrategy = {\n open: multipleOpenStrategy.open,\n select: ({ id, value, opened, parents }) => {\n if (!value) return opened\n\n const path: unknown[] = []\n\n let parent = parents.get(id)\n\n while (parent != null) {\n path.push(parent)\n parent = parents.get(parent)\n }\n\n return new Set(path)\n },\n}\n","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue'\n\nexport type SelectStrategyFn = (data: {\n id: unknown\n value: boolean\n selected: Map\n children: Map\n parents: Map\n event?: Event\n}) => Map\n\nexport type SelectStrategyTransformInFn = (\n v: readonly unknown[] | undefined,\n children: Map,\n parents: Map,\n) => Map\n\nexport type SelectStrategyTransformOutFn = (\n v: Map,\n children: Map,\n parents: Map,\n) => unknown[]\n\nexport type SelectStrategy = {\n select: SelectStrategyFn\n in: SelectStrategyTransformInFn\n out: SelectStrategyTransformOutFn\n}\n\nexport const independentSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected }) => {\n id = toRaw(id)\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries())\n .reduce((arr, [key, value]) => {\n if (value === 'on') arr.push(key)\n return arr\n }, [] as unknown[])\n if (on.length === 1 && on[0] === id) return selected\n }\n\n selected.set(id, value ? 'on' : 'off')\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: v => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const independentSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ selected, id, ...rest }) => {\n id = toRaw(id)\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)!]]) : new Map()\n return parentStrategy.select({ ...rest, id, selected: singleSelected })\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n if (v?.length) {\n map = parentStrategy.in(v.slice(0, 1), children, parents)\n }\n\n return map\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSingleSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const classicSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected, children, parents }) => {\n id = toRaw(id)\n const original = new Map(selected)\n\n const items = [id]\n\n while (items.length) {\n const item = items.shift()!\n\n selected.set(toRaw(item), value ? 'on' : 'off')\n\n if (children.has(item)) {\n items.push(...children.get(item)!)\n }\n }\n\n let parent = toRaw(parents.get(id))\n\n while (parent) {\n const childrenIds = children.get(parent)!\n const everySelected = childrenIds.every(cid => selected.get(toRaw(cid)) === 'on')\n const noneSelected = childrenIds.every(cid => !selected.has(toRaw(cid)) || selected.get(toRaw(cid)) === 'off')\n\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate')\n\n parent = toRaw(parents.get(parent))\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries())\n .reduce((arr, [key, value]) => {\n if (value === 'on') arr.push(key)\n return arr\n }, [] as unknown[])\n if (on.length === 0) return original\n }\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: (v, children) => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n","// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw, toRef } from 'vue'\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy,\n} from './activeStrategies'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\nimport { getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { ActiveStrategy } from './activeStrategies'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategy } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type ActiveStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | ActiveStrategy\n | ((mandatory: boolean) => ActiveStrategy)\nexport type SelectStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | 'classic'\n | SelectStrategy\n | ((mandatory: boolean) => SelectStrategy)\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: ActiveStrategyProp | undefined\n selectStrategy: SelectStrategyProp | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: any\n selected: any\n opened: any\n mandatory: boolean\n 'onUpdate:activated': EventProp<[any]> | undefined\n 'onUpdate:selected': EventProp<[any]> | undefined\n 'onUpdate:opened': EventProp<[any]> | undefined\n}\n\ntype NestedProvide = {\n id: Ref\n isGroupActivator?: boolean\n root: {\n children: Ref>\n parents: Ref>\n activatable: Ref\n selectable: Ref\n opened: Ref>\n activated: Ref>\n selected: Ref>\n selectedValues: Ref\n register: (id: unknown, parentId: unknown, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n activate: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n }\n}\n\nexport const VNestedSymbol: InjectionKey = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n },\n}\n\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object] as PropType,\n selectStrategy: [String, Function, Object] as PropType,\n openStrategy: [String, Object] as PropType,\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map())\n const parents = ref(new Map())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(toRaw(v)), v => [...v.values()])\n\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory)\n\n switch (props.activeStrategy) {\n case 'leaf': return leafActiveStrategy(props.mandatory)\n case 'single-leaf': return leafSingleActiveStrategy(props.mandatory)\n case 'independent': return independentActiveStrategy(props.mandatory)\n case 'single-independent':\n default: return independentSingleActiveStrategy(props.mandatory)\n }\n })\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory)\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const activated = useProxiedModel(\n props,\n 'activated',\n props.activated,\n v => activeStrategy.value.in(v, children.value, parents.value),\n v => activeStrategy.value.out(v, children.value, parents.value),\n )\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(props, 'activatable'),\n selectable: toRef(props, 'selectable'),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event)\n }\n\n vm.emit('click:activate', { id, value, path: getPath(id), event })\n\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newActivated && (activated.value = newActivated)\n },\n children,\n parents,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol(getUid())\n const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol)\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(toRaw(computedId.value), open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(toRaw(computedId.value))),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated: boolean, e?: Event) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const\n\ntype Position = typeof positionValues[number]\n\nexport interface PositionProps {\n position: Position | undefined\n}\n\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String as PropType,\n validator: /* istanbul ignore next */ (v: any) => positionValues.includes(v),\n },\n}, 'position')\n\nexport function usePosition (\n props: PositionProps,\n name = getCurrentInstanceName(),\n) {\n const positionClasses = computed(() => {\n return props.position ? `${name}--${props.position}` : undefined\n })\n\n return { positionClasses }\n}\n","// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, ref, toRaw, watch } from 'vue'\nimport { getCurrentInstance, toKebabCase } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { EventProp } from '@/util'\n\ntype InnerVal = T extends any[] ? Readonly : T\n\n// Composables\nexport function useProxiedModel<\n Props extends object & { [key in Prop as `onUpdate:${Prop}`]: EventProp | undefined },\n Prop extends Extract,\n Inner = Props[Prop],\n> (\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v,\n) {\n const vm = getCurrentInstance('useProxiedModel')\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue) as Ref\n const kebabProp = toKebabCase(prop)\n const checkKebab = kebabProp !== prop\n\n const isControlled = checkKebab\n ? computed(() => {\n void props[prop]\n return !!(\n (vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) &&\n (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`))\n )\n })\n : computed(() => {\n void props[prop]\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`))\n })\n\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val\n })\n })\n\n const model = computed({\n get (): any {\n const externalValue = props[prop]\n return transformIn(isControlled.value ? externalValue : internal.value)\n },\n set (internalValue) {\n const newValue = transformOut(internalValue)\n const value = toRaw(isControlled.value ? props[prop] : internal.value)\n if (value === newValue || transformIn(value) === internalValue) {\n return\n }\n internal.value = newValue\n vm?.emit(`update:${prop}`, newValue)\n },\n }) as any as Ref> & { readonly externalValue: Props[Prop] }\n\n Object.defineProperty(model, 'externalValue', {\n get: () => isControlled.value ? props[prop] : internal.value,\n })\n\n return model\n}\n","// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport { templateRef } from '@/util'\nimport { IN_BROWSER } from '@/util/globals'\n\n// Types\nimport type { DeepReadonly, Ref } from 'vue'\nimport type { TemplateRef } from '@/util'\n\ninterface ResizeState {\n resizeRef: TemplateRef\n contentRect: DeepReadonly>\n}\n\nexport function useResizeObserver (callback?: ResizeObserverCallback, box: 'content' | 'border' = 'content'): ResizeState {\n const resizeRef = templateRef()\n const contentRect = ref()\n\n if (IN_BROWSER) {\n const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n callback?.(entries, observer)\n\n if (!entries.length) return\n\n if (box === 'content') {\n contentRect.value = entries[0].contentRect\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect()\n }\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(() => resizeRef.el, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n contentRect.value = undefined\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return {\n resizeRef,\n contentRect: readonly(contentRect),\n }\n}\n","// Utilities\nimport { computed, isRef } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype RoundedValue = boolean | string | number | null | undefined\n\nexport interface RoundedProps {\n rounded?: RoundedValue\n tile?: boolean\n}\n\ntype RoundedData = {\n roundedClasses: Ref\n}\n\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined,\n },\n tile: Boolean,\n}, 'rounded')\n\nexport function useRounded (\n props: RoundedProps | Ref,\n name = getCurrentInstanceName(),\n): RoundedData {\n const roundedClasses = computed(() => {\n const rounded = isRef(props) ? props.value : props.rounded\n const tile = isRef(props) ? props.value : props.tile\n const classes: string[] = []\n\n if (rounded === true || rounded === '') {\n classes.push(`${name}--rounded`)\n } else if (\n typeof rounded === 'string' ||\n rounded === 0\n ) {\n for (const value of String(rounded).split(' ')) {\n classes.push(`rounded-${value}`)\n }\n } else if (tile || rounded === false) {\n classes.push('rounded-0')\n }\n\n return classes\n })\n\n return { roundedClasses }\n}\n","// Utilities\nimport {\n computed,\n nextTick,\n onScopeDispose,\n resolveDynamicComponent,\n toRef,\n} from 'vue'\nimport { deepEqual, getCurrentInstance, hasEvent, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref, SetupContext } from 'vue'\nimport type {\n RouterLink as _RouterLink,\n useLink as _useLink,\n NavigationGuardNext,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n Router,\n UseLinkOptions,\n} from 'vue-router'\nimport type { EventProp } from '@/util'\n\nexport function useRoute (): Ref {\n const vm = getCurrentInstance('useRoute')\n\n return computed(() => vm?.proxy?.$route)\n}\n\nexport function useRouter (): Router | undefined {\n return getCurrentInstance('useRouter')?.proxy?.$router\n}\n\nexport interface LinkProps {\n href: string | undefined\n replace: boolean | undefined\n to: RouteLocationRaw | undefined\n exact: boolean | undefined\n}\n\nexport interface LinkListeners {\n onClick?: EventProp | undefined\n onClickOnce?: EventProp | undefined\n}\n\nexport interface UseLink extends Omit>, 'href'> {\n isLink: ComputedRef\n isClickable: ComputedRef\n href: Ref\n}\n\nexport function useLink (props: LinkProps & LinkListeners, attrs: SetupContext['attrs']): UseLink {\n const RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string\n\n const isLink = computed(() => !!(props.href || props.to))\n const isClickable = computed(() => {\n return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click')\n })\n\n if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {\n return {\n isLink,\n isClickable,\n href: toRef(props, 'href'),\n }\n }\n // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined\n const linkProps = computed(() => ({\n ...props,\n to: toRef(() => props.to || ''),\n }))\n\n const routerLink = RouterLink.useLink(linkProps.value as UseLinkOptions)\n // Actual link needs to be undefined when to prop is not used\n const link = computed(() => props.to ? routerLink : undefined)\n const route = useRoute()\n\n return {\n isLink,\n isClickable,\n route: link.value?.route,\n navigate: link.value?.navigate,\n isActive: computed(() => {\n if (!link.value) return false\n if (!props.exact) return link.value.isActive?.value ?? false\n if (!route.value) return link.value.isExactActive?.value ?? false\n\n return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query)\n }),\n href: computed(() => props.to ? link.value?.route.value.href : props.href),\n }\n}\n\nexport const makeRouterProps = propsFactory({\n href: String,\n replace: Boolean,\n to: [String, Object] as PropType,\n exact: Boolean,\n}, 'router')\n\nlet inTransition = false\nexport function useBackButton (router: Router | undefined, cb: (next: NavigationGuardNext) => void) {\n let popped = false\n let removeBefore: (() => void) | undefined\n let removeAfter: (() => void) | undefined\n\n if (IN_BROWSER) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate)\n removeBefore = router?.beforeEach((to, from, next) => {\n if (!inTransition) {\n setTimeout(() => popped ? cb(next) : next())\n } else {\n popped ? cb(next) : next()\n }\n inTransition = true\n })\n removeAfter = router?.afterEach(() => {\n inTransition = false\n })\n })\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate)\n removeBefore?.()\n removeAfter?.()\n })\n }\n\n function onPopstate (e: PopStateEvent) {\n if (e.state?.replaced) return\n\n popped = true\n setTimeout(() => (popped = false))\n }\n}\n","// Utilities\nimport { getCurrentInstance } from '@/util'\n\nexport function useScopeId () {\n const vm = getCurrentInstance('useScopeId')\n\n const scopeId = vm!.vnode.scopeId\n\n return { scopeId: scopeId ? { [scopeId]: '' } : undefined }\n}\n","// Utilities\nimport { nextTick, watch } from 'vue'\n\n// Types\nimport type { UseLink } from './router'\n\nexport function useSelectLink (link: UseLink, select?: (value: boolean, e?: Event) => void) {\n watch(() => link.isActive?.value, isActive => {\n if (link.isLink.value && isActive && select) {\n nextTick(() => {\n select(true)\n })\n }\n }, {\n immediate: true,\n })\n}\n","// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from '@/util'\n\n// Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large']\n\nexport interface SizeProps {\n size?: string | number\n}\n\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default',\n },\n}, 'size')\n\nexport function useSize (\n props: SizeProps,\n name = getCurrentInstanceName(),\n) {\n return destructComputed(() => {\n let sizeClasses\n let sizeStyles\n if (includes(predefinedSizes, props.size)) {\n sizeClasses = `${name}--size-${props.size}`\n } else if (props.size) {\n sizeStyles = {\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }\n }\n return { sizeClasses, sizeStyles }\n })\n}\n","// Utilities\nimport { computed, onMounted, readonly, shallowRef } from 'vue'\n\n// Composables\nexport function useSsrBoot () {\n const isBooted = shallowRef(false)\n\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n\n const ssrBootStyles = computed(() => !isBooted.value ? ({\n transition: 'none !important',\n }) : undefined)\n\n return { ssrBootStyles, isBooted: readonly(isBooted) }\n}\n","// Utilities\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface TagProps {\n tag: string\n}\n\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: String,\n default: 'div',\n },\n}, 'tag')\n","// Utilities\nimport { effectScope, onScopeDispose, watch } from 'vue'\n\n// Types\nimport type { EffectScope, WatchSource } from 'vue'\n\nexport function useToggleScope (source: WatchSource, fn: (reset: () => void) => void) {\n let scope: EffectScope | undefined\n function start () {\n scope = effectScope()\n scope.run(() => fn.length\n ? fn(() => { scope?.stop(); start() })\n : (fn as any)()\n )\n }\n\n watch(source, active => {\n if (active && !scope) {\n start()\n } else if (!active) {\n scope?.stop()\n scope = undefined\n }\n }, { immediate: true })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n}\n","// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Component, FunctionalComponent, PropType, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: [Boolean, String, Object] as PropType,\n default: 'fade-transition',\n validator: val => val !== true,\n },\n}, 'transition')\n\ninterface MaybeTransitionProps extends TransitionProps {\n transition?: string | boolean | TransitionProps & { component?: any }\n disabled?: boolean\n group?: boolean\n}\n\nexport const MaybeTransition: FunctionalComponent = (props, { slots }) => {\n const { transition, disabled, group, ...rest } = props\n\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = typeof transition === 'object' ? transition : {}\n\n return h(\n component,\n mergeProps(\n typeof transition === 'string'\n ? { name: disabled ? '' : transition }\n : customProps as any,\n typeof transition === 'string'\n ? {}\n : Object.fromEntries(Object.entries({ disabled, group }).filter(([_, v]) => v !== undefined)),\n rest as any,\n ),\n slots\n )\n}\n","// Composables\nimport { makeFocusProps } from '@/composables/focus'\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, watch } from 'vue'\nimport { getCurrentInstance, getCurrentInstanceName, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { EventProp, MaybeRef } from '@/util'\n\nexport type ValidationResult = string | boolean\nexport type ValidationRule =\n | ValidationResult\n | PromiseLike\n | ((value: any) => ValidationResult)\n | ((value: any) => PromiseLike)\n\ntype ValidateOnValue = 'blur' | 'input' | 'submit' | 'invalid-input'\ntype ValidateOn =\n | ValidateOnValue\n | `${ValidateOnValue} lazy`\n | `${ValidateOnValue} eager`\n | `lazy ${ValidateOnValue}`\n | `eager ${ValidateOnValue}`\n | 'lazy'\n | 'eager'\n\nexport interface ValidationProps {\n disabled: boolean | null\n error: boolean\n errorMessages: string | readonly string[] | null\n focused: boolean\n maxErrors: string | number\n name: string | undefined\n label: string | undefined\n readonly: boolean | null\n rules: readonly ValidationRule[]\n modelValue: any\n 'onUpdate:modelValue': EventProp | undefined\n validateOn?: ValidateOn\n validationValue: any\n}\n\nexport const makeValidationProps = propsFactory({\n disabled: {\n type: Boolean as PropType,\n default: null,\n },\n error: Boolean,\n errorMessages: {\n type: [Array, String] as PropType,\n default: () => ([]),\n },\n maxErrors: {\n type: [Number, String],\n default: 1,\n },\n name: String,\n label: String,\n readonly: {\n type: Boolean as PropType,\n default: null,\n },\n rules: {\n type: Array as PropType,\n default: () => ([]),\n },\n modelValue: null,\n validateOn: String as PropType,\n validationValue: null,\n\n ...makeFocusProps(),\n}, 'validation')\n\nexport function useValidation (\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef = getUid(),\n) {\n const model = useProxiedModel(props, 'modelValue')\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue)\n const form = useForm()\n const internalErrorMessages = ref([])\n const isPristine = shallowRef(true)\n const isDirty = computed(() => !!(\n wrapInArray(model.value === '' ? null : model.value).length ||\n wrapInArray(validationModel.value === '' ? null : validationModel.value).length\n ))\n const isDisabled = computed(() => !!(props.disabled ?? form?.isDisabled.value))\n const isReadonly = computed(() => !!(props.readonly ?? form?.isReadonly.value))\n const errorMessages = computed(() => {\n return props.errorMessages?.length\n ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors))\n : internalErrorMessages.value\n })\n const validateOn = computed(() => {\n let value = (props.validateOn ?? form?.validateOn.value) || 'input'\n if (value === 'lazy') value = 'input lazy'\n if (value === 'eager') value = 'input eager'\n const set = new Set(value?.split(' ') ?? [])\n\n return {\n input: set.has('input'),\n blur: set.has('blur') || set.has('input') || set.has('invalid-input'),\n invalidInput: set.has('invalid-input'),\n lazy: set.has('lazy'),\n eager: set.has('eager'),\n }\n })\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false\n if (!props.rules.length) return true\n if (isPristine.value) {\n return internalErrorMessages.value.length || validateOn.value.lazy ? null : true\n } else {\n return !internalErrorMessages.value.length\n }\n })\n const isValidating = shallowRef(false)\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: isDisabled.value,\n [`${name}--readonly`]: isReadonly.value,\n }\n })\n\n const vm = getCurrentInstance('validation')\n const uid = computed(() => props.name ?? unref(id))\n\n onBeforeMount(() => {\n form?.register({\n id: uid.value,\n vm,\n validate,\n reset,\n resetValidation,\n })\n })\n\n onBeforeUnmount(() => {\n form?.unregister(uid.value)\n })\n\n onMounted(async () => {\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager)\n }\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n useToggleScope(() => validateOn.value.input || (validateOn.value.invalidInput && isValid.value === false), () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate()\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate()\n\n unwatch()\n })\n }\n })\n })\n\n useToggleScope(() => validateOn.value.blur, () => {\n watch(() => props.focused, val => {\n if (!val) validate()\n })\n })\n\n watch([isValid, errorMessages], () => {\n form?.update(uid.value, isValid.value, errorMessages.value)\n })\n\n async function reset () {\n model.value = null\n await nextTick()\n await resetValidation()\n }\n\n async function resetValidation () {\n isPristine.value = true\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager)\n } else {\n internalErrorMessages.value = []\n }\n }\n\n async function validate (silent = false) {\n const results = []\n\n isValidating.value = true\n\n for (const rule of props.rules) {\n if (results.length >= +(props.maxErrors ?? 1)) {\n break\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule\n const result = await handler(validationModel.value)\n\n if (result === true) continue\n\n if (result !== false && typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`)\n\n continue\n }\n\n results.push(result || '')\n }\n\n internalErrorMessages.value = results\n isValidating.value = false\n isPristine.value = silent\n\n return internalErrorMessages.value\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n }\n}\n","// Composables\nimport { useColor } from '@/composables/color'\n\n// Utilities\nimport { computed, unref } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport const allowedVariants = [\n 'elevated',\n 'flat',\n 'tonal',\n 'outlined',\n 'text',\n 'plain',\n] as const\n\nexport type Variant = typeof allowedVariants[number]\n\nexport interface VariantProps {\n color?: string\n variant: Variant\n}\n\nexport function genOverlays (isClickable: boolean, name: string) {\n return (\n <>\n { isClickable && }\n\n \n \n )\n}\n\nexport const makeVariantProps = propsFactory({\n color: String,\n variant: {\n type: String as PropType,\n default: 'elevated',\n validator: (v: any) => allowedVariants.includes(v),\n },\n}, 'variant')\n\nexport function useVariant (\n props: MaybeRef,\n name = getCurrentInstanceName(),\n) {\n const variantClasses = computed(() => {\n const { variant } = unref(props)\n return `${name}--variant-${variant}`\n })\n\n const { colorClasses, colorStyles } = useColor(computed(() => {\n const { variant, color } = unref(props)\n return {\n [['elevated', 'flat'].includes(variant) ? 'background' : 'text']: color,\n }\n }))\n\n return { colorClasses, colorStyles, variantClasses }\n}\n","// Utilities\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\n// Types\nimport type {\n DirectiveBinding,\n} from 'vue'\n\ntype ObserveHandler = (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n) => void\n\nexport interface ObserveDirectiveBinding extends Omit {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n if (!SUPPORTS_INTERSECTION) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n const _observe = el._observe?.[binding.instance!.$.uid]\n if (!_observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n _observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n _observe.init\n )\n ) {\n handler(isIntersecting, entries, observer)\n }\n\n if (isIntersecting && modifiers.once) unmounted(el, binding)\n else _observe.init = true\n }, options)\n\n el._observe = Object(el._observe)\n el._observe![binding.instance!.$.uid] = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unmounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n const observe = el._observe?.[binding.instance!.$.uid]\n if (!observe) return\n\n observe.observer.unobserve(el)\n delete el._observe![binding.instance!.$.uid]\n}\n\nexport const Intersect = {\n mounted,\n unmounted,\n}\n\nexport default Intersect\n","// Utilities\nimport { createRange, padStart } from '@/util'\n\n// Types\nimport type { DateAdapter } from '../DateAdapter'\n\ntype CustomDateFormat = Intl.DateTimeFormatOptions | ((date: Date, formatString: string, locale: string) => string)\n\nconst firstDay: Record = {\n '001': 1,\n AD: 1,\n AE: 6,\n AF: 6,\n AG: 0,\n AI: 1,\n AL: 1,\n AM: 1,\n AN: 1,\n AR: 1,\n AS: 0,\n AT: 1,\n AU: 1,\n AX: 1,\n AZ: 1,\n BA: 1,\n BD: 0,\n BE: 1,\n BG: 1,\n BH: 6,\n BM: 1,\n BN: 1,\n BR: 0,\n BS: 0,\n BT: 0,\n BW: 0,\n BY: 1,\n BZ: 0,\n CA: 0,\n CH: 1,\n CL: 1,\n CM: 1,\n CN: 1,\n CO: 0,\n CR: 1,\n CY: 1,\n CZ: 1,\n DE: 1,\n DJ: 6,\n DK: 1,\n DM: 0,\n DO: 0,\n DZ: 6,\n EC: 1,\n EE: 1,\n EG: 6,\n ES: 1,\n ET: 0,\n FI: 1,\n FJ: 1,\n FO: 1,\n FR: 1,\n GB: 1,\n 'GB-alt-variant': 0,\n GE: 1,\n GF: 1,\n GP: 1,\n GR: 1,\n GT: 0,\n GU: 0,\n HK: 0,\n HN: 0,\n HR: 1,\n HU: 1,\n ID: 0,\n IE: 1,\n IL: 0,\n IN: 0,\n IQ: 6,\n IR: 6,\n IS: 1,\n IT: 1,\n JM: 0,\n JO: 6,\n JP: 0,\n KE: 0,\n KG: 1,\n KH: 0,\n KR: 0,\n KW: 6,\n KZ: 1,\n LA: 0,\n LB: 1,\n LI: 1,\n LK: 1,\n LT: 1,\n LU: 1,\n LV: 1,\n LY: 6,\n MC: 1,\n MD: 1,\n ME: 1,\n MH: 0,\n MK: 1,\n MM: 0,\n MN: 1,\n MO: 0,\n MQ: 1,\n MT: 0,\n MV: 5,\n MX: 0,\n MY: 1,\n MZ: 0,\n NI: 0,\n NL: 1,\n NO: 1,\n NP: 0,\n NZ: 1,\n OM: 6,\n PA: 0,\n PE: 0,\n PH: 0,\n PK: 0,\n PL: 1,\n PR: 0,\n PT: 0,\n PY: 0,\n QA: 6,\n RE: 1,\n RO: 1,\n RS: 1,\n RU: 1,\n SA: 0,\n SD: 6,\n SE: 1,\n SG: 0,\n SI: 1,\n SK: 1,\n SM: 1,\n SV: 0,\n SY: 6,\n TH: 0,\n TJ: 1,\n TM: 1,\n TR: 1,\n TT: 0,\n TW: 0,\n UA: 1,\n UM: 0,\n US: 0,\n UY: 1,\n UZ: 1,\n VA: 1,\n VE: 0,\n VI: 0,\n VN: 1,\n WS: 0,\n XK: 1,\n YE: 0,\n ZA: 0,\n ZW: 0,\n}\n\nfunction getWeekArray (date: Date, locale: string, firstDayOfWeek?: number) {\n const weeks = []\n let currentWeek = []\n const firstDayOfMonth = startOfMonth(date)\n const lastDayOfMonth = endOfMonth(date)\n const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0\n const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7\n const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7\n\n for (let i = 0; i < firstDayWeekIndex; i++) {\n const adjacentDay = new Date(firstDayOfMonth)\n adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i))\n currentWeek.push(adjacentDay)\n }\n\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\n const day = new Date(date.getFullYear(), date.getMonth(), i)\n\n // Add the day to the current week\n currentWeek.push(day)\n\n // If the current week has 7 days, add it to the weeks array and start a new week\n if (currentWeek.length === 7) {\n weeks.push(currentWeek)\n currentWeek = []\n }\n }\n\n for (let i = 1; i < 7 - lastDayWeekIndex; i++) {\n const adjacentDay = new Date(lastDayOfMonth)\n adjacentDay.setDate(adjacentDay.getDate() + i)\n currentWeek.push(adjacentDay)\n }\n\n if (currentWeek.length > 0) {\n weeks.push(currentWeek)\n }\n\n return weeks\n}\n\nfunction startOfWeek (date: Date, locale: string, firstDayOfWeek?: number) {\n const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0\n\n const d = new Date(date)\n while (d.getDay() !== day) {\n d.setDate(d.getDate() - 1)\n }\n return d\n}\n\nfunction endOfWeek (date: Date, locale: string) {\n const d = new Date(date)\n const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7\n while (d.getDay() !== lastDay) {\n d.setDate(d.getDate() + 1)\n }\n return d\n}\n\nfunction startOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), 1)\n}\n\nfunction endOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0)\n}\n\nfunction parseLocalDate (value: string): Date {\n const parts = value.split('-').map(Number)\n\n // new Date() uses local time zone when passing individual date component values\n return new Date(parts[0], parts[1] - 1, parts[2])\n}\n\nconst _YYYMMDD = /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/\n\nfunction date (value?: any): Date | null {\n if (value == null) return new Date()\n\n if (value instanceof Date) return value\n\n if (typeof value === 'string') {\n let parsed\n\n if (_YYYMMDD.test(value)) {\n return parseLocalDate(value)\n } else {\n parsed = Date.parse(value)\n }\n\n if (!isNaN(parsed)) return new Date(parsed)\n }\n\n return null\n}\n\nconst sundayJanuarySecond2000 = new Date(2000, 0, 2)\n\nfunction getWeekdays (locale: string, firstDayOfWeek?: number) {\n const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0\n\n return createRange(7).map(i => {\n const weekday = new Date(sundayJanuarySecond2000)\n weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i)\n return new Intl.DateTimeFormat(locale, { weekday: 'narrow' }).format(weekday)\n })\n}\n\nfunction format (\n value: Date,\n formatString: string,\n locale: string,\n formats?: Record\n): string {\n const newDate = date(value) ?? new Date()\n const customFormat = formats?.[formatString]\n\n if (typeof customFormat === 'function') {\n return customFormat(newDate, formatString, locale)\n }\n\n let options: Intl.DateTimeFormatOptions = {}\n switch (formatString) {\n case 'fullDate':\n options = { year: 'numeric', month: 'long', day: 'numeric' }\n break\n case 'fullDateWithWeekday':\n options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }\n break\n case 'normalDate':\n const day = newDate.getDate()\n const month = new Intl.DateTimeFormat(locale, { month: 'long' }).format(newDate)\n return `${day} ${month}`\n case 'normalDateWithWeekday':\n options = { weekday: 'short', day: 'numeric', month: 'short' }\n break\n case 'shortDate':\n options = { month: 'short', day: 'numeric' }\n break\n case 'year':\n options = { year: 'numeric' }\n break\n case 'month':\n options = { month: 'long' }\n break\n case 'monthShort':\n options = { month: 'short' }\n break\n case 'monthAndYear':\n options = { month: 'long', year: 'numeric' }\n break\n case 'monthAndDate':\n options = { month: 'long', day: 'numeric' }\n break\n case 'weekday':\n options = { weekday: 'long' }\n break\n case 'weekdayShort':\n options = { weekday: 'short' }\n break\n case 'dayOfMonth':\n return new Intl.NumberFormat(locale).format(newDate.getDate())\n case 'hours12h':\n options = { hour: 'numeric', hour12: true }\n break\n case 'hours24h':\n options = { hour: 'numeric', hour12: false }\n break\n case 'minutes':\n options = { minute: 'numeric' }\n break\n case 'seconds':\n options = { second: 'numeric' }\n break\n case 'fullTime':\n options = { hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'fullTime12h':\n options = { hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'fullTime24h':\n options = { hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false }\n break\n case 'fullDateTime':\n options = { year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'fullDateTime12h':\n options = { year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'fullDateTime24h':\n options = { year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false }\n break\n case 'keyboardDate':\n options = { year: 'numeric', month: '2-digit', day: '2-digit' }\n break\n case 'keyboardDateTime':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false }\n break\n case 'keyboardDateTime12h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true }\n break\n case 'keyboardDateTime24h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false }\n break\n default:\n options = customFormat ?? { timeZone: 'UTC', timeZoneName: 'short' }\n }\n\n return new Intl.DateTimeFormat(locale, options).format(newDate)\n}\n\nfunction toISO (adapter: DateAdapter, value: Date) {\n const date = adapter.toJsDate(value)\n const year = date.getFullYear()\n const month = padStart(String(date.getMonth() + 1), 2, '0')\n const day = padStart(String(date.getDate()), 2, '0')\n\n return `${year}-${month}-${day}`\n}\n\nfunction parseISO (value: string) {\n const [year, month, day] = value.split('-').map(Number)\n\n return new Date(year, month - 1, day)\n}\n\nfunction addMinutes (date: Date, amount: number) {\n const d = new Date(date)\n d.setMinutes(d.getMinutes() + amount)\n return d\n}\n\nfunction addHours (date: Date, amount: number) {\n const d = new Date(date)\n d.setHours(d.getHours() + amount)\n return d\n}\n\nfunction addDays (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + amount)\n return d\n}\n\nfunction addWeeks (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + (amount * 7))\n return d\n}\n\nfunction addMonths (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(1)\n d.setMonth(d.getMonth() + amount)\n return d\n}\n\nfunction getYear (date: Date) {\n return date.getFullYear()\n}\n\nfunction getMonth (date: Date) {\n return date.getMonth()\n}\n\nfunction getDate (date: Date) {\n return date.getDate()\n}\n\nfunction getNextMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 1)\n}\n\nfunction getPreviousMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() - 1, 1)\n}\n\nfunction getHours (date: Date) {\n return date.getHours()\n}\n\nfunction getMinutes (date: Date) {\n return date.getMinutes()\n}\n\nfunction startOfYear (date: Date) {\n return new Date(date.getFullYear(), 0, 1)\n}\nfunction endOfYear (date: Date) {\n return new Date(date.getFullYear(), 11, 31)\n}\n\nfunction isWithinRange (date: Date, range: [Date, Date]) {\n return isAfter(date, range[0]) && isBefore(date, range[1])\n}\n\nfunction isValid (date: any) {\n const d = new Date(date)\n\n return d instanceof Date && !isNaN(d.getTime())\n}\n\nfunction isAfter (date: Date, comparing: Date) {\n return date.getTime() > comparing.getTime()\n}\n\nfunction isAfterDay (date: Date, comparing: Date): boolean {\n return isAfter(startOfDay(date), startOfDay(comparing))\n}\n\nfunction isBefore (date: Date, comparing: Date) {\n return date.getTime() < comparing.getTime()\n}\n\nfunction isEqual (date: Date, comparing: Date) {\n return date.getTime() === comparing.getTime()\n}\n\nfunction isSameDay (date: Date, comparing: Date) {\n return date.getDate() === comparing.getDate() &&\n date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameMonth (date: Date, comparing: Date) {\n return date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameYear (date: Date, comparing: Date) {\n return date.getFullYear() === comparing.getFullYear()\n}\n\nfunction getDiff (date: Date, comparing: Date | string, unit?: string) {\n const d = new Date(date)\n const c = new Date(comparing)\n\n switch (unit) {\n case 'years':\n return d.getFullYear() - c.getFullYear()\n case 'quarters':\n return Math.floor((d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12) / 4)\n case 'months':\n return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12\n case 'weeks':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24 * 7))\n case 'days':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24))\n case 'hours':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60))\n case 'minutes':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60))\n case 'seconds':\n return Math.floor((d.getTime() - c.getTime()) / 1000)\n default: {\n return d.getTime() - c.getTime()\n }\n }\n}\n\nfunction setHours (date: Date, count: number) {\n const d = new Date(date)\n d.setHours(count)\n return d\n}\n\nfunction setMinutes (date: Date, count: number) {\n const d = new Date(date)\n d.setMinutes(count)\n return d\n}\n\nfunction setMonth (date: Date, count: number) {\n const d = new Date(date)\n d.setMonth(count)\n return d\n}\n\nfunction setDate (date: Date, day: number) {\n const d = new Date(date)\n d.setDate(day)\n return d\n}\n\nfunction setYear (date: Date, year: number) {\n const d = new Date(date)\n d.setFullYear(year)\n return d\n}\n\nfunction startOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0)\n}\n\nfunction endOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999)\n}\n\nexport class VuetifyDateAdapter implements DateAdapter {\n locale: string\n formats?: Record\n\n constructor (options: { locale: string, formats?: Record }) {\n this.locale = options.locale\n this.formats = options.formats\n }\n\n date (value?: any) {\n return date(value)\n }\n\n toJsDate (date: Date) {\n return date\n }\n\n toISO (date: Date): string {\n return toISO(this, date)\n }\n\n parseISO (date: string) {\n return parseISO(date)\n }\n\n addMinutes (date: Date, amount: number) {\n return addMinutes(date, amount)\n }\n\n addHours (date: Date, amount: number) {\n return addHours(date, amount)\n }\n\n addDays (date: Date, amount: number) {\n return addDays(date, amount)\n }\n\n addWeeks (date: Date, amount: number) {\n return addWeeks(date, amount)\n }\n\n addMonths (date: Date, amount: number) {\n return addMonths(date, amount)\n }\n\n getWeekArray (date: Date, firstDayOfWeek?: number | string) {\n return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined)\n }\n\n startOfWeek (date: Date, firstDayOfWeek?: number | string): Date {\n return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined)\n }\n\n endOfWeek (date: Date): Date {\n return endOfWeek(date, this.locale)\n }\n\n startOfMonth (date: Date) {\n return startOfMonth(date)\n }\n\n endOfMonth (date: Date) {\n return endOfMonth(date)\n }\n\n format (date: Date, formatString: string) {\n return format(date, formatString, this.locale, this.formats)\n }\n\n isEqual (date: Date, comparing: Date) {\n return isEqual(date, comparing)\n }\n\n isValid (date: any) {\n return isValid(date)\n }\n\n isWithinRange (date: Date, range: [Date, Date]) {\n return isWithinRange(date, range)\n }\n\n isAfter (date: Date, comparing: Date) {\n return isAfter(date, comparing)\n }\n\n isAfterDay (date: Date, comparing: Date) {\n return isAfterDay(date, comparing)\n }\n\n isBefore (date: Date, comparing: Date) {\n return !isAfter(date, comparing) && !isEqual(date, comparing)\n }\n\n isSameDay (date: Date, comparing: Date) {\n return isSameDay(date, comparing)\n }\n\n isSameMonth (date: Date, comparing: Date) {\n return isSameMonth(date, comparing)\n }\n\n isSameYear (date: Date, comparing: Date) {\n return isSameYear(date, comparing)\n }\n\n setMinutes (date: Date, count: number) {\n return setMinutes(date, count)\n }\n\n setHours (date: Date, count: number) {\n return setHours(date, count)\n }\n\n setMonth (date: Date, count: number) {\n return setMonth(date, count)\n }\n\n setDate (date: Date, day: number): Date {\n return setDate(date, day)\n }\n\n setYear (date: Date, year: number) {\n return setYear(date, year)\n }\n\n getDiff (date: Date, comparing: Date | string, unit?: string) {\n return getDiff(date, comparing, unit)\n }\n\n getWeekdays (firstDayOfWeek?: number | string) {\n return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined)\n }\n\n getYear (date: Date) {\n return getYear(date)\n }\n\n getMonth (date: Date) {\n return getMonth(date)\n }\n\n getDate (date: Date) {\n return getDate(date)\n }\n\n getNextMonth (date: Date) {\n return getNextMonth(date)\n }\n\n getPreviousMonth (date: Date) {\n return getPreviousMonth(date)\n }\n\n getHours (date: Date) {\n return getHours(date)\n }\n\n getMinutes (date: Date) {\n return getMinutes(date)\n }\n\n startOfDay (date: Date) {\n return startOfDay(date)\n }\n\n endOfDay (date: Date) {\n return endOfDay(date)\n }\n\n startOfYear (date: Date) {\n return startOfYear(date)\n }\n\n endOfYear (date: Date) {\n return endOfYear(date)\n }\n}\n","// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { inject, reactive, watch } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { DateAdapter } from './DateAdapter'\nimport type { LocaleInstance } from '@/composables/locale'\n\n// Adapters\nimport { VuetifyDateAdapter } from './adapters/vuetify'\n\nexport interface DateInstance extends DateModule.InternalAdapter {\n locale?: any\n}\n\n/** Supports module augmentation to specify date adapter types */\nexport namespace DateModule {\n interface Adapter {}\n\n export type InternalAdapter = {} extends Adapter ? DateAdapter : Adapter\n}\n\nexport type InternalDateOptions = {\n adapter: (new (options: { locale: any, formats?: any }) => DateInstance) | DateInstance\n formats?: Record\n locale: Record\n}\n\nexport type DateOptions = Partial\n\nexport const DateOptionsSymbol: InjectionKey = Symbol.for('vuetify:date-options')\nexport const DateAdapterSymbol: InjectionKey = Symbol.for('vuetify:date-adapter')\n\nexport function createDate (options: DateOptions | undefined, locale: LocaleInstance) {\n const _options = mergeDeep({\n adapter: VuetifyDateAdapter,\n locale: {\n af: 'af-ZA',\n // ar: '', # not the same value for all variants\n bg: 'bg-BG',\n ca: 'ca-ES',\n ckb: '',\n cs: 'cs-CZ',\n de: 'de-DE',\n el: 'el-GR',\n en: 'en-US',\n // es: '', # not the same value for all variants\n et: 'et-EE',\n fa: 'fa-IR',\n fi: 'fi-FI',\n // fr: '', #not the same value for all variants\n hr: 'hr-HR',\n hu: 'hu-HU',\n he: 'he-IL',\n id: 'id-ID',\n it: 'it-IT',\n ja: 'ja-JP',\n ko: 'ko-KR',\n lv: 'lv-LV',\n lt: 'lt-LT',\n nl: 'nl-NL',\n no: 'no-NO',\n pl: 'pl-PL',\n pt: 'pt-PT',\n ro: 'ro-RO',\n ru: 'ru-RU',\n sk: 'sk-SK',\n sl: 'sl-SI',\n srCyrl: 'sr-SP',\n srLatn: 'sr-SP',\n sv: 'sv-SE',\n th: 'th-TH',\n tr: 'tr-TR',\n az: 'az-AZ',\n uk: 'uk-UA',\n vi: 'vi-VN',\n zhHans: 'zh-CN',\n zhHant: 'zh-TW',\n },\n }, options) as InternalDateOptions\n\n return {\n options: _options,\n instance: createInstance(_options, locale),\n }\n}\n\nfunction createInstance (options: InternalDateOptions, locale: LocaleInstance) {\n const instance = reactive(\n typeof options.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new options.adapter({\n locale: options.locale[locale.current.value] ?? locale.current.value,\n formats: options.formats,\n })\n : options.adapter\n )\n\n watch(locale.current, value => {\n instance.locale = options.locale[value] ?? value ?? instance.locale\n })\n\n return instance\n}\n\nexport function useDate (): DateInstance {\n const options = inject(DateOptionsSymbol)\n\n if (!options) throw new Error('[Vuetify] Could not find injected date options')\n\n const locale = useLocale()\n\n return createInstance(options, locale)\n}\n\n// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024\nexport function getWeek (adapter: DateAdapter, value: any) {\n const date = adapter.toJsDate(value)\n let year = date.getFullYear()\n let d1w1 = new Date(year, 0, 1)\n\n if (date < d1w1) {\n year = year - 1\n d1w1 = new Date(year, 0, 1)\n } else {\n const tv = new Date(year + 1, 0, 1)\n if (date >= tv) {\n year = year + 1\n d1w1 = tv\n }\n }\n\n const diffTime = Math.abs(date.getTime() - d1w1.getTime())\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))\n\n return Math.floor(diffDays / 7) + 1\n}\n","// Composables\nimport { createDate, DateAdapterSymbol, DateOptionsSymbol } from '@/composables/date/date'\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createGoTo, GoToSymbol } from '@/composables/goto'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\n\n// Utilities\nimport { nextTick, reactive } from 'vue'\nimport { defineComponent, getUid, IN_BROWSER, mergeDeep } from '@/util'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DateOptions } from '@/composables/date'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions, SSROptions } from '@/composables/display'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleOptions, RtlOptions } from '@/composables/locale'\nimport type { ThemeOptions } from '@/composables/theme'\nexport * from './composables'\nexport type { DateOptions, DateInstance, DateModule } from '@/composables/date'\n\nexport interface VuetifyOptions {\n aliases?: Record\n blueprint?: Blueprint\n components?: Record\n date?: DateOptions\n directives?: Record\n defaults?: DefaultsOptions\n display?: DisplayOptions\n goTo?: GoToOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: LocaleOptions & RtlOptions\n ssr?: SSROptions\n}\n\nexport interface Blueprint extends Omit {}\n\nexport function createVuetify (vuetify: VuetifyOptions = {}) {\n const { blueprint, ...rest } = vuetify\n const options: VuetifyOptions = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n const defaults = createDefaults(options.defaults)\n const display = createDisplay(options.display, options.ssr)\n const theme = createTheme(options.theme)\n const icons = createIcons(options.icons)\n const locale = createLocale(options.locale)\n const date = createDate(options.date, locale)\n const goTo = createGoTo(options.goTo, locale)\n\n const install = (app: App) => {\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name,\n }))\n }\n\n theme.install(app)\n\n app.provide(DefaultsSymbol, defaults)\n app.provide(DisplaySymbol, display)\n app.provide(ThemeSymbol, theme)\n app.provide(IconSymbol, icons)\n app.provide(LocaleSymbol, locale)\n app.provide(DateOptionsSymbol, date.options)\n app.provide(DateAdapterSymbol, date.instance)\n app.provide(GoToSymbol, goTo)\n\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update()\n })\n } else {\n const { mount } = app\n app.mount = (...args) => {\n const vm = mount(...args)\n nextTick(() => display.update())\n app.mount = mount\n return vm\n }\n }\n }\n\n getUid.reset()\n\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n date: inject.call(this, DateAdapterSymbol),\n })\n },\n },\n })\n }\n }\n\n return {\n install,\n defaults,\n display,\n theme,\n icons,\n locale,\n date,\n goTo,\n }\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\n// Vue's inject() can only be used in setup\nfunction inject (this: ComponentPublicInstance, key: InjectionKey | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n}\n","/* eslint-disable max-len */\n\n// Composables\nimport { VSvgIcon } from '@/composables/icons'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'svg:M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z',\n complete: 'svg:M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z',\n cancel: 'svg:M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n close: 'svg:M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z',\n delete: 'svg:M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z', // delete (e.g. v-chip close)\n clear: 'svg:M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n success: 'svg:M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z',\n info: 'svg:M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',\n warning: 'svg:M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z',\n error: 'svg:M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n prev: 'svg:M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z',\n next: 'svg:M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z',\n checkboxOn: 'svg:M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',\n checkboxOff: 'svg:M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z',\n checkboxIndeterminate: 'svg:M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',\n delimiter: 'svg:M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z', // for carousel\n sortAsc: 'svg:M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z',\n sortDesc: 'svg:M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z',\n expand: 'svg:M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z',\n menu: 'svg:M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z',\n subgroup: 'svg:M7,10L12,15L17,10H7Z',\n dropdown: 'svg:M7,10L12,15L17,10H7Z',\n radioOn: 'svg:M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z',\n radioOff: 'svg:M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',\n edit: 'svg:M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z',\n ratingEmpty: 'svg:M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z',\n ratingFull: 'svg:M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z',\n ratingHalf: 'svg:M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z',\n loading: 'svg:M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12',\n first: 'svg:M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z',\n last: 'svg:M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z',\n unfold: 'svg:M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z',\n file: 'svg:M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z',\n plus: 'svg:M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z',\n minus: 'svg:M19,13H5V11H19V13Z',\n calendar: 'svg:M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1M17,12H12V17H17V12Z',\n treeviewCollapse: 'svg:M7,10L12,15L17,10H7Z',\n treeviewExpand: 'svg:M10,17L15,12L10,7V17Z',\n eyeDropper: 'svg:M19.35,11.72L17.22,13.85L15.81,12.43L8.1,20.14L3.5,22L2,20.5L3.86,15.9L11.57,8.19L10.15,6.78L12.28,4.65L19.35,11.72M16.76,3C17.93,1.83 19.83,1.83 21,3C22.17,4.17 22.17,6.07 21,7.24L19.08,9.16L14.84,4.92L16.76,3M5.56,17.03L4.5,19.5L6.97,18.44L14.4,11L13,9.6L5.56,17.03Z',\n}\n\nconst mdi: IconSet = {\n component: VSvgIcon,\n}\n\nexport { aliases, mdi }\n","// Utilities\nimport { Box } from '@/util/box'\n\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms (el: HTMLElement): Box {\n const rect = el.getBoundingClientRect()\n const style = getComputedStyle(el)\n const tx = style.transform\n\n if (tx) {\n let ta, sx, sy, dx, dy\n if (tx.startsWith('matrix3d(')) {\n ta = tx.slice(9, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[5]\n dx = +ta[12]\n dy = +ta[13]\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[3]\n dx = +ta[4]\n dy = +ta[5]\n } else {\n return new Box(rect)\n }\n\n const to = style.transformOrigin\n const x = rect.x - dx - (1 - sx) * parseFloat(to)\n const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1))\n const w = sx ? rect.width / sx : el.offsetWidth + 1\n const h = sy ? rect.height / sy : el.offsetHeight + 1\n\n return new Box({ x, y, width: w, height: h })\n } else {\n return new Box(rect)\n }\n}\n\nexport function animate (\n el: Element,\n keyframes: Keyframe[] | PropertyIndexedKeyframes | null,\n options?: number | KeyframeAnimationOptions\n) {\n if (typeof el.animate === 'undefined') return { finished: Promise.resolve() }\n\n let animation: Animation\n try {\n animation = el.animate(keyframes, options)\n } catch (err) {\n return { finished: Promise.resolve() }\n }\n\n if (typeof animation.finished === 'undefined') {\n (animation as any).finished = new Promise(resolve => {\n animation.onfinish = () => {\n resolve(animation)\n }\n })\n }\n\n return animation\n}\n","export class Box {\n x: number\n y: number\n width: number\n height: number\n\n constructor ({ x, y, width, height }: {\n x: number\n y: number\n width: number\n height: number\n }) {\n this.x = x\n this.y = y\n this.width = width\n this.height = height\n }\n\n get top () { return this.y }\n get bottom () { return this.y + this.height }\n get left () { return this.x }\n get right () { return this.x + this.width }\n}\n\nexport function getOverflow (a: Box, b: Box) {\n return {\n x: {\n before: Math.max(0, b.left - a.left),\n after: Math.max(0, a.right - b.right),\n },\n y: {\n before: Math.max(0, b.top - a.top),\n after: Math.max(0, a.bottom - b.bottom),\n },\n }\n}\n\nexport function getTargetBox (target: HTMLElement | [x: number, y: number]) {\n if (Array.isArray(target)) {\n return new Box({\n x: target[0],\n y: target[1],\n width: 0,\n height: 0,\n })\n } else {\n return target.getBoundingClientRect()\n }\n}\n","/**\n * WCAG 3.0 APCA perceptual contrast algorithm from https://github.com/Myndex/SAPC-APCA\n * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup\n */\n// Types\nimport type { RGB } from '@/util'\n\n// MAGICAL NUMBERS\n\n// sRGB Conversion to Relative Luminance (Y)\n\n// Transfer Curve (aka \"Gamma\") for sRGB linearization\n// Simple power curve vs piecewise described in docs\n// Essentially, 2.4 best models actual display\n// characteristics in combination with the total method\nconst mainTRC = 2.4\n\nconst Rco = 0.2126729 // sRGB Red Coefficient (from matrix)\nconst Gco = 0.7151522 // sRGB Green Coefficient (from matrix)\nconst Bco = 0.0721750 // sRGB Blue Coefficient (from matrix)\n\n// For Finding Raw SAPC Contrast from Relative Luminance (Y)\n\n// Constants for SAPC Power Curve Exponents\n// One pair for normal text, and one for reverse\n// These are the \"beating heart\" of SAPC\nconst normBG = 0.55\nconst normTXT = 0.58\nconst revTXT = 0.57\nconst revBG = 0.62\n\n// For Clamping and Scaling Values\n\nconst blkThrs = 0.03 // Level that triggers the soft black clamp\nconst blkClmp = 1.45 // Exponent for the soft black clamp curve\nconst deltaYmin = 0.0005 // Lint trap\nconst scaleBoW = 1.25 // Scaling for dark text on light\nconst scaleWoB = 1.25 // Scaling for light text on dark\nconst loConThresh = 0.078 // Threshold for new simple offset scale\nconst loConFactor = 12.82051282051282 // = 1/0.078,\nconst loConOffset = 0.06 // The simple offset\nconst loClip = 0.001 // Output clip (lint trap #2)\n\nexport function APCAcontrast (text: RGB, background: RGB) {\n // Linearize sRGB\n const Rtxt = (text.r / 255) ** mainTRC\n const Gtxt = (text.g / 255) ** mainTRC\n const Btxt = (text.b / 255) ** mainTRC\n\n const Rbg = (background.r / 255) ** mainTRC\n const Gbg = (background.g / 255) ** mainTRC\n const Bbg = (background.b / 255) ** mainTRC\n\n // Apply the standard coefficients and sum to Y\n let Ytxt = (Rtxt * Rco) + (Gtxt * Gco) + (Btxt * Bco)\n let Ybg = (Rbg * Rco) + (Gbg * Gco) + (Bbg * Bco)\n\n // Soft clamp Y when near black.\n // Now clamping all colors to prevent crossover errors\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp\n\n // Return 0 Early for extremely low ∆Y (lint trap #1)\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0.0\n\n // SAPC CONTRAST\n\n let outputContrast: number // For weighted final values\n if (Ybg > Ytxt) {\n // For normal polarity, black text on white\n // Calculate the SAPC contrast value and scale\n\n const SAPC = ((Ybg ** normBG) - (Ytxt ** normTXT)) * scaleBoW\n\n // NEW! SAPC SmoothScale™\n // Low Contrast Smooth Scale Rollout to prevent polarity reversal\n // and also a low clip for very low contrasts (lint trap #2)\n // much of this is for very low contrasts, less than 10\n // therefore for most reversing needs, only loConOffset is important\n outputContrast =\n (SAPC < loClip) ? 0.0\n : (SAPC < loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC - loConOffset\n } else {\n // For reverse polarity, light text on dark\n // WoB should always return negative value.\n\n const SAPC = ((Ybg ** revBG) - (Ytxt ** revTXT)) * scaleWoB\n\n outputContrast =\n (SAPC > -loClip) ? 0.0\n : (SAPC > -loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC + loConOffset\n }\n\n return outputContrast * 100\n}\n","// Types\nimport type { LAB, XYZ } from '../colorUtils'\n\nconst delta = 0.20689655172413793 // 6÷29\n\nconst cielabForwardTransform = (t: number): number => (\n t > delta ** 3\n ? Math.cbrt(t)\n : (t / (3 * delta ** 2)) + 4 / 29\n)\n\nconst cielabReverseTransform = (t: number): number => (\n t > delta\n ? t ** 3\n : (3 * delta ** 2) * (t - 4 / 29)\n)\n\nexport function fromXYZ (xyz: XYZ): LAB {\n const transform = cielabForwardTransform\n const transformedY = transform(xyz[1])\n\n return [\n 116 * transformedY - 16,\n 500 * (transform(xyz[0] / 0.95047) - transformedY),\n 200 * (transformedY - transform(xyz[2] / 1.08883)),\n ]\n}\n\nexport function toXYZ (lab: LAB): XYZ {\n const transform = cielabReverseTransform\n const Ln = (lab[0] + 16) / 116\n return [\n transform(Ln + lab[1] / 500) * 0.95047,\n transform(Ln),\n transform(Ln - lab[2] / 200) * 1.08883,\n ]\n}\n","// Utilities\nimport { clamp } from '@/util/helpers'\n\n// Types\nimport type { RGB, XYZ } from '../colorUtils'\n\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [\n [3.2406, -1.5372, -0.4986],\n [-0.9689, 1.8758, 0.0415],\n [0.0557, -0.2040, 1.0570],\n]\n\n// Forward gamma adjust\nconst srgbForwardTransform = (C: number): number => (\n C <= 0.0031308\n ? C * 12.92\n : 1.055 * C ** (1 / 2.4) - 0.055\n)\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [\n [0.4124, 0.3576, 0.1805],\n [0.2126, 0.7152, 0.0722],\n [0.0193, 0.1192, 0.9505],\n]\n\n// Reverse gamma adjust\nconst srgbReverseTransform = (C: number): number => (\n C <= 0.04045\n ? C / 12.92\n : ((C + 0.055) / 1.055) ** 2.4\n)\n\nexport function fromXYZ (xyz: XYZ): RGB {\n const rgb = Array(3)\n const transform = srgbForwardTransform\n const matrix = srgbForwardMatrix\n\n // Matrix transform, then gamma adjustment\n for (let i = 0; i < 3; ++i) {\n // Rescale back to [0, 255]\n rgb[i] = Math.round(clamp(transform(\n matrix[i][0] * xyz[0] +\n matrix[i][1] * xyz[1] +\n matrix[i][2] * xyz[2]\n )) * 255)\n }\n\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n }\n}\n\nexport function toXYZ ({ r, g, b }: RGB): XYZ {\n const xyz: XYZ = [0, 0, 0]\n const transform = srgbReverseTransform\n const matrix = srgbReverseMatrix\n\n // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n r = transform(r / 255)\n g = transform(g / 255)\n b = transform(b / 255)\n\n // Matrix color space transform\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b\n }\n\n return xyz\n}\n","// Utilities\nimport { APCAcontrast } from './color/APCA'\nimport { consoleWarn } from './console'\nimport { chunk, has, padEnd } from './helpers'\nimport * as CIELAB from '@/util/color/transformCIELAB'\nimport * as sRGB from '@/util/color/transformSRGB'\n\n// Types\nimport type { Colors } from '@/composables/theme'\n\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number, a?: number }\nexport type RGB = { r: number, g: number, b: number, a?: number }\nexport type HSL = { h: number, s: number, l: number, a?: number }\nexport type Hex = string & { __hexBrand: never }\nexport type Color = string | number | HSV | RGB | HSL\n\nexport function isCssColor (color?: string | null | false): boolean {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color)\n}\n\nexport function isParsableColor (color: string): boolean {\n return isCssColor(color) && !/^((rgb|hsl)a?\\()?var\\(--/.test(color)\n}\n\nconst cssColorRe = /^(?(?:rgb|hsl)a?)\\((?.+)\\)/\nconst mappers = {\n rgb: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n rgba: (r: number, g: number, b: number, a?: number) => ({ r, g, b, a }),\n hsl: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsla: (h: number, s: number, l: number, a?: number) => HSLtoRGB({ h, s, l, a }),\n hsv: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n hsva: (h: number, s: number, v: number, a?: number) => HSVtoRGB({ h, s, v, a }),\n}\n\nexport function parseColor (color: Color): RGB {\n if (typeof color === 'number') {\n if (isNaN(color) || color < 0 || color > 0xFFFFFF) { // int can't have opacity\n consoleWarn(`'${color}' is not a valid hex color`)\n }\n\n return {\n r: (color & 0xFF0000) >> 16,\n g: (color & 0xFF00) >> 8,\n b: (color & 0xFF),\n }\n } else if (typeof color === 'string' && cssColorRe.test(color)) {\n const { groups } = color.match(cssColorRe)!\n const { fn, values } = groups as { fn: keyof typeof mappers, values: string }\n const realValues = values.split(/,\\s*/)\n .map(v => {\n if (v.endsWith('%') && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {\n return parseFloat(v) / 100\n } else {\n return parseFloat(v)\n }\n }) as [number, number, number, number?]\n\n return mappers[fn](...realValues)\n } else if (typeof color === 'string') {\n let hex = color.startsWith('#') ? color.slice(1) : color\n\n if ([3, 4].includes(hex.length)) {\n hex = hex.split('').map(char => char + char).join('')\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n const int = parseInt(hex, 16)\n if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {\n consoleWarn(`'${color}' is not a valid hex(a) color`)\n }\n\n return HexToRGB(hex as Hex)\n } else if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n return color\n } else if (has(color, ['h', 's', 'l'])) {\n return HSVtoRGB(HSLtoHSV(color))\n } else if (has(color, ['h', 's', 'v'])) {\n return HSVtoRGB(color)\n }\n }\n\n throw new TypeError(`Invalid color: ${color == null ? color : (String(color) || (color as any).constructor.name)}\\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`)\n}\n\nexport function RGBToInt (color: RGB) {\n return (color.r << 16) + (color.g << 8) + color.b\n}\n\nexport function classToHex (\n color: string,\n colors: Record>,\n currentTheme: Partial,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\n/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function HSVtoRGB (hsva: HSV): RGB {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\nexport function HSLtoRGB (hsla: HSL): RGB {\n return HSVtoRGB(HSLtoHSV(hsla))\n}\n\n/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function RGBtoHSV (rgba: RGB): HSV {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVtoHSL (hsva: HSV): HSL {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLtoHSV (hsl: HSL): HSV {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBtoCSS ({ r, g, b, a }: RGB): string {\n return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`\n}\n\nexport function HSVtoCSS (hsva: HSV): string {\n return RGBtoCSS(HSVtoRGB(hsva))\n}\n\nfunction toHex (v: number) {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n}\n\nexport function RGBtoHex ({ r, g, b, a }: RGB): Hex {\n return `#${[\n toHex(r),\n toHex(g),\n toHex(b),\n a !== undefined ? toHex(Math.round(a * 255)) : '',\n ].join('')}` as Hex\n}\n\nexport function HexToRGB (hex: Hex): RGB {\n hex = parseHex(hex)\n let [r, g, b, a] = chunk(hex, 2).map((c: string) => parseInt(c, 16))\n a = a === undefined ? a : (a / 255)\n\n return { r, g, b, a }\n}\n\nexport function HexToHSV (hex: Hex): HSV {\n const rgb = HexToRGB(hex)\n return RGBtoHSV(rgb)\n}\n\nexport function HSVtoHex (hsva: HSV): Hex {\n return RGBtoHex(HSVtoRGB(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return hex as Hex\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record>,\n currentTheme: Partial,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function lighten (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] + amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\nexport function darken (value: RGB, amount: number): RGB {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma (color: Color) {\n const rgb = parseColor(color)\n\n return sRGB.toXYZ(rgb)[1]\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast (first: Color, second: Color) {\n const l1 = getLuma(first)\n const l2 = getLuma(second)\n\n const light = Math.max(l1, l2)\n const dark = Math.min(l1, l2)\n\n return (light + 0.05) / (dark + 0.05)\n}\n\nexport function getForeground (color: Color) {\n const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color)))\n const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), parseColor(color)))\n\n // TODO: warn about poor color selections\n // const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))\n // const minContrast = Math.max(blackContrast, whiteContrast)\n // if (minContrast < 60) {\n // consoleInfo(`${key} theme color ${color} has poor contrast (${minContrast.toFixed()}%)`)\n // } else if (contrastAsText < 60 && !['background', 'surface'].includes(color)) {\n // consoleInfo(`${key} theme color ${color} has poor contrast as text (${contrastAsText.toFixed()}%)`)\n // }\n\n // Prefer white text if both have an acceptable contrast ratio\n return whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000'\n}\n","/* eslint-disable no-console */\n\n// Utilities\nimport { warn } from 'vue'\n\nexport function consoleWarn (message: string): void {\n warn(`Vuetify: ${message}`)\n}\n\nexport function consoleError (message: string): void {\n warn(`Vuetify error: ${message}`)\n}\n\nexport function deprecate (original: string, replacement: string | string[]) {\n replacement = Array.isArray(replacement)\n ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'`\n : `'${replacement}'`\n warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`)\n}\nexport function breaking (original: string, replacement: string) {\n // warn(`[Vuetify BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`)\n}\nexport function removed (original: string) {\n // warn(`[Vuetify REMOVED] '${original}' has been removed. You can safely omit it.`)\n}\n","// Composables\nimport { makeComponentProps } from '@/composables/component'\n\n// Utilities\nimport { camelize, capitalize, h } from 'vue'\nimport { genericComponent } from './defineComponent'\n\nexport function createSimpleFunctional (\n klass: string,\n tag = 'div',\n name?: string\n) {\n return genericComponent()({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n\n props: {\n tag: {\n type: String,\n default: tag,\n },\n\n ...makeComponentProps(),\n },\n\n setup (props, { slots }) {\n return () => {\n return h(props.tag, {\n class: [klass, props.class],\n style: props.style,\n }, slots.default?.())\n }\n },\n })\n}\n","// Composables\nimport { injectDefaults, internalUseDefaults } from '@/composables/defaults'\n\n// Utilities\nimport {\n defineComponent as _defineComponent, // eslint-disable-line no-restricted-imports\n} from 'vue'\nimport { consoleWarn } from '@/util/console'\nimport { pick } from '@/util/helpers'\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type {\n AllowedComponentProps,\n Component,\n ComponentCustomProps,\n ComponentInjectOptions,\n ComponentObjectPropsOptions,\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentOptionsWithObjectProps,\n ComponentOptionsWithoutProps,\n ComponentPropsOptions,\n ComponentPublicInstance,\n ComputedOptions,\n DefineComponent,\n EmitsOptions,\n ExtractDefaultPropTypes,\n ExtractPropTypes,\n FunctionalComponent,\n MethodOptions,\n ObjectEmitsOptions,\n SlotsType,\n VNode,\n VNodeChild,\n VNodeProps,\n} from 'vue'\n\n// No props\nexport function defineComponent<\n Props = {},\n RawBindings = {},\n D = {},\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithoutProps<\n Props,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent\n\n// Object Props\nexport function defineComponent<\n PropsOptions extends Readonly,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = {},\n EE extends string = string,\n I extends {} = {},\n II extends string = string,\n S extends SlotsType = {},\n>(\n options: ComponentOptionsWithObjectProps<\n PropsOptions,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n I,\n II,\n S\n >\n): DefineComponent & FilterPropsOptions\n\n// Implementation\nexport function defineComponent (options: ComponentOptions) {\n options._setup = options._setup ?? options.setup\n\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return options\n }\n\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, options.name)()\n const propKeys = Object.keys(options.props).filter(key => key !== 'class' && key !== 'style')\n options.filterProps = function filterProps (props: Record) {\n return pick(props, propKeys)\n }\n\n options.props._as = String\n options.setup = function setup (props: Record, ctx) {\n const defaults = injectDefaults()\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx)\n\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, props._as ?? options.name, defaults)\n\n const setupBindings = options._setup(_props, ctx)\n\n provideSubDefaults()\n\n return setupBindings\n }\n }\n\n return options\n}\n\ntype ToListeners = { [K in T]: K extends `on${infer U}` ? Uncapitalize : K }[T]\n\nexport type SlotsToProps<\n U extends RawSlots,\n T = MakeInternalSlots\n> = {\n $children?: (\n | VNodeChild\n | (T extends { default: infer V } ? V : {})\n | { [K in keyof T]?: T[K] }\n )\n 'v-slots'?: { [K in keyof T]?: T[K] | false }\n} & {\n [K in keyof T as `v-slot:${K & string}`]?: T[K] | false\n}\n\ntype RawSlots = Record\ntype Slot = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild\ntype VueSlot = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[]\ntype MakeInternalSlots = {\n [K in keyof T]: Slot\n}\ntype MakeSlots = {\n [K in keyof T]: VueSlot\n}\n\nexport type GenericProps> = {\n $props: Props & SlotsToProps\n $slots: MakeSlots\n}\n\ntype DefineComponentWithGenericProps, slots: RawSlots) => {\n $props?: Record\n})> = <\n PropsOptions extends Readonly,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n // Slots extends RawSlots = ConstructorParameters extends [any, infer SS extends RawSlots | undefined] ? Exclude : {},\n Slots extends RawSlots = ConstructorParameters[1],\n S extends SlotsType = SlotsType>>,\n III = InstanceType,\n P = III extends Record<'$props', any>\n ? Omit\n : PropsOptions,\n EEE extends EmitsOptions = E extends any[]\n ? E\n : III extends Record<'$props', any>\n ? Omit>\n : E,\n Base = DefineComponent<\n P,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n EEE,\n EE,\n PublicProps,\n ExtractPropTypes

& ({} extends E ? {} : EmitsToProps),\n ExtractDefaultPropTypes

,\n S\n >\n>(\n options: ComponentOptionsWithObjectProps\n) => Base & T & FilterPropsOptions\n\ntype DefineComponentWithSlots = <\n PropsOptions extends Readonly,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record,\n EE extends string = string,\n I extends ComponentInjectOptions = {},\n II extends string = string,\n S extends SlotsType = SlotsType>>,\n>(\n options: ComponentOptionsWithObjectProps\n) => DefineComponent<\n ExtractPropTypes & SlotsToProps,\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E,\n EE,\n PublicProps,\n ExtractPropTypes & SlotsToProps & ({} extends E ? {} : EmitsToProps),\n ExtractDefaultPropTypes,\n S\n> & FilterPropsOptions\n\n// No argument - simple default slot\nexport function genericComponent (exposeDefaults?: boolean): DefineComponentWithSlots<{ default: never }>\n\n// Generic constructor argument - generic props and slots\nexport function genericComponent, slots: any) => {\n $props?: Record\n})> (exposeDefaults?: boolean): DefineComponentWithGenericProps\n\n// Slots argument - simple slots\nexport function genericComponent<\n Slots extends RawSlots\n> (exposeDefaults?: boolean): DefineComponentWithSlots\n\n// Implementation\nexport function genericComponent (exposeDefaults = true) {\n return (options: any) => ((exposeDefaults ? defineComponent : _defineComponent) as any)(options)\n}\n\nexport function defineFunctionalComponent<\n T extends FunctionalComponent,\n PropsOptions = ComponentObjectPropsOptions,\n Defaults = ExtractDefaultPropTypes,\n Props = Readonly>,\n> (props: PropsOptions, render: T): FunctionalComponent & Omit> {\n render.props = props as any\n return render as any\n}\n\ntype EmitsToProps = T extends string[]\n ? {\n [K in string & `on${Capitalize}`]?: (...args: any[]) => any\n }\n : T extends ObjectEmitsOptions\n ? {\n [K in string &\n `on${Capitalize}`]?: K extends `on${infer C}`\n ? T[Uncapitalize] extends null\n ? (...args: any[]) => any\n : (\n ...args: T[Uncapitalize] extends (...args: infer P) => any\n ? P\n : never\n ) => any\n : never\n }\n : {}\n\ntype PublicProps =\n & VNodeProps\n & AllowedComponentProps\n & ComponentCustomProps\n\n// Adds a filterProps method to the component options\nexport interface FilterPropsOptions, Props = ExtractPropTypes> {\n filterProps<\n T extends Partial,\n U extends Exclude>\n > (props: T): Partial>\n}\n\n// https://github.com/vuejs/core/pull/10557\nexport type ComponentInstance = T extends { new (): ComponentPublicInstance }\n ? InstanceType\n : T extends FunctionalComponent\n ? ComponentPublicInstance>\n : T extends Component<\n infer Props,\n infer RawBindings,\n infer D,\n infer C,\n infer M\n >\n ? // NOTE we override Props/RawBindings/D to make sure is not `unknown`\n ComponentPublicInstance<\n unknown extends Props ? {} : Props,\n unknown extends RawBindings ? {} : RawBindings,\n unknown extends D ? {} : D,\n C,\n M\n >\n : never // not a vue Component\n\ntype ShortEmitsToObject = E extends Record ? {\n [K in keyof E]: (...args: E[K]) => any;\n} : E;\n","export const standardEasing = 'cubic-bezier(0.4, 0, 0.2, 1)'\nexport const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)' // Entering\nexport const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)' // Leaving\n","// Utilities\nimport { getCurrentInstance as _getCurrentInstance } from 'vue'\nimport { toKebabCase } from '@/util/helpers'\n\n// Types\nimport type { ComponentInternalInstance } from 'vue'\n\nexport function getCurrentInstance (name: string, message?: string) {\n const vm = _getCurrentInstance()\n\n if (!vm) {\n throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`)\n }\n\n return vm\n}\n\nexport function getCurrentInstanceName (name = 'composables') {\n const vm = getCurrentInstance(name).type\n\n return toKebabCase(vm?.aliasName || vm?.name)\n}\n\nlet _uid = 0\nlet _map = new WeakMap()\nexport function getUid () {\n const vm = getCurrentInstance('getUid')\n\n if (_map.has(vm)) return _map.get(vm)!\n else {\n const uid = _uid++\n _map.set(vm, uid)\n return uid\n }\n}\ngetUid.reset = () => {\n _uid = 0\n _map = new WeakMap()\n}\n","export function getScrollParent (el?: HTMLElement, includeHidden = false) {\n while (el) {\n if (includeHidden ? isPotentiallyScrollable(el) : hasScrollbar(el)) return el\n el = el.parentElement!\n }\n\n return document.scrollingElement as HTMLElement\n}\n\nexport function getScrollParents (el?: Element | null, stopAt?: Element | null) {\n const elements: HTMLElement[] = []\n\n if (stopAt && el && !stopAt.contains(el)) return elements\n\n while (el) {\n if (hasScrollbar(el)) elements.push(el as HTMLElement)\n if (el === stopAt) break\n el = el.parentElement!\n }\n\n return elements\n}\n\nexport function hasScrollbar (el?: Element | null) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return style.overflowY === 'scroll' || (style.overflowY === 'auto' && el.scrollHeight > el.clientHeight)\n}\n\nfunction isPotentiallyScrollable (el?: Element | null) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return ['scroll', 'auto'].includes(style.overflowY)\n}\n","export const IN_BROWSER = typeof window !== 'undefined'\nexport const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window\nexport const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0)\nexport const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window\n","// Types\nimport type { IfAny } from '@vue/shared' // eslint-disable-line vue/prefer-import-from-vue\nimport type { ComponentObjectPropsOptions, Prop, PropType } from 'vue'\n\n/**\n * Creates a factory function for props definitions.\n * This is used to define props in a composable then override\n * default values in an implementing component.\n *\n * @example Simplified signature\n * (props: Props) => (defaults?: Record) => Props\n *\n * @example Usage\n * const makeProps = propsFactory({\n * foo: String,\n * })\n *\n * defineComponent({\n * props: {\n * ...makeProps({\n * foo: 'a',\n * }),\n * },\n * setup (props) {\n * // would be \"string | undefined\", now \"string\" because a default has been provided\n * props.foo\n * },\n * }\n */\n\nexport function propsFactory<\n PropsOptions extends ComponentObjectPropsOptions\n> (props: PropsOptions, source: string) {\n return = {}>(\n defaults?: Defaults\n ): AppendDefault => {\n return Object.keys(props).reduce((obj, prop) => {\n const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop])\n const definition = isObjectDefinition ? props[prop] : { type: props[prop] }\n\n if (defaults && prop in defaults) {\n obj[prop] = {\n ...definition,\n default: defaults[prop],\n }\n } else {\n obj[prop] = definition\n }\n\n if (source && !obj[prop].source) {\n obj[prop].source = source\n }\n\n return obj\n }, {})\n }\n}\n\ntype AppendDefault> = {\n [P in keyof T]-?: unknown extends D[P]\n ? T[P]\n : T[P] extends Record\n ? Omit & {\n type: PropType>\n default: MergeDefault\n }\n : {\n type: PropType>\n default: MergeDefault\n }\n}\n\ntype MergeTypeDefault> = unknown extends D\n ? P\n : (P | D)\ntype MergeDefault> = unknown extends D\n ? P\n : (NonNullable

| D)\n\n/**\n * Like `Partial` but doesn't care what the value is\n */\ntype PartialKeys = { [P in keyof T]?: unknown }\n\n// Copied from Vue\ntype InferPropType = [T] extends [null]\n ? any // null & true would fail to infer\n : [T] extends [{ type: null | true }]\n // As TS issue https://github.com/Microsoft/TypeScript/issues/14829\n // somehow `ObjectConstructor` when inferred from { (): T } becomes `any`\n // `BooleanConstructor` when inferred from PropConstructor(with PropMethod) becomes `Boolean`\n ? any\n : [T] extends [ObjectConstructor | { type: ObjectConstructor }]\n ? Record\n : [T] extends [BooleanConstructor | { type: BooleanConstructor }]\n ? boolean\n : [T] extends [DateConstructor | { type: DateConstructor }]\n ? Date\n : [T] extends [(infer U)[] | { type: (infer U)[] }]\n ? U extends DateConstructor\n ? Date | InferPropType\n : InferPropType\n : [T] extends [Prop]\n ? unknown extends V\n ? IfAny\n : V\n : T\n","// Utilities\nimport { getCurrentInstance } from './getCurrentInstance'\n\n// Types\nimport type { VNode } from 'vue'\n\nexport function useRender (render: () => VNode): void {\n const vm = getCurrentInstance('useRender') as any\n vm.render = render\n}\n"],"names":["makeVAppProps","propsFactory","makeComponentProps","makeLayoutProps","fullHeight","makeThemeProps","VApp","genericComponent","name","props","setup","_ref","slots","theme","provideTheme","layoutClasses","getLayoutItem","items","layoutRef","createLayout","rtlClasses","useRtl","useRender","_createVNode","themeClasses","value","class","style","default","makeVAvatarProps","start","Boolean","end","icon","IconValue","image","String","text","makeBorderProps","makeDensityProps","makeRoundedProps","makeSizeProps","makeTagProps","makeVariantProps","variant","VAvatar","borderClasses","useBorder","colorClasses","colorStyles","variantClasses","useVariant","densityClasses","useDensity","roundedClasses","useRounded","sizeClasses","sizeStyles","useSize","tag","VDefaultsProvider","VImg","cover","src","VIcon","genOverlays","makeVBtnGroupProps","baseColor","divided","makeElevationProps","VBtnGroup","elevationClasses","useElevation","provideDefaults","VBtn","height","toRef","color","density","flat","VBtnToggleSymbol","Symbol","for","makeVBtnToggleProps","makeGroupProps","VBtnToggle","emits","isSelected","next","prev","select","selected","useGroup","btnGroupProps","filterProps","_mergeProps","makeVCardProps","appendAvatar","appendIcon","disabled","hover","link","type","undefined","prependAvatar","prependIcon","ripple","Object","subtitle","Number","title","makeDimensionProps","makeLoaderProps","makeLocationProps","makePositionProps","makeRouterProps","VCard","directives","Ripple","attrs","dimensionStyles","useDimension","loaderClasses","useLoader","locationStyles","useLocation","positionClasses","usePosition","useLink","isLink","computed","isClickable","Tag","hasTitle","hasSubtitle","hasHeader","hasAppend","append","hasPrepend","prepend","hasImage","hasCardItem","hasText","_withDirectives","href","navigate","LoaderSlot","loading","loader","VCardItem","item","VCardText","actions","VCardActions","_resolveDirective","slim","makeCardItemProps","hasPrependMedia","hasAppendMedia","_Fragment","VCardTitle","VCardSubtitle","makeVCardSubtitleProps","opacity","makeVCardTextProps","createSimpleFunctional","calculateUpdatedTarget","selectedElement","containerElement","isRtl","isHorizontal","containerSize","getOffsetSize","scrollPosition","getScrollPosition","childrenSize","childrenStartPosition","getOffsetPosition","additionalOffset","calculateCenteredTarget","_ref2","containerOffsetSize","childrenOffsetPosition","childrenOffsetSize","getScrollSize","element","key","getClientSize","rtl","scrollLeft","offsetWidth","scrollWidth","scrollTop","VSlideGroupSymbol","makeVSlideGroupProps","centerActive","direction","symbol","nextIcon","prevIcon","showArrows","validator","v","includes","makeDisplayProps","mobile","selectedClass","VSlideGroup","displayClasses","useDisplay","group","isOverflowing","shallowRef","scrollOffset","contentSize","resizeRef","containerRef","contentRect","containerRect","useResizeObserver","contentRef","goTo","useGoTo","goToOptions","container","el","duration","easing","firstSelectedIndex","length","findIndex","id","lastSelectedIndex","IN_BROWSER","frame","watch","cancelAnimationFrame","requestAnimationFrame","sizeProperty","children","scrollToChildren","isFocused","center","target","scrollToPosition","newPosition","offsetSize","scrollSize","Math","abs","containerWidth","horizontal","onScroll","e","onFocusin","composedPath","onFocusout","ignoreFocusEvent","onFocus","relatedTarget","contains","focus","onFocusAffixes","onKeydown","toFocus","location","preventDefault","querySelector","nextElementSibling","previousElementSibling","firstElementChild","lastElementChild","focusable","focusableChildren","preventScroll","scrollTo","offsetStep","slotProps","hasAffixes","hasPrev","hasNext","clientSize","scrollSizeMax","onClick","VFadeTransition","VChipGroupSymbol","makeVChipGroupProps","column","filter","valueComparator","Function","deepEqual","VChip","slideGroupProps","makeVChipProps","activeClass","closable","closeIcon","closeLabel","draggable","filterIcon","label","pill","modelValue","EventProp","onClickOnce","makeGroupItemProps","val","click","emit","t","useLocale","isActive","useProxiedModel","useGroupItem","closeProps","stopPropagation","toggle","onKeyDown","hasClose","close","hasFilter","hasColor","VExpandXTransition","_vShow","size","makeVDefaultsProviderProps","defaults","reset","root","scoped","toRefs","makeVDialogProps","fullscreen","retainFocus","scrollable","makeVOverlayProps","origin","scrollStrategy","transition","component","VDialogTransition","zIndex","VDialog","afterLeave","scopeId","useScopeId","overlay","ref","before","after","contentEl","globalTop","document","firstElement","lastElement","onAfterEnter","activeElement","onAfterLeave","addEventListener","removeEventListener","immediate","async","nextTick","activatorEl","overlayProps","VOverlay","activatorProps","mergeProps","contentProps","tabindex","$event","activator","_len","arguments","args","Array","_key","forwardRefs","makeVDividerProps","inset","thickness","vertical","VDivider","textColorClasses","textColorStyles","useTextColor","dividerStyles","styles","convertToUnit","divider","role","makeVFormProps","makeFormProps","VForm","submit","form","createForm","formRef","onReset","onSubmit","_e","ready","validate","then","bind","catch","finally","defaultPrevented","valid","breakpointProps","breakpoints","reduce","offsetProps","offsetKey","capitalize","orderProps","orderKey","propMap","col","keys","offset","order","breakpointClass","prop","className","breakpoint","replace","toLowerCase","ALIGN_SELF_VALUES","makeVColProps","cols","alignSelf","str","VCol","classes","classList","forEach","push","hasColClasses","some","startsWith","h","ALIGNMENT","SPACE","makeRowProps","prefix","def","prefixKey","ALIGN_VALUES","alignValidator","alignProps","JUSTIFY_VALUES","justifyValidator","justifyProps","ALIGN_CONTENT_VALUES","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","makeVRowProps","dense","noGutters","VRow","VSpacer","makeVIconProps","slotIcon","iconData","useIcon","slotValue","flattenFragments","node","Text","hasClick","fontSize","width","useAspectStyles","aspectStyles","ratio","aspectRatio","paddingBottom","makeVResponsiveProps","contentClass","inline","VResponsive","additional","makeVImgProps","absolute","alt","eager","gradient","lazySrc","options","rootMargin","threshold","sizes","crossorigin","referrerpolicy","srcset","position","makeTransitionProps","intersect","loadstart","load","error","backgroundColorClasses","backgroundColorStyles","useBackgroundColor","vm","getCurrentInstance","currentSrc","state","naturalWidth","naturalHeight","normalisedSrc","aspect","init","isIntersecting","SUPPORTS_INTERSECTION","lazyImg","Image","pollForSize","setTimeout","isUnmounted","complete","onError","onLoad","getSrc","img","oldVal","onBeforeMount","timer","timeout","poll","clearTimeout","imgHeight","imgWidth","endsWith","window","onBeforeUnmount","containClasses","__image","objectPosition","sources","MaybeTransition","withDirectives","vShow","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","responsiveProps","handler","once","useInputIcon","InputIcon","localeKey","prependInner","appendInner","clear","listener","makeVInputProps","centerAffix","hideDetails","hideSpinButtons","hint","persistentHint","messages","only","makeValidationProps","VInput","uid","getUid","messagesId","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","resetValidation","validationClasses","useValidation","focused","hasMessages","hasDetails","details","VMessages","message","makeVLabelProps","VLabel","VListGroupActivator","defineComponent","_","useNestedGroupActivator","makeVListGroupProps","activeColor","collapseIcon","expandIcon","fluid","subgroup","VListGroup","isOpen","open","_id","useNestedItem","list","useList","useSsrBoot","toggleIcon","activatorDefaults","VListItem","active","VExpandTransition","makeVListChildrenProps","returnObject","VListChildren","createList","map","itemProps","raw","subheader","VListSubheader","slotsWithItem","listGroupProps","_ref3","listItemProps","header","isPrimitive","transformItem","getPropertyFromItem","itemType","itemTitle","itemValue","itemChildren","omit","_props","transformItems","array","useListItems","makeVListProps","bgColor","lines","nav","makeNestedProps","selectStrategy","openStrategy","makeItemsProps","VList","parents","useNested","lineClasses","tagName","onMousedown","focusChild","makeVListItemProps","activate","isActivated","isIndeterminate","isGroupActivator","parent","openOnSelect","activatable","selectable","roundedProps","rounded","variantProps","dispatchEvent","MouseEvent","updateHasPrepend","deprecate","VListItemAction","VListItemTitle","VListItemSubtitle","makeVListItemSubtitleProps","makeVListSubheaderProps","sticky","ListKey","inject","data","provide","VMenuSymbol","makeVMessagesProps","VSlideYTransition","leaveAbsolute","wrapInArray","i","elementToViewport","point","x","y","getOffset","a","b","anchorToPoint","anchor","box","side","isFixedPosition","getComputedStyle","offsetParent","locationStrategies","static","staticLocationStrategy","connected","connectedLocationStrategy","makeLocationStrategyProps","locationStrategy","useLocationStrategies","contentStyles","updateLocation","onResize","useToggleScope","onScopeDispose","passive","getIntrinsicSize","contentBox","nullifyTransforms","parseFloat","right","left","top","activatorFixed","isArray","assign","preferredAnchor","preferredOrigin","destructComputed","parsedAnchor","parseAnchor","parsedOrigin","flipSide","flipAlign","flipCorner","minWidth","minHeight","maxWidth","maxHeight","isNaN","Infinity","split","observe","observer","ResizeObserver","targetBox","getTargetBox","scrollParents","getScrollParents","viewportMargin","documentElement","getPropertyValue","viewport","rect","getBoundingClientRect","scrollBox","Box","clientWidth","clientHeight","max","min","bottom","placement","checkOverflow","_placement","targetPoint","contentPoint","overflows","getOverflow","available","flipped","resets","consoleError","_x","_y","axis","getAxis","hasOverflowX","hasOverflowY","newPlacement","flip","newOverflows","transformOrigin","pixelRound","pixelCeil","clamp","newTarget","newContentEl","oldTarget","oldContentEl","unobserve","disconnect","result","round","devicePixelRatio","ceil","clean","frames","requestNewFrame","cb","run","raf","shift","scrollStrategies","none","closeScrollStrategy","block","blockScrollStrategy","reposition","repositionScrollStrategy","makeScrollStrategyProps","useScrollStrategies","scope","watchEffect","effectScope","Promise","resolve","bindScroll","targetEl","scrollElements","Set","contained","scrollbarWidth","innerWidth","scrollableParent","hasScrollbar","add","setProperty","scrollBehavior","removeProperty","remove","slow","ric","update","performance","now","time","requestIdleCallback","cancelIdleCallback","handlers","WeakMap","bindProps","k","isOn","eventName","get","n","fn","delete","_handler","has","set","removeAttribute","setAttribute","unbindProps","makeActivatorProps","openOnClick","openOnHover","openOnFocus","closeOnContentClick","makeDelayProps","useActivator","isTop","isHovered","firstEnter","runOpenDelay","runCloseDelay","useDelay","cursorTarget","availableEvents","currentTarget","clientX","clientY","onMouseenter","sourceCapabilities","firesTouchEvents","onMouseleave","matchesSelector","onBlur","activatorEvents","events","contentEvents","menu","closeParents","scrimEvents","flush","activatorRef","templateRef","targetRef","getTarget","_useActivator","bindActivatorProps","getActivator","unbindActivatorProps","selector","nodeType","Node","ELEMENT_NODE","proxy","$el","parentNode","hasAttribute","useHydration","ssr","isMounted","onMounted","StackSymbol","globalStack","reactive","useStack","disableGlobalStack","createStackEntry","stack","activeChildren","_zIndex","lastZIndex","at","idx","toRaw","splice","_isTop","localTop","readonly","stackStyles","useTeleport","teleportTarget","_target","targetElement","body","warn","find","matches","createElement","appendChild","attachedRoot","getRootNode","composed","defaultConditional","checkEvent","binding","checkIsActive","ShadowRoot","host","elements","include","closeConditional","directive","shadowTarget","_clickOutside","lastMousedownWasOutside","handleShadow","callback","ClickOutside","mounted","app","instance","$","beforeUnmount","Scrim","rest","Transition","attach","closeOnBack","noClickAnimation","persistent","scrim","makeLazyProps","inheritAttrs","_disableGlobalStack","afterEnter","scrimEl","model","hasContent","_onAfterLeave","useLazy","scrimColor","rootNode","onClickOutside","animateClick","router","useRouter","useBackButton","animate","transform","standardEasing","scrollParent","getScrollParent","scrollingElement","Teleport","makeVProgressCircularProps","indeterminate","rotate","VProgressCircular","MAGIC_RADIUS_CONSTANT","CIRCUMFERENCE","PI","underlayColorClasses","underlayColorStyles","intersectionRef","useIntersectionObserver","normalizedValue","diameter","strokeWidth","strokeDashOffset","makeVProgressLinearProps","bgOpacity","bufferValue","bufferColor","bufferOpacity","clickable","reverse","stream","striped","roundedBar","VProgressLinear","progress","bufferColorClasses","bufferColorStyles","barColorClasses","barColorStyles","normalizedBuffer","isReversed","isForcedColorsModeActive","matchMedia","handleClick","borderTop","bar","buffer","makeVSelectionControlProps","trueValue","falseValue","makeSelectionControlGroupProps","useSelectionControl","VSelectionControlGroupSymbol","isMultiple","multiple","currentValue","newVal","trueIcon","falseIcon","VSelectionControl","isFocusVisible","input","isInteractive","onClickLabel","onInput","forceUpdate","checked","onForceUpdate","rootAttrs","inputAttrs","filterInputAttrs","inputNode","makeVCounterProps","VCounter","functional","counter","makeVFieldLabelProps","floating","VFieldLabel","allowedVariants","makeVFieldProps","appendInnerIcon","clearable","clearIcon","dirty","persistentClear","prependInnerIcon","singleLine","VField","makeFocusProps","focusClasses","blur","useFocus","hasLabel","labelRef","floatingLabelRef","controlRef","isPlainOrUnderlined","targetRect","targetWidth","targetStyle","transitionDuration","scale","visibility","finished","onKeydownClear","isOutlined","hasClear","filterFieldProps","pick","activeTypes","makeVTextFieldProps","autofocus","counterValue","persistentPlaceholder","persistentCounter","suffix","modelModifiers","VTextField","Intersect","toString","maxlength","onIntersect","entries","vInputRef","vFieldRef","inputRef","onControlMousedown","onControlClick","onClear","callEvent","trim","caretPosition","selectionStart","selectionEnd","hasCounter","inputProps","fieldProps","fieldClass","cloneVNode","makeVTooltipProps","VTooltip","hideOnLeave","mode","createCssTransition","functions","onBeforeEnter","onLeave","offsetTop","offsetLeft","offsetHeight","_transitionInitialStyles","TransitionGroup","css","createJavascriptTransition","makeVDialogTransitionProps","pointerEvents","onEnter","done","sx","sy","speed","getDimensions","animation","deceleratedEasing","getChildren","onBeforeLeave","acceleratedEasing","els","elBox","originX","originY","anchorSide","anchorOffset","offsetX","offsetY","tsx","tsy","maxs","asa","innerHeight","expandedParentClass","offsetProperty","camelize","_parent","_initialStyle","overflow","initialStyle","resetStyles","onEnterCancelled","onLeaveCancelled","border","getCurrentInstanceName","isRef","useColor","colors","background","isCssColor","backgroundColor","isParsableColor","parseColor","textColor","getForeground","caretColor","injectSelf","provides","DefaultsSymbol","createDefaults","injectDefaults","Error","injectedDefaults","providedDefaults","newDefaults","unref","properties","mergeDeep","len","propIsDefined","vnode","toKebabCase","internalUseDefaults","__name","componentDefaults","_as","Proxy","propValue","Reflect","global","_subcomponentDefaults","provideSubDefaults","injected","subComponents","toUpperCase","fromEntries","closeDelay","openDelay","clearDelay","runDelay","isOpening","delay","defer","allowedDensities","DisplaySymbol","defaultDisplayOptions","mobileBreakpoint","thresholds","xs","sm","md","lg","xl","xxl","parseDisplayOptions","getClientWidth","getClientHeight","getPlatform","userAgent","navigator","match","regexp","android","ios","cordova","electron","chrome","edge","firefox","opera","win","mac","linux","touch","SUPPORTS_TOUCH","createDisplay","platform","updateSize","breakpointValue","smAndUp","mdAndUp","lgAndUp","xlAndUp","smAndDown","mdAndDown","lgAndDown","xlAndDown","display","elevation","parseInt","FormKey","fastFail","validateOn","errors","results","itemErrorMessages","invalid","deep","register","consoleWarn","markRaw","unregister","found","useForm","Refs","getDescriptor","obj","currentObj","descriptor","getOwnPropertyDescriptor","getPrototypeOf","refs","setupState","childRefs","queue","slice","GoToSymbol","genDefaults","layout","patterns","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getContainer","refElement","totalOffset","createGoTo","locale","_options","property","HTMLElement","parentElement","ease","TypeError","targetLocation","layoutOffset","clampTarget","startLocation","startTime","step","currentTime","timeElapsed","floor","goToInstance","go","scrollHeight","containerHeight","mandatory","injectKey","required","description","isFirst","isLast","getIds","arr","getValues","groupVm","unwrapped","findChildrenWithProvide","index","indexOf","useIndexAsValue","forceMandatoryValue","internalValue","currentId","currentIndex","newIndex","newItem","onUpdated","getItemIndex","ids","itemByIndex","values","itemIndex","aliases","collapse","cancel","success","info","warning","checkboxOn","checkboxOff","checkboxIndeterminate","delimiter","sortAsc","sortDesc","expand","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","first","last","unfold","file","plus","minus","calendar","treeviewCollapse","treeviewExpand","eyeDropper","mdi","VClassIcon","IconSymbol","makeIconProps","VComponentIcon","Icon","VSvgIcon","path","svg","createIcons","sets","defaultSet","vuetify","icons","iconAlias","iconSetName","setName","iconName","iconSet","IntersectionObserver","entry","newValue","oldValue","useItems","hasNullItem","transformIn","transformOut","badge","dismiss","confirmEdit","ok","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","sortBy","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","dateRangeInput","datePicker","itemsSelected","range","noDataText","carousel","moreEvents","today","prependAction","appendAction","otp","fileInput","counterSize","timePicker","am","pm","pagination","previous","page","currentPage","stepper","rating","infiniteScroll","loadMore","empty","LANG_PREFIX","params","createTranslateFunction","current","fallback","shortKey","currentLocale","fallbackLocale","getObjectValueByPath","createNumberFunction","numberFormat","Intl","NumberFormat","format","useProvided","provided","internal","createProvideFunction","createVuetifyAdapter","en","LocaleSymbol","isLocaleInstance","createLocale","i18n","adapter","createRtl","af","ar","bg","ca","ckb","cs","de","es","et","fa","fi","fr","hr","hu","he","it","ja","km","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","oppositeMap","opposite","independentActiveStrategy","strategy","activated","in","out","from","independentSingleActiveStrategy","parentStrategy","singleSelected","leafActiveStrategy","leafSingleActiveStrategy","_ref4","singleOpenStrategy","opened","newOpened","multipleOpenStrategy","listOpenStrategy","independentSelectStrategy","on","Map","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","_ref5","classicSelectStrategy","_ref6","original","childrenIds","everySelected","every","cid","noneSelected","_ref7","VNestedSymbol","emptyNested","selectedValues","activeStrategy","getPath","unshift","nested","parentId","isGroup","child","event","newSelected","newActivated","uidSymbol","computedId","isLeaf","positionValues","defaultValue","kebabProp","checkKebab","isControlled","hasOwnProperty","externalValue","defineProperty","tile","useRoute","$route","$router","RouterLink","resolveDynamicComponent","to","hasEvent","linkProps","routerLink","route","exact","isExactActive","query","inTransition","removeBefore","removeAfter","popped","onPopstate","replaced","beforeEach","afterEach","useSelectLink","predefinedSizes","ssrBootStyles","source","customProps","maxErrors","rules","validationValue","validationModel","internalErrorMessages","concat","invalidInput","lazy","silent","rule","console","unwatch","modifiers","_observe","quiet","unmounted","firstDay","AD","AE","AF","AG","AI","AL","AM","AN","AR","AS","AT","AU","AX","AZ","BA","BD","BE","BG","BH","BM","BN","BR","BS","BT","BW","BY","BZ","CA","CH","CL","CM","CN","CO","CR","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ES","ET","FI","FJ","FO","FR","GB","GE","GF","GP","GR","GT","GU","HK","HN","HR","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KR","KW","KZ","LA","LB","LI","LK","LT","LU","LV","LY","MC","MD","ME","MH","MK","MM","MN","MO","MQ","MT","MV","MX","MY","MZ","NI","NL","NO","NP","NZ","OM","PA","PE","PH","PK","PL","PR","PT","PY","QA","RE","RO","RS","RU","SA","SD","SE","SG","SI","SK","SM","SV","SY","TH","TJ","TM","TR","TT","TW","UA","UM","US","UY","UZ","VA","VE","VI","VN","WS","XK","YE","ZA","ZW","getWeekArray","date","firstDayOfWeek","weeks","currentWeek","firstDayOfMonth","startOfMonth","lastDayOfMonth","endOfMonth","firstDayWeekIndex","getDay","lastDayWeekIndex","adjacentDay","Date","setDate","getDate","day","getFullYear","getMonth","startOfWeek","d","endOfWeek","lastDay","parseLocalDate","parts","_YYYMMDD","parsed","test","parse","sundayJanuarySecond2000","getWeekdays","daysFromSunday","createRange","weekday","DateTimeFormat","formatString","formats","newDate","customFormat","year","month","hour","hour12","minute","second","timeZone","timeZoneName","toISO","toJsDate","padStart","parseISO","addMinutes","amount","setMinutes","getMinutes","addHours","setHours","getHours","addDays","addWeeks","addMonths","setMonth","getYear","getNextMonth","getPreviousMonth","startOfYear","endOfYear","isWithinRange","isAfter","isBefore","getTime","comparing","isAfterDay","startOfDay","isEqual","isSameDay","isSameMonth","isSameYear","getDiff","unit","c","count","setYear","setFullYear","endOfDay","VuetifyDateAdapter","constructor","this","DateOptionsSymbol","DateAdapterSymbol","createDate","createInstance","createVuetify","blueprint","components","createTheme","install","aliasName","ThemeSymbol","$nuxt","hook","mount","mixin","$vuetify","call","version","appContext","tx","ta","dx","dy","w","keyframes","err","onfinish","mainTRC","Rco","Gco","Bco","normBG","normTXT","revTXT","revBG","blkThrs","blkClmp","deltaYmin","scaleBoW","scaleWoB","loConThresh","loConFactor","loConOffset","loClip","APCAcontrast","Rtxt","r","Gtxt","g","Btxt","Rbg","Gbg","Bbg","outputContrast","Ytxt","Ybg","SAPC","delta","cielabForwardTransform","cbrt","cielabReverseTransform","fromXYZ","xyz","transformedY","toXYZ","lab","Ln","srgbForwardMatrix","srgbForwardTransform","C","srgbReverseMatrix","srgbReverseTransform","rgb","matrix","cssColorRe","mappers","rgba","hsl","s","l","HSLtoRGB","hsla","hsv","HSVtoRGB","hsva","groups","realValues","hex","char","join","int","HexToRGB","HSLtoHSV","f","sprime","toHex","substr","RGBtoHex","parseHex","chunk","padEnd","lighten","CIELAB","sRGB","darken","getLuma","blackContrast","whiteContrast","replacement","klass","_setup","propKeys","ctx","setupBindings","exposeDefaults","_defineComponent","_getCurrentInstance","_uid","_map","includeHidden","isPotentiallyScrollable","stopAt","overflowY","maxTouchPoints","isObjectDefinition","definition","render"],"sourceRoot":""}