@vuetify/nightly 3.2.0-dev-20230405.0 → 3.2.0-dev-20230415.0
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 +3 -2
- package/dist/json/attributes.json +24 -8
- package/dist/json/importMap-labs.json +0 -4
- package/dist/json/importMap.json +56 -52
- package/dist/json/tags.json +5 -1
- package/dist/json/web-types.json +83 -47
- package/dist/vuetify-labs.css +2296 -2277
- package/dist/vuetify-labs.d.ts +712 -662
- package/dist/vuetify-labs.esm.js +269 -227
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +268 -226
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +32 -4
- package/dist/vuetify.d.ts +593 -417
- package/dist/vuetify.esm.js +247 -34
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +246 -33
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +319 -293
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +5 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +38 -32
- package/lib/components/VCheckbox/index.d.ts +14 -14
- package/lib/components/VChip/VChip.mjs +2 -2
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.ts +14 -14
- package/lib/components/VCombobox/VCombobox.mjs +6 -3
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +38 -32
- package/lib/components/VField/VField.mjs +3 -3
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/index.d.ts +20 -20
- package/lib/components/VFileInput/VFileInput.mjs +0 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +50 -56
- package/lib/components/VImg/VImg.mjs +3 -3
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.ts +19 -19
- package/lib/components/VInput/VInput.mjs +2 -2
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.ts +14 -14
- package/lib/components/VList/VList.mjs +2 -1
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +12 -0
- package/lib/components/VList/VListItem.mjs +2 -2
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +5 -0
- package/lib/components/VList/index.d.ts +14 -14
- package/lib/components/VOverlay/useActivator.mjs +1 -0
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.css +3 -1
- package/lib/components/VProgressCircular/VProgressCircular.sass +3 -1
- package/lib/components/VProgressCircular/_variables.scss +1 -0
- package/lib/components/VProgressLinear/VProgressLinear.css +5 -2
- package/lib/components/VProgressLinear/VProgressLinear.sass +3 -0
- package/lib/components/VProgressLinear/_variables.scss +1 -1
- package/lib/components/VRadioGroup/index.d.ts +14 -14
- package/lib/components/VRangeSlider/index.d.ts +14 -14
- package/lib/components/VSelect/VSelect.mjs +31 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +38 -32
- package/lib/components/VSlider/index.d.ts +14 -14
- package/lib/components/VSwitch/index.d.ts +14 -14
- package/lib/components/VTextField/VTextField.mjs +2 -2
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/index.d.ts +83 -77
- package/lib/components/VTextarea/VTextarea.mjs +8 -5
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +56 -50
- package/lib/components/VToolbar/VToolbar.css +2 -0
- package/lib/components/VToolbar/VToolbar.sass +2 -0
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -0
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -0
- package/lib/components/VVirtualScroll/index.mjs.map +1 -0
- package/lib/components/index.d.ts +576 -403
- package/lib/components/index.mjs +2 -1
- package/lib/components/index.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +2 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/theme.mjs +1 -1
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +16 -15
- package/lib/labs/VDataTable/VDataTable.mjs +4 -4
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +5 -7
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +4 -3
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +5 -3
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +137 -111
- package/lib/labs/components.d.ts +138 -261
- package/lib/labs/components.mjs +0 -1
- package/lib/labs/components.mjs.map +1 -1
- package/lib/util/helpers.mjs +1 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -2
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +0 -1
- package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +0 -1
- package/lib/labs/VVirtualScroll/index.mjs.map +0 -1
- /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.css +0 -0
- /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.mjs +0 -0
- /package/lib/{labs → components}/VVirtualScroll/VVirtualScroll.sass +0 -0
- /package/lib/{labs → components}/VVirtualScroll/VVirtualScrollItem.mjs +0 -0
- /package/lib/{labs → components}/VVirtualScroll/index.d.ts +0 -0
- /package/lib/{labs → components}/VVirtualScroll/index.mjs +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDataTableServer.mjs","names":["VTable","VDataTableFooter","VDataTableHeaders","VDataTableRows","provideDefaults","makeDataTableExpandProps","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","makeDataTableSelectProps","provideSelection","createSort","makeDataTableSortProps","provideSort","computed","provide","toRef","genericComponent","useRender","makeVDataTableProps","VDataTableServer","name","props","color","String","loading","Boolean","loadingText","type","default","itemsLength","Number","required","emits","value","page","sortBy","options","click:row","event","setup","_ref","emit","slots","groupBy","multiSort","mustSort","itemsPerPage","parseInt","columns","showSelect","showExpand","items","toggleSort","opened","flatItems","hideNoData","noDataText","_createVNode","fixedHeader","fixedFooter","height","top","_Fragment","colgroup","headers","thead","body","onClick:row","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { createSort, makeDataTableSortProps, provideSort } from './composables/sort'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableSlots } from './VDataTable'\n\nexport const VDataTableServer = genericComponent<VDataTableSlots>()({\n name: 'VDataTableServer',\n\n props: {\n color: String,\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeDataTableGroupProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:itemsPerPage': (page: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (options: any) => true,\n 'update:groupBy': (value: any) => true,\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n const itemsLength = computed(() => parseInt(props.itemsLength, 10))\n\n provideExpanded(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n\n const { opened } = provideGroupBy({ groupBy, sortBy })\n\n providePagination({ page, itemsPerPage, itemsLength })\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n provideSelection(props, items)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\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 useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead class=\"v-data-table__thead\" role=\"rowgroup\">\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n loading={ props.loading }\n color={ props.color }\n v-slots={ slots }\n />\n )}\n </thead>\n { slots.thead?.() }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ flatItems.value }\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VDataTableServer.mjs","names":["VTable","VDataTableFooter","VDataTableHeaders","VDataTableRows","provideDefaults","makeDataTableExpandProps","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","makeDataTableSelectProps","provideSelection","createSort","makeDataTableSortProps","provideSort","computed","provide","toRef","genericComponent","useRender","makeVDataTableProps","VDataTableServer","name","props","color","String","loading","Boolean","loadingText","type","default","itemsLength","Number","required","emits","value","page","sortBy","options","click:row","e","setup","_ref","emit","slots","groupBy","multiSort","mustSort","itemsPerPage","parseInt","columns","showSelect","showExpand","items","toggleSort","opened","flatItems","hideNoData","noDataText","_createVNode","fixedHeader","fixedFooter","height","hover","top","_Fragment","colgroup","headers","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { createSort, makeDataTableSortProps, provideSort } from './composables/sort'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableSlots } from './VDataTable'\n\nexport const VDataTableServer = genericComponent<VDataTableSlots>()({\n name: 'VDataTableServer',\n\n props: {\n color: String,\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeDataTableGroupProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:itemsPerPage': (page: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (options: any) => true,\n 'update:groupBy': (value: any) => true,\n 'click:row': (e: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n const itemsLength = computed(() => parseInt(props.itemsLength, 10))\n\n provideExpanded(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n\n const { opened } = provideGroupBy({ groupBy, sortBy })\n\n providePagination({ page, itemsPerPage, itemsLength })\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n provideSelection(props, items)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\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 useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n hover={ props.hover }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead class=\"v-data-table__thead\" role=\"rowgroup\">\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n loading={ props.loading }\n color={ props.color }\n v-slots={ slots }\n />\n )}\n </thead>\n { slots.thead?.() }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ flatItems.value }\n onClick:row={ props['onClick:row'] }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ export const VDataTableVirtual = genericComponent()({
|
|
|
37
37
|
'update:options': value => true,
|
|
38
38
|
'update:groupBy': value => true,
|
|
39
39
|
'update:expanded': value => true,
|
|
40
|
-
'click:row': (
|
|
40
|
+
'click:row': (e, value) => true
|
|
41
41
|
},
|
|
42
42
|
setup(props, _ref) {
|
|
43
43
|
let {
|
|
@@ -121,8 +121,10 @@ export const VDataTableVirtual = genericComponent()({
|
|
|
121
121
|
"style": {
|
|
122
122
|
'--v-table-row-height': convertToUnit(itemHeight.value)
|
|
123
123
|
},
|
|
124
|
+
"fixedHeader": props.fixedHeader,
|
|
125
|
+
"fixedFooter": props.fixedFooter,
|
|
124
126
|
"height": props.height,
|
|
125
|
-
"
|
|
127
|
+
"hover": props.hover
|
|
126
128
|
}, {
|
|
127
129
|
top: slots.top,
|
|
128
130
|
wrapper: () => _createVNode("div", {
|
|
@@ -148,7 +150,7 @@ export const VDataTableVirtual = genericComponent()({
|
|
|
148
150
|
}
|
|
149
151
|
}, null)]), _createVNode(VDataTableRows, {
|
|
150
152
|
"items": visibleItems.value,
|
|
151
|
-
"onClick:row":
|
|
153
|
+
"onClick:row": props['onClick:row']
|
|
152
154
|
}, slots), _createVNode("tr", {
|
|
153
155
|
"style": {
|
|
154
156
|
height: convertToUnit(paddingBottom.value),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDataTableVirtual.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","makeDataTableExpandProps","provideExpanded","createSort","makeDataTableSortProps","provideSort","useSortedItems","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","makeDataTableSelectProps","provideSelection","makeDataTableVirtualProps","useVirtual","useOptions","makeFilterProps","useFilter","provideDefaults","computed","ref","toRef","convertToUnit","genericComponent","useRender","makeVDataTableProps","VDataTableVirtual","name","props","search","String","emits","value","click:row","event","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","allRows","containerRef","paddingTop","paddingBottom","startIndex","stopIndex","itemHeight","handleScroll","visibleItems","slice","page","itemsPerPage","hideNoData","noDataText","_createVNode","height","fixedHeader","top","wrapper","border","length","onClick:row","bottom"],"sources":["../../../src/labs/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeDataTableVirtualProps, useVirtual } from './composables/virtual'\nimport { useOptions } from './composables/options'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utlities\nimport { computed, ref, toRef } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\n\nexport type VDataTableVirtualSlots = VDataTableRowsSlots & {\n top: []\n headers: []\n bottom: []\n}\n\nexport const VDataTableVirtual = genericComponent<VDataTableVirtualSlots>()({\n name: 'VDataTableVirtual',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeVDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTableVirtualProps(),\n ...makeFilterProps(),\n },\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 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allRows = computed(() => extractRows(flatItems.value))\n\n provideSelection(props, allRows)\n provideExpanded(props)\n\n const {\n containerRef,\n paddingTop,\n paddingBottom,\n startIndex,\n stopIndex,\n itemHeight,\n handleScroll,\n } = useVirtual(props, flatItems)\n\n const visibleItems = computed(() => {\n return flatItems.value.slice(startIndex.value, stopIndex.value)\n })\n\n useOptions({\n sortBy,\n page: ref(1),\n itemsPerPage: ref(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class=\"v-data-table\"\n style={{\n '--v-table-row-height': convertToUnit(itemHeight.value),\n }}\n height={ props.height }\n fixedHeader={ props.fixedHeader }\n >\n {{\n top: slots.top,\n wrapper: () => (\n <div\n ref={ containerRef }\n onScroll={ handleScroll }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingTop.value), border: 0 }}></td>\n </tr>\n\n <VDataTableRows\n items={ visibleItems.value }\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingBottom.value), border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: slots.bottom,\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VDataTableVirtual.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","makeDataTableExpandProps","provideExpanded","createSort","makeDataTableSortProps","provideSort","useSortedItems","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","makeDataTableSelectProps","provideSelection","makeDataTableVirtualProps","useVirtual","useOptions","makeFilterProps","useFilter","provideDefaults","computed","ref","toRef","convertToUnit","genericComponent","useRender","makeVDataTableProps","VDataTableVirtual","name","props","search","String","emits","value","click:row","e","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","allRows","containerRef","paddingTop","paddingBottom","startIndex","stopIndex","itemHeight","handleScroll","visibleItems","slice","page","itemsPerPage","hideNoData","noDataText","_createVNode","fixedHeader","fixedFooter","height","hover","top","wrapper","border","length","bottom"],"sources":["../../../src/labs/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeDataTableVirtualProps, useVirtual } from './composables/virtual'\nimport { useOptions } from './composables/options'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utlities\nimport { computed, ref, toRef } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\n\nexport type VDataTableVirtualSlots = VDataTableRowsSlots & {\n top: []\n headers: []\n bottom: []\n}\n\nexport const VDataTableVirtual = genericComponent<VDataTableVirtualSlots>()({\n name: 'VDataTableVirtual',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeVDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTableVirtualProps(),\n ...makeFilterProps(),\n },\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 'click:row': (e: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allRows = computed(() => extractRows(flatItems.value))\n\n provideSelection(props, allRows)\n provideExpanded(props)\n\n const {\n containerRef,\n paddingTop,\n paddingBottom,\n startIndex,\n stopIndex,\n itemHeight,\n handleScroll,\n } = useVirtual(props, flatItems)\n\n const visibleItems = computed(() => {\n return flatItems.value.slice(startIndex.value, stopIndex.value)\n })\n\n useOptions({\n sortBy,\n page: ref(1),\n itemsPerPage: ref(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class=\"v-data-table\"\n style={{\n '--v-table-row-height': convertToUnit(itemHeight.value),\n }}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n hover={ props.hover }\n >\n {{\n top: slots.top,\n wrapper: () => (\n <div\n ref={ containerRef }\n onScroll={ handleScroll }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingTop.value), border: 0 }}></td>\n </tr>\n\n <VDataTableRows\n items={ visibleItems.value }\n onClick:row={ props['onClick:row'] }\n v-slots={ slots }\n />\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingBottom.value), border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: slots.bottom,\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
|