@vuetify/nightly 3.4.0-beta.1-dev.2023-11-08 → 3.4.0-dev.2023-12-01
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 +2066 -2074
- package/dist/json/importMap.json +96 -96
- package/dist/json/tags.json +5 -7
- package/dist/json/web-types.json +3991 -4113
- package/dist/vuetify-labs.css +1886 -1885
- package/dist/vuetify-labs.d.ts +89 -136
- package/dist/vuetify-labs.esm.js +125 -112
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +124 -111
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +161 -160
- package/dist/vuetify.d.ts +118 -165
- package/dist/vuetify.esm.js +125 -112
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +124 -111
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +141 -140
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VBtn/VBtn.css +0 -1
- package/lib/components/VBtn/_variables.scss +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.css +0 -1
- package/lib/components/VCarousel/index.d.mts +24 -1
- package/lib/components/VDataTable/VDataTableServer.mjs +2 -2
- package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.mjs +2 -2
- package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/components/VDataTable/index.d.mts +24 -24
- package/lib/components/VGrid/VSpacer.mjs +3 -0
- package/lib/components/VGrid/VSpacer.mjs.map +1 -1
- package/lib/components/VImg/VImg.css +3 -0
- package/lib/components/VImg/VImg.mjs +14 -3
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +3 -0
- package/lib/components/VImg/_variables.scss +3 -0
- package/lib/components/VImg/index.d.mts +24 -1
- package/lib/components/VStepper/VStepperWindow.mjs +8 -6
- package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
- package/lib/components/VStepper/VStepperWindowItem.mjs +3 -1
- package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -1
- package/lib/components/VStepper/index.d.mts +18 -140
- package/lib/components/index.d.mts +89 -136
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.mts +29 -29
- package/package.json +2 -2
|
@@ -1073,6 +1073,7 @@ declare const VCarouselItem: {
|
|
|
1073
1073
|
options: IntersectionObserverInit;
|
|
1074
1074
|
cover: boolean;
|
|
1075
1075
|
src: string | srcObject;
|
|
1076
|
+
rounded: string | number | boolean;
|
|
1076
1077
|
reverseTransition: string | boolean;
|
|
1077
1078
|
}> & Omit<{
|
|
1078
1079
|
inline: boolean;
|
|
@@ -1085,6 +1086,7 @@ declare const VCarouselItem: {
|
|
|
1085
1086
|
height?: string | number | undefined;
|
|
1086
1087
|
width?: string | number | undefined;
|
|
1087
1088
|
aspectRatio?: string | number | undefined;
|
|
1089
|
+
color?: string | undefined;
|
|
1088
1090
|
maxHeight?: string | number | undefined;
|
|
1089
1091
|
maxWidth?: string | number | undefined;
|
|
1090
1092
|
minHeight?: string | number | undefined;
|
|
@@ -1100,6 +1102,7 @@ declare const VCarouselItem: {
|
|
|
1100
1102
|
sizes?: string | undefined;
|
|
1101
1103
|
srcset?: string | undefined;
|
|
1102
1104
|
contentClass?: string | undefined;
|
|
1105
|
+
rounded?: string | number | boolean | undefined;
|
|
1103
1106
|
gradient?: string | undefined;
|
|
1104
1107
|
lazySrc?: string | undefined;
|
|
1105
1108
|
selectedClass?: string | undefined;
|
|
@@ -1132,6 +1135,7 @@ declare const VCarouselItem: {
|
|
|
1132
1135
|
height?: string | number | undefined;
|
|
1133
1136
|
width?: string | number | undefined;
|
|
1134
1137
|
aspectRatio?: string | number | undefined;
|
|
1138
|
+
color?: string | undefined;
|
|
1135
1139
|
maxHeight?: string | number | undefined;
|
|
1136
1140
|
maxWidth?: string | number | undefined;
|
|
1137
1141
|
minHeight?: string | number | undefined;
|
|
@@ -1147,6 +1151,7 @@ declare const VCarouselItem: {
|
|
|
1147
1151
|
sizes?: string | undefined;
|
|
1148
1152
|
srcset?: string | undefined;
|
|
1149
1153
|
contentClass?: string | undefined;
|
|
1154
|
+
rounded?: string | number | boolean | undefined;
|
|
1150
1155
|
gradient?: string | undefined;
|
|
1151
1156
|
lazySrc?: string | undefined;
|
|
1152
1157
|
selectedClass?: string | undefined;
|
|
@@ -1169,7 +1174,7 @@ declare const VCarouselItem: {
|
|
|
1169
1174
|
"v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
|
|
1170
1175
|
"v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
|
|
1171
1176
|
"v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
|
|
1172
|
-
}, "inline" | "transition" | "style" | "draggable" | "eager" | "disabled" | "options" | "cover" | "src" | "reverseTransition">;
|
|
1177
|
+
}, "inline" | "transition" | "style" | "draggable" | "eager" | "disabled" | "options" | "cover" | "src" | "rounded" | "reverseTransition">;
|
|
1173
1178
|
$attrs: {
|
|
1174
1179
|
[x: string]: unknown;
|
|
1175
1180
|
};
|
|
@@ -1206,6 +1211,7 @@ declare const VCarouselItem: {
|
|
|
1206
1211
|
height?: string | number | undefined;
|
|
1207
1212
|
width?: string | number | undefined;
|
|
1208
1213
|
aspectRatio?: string | number | undefined;
|
|
1214
|
+
color?: string | undefined;
|
|
1209
1215
|
maxHeight?: string | number | undefined;
|
|
1210
1216
|
maxWidth?: string | number | undefined;
|
|
1211
1217
|
minHeight?: string | number | undefined;
|
|
@@ -1221,6 +1227,7 @@ declare const VCarouselItem: {
|
|
|
1221
1227
|
sizes?: string | undefined;
|
|
1222
1228
|
srcset?: string | undefined;
|
|
1223
1229
|
contentClass?: string | undefined;
|
|
1230
|
+
rounded?: string | number | boolean | undefined;
|
|
1224
1231
|
gradient?: string | undefined;
|
|
1225
1232
|
lazySrc?: string | undefined;
|
|
1226
1233
|
selectedClass?: string | undefined;
|
|
@@ -1253,6 +1260,7 @@ declare const VCarouselItem: {
|
|
|
1253
1260
|
options: IntersectionObserverInit;
|
|
1254
1261
|
cover: boolean;
|
|
1255
1262
|
src: string | srcObject;
|
|
1263
|
+
rounded: string | number | boolean;
|
|
1256
1264
|
reverseTransition: string | boolean;
|
|
1257
1265
|
}, {}, string, vue.SlotsType<Partial<{
|
|
1258
1266
|
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
@@ -1299,6 +1307,7 @@ declare const VCarouselItem: {
|
|
|
1299
1307
|
height?: string | number | undefined;
|
|
1300
1308
|
width?: string | number | undefined;
|
|
1301
1309
|
aspectRatio?: string | number | undefined;
|
|
1310
|
+
color?: string | undefined;
|
|
1302
1311
|
maxHeight?: string | number | undefined;
|
|
1303
1312
|
maxWidth?: string | number | undefined;
|
|
1304
1313
|
minHeight?: string | number | undefined;
|
|
@@ -1314,6 +1323,7 @@ declare const VCarouselItem: {
|
|
|
1314
1323
|
sizes?: string | undefined;
|
|
1315
1324
|
srcset?: string | undefined;
|
|
1316
1325
|
contentClass?: string | undefined;
|
|
1326
|
+
rounded?: string | number | boolean | undefined;
|
|
1317
1327
|
gradient?: string | undefined;
|
|
1318
1328
|
lazySrc?: string | undefined;
|
|
1319
1329
|
selectedClass?: string | undefined;
|
|
@@ -1352,6 +1362,7 @@ declare const VCarouselItem: {
|
|
|
1352
1362
|
height?: string | number | undefined;
|
|
1353
1363
|
width?: string | number | undefined;
|
|
1354
1364
|
aspectRatio?: string | number | undefined;
|
|
1365
|
+
color?: string | undefined;
|
|
1355
1366
|
maxHeight?: string | number | undefined;
|
|
1356
1367
|
maxWidth?: string | number | undefined;
|
|
1357
1368
|
minHeight?: string | number | undefined;
|
|
@@ -1367,6 +1378,7 @@ declare const VCarouselItem: {
|
|
|
1367
1378
|
sizes?: string | undefined;
|
|
1368
1379
|
srcset?: string | undefined;
|
|
1369
1380
|
contentClass?: string | undefined;
|
|
1381
|
+
rounded?: string | number | boolean | undefined;
|
|
1370
1382
|
gradient?: string | undefined;
|
|
1371
1383
|
lazySrc?: string | undefined;
|
|
1372
1384
|
selectedClass?: string | undefined;
|
|
@@ -1399,6 +1411,7 @@ declare const VCarouselItem: {
|
|
|
1399
1411
|
options: IntersectionObserverInit;
|
|
1400
1412
|
cover: boolean;
|
|
1401
1413
|
src: string | srcObject;
|
|
1414
|
+
rounded: string | number | boolean;
|
|
1402
1415
|
reverseTransition: string | boolean;
|
|
1403
1416
|
}, {}, string, vue.SlotsType<Partial<{
|
|
1404
1417
|
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
@@ -1431,6 +1444,10 @@ declare const VCarouselItem: {
|
|
|
1431
1444
|
type: (StringConstructor | BooleanConstructor)[];
|
|
1432
1445
|
default: undefined;
|
|
1433
1446
|
};
|
|
1447
|
+
rounded: {
|
|
1448
|
+
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
|
1449
|
+
default: undefined;
|
|
1450
|
+
};
|
|
1434
1451
|
height: (StringConstructor | NumberConstructor)[];
|
|
1435
1452
|
maxHeight: (StringConstructor | NumberConstructor)[];
|
|
1436
1453
|
maxWidth: (StringConstructor | NumberConstructor)[];
|
|
@@ -1442,6 +1459,7 @@ declare const VCarouselItem: {
|
|
|
1442
1459
|
inline: BooleanConstructor;
|
|
1443
1460
|
alt: StringConstructor;
|
|
1444
1461
|
cover: BooleanConstructor;
|
|
1462
|
+
color: StringConstructor;
|
|
1445
1463
|
draggable: {
|
|
1446
1464
|
type: vue.PropType<boolean | "false" | "true">;
|
|
1447
1465
|
default: undefined;
|
|
@@ -1483,6 +1501,10 @@ declare const VCarouselItem: {
|
|
|
1483
1501
|
type: (StringConstructor | BooleanConstructor)[];
|
|
1484
1502
|
default: undefined;
|
|
1485
1503
|
};
|
|
1504
|
+
rounded: {
|
|
1505
|
+
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
|
1506
|
+
default: undefined;
|
|
1507
|
+
};
|
|
1486
1508
|
height: (StringConstructor | NumberConstructor)[];
|
|
1487
1509
|
maxHeight: (StringConstructor | NumberConstructor)[];
|
|
1488
1510
|
maxWidth: (StringConstructor | NumberConstructor)[];
|
|
@@ -1494,6 +1516,7 @@ declare const VCarouselItem: {
|
|
|
1494
1516
|
inline: BooleanConstructor;
|
|
1495
1517
|
alt: StringConstructor;
|
|
1496
1518
|
cover: BooleanConstructor;
|
|
1519
|
+
color: StringConstructor;
|
|
1497
1520
|
draggable: {
|
|
1498
1521
|
type: vue.PropType<boolean | "false" | "true">;
|
|
1499
1522
|
default: undefined;
|
|
@@ -39,7 +39,7 @@ export const VDataTableServer = genericComponent()({
|
|
|
39
39
|
},
|
|
40
40
|
setup(props, _ref) {
|
|
41
41
|
let {
|
|
42
|
-
|
|
42
|
+
attrs,
|
|
43
43
|
slots
|
|
44
44
|
} = _ref;
|
|
45
45
|
const {
|
|
@@ -172,7 +172,7 @@ export const VDataTableServer = genericComponent()({
|
|
|
172
172
|
}), slots)]), slots.thead?.(slotProps.value), _createVNode("tbody", {
|
|
173
173
|
"class": "v-data-table__tbody",
|
|
174
174
|
"role": "rowgroup"
|
|
175
|
-
}, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : _createVNode(VDataTableRows, _mergeProps(dataTableRowsProps, {
|
|
175
|
+
}, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {
|
|
176
176
|
"items": flatItems.value
|
|
177
177
|
}), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
|
|
178
178
|
bottom: () => slots.bottom ? slots.bottom(slotProps.value) : _createVNode(VDataTableFooter, dataTableFooterProps, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDataTableServer.mjs","names":["makeDataTableProps","makeVDataTableFooterProps","VDataTableFooter","VDataTableHeaders","VDataTableRows","VTable","provideExpanded","createGroupBy","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","provideSelection","createSort","provideSort","provideDefaults","computed","provide","toRef","genericComponent","propsFactory","useRender","makeVDataTableServerProps","itemsLength","type","Number","String","required","VDataTableServer","name","props","emits","value","page","sortBy","options","setup","_ref","emit","slots","groupBy","multiSort","mustSort","itemsPerPage","parseInt","columns","headers","showSelect","showExpand","items","toggleSort","opened","isGroupOpen","toggleGroup","extractRows","pageCount","setItemsPerPage","flatItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","allItems","currentPage","isExpanded","toggleExpand","itemsWithoutGroups","search","hideNoData","noDataText","loading","loadingText","slotProps","map","item","raw","internalItems","groupedItems","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","default","_Fragment","colgroup","fixedHeader","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/components/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VDataTableSlotProps, VDataTableSlots } from './VDataTable'\n\nexport const makeVDataTableServerProps = propsFactory({\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeVDataTableFooterProps(),\n}, 'VDataTableServer')\n\nexport const VDataTableServer = genericComponent<VDataTableSlots>()({\n name: 'VDataTableServer',\n\n props: makeVDataTableServerProps(),\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 },\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 const { columns, headers } = 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, isGroupOpen, toggleGroup, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems: items,\n currentPage: items,\n })\n\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const itemsWithoutGroups = computed(() => extractRows(items.value))\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 const slotProps = computed<VDataTableSlotProps>(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: itemsWithoutGroups.value.map(item => item.raw),\n internalItems: itemsWithoutGroups.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props)\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n <thead class=\"v-data-table__thead\" role=\"rowgroup\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.(slotProps.value) }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots['body.prepend']?.(slotProps.value) }\n { slots.body ? slots.body(slotProps.value) : (\n <VDataTableRows\n { ...dataTableRowsProps }\n items={ flatItems.value }\n v-slots={ slots }\n />\n )}\n { slots['body.append']?.(slotProps.value) }\n </tbody>\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </>\n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : (\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n ),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VDataTableServer.mjs","names":["makeDataTableProps","makeVDataTableFooterProps","VDataTableFooter","VDataTableHeaders","VDataTableRows","VTable","provideExpanded","createGroupBy","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","provideSelection","createSort","provideSort","provideDefaults","computed","provide","toRef","genericComponent","propsFactory","useRender","makeVDataTableServerProps","itemsLength","type","Number","String","required","VDataTableServer","name","props","emits","value","page","sortBy","options","setup","_ref","attrs","slots","groupBy","multiSort","mustSort","itemsPerPage","parseInt","columns","headers","showSelect","showExpand","items","toggleSort","opened","isGroupOpen","toggleGroup","extractRows","pageCount","setItemsPerPage","flatItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","allItems","currentPage","isExpanded","toggleExpand","itemsWithoutGroups","search","hideNoData","noDataText","loading","loadingText","slotProps","map","item","raw","internalItems","groupedItems","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","default","_Fragment","colgroup","fixedHeader","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/components/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VDataTableSlotProps, VDataTableSlots } from './VDataTable'\n\nexport const makeVDataTableServerProps = propsFactory({\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeVDataTableFooterProps(),\n}, 'VDataTableServer')\n\nexport const VDataTableServer = genericComponent<VDataTableSlots>()({\n name: 'VDataTableServer',\n\n props: makeVDataTableServerProps(),\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 },\n\n setup (props, { attrs, 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 const { columns, headers } = 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, isGroupOpen, toggleGroup, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems: items,\n currentPage: items,\n })\n\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const itemsWithoutGroups = computed(() => extractRows(items.value))\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 const slotProps = computed<VDataTableSlotProps>(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: itemsWithoutGroups.value.map(item => item.raw),\n internalItems: itemsWithoutGroups.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props)\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n <thead class=\"v-data-table__thead\" role=\"rowgroup\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.(slotProps.value) }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots['body.prepend']?.(slotProps.value) }\n { slots.body ? slots.body(slotProps.value) : (\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ flatItems.value }\n v-slots={ slots }\n />\n )}\n { slots['body.append']?.(slotProps.value) }\n </tbody>\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </>\n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : (\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n ),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ export const VDataTableVirtual = genericComponent()({
|
|
|
36
36
|
},
|
|
37
37
|
setup(props, _ref) {
|
|
38
38
|
let {
|
|
39
|
-
|
|
39
|
+
attrs,
|
|
40
40
|
slots
|
|
41
41
|
} = _ref;
|
|
42
42
|
const {
|
|
@@ -184,7 +184,7 @@ export const VDataTableVirtual = genericComponent()({
|
|
|
184
184
|
height: 0,
|
|
185
185
|
border: 0
|
|
186
186
|
}
|
|
187
|
-
}, null)]), slots['body.prepend']?.(slotProps.value), _createVNode(VDataTableRows, _mergeProps(dataTableRowsProps, {
|
|
187
|
+
}, null)]), slots['body.prepend']?.(slotProps.value), _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {
|
|
188
188
|
"items": displayItems.value
|
|
189
189
|
}), {
|
|
190
190
|
...slots,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDataTableVirtual.mjs","names":["makeDataTableProps","VDataTableHeaders","VDataTableRow","VDataTableRows","VTable","VVirtualScrollItem","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","provideSelection","createSort","provideSort","useSortedItems","provideDefaults","makeFilterProps","useFilter","makeVirtualProps","useVirtual","computed","shallowRef","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVDataTableVirtualProps","VDataTableVirtual","name","props","emits","value","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","columns","headers","sortFunctions","filterFunctions","showSelect","showExpand","items","search","filteredItems","transform","item","customKeyFilter","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","flatItems","allItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","currentPage","isExpanded","toggleExpand","containerRef","markerRef","paddingTop","paddingBottom","computedItems","handleItemResize","handleScroll","handleScrollend","displayItems","map","raw","page","itemsPerPage","hideNoData","noDataText","loading","loadingText","slotProps","internalItems","groupedItems","dataTableHeadersProps","filterProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","wrapper","height","fixedHeader","border","length","itemSlotProps","internalItem","index","default","_ref2","itemRef","bottom"],"sources":["../../../src/components/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRow } from './VDataTableRow'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\nimport { VVirtualScrollItem } from '@/components/VVirtualScroll/VVirtualScrollItem'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { computed, shallowRef, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { VDataTableSlotProps } from './VDataTable'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\n\ntype VDataTableVirtualSlotProps = Omit<VDataTableSlotProps, 'setItemsPerPage' | 'page' | 'pageCount' | 'itemsPerPage'>\n\nexport type VDataTableVirtualSlots = VDataTableRowsSlots & VDataTableHeadersSlots & {\n top: VDataTableVirtualSlotProps\n headers: VDataTableHeadersSlots['headers']\n bottom: VDataTableVirtualSlotProps\n 'body.prepend': VDataTableVirtualSlotProps\n 'body.append': VDataTableVirtualSlotProps\n item: {\n itemRef: Ref<HTMLElement | undefined>\n }\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...makeDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps(),\n}, 'VDataTableVirtual')\n\nexport const VDataTableVirtual = genericComponent<VDataTableVirtualSlots>()({\n name: 'VDataTableVirtual',\n\n props: makeVDataTableVirtualProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n\n const { columns, headers, sortFunctions, filterFunctions } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, sortFunctions)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allItems = computed(() => extractRows(flatItems.value))\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems,\n currentPage: allItems,\n })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const {\n containerRef,\n markerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n handleScrollend,\n } = useVirtual(props, flatItems)\n const displayItems = computed(() => computedItems.value.map(item => item.raw))\n\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed<VDataTableVirtualSlotProps>(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value.map(item => item.raw),\n internalItems: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n wrapper: () => (\n <div\n ref={ containerRef }\n onScrollPassive={ handleScroll }\n onScrollend={ handleScrollend }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr ref={ markerRef } style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n\n { slots['body.prepend']?.(slotProps.value) }\n\n <VDataTableRows\n { ...dataTableRowsProps }\n items={ displayItems.value }\n >\n {{\n ...slots,\n item: itemSlotProps => (\n <VVirtualScrollItem\n key={ itemSlotProps.internalItem.index }\n renderless\n onUpdate:height={ height => handleItemResize(itemSlotProps.internalItem.index, height) }\n >\n { ({ itemRef }) => (\n slots.item?.({ ...itemSlotProps, itemRef }) ?? (\n <VDataTableRow\n { ...itemSlotProps.props }\n ref={ itemRef }\n key={ itemSlotProps.internalItem.index }\n v-slots={ slots }\n />\n )\n )}\n </VVirtualScrollItem>\n ),\n }}\n </VDataTableRows>\n\n { slots['body.append']?.(slotProps.value) }\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: () => slots.bottom?.(slotProps.value),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VDataTableVirtual.mjs","names":["makeDataTableProps","VDataTableHeaders","VDataTableRow","VDataTableRows","VTable","VVirtualScrollItem","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","provideSelection","createSort","provideSort","useSortedItems","provideDefaults","makeFilterProps","useFilter","makeVirtualProps","useVirtual","computed","shallowRef","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVDataTableVirtualProps","VDataTableVirtual","name","props","emits","value","setup","_ref","attrs","slots","groupBy","sortBy","multiSort","mustSort","columns","headers","sortFunctions","filterFunctions","showSelect","showExpand","items","search","filteredItems","transform","item","customKeyFilter","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","flatItems","allItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","currentPage","isExpanded","toggleExpand","containerRef","markerRef","paddingTop","paddingBottom","computedItems","handleItemResize","handleScroll","handleScrollend","displayItems","map","raw","page","itemsPerPage","hideNoData","noDataText","loading","loadingText","slotProps","internalItems","groupedItems","dataTableHeadersProps","filterProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","wrapper","height","fixedHeader","border","length","itemSlotProps","internalItem","index","default","_ref2","itemRef","bottom"],"sources":["../../../src/components/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRow } from './VDataTableRow'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\nimport { VVirtualScrollItem } from '@/components/VVirtualScroll/VVirtualScrollItem'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { computed, shallowRef, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { VDataTableSlotProps } from './VDataTable'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\n\ntype VDataTableVirtualSlotProps = Omit<VDataTableSlotProps, 'setItemsPerPage' | 'page' | 'pageCount' | 'itemsPerPage'>\n\nexport type VDataTableVirtualSlots = VDataTableRowsSlots & VDataTableHeadersSlots & {\n top: VDataTableVirtualSlotProps\n headers: VDataTableHeadersSlots['headers']\n bottom: VDataTableVirtualSlotProps\n 'body.prepend': VDataTableVirtualSlotProps\n 'body.append': VDataTableVirtualSlotProps\n item: {\n itemRef: Ref<HTMLElement | undefined>\n }\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...makeDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps(),\n}, 'VDataTableVirtual')\n\nexport const VDataTableVirtual = genericComponent<VDataTableVirtualSlots>()({\n name: 'VDataTableVirtual',\n\n props: makeVDataTableVirtualProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n\n const { columns, headers, sortFunctions, filterFunctions } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, sortFunctions)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allItems = computed(() => extractRows(flatItems.value))\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems,\n currentPage: allItems,\n })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const {\n containerRef,\n markerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n handleScrollend,\n } = useVirtual(props, flatItems)\n const displayItems = computed(() => computedItems.value.map(item => item.raw))\n\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed<VDataTableVirtualSlotProps>(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value.map(item => item.raw),\n internalItems: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n wrapper: () => (\n <div\n ref={ containerRef }\n onScrollPassive={ handleScroll }\n onScrollend={ handleScrollend }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr ref={ markerRef } style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n\n { slots['body.prepend']?.(slotProps.value) }\n\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ displayItems.value }\n >\n {{\n ...slots,\n item: itemSlotProps => (\n <VVirtualScrollItem\n key={ itemSlotProps.internalItem.index }\n renderless\n onUpdate:height={ height => handleItemResize(itemSlotProps.internalItem.index, height) }\n >\n { ({ itemRef }) => (\n slots.item?.({ ...itemSlotProps, itemRef }) ?? (\n <VDataTableRow\n { ...itemSlotProps.props }\n ref={ itemRef }\n key={ itemSlotProps.internalItem.index }\n v-slots={ slots }\n />\n )\n )}\n </VVirtualScrollItem>\n ),\n }}\n </VDataTableRows>\n\n { slots['body.append']?.(slotProps.value) }\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: () => slots.bottom?.(slotProps.value),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
|
|
@@ -4941,11 +4941,11 @@ declare const VDataTableVirtual: {
|
|
|
4941
4941
|
"onUpdate:expanded"?: ((value: any) => any) | undefined;
|
|
4942
4942
|
"onUpdate:options"?: ((value: any) => any) | undefined;
|
|
4943
4943
|
}, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
4944
|
-
'update:modelValue': (value: any[]) =>
|
|
4945
|
-
'update:sortBy': (value: any) =>
|
|
4946
|
-
'update:options': (value: any) =>
|
|
4947
|
-
'update:groupBy': (value: any) =>
|
|
4948
|
-
'update:expanded': (value: any) =>
|
|
4944
|
+
'update:modelValue': (value: any[]) => boolean;
|
|
4945
|
+
'update:sortBy': (value: any) => boolean;
|
|
4946
|
+
'update:options': (value: any) => boolean;
|
|
4947
|
+
'update:groupBy': (value: any) => boolean;
|
|
4948
|
+
'update:expanded': (value: any) => boolean;
|
|
4949
4949
|
}, string, {
|
|
4950
4950
|
style: vue.StyleValue;
|
|
4951
4951
|
expanded: readonly string[];
|
|
@@ -5659,11 +5659,11 @@ declare const VDataTableVirtual: {
|
|
|
5659
5659
|
"onUpdate:expanded"?: ((value: any) => any) | undefined;
|
|
5660
5660
|
"onUpdate:options"?: ((value: any) => any) | undefined;
|
|
5661
5661
|
}, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
5662
|
-
'update:modelValue': (value: any[]) =>
|
|
5663
|
-
'update:sortBy': (value: any) =>
|
|
5664
|
-
'update:options': (value: any) =>
|
|
5665
|
-
'update:groupBy': (value: any) =>
|
|
5666
|
-
'update:expanded': (value: any) =>
|
|
5662
|
+
'update:modelValue': (value: any[]) => boolean;
|
|
5663
|
+
'update:sortBy': (value: any) => boolean;
|
|
5664
|
+
'update:options': (value: any) => boolean;
|
|
5665
|
+
'update:groupBy': (value: any) => boolean;
|
|
5666
|
+
'update:expanded': (value: any) => boolean;
|
|
5667
5667
|
}, string, {
|
|
5668
5668
|
style: vue.StyleValue;
|
|
5669
5669
|
expanded: readonly string[];
|
|
@@ -7140,13 +7140,13 @@ declare const VDataTableServer: {
|
|
|
7140
7140
|
"onUpdate:itemsPerPage"?: ((page: number) => any) | undefined;
|
|
7141
7141
|
"onUpdate:options"?: ((options: any) => any) | undefined;
|
|
7142
7142
|
}, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
7143
|
-
'update:modelValue': (value: any[]) =>
|
|
7144
|
-
'update:page': (page: number) =>
|
|
7145
|
-
'update:itemsPerPage': (page: number) =>
|
|
7146
|
-
'update:sortBy': (sortBy: any) =>
|
|
7147
|
-
'update:options': (options: any) =>
|
|
7148
|
-
'update:expanded': (options: any) =>
|
|
7149
|
-
'update:groupBy': (value: any) =>
|
|
7143
|
+
'update:modelValue': (value: any[]) => boolean;
|
|
7144
|
+
'update:page': (page: number) => boolean;
|
|
7145
|
+
'update:itemsPerPage': (page: number) => boolean;
|
|
7146
|
+
'update:sortBy': (sortBy: any) => boolean;
|
|
7147
|
+
'update:options': (options: any) => boolean;
|
|
7148
|
+
'update:expanded': (options: any) => boolean;
|
|
7149
|
+
'update:groupBy': (value: any) => boolean;
|
|
7150
7150
|
}, string, {
|
|
7151
7151
|
style: vue.StyleValue;
|
|
7152
7152
|
expanded: readonly string[];
|
|
@@ -7951,13 +7951,13 @@ declare const VDataTableServer: {
|
|
|
7951
7951
|
"onUpdate:itemsPerPage"?: ((page: number) => any) | undefined;
|
|
7952
7952
|
"onUpdate:options"?: ((options: any) => any) | undefined;
|
|
7953
7953
|
}, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
7954
|
-
'update:modelValue': (value: any[]) =>
|
|
7955
|
-
'update:page': (page: number) =>
|
|
7956
|
-
'update:itemsPerPage': (page: number) =>
|
|
7957
|
-
'update:sortBy': (sortBy: any) =>
|
|
7958
|
-
'update:options': (options: any) =>
|
|
7959
|
-
'update:expanded': (options: any) =>
|
|
7960
|
-
'update:groupBy': (value: any) =>
|
|
7954
|
+
'update:modelValue': (value: any[]) => boolean;
|
|
7955
|
+
'update:page': (page: number) => boolean;
|
|
7956
|
+
'update:itemsPerPage': (page: number) => boolean;
|
|
7957
|
+
'update:sortBy': (sortBy: any) => boolean;
|
|
7958
|
+
'update:options': (options: any) => boolean;
|
|
7959
|
+
'update:expanded': (options: any) => boolean;
|
|
7960
|
+
'update:groupBy': (value: any) => boolean;
|
|
7961
7961
|
}, string, {
|
|
7962
7962
|
style: vue.StyleValue;
|
|
7963
7963
|
expanded: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSpacer.mjs","names":["createSimpleFunctional","VSpacer"],"sources":["../../../src/components/VGrid/VSpacer.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer')\n\nexport type VSpacer = InstanceType<typeof VSpacer>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,OAAO,GAAGD,sBAAsB,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"VSpacer.mjs","names":["createSimpleFunctional","VSpacer"],"sources":["../../../src/components/VGrid/VSpacer.ts"],"sourcesContent":["// Styles\nimport './VGrid.sass'\n\n// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer')\n\nexport type VSpacer = InstanceType<typeof VSpacer>\n"],"mappings":"AAAA;AACA;;AAEA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,OAAO,GAAGD,sBAAsB,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC"}
|
|
@@ -4,14 +4,17 @@ import "./VImg.css";
|
|
|
4
4
|
|
|
5
5
|
// Components
|
|
6
6
|
import { makeVResponsiveProps, VResponsive } from "../VResponsive/VResponsive.mjs"; // Composables
|
|
7
|
+
import { useBackgroundColor } from "../../composables/color.mjs";
|
|
7
8
|
import { makeComponentProps } from "../../composables/component.mjs";
|
|
9
|
+
import { makeRoundedProps, useRounded } from "../../composables/rounded.mjs";
|
|
8
10
|
import { makeTransitionProps, MaybeTransition } from "../../composables/transition.mjs"; // Directives
|
|
9
11
|
import intersect from "../../directives/intersect/index.mjs"; // Utilities
|
|
10
|
-
import { computed, nextTick, onBeforeMount, ref, shallowRef, vShow, watch, withDirectives } from 'vue';
|
|
12
|
+
import { computed, nextTick, onBeforeMount, ref, shallowRef, toRef, vShow, watch, withDirectives } from 'vue';
|
|
11
13
|
import { convertToUnit, genericComponent, propsFactory, SUPPORTS_INTERSECTION, useRender } from "../../util/index.mjs"; // Types
|
|
12
14
|
export const makeVImgProps = propsFactory({
|
|
13
15
|
alt: String,
|
|
14
16
|
cover: Boolean,
|
|
17
|
+
color: String,
|
|
15
18
|
draggable: {
|
|
16
19
|
type: [Boolean, String],
|
|
17
20
|
default: undefined
|
|
@@ -40,6 +43,7 @@ export const makeVImgProps = propsFactory({
|
|
|
40
43
|
position: String,
|
|
41
44
|
...makeVResponsiveProps(),
|
|
42
45
|
...makeComponentProps(),
|
|
46
|
+
...makeRoundedProps(),
|
|
43
47
|
...makeTransitionProps()
|
|
44
48
|
}, 'VImg');
|
|
45
49
|
export const VImg = genericComponent()({
|
|
@@ -58,6 +62,13 @@ export const VImg = genericComponent()({
|
|
|
58
62
|
emit,
|
|
59
63
|
slots
|
|
60
64
|
} = _ref;
|
|
65
|
+
const {
|
|
66
|
+
backgroundColorClasses,
|
|
67
|
+
backgroundColorStyles
|
|
68
|
+
} = useBackgroundColor(toRef(props, 'color'));
|
|
69
|
+
const {
|
|
70
|
+
roundedClasses
|
|
71
|
+
} = useRounded(props);
|
|
61
72
|
const currentSrc = shallowRef(''); // Set from srcset
|
|
62
73
|
const image = ref();
|
|
63
74
|
const state = shallowRef(props.eager ? 'loading' : 'idle');
|
|
@@ -250,10 +261,10 @@ export const VImg = genericComponent()({
|
|
|
250
261
|
return _withDirectives(_createVNode(VResponsive, _mergeProps({
|
|
251
262
|
"class": ['v-img', {
|
|
252
263
|
'v-img--booting': !isBooted.value
|
|
253
|
-
}, props.class],
|
|
264
|
+
}, backgroundColorClasses.value, roundedClasses.value, props.class],
|
|
254
265
|
"style": [{
|
|
255
266
|
width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width)
|
|
256
|
-
}, props.style]
|
|
267
|
+
}, backgroundColorStyles.value, props.style]
|
|
257
268
|
}, responsiveProps, {
|
|
258
269
|
"aspectRatio": aspectRatio.value,
|
|
259
270
|
"aria-label": props.alt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VImg.mjs","names":["makeVResponsiveProps","VResponsive","makeComponentProps","makeTransitionProps","MaybeTransition","intersect","computed","nextTick","onBeforeMount","ref","shallowRef","vShow","watch","withDirectives","convertToUnit","genericComponent","propsFactory","SUPPORTS_INTERSECTION","useRender","makeVImgProps","alt","String","cover","Boolean","draggable","type","default","undefined","eager","gradient","lazySrc","options","Object","root","rootMargin","threshold","sizes","src","crossorigin","referrerpolicy","srcset","position","VImg","name","directives","props","emits","loadstart","value","load","error","setup","_ref","emit","slots","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","Number","aspectRatio","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","setTimeout","complete","onError","onLoad","getSrc","img","timer","timeout","arguments","length","poll","clearTimeout","imgHeight","imgWidth","window","endsWith","startsWith","containClasses","__image","_createVNode","objectPosition","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","responsiveProps","filterProps","_withDirectives","_mergeProps","class","width","style","additional","_Fragment","_resolveDirective","handler","once"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["// Styles\nimport './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n ref,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n propsFactory,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: never\n placeholder: never\n error: never\n sources: never\n}\n\nexport const makeVImgProps = propsFactory({\n alt: String,\n cover: Boolean,\n draggable: {\n type: [Boolean, String] as PropType<boolean | 'true' | 'false'>,\n default: undefined,\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n crossorigin: String as PropType<'' | 'anonymous' | 'use-credentials'>,\n referrerpolicy: String as PropType<\n | 'no-referrer'\n | 'no-referrer-when-downgrade'\n | 'origin'\n | 'origin-when-cross-origin'\n | 'same-origin'\n | 'strict-origin'\n | 'strict-origin-when-cross-origin'\n | 'unsafe-url'\n >,\n srcset: String,\n position: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeTransitionProps(),\n}, 'VImg')\n\nexport const VImg = genericComponent<VImgSlots>()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: makeVImgProps(),\n\n emits: {\n loadstart: (value: string | undefined) => true,\n load: (value: string | undefined) => true,\n error: (value: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const currentSrc = shallowRef('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = shallowRef<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = shallowRef<number>()\n const naturalHeight = shallowRef<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n setTimeout(() => {\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n if (state.value === 'loading') onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n })\n }\n\n function onLoad () {\n getSrc()\n pollForSize(image.value!)\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n <img\n class={['v-img__img', containClasses.value]}\n style={{ objectPosition: props.position }}\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n sizes={ props.sizes }\n ref={ image }\n onLoad={ onLoad }\n onError={ onError }\n />\n )\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n }\n\n const __preloadImage = () => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n style={{ objectPosition: props.position }}\n src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n />\n )}\n </MaybeTransition>\n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n }\n\n const isBooted = shallowRef(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => {\n const responsiveProps = VResponsive.filterProps(props)\n return (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n props.class,\n ]}\n style={[\n { width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) },\n props.style,\n ]}\n { ...responsiveProps }\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n >{{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n </>\n ),\n default: slots.default,\n }}</VResponsive>\n )\n })\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VImg.mjs","names":["makeVResponsiveProps","VResponsive","useBackgroundColor","makeComponentProps","makeRoundedProps","useRounded","makeTransitionProps","MaybeTransition","intersect","computed","nextTick","onBeforeMount","ref","shallowRef","toRef","vShow","watch","withDirectives","convertToUnit","genericComponent","propsFactory","SUPPORTS_INTERSECTION","useRender","makeVImgProps","alt","String","cover","Boolean","color","draggable","type","default","undefined","eager","gradient","lazySrc","options","Object","root","rootMargin","threshold","sizes","src","crossorigin","referrerpolicy","srcset","position","VImg","name","directives","props","emits","loadstart","value","load","error","setup","_ref","emit","slots","backgroundColorClasses","backgroundColorStyles","roundedClasses","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","Number","aspectRatio","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","setTimeout","complete","onError","onLoad","getSrc","img","timer","timeout","arguments","length","poll","clearTimeout","imgHeight","imgWidth","window","endsWith","startsWith","containClasses","__image","_createVNode","objectPosition","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","responsiveProps","filterProps","_withDirectives","_mergeProps","class","width","style","additional","_Fragment","_resolveDirective","handler","once"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["// Styles\nimport './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n ref,\n shallowRef,\n toRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n propsFactory,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: never\n placeholder: never\n error: never\n sources: never\n}\n\nexport const makeVImgProps = propsFactory({\n alt: String,\n cover: Boolean,\n color: String,\n draggable: {\n type: [Boolean, String] as PropType<boolean | 'true' | 'false'>,\n default: undefined,\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n crossorigin: String as PropType<'' | 'anonymous' | 'use-credentials'>,\n referrerpolicy: String as PropType<\n | 'no-referrer'\n | 'no-referrer-when-downgrade'\n | 'origin'\n | 'origin-when-cross-origin'\n | 'same-origin'\n | 'strict-origin'\n | 'strict-origin-when-cross-origin'\n | 'unsafe-url'\n >,\n srcset: String,\n position: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeTransitionProps(),\n}, 'VImg')\n\nexport const VImg = genericComponent<VImgSlots>()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: makeVImgProps(),\n\n emits: {\n loadstart: (value: string | undefined) => true,\n load: (value: string | undefined) => true,\n error: (value: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { roundedClasses } = useRounded(props)\n\n const currentSrc = shallowRef('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = shallowRef<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = shallowRef<number>()\n const naturalHeight = shallowRef<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n setTimeout(() => {\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n if (state.value === 'loading') onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n })\n }\n\n function onLoad () {\n getSrc()\n pollForSize(image.value!)\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n <img\n class={['v-img__img', containClasses.value]}\n style={{ objectPosition: props.position }}\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n sizes={ props.sizes }\n ref={ image }\n onLoad={ onLoad }\n onError={ onError }\n />\n )\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n }\n\n const __preloadImage = () => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n style={{ objectPosition: props.position }}\n src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n />\n )}\n </MaybeTransition>\n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n }\n\n const isBooted = shallowRef(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => {\n const responsiveProps = VResponsive.filterProps(props)\n return (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n backgroundColorClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n { width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) },\n backgroundColorStyles.value,\n props.style,\n ]}\n { ...responsiveProps }\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n >{{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n </>\n ),\n default: slots.default,\n }}</VResponsive>\n )\n })\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n"],"mappings":"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"}
|