@vuetify/nightly 4.0.0-dev-20230419.0 → 4.0.0-dev-20230421.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 +7 -2
- package/dist/json/attributes.json +172 -108
- package/dist/json/importMap.json +34 -34
- package/dist/json/tags.json +16 -0
- package/dist/json/web-types.json +522 -220
- package/dist/vuetify-labs.css +293 -130
- package/dist/vuetify-labs.d.ts +620 -171
- package/dist/vuetify-labs.esm.js +867 -186
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +867 -185
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +166 -3
- package/dist/vuetify.d.ts +577 -160
- package/dist/vuetify.esm.js +809 -138
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +809 -137
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +802 -736
- package/dist/vuetify.min.js.map +1 -1
- package/lib/adapters/date-adapter.mjs +2 -0
- package/lib/adapters/date-adapter.mjs.map +1 -0
- package/lib/adapters/vuetify.mjs +399 -0
- package/lib/adapters/vuetify.mjs.map +1 -0
- package/lib/blueprints/index.d.ts +34 -0
- package/lib/blueprints/md1.d.ts +34 -0
- package/lib/blueprints/md2.d.ts +34 -0
- package/lib/blueprints/md3.d.ts +34 -0
- package/lib/components/VAppBar/VAppBar.mjs +62 -10
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +26 -0
- package/lib/components/VAutocomplete/VAutocomplete.css +9 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +50 -6
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +10 -0
- package/lib/components/VAutocomplete/index.d.ts +29 -17
- package/lib/components/VBtn/_mixins.scss +1 -1
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +21 -16
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.ts +22 -1
- package/lib/components/VCombobox/VCombobox.css +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +6 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +1 -1
- package/lib/components/VCombobox/index.d.ts +29 -17
- package/lib/components/VField/index.d.ts +6 -0
- package/lib/components/VFileInput/VFileInput.mjs +13 -17
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +68 -23
- package/lib/components/VInput/VInput.mjs +14 -7
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.ts +22 -1
- package/lib/components/VOverlay/locationStrategies.mjs +9 -4
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.ts +22 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +33 -22
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.ts +39 -6
- package/lib/components/VSelect/VSelect.mjs +6 -0
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +32 -17
- package/lib/components/VSlider/VSlider.mjs +33 -15
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/index.d.ts +39 -6
- package/lib/components/VSlider/slider.mjs +47 -24
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.mjs +5 -3
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.ts +43 -1
- package/lib/components/VTextField/VTextField.mjs +4 -12
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/index.d.ts +70 -22
- package/lib/components/VTextarea/VTextarea.mjs +4 -12
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +61 -22
- package/lib/components/VToolbar/VToolbar.css +3 -1
- package/lib/components/VToolbar/VToolbar.sass +3 -1
- package/lib/components/VValidation/index.d.ts +10 -1
- package/lib/components/index.d.ts +525 -150
- package/lib/composables/date.mjs +39 -0
- package/lib/composables/date.mjs.map +1 -0
- package/lib/composables/focus.mjs +3 -2
- package/lib/composables/focus.mjs.map +1 -1
- package/lib/composables/index.mjs +1 -0
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/items.mjs +7 -2
- package/lib/composables/items.mjs.map +1 -1
- package/lib/composables/scroll.mjs +3 -0
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +8 -3
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.mjs +2 -2
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/index.d.ts +52 -10
- package/lib/labs/VDataTable/VDataTable.mjs +2 -2
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +52 -44
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +2 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +0 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/options.mjs +2 -1
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +44 -11
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +1 -0
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
- package/lib/labs/components.d.ts +53 -20
- package/lib/styles/main.css +152 -0
- package/lib/styles/settings/_utilities.scss +11 -1
- package/lib/util/helpers.mjs +4 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VDataTableFooter.mjs","names":["VBtn","VSelect","useLocale","usePagination","computed","genericComponent","VDataTableFooter","name","props","prevIcon","type","String","default","nextIcon","firstIcon","lastIcon","itemsPerPageText","pageText","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","setup","_ref","slots","t","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","setItemsPerPage","map","option","_createVNode","prepend","v","Number","onClick","Math","max","min"],"sources":["../../../src/labs/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { usePagination } from './composables/paginate'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\
|
1
|
+
{"version":3,"file":"VDataTableFooter.mjs","names":["VBtn","VSelect","useLocale","usePagination","computed","genericComponent","VDataTableFooter","name","props","prevIcon","type","String","default","nextIcon","firstIcon","lastIcon","itemsPerPageText","pageText","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","setup","_ref","slots","t","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","setItemsPerPage","map","option","_createVNode","prepend","v","Number","onClick","Math","max","min"],"sources":["../../../src/labs/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { usePagination } from './composables/paginate'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VDataTableFooter = genericComponent<{ prepend: [] }>()({\n name: 'VDataTableFooter',\n\n props: {\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage',\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage',\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage',\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage',\n },\n itemsPerPageOptions: {\n type: Array as PropType<{ title: string, value: number }[]>,\n default: () => ([\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' },\n { value: -1, title: '$vuetify.dataFooter.itemsPerPageAll' },\n ]),\n },\n showCurrentPage: Boolean,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { page, pageCount, startIndex, stopIndex, itemsLength, itemsPerPage, setItemsPerPage } = usePagination()\n\n const itemsPerPageOptions = computed(() => (\n props.itemsPerPageOptions.map(option => ({\n ...option,\n title: t(option.title),\n }))\n ))\n\n return () => (\n <div\n class=\"v-data-table-footer\"\n >\n { slots.prepend?.() }\n <div class=\"v-data-table-footer__items-per-page\">\n <span>{ t(props.itemsPerPageText) }</span>\n <VSelect\n items={ itemsPerPageOptions.value }\n modelValue={ itemsPerPage.value }\n onUpdate:modelValue={ v => setItemsPerPage(Number(v)) }\n density=\"compact\"\n variant=\"outlined\"\n hide-details\n />\n </div>\n <div class=\"v-data-table-footer__info\">\n <div>\n { t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value) }\n </div>\n </div>\n <div class=\"v-data-table-footer__pagination\">\n <VBtn\n icon={ props.firstIcon }\n variant=\"plain\"\n onClick={ () => page.value = 1 }\n disabled={ page.value === 1 }\n aria-label={ t(props.firstPageLabel) }\n />\n <VBtn\n icon={ props.prevIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.max(1, page.value - 1) }\n disabled={ page.value === 1 }\n aria-label={ t(props.prevPageLabel) }\n />\n { props.showCurrentPage && (\n <span key=\"page\" class=\"v-data-table-footer__page\">{ page.value }</span>\n )}\n <VBtn\n icon={ props.nextIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.min(pageCount.value, page.value + 1) }\n disabled={ page.value === pageCount.value }\n aria-label={ t(props.nextPageLabel) }\n />\n <VBtn\n icon={ props.lastIcon }\n variant=\"plain\"\n onClick={ () => page.value = pageCount.value }\n disabled={ page.value === pageCount.value }\n aria-label={ t(props.lastPageLabel) }\n />\n </div>\n </div>\n )\n },\n})\n"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VDataTableHeaders.mjs","names":["VCheckboxBtn","VDataTableColumn","VIcon","IconValue","LoaderSlot","makeLoaderProps","useLoader","useBackgroundColor","useHeaders","useSelection","useSort","convertToUnit","genericComponent","useRender","VDataTableHeaders","name","props","color","String","sticky","Boolean","multiSort","sortAscIcon","type","default","sortDescIcon","setup","_ref","slots","emit","toggleSort","sortBy","someSelected","allSelected","selectAll","columns","headers","loaderClasses","getFixedStyles","column","y","fixed","position","zIndex","undefined","left","fixedOffset","top","getSortIcon","id","item","value","find","key","order","backgroundColorClasses","backgroundColorStyles","VDataTableHeaderCell","_ref2","x","isSorted","noPadding","_createVNode","align","sortable","width","minWidth","colspan","rowspan","lastFixed","slotName","slotProps","title","findIndex","_Fragment","map","row","loading","length","loader"],"sources":["../../../src/labs/VDataTable/VDataTableHeaders.tsx"],"sourcesContent":["// Components\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\n\n// Utilities\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { InternalDataTableHeader } from './types'\nimport type { LoaderSlotProps } from '@/composables/loader'\n\nexport type VDataTableHeadersSlots = {\n default: []\n loader: [LoaderSlotProps]\n 'column.data-table-select': [InternalDataTableHeader, (value: boolean) => void]\n}\n\nexport const VDataTableHeaders = genericComponent<VDataTableHeadersSlots>()({\n name: 'VDataTableHeaders',\n\n props: {\n color: String,\n sticky: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n\n ...makeLoaderProps(),\n },\n\n setup (props, { slots, emit }) {\n const { toggleSort, sortBy } = useSort()\n const { someSelected, allSelected, selectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n const getFixedStyles = (column: InternalDataTableHeader, y: number) => {\n if (!props.sticky && !column.fixed) return null\n\n return {\n position: 'sticky',\n zIndex: column.fixed ? 4 : props.sticky ? 3 : undefined, // TODO: This needs to account for possible previous fixed columns.\n left: column.fixed ? convertToUnit(column.fixedOffset) : undefined, // TODO: This needs to account for possible row/colspan of previous columns\n top: props.sticky ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n\n function getSortIcon (id: string) {\n const item = sortBy.value.find(item => item.key === id)\n\n if (!item) return props.sortAscIcon\n\n return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon\n }\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const isSorted = !!sortBy.value.find(x => x.key === column.key)\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n\n return (\n <VDataTableColumn\n tag=\"th\"\n align={ column.align }\n class={[\n 'v-data-table__th',\n {\n 'v-data-table__th--sortable': column.sortable,\n 'v-data-table__th--sorted': isSorted,\n },\n loaderClasses.value,\n ]}\n style={{\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.width),\n ...getFixedStyles(column, y),\n }}\n colspan={ column.colspan }\n rowspan={ column.rowspan }\n onClick={ column.sortable ? () => toggleSort(column.key) : undefined }\n lastFixed={ column.lastFixed }\n noPadding={ noPadding }\n >\n {{\n default: () => {\n const slotName = `column.${column.key}`\n const slotProps = {\n column,\n selectAll,\n }\n\n if (slots[slotName]) return slots[slotName]!(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['column.data-table-select']?.(slotProps) ?? (\n <VCheckboxBtn\n modelValue={ allSelected.value }\n indeterminate={ someSelected.value && !allSelected.value }\n onUpdate:modelValue={ selectAll }\n />\n )\n }\n\n return (\n <div class=\"v-data-table-header__content\">\n <span>{ column.title }</span>\n { column.sortable && (\n <VIcon\n key=\"icon\"\n class=\"v-data-table-header__sort-icon\"\n icon={ getSortIcon(column.key) }\n />\n )}\n { props.multiSort && isSorted && (\n <div\n key=\"badge\"\n class={[\n 'v-data-table-header__sort-badge',\n ...backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { sortBy.value.findIndex(x => x.key === column.key) + 1 }\n </div>\n )}\n </div>\n )\n },\n }}\n </VDataTableColumn>\n )\n }\n\n useRender(() => (\n <>\n { headers.value.map((row, y) => (\n <tr>\n { row.map((column, x) => (\n <VDataTableHeaderCell column={ column } x={ x } y={ y } />\n ))}\n </tr>\n ))}\n\n { props.loading && (\n <tr class=\"v-data-table__progress\">\n <th colspan={ columns.value.length }>\n\n <LoaderSlot\n name=\"v-data-table-headers\"\n active\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n v-slots={{ default: slots.loader }}\n />\n </th>\n </tr>\n )}\n </>\n ))\n },\n})\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"VDataTableHeaders.mjs","names":["VCheckboxBtn","VDataTableColumn","VIcon","IconValue","LoaderSlot","makeLoaderProps","useLoader","useBackgroundColor","useHeaders","useSelection","useSort","convertToUnit","genericComponent","useRender","VDataTableHeaders","name","props","color","String","sticky","Boolean","multiSort","sortAscIcon","type","default","sortDescIcon","setup","_ref","slots","emit","toggleSort","sortBy","someSelected","allSelected","selectAll","columns","headers","loaderClasses","getFixedStyles","column","y","fixed","position","zIndex","undefined","left","fixedOffset","top","getSortIcon","id","item","value","find","key","order","backgroundColorClasses","backgroundColorStyles","VDataTableHeaderCell","_ref2","x","isSorted","noPadding","_createVNode","align","sortable","width","minWidth","colspan","rowspan","lastFixed","slotName","slotProps","title","findIndex","_Fragment","map","row","loading","length","loader"],"sources":["../../../src/labs/VDataTable/VDataTableHeaders.tsx"],"sourcesContent":["// Components\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\n\n// Utilities\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { InternalDataTableHeader } from './types'\nimport type { LoaderSlotProps } from '@/composables/loader'\n\nexport type VDataTableHeadersSlots = {\n default: []\n loader: [LoaderSlotProps]\n 'column.data-table-select': [InternalDataTableHeader, (value: boolean) => void]\n}\n\nexport const VDataTableHeaders = genericComponent<VDataTableHeadersSlots>()({\n name: 'VDataTableHeaders',\n\n props: {\n color: String,\n sticky: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n\n ...makeLoaderProps(),\n },\n\n setup (props, { slots, emit }) {\n const { toggleSort, sortBy } = useSort()\n const { someSelected, allSelected, selectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n const getFixedStyles = (column: InternalDataTableHeader, y: number) => {\n if (!props.sticky && !column.fixed) return null\n\n return {\n position: 'sticky',\n zIndex: column.fixed ? 4 : props.sticky ? 3 : undefined, // TODO: This needs to account for possible previous fixed columns.\n left: column.fixed ? convertToUnit(column.fixedOffset) : undefined, // TODO: This needs to account for possible row/colspan of previous columns\n top: props.sticky ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n\n function getSortIcon (id: string) {\n const item = sortBy.value.find(item => item.key === id)\n\n if (!item) return props.sortAscIcon\n\n return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon\n }\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const isSorted = !!sortBy.value.find(x => x.key === column.key)\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n\n return (\n <VDataTableColumn\n tag=\"th\"\n align={ column.align }\n class={[\n 'v-data-table__th',\n {\n 'v-data-table__th--sortable': column.sortable,\n 'v-data-table__th--sorted': isSorted,\n },\n loaderClasses.value,\n ]}\n style={{\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.width),\n ...getFixedStyles(column, y),\n }}\n colspan={ column.colspan }\n rowspan={ column.rowspan }\n onClick={ column.sortable ? () => toggleSort(column.key) : undefined }\n lastFixed={ column.lastFixed }\n noPadding={ noPadding }\n >\n {{\n default: () => {\n const slotName = `column.${column.key}`\n const slotProps = {\n column,\n selectAll,\n }\n\n if (slots[slotName]) return slots[slotName]!(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['column.data-table-select']?.(slotProps) ?? (\n <VCheckboxBtn\n modelValue={ allSelected.value }\n indeterminate={ someSelected.value && !allSelected.value }\n onUpdate:modelValue={ selectAll }\n />\n )\n }\n\n return (\n <div class=\"v-data-table-header__content\">\n <span>{ column.title }</span>\n { column.sortable && (\n <VIcon\n key=\"icon\"\n class=\"v-data-table-header__sort-icon\"\n icon={ getSortIcon(column.key) }\n />\n )}\n { props.multiSort && isSorted && (\n <div\n key=\"badge\"\n class={[\n 'v-data-table-header__sort-badge',\n ...backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { sortBy.value.findIndex(x => x.key === column.key) + 1 }\n </div>\n )}\n </div>\n )\n },\n }}\n </VDataTableColumn>\n )\n }\n\n useRender(() => (\n <>\n { headers.value.map((row, y) => (\n <tr>\n { row.map((column, x) => (\n <VDataTableHeaderCell column={ column } x={ x } y={ y } />\n ))}\n </tr>\n ))}\n\n { props.loading && (\n <tr class=\"v-data-table__progress\">\n <th colspan={ columns.value.length }>\n <LoaderSlot\n name=\"v-data-table-headers\"\n active\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n v-slots={{ default: slots.loader }}\n />\n </th>\n </tr>\n )}\n </>\n ))\n },\n})\n"],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { resolveDirective as _resolveDirective,
|
1
|
+
import { resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode } from "vue";
|
2
2
|
// Components
|
3
3
|
import { VDataTableGroupHeaderRow } from "./VDataTableGroupHeaderRow.mjs";
|
4
4
|
import { VDataTableRow } from "./VDataTableRow.mjs"; // Composables
|
@@ -52,56 +52,64 @@ export const VDataTableRows = genericComponent()({
|
|
52
52
|
const {
|
53
53
|
t
|
54
54
|
} = useLocale();
|
55
|
-
useRender(() =>
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
55
|
+
useRender(() => {
|
56
|
+
if (props.loading && slots.loading) {
|
57
|
+
return _createVNode("tr", {
|
58
|
+
"class": "v-data-table-rows-no-data",
|
59
|
+
"key": "loading"
|
60
|
+
}, [_createVNode("td", {
|
61
|
+
"colspan": columns.value.length
|
62
|
+
}, [slots.loading()])]);
|
63
|
+
}
|
64
|
+
if (!props.loading && !props.items.length && !props.hideNoData && slots['no-data']) {
|
65
|
+
return _createVNode("tr", {
|
66
|
+
"class": "v-data-table-rows-no-data",
|
67
|
+
"key": "no-data"
|
68
|
+
}, [_createVNode("td", {
|
69
|
+
"colspan": columns.value.length
|
70
|
+
}, [slots['no-data']?.() ?? t(props.noDataText)])]);
|
71
|
+
}
|
72
|
+
return _createVNode(_Fragment, null, [props.items.map((item, index) => {
|
73
|
+
if (item.type === 'group-header') {
|
74
|
+
return slots['group-header'] ? slots['group-header']({
|
75
|
+
index,
|
76
|
+
item,
|
77
|
+
columns: columns.value,
|
78
|
+
isExpanded,
|
79
|
+
toggleExpand,
|
80
|
+
isSelected,
|
81
|
+
toggleSelect,
|
82
|
+
toggleGroup,
|
83
|
+
isGroupOpen
|
84
|
+
}) : _createVNode(VDataTableGroupHeaderRow, {
|
85
|
+
"key": `group-header_${item.id}`,
|
86
|
+
"item": item
|
87
|
+
}, slots);
|
88
|
+
}
|
89
|
+
const slotProps = {
|
68
90
|
index,
|
69
91
|
item,
|
70
92
|
columns: columns.value,
|
71
93
|
isExpanded,
|
72
94
|
toggleExpand,
|
73
95
|
isSelected,
|
74
|
-
toggleSelect
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
"
|
96
|
+
toggleSelect
|
97
|
+
};
|
98
|
+
return _createVNode(_Fragment, null, [slots.item ? slots.item(slotProps) : _createVNode(VDataTableRow, {
|
99
|
+
"key": `item_${item.value}`,
|
100
|
+
"onClick": expandOnClick.value || props['onClick:row'] ? event => {
|
101
|
+
if (expandOnClick.value) {
|
102
|
+
toggleExpand(item);
|
103
|
+
}
|
104
|
+
props['onClick:row']?.(event, {
|
105
|
+
item
|
106
|
+
});
|
107
|
+
} : undefined,
|
108
|
+
"index": index,
|
79
109
|
"item": item
|
80
|
-
}, slots);
|
81
|
-
}
|
82
|
-
|
83
|
-
index,
|
84
|
-
item,
|
85
|
-
columns: columns.value,
|
86
|
-
isExpanded,
|
87
|
-
toggleExpand,
|
88
|
-
isSelected,
|
89
|
-
toggleSelect
|
90
|
-
};
|
91
|
-
return _createVNode(_Fragment, null, [slots.item ? slots.item(slotProps) : _createVNode(VDataTableRow, {
|
92
|
-
"key": `item_${item.value}`,
|
93
|
-
"onClick": expandOnClick.value || props['onClick:row'] ? event => {
|
94
|
-
if (expandOnClick.value) {
|
95
|
-
toggleExpand(item);
|
96
|
-
}
|
97
|
-
props['onClick:row']?.(event, {
|
98
|
-
item
|
99
|
-
});
|
100
|
-
} : undefined,
|
101
|
-
"index": index,
|
102
|
-
"item": item
|
103
|
-
}, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
|
104
|
-
})]));
|
110
|
+
}, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
|
111
|
+
})]);
|
112
|
+
});
|
105
113
|
return {};
|
106
114
|
}
|
107
115
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VDataTableRows.mjs","names":["VDataTableGroupHeaderRow","VDataTableRow","useLocale","useExpanded","useHeaders","useSelection","useGroupBy","genericComponent","useRender","VDataTableRows","name","props","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowHeight","Number","Function","setup","_ref","emit","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","_createVNode","
|
1
|
+
{"version":3,"file":"VDataTableRows.mjs","names":["VDataTableGroupHeaderRow","VDataTableRow","useLocale","useExpanded","useHeaders","useSelection","useGroupBy","genericComponent","useRender","VDataTableRows","name","props","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowHeight","Number","Function","setup","_ref","emit","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","_createVNode","value","length","_Fragment","map","item","index","id","slotProps","event","undefined"],"sources":["../../../src/labs/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useGroupBy } from './composables/group'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem, GroupHeaderItem, InternalDataTableHeader, InternalDataTableItem } from './types'\nimport type { PropType } from 'vue'\n\ntype GroupHeaderSlot = {\n index: number\n item: GroupHeaderItem\n columns: InternalDataTableHeader[]\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n isSelected: (items: DataTableItem[]) => boolean\n toggleSelect: (item: DataTableItem) => void\n toggleGroup: (group: GroupHeaderItem) => void\n isGroupOpen: (group: GroupHeaderItem) => boolean\n}\n\ntype ItemSlot = {\n index: number\n item: DataTableItem\n columns: InternalDataTableHeader[]\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n isSelected: (items: DataTableItem[]) => boolean\n toggleSelect: (item: DataTableItem) => void\n}\n\nexport type VDataTableRowsSlots = {\n default: []\n item: [ItemSlot]\n loading: []\n 'group-header': [GroupHeaderSlot]\n 'no-data': []\n 'expanded-row': [ItemSlot]\n 'item.data-table-select': [ItemSlot]\n 'item.data-table-expand': [ItemSlot]\n} & { [key: `item.${string}`]: [ItemSlot] }\n\nexport const VDataTableRows = genericComponent<VDataTableRowsSlots>()({\n name: 'VDataTableRows',\n\n props: {\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<InternalDataTableItem[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowHeight: Number,\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n },\n\n setup (props, { emit, 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\n useRender(() => {\n if (props.loading && slots.loading) {\n return (\n <tr\n class=\"v-data-table-rows-no-data\"\n key=\"loading\"\n >\n <td colspan={ columns.value.length }>\n { slots.loading() }\n </td>\n </tr>\n )\n }\n\n if (!props.loading && !props.items.length && !props.hideNoData && slots['no-data']) {\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-header') {\n return slots['group-header'] ? slots['group-header']({\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n } as GroupHeaderSlot) : (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n v-slots={ slots }\n />\n )\n }\n\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n } as ItemSlot\n\n return (\n <>\n { slots.item ? slots.item(slotProps) : (\n <VDataTableRow\n key={ `item_${item.value}` }\n onClick={ expandOnClick.value || props['onClick:row'] ? (event: Event) => {\n if (expandOnClick.value) {\n toggleExpand(item)\n }\n props['onClick:row']?.(event, { item })\n } : undefined }\n index={ index }\n item={ item }\n v-slots={ slots }\n />\n )}\n\n { isExpanded(item) && slots['expanded-row']?.(slotProps) }\n </>\n )\n })}\n </>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":";AAAA;AAAA,SACSA,wBAAwB;AAAA,SACxBC,aAAa,+BAEtB;AAAA,SACSC,SAAS;AAAA,SACTC,WAAW;AAAA,SACXC,UAAU;AAAA,SACVC,YAAY;AAAA,SACZC,UAAU,mCAEnB;AAAA,SACSC,gBAAgB,EAAEC,SAAS,gCAEpC;AAqCA,OAAO,MAAMC,cAAc,GAAGF,gBAAgB,EAAuB,CAAC;EACpEG,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAE;IACLC,OAAO,EAAE,CAACC,OAAO,EAAEC,MAAM,CAAC;IAC1BC,WAAW,EAAE;MACXC,IAAI,EAAEF,MAAM;MACZG,OAAO,EAAE;IACX,CAAC;IACDC,UAAU,EAAEL,OAAO;IACnBM,KAAK,EAAE;MACLH,IAAI,EAAEI,KAA0C;MAChDH,OAAO,EAAEA,CAAA,KAAO;IAClB,CAAC;IACDI,UAAU,EAAE;MACVL,IAAI,EAAEF,MAAM;MACZG,OAAO,EAAE;IACX,CAAC;IACDK,SAAS,EAAEC,MAAM;IACjB,aAAa,EAAEC;EACjB,CAAC;EAEDC,KAAKA,CAAEd,KAAK,EAAAe,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG;IAAQ,CAAC,GAAGzB,UAAU,EAAE;IAChC,MAAM;MAAE0B,aAAa;MAAEC,YAAY;MAAEC;IAAW,CAAC,GAAG7B,WAAW,EAAE;IACjE,MAAM;MAAE8B,UAAU;MAAEC;IAAa,CAAC,GAAG7B,YAAY,EAAE;IACnD,MAAM;MAAE8B,WAAW;MAAEC;IAAY,CAAC,GAAG9B,UAAU,EAAE;IACjD,MAAM;MAAE+B;IAAE,CAAC,GAAGnC,SAAS,EAAE;IAEzBM,SAAS,CAAC,MAAM;MACd,IAAIG,KAAK,CAACC,OAAO,IAAIgB,KAAK,CAAChB,OAAO,EAAE;QAClC,OAAA0B,YAAA;UAAA,SAEU,2BAA2B;UAAA,OAC7B;QAAS,IAAAA,YAAA;UAAA,WAECT,OAAO,CAACU,KAAK,CAACC;QAAM,IAC9BZ,KAAK,CAAChB,OAAO,EAAE;MAIzB;MAEA,IAAI,CAACD,KAAK,CAACC,OAAO,IAAI,CAACD,KAAK,CAACQ,KAAK,CAACqB,MAAM,IAAI,CAAC7B,KAAK,CAACO,UAAU,IAAIU,KAAK,CAAC,SAAS,CAAC,EAAE;QAClF,OAAAU,YAAA;UAAA,SAEU,2BAA2B;UAAA,OAC7B;QAAS,IAAAA,YAAA;UAAA,WAECT,OAAO,CAACU,KAAK,CAACC;QAAM,IAC9BZ,KAAK,CAAC,SAAS,CAAC,IAAI,IAAIS,CAAC,CAAC1B,KAAK,CAACU,UAAU,CAAC;MAIrD;MAEA,OAAAiB,YAAA,CAAAG,SAAA,SAEM9B,KAAK,CAACQ,KAAK,CAACuB,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;QACjC,IAAID,IAAI,CAAC3B,IAAI,KAAK,cAAc,EAAE;UAChC,OAAOY,KAAK,CAAC,cAAc,CAAC,GAAGA,KAAK,CAAC,cAAc,CAAC,CAAC;YACnDgB,KAAK;YACLD,IAAI;YACJd,OAAO,EAAEA,OAAO,CAACU,KAAK;YACtBP,UAAU;YACVD,YAAY;YACZE,UAAU;YACVC,YAAY;YACZC,WAAW;YACXC;UACF,CAAC,CAAoB,GAAAE,YAAA,CAAAtC,wBAAA;YAAA,OAEV,gBAAe2C,IAAI,CAACE,EAAG,EAAC;YAAA,QACxBF;UAAI,GACDf,KAAK,CAElB;QACH;QAEA,MAAMkB,SAAS,GAAG;UAChBF,KAAK;UACLD,IAAI;UACJd,OAAO,EAAEA,OAAO,CAACU,KAAK;UACtBP,UAAU;UACVD,YAAY;UACZE,UAAU;UACVC;QACF,CAAa;QAEb,OAAAI,YAAA,CAAAG,SAAA,SAEMb,KAAK,CAACe,IAAI,GAAGf,KAAK,CAACe,IAAI,CAACG,SAAS,CAAC,GAAAR,YAAA,CAAArC,aAAA;UAAA,OAEzB,QAAO0C,IAAI,CAACJ,KAAM,EAAC;UAAA,WAChBT,aAAa,CAACS,KAAK,IAAI5B,KAAK,CAAC,aAAa,CAAC,GAAIoC,KAAY,IAAK;YACxE,IAAIjB,aAAa,CAACS,KAAK,EAAE;cACvBR,YAAY,CAACY,IAAI,CAAC;YACpB;YACAhC,KAAK,CAAC,aAAa,CAAC,GAAGoC,KAAK,EAAE;cAAEJ;YAAK,CAAC,CAAC;UACzC,CAAC,GAAGK,SAAS;UAAA,SACLJ,KAAK;UAAA,QACND;QAAI,GACDf,KAAK,CAElB,EAECI,UAAU,CAACW,IAAI,CAAC,IAAIf,KAAK,CAAC,cAAc,CAAC,GAAGkB,SAAS,CAAC;MAG9D,CAAC,CAAC;IAGR,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
@@ -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","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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"}
|
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","search","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 search: toRef(props, 'search'),\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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"}
|
@@ -19,7 +19,6 @@ import { makeVDataTableProps } from "./VDataTable.mjs"; // Types
|
|
19
19
|
export const VDataTableVirtual = genericComponent()({
|
20
20
|
name: 'VDataTableVirtual',
|
21
21
|
props: {
|
22
|
-
search: String,
|
23
22
|
...makeVDataTableProps(),
|
24
23
|
...makeVDataTableProps(),
|
25
24
|
...makeDataTableGroupProps(),
|
@@ -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","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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"}
|
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","emits","value","click:row","e","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","columns","showSelect","showExpand","items","filterKeys","map","c","key","search","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 ...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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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"options.mjs","names":["computed","watch","deepEqual","getCurrentInstance","useOptions","_ref","page","itemsPerPage","sortBy","groupBy","search","vm","options","value","oldOptions","emit","deep","immediate"],"sources":["../../../../src/labs/VDataTable/composables/options.ts"],"sourcesContent":["// Utilities\nimport { computed, watch } from 'vue'\nimport { deepEqual, getCurrentInstance } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { SortItem } from './sort'\n\nexport function useOptions ({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n}: {\n page: Ref<number>\n itemsPerPage: Ref<number>\n sortBy: Ref<readonly SortItem[]>\n groupBy: Ref<readonly SortItem[]>\n search
|
1
|
+
{"version":3,"file":"options.mjs","names":["computed","watch","deepEqual","getCurrentInstance","useOptions","_ref","page","itemsPerPage","sortBy","groupBy","search","vm","options","value","oldOptions","emit","deep","immediate"],"sources":["../../../../src/labs/VDataTable/composables/options.ts"],"sourcesContent":["// Utilities\nimport { computed, watch } from 'vue'\nimport { deepEqual, getCurrentInstance } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { SortItem } from './sort'\n\nexport function useOptions ({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n}: {\n page: Ref<number>\n itemsPerPage: Ref<number>\n sortBy: Ref<readonly SortItem[]>\n groupBy: Ref<readonly SortItem[]>\n search: Ref<string | undefined>\n}) {\n const vm = getCurrentInstance('VDataTable')\n\n const options = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n groupBy: groupBy.value,\n search: search.value,\n }))\n\n // Reset page when searching\n watch(() => search?.value, () => {\n page.value = 1\n })\n\n let oldOptions: unknown = null\n watch(options, () => {\n if (deepEqual(oldOptions, options.value)) return\n vm.emit('update:options', options.value)\n oldOptions = options.value\n }, { deep: true, immediate: true })\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,SAAS,EAAEC,kBAAkB,mCAEtC;AAIA,OAAO,SAASC,UAAUA,CAAAC,IAAA,EAYvB;EAAA,IAZyB;IAC1BC,IAAI;IACJC,YAAY;IACZC,MAAM;IACNC,OAAO;IACPC;EAOF,CAAC,GAAAL,IAAA;EACC,MAAMM,EAAE,GAAGR,kBAAkB,CAAC,YAAY,CAAC;EAE3C,MAAMS,OAAO,GAAGZ,QAAQ,CAAC,OAAO;IAC9BM,IAAI,EAAEA,IAAI,CAACO,KAAK;IAChBN,YAAY,EAAEA,YAAY,CAACM,KAAK;IAChCL,MAAM,EAAEA,MAAM,CAACK,KAAK;IACpBJ,OAAO,EAAEA,OAAO,CAACI,KAAK;IACtBH,MAAM,EAAEA,MAAM,CAACG;EACjB,CAAC,CAAC,CAAC;;EAEH;EACAZ,KAAK,CAAC,MAAMS,MAAM,EAAEG,KAAK,EAAE,MAAM;IAC/BP,IAAI,CAACO,KAAK,GAAG,CAAC;EAChB,CAAC,CAAC;EAEF,IAAIC,UAAmB,GAAG,IAAI;EAC9Bb,KAAK,CAACW,OAAO,EAAE,MAAM;IACnB,IAAIV,SAAS,CAACY,UAAU,EAAEF,OAAO,CAACC,KAAK,CAAC,EAAE;IAC1CF,EAAE,CAACI,IAAI,CAAC,gBAAgB,EAAEH,OAAO,CAACC,KAAK,CAAC;IACxCC,UAAU,GAAGF,OAAO,CAACC,KAAK;EAC5B,CAAC,EAAE;IAAEG,IAAI,EAAE,IAAI;IAAEC,SAAS,EAAE;EAAK,CAAC,CAAC;AACrC"}
|
@@ -1891,6 +1891,7 @@ declare const VDataTable: {
|
|
1891
1891
|
'onClick:row': PropType<(e: Event, value: {
|
1892
1892
|
item: DataTableItem;
|
1893
1893
|
}) => void>;
|
1894
|
+
search: StringConstructor;
|
1894
1895
|
headers: {
|
1895
1896
|
type: PropType<DataTableHeader[] | DataTableHeader[][]>;
|
1896
1897
|
default: () => never[];
|
@@ -1919,7 +1920,6 @@ declare const VDataTable: {
|
|
1919
1920
|
default: string;
|
1920
1921
|
};
|
1921
1922
|
returnObject: BooleanConstructor;
|
1922
|
-
search: StringConstructor;
|
1923
1923
|
}, vue.ExtractPropTypes<{
|
1924
1924
|
customFilter: PropType<FilterFunction>;
|
1925
1925
|
customKeyFilter: PropType<FilterKeyFunctions>;
|
@@ -1971,6 +1971,7 @@ declare const VDataTable: {
|
|
1971
1971
|
'onClick:row': PropType<(e: Event, value: {
|
1972
1972
|
item: DataTableItem;
|
1973
1973
|
}) => void>;
|
1974
|
+
search: StringConstructor;
|
1974
1975
|
headers: {
|
1975
1976
|
type: PropType<DataTableHeader[] | DataTableHeader[][]>;
|
1976
1977
|
default: () => never[];
|
@@ -1999,7 +2000,6 @@ declare const VDataTable: {
|
|
1999
2000
|
default: string;
|
2000
2001
|
};
|
2001
2002
|
returnObject: BooleanConstructor;
|
2002
|
-
search: StringConstructor;
|
2003
2003
|
}>>;
|
2004
2004
|
type VDataTable = InstanceType<typeof VDataTable>;
|
2005
2005
|
|
@@ -3635,6 +3635,7 @@ declare const VDataTableServer: {
|
|
3635
3635
|
itemsPerPage: string | number;
|
3636
3636
|
itemsLength: string | number;
|
3637
3637
|
} & {
|
3638
|
+
search?: string | undefined;
|
3638
3639
|
height?: string | number | undefined;
|
3639
3640
|
width?: string | number | undefined;
|
3640
3641
|
color?: string | undefined;
|
@@ -3976,6 +3977,7 @@ declare const VDataTableServer: {
|
|
3976
3977
|
itemsPerPage: string | number;
|
3977
3978
|
itemsLength: string | number;
|
3978
3979
|
} & {
|
3980
|
+
search?: string | undefined;
|
3979
3981
|
height?: string | number | undefined;
|
3980
3982
|
width?: string | number | undefined;
|
3981
3983
|
color?: string | undefined;
|
@@ -4357,6 +4359,7 @@ declare const VDataTableServer: {
|
|
4357
4359
|
itemsPerPage: string | number;
|
4358
4360
|
itemsLength: string | number;
|
4359
4361
|
} & {
|
4362
|
+
search?: string | undefined;
|
4360
4363
|
height?: string | number | undefined;
|
4361
4364
|
width?: string | number | undefined;
|
4362
4365
|
color?: string | undefined;
|
@@ -4686,6 +4689,7 @@ declare const VDataTableServer: {
|
|
4686
4689
|
itemsPerPage: string | number;
|
4687
4690
|
itemsLength: string | number;
|
4688
4691
|
} & {
|
4692
|
+
search?: string | undefined;
|
4689
4693
|
height?: string | number | undefined;
|
4690
4694
|
width?: string | number | undefined;
|
4691
4695
|
color?: string | undefined;
|
@@ -5091,6 +5095,7 @@ declare const VDataTableServer: {
|
|
5091
5095
|
'onClick:row': vue.PropType<(e: Event, value: {
|
5092
5096
|
item: DataTableItem;
|
5093
5097
|
}) => void>;
|
5098
|
+
search: StringConstructor;
|
5094
5099
|
color: StringConstructor;
|
5095
5100
|
loading: (StringConstructor | BooleanConstructor)[];
|
5096
5101
|
loadingText: {
|
@@ -5172,6 +5177,7 @@ declare const VDataTableServer: {
|
|
5172
5177
|
'onClick:row': vue.PropType<(e: Event, value: {
|
5173
5178
|
item: DataTableItem;
|
5174
5179
|
}) => void>;
|
5180
|
+
search: StringConstructor;
|
5175
5181
|
color: StringConstructor;
|
5176
5182
|
loading: (StringConstructor | BooleanConstructor)[];
|
5177
5183
|
loadingText: {
|
@@ -5201,7 +5207,10 @@ declare const VDataTableFooter: {
|
|
5201
5207
|
prevPageLabel: string;
|
5202
5208
|
nextPageLabel: string;
|
5203
5209
|
lastPageLabel: string;
|
5204
|
-
itemsPerPageOptions:
|
5210
|
+
itemsPerPageOptions: {
|
5211
|
+
title: string;
|
5212
|
+
value: number;
|
5213
|
+
}[];
|
5205
5214
|
}> & Omit<{
|
5206
5215
|
itemsPerPageText: string;
|
5207
5216
|
pageText: string;
|
@@ -5214,7 +5223,10 @@ declare const VDataTableFooter: {
|
|
5214
5223
|
prevPageLabel: string;
|
5215
5224
|
nextPageLabel: string;
|
5216
5225
|
lastPageLabel: string;
|
5217
|
-
itemsPerPageOptions:
|
5226
|
+
itemsPerPageOptions: {
|
5227
|
+
title: string;
|
5228
|
+
value: number;
|
5229
|
+
}[];
|
5218
5230
|
} & {} & {
|
5219
5231
|
$children?: {} | vue.VNodeChild | {
|
5220
5232
|
prepend?: (() => vue.VNodeChild) | undefined;
|
@@ -5253,7 +5265,10 @@ declare const VDataTableFooter: {
|
|
5253
5265
|
prevPageLabel: string;
|
5254
5266
|
nextPageLabel: string;
|
5255
5267
|
lastPageLabel: string;
|
5256
|
-
itemsPerPageOptions:
|
5268
|
+
itemsPerPageOptions: {
|
5269
|
+
title: string;
|
5270
|
+
value: number;
|
5271
|
+
}[];
|
5257
5272
|
} & {} & {
|
5258
5273
|
$children?: {} | vue.VNodeChild | {
|
5259
5274
|
prepend?: (() => vue.VNodeChild) | undefined;
|
@@ -5278,7 +5293,10 @@ declare const VDataTableFooter: {
|
|
5278
5293
|
prevPageLabel: string;
|
5279
5294
|
nextPageLabel: string;
|
5280
5295
|
lastPageLabel: string;
|
5281
|
-
itemsPerPageOptions:
|
5296
|
+
itemsPerPageOptions: {
|
5297
|
+
title: string;
|
5298
|
+
value: number;
|
5299
|
+
}[];
|
5282
5300
|
}, {}, string> & {
|
5283
5301
|
beforeCreate?: ((() => void) | (() => void)[]) | undefined;
|
5284
5302
|
created?: ((() => void) | (() => void)[]) | undefined;
|
@@ -5311,7 +5329,10 @@ declare const VDataTableFooter: {
|
|
5311
5329
|
prevPageLabel: string;
|
5312
5330
|
nextPageLabel: string;
|
5313
5331
|
lastPageLabel: string;
|
5314
|
-
itemsPerPageOptions:
|
5332
|
+
itemsPerPageOptions: {
|
5333
|
+
title: string;
|
5334
|
+
value: number;
|
5335
|
+
}[];
|
5315
5336
|
} & {} & {
|
5316
5337
|
$children?: {} | vue.VNodeChild | {
|
5317
5338
|
prepend?: (() => vue.VNodeChild) | undefined;
|
@@ -5340,7 +5361,10 @@ declare const VDataTableFooter: {
|
|
5340
5361
|
prevPageLabel: string;
|
5341
5362
|
nextPageLabel: string;
|
5342
5363
|
lastPageLabel: string;
|
5343
|
-
itemsPerPageOptions:
|
5364
|
+
itemsPerPageOptions: {
|
5365
|
+
title: string;
|
5366
|
+
value: number;
|
5367
|
+
}[];
|
5344
5368
|
} & {} & {
|
5345
5369
|
$children?: {} | vue.VNodeChild | {
|
5346
5370
|
prepend?: (() => vue.VNodeChild) | undefined;
|
@@ -5365,7 +5389,10 @@ declare const VDataTableFooter: {
|
|
5365
5389
|
prevPageLabel: string;
|
5366
5390
|
nextPageLabel: string;
|
5367
5391
|
lastPageLabel: string;
|
5368
|
-
itemsPerPageOptions:
|
5392
|
+
itemsPerPageOptions: {
|
5393
|
+
title: string;
|
5394
|
+
value: number;
|
5395
|
+
}[];
|
5369
5396
|
}, {}, string> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
5370
5397
|
prevIcon: {
|
5371
5398
|
type: StringConstructor;
|
@@ -5408,7 +5435,10 @@ declare const VDataTableFooter: {
|
|
5408
5435
|
default: string;
|
5409
5436
|
};
|
5410
5437
|
itemsPerPageOptions: {
|
5411
|
-
type: PropType<
|
5438
|
+
type: PropType<{
|
5439
|
+
title: string;
|
5440
|
+
value: number;
|
5441
|
+
}[]>;
|
5412
5442
|
default: () => {
|
5413
5443
|
value: number;
|
5414
5444
|
title: string;
|
@@ -5457,7 +5487,10 @@ declare const VDataTableFooter: {
|
|
5457
5487
|
default: string;
|
5458
5488
|
};
|
5459
5489
|
itemsPerPageOptions: {
|
5460
|
-
type: PropType<
|
5490
|
+
type: PropType<{
|
5491
|
+
title: string;
|
5492
|
+
value: number;
|
5493
|
+
}[]>;
|
5461
5494
|
default: () => {
|
5462
5495
|
value: number;
|
5463
5496
|
title: string;
|