@vuetify/nightly 3.11.4-dev.2025-12-21 → 3.11.4-dev.2025-12-22
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/CHANGELOG.md +25 -3
- package/dist/json/attributes.json +1109 -1109
- package/dist/json/importMap-labs.json +24 -24
- package/dist/json/importMap.json +196 -196
- package/dist/json/web-types.json +2247 -2247
- package/dist/vuetify-labs.cjs +40 -15
- package/dist/vuetify-labs.css +4805 -4809
- package/dist/vuetify-labs.d.ts +83 -70
- package/dist/vuetify-labs.esm.js +40 -15
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +40 -15
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +35 -11
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3454 -3458
- package/dist/vuetify.d.ts +83 -70
- package/dist/vuetify.esm.js +35 -11
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +35 -11
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +17 -17
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.js +1 -1
- package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.js +5 -2
- package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
- package/lib/components/VDataTable/types.d.ts +1 -0
- package/lib/components/VDataTable/types.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.js +7 -3
- package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
- package/lib/components/VGrid/VContainer.css +34 -0
- package/lib/components/VGrid/VContainer.js +1 -1
- package/lib/components/VGrid/VContainer.js.map +1 -1
- package/lib/components/VGrid/VContainer.sass +15 -0
- package/lib/components/VGrid/VGrid.css +0 -39
- package/lib/components/VGrid/VGrid.sass +0 -15
- package/lib/components/VGrid/VSpacer.css +3 -0
- package/lib/components/VGrid/VSpacer.js +1 -1
- package/lib/components/VGrid/VSpacer.js.map +1 -1
- package/lib/components/VGrid/VSpacer.sass +5 -0
- package/lib/components/VList/VListItem.d.ts +3 -0
- package/lib/components/VNumberInput/VNumberInput.js +1 -1
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewChildren.js +2 -2
- package/lib/components/VTreeview/VTreeviewChildren.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewItem.d.ts +9 -0
- package/lib/composables/nested/nested.d.ts +3 -0
- package/lib/composables/nested/nested.js +17 -0
- package/lib/composables/nested/nested.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +71 -70
- package/lib/framework.js +1 -1
- package/lib/labs/VDateInput/VDateInput.js +5 -4
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/styles/settings/_variables.scss +11 -0
- package/lib/styles/utilities/_display.sass +2 -1
- package/lib/styles/utilities/_elevation.scss +2 -1
- package/lib/styles/utilities/_pointer-events.sass +2 -1
- package/lib/styles/utilities/_screenreaders.sass +2 -1
- package/package.json +1 -1
|
@@ -109,7 +109,7 @@ export const VDataTableRows = genericComponent()({
|
|
|
109
109
|
return slots['group-summary']?.(slotProps) ?? '';
|
|
110
110
|
}
|
|
111
111
|
const slotProps = {
|
|
112
|
-
index,
|
|
112
|
+
index: item.virtualIndex ?? index,
|
|
113
113
|
item: item.raw,
|
|
114
114
|
internalItem: item,
|
|
115
115
|
columns: columns.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDataTableRows.js","names":["makeVDataTableGroupHeaderRowProps","VDataTableGroupHeaderRow","makeVDataTableRowProps","VDataTableRow","useExpanded","useGroupBy","useHeaders","useSelection","makeDisplayProps","useDisplay","useLocale","Fragment","mergeProps","genericComponent","getPrefixedEventHandlers","pick","propsFactory","useRender","makeVDataTableRowsProps","color","String","loading","Boolean","loadingText","type","default","hideNoData","items","Array","noDataText","rowProps","Object","Function","cellProps","VDataTableRows","name","inheritAttrs","props","setup","_ref","attrs","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","mobile","groupHeaderRowProps","length","_createElementVNode","value","_Fragment","map","item","index","slotProps","_createVNode","_mergeProps","id","raw","internalItem","itemSlotProps","key","onClick","undefined","collapseIcon","expandIcon","density"],"sources":["../../../src/components/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { makeVDataTableGroupHeaderRowProps, VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { makeVDataTableRowProps, VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useGroupBy } from './composables/group'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { Fragment, mergeProps } from 'vue'\nimport { genericComponent, getPrefixedEventHandlers, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group, GroupSummary } from './composables/group'\nimport type { CellProps, DataTableItem, GroupHeaderSlot, GroupSummarySlot, ItemSlot, RowProps } from './types'\nimport type { VDataTableGroupHeaderRowSlots } from './VDataTableGroupHeaderRow'\nimport type { VDataTableRowSlots } from './VDataTableRow'\nimport type { GenericProps } from '@/util'\n\nexport type VDataTableRowsSlots<T> = VDataTableGroupHeaderRowSlots & VDataTableRowSlots<T> & {\n item: ItemSlot<T> & { props: Record<string, any> }\n loading: never\n 'group-header': GroupHeaderSlot\n 'group-summary': GroupSummarySlot\n 'no-data': never\n 'expanded-row': ItemSlot<T>\n}\n\nexport const makeVDataTableRowsProps = propsFactory({\n color: String,\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType<readonly (DataTableItem | Group | GroupSummary)[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowProps: [Object, Function] as PropType<RowProps<any>>,\n cellProps: [Object, Function] as PropType<CellProps<any>>,\n\n ...pick(makeVDataTableRowProps(), ['collapseIcon', 'expandIcon', 'density']),\n ...pick(makeVDataTableGroupHeaderRowProps(), ['groupCollapseIcon', 'groupExpandIcon', 'density']),\n ...makeDisplayProps(),\n}, 'VDataTableRows')\n\nexport const VDataTableRows = genericComponent<new <T>(\n props: {\n items?: readonly (DataTableItem<T> | Group<T> | GroupSummary<T>)[]\n },\n slots: VDataTableRowsSlots<T>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableRows',\n\n inheritAttrs: false,\n\n props: makeVDataTableRowsProps(),\n\n setup (props, { attrs, slots }) {\n const { columns } = useHeaders()\n const { expandOnClick, toggleExpand, isExpanded } = useExpanded()\n const { isSelected, toggleSelect } = useSelection()\n const { toggleGroup, isGroupOpen } = useGroupBy()\n const { t } = useLocale()\n const { mobile } = useDisplay(props)\n\n useRender(() => {\n const groupHeaderRowProps = pick(props, ['groupCollapseIcon', 'groupExpandIcon', 'density'])\n\n if (props.loading && (!props.items.length || slots.loading)) {\n return (\n <tr\n class=\"v-data-table-rows-loading\"\n key=\"loading\"\n >\n <td colspan={ columns.value.length }>\n { slots.loading?.() ?? t(props.loadingText) }\n </td>\n </tr>\n )\n }\n\n if (!props.loading && !props.items.length && !props.hideNoData) {\n return (\n <tr\n class=\"v-data-table-rows-no-data\"\n key=\"no-data\"\n >\n <td colspan={ columns.value.length }>\n { slots['no-data']?.() ?? t(props.noDataText) }\n </td>\n </tr>\n )\n }\n\n return (\n <>\n { props.items.map((item, index) => {\n if (item.type === 'group') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n } satisfies GroupHeaderSlot\n\n return slots['group-header'] ? slots['group-header'](slotProps) : (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n { ...getPrefixedEventHandlers(attrs, ':groupHeader', () => slotProps) }\n { ...groupHeaderRowProps }\n v-slots={ slots }\n />\n )\n }\n\n if (item.type === 'group-summary') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n toggleGroup,\n } satisfies GroupSummarySlot\n\n return slots['group-summary']?.(slotProps) ?? ''\n }\n\n const slotProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n } satisfies ItemSlot<any>\n\n const itemSlotProps = {\n ...slotProps,\n props: mergeProps(\n {\n key: `item_${item.key ?? item.index}`,\n onClick: expandOnClick.value ? () => {\n toggleExpand(item)\n } : undefined,\n index,\n item,\n color: props.color,\n cellProps: props.cellProps,\n collapseIcon: props.collapseIcon,\n expandIcon: props.expandIcon,\n density: props.density,\n mobile: mobile.value,\n },\n getPrefixedEventHandlers(attrs, ':row', () => slotProps),\n typeof props.rowProps === 'function'\n ? props.rowProps({\n item: slotProps.item,\n index: slotProps.index,\n internalItem: slotProps.internalItem,\n })\n : props.rowProps,\n ),\n }\n\n return (\n <Fragment key={ itemSlotProps.props.key as string }>\n { slots.item ? slots.item(itemSlotProps) : (\n <VDataTableRow\n { ...itemSlotProps.props }\n v-slots={ slots }\n />\n )}\n\n { isExpanded(item) && slots['expanded-row']?.(slotProps) }\n </Fragment>\n )\n })}\n </>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VDataTableRows.js","names":["makeVDataTableGroupHeaderRowProps","VDataTableGroupHeaderRow","makeVDataTableRowProps","VDataTableRow","useExpanded","useGroupBy","useHeaders","useSelection","makeDisplayProps","useDisplay","useLocale","Fragment","mergeProps","genericComponent","getPrefixedEventHandlers","pick","propsFactory","useRender","makeVDataTableRowsProps","color","String","loading","Boolean","loadingText","type","default","hideNoData","items","Array","noDataText","rowProps","Object","Function","cellProps","VDataTableRows","name","inheritAttrs","props","setup","_ref","attrs","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","mobile","groupHeaderRowProps","length","_createElementVNode","value","_Fragment","map","item","index","slotProps","_createVNode","_mergeProps","id","virtualIndex","raw","internalItem","itemSlotProps","key","onClick","undefined","collapseIcon","expandIcon","density"],"sources":["../../../src/components/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { makeVDataTableGroupHeaderRowProps, VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { makeVDataTableRowProps, VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useGroupBy } from './composables/group'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { Fragment, mergeProps } from 'vue'\nimport { genericComponent, getPrefixedEventHandlers, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group, GroupSummary } from './composables/group'\nimport type { CellProps, DataTableItem, GroupHeaderSlot, GroupSummarySlot, ItemSlot, RowProps } from './types'\nimport type { VDataTableGroupHeaderRowSlots } from './VDataTableGroupHeaderRow'\nimport type { VDataTableRowSlots } from './VDataTableRow'\nimport type { GenericProps } from '@/util'\n\nexport type VDataTableRowsSlots<T> = VDataTableGroupHeaderRowSlots & VDataTableRowSlots<T> & {\n item: ItemSlot<T> & { props: Record<string, any> }\n loading: never\n 'group-header': GroupHeaderSlot\n 'group-summary': GroupSummarySlot\n 'no-data': never\n 'expanded-row': ItemSlot<T>\n}\n\nexport const makeVDataTableRowsProps = propsFactory({\n color: String,\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType<readonly (DataTableItem | Group | GroupSummary)[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowProps: [Object, Function] as PropType<RowProps<any>>,\n cellProps: [Object, Function] as PropType<CellProps<any>>,\n\n ...pick(makeVDataTableRowProps(), ['collapseIcon', 'expandIcon', 'density']),\n ...pick(makeVDataTableGroupHeaderRowProps(), ['groupCollapseIcon', 'groupExpandIcon', 'density']),\n ...makeDisplayProps(),\n}, 'VDataTableRows')\n\nexport const VDataTableRows = genericComponent<new <T>(\n props: {\n items?: readonly (DataTableItem<T> | Group<T> | GroupSummary<T>)[]\n },\n slots: VDataTableRowsSlots<T>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableRows',\n\n inheritAttrs: false,\n\n props: makeVDataTableRowsProps(),\n\n setup (props, { attrs, slots }) {\n const { columns } = useHeaders()\n const { expandOnClick, toggleExpand, isExpanded } = useExpanded()\n const { isSelected, toggleSelect } = useSelection()\n const { toggleGroup, isGroupOpen } = useGroupBy()\n const { t } = useLocale()\n const { mobile } = useDisplay(props)\n\n useRender(() => {\n const groupHeaderRowProps = pick(props, ['groupCollapseIcon', 'groupExpandIcon', 'density'])\n\n if (props.loading && (!props.items.length || slots.loading)) {\n return (\n <tr\n class=\"v-data-table-rows-loading\"\n key=\"loading\"\n >\n <td colspan={ columns.value.length }>\n { slots.loading?.() ?? t(props.loadingText) }\n </td>\n </tr>\n )\n }\n\n if (!props.loading && !props.items.length && !props.hideNoData) {\n return (\n <tr\n class=\"v-data-table-rows-no-data\"\n key=\"no-data\"\n >\n <td colspan={ columns.value.length }>\n { slots['no-data']?.() ?? t(props.noDataText) }\n </td>\n </tr>\n )\n }\n\n return (\n <>\n { props.items.map((item, index) => {\n if (item.type === 'group') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n } satisfies GroupHeaderSlot\n\n return slots['group-header'] ? slots['group-header'](slotProps) : (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n { ...getPrefixedEventHandlers(attrs, ':groupHeader', () => slotProps) }\n { ...groupHeaderRowProps }\n v-slots={ slots }\n />\n )\n }\n\n if (item.type === 'group-summary') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n toggleGroup,\n } satisfies GroupSummarySlot\n\n return slots['group-summary']?.(slotProps) ?? ''\n }\n\n const slotProps = {\n index: item.virtualIndex ?? index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n } satisfies ItemSlot<any>\n\n const itemSlotProps = {\n ...slotProps,\n props: mergeProps(\n {\n key: `item_${item.key ?? item.index}`,\n onClick: expandOnClick.value ? () => {\n toggleExpand(item)\n } : undefined,\n index,\n item,\n color: props.color,\n cellProps: props.cellProps,\n collapseIcon: props.collapseIcon,\n expandIcon: props.expandIcon,\n density: props.density,\n mobile: mobile.value,\n },\n getPrefixedEventHandlers(attrs, ':row', () => slotProps),\n typeof props.rowProps === 'function'\n ? props.rowProps({\n item: slotProps.item,\n index: slotProps.index,\n internalItem: slotProps.internalItem,\n })\n : props.rowProps,\n ),\n }\n\n return (\n <Fragment key={ itemSlotProps.props.key as string }>\n { slots.item ? slots.item(itemSlotProps) : (\n <VDataTableRow\n { ...itemSlotProps.props }\n v-slots={ slots }\n />\n )}\n\n { isExpanded(item) && slots['expanded-row']?.(slotProps) }\n </Fragment>\n )\n })}\n </>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -132,7 +132,10 @@ export const VDataTableVirtual = genericComponent()({
|
|
|
132
132
|
calculateVisibleItems,
|
|
133
133
|
scrollToIndex
|
|
134
134
|
} = useVirtual(props, flatItems);
|
|
135
|
-
const displayItems = computed(() => computedItems.value.map(item =>
|
|
135
|
+
const displayItems = computed(() => computedItems.value.map(item => ({
|
|
136
|
+
...item.raw,
|
|
137
|
+
virtualIndex: item.index
|
|
138
|
+
})));
|
|
136
139
|
useOptions({
|
|
137
140
|
sortBy,
|
|
138
141
|
page: shallowRef(1),
|
|
@@ -225,7 +228,7 @@ export const VDataTableVirtual = genericComponent()({
|
|
|
225
228
|
}) ?? _createVNode(VDataTableRow, _mergeProps(itemSlotProps.props, {
|
|
226
229
|
"ref": itemRef,
|
|
227
230
|
"key": itemSlotProps.internalItem.index,
|
|
228
|
-
"index": itemSlotProps.
|
|
231
|
+
"index": itemSlotProps.index
|
|
229
232
|
}), slots);
|
|
230
233
|
}
|
|
231
234
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDataTableVirtual.js","names":["makeDataTableProps","VDataTableHeaders","VDataTableRow","VDataTableRows","VTable","VVirtualScrollItem","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","provideSelection","createSort","provideSort","useSortedItems","provideDefaults","makeFilterProps","useFilter","makeVirtualProps","useVirtual","computed","shallowRef","toRef","toRefs","convertToUnit","genericComponent","omit","propsFactory","useRender","makeVDataTableVirtualProps","VDataTableVirtual","name","props","emits","value","setup","_ref","attrs","slots","groupBy","initialSortOrder","sortBy","multiSort","mustSort","disableSort","columns","headers","filterFunctions","sortFunctions","sortRawFunctions","showSelect","showExpand","items","search","filteredItems","transform","item","customKeyFilter","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","raw","flatItems","allItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","currentPage","isExpanded","toggleExpand","containerRef","markerRef","paddingTop","paddingBottom","computedItems","handleItemResize","handleScroll","handleScrollend","calculateVisibleItems","scrollToIndex","displayItems","map","page","itemsPerPage","hideNoData","noDataText","loading","loadingText","slotProps","internalItems","groupedItems","dataTableHeadersProps","filterProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","fixedHeader","sticky","top","wrapper","_createElementVNode","height","colgroup","hideDefaultHeader","thead","hideDefaultBody","border","length","itemSlotProps","internalItem","index","default","_ref2","itemRef","tbody","tfoot","bottom"],"sources":["../../../src/components/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRow } from './VDataTableRow'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\nimport { VVirtualScrollItem } from '@/components/VVirtualScroll/VVirtualScrollItem'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { computed, shallowRef, toRef, toRefs } from 'vue'\nimport { convertToUnit, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly } from 'vue'\nimport type { VDataTableSlotProps } from './VDataTable'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { CellProps, DataTableHeader, RowProps } from '@/components/VDataTable/types'\nimport type { GenericProps, SelectItemKey, TemplateRef } from '@/util'\n\ntype VDataTableVirtualSlotProps<T> = Omit<\n VDataTableSlotProps<T>,\n | 'setItemsPerPage'\n | 'page'\n | 'pageCount'\n | 'itemsPerPage'\n>\n\nexport type VDataTableVirtualSlots<T> = VDataTableRowsSlots<T> & VDataTableHeadersSlots & {\n colgroup: VDataTableVirtualSlotProps<T>\n top: VDataTableVirtualSlotProps<T>\n headers: VDataTableHeadersSlots['headers']\n tbody: VDataTableVirtualSlotProps<T>\n thead: VDataTableVirtualSlotProps<T>\n tfoot: VDataTableVirtualSlotProps<T>\n bottom: VDataTableVirtualSlotProps<T>\n 'body.prepend': VDataTableVirtualSlotProps<T>\n 'body.append': VDataTableVirtualSlotProps<T>\n item: {\n itemRef: TemplateRef\n }\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...omit(makeDataTableProps(), ['hideDefaultFooter']),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps(),\n}, 'VDataTableVirtual')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTableVirtual = genericComponent<new <T extends readonly any[], V>(\n props: {\n items?: T\n itemValue?: SelectItemKey<ItemType<T>>\n rowProps?: RowProps<ItemType<T>>\n cellProps?: CellProps<ItemType<T>>\n itemSelectable?: SelectItemKey<ItemType<T>>\n headers?: DeepReadonly<DataTableHeader<ItemType<T>>[]>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableVirtualSlots<ItemType<T>>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableVirtual',\n\n props: makeVDataTableVirtualProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { initialSortOrder, sortBy, multiSort, mustSort } = createSort(props)\n const { disableSort } = toRefs(props)\n\n const {\n columns,\n headers,\n filterFunctions,\n sortFunctions,\n sortRawFunctions,\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(() => props.showSelect),\n showExpand: toRef(() => props.showExpand),\n })\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(() => props.search)\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ initialSortOrder, sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy, disableSort })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({ ...item.raw, ...item.columns }),\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary'])\n\n const allItems = computed(() => extractRows(flatItems.value))\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems,\n currentPage: allItems,\n })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const {\n containerRef,\n markerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n handleScrollend,\n calculateVisibleItems,\n scrollToIndex,\n } = useVirtual(props, flatItems)\n const displayItems = computed(() => computedItems.value.map(item => item.raw))\n\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(() => props.hideNoData),\n noDataText: toRef(() => props.noDataText),\n loading: toRef(() => props.loading),\n loadingText: toRef(() => props.loadingText),\n },\n })\n\n const slotProps = computed<VDataTableVirtualSlotProps<any>>(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value.map(item => item.raw),\n internalItems: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']))\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n fixedHeader={ props.fixedHeader || props.sticky }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n wrapper: () => (\n <div\n ref={ containerRef }\n onScrollPassive={ handleScroll }\n onScrollend={ handleScrollend }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n <thead key=\"thead\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n multiSort={ !!props.multiSort }\n v-slots={ slots }\n />\n </thead>\n )}\n { slots.thead?.(slotProps.value) }\n { !props.hideDefaultBody && (\n <tbody key=\"tbody\">\n <tr ref={ markerRef } style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n\n { slots['body.prepend']?.(slotProps.value) }\n\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ displayItems.value }\n >\n {{\n ...slots,\n item: itemSlotProps => (\n <VVirtualScrollItem\n key={ itemSlotProps.internalItem.index }\n renderless\n onUpdate:height={ height => handleItemResize(itemSlotProps.internalItem.index, height) }\n >\n { ({ itemRef }) => (\n slots.item?.({ ...itemSlotProps, itemRef }) ?? (\n <VDataTableRow\n { ...itemSlotProps.props }\n ref={ itemRef }\n key={ itemSlotProps.internalItem.index }\n index={ itemSlotProps.internalItem.index }\n v-slots={ slots }\n />\n )\n )}\n </VVirtualScrollItem>\n ),\n }}\n </VDataTableRows>\n\n { slots['body.append']?.(slotProps.value) }\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n </tbody>\n )}\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </table>\n </div>\n ),\n bottom: () => slots.bottom?.(slotProps.value),\n }}\n </VTable>\n )\n })\n\n return {\n calculateVisibleItems,\n scrollToIndex,\n }\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VDataTableVirtual.js","names":["makeDataTableProps","VDataTableHeaders","VDataTableRow","VDataTableRows","VTable","VVirtualScrollItem","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","provideSelection","createSort","provideSort","useSortedItems","provideDefaults","makeFilterProps","useFilter","makeVirtualProps","useVirtual","computed","shallowRef","toRef","toRefs","convertToUnit","genericComponent","omit","propsFactory","useRender","makeVDataTableVirtualProps","VDataTableVirtual","name","props","emits","value","setup","_ref","attrs","slots","groupBy","initialSortOrder","sortBy","multiSort","mustSort","disableSort","columns","headers","filterFunctions","sortFunctions","sortRawFunctions","showSelect","showExpand","items","search","filteredItems","transform","item","customKeyFilter","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","raw","flatItems","allItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","currentPage","isExpanded","toggleExpand","containerRef","markerRef","paddingTop","paddingBottom","computedItems","handleItemResize","handleScroll","handleScrollend","calculateVisibleItems","scrollToIndex","displayItems","map","virtualIndex","index","page","itemsPerPage","hideNoData","noDataText","loading","loadingText","slotProps","internalItems","groupedItems","dataTableHeadersProps","filterProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","fixedHeader","sticky","top","wrapper","_createElementVNode","height","colgroup","hideDefaultHeader","thead","hideDefaultBody","border","length","itemSlotProps","internalItem","default","_ref2","itemRef","tbody","tfoot","bottom"],"sources":["../../../src/components/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRow } from './VDataTableRow'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\nimport { VVirtualScrollItem } from '@/components/VVirtualScroll/VVirtualScrollItem'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { computed, shallowRef, toRef, toRefs } from 'vue'\nimport { convertToUnit, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly } from 'vue'\nimport type { VDataTableSlotProps } from './VDataTable'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { CellProps, DataTableHeader, RowProps } from '@/components/VDataTable/types'\nimport type { GenericProps, SelectItemKey, TemplateRef } from '@/util'\n\ntype VDataTableVirtualSlotProps<T> = Omit<\n VDataTableSlotProps<T>,\n | 'setItemsPerPage'\n | 'page'\n | 'pageCount'\n | 'itemsPerPage'\n>\n\nexport type VDataTableVirtualSlots<T> = VDataTableRowsSlots<T> & VDataTableHeadersSlots & {\n colgroup: VDataTableVirtualSlotProps<T>\n top: VDataTableVirtualSlotProps<T>\n headers: VDataTableHeadersSlots['headers']\n tbody: VDataTableVirtualSlotProps<T>\n thead: VDataTableVirtualSlotProps<T>\n tfoot: VDataTableVirtualSlotProps<T>\n bottom: VDataTableVirtualSlotProps<T>\n 'body.prepend': VDataTableVirtualSlotProps<T>\n 'body.append': VDataTableVirtualSlotProps<T>\n item: {\n itemRef: TemplateRef\n }\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...omit(makeDataTableProps(), ['hideDefaultFooter']),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps(),\n}, 'VDataTableVirtual')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTableVirtual = genericComponent<new <T extends readonly any[], V>(\n props: {\n items?: T\n itemValue?: SelectItemKey<ItemType<T>>\n rowProps?: RowProps<ItemType<T>>\n cellProps?: CellProps<ItemType<T>>\n itemSelectable?: SelectItemKey<ItemType<T>>\n headers?: DeepReadonly<DataTableHeader<ItemType<T>>[]>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableVirtualSlots<ItemType<T>>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableVirtual',\n\n props: makeVDataTableVirtualProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { initialSortOrder, sortBy, multiSort, mustSort } = createSort(props)\n const { disableSort } = toRefs(props)\n\n const {\n columns,\n headers,\n filterFunctions,\n sortFunctions,\n sortRawFunctions,\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(() => props.showSelect),\n showExpand: toRef(() => props.showExpand),\n })\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(() => props.search)\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ initialSortOrder, sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy, disableSort })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({ ...item.raw, ...item.columns }),\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary'])\n\n const allItems = computed(() => extractRows(flatItems.value))\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems,\n currentPage: allItems,\n })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const {\n containerRef,\n markerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n handleScrollend,\n calculateVisibleItems,\n scrollToIndex,\n } = useVirtual(props, flatItems)\n\n const displayItems = computed(() =>\n computedItems.value\n .map(item => ({\n ...item.raw,\n virtualIndex: item.index,\n }))\n )\n\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(() => props.hideNoData),\n noDataText: toRef(() => props.noDataText),\n loading: toRef(() => props.loading),\n loadingText: toRef(() => props.loadingText),\n },\n })\n\n const slotProps = computed<VDataTableVirtualSlotProps<any>>(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value.map(item => item.raw),\n internalItems: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']))\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n fixedHeader={ props.fixedHeader || props.sticky }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n wrapper: () => (\n <div\n ref={ containerRef }\n onScrollPassive={ handleScroll }\n onScrollend={ handleScrollend }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n <thead key=\"thead\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n multiSort={ !!props.multiSort }\n v-slots={ slots }\n />\n </thead>\n )}\n { slots.thead?.(slotProps.value) }\n { !props.hideDefaultBody && (\n <tbody key=\"tbody\">\n <tr ref={ markerRef } style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n\n { slots['body.prepend']?.(slotProps.value) }\n\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ displayItems.value }\n >\n {{\n ...slots,\n item: itemSlotProps => (\n <VVirtualScrollItem\n key={ itemSlotProps.internalItem.index }\n renderless\n onUpdate:height={ height => handleItemResize(itemSlotProps.internalItem.index, height) }\n >\n { ({ itemRef }) => (\n slots.item?.({ ...itemSlotProps, itemRef }) ?? (\n <VDataTableRow\n { ...itemSlotProps.props }\n ref={ itemRef }\n key={ itemSlotProps.internalItem.index }\n index={ itemSlotProps.index }\n v-slots={ slots }\n />\n )\n )}\n </VVirtualScrollItem>\n ),\n }}\n </VDataTableRows>\n\n { slots['body.append']?.(slotProps.value) }\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n </tbody>\n )}\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </table>\n </div>\n ),\n bottom: () => slots.bottom?.(slotProps.value),\n }}\n </VTable>\n )\n })\n\n return {\n calculateVisibleItems,\n scrollToIndex,\n }\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -40,6 +40,7 @@ export type InternalDataTableHeader = Omit<DataTableHeader, 'key' | 'value' | 'c
|
|
|
40
40
|
export interface DataTableItem<T = any> extends Omit<InternalItem<T>, 'type'>, GroupableItem<T>, SelectableItem {
|
|
41
41
|
key: any;
|
|
42
42
|
index: number;
|
|
43
|
+
virtualIndex?: number;
|
|
43
44
|
columns: {
|
|
44
45
|
[key: string]: any;
|
|
45
46
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/components/VDataTable/types.ts"],"sourcesContent":["// Types\nimport type { provideExpanded } from './composables/expand'\nimport type { Group, GroupableItem, GroupSummary, provideGroupBy } from './composables/group'\nimport type { provideSelection, SelectableItem } from './composables/select'\nimport type { FilterFunction, InternalItem } from '@/composables/filter'\nimport type { SelectItemKey } from '@/util'\n\nexport type DataTableCompareFunction<T = any> = (a: T, b: T) => number | null\n\nexport type DataTableHeader<T = Record<string, any>> = {\n key?: 'data-table-group' | 'data-table-select' | 'data-table-expand' | (string & {})\n value?: SelectItemKey<T>\n title?: string\n\n fixed?: boolean | 'start' | 'end'\n align?: 'start' | 'end' | 'center'\n\n width?: number | string\n minWidth?: number | string\n maxWidth?: number | string\n nowrap?: boolean\n indent?: number\n\n headerProps?: Record<string, any>\n cellProps?: HeaderCellProps\n\n sortable?: boolean\n sort?: DataTableCompareFunction\n sortRaw?: DataTableCompareFunction\n filter?: FilterFunction\n\n children?: DataTableHeader<T>[]\n}\n\nexport type InternalDataTableHeader = Omit<DataTableHeader, 'key' | 'value' | 'children'> & {\n key: string | null\n value: SelectItemKey | null\n sortable: boolean\n fixedOffset?: number\n fixedEndOffset?: number\n lastFixed?: boolean\n firstFixedEnd?: boolean\n nowrap?: boolean\n colspan?: number\n rowspan?: number\n children?: InternalDataTableHeader[]\n}\n\nexport interface DataTableItem<T = any> extends Omit<InternalItem<T>, 'type'>, GroupableItem<T>, SelectableItem {\n key: any\n index: number\n columns: {\n [key: string]: any\n }\n}\n\nexport type GroupHeaderSlot = {\n index: number\n item: Group\n columns: InternalDataTableHeader[]\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n isGroupOpen: ReturnType<typeof provideGroupBy>['isGroupOpen']\n}\n\nexport type GroupSummarySlot = {\n index: number\n item: GroupSummary\n columns: InternalDataTableHeader[]\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n}\n\ntype ItemSlotBase<T> = {\n index: number\n item: T\n internalItem: DataTableItem<T>\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n}\n\nexport type ItemSlot<T> = ItemSlotBase<T> & {\n columns: InternalDataTableHeader[]\n}\n\nexport type ItemKeySlot<T> = ItemSlotBase<T> & {\n value: any\n column: InternalDataTableHeader\n}\n\nexport type RowProps<T> = Record<string, any> | RowPropsFunction<T>\nexport type RowPropsFunction<T> = (\n data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem'>\n) => Record<string, any>\n\nexport type CellProps<T> = Record<string, any> | CellPropsFunction<T>\nexport type CellPropsFunction<T> = (\n data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem' | 'value' | 'column'>\n) => Record<string, any>\n\nexport type HeaderCellProps = Record<string, any> | HeaderCellPropsFunction\nexport type HeaderCellPropsFunction = (\n data: Pick<ItemKeySlot<any>, 'index' | 'item' | 'internalItem' | 'value'>\n) => Record<string, any>\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/components/VDataTable/types.ts"],"sourcesContent":["// Types\nimport type { provideExpanded } from './composables/expand'\nimport type { Group, GroupableItem, GroupSummary, provideGroupBy } from './composables/group'\nimport type { provideSelection, SelectableItem } from './composables/select'\nimport type { FilterFunction, InternalItem } from '@/composables/filter'\nimport type { SelectItemKey } from '@/util'\n\nexport type DataTableCompareFunction<T = any> = (a: T, b: T) => number | null\n\nexport type DataTableHeader<T = Record<string, any>> = {\n key?: 'data-table-group' | 'data-table-select' | 'data-table-expand' | (string & {})\n value?: SelectItemKey<T>\n title?: string\n\n fixed?: boolean | 'start' | 'end'\n align?: 'start' | 'end' | 'center'\n\n width?: number | string\n minWidth?: number | string\n maxWidth?: number | string\n nowrap?: boolean\n indent?: number\n\n headerProps?: Record<string, any>\n cellProps?: HeaderCellProps\n\n sortable?: boolean\n sort?: DataTableCompareFunction\n sortRaw?: DataTableCompareFunction\n filter?: FilterFunction\n\n children?: DataTableHeader<T>[]\n}\n\nexport type InternalDataTableHeader = Omit<DataTableHeader, 'key' | 'value' | 'children'> & {\n key: string | null\n value: SelectItemKey | null\n sortable: boolean\n fixedOffset?: number\n fixedEndOffset?: number\n lastFixed?: boolean\n firstFixedEnd?: boolean\n nowrap?: boolean\n colspan?: number\n rowspan?: number\n children?: InternalDataTableHeader[]\n}\n\nexport interface DataTableItem<T = any> extends Omit<InternalItem<T>, 'type'>, GroupableItem<T>, SelectableItem {\n key: any\n index: number\n virtualIndex?: number\n columns: {\n [key: string]: any\n }\n}\n\nexport type GroupHeaderSlot = {\n index: number\n item: Group\n columns: InternalDataTableHeader[]\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n isGroupOpen: ReturnType<typeof provideGroupBy>['isGroupOpen']\n}\n\nexport type GroupSummarySlot = {\n index: number\n item: GroupSummary\n columns: InternalDataTableHeader[]\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n}\n\ntype ItemSlotBase<T> = {\n index: number\n item: T\n internalItem: DataTableItem<T>\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n}\n\nexport type ItemSlot<T> = ItemSlotBase<T> & {\n columns: InternalDataTableHeader[]\n}\n\nexport type ItemKeySlot<T> = ItemSlotBase<T> & {\n value: any\n column: InternalDataTableHeader\n}\n\nexport type RowProps<T> = Record<string, any> | RowPropsFunction<T>\nexport type RowPropsFunction<T> = (\n data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem'>\n) => Record<string, any>\n\nexport type CellProps<T> = Record<string, any> | CellPropsFunction<T>\nexport type CellPropsFunction<T> = (\n data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem' | 'value' | 'column'>\n) => Record<string, any>\n\nexport type HeaderCellProps = Record<string, any> | HeaderCellPropsFunction\nexport type HeaderCellPropsFunction = (\n data: Pick<ItemKeySlot<any>, 'index' | 'item' | 'internalItem' | 'value'>\n) => Record<string, any>\n"],"mappings":"","ignoreList":[]}
|
|
@@ -7,7 +7,7 @@ import { VBtn } from "../VBtn/index.js"; // Composables
|
|
|
7
7
|
import { useDate } from "../../composables/date/index.js";
|
|
8
8
|
import { useProxiedModel } from "../../composables/proxiedModel.js"; // Directives
|
|
9
9
|
import vIntersect from "../../directives/intersect/index.js"; // Utilities
|
|
10
|
-
import { computed, watchEffect } from 'vue';
|
|
10
|
+
import { computed, shallowRef, watchEffect } from 'vue';
|
|
11
11
|
import { convertToUnit, createRange, genericComponent, propsFactory, templateRef, useRender } from "../../util/index.js"; // Types
|
|
12
12
|
// Types
|
|
13
13
|
export const makeVDatePickerYearsProps = propsFactory({
|
|
@@ -34,6 +34,7 @@ export const VDatePickerYears = genericComponent()({
|
|
|
34
34
|
} = _ref;
|
|
35
35
|
const adapter = useDate();
|
|
36
36
|
const model = useProxiedModel(props, 'modelValue');
|
|
37
|
+
const hasFocusedItem = shallowRef(false);
|
|
37
38
|
const years = computed(() => {
|
|
38
39
|
const year = adapter.getYear(adapter.date());
|
|
39
40
|
let min = year - 100;
|
|
@@ -61,7 +62,6 @@ export const VDatePickerYears = genericComponent()({
|
|
|
61
62
|
});
|
|
62
63
|
const yearRef = templateRef();
|
|
63
64
|
function focusSelectedYear() {
|
|
64
|
-
yearRef.el?.focus();
|
|
65
65
|
yearRef.el?.scrollIntoView({
|
|
66
66
|
block: 'center'
|
|
67
67
|
});
|
|
@@ -81,7 +81,11 @@ export const VDatePickerYears = genericComponent()({
|
|
|
81
81
|
height: convertToUnit(props.height)
|
|
82
82
|
}
|
|
83
83
|
}, [_createElementVNode("div", {
|
|
84
|
-
"class": "v-date-picker-years__content"
|
|
84
|
+
"class": "v-date-picker-years__content",
|
|
85
|
+
"onFocus": () => yearRef.el?.focus(),
|
|
86
|
+
"onFocusin": () => hasFocusedItem.value = true,
|
|
87
|
+
"onFocusout": () => hasFocusedItem.value = false,
|
|
88
|
+
"tabindex": hasFocusedItem.value ? -1 : 0
|
|
85
89
|
}, [years.value.map((year, i) => {
|
|
86
90
|
const btnProps = {
|
|
87
91
|
ref: model.value === year.value ? yearRef : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDatePickerYears.js","names":["VBtn","useDate","useProxiedModel","vIntersect","computed","watchEffect","convertToUnit","createRange","genericComponent","propsFactory","templateRef","useRender","makeVDatePickerYearsProps","color","String","height","Number","min","max","modelValue","allowedYears","Array","Function","VDatePickerYears","name","props","directives","emits","year","setup","_ref","emit","slots","adapter","model","years","getYear","date","startOfYear","setYear","map","i","text","format","value","isDisabled","isYearAllowed","yearRef","focusSelectedYear","el","
|
|
1
|
+
{"version":3,"file":"VDatePickerYears.js","names":["VBtn","useDate","useProxiedModel","vIntersect","computed","shallowRef","watchEffect","convertToUnit","createRange","genericComponent","propsFactory","templateRef","useRender","makeVDatePickerYearsProps","color","String","height","Number","min","max","modelValue","allowedYears","Array","Function","VDatePickerYears","name","props","directives","emits","year","setup","_ref","emit","slots","adapter","model","hasFocusedItem","years","getYear","date","startOfYear","setYear","map","i","text","format","value","isDisabled","isYearAllowed","yearRef","focusSelectedYear","el","scrollIntoView","block","isArray","length","includes","_withDirectives","_createElementVNode","onFocus","focus","onFocusin","onFocusout","btnProps","ref","undefined","active","rounded","disabled","variant","onClick","_createVNode","_mergeProps","handler","once"],"sources":["../../../src/components/VDatePicker/VDatePickerYears.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerYears.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport vIntersect from '@/directives/intersect'\n\n// Utilities\nimport { computed, shallowRef, watchEffect } from 'vue'\nimport { convertToUnit, createRange, genericComponent, propsFactory, templateRef, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VDatePickerYearsSlots = {\n year: {\n year: {\n text: string\n value: number\n }\n i: number\n props: {\n active: boolean\n color?: string\n rounded: boolean\n text: string\n variant: 'flat' | 'text'\n onClick: () => void\n }\n }\n}\n\nexport const makeVDatePickerYearsProps = propsFactory({\n color: String,\n height: [String, Number],\n min: null as any as PropType<unknown>,\n max: null as any as PropType<unknown>,\n modelValue: Number,\n allowedYears: [Array, Function] as PropType<number[] | ((date: number) => boolean)>,\n}, 'VDatePickerYears')\n\nexport const VDatePickerYears = genericComponent<VDatePickerYearsSlots>()({\n name: 'VDatePickerYears',\n\n props: makeVDatePickerYearsProps(),\n\n directives: { vIntersect },\n\n emits: {\n 'update:modelValue': (year: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const model = useProxiedModel(props, 'modelValue')\n const hasFocusedItem = shallowRef(false)\n const years = computed(() => {\n const year = adapter.getYear(adapter.date())\n\n let min = year - 100\n let max = year + 52\n\n if (props.min) {\n min = adapter.getYear(adapter.date(props.min))\n }\n\n if (props.max) {\n max = adapter.getYear(adapter.date(props.max))\n }\n\n let date = adapter.startOfYear(adapter.date())\n\n date = adapter.setYear(date, min)\n\n return createRange(max - min + 1, min).map(i => {\n const text = adapter.format(date, 'year')\n date = adapter.setYear(date, adapter.getYear(date) + 1)\n\n return {\n text,\n value: i,\n isDisabled: !isYearAllowed(i),\n }\n })\n })\n\n watchEffect(() => {\n model.value = model.value ?? adapter.getYear(adapter.date())\n })\n\n const yearRef = templateRef()\n\n function focusSelectedYear () {\n yearRef.el?.scrollIntoView({ block: 'center' })\n }\n\n function isYearAllowed (year: number) {\n if (Array.isArray(props.allowedYears) && props.allowedYears.length) {\n return props.allowedYears.includes(year)\n }\n\n if (typeof props.allowedYears === 'function') {\n return props.allowedYears(year)\n }\n\n return true\n }\n\n useRender(() => (\n <div\n class=\"v-date-picker-years\"\n v-intersect={[{\n handler: focusSelectedYear,\n }, null, ['once']]}\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <div\n class=\"v-date-picker-years__content\"\n onFocus={ () => yearRef.el?.focus() }\n onFocusin={ () => hasFocusedItem.value = true }\n onFocusout={ () => hasFocusedItem.value = false }\n tabindex={ hasFocusedItem.value ? -1 : 0 }\n >\n { years.value.map((year, i) => {\n const btnProps = {\n ref: model.value === year.value ? yearRef : undefined,\n active: model.value === year.value,\n color: model.value === year.value ? props.color : undefined,\n rounded: true,\n text: year.text,\n disabled: year.isDisabled,\n variant: model.value === year.value ? 'flat' : 'text',\n onClick: () => {\n if (model.value === year.value) {\n emit('update:modelValue', model.value)\n return\n }\n model.value = year.value\n },\n } as const\n\n return slots.year?.({\n year,\n i,\n props: btnProps,\n }) ?? (\n <VBtn\n key=\"month\"\n { ...btnProps }\n />\n )\n })}\n </div>\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VDatePickerYears = InstanceType<typeof VDatePickerYears>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
.v-container {
|
|
2
|
+
width: 100%;
|
|
3
|
+
padding: 16px;
|
|
4
|
+
margin-right: auto;
|
|
5
|
+
margin-left: auto;
|
|
6
|
+
}
|
|
7
|
+
@media (min-width: 960px) {
|
|
8
|
+
.v-container {
|
|
9
|
+
max-width: 900px;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
@media (min-width: 1280px) {
|
|
13
|
+
.v-container {
|
|
14
|
+
max-width: 1200px;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
@media (min-width: 1920px) {
|
|
18
|
+
.v-container {
|
|
19
|
+
max-width: 1800px;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
@media (min-width: 2560px) {
|
|
23
|
+
.v-container {
|
|
24
|
+
max-width: 2400px;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
.v-container--fluid {
|
|
28
|
+
max-width: 100%;
|
|
29
|
+
}
|
|
30
|
+
.v-container.fill-height {
|
|
31
|
+
align-items: center;
|
|
32
|
+
display: flex;
|
|
33
|
+
flex-wrap: wrap;
|
|
34
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from "vue";
|
|
2
2
|
// Styles
|
|
3
|
-
import "./
|
|
3
|
+
import "./VContainer.css";
|
|
4
4
|
|
|
5
5
|
// Composables
|
|
6
6
|
import { makeComponentProps } from "../../composables/component.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VContainer.js","names":["makeComponentProps","makeDimensionProps","useDimension","useRtl","makeTagProps","genericComponent","propsFactory","useRender","makeVContainerProps","fluid","type","Boolean","default","VContainer","name","props","setup","_ref","slots","rtlClasses","dimensionStyles","_createVNode","tag","_normalizeClass","value","class","_normalizeStyle","style"],"sources":["../../../src/components/VGrid/VContainer.tsx"],"sourcesContent":["// Styles\nimport './
|
|
1
|
+
{"version":3,"file":"VContainer.js","names":["makeComponentProps","makeDimensionProps","useDimension","useRtl","makeTagProps","genericComponent","propsFactory","useRender","makeVContainerProps","fluid","type","Boolean","default","VContainer","name","props","setup","_ref","slots","rtlClasses","dimensionStyles","_createVNode","tag","_normalizeClass","value","class","_normalizeStyle","style"],"sources":["../../../src/components/VGrid/VContainer.tsx"],"sourcesContent":["// Styles\nimport './VContainer.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVContainerProps = propsFactory({\n fluid: {\n type: Boolean,\n default: false,\n },\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeTagProps(),\n}, 'VContainer')\n\nexport const VContainer = genericComponent()({\n name: 'VContainer',\n\n props: makeVContainerProps(),\n\n setup (props, { slots }) {\n const { rtlClasses } = useRtl()\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-container',\n { 'v-container--fluid': props.fluid },\n rtlClasses.value,\n props.class,\n ]}\n style={[\n dimensionStyles.value,\n props.style,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VContainer = InstanceType<typeof VContainer>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,MAAM;AAAA,SACNC,YAAY,oCAErB;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAElD,OAAO,MAAMC,mBAAmB,GAAGF,YAAY,CAAC;EAC9CG,KAAK,EAAE;IACLC,IAAI,EAAEC,OAAO;IACbC,OAAO,EAAE;EACX,CAAC;EAED,GAAGZ,kBAAkB,CAAC,CAAC;EACvB,GAAGC,kBAAkB,CAAC,CAAC;EACvB,GAAGG,YAAY,CAAC;AAClB,CAAC,EAAE,YAAY,CAAC;AAEhB,OAAO,MAAMS,UAAU,GAAGR,gBAAgB,CAAC,CAAC,CAAC;EAC3CS,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAEP,mBAAmB,CAAC,CAAC;EAE5BQ,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAW,CAAC,GAAGhB,MAAM,CAAC,CAAC;IAC/B,MAAM;MAAEiB;IAAgB,CAAC,GAAGlB,YAAY,CAACa,KAAK,CAAC;IAE/CR,SAAS,CAAC,MAAAc,YAAA,CAAAN,KAAA,CAAAO,GAAA;MAAA,SAAAC,eAAA,CAEC,CACL,aAAa,EACb;QAAE,oBAAoB,EAAER,KAAK,CAACN;MAAM,CAAC,EACrCU,UAAU,CAACK,KAAK,EAChBT,KAAK,CAACU,KAAK,CACZ;MAAA,SAAAC,eAAA,CACM,CACLN,eAAe,CAACI,KAAK,EACrBT,KAAK,CAACY,KAAK,CACZ;IAAA,GACST,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
@use '../../styles/tools'
|
|
2
|
+
@use './mixins' as *
|
|
3
|
+
|
|
4
|
+
@include tools.layer('components')
|
|
5
|
+
.v-container
|
|
6
|
+
@include make-container
|
|
7
|
+
@include make-container-max-widths
|
|
8
|
+
|
|
9
|
+
&--fluid
|
|
10
|
+
max-width: 100%
|
|
11
|
+
|
|
12
|
+
&.fill-height
|
|
13
|
+
align-items: center
|
|
14
|
+
display: flex
|
|
15
|
+
flex-wrap: wrap
|
|
@@ -1,38 +1,3 @@
|
|
|
1
|
-
.v-container {
|
|
2
|
-
width: 100%;
|
|
3
|
-
padding: 16px;
|
|
4
|
-
margin-right: auto;
|
|
5
|
-
margin-left: auto;
|
|
6
|
-
}
|
|
7
|
-
@media (min-width: 960px) {
|
|
8
|
-
.v-container {
|
|
9
|
-
max-width: 900px;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
@media (min-width: 1280px) {
|
|
13
|
-
.v-container {
|
|
14
|
-
max-width: 1200px;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
@media (min-width: 1920px) {
|
|
18
|
-
.v-container {
|
|
19
|
-
max-width: 1800px;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
@media (min-width: 2560px) {
|
|
23
|
-
.v-container {
|
|
24
|
-
max-width: 2400px;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
.v-container--fluid {
|
|
28
|
-
max-width: 100%;
|
|
29
|
-
}
|
|
30
|
-
.v-container.fill-height {
|
|
31
|
-
align-items: center;
|
|
32
|
-
display: flex;
|
|
33
|
-
flex-wrap: wrap;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
1
|
.v-row {
|
|
37
2
|
display: flex;
|
|
38
3
|
flex-wrap: wrap;
|
|
@@ -60,10 +25,6 @@
|
|
|
60
25
|
padding: 0;
|
|
61
26
|
}
|
|
62
27
|
|
|
63
|
-
.v-spacer {
|
|
64
|
-
flex-grow: 1;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
28
|
.v-col-xxl,
|
|
68
29
|
.v-col-xxl-auto, .v-col-xxl-12, .v-col-xxl-11, .v-col-xxl-10, .v-col-xxl-9, .v-col-xxl-8, .v-col-xxl-7, .v-col-xxl-6, .v-col-xxl-5, .v-col-xxl-4, .v-col-xxl-3, .v-col-xxl-2, .v-col-xxl-1, .v-col-xl,
|
|
69
30
|
.v-col-xl-auto, .v-col-xl-12, .v-col-xl-11, .v-col-xl-10, .v-col-xl-9, .v-col-xl-8, .v-col-xl-7, .v-col-xl-6, .v-col-xl-5, .v-col-xl-4, .v-col-xl-3, .v-col-xl-2, .v-col-xl-1, .v-col-lg,
|
|
@@ -3,18 +3,6 @@
|
|
|
3
3
|
@use './mixins' as *
|
|
4
4
|
|
|
5
5
|
@include tools.layer('components')
|
|
6
|
-
.v-container
|
|
7
|
-
@include make-container
|
|
8
|
-
@include make-container-max-widths
|
|
9
|
-
|
|
10
|
-
&--fluid
|
|
11
|
-
max-width: 100%
|
|
12
|
-
|
|
13
|
-
&.fill-height
|
|
14
|
-
align-items: center
|
|
15
|
-
display: flex
|
|
16
|
-
flex-wrap: wrap
|
|
17
|
-
|
|
18
6
|
// Row
|
|
19
7
|
//
|
|
20
8
|
// Rows contain and clear the floats of your columns.
|
|
@@ -42,9 +30,6 @@
|
|
|
42
30
|
> [class*="v-col-"]
|
|
43
31
|
padding: 0
|
|
44
32
|
|
|
45
|
-
.v-spacer
|
|
46
|
-
flex-grow: 1
|
|
47
|
-
|
|
48
33
|
// Columns
|
|
49
34
|
//
|
|
50
35
|
// Common styles for small and large grid columns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSpacer.js","names":["createSimpleFunctional","VSpacer"],"sources":["../../../src/components/VGrid/VSpacer.ts"],"sourcesContent":["// Styles\nimport './
|
|
1
|
+
{"version":3,"file":"VSpacer.js","names":["createSimpleFunctional","VSpacer"],"sources":["../../../src/components/VGrid/VSpacer.ts"],"sourcesContent":["// Styles\nimport './VSpacer.sass'\n\n// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer')\n\nexport type VSpacer = InstanceType<typeof VSpacer>\n"],"mappings":"AAAA;AACA;;AAEA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,OAAO,GAAGD,sBAAsB,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC","ignoreList":[]}
|
|
@@ -443,6 +443,7 @@ export declare const VListItem: {
|
|
|
443
443
|
itemsRegistration: import("vue").Ref<import("../../composables/nested/nested.js").ItemsRegistrationType, import("../../composables/nested/nested.js").ItemsRegistrationType>;
|
|
444
444
|
register: (id: unknown, parentId: unknown, isDisabled: boolean, isGroup?: boolean | undefined) => void;
|
|
445
445
|
unregister: (id: unknown) => void;
|
|
446
|
+
updateDisabled: (id: unknown, isDisabled: boolean) => void;
|
|
446
447
|
open: (id: unknown, value: boolean, event?: Event | undefined) => void;
|
|
447
448
|
activate: (id: unknown, value: boolean, event?: Event | undefined) => void;
|
|
448
449
|
select: (id: unknown, value: boolean, event?: Event | undefined) => void;
|
|
@@ -597,6 +598,7 @@ export declare const VListItem: {
|
|
|
597
598
|
itemsRegistration: import("vue").Ref<import("../../composables/nested/nested.js").ItemsRegistrationType, import("../../composables/nested/nested.js").ItemsRegistrationType>;
|
|
598
599
|
register: (id: unknown, parentId: unknown, isDisabled: boolean, isGroup?: boolean | undefined) => void;
|
|
599
600
|
unregister: (id: unknown) => void;
|
|
601
|
+
updateDisabled: (id: unknown, isDisabled: boolean) => void;
|
|
600
602
|
open: (id: unknown, value: boolean, event?: Event | undefined) => void;
|
|
601
603
|
activate: (id: unknown, value: boolean, event?: Event | undefined) => void;
|
|
602
604
|
select: (id: unknown, value: boolean, event?: Event | undefined) => void;
|
|
@@ -730,6 +732,7 @@ export declare const VListItem: {
|
|
|
730
732
|
itemsRegistration: import("vue").Ref<import("../../composables/nested/nested.js").ItemsRegistrationType, import("../../composables/nested/nested.js").ItemsRegistrationType>;
|
|
731
733
|
register: (id: unknown, parentId: unknown, isDisabled: boolean, isGroup?: boolean | undefined) => void;
|
|
732
734
|
unregister: (id: unknown) => void;
|
|
735
|
+
updateDisabled: (id: unknown, isDisabled: boolean) => void;
|
|
733
736
|
open: (id: unknown, value: boolean, event?: Event | undefined) => void;
|
|
734
737
|
activate: (id: unknown, value: boolean, event?: Event | undefined) => void;
|
|
735
738
|
select: (id: unknown, value: boolean, event?: Event | undefined) => void;
|
|
@@ -393,7 +393,7 @@ export const VNumberInput = genericComponent()({
|
|
|
393
393
|
"focused": isFocused.value,
|
|
394
394
|
"onUpdate:focused": $event => isFocused.value = $event,
|
|
395
395
|
"validationValue": model.value,
|
|
396
|
-
"error": isOutOfRange.value || undefined,
|
|
396
|
+
"error": props.error || isOutOfRange.value || undefined,
|
|
397
397
|
"onBeforeinput": onBeforeinput,
|
|
398
398
|
"onFocus": onFocus,
|
|
399
399
|
"onBlur": onBlur,
|