@vuetify/nightly 3.2.0-next-20230118.0 → 4.0.0-dev-20230211.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.
Files changed (177) hide show
  1. package/CHANGELOG.md +207 -15
  2. package/dist/json/attributes.json +7202 -0
  3. package/dist/json/importMap-labs.json +4 -0
  4. package/dist/json/importMap.json +102 -102
  5. package/dist/json/tags.json +2492 -0
  6. package/dist/json/web-types.json +24081 -0
  7. package/dist/vuetify-labs.css +163 -147
  8. package/dist/vuetify-labs.d.ts +441 -176
  9. package/dist/vuetify-labs.esm.js +328 -225
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +327 -224
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +53 -46
  14. package/dist/vuetify.d.ts +342 -203
  15. package/dist/vuetify.esm.js +249 -185
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +248 -184
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +696 -685
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/index.d.ts +2 -2
  23. package/lib/blueprints/md1.d.ts +2 -2
  24. package/lib/blueprints/md2.d.ts +2 -2
  25. package/lib/blueprints/md3.d.ts +2 -2
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -2
  27. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  28. package/lib/components/VAutocomplete/index.d.ts +43 -20
  29. package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -4
  30. package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
  31. package/lib/components/VBtn/VBtn.css +7 -7
  32. package/lib/components/VBtn/VBtn.mjs +8 -3
  33. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  34. package/lib/components/VBtnGroup/VBtnGroup.mjs +15 -11
  35. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  36. package/lib/components/VBtnGroup/index.d.ts +2 -1
  37. package/lib/components/VBtnToggle/VBtnToggle.mjs +9 -5
  38. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  39. package/lib/components/VBtnToggle/index.d.ts +122 -1
  40. package/lib/components/VCalendar/VCalendar.mjs +3 -0
  41. package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
  42. package/lib/components/VCalendar/VCalendarCategory.sass +9 -3
  43. package/lib/components/VCalendar/VCalendarDaily.mjs +20 -8
  44. package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
  45. package/lib/components/VCalendar/VCalendarWeekly.mjs +25 -5
  46. package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
  47. package/lib/components/VCalendar/mixins/calendar-with-events.mjs +20 -16
  48. package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
  49. package/lib/components/VCalendar/mixins/mouse.mjs +16 -30
  50. package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
  51. package/lib/components/VCard/VCard.css +7 -7
  52. package/lib/components/VChip/VChip.css +7 -7
  53. package/lib/components/VCombobox/VCombobox.mjs +3 -3
  54. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  55. package/lib/components/VCombobox/index.d.ts +43 -20
  56. package/lib/components/VData/VData.mjs +2 -4
  57. package/lib/components/VData/VData.mjs.map +1 -1
  58. package/lib/components/VDatePicker/VDatePicker.mjs +7 -5
  59. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  60. package/lib/components/VDefaultsProvider/index.d.ts +5 -4
  61. package/lib/components/VDialog/VDialog.mjs +6 -5
  62. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  63. package/lib/components/VDialog/index.d.ts +57 -34
  64. package/lib/components/VDivider/VDivider.mjs +6 -6
  65. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  66. package/lib/components/VExpansionPanel/VExpansionPanel.css +7 -7
  67. package/lib/components/VField/VField.css +2 -2
  68. package/lib/components/VField/VField.mjs +28 -26
  69. package/lib/components/VField/VField.mjs.map +1 -1
  70. package/lib/components/VField/VField.sass +2 -2
  71. package/lib/components/VFileInput/VFileInput.mjs +7 -4
  72. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  73. package/lib/components/VForm/index.d.ts +0 -3
  74. package/lib/components/VList/VList.mjs +4 -1
  75. package/lib/components/VList/VList.mjs.map +1 -1
  76. package/lib/components/VList/VListItem.css +7 -7
  77. package/lib/components/VList/VListItem.mjs +29 -19
  78. package/lib/components/VList/VListItem.mjs.map +1 -1
  79. package/lib/components/VMenu/VMenu.mjs +6 -5
  80. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  81. package/lib/components/VMenu/index.d.ts +57 -34
  82. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +4 -0
  83. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
  84. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  85. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +4 -0
  86. package/lib/components/VNavigationDrawer/index.d.ts +3 -3
  87. package/lib/components/VNavigationDrawer/touch.mjs +7 -6
  88. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  89. package/lib/components/VOtpInput/VOtpInput.mjs +22 -46
  90. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  91. package/lib/components/VOverflowBtn/VOverflowBtn.mjs +3 -0
  92. package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
  93. package/lib/components/VOverlay/index.d.ts +34 -11
  94. package/lib/components/VOverlay/locationStrategies.mjs +40 -29
  95. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  96. package/lib/components/VOverlay/scrollStrategies.mjs +25 -16
  97. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  98. package/lib/components/VPagination/VPagination.mjs +1 -1
  99. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  100. package/lib/components/VSelect/VSelect.mjs +3 -4
  101. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  102. package/lib/components/VSelect/index.d.ts +43 -20
  103. package/lib/components/VSelectionControl/VSelectionControl.css +2 -2
  104. package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +1 -1
  105. package/lib/components/VSnackbar/index.d.ts +42 -19
  106. package/lib/components/VStepper/VStepper.sass +6 -6
  107. package/lib/components/VStepper/VStepperStep.mjs +12 -2
  108. package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
  109. package/lib/components/VTable/VTable.css +4 -4
  110. package/lib/components/VTable/VTable.sass +2 -2
  111. package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
  112. package/lib/components/VTimeline/_mixins.sass +1 -1
  113. package/lib/components/VTooltip/VTooltip.mjs +4 -3
  114. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  115. package/lib/components/VTooltip/index.d.ts +57 -34
  116. package/lib/components/VTreeview/VTreeview.mjs +1 -1
  117. package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
  118. package/lib/components/index.d.ts +316 -176
  119. package/lib/composables/defaults.mjs +1 -1
  120. package/lib/composables/defaults.mjs.map +1 -1
  121. package/lib/composables/filter.mjs +3 -3
  122. package/lib/composables/filter.mjs.map +1 -1
  123. package/lib/composables/form.mjs +0 -1
  124. package/lib/composables/form.mjs.map +1 -1
  125. package/lib/composables/toggleScope.mjs +14 -7
  126. package/lib/composables/toggleScope.mjs.map +1 -1
  127. package/lib/directives/ripple/VRipple.css +3 -0
  128. package/lib/directives/ripple/VRipple.sass +3 -0
  129. package/lib/directives/ripple/_variables.scss +1 -1
  130. package/lib/directives/ripple/index.mjs +2 -7
  131. package/lib/directives/ripple/index.mjs.map +1 -1
  132. package/lib/entry-bundler.mjs +1 -1
  133. package/lib/entry-bundler.mjs.map +1 -1
  134. package/lib/framework.mjs +1 -1
  135. package/lib/framework.mjs.map +1 -1
  136. package/lib/index.d.ts +29 -29
  137. package/lib/labs/VDataTable/VDataTable.mjs +6 -6
  138. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  139. package/lib/labs/VDataTable/VDataTableFooter.css +9 -0
  140. package/lib/labs/VDataTable/VDataTableFooter.mjs +51 -13
  141. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  142. package/lib/labs/VDataTable/VDataTableFooter.sass +7 -0
  143. package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
  144. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  145. package/lib/labs/VDataTable/VDataTableServer.mjs +19 -12
  146. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  147. package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -5
  148. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  149. package/lib/labs/VDataTable/composables/options.mjs +3 -7
  150. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  151. package/lib/labs/VDataTable/composables/paginate.mjs +1 -1
  152. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  153. package/lib/labs/VDataTable/index.d.ts +125 -1
  154. package/lib/labs/VDataTable/index.mjs +1 -0
  155. package/lib/labs/VDataTable/index.mjs.map +1 -1
  156. package/lib/labs/components.d.ts +125 -1
  157. package/lib/locale/adapters/vue-i18n.mjs +12 -2
  158. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  159. package/lib/locale/ar.mjs +20 -20
  160. package/lib/locale/ar.mjs.map +1 -1
  161. package/lib/locale/en.mjs +2 -2
  162. package/lib/locale/en.mjs.map +1 -1
  163. package/lib/locale/es.mjs +3 -3
  164. package/lib/locale/es.mjs.map +1 -1
  165. package/lib/locale/fi.mjs +5 -5
  166. package/lib/locale/fi.mjs.map +1 -1
  167. package/lib/locale/it.mjs +6 -6
  168. package/lib/locale/it.mjs.map +1 -1
  169. package/lib/locale/sv.mjs +13 -13
  170. package/lib/locale/sv.mjs.map +1 -1
  171. package/lib/styles/settings/_variables.scss +6 -6
  172. package/lib/styles/tools/_states.sass +3 -3
  173. package/lib/util/defineComponent.mjs +21 -18
  174. package/lib/util/defineComponent.mjs.map +1 -1
  175. package/lib/util/helpers.mjs +5 -19
  176. package/lib/util/helpers.mjs.map +1 -1
  177. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableServer.mjs","names":["VTable","VDataTableFooter","VDataTableHeaders","VDataTableRows","createExpanded","makeDataTableExpandProps","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","createSort","makeDataTableSortProps","createPagination","makeDataTablePaginateProps","createSelection","makeDataTableSelectProps","useOptions","provideDefaults","provide","toRef","defineComponent","useRender","makeVDataTableProps","VDataTableServer","name","props","color","String","loading","Boolean","loadingText","type","default","itemsLength","Number","emits","value","page","sortBy","options","event","setup","emit","slots","columns","showSelect","showExpand","items","toggleSort","itemsPerPage","startIndex","stopIndex","pageCount","hideNoData","noDataText","fixedHeader","fixedFooter","height","top","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 { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createSort, makeDataTableSortProps } from './composables/sort'\nimport { createPagination, makeDataTablePaginateProps } from './composables/paginate'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { provide, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\n\nexport const VDataTableServer = defineComponent({\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: [Number, String],\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\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 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n createExpanded(props)\n\n const { columns } = createHeaders(props, {\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { sortBy, toggleSort } = createSort(props)\n\n const { page, itemsPerPage, startIndex, stopIndex, pageCount } = createPagination(props, items)\n\n createSelection(props, items)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n startIndex,\n stopIndex,\n pageCount,\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n <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 />\n ) }\n </thead>\n { slots.thead?.() }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ items.value }\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n ) }\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableServer.mjs","names":["VTable","VDataTableFooter","VDataTableHeaders","VDataTableRows","provideDefaults","useProxiedModel","createExpanded","makeDataTableExpandProps","createGroupBy","makeDataTableGroupProps","useGroupedItems","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","createSelection","makeDataTableSelectProps","createSort","makeDataTableSortProps","provide","toRef","defineComponent","useRender","makeVDataTableProps","VDataTableServer","name","props","color","String","loading","Boolean","loadingText","type","default","itemsLength","Number","emits","value","page","sortBy","options","event","setup","emit","slots","groupBy","columns","showSelect","showExpand","items","toggleSort","opened","itemsPerPage","flatItems","hideNoData","noDataText","fixedHeader","fixedFooter","height","top","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 { useProxiedModel } from '@/composables/proxiedModel'\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps } from './composables/paginate'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { createSort, makeDataTableSortProps } from './composables/sort'\n\n// Utilities\nimport { provide, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\n\nexport const VDataTableServer = defineComponent({\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: [Number, String],\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeDataTableGroupProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:itemsPerPage': (page: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (options: any) => true,\n 'update:groupBy': (value: any) => true,\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n\n createExpanded(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 { sortBy, toggleSort } = createSort(props)\n\n const { opened } = createGroupBy(props, groupBy, sortBy)\n\n const { page, itemsPerPage } = createPagination(props, items)\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n createSelection(props, items)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n <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 />\n ) }\n </thead>\n { slots.thead?.() }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ flatItems.value }\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n ) }\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":";AAAA;AAAA,SACSA,MAAM;AAAA,SACNC,gBAAgB;AAAA,SAChBC,iBAAiB;AAAA,SACjBC,cAAc,gCAEvB;AAAA,SACSC,eAAe;AAAA,SACfC,eAAe;AAAA,SACfC,cAAc,EAAEC,wBAAwB;AAAA,SACxCC,aAAa,EAAEC,uBAAuB,EAAEC,eAAe;AAAA,SACvDC,aAAa,EAAEC,wBAAwB;AAAA,SACvCC,sBAAsB,EAAEC,iBAAiB;AAAA,SACzCC,UAAU;AAAA,SACVC,gBAAgB,EAAEC,0BAA0B;AAAA,SAC5CC,eAAe,EAAEC,wBAAwB;AAAA,SACzCC,UAAU,EAAEC,sBAAsB,kCAE3C;AACA,SAASC,OAAO,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC3BC,eAAe,EAAEC,SAAS;AAAA,SAC1BC,mBAAmB,4BAE5B;AAGA,OAAO,MAAMC,gBAAgB,GAAGH,eAAe,CAAC;EAC9CI,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAE;IACLC,KAAK,EAAEC,MAAM;IACbC,OAAO,EAAE,CAACC,OAAO,EAAEF,MAAM,CAAC;IAC1BG,WAAW,EAAE;MACXC,IAAI,EAAEJ,MAAM;MACZK,OAAO,EAAE;IACX,CAAC;IACDC,WAAW,EAAE,CAACC,MAAM,EAAEP,MAAM,CAAC;IAE7B,GAAGL,mBAAmB,EAAE;IACxB,GAAGnB,wBAAwB,EAAE;IAC7B,GAAGK,wBAAwB,EAAE;IAC7B,GAAGC,sBAAsB,EAAE;IAC3B,GAAGM,wBAAwB,EAAE;IAC7B,GAAGE,sBAAsB,EAAE;IAC3B,GAAGJ,0BAA0B,EAAE;IAC/B,GAAGR,uBAAuB;EAC5B,CAAC;EAED8B,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAY,IAAK,IAAI;IAC3C,aAAa,EAAGC,IAAY,IAAK,IAAI;IACrC,qBAAqB,EAAGA,IAAY,IAAK,IAAI;IAC7C,eAAe,EAAGC,MAAW,IAAK,IAAI;IACtC,gBAAgB,EAAGC,OAAY,IAAK,IAAI;IACxC,iBAAiB,EAAGA,OAAY,IAAK,IAAI;IACzC,gBAAgB,EAAGH,KAAU,IAAK,IAAI;IACtC,WAAW,EAAE,CAACI,KAAY,EAAEJ,KAA8B,KAAK;EACjE,CAAC;EAEDK,KAAK,CAAEhB,KAAK,QAAmB;IAAA,IAAjB;MAAEiB,IAAI;MAAEC;IAAM,CAAC;IAC3B,MAAMC,OAAO,GAAG3C,eAAe,CAACwB,KAAK,EAAE,SAAS,CAAC;IAEjDvB,cAAc,CAACuB,KAAK,CAAC;IAErB,MAAM;MAAEoB;IAAQ,CAAC,GAAGtC,aAAa,CAACkB,KAAK,EAAE;MACvCmB,OAAO;MACPE,UAAU,EAAE3B,KAAK,CAACM,KAAK,EAAE,YAAY,CAAC;MACtCsB,UAAU,EAAE5B,KAAK,CAACM,KAAK,EAAE,YAAY;IACvC,CAAC,CAAC;IAEF,MAAM;MAAEuB;IAAM,CAAC,GAAGtC,iBAAiB,CAACe,KAAK,EAAEoB,OAAO,CAAC;IAEnD,MAAM;MAAEP,MAAM;MAAEW;IAAW,CAAC,GAAGjC,UAAU,CAACS,KAAK,CAAC;IAEhD,MAAM;MAAEyB;IAAO,CAAC,GAAG9C,aAAa,CAACqB,KAAK,EAAEmB,OAAO,EAAEN,MAAM,CAAC;IAExD,MAAM;MAAED,IAAI;MAAEc;IAAa,CAAC,GAAGvC,gBAAgB,CAACa,KAAK,EAAEuB,KAAK,CAAC;IAE7D,MAAM;MAAEI;IAAU,CAAC,GAAG9C,eAAe,CAAC0C,KAAK,EAAEJ,OAAO,EAAEM,MAAM,CAAC;IAE7DpC,eAAe,CAACW,KAAK,EAAEuB,KAAK,CAAC;IAE7BrC,UAAU,CAAC;MACT0B,IAAI;MACJc,YAAY;MACZb,MAAM;MACNM;IACF,CAAC,CAAC;IAEF1B,OAAO,CAAC,cAAc,EAAE;MACtB+B,UAAU;MACVX;IACF,CAAC,CAAC;IAEFtC,eAAe,CAAC;MACdD,cAAc,EAAE;QACdsD,UAAU,EAAElC,KAAK,CAACM,KAAK,EAAE,YAAY,CAAC;QACtC6B,UAAU,EAAEnC,KAAK,CAACM,KAAK,EAAE,YAAY,CAAC;QACtCG,OAAO,EAAET,KAAK,CAACM,KAAK,EAAE,SAAS,CAAC;QAChCK,WAAW,EAAEX,KAAK,CAACM,KAAK,EAAE,aAAa;MACzC;IACF,CAAC,CAAC;IAEFJ,SAAS,CAAC;MAAA,SAEC,CACL,cAAc,EACd;QACE,uBAAuB,EAAEI,KAAK,CAACG;MACjC,CAAC,CACF;MAAA,eACaH,KAAK,CAAC8B,WAAW;MAAA,eACjB9B,KAAK,CAAC+B,WAAW;MAAA,UACtB/B,KAAK,CAACgC;IAAM;MAGnBC,GAAG,EAAEf,KAAK,CAACe,GAAG;MACd1B,OAAO,EAAEW,KAAK,CAACX,OAAO,KAAK;QAAA;QAAA;UAAA,SAEV,qBAAqB;UAAA,QAAM;QAAU,IAC9CW,KAAK,CAACgB,OAAO,GAAGhB,KAAK,CAACgB,OAAO,EAAE;UAAA,UAEpBlC,KAAK,CAAC8B,WAAW;UAAA,WAChB9B,KAAK,CAACG,OAAO;UAAA,SACfH,KAAK,CAACC;QAAK,QAEtB,oBAEDiB,KAAK,CAACiB,KAAK,qBAAX,kBAAAjB,KAAK,CAAU;UAAA,SACJ,qBAAqB;UAAA,QAAM;QAAU,IAC9CA,KAAK,CAACkB,IAAI,GAAGlB,KAAK,CAACkB,IAAI,EAAE;UAAA,SAEfT,SAAS,CAAChB,KAAK;UAAA,eACT,CAACI,KAAK,EAAEJ,KAAK,KAAKM,IAAI,CAAC,WAAW,EAAEF,KAAK,EAAEJ,KAAK;QAAC,GACrDO,KAAK,CAElB,oBAEDA,KAAK,CAACmB,KAAK,qBAAX,kBAAAnB,KAAK,CAAU,kBACfA,KAAK,CAACoB,KAAK,qBAAX,kBAAApB,KAAK,CAAU;MAAA,CAEpB,CAAC;MACFqB,MAAM,EAAErB,KAAK,CAACqB,MAAM,KAAK,2CAEZ;QACPC,OAAO,EAAEtB,KAAK,CAAC,gBAAgB;MACjC,CAAC,CAEJ;IAAC,EAGP,CAAC;EACJ;AACF,CAAC,CAAC"}
@@ -56,9 +56,12 @@ export const VDataTableVirtual = defineComponent({
56
56
  const {
57
57
  items
58
58
  } = useDataTableItems(props, columns);
59
+ const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key));
59
60
  const {
60
61
  filteredItems
61
- } = useFilter(props, items, toRef(props, 'search'));
62
+ } = useFilter(props, items, toRef(props, 'search'), {
63
+ filterKeys
64
+ });
62
65
  const {
63
66
  sortBy
64
67
  } = createSort(props);
@@ -91,10 +94,8 @@ export const VDataTableVirtual = defineComponent({
91
94
  useOptions({
92
95
  sortBy,
93
96
  page: ref(1),
94
- startIndex: ref(0),
95
- stopIndex: computed(() => flatItems.value.length - 1),
96
- pageCount: ref(1),
97
- itemsPerPage: ref(-1)
97
+ itemsPerPage: ref(-1),
98
+ groupBy
98
99
  });
99
100
  provideDefaults({
100
101
  VDataTableRows: {
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableVirtual.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","useProxiedModel","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","createExpanded","makeDataTableExpandProps","createSort","makeDataTableSortProps","useSortedItems","createGroupBy","makeDataTableGroupProps","useGroupedItems","createSelection","makeDataTableSelectProps","makeDataTableVirtualProps","useVirtual","useOptions","makeFilterProps","useFilter","provideDefaults","computed","ref","toRef","convertToUnit","defineComponent","useRender","makeVDataTableProps","VDataTableVirtual","name","props","search","String","emits","value","event","setup","emit","slots","groupBy","columns","showSelect","showExpand","items","filteredItems","sortBy","sortByWithGroups","opened","extractRows","sortedItems","flatItems","allRows","containerRef","paddingTop","paddingBottom","startIndex","stopIndex","itemHeight","handleScroll","visibleItems","slice","page","length","pageCount","itemsPerPage","hideNoData","noDataText","height","fixedHeader","top","wrapper","multiSort","border","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 { useProxiedModel } from '@/composables/proxiedModel'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { createSort, makeDataTableSortProps, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, useGroupedItems } from './composables/group'\nimport { createSelection, makeDataTableSelectProps } 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, defineComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\n\nexport const VDataTableVirtual = defineComponent({\n name: 'VDataTableVirtual',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeVDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTableVirtualProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\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 { filteredItems } = useFilter<DataTableItem>(props, items, toRef(props, 'search'))\n\n const { sortBy } = createSort(props)\n const { sortByWithGroups, opened, extractRows } = createGroupBy(props, 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 createSelection(props, allRows)\n createExpanded(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 startIndex: ref(0),\n stopIndex: computed(() => flatItems.value.length - 1),\n pageCount: ref(1),\n itemsPerPage: ref(-1),\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class=\"v-data-table\"\n style={{\n '--v-table-row-height': convertToUnit(itemHeight.value),\n }}\n height={ props.height }\n fixedHeader={ props.fixedHeader }\n >\n {{\n top: slots.top,\n wrapper: () => (\n <div\n ref={ containerRef }\n onScroll={ handleScroll }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={columns.value.length} style={{ height: convertToUnit(paddingTop.value), border: 0 }}></td>\n </tr>\n\n <VDataTableRows\n items={visibleItems.value}\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={columns.value.length} style={{ height: convertToUnit(paddingBottom.value), border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: slots.bottom,\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableVirtual.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","useProxiedModel","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","createExpanded","makeDataTableExpandProps","createSort","makeDataTableSortProps","useSortedItems","createGroupBy","makeDataTableGroupProps","useGroupedItems","createSelection","makeDataTableSelectProps","makeDataTableVirtualProps","useVirtual","useOptions","makeFilterProps","useFilter","provideDefaults","computed","ref","toRef","convertToUnit","defineComponent","useRender","makeVDataTableProps","VDataTableVirtual","name","props","search","String","emits","value","event","setup","emit","slots","groupBy","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortBy","sortByWithGroups","opened","extractRows","sortedItems","flatItems","allRows","containerRef","paddingTop","paddingBottom","startIndex","stopIndex","itemHeight","handleScroll","visibleItems","slice","page","itemsPerPage","hideNoData","noDataText","height","fixedHeader","top","wrapper","multiSort","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 { useProxiedModel } from '@/composables/proxiedModel'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { createSort, makeDataTableSortProps, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, useGroupedItems } from './composables/group'\nimport { createSelection, makeDataTableSelectProps } 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, defineComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\n\nexport const VDataTableVirtual = defineComponent({\n name: 'VDataTableVirtual',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeVDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTableVirtualProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\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 { filteredItems } = useFilter<DataTableItem>(props, items, toRef(props, 'search'), { filterKeys })\n\n const { sortBy } = createSort(props)\n const { sortByWithGroups, opened, extractRows } = createGroupBy(props, 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 createSelection(props, allRows)\n createExpanded(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 })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class=\"v-data-table\"\n style={{\n '--v-table-row-height': convertToUnit(itemHeight.value),\n }}\n height={ props.height }\n fixedHeader={ props.fixedHeader }\n >\n {{\n top: slots.top,\n wrapper: () => (\n <div\n ref={ containerRef }\n onScroll={ handleScroll }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={columns.value.length} style={{ height: convertToUnit(paddingTop.value), border: 0 }}></td>\n </tr>\n\n <VDataTableRows\n items={visibleItems.value}\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={columns.value.length} style={{ height: convertToUnit(paddingBottom.value), border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: slots.bottom,\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
@@ -6,18 +6,14 @@ export function useOptions(_ref) {
6
6
  page,
7
7
  itemsPerPage,
8
8
  sortBy,
9
- startIndex,
10
- stopIndex,
11
- pageCount
9
+ groupBy
12
10
  } = _ref;
13
11
  const vm = getCurrentInstance('VDataTable');
14
12
  const options = computed(() => ({
15
13
  page: page.value,
16
14
  itemsPerPage: itemsPerPage.value,
17
- startIndex: startIndex.value,
18
- stopIndex: stopIndex.value,
19
- pageCount: pageCount.value,
20
- sortBy: sortBy.value
15
+ sortBy: sortBy.value,
16
+ groupBy: groupBy.value
21
17
  }));
22
18
 
23
19
  // Reset page when sorting changes
@@ -1 +1 @@
1
- {"version":3,"file":"options.mjs","names":["computed","watch","deepEqual","getCurrentInstance","useOptions","page","itemsPerPage","sortBy","startIndex","stopIndex","pageCount","vm","options","value","deep","oldOptions","emit","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 startIndex,\n stopIndex,\n pageCount,\n}: {\n page: Ref<number>\n itemsPerPage: Ref<number>\n sortBy: Ref<readonly SortItem[]>\n startIndex: Ref<number>\n stopIndex: Ref<number>\n pageCount: Ref<number>\n}) {\n const vm = getCurrentInstance('VDataTable')\n\n const options = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n startIndex: startIndex.value,\n stopIndex: stopIndex.value,\n pageCount: pageCount.value,\n sortBy: sortBy.value,\n }))\n\n // Reset page when sorting changes\n watch(sortBy, () => {\n page.value = 1\n }, { deep: true })\n\n // Reset page when items-per-page changes\n watch(itemsPerPage, () => {\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,UAAU,OAcvB;EAAA,IAdyB;IAC1BC,IAAI;IACJC,YAAY;IACZC,MAAM;IACNC,UAAU;IACVC,SAAS;IACTC;EAQF,CAAC;EACC,MAAMC,EAAE,GAAGR,kBAAkB,CAAC,YAAY,CAAC;EAE3C,MAAMS,OAAO,GAAGZ,QAAQ,CAAC,OAAO;IAC9BK,IAAI,EAAEA,IAAI,CAACQ,KAAK;IAChBP,YAAY,EAAEA,YAAY,CAACO,KAAK;IAChCL,UAAU,EAAEA,UAAU,CAACK,KAAK;IAC5BJ,SAAS,EAAEA,SAAS,CAACI,KAAK;IAC1BH,SAAS,EAAEA,SAAS,CAACG,KAAK;IAC1BN,MAAM,EAAEA,MAAM,CAACM;EACjB,CAAC,CAAC,CAAC;;EAEH;EACAZ,KAAK,CAACM,MAAM,EAAE,MAAM;IAClBF,IAAI,CAACQ,KAAK,GAAG,CAAC;EAChB,CAAC,EAAE;IAAEC,IAAI,EAAE;EAAK,CAAC,CAAC;;EAElB;EACAb,KAAK,CAACK,YAAY,EAAE,MAAM;IACxBD,IAAI,CAACQ,KAAK,GAAG,CAAC;EAChB,CAAC,CAAC;EAEF,IAAIE,UAAmB,GAAG,IAAI;EAC9Bd,KAAK,CAACW,OAAO,EAAE,MAAM;IACnB,IAAIV,SAAS,CAACa,UAAU,EAAEH,OAAO,CAACC,KAAK,CAAC,EAAE;IAC1CF,EAAE,CAACK,IAAI,CAAC,gBAAgB,EAAEJ,OAAO,CAACC,KAAK,CAAC;IACxCE,UAAU,GAAGH,OAAO,CAACC,KAAK;EAC5B,CAAC,EAAE;IAAEC,IAAI,EAAE,IAAI;IAAEG,SAAS,EAAE;EAAK,CAAC,CAAC;AACrC"}
1
+ {"version":3,"file":"options.mjs","names":["computed","watch","deepEqual","getCurrentInstance","useOptions","page","itemsPerPage","sortBy","groupBy","vm","options","value","deep","oldOptions","emit","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}: {\n page: Ref<number>\n itemsPerPage: Ref<number>\n sortBy: Ref<readonly SortItem[]>\n groupBy: Ref<readonly SortItem[]>\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 }))\n\n // Reset page when sorting changes\n watch(sortBy, () => {\n page.value = 1\n }, { deep: true })\n\n // Reset page when items-per-page changes\n watch(itemsPerPage, () => {\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,UAAU,OAUvB;EAAA,IAVyB;IAC1BC,IAAI;IACJC,YAAY;IACZC,MAAM;IACNC;EAMF,CAAC;EACC,MAAMC,EAAE,GAAGN,kBAAkB,CAAC,YAAY,CAAC;EAE3C,MAAMO,OAAO,GAAGV,QAAQ,CAAC,OAAO;IAC9BK,IAAI,EAAEA,IAAI,CAACM,KAAK;IAChBL,YAAY,EAAEA,YAAY,CAACK,KAAK;IAChCJ,MAAM,EAAEA,MAAM,CAACI,KAAK;IACpBH,OAAO,EAAEA,OAAO,CAACG;EACnB,CAAC,CAAC,CAAC;;EAEH;EACAV,KAAK,CAACM,MAAM,EAAE,MAAM;IAClBF,IAAI,CAACM,KAAK,GAAG,CAAC;EAChB,CAAC,EAAE;IAAEC,IAAI,EAAE;EAAK,CAAC,CAAC;;EAElB;EACAX,KAAK,CAACK,YAAY,EAAE,MAAM;IACxBD,IAAI,CAACM,KAAK,GAAG,CAAC;EAChB,CAAC,CAAC;EAEF,IAAIE,UAAmB,GAAG,IAAI;EAC9BZ,KAAK,CAACS,OAAO,EAAE,MAAM;IACnB,IAAIR,SAAS,CAACW,UAAU,EAAEH,OAAO,CAACC,KAAK,CAAC,EAAE;IAC1CF,EAAE,CAACK,IAAI,CAAC,gBAAgB,EAAEJ,OAAO,CAACC,KAAK,CAAC;IACxCE,UAAU,GAAGH,OAAO,CAACC,KAAK;EAC5B,CAAC,EAAE;IAAEC,IAAI,EAAE,IAAI;IAAEG,SAAS,EAAE;EAAK,CAAC,CAAC;AACrC"}
@@ -26,7 +26,7 @@ export function createPagination(props, items) {
26
26
  return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value);
27
27
  });
28
28
  const pageCount = computed(() => {
29
- if (itemsPerPage.value === -1) return 1;
29
+ if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;
30
30
  return Math.ceil(itemsLength.value / itemsPerPage.value);
31
31
  });
32
32
  watchEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"paginate.mjs","names":["useProxiedModel","computed","inject","provide","watchEffect","propsFactory","makeDataTablePaginateProps","page","type","Number","String","default","itemsPerPage","VDataTablePaginationSymbol","Symbol","for","createPagination","props","items","undefined","value","itemsLength","length","startIndex","stopIndex","Math","min","pageCount","ceil","data","usePagination","Error","usePaginatedItems","paginatedItems","slice"],"sources":["../../../../src/labs/VDataTable/composables/paginate.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, watchEffect } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1,\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10,\n },\n}, 'v-data-table-paginate')\n\nconst VDataTablePaginationSymbol: InjectionKey<{\n page: Ref<number>\n itemsPerPage: Ref<number>\n startIndex: Ref<number>\n stopIndex: Ref<number>\n pageCount: Ref<number>\n itemsLength: Ref<number>\n}> = Symbol.for('vuetify:data-table-pagination')\n\ntype PaginationProps = {\n page: number | string\n 'onUpdate:page': ((val: any) => void) | undefined\n itemsPerPage: number | string\n 'onUpdate:itemsPerPage': ((val: any) => void) | undefined\n itemsLength?: number | string\n}\n\nexport function createPagination (props: PaginationProps, items: Ref<any[]>) {\n const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1))\n const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10))\n const itemsLength = computed(() => +(props.itemsLength ?? items.value.length))\n\n const startIndex = computed(() => {\n if (itemsPerPage.value === -1) return 0\n\n return itemsPerPage.value * (page.value - 1)\n })\n const stopIndex = computed(() => {\n if (itemsPerPage.value === -1) return itemsLength.value\n\n return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value)\n })\n\n const pageCount = computed(() => {\n if (itemsPerPage.value === -1) return 1\n\n return Math.ceil(itemsLength.value / itemsPerPage.value)\n })\n\n watchEffect(() => {\n if (startIndex.value > itemsLength.value) {\n page.value = 1\n }\n })\n\n const data = { page, itemsPerPage, startIndex, stopIndex, pageCount, itemsLength }\n\n provide(VDataTablePaginationSymbol, data)\n\n return data\n}\n\nexport function usePagination () {\n const data = inject(VDataTablePaginationSymbol)\n\n if (!data) throw new Error('Missing pagination!')\n\n return data\n}\n\nexport function usePaginatedItems (\n items: Ref<any[]>,\n startIndex: Ref<number>,\n stopIndex: Ref<number>,\n itemsPerPage: Ref<number>\n) {\n const paginatedItems = computed(() => {\n if (itemsPerPage.value <= 0) return items.value\n\n return items.value.slice(startIndex.value, stopIndex.value)\n })\n\n return { paginatedItems }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"paginate.mjs","names":["useProxiedModel","computed","inject","provide","watchEffect","propsFactory","makeDataTablePaginateProps","page","type","Number","String","default","itemsPerPage","VDataTablePaginationSymbol","Symbol","for","createPagination","props","items","undefined","value","itemsLength","length","startIndex","stopIndex","Math","min","pageCount","ceil","data","usePagination","Error","usePaginatedItems","paginatedItems","slice"],"sources":["../../../../src/labs/VDataTable/composables/paginate.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, watchEffect } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1,\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10,\n },\n}, 'v-data-table-paginate')\n\nconst VDataTablePaginationSymbol: InjectionKey<{\n page: Ref<number>\n itemsPerPage: Ref<number>\n startIndex: Ref<number>\n stopIndex: Ref<number>\n pageCount: Ref<number>\n itemsLength: Ref<number>\n}> = Symbol.for('vuetify:data-table-pagination')\n\ntype PaginationProps = {\n page: number | string\n 'onUpdate:page': ((val: any) => void) | undefined\n itemsPerPage: number | string\n 'onUpdate:itemsPerPage': ((val: any) => void) | undefined\n itemsLength?: number | string\n}\n\nexport function createPagination (props: PaginationProps, items: Ref<any[]>) {\n const page = useProxiedModel(props, 'page', undefined, value => +(value ?? 1))\n const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => +(value ?? 10))\n const itemsLength = computed(() => +(props.itemsLength ?? items.value.length))\n\n const startIndex = computed(() => {\n if (itemsPerPage.value === -1) return 0\n\n return itemsPerPage.value * (page.value - 1)\n })\n const stopIndex = computed(() => {\n if (itemsPerPage.value === -1) return itemsLength.value\n\n return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value)\n })\n\n const pageCount = computed(() => {\n if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1\n\n return Math.ceil(itemsLength.value / itemsPerPage.value)\n })\n\n watchEffect(() => {\n if (startIndex.value > itemsLength.value) {\n page.value = 1\n }\n })\n\n const data = { page, itemsPerPage, startIndex, stopIndex, pageCount, itemsLength }\n\n provide(VDataTablePaginationSymbol, data)\n\n return data\n}\n\nexport function usePagination () {\n const data = inject(VDataTablePaginationSymbol)\n\n if (!data) throw new Error('Missing pagination!')\n\n return data\n}\n\nexport function usePaginatedItems (\n items: Ref<any[]>,\n startIndex: Ref<number>,\n stopIndex: Ref<number>,\n itemsPerPage: Ref<number>\n) {\n const paginatedItems = computed(() => {\n if (itemsPerPage.value <= 0) return items.value\n\n return items.value.slice(startIndex.value, stopIndex.value)\n })\n\n return { paginatedItems }\n}\n"],"mappings":"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"}
@@ -517,6 +517,10 @@ declare const VDataTableVirtual: vue.DefineComponent<{
517
517
  declare type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>;
518
518
 
519
519
  declare const VDataTableServer: vue.DefineComponent<{
520
+ groupBy: {
521
+ type: vue.PropType<SortItem[]>;
522
+ default: () => never[];
523
+ };
520
524
  page: {
521
525
  type: (StringConstructor | NumberConstructor)[];
522
526
  default: number;
@@ -593,10 +597,15 @@ declare const VDataTableServer: vue.DefineComponent<{
593
597
  'update:sortBy': (sortBy: any) => true;
594
598
  'update:options': (options: any) => true;
595
599
  'update:expanded': (options: any) => true;
600
+ 'update:groupBy': (value: any) => true;
596
601
  'click:row': (event: Event, value: {
597
602
  item: DataTableItem;
598
603
  }) => true;
599
604
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
605
+ groupBy: {
606
+ type: vue.PropType<SortItem[]>;
607
+ default: () => never[];
608
+ };
600
609
  page: {
601
610
  type: (StringConstructor | NumberConstructor)[];
602
611
  default: number;
@@ -676,6 +685,7 @@ declare const VDataTableServer: vue.DefineComponent<{
676
685
  "onUpdate:page"?: ((page: number) => any) | undefined;
677
686
  "onUpdate:itemsPerPage"?: ((page: number) => any) | undefined;
678
687
  "onUpdate:options"?: ((options: any) => any) | undefined;
688
+ "onUpdate:groupBy"?: ((value: any) => any) | undefined;
679
689
  }, {
680
690
  expanded: string[];
681
691
  page: string | number;
@@ -695,6 +705,7 @@ declare const VDataTableServer: vue.DefineComponent<{
695
705
  fixedFooter: boolean;
696
706
  multiSort: boolean;
697
707
  mustSort: boolean;
708
+ groupBy: SortItem[];
698
709
  showSelect: boolean;
699
710
  expandOnClick: boolean;
700
711
  showExpand: boolean;
@@ -702,4 +713,117 @@ declare const VDataTableServer: vue.DefineComponent<{
702
713
  }>;
703
714
  declare type VDataTableServer = InstanceType<typeof VDataTableServer>;
704
715
 
705
- export { VDataTable, VDataTableRow, VDataTableRows, VDataTableServer, VDataTableVirtual };
716
+ declare const VDataTableFooter: vue.DefineComponent<{
717
+ prevIcon: {
718
+ type: StringConstructor;
719
+ default: string;
720
+ };
721
+ nextIcon: {
722
+ type: StringConstructor;
723
+ default: string;
724
+ };
725
+ firstIcon: {
726
+ type: StringConstructor;
727
+ default: string;
728
+ };
729
+ lastIcon: {
730
+ type: StringConstructor;
731
+ default: string;
732
+ };
733
+ itemsPerPageText: {
734
+ type: StringConstructor;
735
+ default: string;
736
+ };
737
+ pageText: {
738
+ type: StringConstructor;
739
+ default: string;
740
+ };
741
+ firstPageLabel: {
742
+ type: StringConstructor;
743
+ default: string;
744
+ };
745
+ prevPageLabel: {
746
+ type: StringConstructor;
747
+ default: string;
748
+ };
749
+ nextPageLabel: {
750
+ type: StringConstructor;
751
+ default: string;
752
+ };
753
+ lastPageLabel: {
754
+ type: StringConstructor;
755
+ default: string;
756
+ };
757
+ itemsPerPageOptions: {
758
+ type: PropType<InternalItem<any>[]>;
759
+ default: () => {
760
+ value: number;
761
+ title: string;
762
+ }[];
763
+ };
764
+ showCurrentPage: BooleanConstructor;
765
+ }, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
766
+ prevIcon: {
767
+ type: StringConstructor;
768
+ default: string;
769
+ };
770
+ nextIcon: {
771
+ type: StringConstructor;
772
+ default: string;
773
+ };
774
+ firstIcon: {
775
+ type: StringConstructor;
776
+ default: string;
777
+ };
778
+ lastIcon: {
779
+ type: StringConstructor;
780
+ default: string;
781
+ };
782
+ itemsPerPageText: {
783
+ type: StringConstructor;
784
+ default: string;
785
+ };
786
+ pageText: {
787
+ type: StringConstructor;
788
+ default: string;
789
+ };
790
+ firstPageLabel: {
791
+ type: StringConstructor;
792
+ default: string;
793
+ };
794
+ prevPageLabel: {
795
+ type: StringConstructor;
796
+ default: string;
797
+ };
798
+ nextPageLabel: {
799
+ type: StringConstructor;
800
+ default: string;
801
+ };
802
+ lastPageLabel: {
803
+ type: StringConstructor;
804
+ default: string;
805
+ };
806
+ itemsPerPageOptions: {
807
+ type: PropType<InternalItem<any>[]>;
808
+ default: () => {
809
+ value: number;
810
+ title: string;
811
+ }[];
812
+ };
813
+ showCurrentPage: BooleanConstructor;
814
+ }>>, {
815
+ itemsPerPageText: string;
816
+ pageText: string;
817
+ nextIcon: string;
818
+ prevIcon: string;
819
+ firstIcon: string;
820
+ lastIcon: string;
821
+ firstPageLabel: string;
822
+ prevPageLabel: string;
823
+ nextPageLabel: string;
824
+ lastPageLabel: string;
825
+ itemsPerPageOptions: InternalItem<any>[];
826
+ showCurrentPage: boolean;
827
+ }>;
828
+
829
+ export { VDataTable, VDataTableFooter, VDataTableRow, VDataTableRows, VDataTableServer, VDataTableVirtual };
@@ -3,4 +3,5 @@ export { VDataTableRows } from "./VDataTableRows.mjs";
3
3
  export { VDataTableRow } from "./VDataTableRow.mjs";
4
4
  export { VDataTableVirtual } from "./VDataTableVirtual.mjs";
5
5
  export { VDataTableServer } from "./VDataTableServer.mjs";
6
+ export { VDataTableFooter } from "./VDataTableFooter.mjs";
6
7
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["VDataTable","VDataTableRows","VDataTableRow","VDataTableVirtual","VDataTableServer"],"sources":["../../../src/labs/VDataTable/index.ts"],"sourcesContent":["export { VDataTable } from './VDataTable'\nexport { VDataTableRows } from './VDataTableRows'\nexport { VDataTableRow } from './VDataTableRow'\nexport { VDataTableVirtual } from './VDataTableVirtual'\nexport { VDataTableServer } from './VDataTableServer'\n"],"mappings":"SAASA,UAAU;AAAA,SACVC,cAAc;AAAA,SACdC,aAAa;AAAA,SACbC,iBAAiB;AAAA,SACjBC,gBAAgB"}
1
+ {"version":3,"file":"index.mjs","names":["VDataTable","VDataTableRows","VDataTableRow","VDataTableVirtual","VDataTableServer","VDataTableFooter"],"sources":["../../../src/labs/VDataTable/index.ts"],"sourcesContent":["export { VDataTable } from './VDataTable'\nexport { VDataTableRows } from './VDataTableRows'\nexport { VDataTableRow } from './VDataTableRow'\nexport { VDataTableVirtual } from './VDataTableVirtual'\nexport { VDataTableServer } from './VDataTableServer'\nexport { VDataTableFooter } from './VDataTableFooter'\n"],"mappings":"SAASA,UAAU;AAAA,SACVC,cAAc;AAAA,SACdC,aAAa;AAAA,SACbC,iBAAiB;AAAA,SACjBC,gBAAgB;AAAA,SAChBC,gBAAgB"}
@@ -517,6 +517,10 @@ declare const VDataTableVirtual: vue.DefineComponent<{
517
517
  declare type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>;
518
518
 
519
519
  declare const VDataTableServer: vue.DefineComponent<{
520
+ groupBy: {
521
+ type: vue.PropType<SortItem[]>;
522
+ default: () => never[];
523
+ };
520
524
  page: {
521
525
  type: (StringConstructor | NumberConstructor)[];
522
526
  default: number;
@@ -593,10 +597,15 @@ declare const VDataTableServer: vue.DefineComponent<{
593
597
  'update:sortBy': (sortBy: any) => true;
594
598
  'update:options': (options: any) => true;
595
599
  'update:expanded': (options: any) => true;
600
+ 'update:groupBy': (value: any) => true;
596
601
  'click:row': (event: Event, value: {
597
602
  item: DataTableItem;
598
603
  }) => true;
599
604
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
605
+ groupBy: {
606
+ type: vue.PropType<SortItem[]>;
607
+ default: () => never[];
608
+ };
600
609
  page: {
601
610
  type: (StringConstructor | NumberConstructor)[];
602
611
  default: number;
@@ -676,6 +685,7 @@ declare const VDataTableServer: vue.DefineComponent<{
676
685
  "onUpdate:page"?: ((page: number) => any) | undefined;
677
686
  "onUpdate:itemsPerPage"?: ((page: number) => any) | undefined;
678
687
  "onUpdate:options"?: ((options: any) => any) | undefined;
688
+ "onUpdate:groupBy"?: ((value: any) => any) | undefined;
679
689
  }, {
680
690
  expanded: string[];
681
691
  page: string | number;
@@ -695,6 +705,7 @@ declare const VDataTableServer: vue.DefineComponent<{
695
705
  fixedFooter: boolean;
696
706
  multiSort: boolean;
697
707
  mustSort: boolean;
708
+ groupBy: SortItem[];
698
709
  showSelect: boolean;
699
710
  expandOnClick: boolean;
700
711
  showExpand: boolean;
@@ -702,6 +713,119 @@ declare const VDataTableServer: vue.DefineComponent<{
702
713
  }>;
703
714
  declare type VDataTableServer = InstanceType<typeof VDataTableServer>;
704
715
 
716
+ declare const VDataTableFooter: vue.DefineComponent<{
717
+ prevIcon: {
718
+ type: StringConstructor;
719
+ default: string;
720
+ };
721
+ nextIcon: {
722
+ type: StringConstructor;
723
+ default: string;
724
+ };
725
+ firstIcon: {
726
+ type: StringConstructor;
727
+ default: string;
728
+ };
729
+ lastIcon: {
730
+ type: StringConstructor;
731
+ default: string;
732
+ };
733
+ itemsPerPageText: {
734
+ type: StringConstructor;
735
+ default: string;
736
+ };
737
+ pageText: {
738
+ type: StringConstructor;
739
+ default: string;
740
+ };
741
+ firstPageLabel: {
742
+ type: StringConstructor;
743
+ default: string;
744
+ };
745
+ prevPageLabel: {
746
+ type: StringConstructor;
747
+ default: string;
748
+ };
749
+ nextPageLabel: {
750
+ type: StringConstructor;
751
+ default: string;
752
+ };
753
+ lastPageLabel: {
754
+ type: StringConstructor;
755
+ default: string;
756
+ };
757
+ itemsPerPageOptions: {
758
+ type: PropType<InternalItem<any>[]>;
759
+ default: () => {
760
+ value: number;
761
+ title: string;
762
+ }[];
763
+ };
764
+ showCurrentPage: BooleanConstructor;
765
+ }, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
766
+ prevIcon: {
767
+ type: StringConstructor;
768
+ default: string;
769
+ };
770
+ nextIcon: {
771
+ type: StringConstructor;
772
+ default: string;
773
+ };
774
+ firstIcon: {
775
+ type: StringConstructor;
776
+ default: string;
777
+ };
778
+ lastIcon: {
779
+ type: StringConstructor;
780
+ default: string;
781
+ };
782
+ itemsPerPageText: {
783
+ type: StringConstructor;
784
+ default: string;
785
+ };
786
+ pageText: {
787
+ type: StringConstructor;
788
+ default: string;
789
+ };
790
+ firstPageLabel: {
791
+ type: StringConstructor;
792
+ default: string;
793
+ };
794
+ prevPageLabel: {
795
+ type: StringConstructor;
796
+ default: string;
797
+ };
798
+ nextPageLabel: {
799
+ type: StringConstructor;
800
+ default: string;
801
+ };
802
+ lastPageLabel: {
803
+ type: StringConstructor;
804
+ default: string;
805
+ };
806
+ itemsPerPageOptions: {
807
+ type: PropType<InternalItem<any>[]>;
808
+ default: () => {
809
+ value: number;
810
+ title: string;
811
+ }[];
812
+ };
813
+ showCurrentPage: BooleanConstructor;
814
+ }>>, {
815
+ itemsPerPageText: string;
816
+ pageText: string;
817
+ nextIcon: string;
818
+ prevIcon: string;
819
+ firstIcon: string;
820
+ lastIcon: string;
821
+ firstPageLabel: string;
822
+ prevPageLabel: string;
823
+ nextPageLabel: string;
824
+ lastPageLabel: string;
825
+ itemsPerPageOptions: InternalItem<any>[];
826
+ showCurrentPage: boolean;
827
+ }>;
828
+
705
829
  interface VVirtualScrollSlot<T> {
706
830
  item: T;
707
831
  index: number;
@@ -853,4 +977,4 @@ declare const VVirtualScroll: {
853
977
  });
854
978
  declare type VVirtualScroll = InstanceType<typeof VVirtualScroll>;
855
979
 
856
- export { VDataTable, VDataTableRow, VDataTableRows, VDataTableServer, VDataTableVirtual, VVirtualScroll };
980
+ export { VDataTable, VDataTableFooter, VDataTableRow, VDataTableRows, VDataTableServer, VDataTableVirtual, VVirtualScroll };
@@ -32,7 +32,12 @@ function createProvideFunction(data) {
32
32
  fallback,
33
33
  messages,
34
34
  // @ts-expect-error Type instantiation is excessively deep and possibly infinite
35
- t: i18n.t,
35
+ t: function (key) {
36
+ for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
37
+ params[_key - 1] = arguments[_key];
38
+ }
39
+ return i18n.t(key, params);
40
+ },
36
41
  n: i18n.n,
37
42
  provide: createProvideFunction({
38
43
  current,
@@ -56,7 +61,12 @@ export function createVueI18nAdapter(_ref) {
56
61
  current,
57
62
  fallback,
58
63
  messages,
59
- t: i18n.global.t,
64
+ t: function (key) {
65
+ for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
66
+ params[_key2 - 1] = arguments[_key2];
67
+ }
68
+ return i18n.global.t(key, params);
69
+ },
60
70
  n: i18n.global.n,
61
71
  provide: createProvideFunction({
62
72
  current,
@@ -1 +1 @@
1
- {"version":3,"file":"vue-i18n.mjs","names":["watch","useProxiedModel","useProvided","props","prop","provided","internal","value","v","createProvideFunction","data","current","fallback","messages","i18n","useI18n","locale","fallbackLocale","useScope","legacy","inheritLocale","name","t","n","provide","createVueI18nAdapter","global"],"sources":["../../../src/locale/adapters/vue-i18n.ts"],"sourcesContent":["import { watch } from 'vue'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\nimport type { Ref } from 'vue'\nimport type { LocaleInstance, LocaleMessages, LocaleOptions } from '@/composables/locale'\nimport type { I18n, useI18n } from 'vue-i18n'\n\ntype VueI18nAdapterParams = {\n i18n: I18n<{}, {}, {}, string, false>\n useI18n: typeof useI18n\n}\n\nfunction useProvided <T> (props: any, prop: string, provided: Ref<T>) {\n const internal = useProxiedModel(props, prop)\n\n internal.value = props[prop] ?? provided.value\n\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = v\n }\n })\n\n return internal as Ref<T>\n}\n\nfunction createProvideFunction (data: {\n current: Ref<string>\n fallback: Ref<string>\n messages: Ref<LocaleMessages>\n useI18n: typeof useI18n\n}) {\n return (props: LocaleOptions): LocaleInstance => {\n const current = useProvided(props, 'locale', data.current)\n const fallback = useProvided(props, 'fallback', data.fallback)\n const messages = useProvided(props, 'messages', data.messages)\n\n const i18n = data.useI18n({\n locale: current.value,\n fallbackLocale: fallback.value,\n messages: messages.value as any,\n useScope: 'local',\n legacy: false,\n inheritLocale: false,\n })\n\n watch(current, v => {\n i18n.locale.value = v\n })\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n // @ts-expect-error Type instantiation is excessively deep and possibly infinite\n t: i18n.t,\n n: i18n.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n: data.useI18n }),\n }\n }\n}\n\nexport function createVueI18nAdapter ({ i18n, useI18n }: VueI18nAdapterParams): LocaleInstance {\n const current = i18n.global.locale\n const fallback = i18n.global.fallbackLocale as Ref<any>\n const messages = i18n.global.messages\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n t: i18n.global.t,\n n: i18n.global.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n }),\n }\n}\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,KAAK;AAAA,SAClBC,eAAe;AAWxB,SAASC,WAAW,CAAMC,KAAU,EAAEC,IAAY,EAAEC,QAAgB,EAAE;EACpE,MAAMC,QAAQ,GAAGL,eAAe,CAACE,KAAK,EAAEC,IAAI,CAAC;EAE7CE,QAAQ,CAACC,KAAK,GAAGJ,KAAK,CAACC,IAAI,CAAC,IAAIC,QAAQ,CAACE,KAAK;EAE9CP,KAAK,CAACK,QAAQ,EAAEG,CAAC,IAAI;IACnB,IAAIL,KAAK,CAACC,IAAI,CAAC,IAAI,IAAI,EAAE;MACvBE,QAAQ,CAACC,KAAK,GAAGC,CAAC;IACpB;EACF,CAAC,CAAC;EAEF,OAAOF,QAAQ;AACjB;AAEA,SAASG,qBAAqB,CAAEC,IAK/B,EAAE;EACD,OAAQP,KAAoB,IAAqB;IAC/C,MAAMQ,OAAO,GAAGT,WAAW,CAACC,KAAK,EAAE,QAAQ,EAAEO,IAAI,CAACC,OAAO,CAAC;IAC1D,MAAMC,QAAQ,GAAGV,WAAW,CAACC,KAAK,EAAE,UAAU,EAAEO,IAAI,CAACE,QAAQ,CAAC;IAC9D,MAAMC,QAAQ,GAAGX,WAAW,CAACC,KAAK,EAAE,UAAU,EAAEO,IAAI,CAACG,QAAQ,CAAC;IAE9D,MAAMC,IAAI,GAAGJ,IAAI,CAACK,OAAO,CAAC;MACxBC,MAAM,EAAEL,OAAO,CAACJ,KAAK;MACrBU,cAAc,EAAEL,QAAQ,CAACL,KAAK;MAC9BM,QAAQ,EAAEA,QAAQ,CAACN,KAAY;MAC/BW,QAAQ,EAAE,OAAO;MACjBC,MAAM,EAAE,KAAK;MACbC,aAAa,EAAE;IACjB,CAAC,CAAC;IAEFpB,KAAK,CAACW,OAAO,EAAEH,CAAC,IAAI;MAClBM,IAAI,CAACE,MAAM,CAACT,KAAK,GAAGC,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO;MACLa,IAAI,EAAE,UAAU;MAChBV,OAAO;MACPC,QAAQ;MACRC,QAAQ;MACR;MACAS,CAAC,EAAER,IAAI,CAACQ,CAAC;MACTC,CAAC,EAAET,IAAI,CAACS,CAAC;MACTC,OAAO,EAAEf,qBAAqB,CAAC;QAAEE,OAAO;QAAEC,QAAQ;QAAEC,QAAQ;QAAEE,OAAO,EAAEL,IAAI,CAACK;MAAQ,CAAC;IACvF,CAAC;EACH,CAAC;AACH;AAEA,OAAO,SAASU,oBAAoB,OAA2D;EAAA,IAAzD;IAAEX,IAAI;IAAEC;EAA8B,CAAC;EAC3E,MAAMJ,OAAO,GAAGG,IAAI,CAACY,MAAM,CAACV,MAAM;EAClC,MAAMJ,QAAQ,GAAGE,IAAI,CAACY,MAAM,CAACT,cAA0B;EACvD,MAAMJ,QAAQ,GAAGC,IAAI,CAACY,MAAM,CAACb,QAAQ;EAErC,OAAO;IACLQ,IAAI,EAAE,UAAU;IAChBV,OAAO;IACPC,QAAQ;IACRC,QAAQ;IACRS,CAAC,EAAER,IAAI,CAACY,MAAM,CAACJ,CAAC;IAChBC,CAAC,EAAET,IAAI,CAACY,MAAM,CAACH,CAAC;IAChBC,OAAO,EAAEf,qBAAqB,CAAC;MAAEE,OAAO;MAAEC,QAAQ;MAAEC,QAAQ;MAAEE;IAAQ,CAAC;EACzE,CAAC;AACH"}
1
+ {"version":3,"file":"vue-i18n.mjs","names":["watch","useProxiedModel","useProvided","props","prop","provided","internal","value","v","createProvideFunction","data","current","fallback","messages","i18n","useI18n","locale","fallbackLocale","useScope","legacy","inheritLocale","name","t","key","params","n","provide","createVueI18nAdapter","global"],"sources":["../../../src/locale/adapters/vue-i18n.ts"],"sourcesContent":["import { watch } from 'vue'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\nimport type { Ref } from 'vue'\nimport type { LocaleInstance, LocaleMessages, LocaleOptions } from '@/composables/locale'\nimport type { I18n, useI18n } from 'vue-i18n'\n\ntype VueI18nAdapterParams = {\n i18n: I18n<{}, {}, {}, string, false>\n useI18n: typeof useI18n\n}\n\nfunction useProvided <T> (props: any, prop: string, provided: Ref<T>) {\n const internal = useProxiedModel(props, prop)\n\n internal.value = props[prop] ?? provided.value\n\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = v\n }\n })\n\n return internal as Ref<T>\n}\n\nfunction createProvideFunction (data: {\n current: Ref<string>\n fallback: Ref<string>\n messages: Ref<LocaleMessages>\n useI18n: typeof useI18n\n}) {\n return (props: LocaleOptions): LocaleInstance => {\n const current = useProvided(props, 'locale', data.current)\n const fallback = useProvided(props, 'fallback', data.fallback)\n const messages = useProvided(props, 'messages', data.messages)\n\n const i18n = data.useI18n({\n locale: current.value,\n fallbackLocale: fallback.value,\n messages: messages.value as any,\n useScope: 'local',\n legacy: false,\n inheritLocale: false,\n })\n\n watch(current, v => {\n i18n.locale.value = v\n })\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n // @ts-expect-error Type instantiation is excessively deep and possibly infinite\n t: (key: string, ...params: unknown[]) => i18n.t(key, params),\n n: i18n.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n: data.useI18n }),\n }\n }\n}\n\nexport function createVueI18nAdapter ({ i18n, useI18n }: VueI18nAdapterParams): LocaleInstance {\n const current = i18n.global.locale\n const fallback = i18n.global.fallbackLocale as Ref<any>\n const messages = i18n.global.messages\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n t: (key: string, ...params: unknown[]) => i18n.global.t(key, params),\n n: i18n.global.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n }),\n }\n}\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,KAAK;AAAA,SAClBC,eAAe;AAWxB,SAASC,WAAW,CAAMC,KAAU,EAAEC,IAAY,EAAEC,QAAgB,EAAE;EACpE,MAAMC,QAAQ,GAAGL,eAAe,CAACE,KAAK,EAAEC,IAAI,CAAC;EAE7CE,QAAQ,CAACC,KAAK,GAAGJ,KAAK,CAACC,IAAI,CAAC,IAAIC,QAAQ,CAACE,KAAK;EAE9CP,KAAK,CAACK,QAAQ,EAAEG,CAAC,IAAI;IACnB,IAAIL,KAAK,CAACC,IAAI,CAAC,IAAI,IAAI,EAAE;MACvBE,QAAQ,CAACC,KAAK,GAAGC,CAAC;IACpB;EACF,CAAC,CAAC;EAEF,OAAOF,QAAQ;AACjB;AAEA,SAASG,qBAAqB,CAAEC,IAK/B,EAAE;EACD,OAAQP,KAAoB,IAAqB;IAC/C,MAAMQ,OAAO,GAAGT,WAAW,CAACC,KAAK,EAAE,QAAQ,EAAEO,IAAI,CAACC,OAAO,CAAC;IAC1D,MAAMC,QAAQ,GAAGV,WAAW,CAACC,KAAK,EAAE,UAAU,EAAEO,IAAI,CAACE,QAAQ,CAAC;IAC9D,MAAMC,QAAQ,GAAGX,WAAW,CAACC,KAAK,EAAE,UAAU,EAAEO,IAAI,CAACG,QAAQ,CAAC;IAE9D,MAAMC,IAAI,GAAGJ,IAAI,CAACK,OAAO,CAAC;MACxBC,MAAM,EAAEL,OAAO,CAACJ,KAAK;MACrBU,cAAc,EAAEL,QAAQ,CAACL,KAAK;MAC9BM,QAAQ,EAAEA,QAAQ,CAACN,KAAY;MAC/BW,QAAQ,EAAE,OAAO;MACjBC,MAAM,EAAE,KAAK;MACbC,aAAa,EAAE;IACjB,CAAC,CAAC;IAEFpB,KAAK,CAACW,OAAO,EAAEH,CAAC,IAAI;MAClBM,IAAI,CAACE,MAAM,CAACT,KAAK,GAAGC,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO;MACLa,IAAI,EAAE,UAAU;MAChBV,OAAO;MACPC,QAAQ;MACRC,QAAQ;MACR;MACAS,CAAC,EAAE,UAACC,GAAW;QAAA,kCAAKC,MAAM;UAANA,MAAM;QAAA;QAAA,OAAgBV,IAAI,CAACQ,CAAC,CAACC,GAAG,EAAEC,MAAM,CAAC;MAAA;MAC7DC,CAAC,EAAEX,IAAI,CAACW,CAAC;MACTC,OAAO,EAAEjB,qBAAqB,CAAC;QAAEE,OAAO;QAAEC,QAAQ;QAAEC,QAAQ;QAAEE,OAAO,EAAEL,IAAI,CAACK;MAAQ,CAAC;IACvF,CAAC;EACH,CAAC;AACH;AAEA,OAAO,SAASY,oBAAoB,OAA2D;EAAA,IAAzD;IAAEb,IAAI;IAAEC;EAA8B,CAAC;EAC3E,MAAMJ,OAAO,GAAGG,IAAI,CAACc,MAAM,CAACZ,MAAM;EAClC,MAAMJ,QAAQ,GAAGE,IAAI,CAACc,MAAM,CAACX,cAA0B;EACvD,MAAMJ,QAAQ,GAAGC,IAAI,CAACc,MAAM,CAACf,QAAQ;EAErC,OAAO;IACLQ,IAAI,EAAE,UAAU;IAChBV,OAAO;IACPC,QAAQ;IACRC,QAAQ;IACRS,CAAC,EAAE,UAACC,GAAW;MAAA,mCAAKC,MAAM;QAANA,MAAM;MAAA;MAAA,OAAgBV,IAAI,CAACc,MAAM,CAACN,CAAC,CAACC,GAAG,EAAEC,MAAM,CAAC;IAAA;IACpEC,CAAC,EAAEX,IAAI,CAACc,MAAM,CAACH,CAAC;IAChBC,OAAO,EAAEjB,qBAAqB,CAAC;MAAEE,OAAO;MAAEC,QAAQ;MAAEC,QAAQ;MAAEE;IAAQ,CAAC;EACzE,CAAC;AACH"}