vuetify 3.4.0-beta.1 → 3.4.1
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/dist/json/attributes.json +1947 -1967
- package/dist/json/importMap.json +86 -86
- package/dist/json/tags.json +2 -7
- package/dist/json/web-types.json +3738 -3886
- package/dist/vuetify-labs.css +2203 -2195
- package/dist/vuetify-labs.d.ts +1977 -9281
- package/dist/vuetify-labs.esm.js +106 -90
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +106 -90
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1361 -1353
- package/dist/vuetify.d.ts +2031 -9325
- package/dist/vuetify.esm.js +106 -90
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +106 -90
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +75 -74
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.mts +0 -2
- package/lib/blueprints/md1.d.mts +0 -2
- package/lib/blueprints/md2.d.mts +0 -2
- package/lib/blueprints/md3.d.mts +0 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -3
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +74 -98
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/index.d.mts +44 -69
- package/lib/components/VBtn/VBtn.css +0 -1
- package/lib/components/VBtn/VBtn.mjs +1 -1
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/_variables.scss +1 -1
- package/lib/components/VBtn/index.d.mts +11 -11
- package/lib/components/VBtnGroup/VBtnGroup.css +0 -1
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.mts +45 -71
- package/lib/components/VCarousel/VCarousel.mjs +1 -1
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.mts +73 -513
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +100 -482
- package/lib/components/VChip/index.d.mts +15 -18
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/index.d.mts +49 -189
- package/lib/components/VCombobox/VCombobox.mjs +3 -3
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +74 -98
- package/lib/components/VDataIterator/index.d.mts +8 -6
- package/lib/components/VDataTable/VDataTable.css +3 -0
- package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTable.sass +2 -0
- package/lib/components/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.mjs +2 -2
- package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.mjs +4 -3
- package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/components/VDataTable/composables/items.mjs.map +1 -1
- package/lib/components/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/components/VDataTable/composables/select.mjs.map +1 -1
- package/lib/components/VDataTable/index.d.mts +431 -4162
- package/lib/components/VDataTable/types.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.css +4 -0
- package/lib/components/VDatePicker/VDatePicker.mjs +29 -22
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.sass +4 -0
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +3 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.mjs +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +32 -36
- package/lib/components/VDialog/VDialog.css +4 -1
- package/lib/components/VDialog/VDialog.sass +4 -3
- package/lib/components/VField/VField.mjs +1 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/index.d.mts +33 -41
- package/lib/components/VFileInput/index.d.mts +144 -385
- package/lib/components/VGrid/VSpacer.mjs +3 -0
- package/lib/components/VGrid/VSpacer.mjs.map +1 -1
- package/lib/components/VImg/VImg.mjs +10 -2
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VInput/VInput.mjs +1 -1
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.mts +72 -154
- package/lib/components/VItemGroup/VItemGroup.mjs +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/index.d.mts +49 -189
- package/lib/components/VList/VList.mjs +2 -2
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +58 -95
- package/lib/components/VOtpInput/index.d.mts +8 -11
- package/lib/components/VRadio/index.d.mts +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.mts +77 -211
- package/lib/components/VRangeSlider/index.d.mts +22 -25
- package/lib/components/VSelect/VSelect.mjs +2 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +67 -91
- package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +9 -18
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/index.d.mts +46 -68
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +47 -101
- package/lib/components/VSlider/index.d.mts +22 -25
- 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/VSwitch/VSwitch.mjs +7 -5
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.mts +90 -303
- package/lib/components/VTextField/index.d.mts +173 -451
- package/lib/components/VTextarea/index.d.mts +144 -385
- package/lib/components/VValidation/VValidation.mjs +2 -2
- package/lib/components/VValidation/VValidation.mjs.map +1 -1
- package/lib/components/VValidation/index.d.mts +88 -359
- package/lib/components/VWindow/VWindow.mjs +1 -1
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/index.d.mts +58 -245
- package/lib/components/index.d.mts +1974 -9264
- package/lib/composables/date/DateAdapter.mjs.map +1 -1
- package/lib/composables/date/adapters/vuetify.mjs +1 -13
- package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
- package/lib/composables/date/date.mjs +1 -1
- package/lib/composables/date/date.mjs.map +1 -1
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/virtual.mjs +11 -13
- package/lib/composables/virtual.mjs.map +1 -1
- 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 +24 -28
- package/lib/labs/VConfirmEdit/index.d.mts +0 -10
- package/lib/labs/components.d.mts +0 -10
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.mjs","names":["useProxiedModel","computed","inject","provide","deepEqual","propsFactory","wrapInArray","singleSelectStrategy","showSelectAll","allSelected","select","_ref","items","value","Set","selectAll","_ref2","selected","pageSelectStrategy","_ref3","currentPage","_ref4","item","add","delete","_ref5","allSelectStrategy","_ref6","allItems","_ref7","_ref8","makeDataTableSelectProps","showSelect","Boolean","selectStrategy","type","String","Object","default","modelValue","Array","valueComparator","Function","VDataTableSelectionSymbol","Symbol","for","provideSelection","props","_ref9","v","map","find","values","allSelectable","filter","selectable","currentPageSelectable","isSelected","every","has","isSomeSelected","some","newSelected","toggleSelect","someSelected","size","length","data","useSelection","Error"],"sources":["../../../../src/components/VDataTable/composables/select.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide } from 'vue'\nimport { deepEqual, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItemProps } from './items'\n\nexport interface SelectableItem {\n value: any\n selectable: boolean\n}\n\nexport interface DataTableSelectStrategy {\n showSelectAll: boolean\n allSelected: (data: {\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n }) => SelectableItem[]\n select: (data: {\n items: SelectableItem[]\n value: boolean\n selected: Set<unknown>\n }) => Set<unknown>\n selectAll: (data: {\n value: boolean\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n selected: Set<unknown>\n }) => Set<unknown>\n}\n\ntype SelectionProps = Pick<DataTableItemProps, 'itemValue'> & {\n modelValue: readonly any[]\n selectStrategy: 'single' | 'page' | 'all'\n valueComparator: typeof deepEqual\n 'onUpdate:modelValue': ((value: any[]) => void) | undefined\n}\n\nconst singleSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: ({ items, value }) => {\n return new Set(value ? [items[0]?.value] : [])\n },\n selectAll: ({ selected }) => selected,\n}\n\nconst pageSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ currentPage }) => currentPage,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, currentPage, selected }) => pageSelectStrategy.select({ items: currentPage, value, selected }),\n}\n\nconst allSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ allItems }) => allItems,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, allItems, selected }) => allSelectStrategy.select({ items: allItems, value, selected }),\n}\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object] as PropType<'single' | 'page' | 'all'>,\n default: 'page',\n },\n modelValue: {\n type: Array as PropType<readonly any[]>,\n default: () => ([]),\n },\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n}, 'DataTable-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey<ReturnType<typeof provideSelection>> = Symbol.for('vuetify:data-table-selection')\n\nexport function provideSelection (\n props: SelectionProps,\n { allItems, currentPage }: { allItems: Ref<SelectableItem[]>, currentPage: Ref<SelectableItem[]> }\n) {\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(wrapInArray(v).map(v => {\n return allItems.value.find(item => props.valueComparator(v, item.value))?.value ?? v\n }))\n }, v => {\n return [...v.values()]\n })\n\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable))\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable))\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single': return singleSelectStrategy\n case 'all': return allSelectStrategy\n case 'page':\n default: return pageSelectStrategy\n }\n })\n\n function isSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).some(item => selected.value.has(item.value))\n }\n\n function select (items: SelectableItem[], value: boolean) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n function toggleSelect (item: SelectableItem) {\n select([item], !isSelected([item]))\n }\n\n function selectAll (value: boolean) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n const someSelected = computed(() => selected.value.size > 0)\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n })\n return !!items.length && isSelected(items)\n })\n\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll: selectStrategy.value.showSelectAll,\n }\n\n provide(VDataTableSelectionSymbol, data)\n\n return data\n}\n\nexport function useSelection () {\n const data = inject(VDataTableSelectionSymbol)\n\n if (!data) throw new Error('Missing selection!')\n\n return data\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"select.mjs","names":["useProxiedModel","computed","inject","provide","deepEqual","propsFactory","wrapInArray","singleSelectStrategy","showSelectAll","allSelected","select","_ref","items","value","Set","selectAll","_ref2","selected","pageSelectStrategy","_ref3","currentPage","_ref4","item","add","delete","_ref5","allSelectStrategy","_ref6","allItems","_ref7","_ref8","makeDataTableSelectProps","showSelect","Boolean","selectStrategy","type","String","Object","default","modelValue","Array","valueComparator","Function","VDataTableSelectionSymbol","Symbol","for","provideSelection","props","_ref9","v","map","find","values","allSelectable","filter","selectable","currentPageSelectable","isSelected","every","has","isSomeSelected","some","newSelected","toggleSelect","someSelected","size","length","data","useSelection","Error"],"sources":["../../../../src/components/VDataTable/composables/select.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide } from 'vue'\nimport { deepEqual, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItemProps } from './items'\nimport type { EventProp } from '@/util'\n\nexport interface SelectableItem {\n value: any\n selectable: boolean\n}\n\nexport interface DataTableSelectStrategy {\n showSelectAll: boolean\n allSelected: (data: {\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n }) => SelectableItem[]\n select: (data: {\n items: SelectableItem[]\n value: boolean\n selected: Set<unknown>\n }) => Set<unknown>\n selectAll: (data: {\n value: boolean\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n selected: Set<unknown>\n }) => Set<unknown>\n}\n\ntype SelectionProps = Pick<DataTableItemProps, 'itemValue'> & {\n modelValue: readonly any[]\n selectStrategy: 'single' | 'page' | 'all'\n valueComparator: typeof deepEqual\n 'onUpdate:modelValue': EventProp<[any[]]> | undefined\n}\n\nconst singleSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: ({ items, value }) => {\n return new Set(value ? [items[0]?.value] : [])\n },\n selectAll: ({ selected }) => selected,\n}\n\nconst pageSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ currentPage }) => currentPage,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, currentPage, selected }) => pageSelectStrategy.select({ items: currentPage, value, selected }),\n}\n\nconst allSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ allItems }) => allItems,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, allItems, selected }) => allSelectStrategy.select({ items: allItems, value, selected }),\n}\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object] as PropType<'single' | 'page' | 'all'>,\n default: 'page',\n },\n modelValue: {\n type: Array as PropType<readonly any[]>,\n default: () => ([]),\n },\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n}, 'DataTable-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey<ReturnType<typeof provideSelection>> = Symbol.for('vuetify:data-table-selection')\n\nexport function provideSelection (\n props: SelectionProps,\n { allItems, currentPage }: { allItems: Ref<SelectableItem[]>, currentPage: Ref<SelectableItem[]> }\n) {\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(wrapInArray(v).map(v => {\n return allItems.value.find(item => props.valueComparator(v, item.value))?.value ?? v\n }))\n }, v => {\n return [...v.values()]\n })\n\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable))\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable))\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single': return singleSelectStrategy\n case 'all': return allSelectStrategy\n case 'page':\n default: return pageSelectStrategy\n }\n })\n\n function isSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).some(item => selected.value.has(item.value))\n }\n\n function select (items: SelectableItem[], value: boolean) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n function toggleSelect (item: SelectableItem) {\n select([item], !isSelected([item]))\n }\n\n function selectAll (value: boolean) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n const someSelected = computed(() => selected.value.size > 0)\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n })\n return !!items.length && isSelected(items)\n })\n\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll: selectStrategy.value.showSelectAll,\n }\n\n provide(VDataTableSelectionSymbol, data)\n\n return data\n}\n\nexport function useSelection () {\n const data = inject(VDataTableSelectionSymbol)\n\n if (!data) throw new Error('Missing selection!')\n\n return data\n}\n"],"mappings":"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"}
|