vuetify 3.10.3 → 3.10.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +3285 -3269
- package/dist/json/importMap-labs.json +18 -18
- package/dist/json/importMap.json +176 -176
- package/dist/json/tags.json +4 -0
- package/dist/json/web-types.json +5963 -5923
- package/dist/vuetify-labs.cjs +125 -81
- package/dist/vuetify-labs.css +6900 -6889
- package/dist/vuetify-labs.d.ts +117 -59
- package/dist/vuetify-labs.esm.js +126 -82
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +125 -81
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +117 -77
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3658 -3647
- package/dist/vuetify.d.ts +117 -59
- package/dist/vuetify.esm.js +117 -77
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +117 -77
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +43 -39
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VBadge/VBadge.css +10 -0
- package/lib/components/VBadge/VBadge.sass +9 -0
- package/lib/components/VBtn/VBtn.js +1 -1
- package/lib/components/VBtn/VBtn.js.map +1 -1
- package/lib/components/VChip/VChip.js +13 -2
- package/lib/components/VChip/VChip.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.d.ts +13 -0
- package/lib/components/VCombobox/VCombobox.js +3 -1
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +4 -1
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableHeaders.js +3 -0
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableRow.js +3 -0
- package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableRows.js +4 -3
- package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
- package/lib/components/VDialog/VDialog.js +29 -11
- package/lib/components/VDialog/VDialog.js.map +1 -1
- package/lib/components/VDialog/__test__/VDialog.spec.browser.js +41 -0
- package/lib/components/VDialog/__test__/VDialog.spec.browser.js.map +1 -1
- package/lib/components/VDivider/VDivider.css +1 -0
- package/lib/components/VDivider/VDivider.sass +1 -0
- package/lib/components/VFileInput/VFileInput.js +2 -1
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VKbd/_variables.scss +3 -1
- package/lib/components/VList/VListItem.js +1 -1
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VTable/VTable.js +20 -32
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewChildren.js +1 -1
- package/lib/components/VTreeview/VTreeviewChildren.js.map +1 -1
- package/lib/composables/group.d.ts +2 -0
- package/lib/composables/group.js +15 -9
- package/lib/composables/group.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +59 -59
- package/lib/framework.js +1 -1
- package/lib/labs/VCalendar/VCalendar.js +7 -3
- package/lib/labs/VCalendar/VCalendar.js.map +1 -1
- package/lib/labs/VCalendar/composables/calendarWithEvents.js +7 -4
- package/lib/labs/VCalendar/composables/calendarWithEvents.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUpload.js +2 -1
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/lib/labs/rules/rules.js +3 -3
- package/lib/labs/rules/rules.js.map +1 -1
- package/lib/util/animation.js +1 -1
- package/lib/util/animation.js.map +1 -1
- package/lib/util/box.d.ts +1 -1
- package/lib/util/box.js +19 -14
- package/lib/util/box.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTreeviewChildren.js","names":["VTreeviewGroup","makeVTreeviewItemProps","VTreeviewItem","VCheckboxBtn","VDivider","VListItemAction","VListSubheader","makeDensityProps","IconValue","computed","reactive","ref","toRaw","genericComponent","getIndentLines","pick","propsFactory","renderSlot","makeVTreeviewChildrenProps","fluid","Boolean","disabled","loadChildren","Function","loadingIcon","type","String","default","items","Array","openOnClick","undefined","indeterminateIcon","falseIcon","trueIcon","returnObject","activatable","selectable","selectedColor","selectStrategy","Object","index","Number","isLastGroup","separateRoots","parentIndentLines","indentLinesVariant","path","VTreeviewChildren","name","props","setup","_ref","slots","isLoading","Set","activatorItems","isClickOnOpen","checkChildren","item","length","children","add","value","raw","delete","selectItem","select","isSelected","map","itemProps","loading","has","nextItemHasChildren","at","depth","isLast","treeItemProps","isFirst","hideAction","hideActions","indentLines","leafLinks","variant","slotsWithItem","toggle","slotProps","internalItem","prepend","_createElementVNode","_Fragment","includes","_createVNode","density","isIndeterminate","v","e","stopPropagation","key","append","title","subtitle","treeviewGroupProps","filterProps","treeviewChildrenProps","_mergeProps","activator","_ref2","activatorProps","listItemProps","onToggleExpand","onClick","header","el","node","divider","subheader","leaf"],"sources":["../../../src/components/VTreeview/VTreeviewChildren.tsx"],"sourcesContent":["// Components\nimport { VTreeviewGroup } from './VTreeviewGroup'\nimport { makeVTreeviewItemProps, VTreeviewItem } from './VTreeviewItem'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VDivider } from '@/components/VDivider'\nimport { VListItemAction, VListSubheader } from '@/components/VList'\n\n// Composables\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, reactive, ref, toRaw } from 'vue'\nimport { genericComponent, getIndentLines, pick, propsFactory, renderSlot } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTreeviewItemSlots } from './VTreeviewItem'\nimport type { InternalListItem } from '@/components/VList/VList'\nimport type { SelectStrategyProp } from '@/composables/nested/nested'\nimport type { GenericProps, IndentLinesVariant, IndentLineType } from '@/util'\n\nexport type VTreeviewChildrenSlots<T> = {\n [K in keyof Omit<VTreeviewItemSlots, 'default'>]: VTreeviewItemSlots[K] & {\n item: T\n internalItem: InternalListItem<T>\n }\n} & {\n default: never\n item: {\n props: InternalListItem['props']\n item: T\n internalItem: InternalListItem<T>\n }\n header: {\n props: InternalListItem['props']\n item: T\n internalItem: InternalListItem<T>\n loading: boolean\n }\n divider: { props: InternalListItem['props'] }\n subheader: { props: InternalListItem['props'] }\n}\n\nexport const makeVTreeviewChildrenProps = propsFactory({\n fluid: Boolean,\n disabled: Boolean,\n loadChildren: Function as PropType<(item: unknown) => Promise<void>>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n items: Array as PropType<readonly InternalListItem[]>,\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate',\n },\n falseIcon: IconValue,\n trueIcon: IconValue,\n returnObject: Boolean,\n activatable: Boolean,\n selectable: Boolean,\n selectedColor: String,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n index: Number,\n isLastGroup: Boolean,\n separateRoots: Boolean,\n parentIndentLines: Array as PropType<IndentLineType[]>,\n indentLinesVariant: String as PropType<IndentLinesVariant>,\n path: {\n type: Array as PropType<number[]>,\n default: () => [],\n },\n ...pick(makeVTreeviewItemProps(), ['hideActions']),\n ...makeDensityProps(),\n}, 'VTreeviewChildren')\n\nexport const VTreeviewChildren = genericComponent<new <T extends InternalListItem>(\n props: {\n items?: readonly T[]\n },\n slots: VTreeviewChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeviewChildren',\n\n props: makeVTreeviewChildrenProps(),\n\n setup (props, { slots }) {\n const isLoading = reactive(new Set<unknown>())\n const activatorItems = ref<VTreeviewItem[]>([])\n\n const isClickOnOpen = computed(() => (\n !props.disabled && (\n props.openOnClick != null\n ? props.openOnClick\n : props.selectable && !props.activatable\n )))\n\n async function checkChildren (item: InternalListItem) {\n try {\n if (!props.items?.length || !props.loadChildren) return\n\n if (item?.children?.length === 0) {\n isLoading.add(item.value)\n await props.loadChildren(item.raw)\n }\n } finally {\n isLoading.delete(item.value)\n }\n }\n\n function selectItem (select: (value: boolean) => void, isSelected: boolean) {\n if (props.selectable) {\n select(isSelected)\n }\n }\n\n return () => slots.default?.() ?? props.items?.map((item, index, items) => {\n const { children, props: itemProps } = item\n const loading = isLoading.has(item.value)\n const nextItemHasChildren = !!items.at(index + 1)?.children\n\n const depth = props.path?.length ?? 0\n const isLast = items.length - 1 === index\n const treeItemProps = {\n index,\n depth,\n isFirst: index === 0,\n isLast,\n path: [...props.path, index],\n hideAction: props.hideActions,\n }\n\n const indentLines = getIndentLines({\n depth,\n isLast,\n isLastGroup: props.isLastGroup,\n leafLinks: !props.hideActions && !props.fluid,\n separateRoots: props.separateRoots,\n parentIndentLines: props.parentIndentLines,\n variant: props.indentLinesVariant,\n })\n\n const slotsWithItem = {\n toggle: slots.toggle\n ? slotProps => slots.toggle?.({ ...slotProps, ...treeItemProps, item: item.raw, internalItem: item, loading })\n : undefined,\n prepend: slotProps => (\n <>\n { props.selectable && (!children || (children && !['leaf', 'single-leaf'].includes(props.selectStrategy as string))) && (\n <VListItemAction start>\n <VCheckboxBtn\n key={ item.value }\n modelValue={ slotProps.isSelected }\n disabled={ props.disabled }\n loading={ loading }\n color={ props.selectedColor }\n density={ props.density }\n indeterminate={ slotProps.isIndeterminate }\n indeterminateIcon={ props.indeterminateIcon }\n falseIcon={ props.falseIcon }\n trueIcon={ props.trueIcon }\n onUpdate:modelValue={ v => selectItem(slotProps.select, v) }\n onClick={ (e: PointerEvent) => e.stopPropagation() }\n onKeydown={ (e: KeyboardEvent) => {\n if (!['Enter', 'Space'].includes(e.key)) return\n e.stopPropagation()\n selectItem(slotProps.select, slotProps.isSelected)\n }}\n />\n </VListItemAction>\n )}\n\n { slots.prepend?.({ ...slotProps, ...treeItemProps, item: item.raw, internalItem: item }) }\n </>\n ),\n append: slots.append\n ? slotProps => slots.append?.({ ...slotProps, ...treeItemProps, item: item.raw, internalItem: item })\n : undefined,\n title: slots.title ? slotProps => slots.title?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n subtitle: slots.subtitle ? slotProps => slots.subtitle?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n } satisfies VTreeviewItem['$props']['$children']\n\n const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps)\n const treeviewChildrenProps = VTreeviewChildren.filterProps({ ...props, ...treeItemProps })\n\n return children ? (\n <VTreeviewGroup\n { ...treeviewGroupProps }\n value={ props.returnObject ? item.raw : treeviewGroupProps?.value }\n rawId={ treeviewGroupProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: itemProps?.value,\n onToggleExpand: [() => checkChildren(item), activatorProps.onClick] as any,\n onClick: isClickOnOpen.value\n ? [() => checkChildren(item), activatorProps.onClick] as any\n : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected),\n }\n\n return renderSlot(\n slots.header,\n { props: listItemProps, item: item.raw, internalItem: item, loading },\n () => (\n <VTreeviewItem\n ref={ el => activatorItems.value[index] = el as VTreeviewItem }\n { ...listItemProps }\n hasCustomPrepend={ !!slots.prepend }\n hideActions={ props.hideActions }\n indentLines={ indentLines.node }\n value={ props.returnObject ? item.raw : itemProps.value }\n loading={ loading }\n v-slots={ slotsWithItem }\n />\n )\n )\n },\n default: () => (\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n items={ children }\n indentLinesVariant={ props.indentLinesVariant }\n parentIndentLines={ indentLines.children }\n isLastGroup={ nextItemHasChildren }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n ),\n }}\n </VTreeviewGroup>\n ) : renderSlot(\n slots.item,\n { props: itemProps, item: item.raw, internalItem: item },\n () => {\n if (item.type === 'divider') {\n return renderSlot(\n slots.divider,\n { props: item.raw },\n () => <VDivider { ...item.props } />,\n )\n }\n if (item.type === 'subheader') {\n return renderSlot(\n slots.subheader,\n { props: item.raw },\n () => <VListSubheader { ...item.props } />,\n )\n }\n return (\n <VTreeviewItem\n { ...itemProps }\n hasCustomPrepend={ !!slots.prepend }\n hideActions={ props.hideActions }\n indentLines={ indentLines.leaf }\n value={ props.returnObject ? toRaw(item.raw) : itemProps.value }\n v-slots={ slotsWithItem }\n />\n )\n })\n })\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VTreeviewChildren.js","names":["VTreeviewGroup","makeVTreeviewItemProps","VTreeviewItem","VCheckboxBtn","VDivider","VListItemAction","VListSubheader","makeDensityProps","IconValue","computed","reactive","ref","toRaw","genericComponent","getIndentLines","pick","propsFactory","renderSlot","makeVTreeviewChildrenProps","fluid","Boolean","disabled","loadChildren","Function","loadingIcon","type","String","default","items","Array","openOnClick","undefined","indeterminateIcon","falseIcon","trueIcon","returnObject","activatable","selectable","selectedColor","selectStrategy","Object","index","Number","isLastGroup","separateRoots","parentIndentLines","indentLinesVariant","path","VTreeviewChildren","name","props","setup","_ref","slots","isLoading","Set","activatorItems","isClickOnOpen","checkChildren","item","length","children","add","value","raw","delete","selectItem","select","isSelected","map","itemProps","loading","has","nextItemHasChildren","at","depth","isLast","treeItemProps","isFirst","hideAction","hideActions","indentLines","leafLinks","variant","slotsWithItem","toggle","slotProps","internalItem","prepend","_createElementVNode","_Fragment","includes","_createVNode","density","isIndeterminate","v","e","stopPropagation","key","append","title","subtitle","treeviewGroupProps","filterProps","treeviewChildrenProps","_mergeProps","activator","_ref2","activatorProps","listItemProps","node","onToggleExpand","onClick","header","el","divider","subheader","leaf"],"sources":["../../../src/components/VTreeview/VTreeviewChildren.tsx"],"sourcesContent":["// Components\nimport { VTreeviewGroup } from './VTreeviewGroup'\nimport { makeVTreeviewItemProps, VTreeviewItem } from './VTreeviewItem'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VDivider } from '@/components/VDivider'\nimport { VListItemAction, VListSubheader } from '@/components/VList'\n\n// Composables\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, reactive, ref, toRaw } from 'vue'\nimport { genericComponent, getIndentLines, pick, propsFactory, renderSlot } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTreeviewItemSlots } from './VTreeviewItem'\nimport type { InternalListItem } from '@/components/VList/VList'\nimport type { SelectStrategyProp } from '@/composables/nested/nested'\nimport type { GenericProps, IndentLinesVariant, IndentLineType } from '@/util'\n\nexport type VTreeviewChildrenSlots<T> = {\n [K in keyof Omit<VTreeviewItemSlots, 'default'>]: VTreeviewItemSlots[K] & {\n item: T\n internalItem: InternalListItem<T>\n }\n} & {\n default: never\n item: {\n props: InternalListItem['props']\n item: T\n internalItem: InternalListItem<T>\n }\n header: {\n props: InternalListItem['props']\n item: T\n internalItem: InternalListItem<T>\n loading: boolean\n }\n divider: { props: InternalListItem['props'] }\n subheader: { props: InternalListItem['props'] }\n}\n\nexport const makeVTreeviewChildrenProps = propsFactory({\n fluid: Boolean,\n disabled: Boolean,\n loadChildren: Function as PropType<(item: unknown) => Promise<void>>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n items: Array as PropType<readonly InternalListItem[]>,\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate',\n },\n falseIcon: IconValue,\n trueIcon: IconValue,\n returnObject: Boolean,\n activatable: Boolean,\n selectable: Boolean,\n selectedColor: String,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n index: Number,\n isLastGroup: Boolean,\n separateRoots: Boolean,\n parentIndentLines: Array as PropType<IndentLineType[]>,\n indentLinesVariant: String as PropType<IndentLinesVariant>,\n path: {\n type: Array as PropType<number[]>,\n default: () => [],\n },\n ...pick(makeVTreeviewItemProps(), ['hideActions']),\n ...makeDensityProps(),\n}, 'VTreeviewChildren')\n\nexport const VTreeviewChildren = genericComponent<new <T extends InternalListItem>(\n props: {\n items?: readonly T[]\n },\n slots: VTreeviewChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeviewChildren',\n\n props: makeVTreeviewChildrenProps(),\n\n setup (props, { slots }) {\n const isLoading = reactive(new Set<unknown>())\n const activatorItems = ref<VTreeviewItem[]>([])\n\n const isClickOnOpen = computed(() => (\n !props.disabled && (\n props.openOnClick != null\n ? props.openOnClick\n : props.selectable && !props.activatable\n )))\n\n async function checkChildren (item: InternalListItem) {\n try {\n if (!props.items?.length || !props.loadChildren) return\n\n if (item?.children?.length === 0) {\n isLoading.add(item.value)\n await props.loadChildren(item.raw)\n }\n } finally {\n isLoading.delete(item.value)\n }\n }\n\n function selectItem (select: (value: boolean) => void, isSelected: boolean) {\n if (props.selectable) {\n select(isSelected)\n }\n }\n\n return () => slots.default?.() ?? props.items?.map((item, index, items) => {\n const { children, props: itemProps } = item\n const loading = isLoading.has(item.value)\n const nextItemHasChildren = !!items.at(index + 1)?.children\n\n const depth = props.path?.length ?? 0\n const isLast = items.length - 1 === index\n const treeItemProps = {\n index,\n depth,\n isFirst: index === 0,\n isLast,\n path: [...props.path, index],\n hideAction: props.hideActions,\n }\n\n const indentLines = getIndentLines({\n depth,\n isLast,\n isLastGroup: props.isLastGroup,\n leafLinks: !props.hideActions && !props.fluid,\n separateRoots: props.separateRoots,\n parentIndentLines: props.parentIndentLines,\n variant: props.indentLinesVariant,\n })\n\n const slotsWithItem = {\n toggle: slots.toggle\n ? slotProps => slots.toggle?.({ ...slotProps, ...treeItemProps, item: item.raw, internalItem: item, loading })\n : undefined,\n prepend: slotProps => (\n <>\n { props.selectable && (!children || (children && !['leaf', 'single-leaf'].includes(props.selectStrategy as string))) && (\n <VListItemAction start>\n <VCheckboxBtn\n key={ item.value }\n modelValue={ slotProps.isSelected }\n disabled={ props.disabled }\n loading={ loading }\n color={ props.selectedColor }\n density={ props.density }\n indeterminate={ slotProps.isIndeterminate }\n indeterminateIcon={ props.indeterminateIcon }\n falseIcon={ props.falseIcon }\n trueIcon={ props.trueIcon }\n onUpdate:modelValue={ v => selectItem(slotProps.select, v) }\n onClick={ (e: PointerEvent) => e.stopPropagation() }\n onKeydown={ (e: KeyboardEvent) => {\n if (!['Enter', 'Space'].includes(e.key)) return\n e.stopPropagation()\n selectItem(slotProps.select, slotProps.isSelected)\n }}\n />\n </VListItemAction>\n )}\n\n { slots.prepend?.({ ...slotProps, ...treeItemProps, item: item.raw, internalItem: item }) }\n </>\n ),\n append: slots.append\n ? slotProps => slots.append?.({ ...slotProps, ...treeItemProps, item: item.raw, internalItem: item })\n : undefined,\n title: slots.title ? slotProps => slots.title?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n subtitle: slots.subtitle ? slotProps => slots.subtitle?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n } satisfies VTreeviewItem['$props']['$children']\n\n const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps)\n const treeviewChildrenProps = VTreeviewChildren.filterProps({ ...props, ...treeItemProps })\n\n return children ? (\n <VTreeviewGroup\n { ...treeviewGroupProps }\n value={ props.returnObject ? item.raw : treeviewGroupProps?.value }\n rawId={ treeviewGroupProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: itemProps?.value,\n indentLines: indentLines.node,\n onToggleExpand: [() => checkChildren(item), activatorProps.onClick] as any,\n onClick: isClickOnOpen.value\n ? [() => checkChildren(item), activatorProps.onClick] as any\n : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected),\n }\n\n return renderSlot(\n slots.header,\n { props: listItemProps, item: item.raw, internalItem: item, loading },\n () => (\n <VTreeviewItem\n ref={ el => activatorItems.value[index] = el as VTreeviewItem }\n { ...listItemProps }\n hasCustomPrepend={ !!slots.prepend }\n hideActions={ props.hideActions }\n value={ props.returnObject ? item.raw : itemProps.value }\n loading={ loading }\n v-slots={ slotsWithItem }\n />\n )\n )\n },\n default: () => (\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n items={ children }\n indentLinesVariant={ props.indentLinesVariant }\n parentIndentLines={ indentLines.children }\n isLastGroup={ nextItemHasChildren }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n ),\n }}\n </VTreeviewGroup>\n ) : renderSlot(\n slots.item,\n { props: itemProps, item: item.raw, internalItem: item },\n () => {\n if (item.type === 'divider') {\n return renderSlot(\n slots.divider,\n { props: item.raw },\n () => <VDivider { ...item.props } />,\n )\n }\n if (item.type === 'subheader') {\n return renderSlot(\n slots.subheader,\n { props: item.raw },\n () => <VListSubheader { ...item.props } />,\n )\n }\n return (\n <VTreeviewItem\n { ...itemProps }\n hasCustomPrepend={ !!slots.prepend }\n hideActions={ props.hideActions }\n indentLines={ indentLines.leaf }\n value={ props.returnObject ? toRaw(item.raw) : itemProps.value }\n v-slots={ slotsWithItem }\n />\n )\n })\n })\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -44,6 +44,8 @@ export interface GroupItemProvide {
|
|
|
44
44
|
value: Ref<unknown>;
|
|
45
45
|
disabled: Ref<boolean | undefined>;
|
|
46
46
|
group: GroupProvide;
|
|
47
|
+
register: () => void;
|
|
48
|
+
unregister: () => void;
|
|
47
49
|
}
|
|
48
50
|
export declare const makeGroupProps: <Defaults extends {
|
|
49
51
|
modelValue?: unknown;
|
package/lib/composables/group.js
CHANGED
|
@@ -36,14 +36,18 @@ export function useGroupItem(props, injectKey) {
|
|
|
36
36
|
}
|
|
37
37
|
const value = toRef(() => props.value);
|
|
38
38
|
const disabled = computed(() => !!(group.disabled.value || props.disabled));
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
function register() {
|
|
40
|
+
group?.register({
|
|
41
|
+
id,
|
|
42
|
+
value,
|
|
43
|
+
disabled
|
|
44
|
+
}, vm);
|
|
45
|
+
}
|
|
46
|
+
function unregister() {
|
|
47
|
+
group?.unregister(id);
|
|
48
|
+
}
|
|
49
|
+
onMounted(() => register());
|
|
50
|
+
onBeforeUnmount(() => unregister());
|
|
47
51
|
const isSelected = computed(() => {
|
|
48
52
|
return group.isSelected(id);
|
|
49
53
|
});
|
|
@@ -71,7 +75,9 @@ export function useGroupItem(props, injectKey) {
|
|
|
71
75
|
selectedClass,
|
|
72
76
|
value,
|
|
73
77
|
disabled,
|
|
74
|
-
group
|
|
78
|
+
group,
|
|
79
|
+
register,
|
|
80
|
+
unregister
|
|
75
81
|
};
|
|
76
82
|
}
|
|
77
83
|
export function useGroup(props, injectKey) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.js","names":["useProxiedModel","computed","inject","onBeforeUnmount","onMounted","onUpdated","provide","reactive","toRef","unref","useId","watch","consoleWarn","deepEqual","findChildrenWithProvide","getCurrentInstance","propsFactory","wrapInArray","makeGroupProps","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","makeGroupItemProps","value","useGroupItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","group","register","unregister","isSelected","isFirst","items","isLast","emit","flush","toggle","select","useGroup","isUnmounted","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","useIndexAsValue","splice","push","forceMandatoryValue","findIndex","find","i","internalValue","slice","includes","step","offset","currentId","currentIndex","newIndex","newItem","state","prev","next","getItemIndex","ids","forEach","itemByIndex","values","itemIndex"],"sources":["../../src/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, useId, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\nimport type { EventProp } from '@/util'\n\nexport interface GroupItem {\n id: string\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\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: string) => void\n select: (id: string, value: boolean) => void\n selected: Ref<Readonly<string[]>>\n isSelected: (id: string) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref<string | undefined>\n items: Readonly<Ref<{\n id: string\n value: unknown\n disabled: boolean | undefined\n }[]>>\n disabled: Ref<boolean | undefined>\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: string\n isSelected: Ref<boolean>\n isFirst: Ref<boolean>\n isLast: Ref<boolean>\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\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<boolean | 'force'>,\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<ReturnType<typeof makeGroupItemProps>> {\n 'onGroup:selected': EventProp<[{ value: boolean }]> | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\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 = useId()\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<GroupProvide>\n) {\n let isUnmounted = false\n const items = reactive<GroupItem[]>([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v === undefined) return []\n\n return getIds(items, v === null ? [null] : 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<GroupItem>\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) === undefined) {\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: string) {\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: string, 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 if (!isSelected && !value) 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: string) => selected.value.includes(id),\n selectedClass: toRef(() => props.selectedClass),\n items: toRef(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef<GroupItem[]>, 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<GroupItem[]>, modelValue: any[]) {\n const ids: string[] = []\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 !== undefined) {\n ids.push(item.id)\n } else if (itemByIndex?.useIndexAsValue) {\n ids.push(itemByIndex.id)\n }\n })\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef<GroupItem[]>, 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 !== undefined ? item.value : itemIndex)\n }\n })\n\n return values\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"group.js","names":["useProxiedModel","computed","inject","onBeforeUnmount","onMounted","onUpdated","provide","reactive","toRef","unref","useId","watch","consoleWarn","deepEqual","findChildrenWithProvide","getCurrentInstance","propsFactory","wrapInArray","makeGroupProps","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","makeGroupItemProps","value","useGroupItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","group","register","unregister","isSelected","isFirst","items","isLast","emit","flush","toggle","select","useGroup","isUnmounted","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","useIndexAsValue","splice","push","forceMandatoryValue","findIndex","find","i","internalValue","slice","includes","step","offset","currentId","currentIndex","newIndex","newItem","state","prev","next","getItemIndex","ids","forEach","itemByIndex","values","itemIndex"],"sources":["../../src/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, useId, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\nimport type { EventProp } from '@/util'\n\nexport interface GroupItem {\n id: string\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\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: string) => void\n select: (id: string, value: boolean) => void\n selected: Ref<Readonly<string[]>>\n isSelected: (id: string) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref<string | undefined>\n items: Readonly<Ref<{\n id: string\n value: unknown\n disabled: boolean | undefined\n }[]>>\n disabled: Ref<boolean | undefined>\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: string\n isSelected: Ref<boolean>\n isFirst: Ref<boolean>\n isLast: Ref<boolean>\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n group: GroupProvide\n register: () => void\n unregister: () => void\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\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<ReturnType<typeof makeGroupItemProps>> {\n 'onGroup:selected': EventProp<[{ value: boolean }]> | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\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 = useId()\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 function register () {\n group?.register({ id, value, disabled }, vm)\n }\n\n function unregister () {\n group?.unregister(id)\n }\n\n onMounted(() => register())\n onBeforeUnmount(() => unregister())\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 register,\n unregister,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey<GroupProvide>\n) {\n let isUnmounted = false\n const items = reactive<GroupItem[]>([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v === undefined) return []\n\n return getIds(items, v === null ? [null] : 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<GroupItem>\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) === undefined) {\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: string) {\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: string, 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 if (!isSelected && !value) 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: string) => selected.value.includes(id),\n selectedClass: toRef(() => props.selectedClass),\n items: toRef(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef<GroupItem[]>, 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<GroupItem[]>, modelValue: any[]) {\n const ids: string[] = []\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 !== undefined) {\n ids.push(item.id)\n } else if (itemByIndex?.useIndexAsValue) {\n ids.push(itemByIndex.id)\n }\n })\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef<GroupItem[]>, 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 !== undefined ? item.value : itemIndex)\n }\n })\n\n return values\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/entry-bundler.js
CHANGED
|
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
|
16
16
|
...options
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
|
-
export const version = "3.10.
|
|
19
|
+
export const version = "3.10.5";
|
|
20
20
|
createVuetify.version = version;
|
|
21
21
|
export { blueprints, components, directives };
|
|
22
22
|
export * from "./composables/index.js";
|
package/lib/framework.d.ts
CHANGED
|
@@ -119,7 +119,7 @@ declare class Box {
|
|
|
119
119
|
y: number;
|
|
120
120
|
width: number;
|
|
121
121
|
height: number;
|
|
122
|
-
constructor(
|
|
122
|
+
constructor(args: DOMRect | {
|
|
123
123
|
x: number;
|
|
124
124
|
y: number;
|
|
125
125
|
width: number;
|
|
@@ -2712,42 +2712,43 @@ declare module 'vue' {
|
|
|
2712
2712
|
$children?: VNodeChild
|
|
2713
2713
|
}
|
|
2714
2714
|
export interface GlobalComponents {
|
|
2715
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
2715
2716
|
VApp: typeof import('vuetify/components')['VApp']
|
|
2716
|
-
VAlert: typeof import('vuetify/components')['VAlert']
|
|
2717
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
2718
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
2719
2717
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
|
2720
2718
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
|
2721
2719
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
|
2722
|
-
|
|
2720
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
|
2721
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
2722
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
2723
2723
|
VBanner: typeof import('vuetify/components')['VBanner']
|
|
2724
2724
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
|
2725
2725
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
|
2726
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
2727
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
|
2728
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
2729
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
2730
|
-
VChip: typeof import('vuetify/components')['VChip']
|
|
2731
2726
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
|
2732
2727
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
2733
2728
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
2738
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
2739
|
-
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
2729
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
2730
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
|
2731
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
2740
2732
|
VCard: typeof import('vuetify/components')['VCard']
|
|
2741
2733
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
|
2742
2734
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
|
2743
2735
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
|
2744
2736
|
VCardText: typeof import('vuetify/components')['VCardText']
|
|
2745
2737
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
|
2746
|
-
|
|
2738
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
|
2747
2739
|
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
2748
|
-
|
|
2740
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
2741
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
2742
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
2743
|
+
VChip: typeof import('vuetify/components')['VChip']
|
|
2744
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
2745
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
2746
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
2747
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
2749
2748
|
VCode: typeof import('vuetify/components')['VCode']
|
|
2749
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
2750
2750
|
VCounter: typeof import('vuetify/components')['VCounter']
|
|
2751
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
|
2751
2752
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
2752
2753
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
2753
2754
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
@@ -2761,33 +2762,27 @@ declare module 'vue' {
|
|
|
2761
2762
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
|
2762
2763
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
|
2763
2764
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
|
2764
|
-
|
|
2765
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
|
2765
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
|
2766
2766
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
2767
2767
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
2768
2768
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
2769
2769
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
|
2770
|
+
VFab: typeof import('vuetify/components')['VFab']
|
|
2770
2771
|
VField: typeof import('vuetify/components')['VField']
|
|
2771
2772
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
2772
|
-
|
|
2773
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
2773
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
2774
2774
|
VFooter: typeof import('vuetify/components')['VFooter']
|
|
2775
2775
|
VIcon: typeof import('vuetify/components')['VIcon']
|
|
2776
2776
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
|
2777
2777
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
|
2778
2778
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
|
2779
2779
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
|
2780
|
-
VFab: typeof import('vuetify/components')['VFab']
|
|
2781
|
-
VInput: typeof import('vuetify/components')['VInput']
|
|
2782
2780
|
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
2783
|
-
|
|
2784
|
-
|
|
2781
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
2782
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
|
2785
2783
|
VImg: typeof import('vuetify/components')['VImg']
|
|
2784
|
+
VInput: typeof import('vuetify/components')['VInput']
|
|
2786
2785
|
VLabel: typeof import('vuetify/components')['VLabel']
|
|
2787
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
|
2788
|
-
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
2789
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
|
2790
|
-
VMessages: typeof import('vuetify/components')['VMessages']
|
|
2791
2786
|
VList: typeof import('vuetify/components')['VList']
|
|
2792
2787
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
|
2793
2788
|
VListImg: typeof import('vuetify/components')['VListImg']
|
|
@@ -2797,24 +2792,34 @@ declare module 'vue' {
|
|
|
2797
2792
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
|
2798
2793
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
|
2799
2794
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
|
2795
|
+
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
2796
|
+
VItem: typeof import('vuetify/components')['VItem']
|
|
2797
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
|
2800
2798
|
VMain: typeof import('vuetify/components')['VMain']
|
|
2801
|
-
|
|
2802
|
-
|
|
2799
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
|
2800
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
2803
2801
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
|
2804
|
-
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
2805
|
-
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
2806
2802
|
VPagination: typeof import('vuetify/components')['VPagination']
|
|
2803
|
+
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
|
2804
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
|
2807
2805
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
|
2806
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
2807
|
+
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
2808
2808
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
|
2809
|
-
|
|
2809
|
+
VRating: typeof import('vuetify/components')['VRating']
|
|
2810
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
2810
2811
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
2811
2812
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
2812
|
-
|
|
2813
|
-
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
2813
|
+
VSelect: typeof import('vuetify/components')['VSelect']
|
|
2814
2814
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
2815
|
-
VSlider: typeof import('vuetify/components')['VSlider']
|
|
2816
|
-
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
2817
2815
|
VSheet: typeof import('vuetify/components')['VSheet']
|
|
2816
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
|
2817
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
2818
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
2819
|
+
VTab: typeof import('vuetify/components')['VTab']
|
|
2820
|
+
VTabs: typeof import('vuetify/components')['VTabs']
|
|
2821
|
+
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
2822
|
+
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
2818
2823
|
VStepper: typeof import('vuetify/components')['VStepper']
|
|
2819
2824
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
|
2820
2825
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
|
@@ -2822,41 +2827,33 @@ declare module 'vue' {
|
|
|
2822
2827
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
|
2823
2828
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
|
2824
2829
|
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
2825
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
2826
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
2827
2830
|
VTextField: typeof import('vuetify/components')['VTextField']
|
|
2828
|
-
VTab: typeof import('vuetify/components')['VTab']
|
|
2829
|
-
VTabs: typeof import('vuetify/components')['VTabs']
|
|
2830
|
-
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
2831
|
-
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
2832
2831
|
VTable: typeof import('vuetify/components')['VTable']
|
|
2832
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
2833
2833
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
2834
2834
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
2835
|
+
VTreeview: typeof import('vuetify/components')['VTreeview']
|
|
2836
|
+
VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
|
|
2837
|
+
VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
|
|
2838
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
2835
2839
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
2836
2840
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
|
2837
2841
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
|
2838
|
-
VTimePicker: typeof import('vuetify/components')['VTimePicker']
|
|
2839
|
-
VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
|
|
2840
|
-
VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
|
|
2841
2842
|
VWindow: typeof import('vuetify/components')['VWindow']
|
|
2842
2843
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
2843
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
2844
|
-
VTreeview: typeof import('vuetify/components')['VTreeview']
|
|
2845
|
-
VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
|
|
2846
|
-
VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
|
|
2847
2844
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
|
2848
2845
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
|
2849
2846
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
|
2850
|
-
VHover: typeof import('vuetify/components')['VHover']
|
|
2851
2847
|
VForm: typeof import('vuetify/components')['VForm']
|
|
2848
|
+
VHover: typeof import('vuetify/components')['VHover']
|
|
2852
2849
|
VContainer: typeof import('vuetify/components')['VContainer']
|
|
2853
2850
|
VCol: typeof import('vuetify/components')['VCol']
|
|
2854
2851
|
VRow: typeof import('vuetify/components')['VRow']
|
|
2855
2852
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
|
2856
2853
|
VLayout: typeof import('vuetify/components')['VLayout']
|
|
2857
2854
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
|
2858
|
-
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
|
2859
2855
|
VLazy: typeof import('vuetify/components')['VLazy']
|
|
2856
|
+
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
|
2860
2857
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
|
2861
2858
|
VParallax: typeof import('vuetify/components')['VParallax']
|
|
2862
2859
|
VRadio: typeof import('vuetify/components')['VRadio']
|
|
@@ -2884,23 +2881,26 @@ declare module 'vue' {
|
|
|
2884
2881
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
|
2885
2882
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
|
2886
2883
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
|
2884
|
+
VTimePicker: typeof import('vuetify/components')['VTimePicker']
|
|
2885
|
+
VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
|
|
2886
|
+
VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
|
|
2887
|
+
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
|
2888
|
+
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
|
2887
2889
|
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
|
2888
2890
|
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
|
2889
|
-
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
|
2890
2891
|
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
|
2891
|
-
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
|
2892
|
-
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
|
2893
|
-
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
|
2894
2892
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
|
2895
2893
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
|
2896
2894
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
|
2897
2895
|
VPie: typeof import('vuetify/labs/components')['VPie']
|
|
2898
2896
|
VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
|
|
2899
2897
|
VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
|
|
2898
|
+
VHotkey: typeof import('vuetify/labs/components')['VHotkey']
|
|
2900
2899
|
VVideo: typeof import('vuetify/labs/components')['VVideo']
|
|
2901
2900
|
VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
|
|
2902
2901
|
VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
|
|
2903
|
-
|
|
2902
|
+
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
|
2903
|
+
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
|
2904
2904
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
|
2905
2905
|
VMaskInput: typeof import('vuetify/labs/components')['VMaskInput']
|
|
2906
2906
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
package/lib/framework.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { mergeProps as _mergeProps, createVNode as _createVNode, withDirectives as _withDirectives } from "vue";
|
|
2
2
|
// Styles
|
|
3
3
|
import "./VCalendarCategory.css";
|
|
4
4
|
import "./VCalendarDaily.css";
|
|
@@ -10,7 +10,8 @@ import { VCalendarDaily } from "./VCalendarDaily.js";
|
|
|
10
10
|
import { VCalendarWeekly } from "./VCalendarWeekly.js"; // Composables
|
|
11
11
|
import { makeCalendarBaseProps } from "./composables/calendarBase.js";
|
|
12
12
|
import { makeCalendarWithEventsProps, useCalendarWithEvents } from "./composables/calendarWithEvents.js";
|
|
13
|
-
import { forwardRefs } from "../../composables/forwardRefs.js"; //
|
|
13
|
+
import { forwardRefs } from "../../composables/forwardRefs.js"; // Directives
|
|
14
|
+
import vResize from "../../directives/resize/index.js"; // Utilities
|
|
14
15
|
import { computed, onMounted, onUpdated, ref, watch } from 'vue';
|
|
15
16
|
import { getParsedCategories } from "./util/parser.js";
|
|
16
17
|
import { copyTimestamp, DAY_MIN, DAYS_IN_MONTH_MAX, DAYS_IN_WEEK, getEndOfMonth, getStartOfMonth, nextDay, prevDay, relativeDays, timestampToDate, updateFormatted, updateRelative, updateWeekday, validateTimestamp } from "./util/timestamp.js";
|
|
@@ -18,6 +19,9 @@ import { genericComponent, useRender } from "../../util/index.js"; // Types
|
|
|
18
19
|
// Types
|
|
19
20
|
export const VCalendar = genericComponent()({
|
|
20
21
|
name: 'VCalendar',
|
|
22
|
+
directives: {
|
|
23
|
+
vResize
|
|
24
|
+
},
|
|
21
25
|
props: {
|
|
22
26
|
modelValue: {
|
|
23
27
|
type: [String, Number, Date],
|
|
@@ -303,7 +307,7 @@ export const VCalendar = genericComponent()({
|
|
|
303
307
|
"onClick:date": (e, day) => {
|
|
304
308
|
if (attrs['onUpdate:modelValue']) emit('update:modelValue', day.date);
|
|
305
309
|
}
|
|
306
|
-
}), base.getScopedSlots()), [[
|
|
310
|
+
}), base.getScopedSlots()), [[vResize, base.updateEventVisibility, void 0, {
|
|
307
311
|
quiet: true
|
|
308
312
|
}]]);
|
|
309
313
|
});
|