vuetify 3.11.0 → 3.11.2
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 +2912 -2904
- package/dist/json/importMap-labs.json +30 -30
- package/dist/json/importMap.json +198 -198
- package/dist/json/tags.json +2 -0
- package/dist/json/web-types.json +4995 -4976
- package/dist/vuetify-labs.cjs +41 -31
- package/dist/vuetify-labs.css +5310 -5314
- package/dist/vuetify-labs.d.ts +85 -72
- package/dist/vuetify-labs.esm.js +41 -31
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +41 -31
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +37 -27
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4184 -4185
- package/dist/vuetify.d.ts +85 -72
- package/dist/vuetify.esm.js +37 -27
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +37 -27
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +25 -21
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.js +1 -1
- package/lib/components/VDataTable/VDataTable.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.d.ts +10 -0
- package/lib/components/VDataTable/VDataTableHeaders.js +7 -7
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +8 -3
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDialog/__test__/VDialog.spec.browser.js +5 -9
- package/lib/components/VDialog/__test__/VDialog.spec.browser.js.map +1 -1
- package/lib/components/VHotkey/_variables.scss +1 -1
- package/lib/components/VNumberInput/VNumberInput.js +1 -1
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.js +4 -1
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VTabs/VTab.d.ts +13 -0
- package/lib/components/VTabs/VTab.js +3 -2
- package/lib/components/VTabs/VTab.js.map +1 -1
- package/lib/components/VTabs/VTabs.css +6 -7
- package/lib/components/VTabs/VTabs.js +1 -0
- package/lib/components/VTabs/VTabs.js.map +1 -1
- package/lib/components/VTabs/VTabs.sass +6 -7
- package/lib/components/VTextField/VTextField.js +8 -10
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/composables/autofocus.js +3 -1
- package/lib/composables/autofocus.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +72 -72
- package/lib/framework.js +1 -1
- package/lib/labs/VMaskInput/VMaskInput.js +4 -4
- package/lib/labs/VMaskInput/VMaskInput.js.map +1 -1
- package/lib/labs/VStepperVertical/VStepperVerticalItem.css +0 -3
- package/lib/labs/VStepperVertical/VStepperVerticalItem.sass +0 -3
- package/package.json +26 -26
|
@@ -33,7 +33,7 @@ export const makeDataTableProps = propsFactory({
|
|
|
33
33
|
...makeDataTableItemsProps(),
|
|
34
34
|
...makeDataTableSelectProps(),
|
|
35
35
|
...makeDataTableSortProps(),
|
|
36
|
-
...omit(makeVDataTableHeadersProps(), ['multiSort']),
|
|
36
|
+
...omit(makeVDataTableHeadersProps(), ['multiSort', 'initialSortOrder']),
|
|
37
37
|
...makeVTableProps()
|
|
38
38
|
}, 'DataTable');
|
|
39
39
|
export const makeVDataTableProps = propsFactory({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDataTable.js","names":["makeVDataTableFooterProps","VDataTableFooter","makeVDataTableHeadersProps","VDataTableHeaders","makeVDataTableRowsProps","VDataTableRows","VDivider","makeVTableProps","VTable","makeDataTableExpandProps","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","makeDataTableHeaderProps","makeDataTableItemsProps","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","createSort","makeDataTableSortProps","provideSort","useSortedItems","provideDefaults","makeFilterProps","useFilter","computed","toRef","toRefs","genericComponent","omit","propsFactory","useRender","makeDataTableProps","hideDefaultBody","Boolean","hideDefaultFooter","hideDefaultHeader","width","String","Number","search","makeVDataTableProps","VDataTable","name","props","emits","value","setup","_ref","attrs","slots","groupBy","initialSortOrder","sortBy","multiSort","mustSort","page","itemsPerPage","disableSort","columns","headers","sortFunctions","sortRawFunctions","filterFunctions","showSelect","showExpand","items","filteredItems","transform","item","customKeyFilter","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","raw","flatItems","itemsLength","length","startIndex","stopIndex","pageCount","setItemsPerPage","paginatedItems","paginatedItemsWithoutGroups","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","allItems","currentPage","isExpanded","toggleExpand","hideNoData","noDataText","loading","loadingText","slotProps","map","internalItems","groupedItems","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","fixedHeader","sticky","top","default","_createElementVNode","_Fragment","colgroup","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/components/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { makeVDataTableHeadersProps, VDataTableHeaders } from './VDataTableHeaders'\nimport { makeVDataTableRowsProps, VDataTableRows } from './VDataTableRows'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVTableProps, VTable } from '@/components/VTable/VTable'\n\n// Composables\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemsProps, useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Utilities\nimport { computed, toRef, toRefs } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly, UnwrapRef } from 'vue'\nimport type { Group, GroupSummary } from './composables/group'\nimport type { CellProps, DataTableHeader, DataTableItem, InternalDataTableHeader, RowProps } from './types'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport type VDataTableSlotProps<T> = {\n page: number\n itemsPerPage: number\n sortBy: UnwrapRef<ReturnType<typeof provideSort>['sortBy']>\n pageCount: number\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n setItemsPerPage: ReturnType<typeof providePagination>['setItemsPerPage']\n someSelected: boolean\n allSelected: boolean\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n select: ReturnType<typeof provideSelection>['select']\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isGroupOpen: ReturnType<typeof provideGroupBy>['isGroupOpen']\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n items: readonly T[]\n internalItems: readonly DataTableItem[]\n groupedItems: readonly (DataTableItem<T> | Group<DataTableItem<T>> | GroupSummary<DataTableItem<T>>)[]\n columns: InternalDataTableHeader[]\n headers: InternalDataTableHeader[][]\n}\n\nexport type VDataTableSlots<T> = VDataTableRowsSlots<T> & VDataTableHeadersSlots & {\n default: VDataTableSlotProps<T>\n colgroup: VDataTableSlotProps<T>\n top: VDataTableSlotProps<T>\n body: VDataTableSlotProps<T>\n tbody: VDataTableSlotProps<T>\n thead: VDataTableSlotProps<T>\n tfoot: VDataTableSlotProps<T>\n bottom: VDataTableSlotProps<T>\n 'body.prepend': VDataTableSlotProps<T>\n 'body.append': VDataTableSlotProps<T>\n 'footer.prepend': never\n}\n\nexport const makeDataTableProps = propsFactory({\n ...makeVDataTableRowsProps(),\n\n hideDefaultBody: Boolean,\n hideDefaultFooter: Boolean,\n hideDefaultHeader: Boolean,\n width: [String, Number],\n search: String,\n\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...omit(makeVDataTableHeadersProps(), ['multiSort']),\n ...makeVTableProps(),\n}, 'DataTable')\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeFilterProps(),\n ...makeVDataTableFooterProps(),\n}, 'VDataTable')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTable = genericComponent<new <T extends readonly any[], V>(\n props: {\n items?: T\n itemValue?: SelectItemKey<ItemType<T>>\n rowProps?: RowProps<ItemType<T>>\n cellProps?: CellProps<ItemType<T>>\n itemSelectable?: SelectItemKey<ItemType<T>>\n headers?: DeepReadonly<DataTableHeader<ItemType<T>>[]>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableSlots<ItemType<T>>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTable',\n\n props: makeVDataTableProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => 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 'update:currentItems': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { initialSortOrder, sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n const { disableSort } = toRefs(props)\n\n const {\n columns,\n headers,\n sortFunctions,\n sortRawFunctions,\n filterFunctions,\n } = 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 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({ initialSortOrder, sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy, disableSort })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({ ...item.raw, ...item.columns }),\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary'])\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex, pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected,\n } = provideSelection(props, { allItems: items, currentPage: paginatedItemsWithoutGroups })\n\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\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<VDataTableSlotProps<any>>(() => ({\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: paginatedItemsWithoutGroups.value.map(item => item.raw),\n internalItems: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props)\n const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']))\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--show-select': props.showSelect,\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n fixedHeader={ props.fixedHeader || props.sticky }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n <thead key=\"thead\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n multiSort={ !!props.multiSort }\n v-slots={ slots }\n />\n </thead>\n )}\n { slots.thead?.(slotProps.value) }\n { !props.hideDefaultBody && (\n <tbody>\n { slots['body.prepend']?.(slotProps.value) }\n { slots.body ? slots.body(slotProps.value) : (\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ paginatedItems.value }\n v-slots={ slots }\n />\n )}\n { slots['body.append']?.(slotProps.value) }\n </tbody>\n )}\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </>\n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && (\n <>\n <VDivider />\n\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n </>\n ),\n }}\n </VTable>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VDataTable.js","names":["makeVDataTableFooterProps","VDataTableFooter","makeVDataTableHeadersProps","VDataTableHeaders","makeVDataTableRowsProps","VDataTableRows","VDivider","makeVTableProps","VTable","makeDataTableExpandProps","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","makeDataTableHeaderProps","makeDataTableItemsProps","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","createSort","makeDataTableSortProps","provideSort","useSortedItems","provideDefaults","makeFilterProps","useFilter","computed","toRef","toRefs","genericComponent","omit","propsFactory","useRender","makeDataTableProps","hideDefaultBody","Boolean","hideDefaultFooter","hideDefaultHeader","width","String","Number","search","makeVDataTableProps","VDataTable","name","props","emits","value","setup","_ref","attrs","slots","groupBy","initialSortOrder","sortBy","multiSort","mustSort","page","itemsPerPage","disableSort","columns","headers","sortFunctions","sortRawFunctions","filterFunctions","showSelect","showExpand","items","filteredItems","transform","item","customKeyFilter","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","raw","flatItems","itemsLength","length","startIndex","stopIndex","pageCount","setItemsPerPage","paginatedItems","paginatedItemsWithoutGroups","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","allItems","currentPage","isExpanded","toggleExpand","hideNoData","noDataText","loading","loadingText","slotProps","map","internalItems","groupedItems","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","fixedHeader","sticky","top","default","_createElementVNode","_Fragment","colgroup","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/components/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { makeVDataTableHeadersProps, VDataTableHeaders } from './VDataTableHeaders'\nimport { makeVDataTableRowsProps, VDataTableRows } from './VDataTableRows'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVTableProps, VTable } from '@/components/VTable/VTable'\n\n// Composables\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemsProps, useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Utilities\nimport { computed, toRef, toRefs } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly, UnwrapRef } from 'vue'\nimport type { Group, GroupSummary } from './composables/group'\nimport type { CellProps, DataTableHeader, DataTableItem, InternalDataTableHeader, RowProps } from './types'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport type VDataTableSlotProps<T> = {\n page: number\n itemsPerPage: number\n sortBy: UnwrapRef<ReturnType<typeof provideSort>['sortBy']>\n pageCount: number\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n setItemsPerPage: ReturnType<typeof providePagination>['setItemsPerPage']\n someSelected: boolean\n allSelected: boolean\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n select: ReturnType<typeof provideSelection>['select']\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isGroupOpen: ReturnType<typeof provideGroupBy>['isGroupOpen']\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n items: readonly T[]\n internalItems: readonly DataTableItem[]\n groupedItems: readonly (DataTableItem<T> | Group<DataTableItem<T>> | GroupSummary<DataTableItem<T>>)[]\n columns: InternalDataTableHeader[]\n headers: InternalDataTableHeader[][]\n}\n\nexport type VDataTableSlots<T> = VDataTableRowsSlots<T> & VDataTableHeadersSlots & {\n default: VDataTableSlotProps<T>\n colgroup: VDataTableSlotProps<T>\n top: VDataTableSlotProps<T>\n body: VDataTableSlotProps<T>\n tbody: VDataTableSlotProps<T>\n thead: VDataTableSlotProps<T>\n tfoot: VDataTableSlotProps<T>\n bottom: VDataTableSlotProps<T>\n 'body.prepend': VDataTableSlotProps<T>\n 'body.append': VDataTableSlotProps<T>\n 'footer.prepend': never\n}\n\nexport const makeDataTableProps = propsFactory({\n ...makeVDataTableRowsProps(),\n\n hideDefaultBody: Boolean,\n hideDefaultFooter: Boolean,\n hideDefaultHeader: Boolean,\n width: [String, Number],\n search: String,\n\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...omit(makeVDataTableHeadersProps(), ['multiSort', 'initialSortOrder']),\n ...makeVTableProps(),\n}, 'DataTable')\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeFilterProps(),\n ...makeVDataTableFooterProps(),\n}, 'VDataTable')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTable = genericComponent<new <T extends readonly any[], V>(\n props: {\n items?: T\n itemValue?: SelectItemKey<ItemType<T>>\n rowProps?: RowProps<ItemType<T>>\n cellProps?: CellProps<ItemType<T>>\n itemSelectable?: SelectItemKey<ItemType<T>>\n headers?: DeepReadonly<DataTableHeader<ItemType<T>>[]>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableSlots<ItemType<T>>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTable',\n\n props: makeVDataTableProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => 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 'update:currentItems': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { initialSortOrder, sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n const { disableSort } = toRefs(props)\n\n const {\n columns,\n headers,\n sortFunctions,\n sortRawFunctions,\n filterFunctions,\n } = 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 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({ initialSortOrder, sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy, disableSort })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({ ...item.raw, ...item.columns }),\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary'])\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex, pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected,\n } = provideSelection(props, { allItems: items, currentPage: paginatedItemsWithoutGroups })\n\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\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<VDataTableSlotProps<any>>(() => ({\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: paginatedItemsWithoutGroups.value.map(item => item.raw),\n internalItems: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props)\n const dataTableHeadersProps = VDataTableHeaders.filterProps(omit(props, ['multiSort']))\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--show-select': props.showSelect,\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n fixedHeader={ props.fixedHeader || props.sticky }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n <thead key=\"thead\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n multiSort={ !!props.multiSort }\n v-slots={ slots }\n />\n </thead>\n )}\n { slots.thead?.(slotProps.value) }\n { !props.hideDefaultBody && (\n <tbody>\n { slots['body.prepend']?.(slotProps.value) }\n { slots.body ? slots.body(slotProps.value) : (\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ paginatedItems.value }\n v-slots={ slots }\n />\n )}\n { slots['body.append']?.(slotProps.value) }\n </tbody>\n )}\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </>\n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && (\n <>\n <VDivider />\n\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n </>\n ),\n }}\n </VTable>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -43,6 +43,7 @@ export declare const makeVDataTableHeadersProps: <Defaults extends {
|
|
|
43
43
|
disableSort?: unknown;
|
|
44
44
|
fixedHeader?: unknown;
|
|
45
45
|
multiSort?: unknown;
|
|
46
|
+
initialSortOrder?: unknown;
|
|
46
47
|
sortAscIcon?: unknown;
|
|
47
48
|
sortDescIcon?: unknown;
|
|
48
49
|
headerProps?: unknown;
|
|
@@ -94,6 +95,10 @@ export declare const makeVDataTableHeadersProps: <Defaults extends {
|
|
|
94
95
|
type: PropType<unknown extends Defaults["multiSort"] ? boolean : boolean | Defaults["multiSort"]>;
|
|
95
96
|
default: unknown extends Defaults["multiSort"] ? boolean : boolean | Defaults["multiSort"];
|
|
96
97
|
};
|
|
98
|
+
initialSortOrder: unknown extends Defaults["initialSortOrder"] ? PropType<"asc" | "desc"> : {
|
|
99
|
+
type: PropType<unknown extends Defaults["initialSortOrder"] ? "asc" | "desc" : "asc" | "desc" | Defaults["initialSortOrder"]>;
|
|
100
|
+
default: unknown extends Defaults["initialSortOrder"] ? "asc" | "desc" : Defaults["initialSortOrder"] | NonNullable<"asc" | "desc">;
|
|
101
|
+
};
|
|
97
102
|
sortAscIcon: unknown extends Defaults["sortAscIcon"] ? {
|
|
98
103
|
type: PropType<IconValue>;
|
|
99
104
|
default: string;
|
|
@@ -141,6 +146,7 @@ export declare const VDataTableHeaders: {
|
|
|
141
146
|
mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
|
|
142
147
|
loading?: string | boolean | undefined;
|
|
143
148
|
color?: string | undefined;
|
|
149
|
+
initialSortOrder?: "asc" | "desc" | undefined;
|
|
144
150
|
headerProps?: Record<string, any> | undefined;
|
|
145
151
|
} & {
|
|
146
152
|
$children?: {
|
|
@@ -210,6 +216,7 @@ export declare const VDataTableHeaders: {
|
|
|
210
216
|
mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
|
|
211
217
|
loading?: string | boolean | undefined;
|
|
212
218
|
color?: string | undefined;
|
|
219
|
+
initialSortOrder?: "asc" | "desc" | undefined;
|
|
213
220
|
headerProps?: Record<string, any> | undefined;
|
|
214
221
|
} & {
|
|
215
222
|
$children?: {
|
|
@@ -260,6 +267,7 @@ export declare const VDataTableHeaders: {
|
|
|
260
267
|
mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
|
|
261
268
|
loading?: string | boolean | undefined;
|
|
262
269
|
color?: string | undefined;
|
|
270
|
+
initialSortOrder?: "asc" | "desc" | undefined;
|
|
263
271
|
headerProps?: Record<string, any> | undefined;
|
|
264
272
|
} & {
|
|
265
273
|
$children?: {
|
|
@@ -325,6 +333,7 @@ export declare const VDataTableHeaders: {
|
|
|
325
333
|
disableSort: BooleanConstructor;
|
|
326
334
|
fixedHeader: BooleanConstructor;
|
|
327
335
|
multiSort: BooleanConstructor;
|
|
336
|
+
initialSortOrder: PropType<"asc" | "desc">;
|
|
328
337
|
sortAscIcon: {
|
|
329
338
|
type: PropType<IconValue>;
|
|
330
339
|
default: string;
|
|
@@ -353,6 +362,7 @@ export declare const VDataTableHeaders: {
|
|
|
353
362
|
disableSort: BooleanConstructor;
|
|
354
363
|
fixedHeader: BooleanConstructor;
|
|
355
364
|
multiSort: BooleanConstructor;
|
|
365
|
+
initialSortOrder: PropType<"asc" | "desc">;
|
|
356
366
|
sortAscIcon: {
|
|
357
367
|
type: PropType<IconValue>;
|
|
358
368
|
default: string;
|
|
@@ -21,6 +21,7 @@ export const makeVDataTableHeadersProps = propsFactory({
|
|
|
21
21
|
disableSort: Boolean,
|
|
22
22
|
fixedHeader: Boolean,
|
|
23
23
|
multiSort: Boolean,
|
|
24
|
+
initialSortOrder: String,
|
|
24
25
|
sortAscIcon: {
|
|
25
26
|
type: IconValue,
|
|
26
27
|
default: '$sortAsc'
|
|
@@ -83,8 +84,7 @@ export const VDataTableHeaders = genericComponent()({
|
|
|
83
84
|
}
|
|
84
85
|
function getSortIcon(column) {
|
|
85
86
|
const item = sortBy.value.find(item => item.key === column.key);
|
|
86
|
-
|
|
87
|
-
return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon;
|
|
87
|
+
return !item && props.initialSortOrder === 'asc' || item?.order === 'asc' ? props.sortAscIcon : props.sortDescIcon;
|
|
88
88
|
}
|
|
89
89
|
const {
|
|
90
90
|
backgroundColorClasses,
|
|
@@ -184,6 +184,7 @@ export const VDataTableHeaders = genericComponent()({
|
|
|
184
184
|
const displayItems = computed(() => {
|
|
185
185
|
return columns.value.filter(column => column?.sortable && !props.disableSort);
|
|
186
186
|
});
|
|
187
|
+
const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');
|
|
187
188
|
return _createVNode(VDataTableColumn, _mergeProps({
|
|
188
189
|
"tag": "th",
|
|
189
190
|
"class": [...headerCellClasses.value],
|
|
@@ -201,16 +202,15 @@ export const VDataTableHeaders = genericComponent()({
|
|
|
201
202
|
"label": t('$vuetify.dataTable.sortBy'),
|
|
202
203
|
"multiple": props.multiSort,
|
|
203
204
|
"variant": "underlined",
|
|
204
|
-
"onClick:clear": () => sortBy.value = []
|
|
205
|
-
"onClick:append": () => selectAll(!allSelected.value)
|
|
205
|
+
"onClick:clear": () => sortBy.value = []
|
|
206
206
|
}, {
|
|
207
|
-
append: () => _createVNode(VCheckboxBtn, {
|
|
207
|
+
append: showSelectColumn ? () => _createVNode(VCheckboxBtn, {
|
|
208
208
|
"color": props.color,
|
|
209
209
|
"density": "compact",
|
|
210
210
|
"modelValue": allSelected.value,
|
|
211
211
|
"indeterminate": someSelected.value && !allSelected.value,
|
|
212
|
-
"onUpdate:modelValue": selectAll
|
|
213
|
-
}, null),
|
|
212
|
+
"onUpdate:modelValue": () => selectAll(!allSelected.value)
|
|
213
|
+
}, null) : undefined,
|
|
214
214
|
chip: props => _createVNode(VChip, {
|
|
215
215
|
"onClick": props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined,
|
|
216
216
|
"onMousedown": e => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDataTableHeaders.js","names":["VDataTableColumn","VCheckboxBtn","VChip","VIcon","VSelect","useHeaders","useSelection","useSort","useBackgroundColor","makeDensityProps","makeDisplayProps","useDisplay","IconValue","LoaderSlot","makeLoaderProps","useLoader","useLocale","computed","mergeProps","convertToUnit","genericComponent","propsFactory","useRender","makeVDataTableHeadersProps","color","String","disableSort","Boolean","fixedHeader","multiSort","sortAscIcon","type","default","sortDescIcon","headerProps","Object","sticky","VDataTableHeaders","name","props","setup","_ref","slots","t","toggleSort","sortBy","isSorted","someSelected","allSelected","selectAll","showSelectAll","columns","headers","loaderClasses","getFixedStyles","column","y","fixed","undefined","fixedSide","position","left","fixedOffset","right","fixedEndOffset","top","handleEnterKeyPress","event","key","getSortIcon","item","value","find","order","backgroundColorClasses","backgroundColorStyles","displayClasses","mobile","slotProps","headerCellClasses","VDataTableHeaderCell","_ref2","x","noPadding","isEmpty","width","title","_createVNode","_mergeProps","align","sortable","minWidth","maxWidth","colspan","rowspan","nowrap","lastFixed","firstFixedEnd","columnSlotName","columnSlotProps","density","_createElementVNode","_normalizeClass","_normalizeStyle","findIndex","VDataTableMobileHeaderCell","displayItems","filter","length","onClick:clear","onClick:append","append","chip","raw","e","preventDefault","stopPropagation","_Fragment","map","row","loading","loader"],"sources":["../../../src/components/VDataTable/VDataTableHeaders.tsx"],"sourcesContent":["// Components\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VIcon } from '@/components/VIcon'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, mergeProps } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType, UnwrapRef } from 'vue'\nimport type { provideSelection } from './composables/select'\nimport type { provideSort } from './composables/sort'\nimport type { InternalDataTableHeader } from './types'\nimport type { ItemProps } from '@/composables/list-items'\nimport type { LoaderSlotProps } from '@/composables/loader'\n\nexport type HeadersSlotProps = {\n headers: InternalDataTableHeader[][]\n columns: InternalDataTableHeader[]\n sortBy: UnwrapRef<ReturnType<typeof provideSort>['sortBy']>\n someSelected: UnwrapRef<ReturnType<typeof provideSelection>['someSelected']>\n allSelected: UnwrapRef<ReturnType<typeof provideSelection>['allSelected']>\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n getSortIcon: (column: InternalDataTableHeader) => IconValue\n isSorted: ReturnType<typeof provideSort>['isSorted']\n}\n\nexport type VDataTableHeaderCellColumnSlotProps = {\n column: InternalDataTableHeader\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n isSorted: ReturnType<typeof provideSort>['isSorted']\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n sortBy: UnwrapRef<ReturnType<typeof provideSort>['sortBy']>\n someSelected: UnwrapRef<ReturnType<typeof provideSelection>['someSelected']>\n allSelected: UnwrapRef<ReturnType<typeof provideSelection>['allSelected']>\n getSortIcon: (column: InternalDataTableHeader) => IconValue\n}\n\nexport type VDataTableHeadersSlots = {\n headers: HeadersSlotProps\n loader: LoaderSlotProps\n 'header.data-table-select': VDataTableHeaderCellColumnSlotProps\n 'header.data-table-expand': VDataTableHeaderCellColumnSlotProps\n} & { [key: `header.${string}`]: VDataTableHeaderCellColumnSlotProps }\n\nexport const makeVDataTableHeadersProps = propsFactory({\n color: String,\n disableSort: Boolean,\n fixedHeader: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n headerProps: {\n type: Object as PropType<Record<string, any>>,\n },\n\n /** @deprecated */\n sticky: Boolean,\n\n ...makeDensityProps(),\n ...makeDisplayProps(),\n ...makeLoaderProps(),\n}, 'VDataTableHeaders')\n\nexport const VDataTableHeaders = genericComponent<VDataTableHeadersSlots>()({\n name: 'VDataTableHeaders',\n\n props: makeVDataTableHeadersProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { toggleSort, sortBy, isSorted } = useSort()\n const { someSelected, allSelected, selectAll, showSelectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n function getFixedStyles (column: InternalDataTableHeader, y: number): CSSProperties | undefined {\n if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined\n\n const fixedSide = typeof column.fixed === 'string' ? column.fixed\n : column.fixed ? 'start'\n : 'none'\n\n return {\n position: 'sticky',\n left: fixedSide === 'start' ? convertToUnit(column.fixedOffset) : undefined,\n right: fixedSide === 'end' ? convertToUnit(column.fixedEndOffset) : undefined,\n top: (props.sticky || props.fixedHeader) ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n function handleEnterKeyPress (event: KeyboardEvent, column: InternalDataTableHeader) {\n if (event.key === 'Enter' && !props.disableSort) {\n toggleSort(column, event)\n }\n }\n function getSortIcon (column: InternalDataTableHeader) {\n const item = sortBy.value.find(item => item.key === column.key)\n\n if (!item) return props.sortAscIcon\n\n return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon\n }\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n\n const { displayClasses, mobile } = useDisplay(props)\n\n const slotProps = computed(() => ({\n headers: headers.value,\n columns: columns.value,\n toggleSort,\n isSorted,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectAll,\n getSortIcon,\n } satisfies HeadersSlotProps))\n\n const headerCellClasses = computed(() => ([\n 'v-data-table__th',\n {\n 'v-data-table__th--sticky': (props.sticky || props.fixedHeader),\n },\n displayClasses.value,\n loaderClasses.value,\n ]))\n\n const VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n const isEmpty = column.key === 'data-table-group' && column.width === 0 && !column.title\n const headerProps = mergeProps(props.headerProps ?? {}, column.headerProps ?? {})\n\n return (\n <VDataTableColumn\n tag=\"th\"\n align={ column.align }\n class={[\n {\n 'v-data-table__th--sortable': column.sortable && !props.disableSort,\n 'v-data-table__th--sorted': isSorted(column),\n 'v-data-table__th--fixed': column.fixed,\n },\n ...headerCellClasses.value,\n ]}\n style={{\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.minWidth),\n maxWidth: convertToUnit(column.maxWidth),\n ...getFixedStyles(column, y),\n }}\n colspan={ column.colspan }\n rowspan={ column.rowspan }\n fixed={ column.fixed }\n nowrap={ column.nowrap }\n lastFixed={ column.lastFixed }\n firstFixedEnd={ column.firstFixedEnd }\n noPadding={ noPadding }\n empty={ isEmpty }\n tabindex={ column.sortable ? 0 : undefined }\n onClick={ column.sortable ? (event: PointerEvent) => toggleSort(column, event) : undefined }\n onKeydown={ column.sortable ? (event: KeyboardEvent) => handleEnterKeyPress(event, column) : undefined }\n { ...headerProps }\n >\n {{\n default: () => {\n const columnSlotName = `header.${column.key}` as const\n const columnSlotProps: VDataTableHeaderCellColumnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon,\n }\n\n if (slots[columnSlotName]) return slots[columnSlotName]!(columnSlotProps)\n\n if (isEmpty) return ''\n\n if (column.key === 'data-table-select') {\n return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && (\n <VCheckboxBtn\n color={ props.color }\n density={ props.density }\n modelValue={ allSelected.value }\n indeterminate={ someSelected.value && !allSelected.value }\n onUpdate:modelValue={ selectAll }\n />\n ))\n }\n\n return (\n <div class=\"v-data-table-header__content\">\n <span>{ column.title }</span>\n { column.sortable && !props.disableSort && (\n <VIcon\n key=\"icon\"\n class=\"v-data-table-header__sort-icon\"\n icon={ getSortIcon(column) }\n />\n )}\n { props.multiSort && isSorted(column) && (\n <div\n key=\"badge\"\n class={[\n 'v-data-table-header__sort-badge',\n ...backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { sortBy.value.findIndex(x => x.key === column.key) + 1 }\n </div>\n )}\n </div>\n )\n },\n }}\n </VDataTableColumn>\n )\n }\n\n const VDataTableMobileHeaderCell = () => {\n const displayItems = computed<ItemProps['items']>(() => {\n return columns.value.filter(column => column?.sortable && !props.disableSort)\n })\n\n return (\n <VDataTableColumn\n tag=\"th\"\n class={[\n ...headerCellClasses.value,\n ]}\n colspan={ headers.value.length + 1 }\n { ...props.headerProps }\n >\n <div class=\"v-data-table-header__content\">\n <VSelect\n chips\n color={ props.color }\n class=\"v-data-table__td-sort-select\"\n clearable\n density=\"default\"\n items={ displayItems.value }\n label={ t('$vuetify.dataTable.sortBy') }\n multiple={ props.multiSort }\n variant=\"underlined\"\n onClick:clear={ () => sortBy.value = [] }\n onClick:append={ () => selectAll(!allSelected.value) }\n >\n {{\n append: () => (\n <VCheckboxBtn\n color={ props.color }\n density=\"compact\"\n modelValue={ allSelected.value }\n indeterminate={ someSelected.value && !allSelected.value }\n onUpdate:modelValue={ selectAll }\n />\n ),\n chip: props => (\n <VChip\n onClick={ props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined }\n onMousedown={ (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n { props.item.title }\n <VIcon\n class={[\n 'v-data-table__td-sort-icon',\n isSorted(props.item.raw) && 'v-data-table__td-sort-icon-active',\n ]}\n icon={ getSortIcon(props.item.raw) }\n size=\"small\"\n />\n </VChip>\n ),\n }}\n </VSelect>\n </div>\n </VDataTableColumn>\n )\n }\n\n useRender(() => {\n return mobile.value ? (\n <tr>\n <VDataTableMobileHeaderCell />\n </tr>\n ) : (\n <>\n { slots.headers\n ? slots.headers(slotProps.value)\n : headers.value.map((row, y) => (\n <tr>\n { row.map((column, x) => (\n <VDataTableHeaderCell column={ column } x={ x } y={ y } />\n ))}\n </tr>\n ))}\n\n { props.loading && (\n <tr class=\"v-data-table-progress\">\n <th colspan={ columns.value.length }>\n <LoaderSlot\n name=\"v-data-table-progress\"\n absolute\n active\n color={ typeof props.loading === 'boolean' || props.loading === 'true'\n ? props.color\n : props.loading }\n indeterminate\n v-slots={{ default: slots.loader }}\n />\n </th>\n </tr>\n )}\n </>\n )\n })\n },\n})\n\nexport type VDataTableHeaders = InstanceType<typeof VDataTableHeaders>\n"],"mappings":";AAAA;AAAA,SACSA,gBAAgB;AAAA,SAChBC,YAAY;AAAA,SACZC,KAAK;AAAA,SACLC,KAAK;AAAA,SACLC,OAAO,+BAEhB;AAAA,SACSC,UAAU;AAAA,SACVC,YAAY;AAAA,SACZC,OAAO;AAAA,SACPC,kBAAkB;AAAA,SAClBC,gBAAgB;AAAA,SAChBC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,SAAS;AAAA,SACTC,UAAU,EAAEC,eAAe,EAAEC,SAAS;AAAA,SACtCC,SAAS,uCAElB;AACA,SAASC,QAAQ,EAAEC,UAAU,QAAQ,KAAK;AAAA,SACjCC,aAAa,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,+BAEjE;AAsCA,OAAO,MAAMC,0BAA0B,GAAGF,YAAY,CAAC;EACrDG,KAAK,EAAEC,MAAM;EACbC,WAAW,EAAEC,OAAO;EACpBC,WAAW,EAAED,OAAO;EACpBE,SAAS,EAAEF,OAAO;EAClBG,WAAW,EAAE;IACXC,IAAI,EAAEnB,SAAS;IACfoB,OAAO,EAAE;EACX,CAAC;EACDC,YAAY,EAAE;IACZF,IAAI,EAAEnB,SAAS;IACfoB,OAAO,EAAE;EACX,CAAC;EACDE,WAAW,EAAE;IACXH,IAAI,EAAEI;EACR,CAAC;EAED;EACAC,MAAM,EAAET,OAAO;EAEf,GAAGlB,gBAAgB,CAAC,CAAC;EACrB,GAAGC,gBAAgB,CAAC,CAAC;EACrB,GAAGI,eAAe,CAAC;AACrB,CAAC,EAAE,mBAAmB,CAAC;AAEvB,OAAO,MAAMuB,iBAAiB,GAAGjB,gBAAgB,CAAyB,CAAC,CAAC;EAC1EkB,IAAI,EAAE,mBAAmB;EAEzBC,KAAK,EAAEhB,0BAA0B,CAAC,CAAC;EAEnCiB,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAE,CAAC,GAAG3B,SAAS,CAAC,CAAC;IACzB,MAAM;MAAE4B,UAAU;MAAEC,MAAM;MAAEC;IAAS,CAAC,GAAGvC,OAAO,CAAC,CAAC;IAClD,MAAM;MAAEwC,YAAY;MAAEC,WAAW;MAAEC,SAAS;MAAEC;IAAc,CAAC,GAAG5C,YAAY,CAAC,CAAC;IAC9E,MAAM;MAAE6C,OAAO;MAAEC;IAAQ,CAAC,GAAG/C,UAAU,CAAC,CAAC;IACzC,MAAM;MAAEgD;IAAc,CAAC,GAAGtC,SAAS,CAACwB,KAAK,CAAC;IAE1C,SAASe,cAAcA,CAAEC,MAA+B,EAAEC,CAAS,EAA6B;MAC9F,IAAI,EAAEjB,KAAK,CAACH,MAAM,IAAIG,KAAK,CAACX,WAAW,CAAC,IAAI,CAAC2B,MAAM,CAACE,KAAK,EAAE,OAAOC,SAAS;MAE3E,MAAMC,SAAS,GAAG,OAAOJ,MAAM,CAACE,KAAK,KAAK,QAAQ,GAAGF,MAAM,CAACE,KAAK,GAC7DF,MAAM,CAACE,KAAK,GAAG,OAAO,GACtB,MAAM;MAEV,OAAO;QACLG,QAAQ,EAAE,QAAQ;QAClBC,IAAI,EAAEF,SAAS,KAAK,OAAO,GAAGxC,aAAa,CAACoC,MAAM,CAACO,WAAW,CAAC,GAAGJ,SAAS;QAC3EK,KAAK,EAAEJ,SAAS,KAAK,KAAK,GAAGxC,aAAa,CAACoC,MAAM,CAACS,cAAc,CAAC,GAAGN,SAAS;QAC7EO,GAAG,EAAG1B,KAAK,CAACH,MAAM,IAAIG,KAAK,CAACX,WAAW,GAAI,uCAAuC4B,CAAC,GAAG,GAAGE;MAC3F,CAAC;IACH;IACA,SAASQ,mBAAmBA,CAAEC,KAAoB,EAAEZ,MAA+B,EAAE;MACnF,IAAIY,KAAK,CAACC,GAAG,KAAK,OAAO,IAAI,CAAC7B,KAAK,CAACb,WAAW,EAAE;QAC/CkB,UAAU,CAACW,MAAM,EAAEY,KAAK,CAAC;MAC3B;IACF;IACA,SAASE,WAAWA,CAAEd,MAA+B,EAAE;MACrD,MAAMe,IAAI,GAAGzB,MAAM,CAAC0B,KAAK,CAACC,IAAI,CAACF,IAAI,IAAIA,IAAI,CAACF,GAAG,KAAKb,MAAM,CAACa,GAAG,CAAC;MAE/D,IAAI,CAACE,IAAI,EAAE,OAAO/B,KAAK,CAACT,WAAW;MAEnC,OAAOwC,IAAI,CAACG,KAAK,KAAK,KAAK,GAAGlC,KAAK,CAACT,WAAW,GAAGS,KAAK,CAACN,YAAY;IACtE;IAEA,MAAM;MAAEyC,sBAAsB;MAAEC;IAAsB,CAAC,GAAGnE,kBAAkB,CAAC,MAAM+B,KAAK,CAACf,KAAK,CAAC;IAE/F,MAAM;MAAEoD,cAAc;MAAEC;IAAO,CAAC,GAAGlE,UAAU,CAAC4B,KAAK,CAAC;IAEpD,MAAMuC,SAAS,GAAG7D,QAAQ,CAAC,OAAO;MAChCmC,OAAO,EAAEA,OAAO,CAACmB,KAAK;MACtBpB,OAAO,EAAEA,OAAO,CAACoB,KAAK;MACtB3B,UAAU;MACVE,QAAQ;MACRD,MAAM,EAAEA,MAAM,CAAC0B,KAAK;MACpBxB,YAAY,EAAEA,YAAY,CAACwB,KAAK;MAChCvB,WAAW,EAAEA,WAAW,CAACuB,KAAK;MAC9BtB,SAAS;MACToB;IACF,CAAC,CAA4B,CAAC;IAE9B,MAAMU,iBAAiB,GAAG9D,QAAQ,CAAC,MAAO,CACxC,kBAAkB,EAClB;MACE,0BAA0B,EAAGsB,KAAK,CAACH,MAAM,IAAIG,KAAK,CAACX;IACrD,CAAC,EACDgD,cAAc,CAACL,KAAK,EACpBlB,aAAa,CAACkB,KAAK,CACnB,CAAC;IAEH,MAAMS,oBAAoB,GAAGC,KAAA,IAAiF;MAAA,IAAhF;QAAE1B,MAAM;QAAE2B,CAAC;QAAE1B;MAA6D,CAAC,GAAAyB,KAAA;MACvG,MAAME,SAAS,GAAG5B,MAAM,CAACa,GAAG,KAAK,mBAAmB,IAAIb,MAAM,CAACa,GAAG,KAAK,mBAAmB;MAC1F,MAAMgB,OAAO,GAAG7B,MAAM,CAACa,GAAG,KAAK,kBAAkB,IAAIb,MAAM,CAAC8B,KAAK,KAAK,CAAC,IAAI,CAAC9B,MAAM,CAAC+B,KAAK;MACxF,MAAMpD,WAAW,GAAGhB,UAAU,CAACqB,KAAK,CAACL,WAAW,IAAI,CAAC,CAAC,EAAEqB,MAAM,CAACrB,WAAW,IAAI,CAAC,CAAC,CAAC;MAEjF,OAAAqD,YAAA,CAAAvF,gBAAA,EAAAwF,WAAA;QAAA;QAAA,SAGYjC,MAAM,CAACkC,KAAK;QAAA,SACb,CACL;UACE,4BAA4B,EAAElC,MAAM,CAACmC,QAAQ,IAAI,CAACnD,KAAK,CAACb,WAAW;UACnE,0BAA0B,EAAEoB,QAAQ,CAACS,MAAM,CAAC;UAC5C,yBAAyB,EAAEA,MAAM,CAACE;QACpC,CAAC,EACD,GAAGsB,iBAAiB,CAACR,KAAK,CAC3B;QAAA,SACM;UACLc,KAAK,EAAElE,aAAa,CAACoC,MAAM,CAAC8B,KAAK,CAAC;UAClCM,QAAQ,EAAExE,aAAa,CAACoC,MAAM,CAACoC,QAAQ,CAAC;UACxCC,QAAQ,EAAEzE,aAAa,CAACoC,MAAM,CAACqC,QAAQ,CAAC;UACxC,GAAGtC,cAAc,CAACC,MAAM,EAAEC,CAAC;QAC7B,CAAC;QAAA,WACSD,MAAM,CAACsC,OAAO;QAAA,WACdtC,MAAM,CAACuC,OAAO;QAAA,SAChBvC,MAAM,CAACE,KAAK;QAAA,UACXF,MAAM,CAACwC,MAAM;QAAA,aACVxC,MAAM,CAACyC,SAAS;QAAA,iBACZzC,MAAM,CAAC0C,aAAa;QAAA,aACxBd,SAAS;QAAA,SACbC,OAAO;QAAA,YACJ7B,MAAM,CAACmC,QAAQ,GAAG,CAAC,GAAGhC,SAAS;QAAA,WAChCH,MAAM,CAACmC,QAAQ,GAAIvB,KAAmB,IAAKvB,UAAU,CAACW,MAAM,EAAEY,KAAK,CAAC,GAAGT,SAAS;QAAA,aAC9EH,MAAM,CAACmC,QAAQ,GAAIvB,KAAoB,IAAKD,mBAAmB,CAACC,KAAK,EAAEZ,MAAM,CAAC,GAAGG;MAAS,GACjGxB,WAAW;QAGdF,OAAO,EAAEA,CAAA,KAAM;UACb,MAAMkE,cAAc,GAAG,UAAU3C,MAAM,CAACa,GAAG,EAAW;UACtD,MAAM+B,eAAoD,GAAG;YAC3D5C,MAAM;YACNN,SAAS;YACTH,QAAQ;YACRF,UAAU;YACVC,MAAM,EAAEA,MAAM,CAAC0B,KAAK;YACpBxB,YAAY,EAAEA,YAAY,CAACwB,KAAK;YAChCvB,WAAW,EAAEA,WAAW,CAACuB,KAAK;YAC9BF;UACF,CAAC;UAED,IAAI3B,KAAK,CAACwD,cAAc,CAAC,EAAE,OAAOxD,KAAK,CAACwD,cAAc,CAAC,CAAEC,eAAe,CAAC;UAEzE,IAAIf,OAAO,EAAE,OAAO,EAAE;UAEtB,IAAI7B,MAAM,CAACa,GAAG,KAAK,mBAAmB,EAAE;YACtC,OAAO1B,KAAK,CAAC,0BAA0B,CAAC,GAAGyD,eAAe,CAAC,KAAKjD,aAAa,CAACqB,KAAK,IAAAgB,YAAA,CAAAtF,YAAA;cAAA,SAEvEsC,KAAK,CAACf,KAAK;cAAA,WACTe,KAAK,CAAC6D,OAAO;cAAA,cACVpD,WAAW,CAACuB,KAAK;cAAA,iBACdxB,YAAY,CAACwB,KAAK,IAAI,CAACvB,WAAW,CAACuB,KAAK;cAAA,uBAClCtB;YAAS,QAElC,CAAC;UACJ;UAEA,OAAAoD,mBAAA;YAAA;UAAA,IAAAA,mBAAA,gBAEY9C,MAAM,CAAC+B,KAAK,IAClB/B,MAAM,CAACmC,QAAQ,IAAI,CAACnD,KAAK,CAACb,WAAW,IAAA6D,YAAA,CAAApF,KAAA;YAAA;YAAA;YAAA,QAI5BkE,WAAW,CAACd,MAAM;UAAC,QAE7B,EACChB,KAAK,CAACV,SAAS,IAAIiB,QAAQ,CAACS,MAAM,CAAC,IAAA8C,mBAAA;YAAA;YAAA,SAAAC,eAAA,CAG1B,CACL,iCAAiC,EACjC,GAAG5B,sBAAsB,CAACH,KAAK,CAChC;YAAA,SAAAgC,eAAA,CACO5B,qBAAqB,CAACJ,KAAK;UAAA,IAEjC1B,MAAM,CAAC0B,KAAK,CAACiC,SAAS,CAACtB,CAAC,IAAIA,CAAC,CAACd,GAAG,KAAKb,MAAM,CAACa,GAAG,CAAC,GAAG,CAAC,EAE1D;QAGP;MAAC;IAIT,CAAC;IAED,MAAMqC,0BAA0B,GAAGA,CAAA,KAAM;MACvC,MAAMC,YAAY,GAAGzF,QAAQ,CAAqB,MAAM;QACtD,OAAOkC,OAAO,CAACoB,KAAK,CAACoC,MAAM,CAACpD,MAAM,IAAIA,MAAM,EAAEmC,QAAQ,IAAI,CAACnD,KAAK,CAACb,WAAW,CAAC;MAC/E,CAAC,CAAC;MAEF,OAAA6D,YAAA,CAAAvF,gBAAA,EAAAwF,WAAA;QAAA;QAAA,SAGW,CACL,GAAGT,iBAAiB,CAACR,KAAK,CAC3B;QAAA,WACSnB,OAAO,CAACmB,KAAK,CAACqC,MAAM,GAAG;MAAC,GAC7BrE,KAAK,CAACL,WAAW;QAAAF,OAAA,EAAAA,CAAA,MAAAqE,mBAAA;UAAA;QAAA,IAAAd,YAAA,CAAAnF,OAAA;UAAA;UAAA,SAKVmC,KAAK,CAACf,KAAK;UAAA;UAAA;UAAA;UAAA,SAIXkF,YAAY,CAACnC,KAAK;UAAA,SAClB5B,CAAC,CAAC,2BAA2B,CAAC;UAAA,YAC3BJ,KAAK,CAACV,SAAS;UAAA;UAAA,iBAEVgF,CAAA,KAAMhE,MAAM,CAAC0B,KAAK,GAAG,EAAE;UAAA,kBACtBuC,CAAA,KAAM7D,SAAS,CAAC,CAACD,WAAW,CAACuB,KAAK;QAAC;UAGlDwC,MAAM,EAAEA,CAAA,KAAAxB,YAAA,CAAAtF,YAAA;YAAA,SAEIsC,KAAK,CAACf,KAAK;YAAA;YAAA,cAENwB,WAAW,CAACuB,KAAK;YAAA,iBACdxB,YAAY,CAACwB,KAAK,IAAI,CAACvB,WAAW,CAACuB,KAAK;YAAA,uBAClCtB;UAAS,QAElC;UACD+D,IAAI,EAAEzE,KAAK,IAAAgD,YAAA,CAAArF,KAAA;YAAA,WAEGqC,KAAK,CAAC+B,IAAI,CAAC2C,GAAG,EAAEvB,QAAQ,GAAG,MAAM9C,UAAU,CAACL,KAAK,CAAC+B,IAAI,CAAC2C,GAAG,CAAC,GAAGvD,SAAS;YAAA,eAClEwD,CAAa,IAAK;cAC/BA,CAAC,CAACC,cAAc,CAAC,CAAC;cAClBD,CAAC,CAACE,eAAe,CAAC,CAAC;YACrB;UAAC;YAAApF,OAAA,EAAAA,CAAA,MAECO,KAAK,CAAC+B,IAAI,CAACgB,KAAK,EAAAC,YAAA,CAAApF,KAAA;cAAA,SAAAmG,eAAA,CAET,CACL,4BAA4B,EAC5BxD,QAAQ,CAACP,KAAK,CAAC+B,IAAI,CAAC2C,GAAG,CAAC,IAAI,mCAAmC,CAChE;cAAA,QACM5C,WAAW,CAAC9B,KAAK,CAAC+B,IAAI,CAAC2C,GAAG,CAAC;cAAA;YAAA;UAAA;QAIvC;MAAA;IAMb,CAAC;IAED3F,SAAS,CAAC,MAAM;MACd,OAAOuD,MAAM,CAACN,KAAK,GAAA8B,mBAAA,cAAAd,YAAA,CAAAkB,0BAAA,kBAAAJ,mBAAA,CAAAgB,SAAA,SAMb3E,KAAK,CAACU,OAAO,GACXV,KAAK,CAACU,OAAO,CAAC0B,SAAS,CAACP,KAAK,CAAC,GAC9BnB,OAAO,CAACmB,KAAK,CAAC+C,GAAG,CAAC,CAACC,GAAG,EAAE/D,CAAC,KAAA6C,mBAAA,cAErBkB,GAAG,CAACD,GAAG,CAAC,CAAC/D,MAAM,EAAE2B,CAAC,KAAAK,YAAA,CAAAP,oBAAA;QAAA,UACazB,MAAM;QAAA,KAAO2B,CAAC;QAAA,KAAO1B;MAAC,QACtD,CAAC,EAEL,CAAC,EAEFjB,KAAK,CAACiF,OAAO,IAAAnB,mBAAA;QAAA;MAAA,IAAAA,mBAAA;QAAA,WAEGlD,OAAO,CAACoB,KAAK,CAACqC;MAAM,IAAArB,YAAA,CAAA1E,UAAA;QAAA;QAAA;QAAA;QAAA,SAKtB,OAAO0B,KAAK,CAACiF,OAAO,KAAK,SAAS,IAAIjF,KAAK,CAACiF,OAAO,KAAK,MAAM,GAClEjF,KAAK,CAACf,KAAK,GACXe,KAAK,CAACiF,OAAO;QAAA;MAAA,GAER;QAAExF,OAAO,EAAEU,KAAK,CAAC+E;MAAO,CAAC,KAIzC,EAEJ;IACH,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VDataTableHeaders.js","names":["VDataTableColumn","VCheckboxBtn","VChip","VIcon","VSelect","useHeaders","useSelection","useSort","useBackgroundColor","makeDensityProps","makeDisplayProps","useDisplay","IconValue","LoaderSlot","makeLoaderProps","useLoader","useLocale","computed","mergeProps","convertToUnit","genericComponent","propsFactory","useRender","makeVDataTableHeadersProps","color","String","disableSort","Boolean","fixedHeader","multiSort","initialSortOrder","sortAscIcon","type","default","sortDescIcon","headerProps","Object","sticky","VDataTableHeaders","name","props","setup","_ref","slots","t","toggleSort","sortBy","isSorted","someSelected","allSelected","selectAll","showSelectAll","columns","headers","loaderClasses","getFixedStyles","column","y","fixed","undefined","fixedSide","position","left","fixedOffset","right","fixedEndOffset","top","handleEnterKeyPress","event","key","getSortIcon","item","value","find","order","backgroundColorClasses","backgroundColorStyles","displayClasses","mobile","slotProps","headerCellClasses","VDataTableHeaderCell","_ref2","x","noPadding","isEmpty","width","title","_createVNode","_mergeProps","align","sortable","minWidth","maxWidth","colspan","rowspan","nowrap","lastFixed","firstFixedEnd","columnSlotName","columnSlotProps","density","_createElementVNode","_normalizeClass","_normalizeStyle","findIndex","VDataTableMobileHeaderCell","displayItems","filter","showSelectColumn","length","onClick:clear","append","onUpdate:modelValue","chip","raw","e","preventDefault","stopPropagation","_Fragment","map","row","loading","loader"],"sources":["../../../src/components/VDataTable/VDataTableHeaders.tsx"],"sourcesContent":["// Components\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VIcon } from '@/components/VIcon'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, mergeProps } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType, UnwrapRef } from 'vue'\nimport type { provideSelection } from './composables/select'\nimport type { provideSort } from './composables/sort'\nimport type { InternalDataTableHeader } from './types'\nimport type { ItemProps } from '@/composables/list-items'\nimport type { LoaderSlotProps } from '@/composables/loader'\n\nexport type HeadersSlotProps = {\n headers: InternalDataTableHeader[][]\n columns: InternalDataTableHeader[]\n sortBy: UnwrapRef<ReturnType<typeof provideSort>['sortBy']>\n someSelected: UnwrapRef<ReturnType<typeof provideSelection>['someSelected']>\n allSelected: UnwrapRef<ReturnType<typeof provideSelection>['allSelected']>\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n getSortIcon: (column: InternalDataTableHeader) => IconValue\n isSorted: ReturnType<typeof provideSort>['isSorted']\n}\n\nexport type VDataTableHeaderCellColumnSlotProps = {\n column: InternalDataTableHeader\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n isSorted: ReturnType<typeof provideSort>['isSorted']\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n sortBy: UnwrapRef<ReturnType<typeof provideSort>['sortBy']>\n someSelected: UnwrapRef<ReturnType<typeof provideSelection>['someSelected']>\n allSelected: UnwrapRef<ReturnType<typeof provideSelection>['allSelected']>\n getSortIcon: (column: InternalDataTableHeader) => IconValue\n}\n\nexport type VDataTableHeadersSlots = {\n headers: HeadersSlotProps\n loader: LoaderSlotProps\n 'header.data-table-select': VDataTableHeaderCellColumnSlotProps\n 'header.data-table-expand': VDataTableHeaderCellColumnSlotProps\n} & { [key: `header.${string}`]: VDataTableHeaderCellColumnSlotProps }\n\nexport const makeVDataTableHeadersProps = propsFactory({\n color: String,\n disableSort: Boolean,\n fixedHeader: Boolean,\n multiSort: Boolean,\n initialSortOrder: String as PropType<'asc' | 'desc'>,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n headerProps: {\n type: Object as PropType<Record<string, any>>,\n },\n\n /** @deprecated */\n sticky: Boolean,\n\n ...makeDensityProps(),\n ...makeDisplayProps(),\n ...makeLoaderProps(),\n}, 'VDataTableHeaders')\n\nexport const VDataTableHeaders = genericComponent<VDataTableHeadersSlots>()({\n name: 'VDataTableHeaders',\n\n props: makeVDataTableHeadersProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { toggleSort, sortBy, isSorted } = useSort()\n const { someSelected, allSelected, selectAll, showSelectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n function getFixedStyles (column: InternalDataTableHeader, y: number): CSSProperties | undefined {\n if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined\n\n const fixedSide = typeof column.fixed === 'string' ? column.fixed\n : column.fixed ? 'start'\n : 'none'\n\n return {\n position: 'sticky',\n left: fixedSide === 'start' ? convertToUnit(column.fixedOffset) : undefined,\n right: fixedSide === 'end' ? convertToUnit(column.fixedEndOffset) : undefined,\n top: (props.sticky || props.fixedHeader) ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n function handleEnterKeyPress (event: KeyboardEvent, column: InternalDataTableHeader) {\n if (event.key === 'Enter' && !props.disableSort) {\n toggleSort(column, event)\n }\n }\n function getSortIcon (column: InternalDataTableHeader) {\n const item = sortBy.value.find(item => item.key === column.key)\n\n return (!item && props.initialSortOrder === 'asc') || item?.order === 'asc'\n ? props.sortAscIcon\n : props.sortDescIcon\n }\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n\n const { displayClasses, mobile } = useDisplay(props)\n\n const slotProps = computed(() => ({\n headers: headers.value,\n columns: columns.value,\n toggleSort,\n isSorted,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectAll,\n getSortIcon,\n } satisfies HeadersSlotProps))\n\n const headerCellClasses = computed(() => ([\n 'v-data-table__th',\n {\n 'v-data-table__th--sticky': (props.sticky || props.fixedHeader),\n },\n displayClasses.value,\n loaderClasses.value,\n ]))\n\n const VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n const isEmpty = column.key === 'data-table-group' && column.width === 0 && !column.title\n const headerProps = mergeProps(props.headerProps ?? {}, column.headerProps ?? {})\n\n return (\n <VDataTableColumn\n tag=\"th\"\n align={ column.align }\n class={[\n {\n 'v-data-table__th--sortable': column.sortable && !props.disableSort,\n 'v-data-table__th--sorted': isSorted(column),\n 'v-data-table__th--fixed': column.fixed,\n },\n ...headerCellClasses.value,\n ]}\n style={{\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.minWidth),\n maxWidth: convertToUnit(column.maxWidth),\n ...getFixedStyles(column, y),\n }}\n colspan={ column.colspan }\n rowspan={ column.rowspan }\n fixed={ column.fixed }\n nowrap={ column.nowrap }\n lastFixed={ column.lastFixed }\n firstFixedEnd={ column.firstFixedEnd }\n noPadding={ noPadding }\n empty={ isEmpty }\n tabindex={ column.sortable ? 0 : undefined }\n onClick={ column.sortable ? (event: PointerEvent) => toggleSort(column, event) : undefined }\n onKeydown={ column.sortable ? (event: KeyboardEvent) => handleEnterKeyPress(event, column) : undefined }\n { ...headerProps }\n >\n {{\n default: () => {\n const columnSlotName = `header.${column.key}` as const\n const columnSlotProps: VDataTableHeaderCellColumnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon,\n }\n\n if (slots[columnSlotName]) return slots[columnSlotName]!(columnSlotProps)\n\n if (isEmpty) return ''\n\n if (column.key === 'data-table-select') {\n return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && (\n <VCheckboxBtn\n color={ props.color }\n density={ props.density }\n modelValue={ allSelected.value }\n indeterminate={ someSelected.value && !allSelected.value }\n onUpdate:modelValue={ selectAll }\n />\n ))\n }\n\n return (\n <div class=\"v-data-table-header__content\">\n <span>{ column.title }</span>\n { column.sortable && !props.disableSort && (\n <VIcon\n key=\"icon\"\n class=\"v-data-table-header__sort-icon\"\n icon={ getSortIcon(column) }\n />\n )}\n { props.multiSort && isSorted(column) && (\n <div\n key=\"badge\"\n class={[\n 'v-data-table-header__sort-badge',\n ...backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { sortBy.value.findIndex(x => x.key === column.key) + 1 }\n </div>\n )}\n </div>\n )\n },\n }}\n </VDataTableColumn>\n )\n }\n\n const VDataTableMobileHeaderCell = () => {\n const displayItems = computed<ItemProps['items']>(() => {\n return columns.value.filter(column => column?.sortable && !props.disableSort)\n })\n const showSelectColumn = columns.value.find(column => column.key === 'data-table-select')\n\n return (\n <VDataTableColumn\n tag=\"th\"\n class={[\n ...headerCellClasses.value,\n ]}\n colspan={ headers.value.length + 1 }\n { ...props.headerProps }\n >\n <div class=\"v-data-table-header__content\">\n <VSelect\n chips\n color={ props.color }\n class=\"v-data-table__td-sort-select\"\n clearable\n density=\"default\"\n items={ displayItems.value }\n label={ t('$vuetify.dataTable.sortBy') }\n multiple={ props.multiSort }\n variant=\"underlined\"\n onClick:clear={ () => sortBy.value = [] }\n >\n {{\n append: showSelectColumn ? () => (\n <VCheckboxBtn\n color={ props.color }\n density=\"compact\"\n modelValue={ allSelected.value }\n indeterminate={ someSelected.value && !allSelected.value }\n onUpdate:modelValue={ () => selectAll(!allSelected.value) }\n />\n ) : undefined,\n chip: props => (\n <VChip\n onClick={ props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined }\n onMousedown={ (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n { props.item.title }\n <VIcon\n class={[\n 'v-data-table__td-sort-icon',\n isSorted(props.item.raw) && 'v-data-table__td-sort-icon-active',\n ]}\n icon={ getSortIcon(props.item.raw) }\n size=\"small\"\n />\n </VChip>\n ),\n }}\n </VSelect>\n </div>\n </VDataTableColumn>\n )\n }\n\n useRender(() => {\n return mobile.value ? (\n <tr>\n <VDataTableMobileHeaderCell />\n </tr>\n ) : (\n <>\n { slots.headers\n ? slots.headers(slotProps.value)\n : headers.value.map((row, y) => (\n <tr>\n { row.map((column, x) => (\n <VDataTableHeaderCell column={ column } x={ x } y={ y } />\n ))}\n </tr>\n ))}\n\n { props.loading && (\n <tr class=\"v-data-table-progress\">\n <th colspan={ columns.value.length }>\n <LoaderSlot\n name=\"v-data-table-progress\"\n absolute\n active\n color={ typeof props.loading === 'boolean' || props.loading === 'true'\n ? props.color\n : props.loading }\n indeterminate\n v-slots={{ default: slots.loader }}\n />\n </th>\n </tr>\n )}\n </>\n )\n })\n },\n})\n\nexport type VDataTableHeaders = InstanceType<typeof VDataTableHeaders>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -117,7 +117,10 @@ export const VDatePicker = genericComponent()({
|
|
|
117
117
|
const formattedDate = model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(adapter.date(model.value[0]), props.headerDateFormat) : t(props.header);
|
|
118
118
|
return props.landscape && formattedDate.split(' ').length === 3 ? formattedDate.replace(' ', '\n') : formattedDate;
|
|
119
119
|
});
|
|
120
|
-
const date = toRef(() =>
|
|
120
|
+
const date = toRef(() => {
|
|
121
|
+
const monthTwoDigits = String(month.value + 1).padStart(2, '0');
|
|
122
|
+
return adapter.parseISO(`${year.value}-${monthTwoDigits}-01`);
|
|
123
|
+
});
|
|
121
124
|
const monthYearText = toRef(() => adapter.format(date.value, 'monthAndYear'));
|
|
122
125
|
const monthText = toRef(() => adapter.format(date.value, 'monthShort'));
|
|
123
126
|
const yearText = toRef(() => adapter.format(date.value, 'year'));
|
|
@@ -219,7 +222,8 @@ export const VDatePicker = genericComponent()({
|
|
|
219
222
|
function onClickNextYear() {
|
|
220
223
|
year.value++;
|
|
221
224
|
if (maxDate.value) {
|
|
222
|
-
const
|
|
225
|
+
const monthTwoDigits = String(month.value + 1).padStart(2, '0');
|
|
226
|
+
const monthStart = adapter.parseISO(`${year.value}-${monthTwoDigits}-01`);
|
|
223
227
|
if (adapter.isAfter(monthStart, maxDate.value)) {
|
|
224
228
|
month.value = adapter.getMonth(maxDate.value);
|
|
225
229
|
}
|
|
@@ -229,7 +233,8 @@ export const VDatePicker = genericComponent()({
|
|
|
229
233
|
function onClickPrevYear() {
|
|
230
234
|
year.value--;
|
|
231
235
|
if (minDate.value) {
|
|
232
|
-
const
|
|
236
|
+
const monthTwoDigits = String(month.value + 1).padStart(2, '0');
|
|
237
|
+
const monthStart = adapter.endOfMonth(adapter.parseISO(`${year.value}-${monthTwoDigits}-01`));
|
|
233
238
|
if (adapter.isAfter(minDate.value, monthStart)) {
|
|
234
239
|
month.value = adapter.getMonth(minDate.value);
|
|
235
240
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDatePicker.js","names":["makeVDatePickerControlsProps","VDatePickerControls","VDatePickerHeader","makeVDatePickerMonthProps","VDatePickerMonth","makeVDatePickerMonthsProps","VDatePickerMonths","makeVDatePickerYearsProps","VDatePickerYears","VFadeTransition","VDefaultsProvider","makeVPickerProps","VPicker","useCalendarRange","useDate","daysDiff","useLocale","useRtl","useProxiedModel","computed","shallowRef","toRef","watch","convertToUnit","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDatePickerProps","header","type","String","default","headerColor","headerDateFormat","landscapeHeaderWidth","Number","weeksInMonth","title","modelValue","VDatePicker","name","props","emits","date","setup","_ref","emit","slots","adapter","t","rtlClasses","model","undefined","v","map","i","multiple","viewMode","minDate","maxDate","clampDate","internal","today","value","isValid","color","_month","month","get","getMonth","startOfMonth","set","_year","year","getYear","startOfYear","setMonth","isReversing","length","formattedDate","format","landscape","split","replace","parseISO","monthYearText","monthText","yearText","headerTransition","disabled","targets","push","_date","setYear","prevMonthEnd","addDays","prevYearEnd","isAfter","nextMonthStart","endOfMonth","nextYearStart","endOfYear","allowedYears","isYearAllowed","allowedMonths","isMonthAllowed","isAllowedInRange","start","end","allowedDates","days","Array","isArray","monthTwoDigits","padStart","onClickNextMonth","onUpdateYear","onUpdateMonth","onClickPrevMonth","onClickNextYear","monthStart","onClickPrevYear","onClickDate","onClickMonth","onClickYear","val","oldVal","arrBefore","arrAfter","before","after","isSameDay","newMonth","newYear","isBefore","pickerProps","filterProps","datePickerControlsProps","datePickerHeaderProps","datePickerMonthProps","datePickerMonthsProps","datePickerYearsProps","headerProps","transition","_createVNode","_mergeProps","showWeek","class","style","_createElementVNode","prepend","append","_Fragment","controls","$event","day","actions"],"sources":["../../../src/components/VDatePicker/VDatePicker.tsx"],"sourcesContent":["// Styles\nimport './VDatePicker.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from './VDatePickerControls'\nimport { VDatePickerHeader } from './VDatePickerHeader'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from './VDatePickerMonth'\nimport { makeVDatePickerMonthsProps, VDatePickerMonths } from './VDatePickerMonths'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useCalendarRange } from '@/composables/calendar'\nimport { useDate } from '@/composables/date'\nimport { daysDiff } from '@/composables/date/date'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, shallowRef, toRef, watch } from 'vue'\nimport { convertToUnit, genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VDatePickerControlsDefaultSlotProps } from './VDatePickerControls'\nimport type { VDatePickerHeaderSlots } from './VDatePickerHeader'\nimport type { VDatePickerMonthSlots } from './VDatePickerMonth'\nimport type { VDatePickerMonthsSlots } from './VDatePickerMonths'\nimport type { VDatePickerYearsSlots } from './VDatePickerYears'\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\nimport type { GenericProps } from '@/util'\n\n// Types\nexport type VDatePickerSlots =\n & Omit<VPickerSlots, 'header' | 'default'>\n & Omit<VDatePickerHeaderSlots, 'default'>\n & VDatePickerYearsSlots\n & VDatePickerMonthsSlots\n & VDatePickerMonthSlots\n & {\n header: {\n header: string\n transition: string\n }\n controls: VDatePickerControlsDefaultSlotProps\n }\n\nexport const makeVDatePickerProps = propsFactory({\n // TODO: implement in v3.5\n // calendarIcon: {\n // type: String,\n // default: '$calendar',\n // },\n // keyboardIcon: {\n // type: String,\n // default: '$edit',\n // },\n // inputMode: {\n // type: String as PropType<'calendar' | 'keyboard'>,\n // default: 'calendar',\n // },\n // inputText: {\n // type: String,\n // default: '$vuetify.datePicker.input.placeholder',\n // },\n // inputPlaceholder: {\n // type: String,\n // default: 'dd/mm/yyyy',\n // },\n header: {\n type: String,\n default: '$vuetify.datePicker.header',\n },\n headerColor: String,\n headerDateFormat: {\n type: String,\n default: 'normalDateWithWeekday',\n },\n landscapeHeaderWidth: [Number, String],\n\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps({\n weeksInMonth: 'static' as const,\n }),\n ...omit(makeVDatePickerMonthsProps(), ['modelValue']),\n ...omit(makeVDatePickerYearsProps(), ['modelValue']),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n\n modelValue: null,\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent<new <\n T,\n Multiple extends boolean | 'range' | number | (string & {}) = false,\n TModel = Multiple extends true | number | string\n ? T[]\n : T,\n> (\n props: {\n modelValue?: TModel\n 'onUpdate:modelValue'?: (value: TModel) => void\n multiple?: Multiple\n },\n slots: VDatePickerSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n 'update:month': (date: any) => true,\n 'update:year': (date: any) => true,\n // 'update:inputMode': (date: any) => true,\n 'update:viewMode': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n const { rtlClasses } = useRtl()\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => wrapInArray(v).map(i => adapter.date(i)),\n v => props.multiple ? v : v[0],\n )\n\n const viewMode = useProxiedModel(props, 'viewMode')\n // const inputMode = useProxiedModel(props, 'inputMode')\n\n const { minDate, maxDate, clampDate } = useCalendarRange(props)\n\n const internal = computed(() => {\n const today = adapter.date()\n const value = model.value?.[0]\n ? adapter.date(model.value[0])\n : clampDate(today)\n\n return value && adapter.isValid(value) ? value : today\n })\n const headerColor = toRef(() => props.headerColor ?? props.color)\n\n const _month = useProxiedModel(props, 'month')\n const month = computed({\n get: () => Number(_month.value ?? adapter.getMonth(adapter.startOfMonth(internal.value))),\n set: v => _month.value = v,\n })\n\n const _year = useProxiedModel(props, 'year')\n const year = computed({\n get: () => Number(_year.value ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))),\n set: v => _year.value = v,\n })\n\n const isReversing = shallowRef(false)\n const header = computed(() => {\n if (props.multiple && model.value.length > 1) {\n return t('$vuetify.datePicker.itemsSelected', model.value.length)\n }\n\n const formattedDate = (model.value[0] && adapter.isValid(model.value[0]))\n ? adapter.format(adapter.date(model.value[0]), props.headerDateFormat)\n : t(props.header)\n\n return props.landscape && formattedDate.split(' ').length === 3\n ? formattedDate.replace(' ', '\\n')\n : formattedDate\n })\n\n const date = toRef(() => adapter.parseISO(`${year.value}-${month.value + 1}-01`))\n const monthYearText = toRef(() => adapter.format(date.value, 'monthAndYear'))\n const monthText = toRef(() => adapter.format(date.value, 'monthShort'))\n const yearText = toRef(() => adapter.format(date.value, 'year'))\n\n // const headerIcon = toRef(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = toRef(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n\n const disabled = computed(() => {\n if (props.disabled) return true\n\n const targets = []\n\n if (viewMode.value !== 'month') {\n targets.push(...['prev-month', 'next-month', 'prev-year', 'next-year'])\n } else {\n let _date = adapter.date()\n\n _date = adapter.startOfMonth(_date)\n _date = adapter.setMonth(_date, month.value)\n _date = adapter.setYear(_date, year.value)\n\n if (minDate.value) {\n const prevMonthEnd = adapter.addDays(adapter.startOfMonth(_date), -1)\n const prevYearEnd = adapter.addDays(adapter.startOfYear(_date), -1)\n\n adapter.isAfter(minDate.value, prevMonthEnd) && targets.push('prev-month')\n adapter.isAfter(minDate.value, prevYearEnd) && targets.push('next-year')\n }\n\n if (maxDate.value) {\n const nextMonthStart = adapter.addDays(adapter.endOfMonth(_date), 1)\n const nextYearStart = adapter.addDays(adapter.endOfYear(_date), 1)\n\n adapter.isAfter(nextMonthStart, maxDate.value) && targets.push('next-month')\n adapter.isAfter(nextYearStart, maxDate.value) && targets.push('next-year')\n }\n }\n\n return targets\n })\n\n const allowedYears = computed(() => {\n return props.allowedYears || isYearAllowed\n })\n\n const allowedMonths = computed(() => {\n return props.allowedMonths || isMonthAllowed\n })\n\n function isAllowedInRange (start: unknown, end: unknown) {\n const allowedDates = props.allowedDates\n if (typeof allowedDates !== 'function') return true\n\n const days = 1 + daysDiff(adapter, start, end)\n\n for (let i = 0; i < days; i++) {\n if (allowedDates(adapter.addDays(start, i))) return true\n }\n return false\n }\n\n function isYearAllowed (year: number) {\n if (typeof props.allowedDates === 'function') {\n const startOfYear = adapter.parseISO(`${year}-01-01`)\n return isAllowedInRange(startOfYear, adapter.endOfYear(startOfYear))\n }\n\n if (Array.isArray(props.allowedDates) && props.allowedDates.length) {\n for (const date of props.allowedDates) {\n if (adapter.getYear(adapter.date(date)) === year) return true\n }\n return false\n }\n\n return true\n }\n\n function isMonthAllowed (month: number) {\n if (typeof props.allowedDates === 'function') {\n const monthTwoDigits = String(month + 1).padStart(2, '0')\n const startOfMonth = adapter.parseISO(`${year.value}-${monthTwoDigits}-01`)\n return isAllowedInRange(startOfMonth, adapter.endOfMonth(startOfMonth))\n }\n\n if (Array.isArray(props.allowedDates) && props.allowedDates.length) {\n for (const date of props.allowedDates) {\n if (\n adapter.getYear(adapter.date(date)) === year.value &&\n adapter.getMonth(adapter.date(date)) === month\n ) return true\n }\n return false\n }\n\n return true\n }\n\n // function onClickAppend () {\n // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n // }\n\n function onClickNextMonth () {\n if (month.value < 11) {\n month.value++\n } else {\n year.value++\n month.value = 0\n onUpdateYear()\n }\n onUpdateMonth()\n }\n\n function onClickPrevMonth () {\n if (month.value > 0) {\n month.value--\n } else {\n year.value--\n month.value = 11\n onUpdateYear()\n }\n onUpdateMonth()\n }\n\n function onClickNextYear () {\n year.value++\n if (maxDate.value) {\n const monthStart = adapter.parseISO(`${year.value}-${month.value + 1}-01`)\n if (adapter.isAfter(monthStart, maxDate.value)) {\n month.value = adapter.getMonth(maxDate.value)\n }\n }\n onUpdateYear()\n }\n\n function onClickPrevYear () {\n year.value--\n if (minDate.value) {\n const monthStart = adapter.endOfMonth(adapter.parseISO(`${year.value}-${month.value + 1}-01`))\n if (adapter.isAfter(minDate.value, monthStart)) {\n month.value = adapter.getMonth(minDate.value)\n }\n }\n onUpdateYear()\n }\n\n function onClickDate () {\n viewMode.value = 'month'\n }\n\n function onClickMonth () {\n viewMode.value = viewMode.value === 'months' ? 'month' : 'months'\n }\n\n function onClickYear () {\n viewMode.value = viewMode.value === 'year' ? 'month' : 'year'\n }\n\n function onUpdateMonth () {\n if (viewMode.value === 'months') onClickMonth()\n }\n\n function onUpdateYear () {\n if (viewMode.value === 'year') onClickYear()\n }\n\n watch(model, (val, oldVal) => {\n const arrBefore = wrapInArray(oldVal)\n const arrAfter = wrapInArray(val)\n\n if (!arrAfter.length) return\n\n const before = adapter.date(arrBefore[arrBefore.length - 1])\n const after = adapter.date(arrAfter[arrAfter.length - 1])\n\n if (adapter.isSameDay(before, after)) return\n\n const newMonth = adapter.getMonth(after)\n const newYear = adapter.getYear(after)\n\n if (newMonth !== month.value) {\n month.value = newMonth\n onUpdateMonth()\n }\n\n if (newYear !== year.value) {\n year.value = newYear\n onUpdateYear()\n }\n\n isReversing.value = adapter.isBefore(before, after)\n })\n\n useRender(() => {\n const pickerProps = VPicker.filterProps(props)\n const datePickerControlsProps = omit(VDatePickerControls.filterProps(props), ['viewMode'])\n const datePickerHeaderProps = VDatePickerHeader.filterProps(props)\n const datePickerMonthProps = VDatePickerMonth.filterProps(props)\n const datePickerMonthsProps = omit(VDatePickerMonths.filterProps(props), ['modelValue'])\n const datePickerYearsProps = omit(VDatePickerYears.filterProps(props), ['modelValue'])\n\n const headerProps = {\n color: headerColor.value,\n header: header.value,\n transition: headerTransition.value,\n }\n\n return (\n <VPicker\n { ...pickerProps }\n color={ headerColor.value }\n class={[\n 'v-date-picker',\n `v-date-picker--${viewMode.value}`,\n {\n 'v-date-picker--show-week': props.showWeek,\n },\n rtlClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-date-picker-landscape-header-width': convertToUnit(props.landscapeHeaderWidth),\n },\n props.style,\n ]}\n v-slots={{\n title: () => slots.title?.() ?? (\n <div class=\"v-date-picker__title\">\n { t(props.title) }\n </div>\n ),\n header: () => slots.header ? (\n <VDefaultsProvider\n defaults={{\n VDatePickerHeader: { ...headerProps },\n }}\n >\n { slots.header?.(headerProps) }\n </VDefaultsProvider>\n ) : (\n <VDatePickerHeader\n key=\"header\"\n { ...datePickerHeaderProps }\n { ...headerProps }\n onClick={ viewMode.value !== 'month' ? onClickDate : undefined }\n v-slots={{\n prepend: slots.prepend,\n append: slots.append,\n }}\n />\n ),\n default: () => (\n <>\n <VDatePickerControls\n { ...datePickerControlsProps }\n disabled={ disabled.value }\n viewMode={ viewMode.value }\n text={ monthYearText.value }\n monthText={ monthText.value }\n yearText={ yearText.value }\n onClick:next={ onClickNextMonth }\n onClick:prev={ onClickPrevMonth }\n onClick:nextYear={ onClickNextYear }\n onClick:prevYear={ onClickPrevYear }\n onClick:month={ onClickMonth }\n onClick:year={ onClickYear }\n v-slots={{ default: slots.controls }}\n />\n\n <VFadeTransition hideOnLeave>\n { viewMode.value === 'months' ? (\n <VDatePickerMonths\n key=\"date-picker-months\"\n { ...datePickerMonthsProps }\n v-model={ month.value }\n min={ minDate.value }\n max={ maxDate.value }\n year={ year.value }\n allowedMonths={ allowedMonths.value }\n onUpdate:modelValue={ onUpdateMonth }\n >\n {{ month: slots.month }}\n </VDatePickerMonths>\n ) : viewMode.value === 'year' ? (\n <VDatePickerYears\n key=\"date-picker-years\"\n { ...datePickerYearsProps }\n v-model={ year.value }\n min={ minDate.value }\n max={ maxDate.value }\n allowedYears={ allowedYears.value }\n onUpdate:modelValue={ onUpdateYear }\n >\n {{ year: slots.year }}\n </VDatePickerYears>\n ) : (\n <VDatePickerMonth\n key=\"date-picker-month\"\n { ...datePickerMonthProps }\n v-model={ model.value }\n v-model:month={ month.value }\n v-model:year={ year.value }\n onUpdate:month={ onUpdateMonth }\n onUpdate:year={ onUpdateYear }\n min={ minDate.value }\n max={ maxDate.value }\n >\n {{ day: slots.day }}\n </VDatePickerMonth>\n )}\n </VFadeTransition>\n </>\n ),\n actions: slots.actions,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType<typeof VDatePicker>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,4BAA4B,EAAEC,mBAAmB;AAAA,SACjDC,iBAAiB;AAAA,SACjBC,yBAAyB,EAAEC,gBAAgB;AAAA,SAC3CC,0BAA0B,EAAEC,iBAAiB;AAAA,SAC7CC,yBAAyB,EAAEC,gBAAgB;AAAA,SAC3CC,eAAe;AAAA,SACfC,iBAAiB;AAAA,SACjBC,gBAAgB,EAAEC,OAAO,yCAElC;AAAA,SACSC,gBAAgB;AAAA,SAChBC,OAAO;AAAA,SACPC,QAAQ;AAAA,SACRC,SAAS,EAAEC,MAAM;AAAA,SACjBC,eAAe,6CAExB;AACA,SAASC,QAAQ,EAAEC,UAAU,EAAEC,KAAK,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC/CC,aAAa,EAAEC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,EAAEC,WAAW,+BAEpF;AASA;AAeA,OAAO,MAAMC,oBAAoB,GAAGH,YAAY,CAAC;EAC/C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACAI,MAAM,EAAE;IACNC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDC,WAAW,EAAEF,MAAM;EACnBG,gBAAgB,EAAE;IAChBJ,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDG,oBAAoB,EAAE,CAACC,MAAM,EAAEL,MAAM,CAAC;EAEtC,GAAGhC,4BAA4B,CAAC,CAAC;EACjC,GAAGG,yBAAyB,CAAC;IAC3BmC,YAAY,EAAE;EAChB,CAAC,CAAC;EACF,GAAGb,IAAI,CAACpB,0BAA0B,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;EACrD,GAAGoB,IAAI,CAAClB,yBAAyB,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;EACpD,GAAGI,gBAAgB,CAAC;IAAE4B,KAAK,EAAE;EAA4B,CAAC,CAAC;EAE3DC,UAAU,EAAE;AACd,CAAC,EAAE,aAAa,CAAC;AAEjB,OAAO,MAAMC,WAAW,GAAGjB,gBAAgB,CAaI,CAAC,CAAC;EAC/CkB,IAAI,EAAE,aAAa;EAEnBC,KAAK,EAAEd,oBAAoB,CAAC,CAAC;EAE7Be,KAAK,EAAE;IACL,mBAAmB,EAAGC,IAAS,IAAK,IAAI;IACxC,cAAc,EAAGA,IAAS,IAAK,IAAI;IACnC,aAAa,EAAGA,IAAS,IAAK,IAAI;IAClC;IACA,iBAAiB,EAAGA,IAAS,IAAK;EACpC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAMG,OAAO,GAAGpC,OAAO,CAAC,CAAC;IACzB,MAAM;MAAEqC;IAAE,CAAC,GAAGnC,SAAS,CAAC,CAAC;IACzB,MAAM;MAAEoC;IAAW,CAAC,GAAGnC,MAAM,CAAC,CAAC;IAE/B,MAAMoC,KAAK,GAAGnC,eAAe,CAC3ByB,KAAK,EACL,YAAY,EACZW,SAAS,EACTC,CAAC,IAAI3B,WAAW,CAAC2B,CAAC,CAAC,CAACC,GAAG,CAACC,CAAC,IAAIP,OAAO,CAACL,IAAI,CAACY,CAAC,CAAC,CAAC,EAC7CF,CAAC,IAAIZ,KAAK,CAACe,QAAQ,GAAGH,CAAC,GAAGA,CAAC,CAAC,CAAC,CAC/B,CAAC;IAED,MAAMI,QAAQ,GAAGzC,eAAe,CAACyB,KAAK,EAAE,UAAU,CAAC;IACnD;;IAEA,MAAM;MAAEiB,OAAO;MAAEC,OAAO;MAAEC;IAAU,CAAC,GAAGjD,gBAAgB,CAAC8B,KAAK,CAAC;IAE/D,MAAMoB,QAAQ,GAAG5C,QAAQ,CAAC,MAAM;MAC9B,MAAM6C,KAAK,GAAGd,OAAO,CAACL,IAAI,CAAC,CAAC;MAC5B,MAAMoB,KAAK,GAAGZ,KAAK,CAACY,KAAK,GAAG,CAAC,CAAC,GAC1Bf,OAAO,CAACL,IAAI,CAACQ,KAAK,CAACY,KAAK,CAAC,CAAC,CAAC,CAAC,GAC5BH,SAAS,CAACE,KAAK,CAAC;MAEpB,OAAOC,KAAK,IAAIf,OAAO,CAACgB,OAAO,CAACD,KAAK,CAAC,GAAGA,KAAK,GAAGD,KAAK;IACxD,CAAC,CAAC;IACF,MAAM9B,WAAW,GAAGb,KAAK,CAAC,MAAMsB,KAAK,CAACT,WAAW,IAAIS,KAAK,CAACwB,KAAK,CAAC;IAEjE,MAAMC,MAAM,GAAGlD,eAAe,CAACyB,KAAK,EAAE,OAAO,CAAC;IAC9C,MAAM0B,KAAK,GAAGlD,QAAQ,CAAC;MACrBmD,GAAG,EAAEA,CAAA,KAAMjC,MAAM,CAAC+B,MAAM,CAACH,KAAK,IAAIf,OAAO,CAACqB,QAAQ,CAACrB,OAAO,CAACsB,YAAY,CAACT,QAAQ,CAACE,KAAK,CAAC,CAAC,CAAC;MACzFQ,GAAG,EAAElB,CAAC,IAAIa,MAAM,CAACH,KAAK,GAAGV;IAC3B,CAAC,CAAC;IAEF,MAAMmB,KAAK,GAAGxD,eAAe,CAACyB,KAAK,EAAE,MAAM,CAAC;IAC5C,MAAMgC,IAAI,GAAGxD,QAAQ,CAAC;MACpBmD,GAAG,EAAEA,CAAA,KAAMjC,MAAM,CAACqC,KAAK,CAACT,KAAK,IAAIf,OAAO,CAAC0B,OAAO,CAAC1B,OAAO,CAAC2B,WAAW,CAAC3B,OAAO,CAAC4B,QAAQ,CAACf,QAAQ,CAACE,KAAK,EAAEI,KAAK,CAACJ,KAAK,CAAC,CAAC,CAAC,CAAC;MACrHQ,GAAG,EAAElB,CAAC,IAAImB,KAAK,CAACT,KAAK,GAAGV;IAC1B,CAAC,CAAC;IAEF,MAAMwB,WAAW,GAAG3D,UAAU,CAAC,KAAK,CAAC;IACrC,MAAMU,MAAM,GAAGX,QAAQ,CAAC,MAAM;MAC5B,IAAIwB,KAAK,CAACe,QAAQ,IAAIL,KAAK,CAACY,KAAK,CAACe,MAAM,GAAG,CAAC,EAAE;QAC5C,OAAO7B,CAAC,CAAC,mCAAmC,EAAEE,KAAK,CAACY,KAAK,CAACe,MAAM,CAAC;MACnE;MAEA,MAAMC,aAAa,GAAI5B,KAAK,CAACY,KAAK,CAAC,CAAC,CAAC,IAAIf,OAAO,CAACgB,OAAO,CAACb,KAAK,CAACY,KAAK,CAAC,CAAC,CAAC,CAAC,GACpEf,OAAO,CAACgC,MAAM,CAAChC,OAAO,CAACL,IAAI,CAACQ,KAAK,CAACY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAEtB,KAAK,CAACR,gBAAgB,CAAC,GACpEgB,CAAC,CAACR,KAAK,CAACb,MAAM,CAAC;MAEnB,OAAOa,KAAK,CAACwC,SAAS,IAAIF,aAAa,CAACG,KAAK,CAAC,GAAG,CAAC,CAACJ,MAAM,KAAK,CAAC,GAC3DC,aAAa,CAACI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAChCJ,aAAa;IACnB,CAAC,CAAC;IAEF,MAAMpC,IAAI,GAAGxB,KAAK,CAAC,MAAM6B,OAAO,CAACoC,QAAQ,CAAC,GAAGX,IAAI,CAACV,KAAK,IAAII,KAAK,CAACJ,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;IACjF,MAAMsB,aAAa,GAAGlE,KAAK,CAAC,MAAM6B,OAAO,CAACgC,MAAM,CAACrC,IAAI,CAACoB,KAAK,EAAE,cAAc,CAAC,CAAC;IAC7E,MAAMuB,SAAS,GAAGnE,KAAK,CAAC,MAAM6B,OAAO,CAACgC,MAAM,CAACrC,IAAI,CAACoB,KAAK,EAAE,YAAY,CAAC,CAAC;IACvE,MAAMwB,QAAQ,GAAGpE,KAAK,CAAC,MAAM6B,OAAO,CAACgC,MAAM,CAACrC,IAAI,CAACoB,KAAK,EAAE,MAAM,CAAC,CAAC;;IAEhE;IACA,MAAMyB,gBAAgB,GAAGrE,KAAK,CAAC,MAAM,qBAAqB0D,WAAW,CAACd,KAAK,GAAG,UAAU,GAAG,EAAE,aAAa,CAAC;IAE3G,MAAM0B,QAAQ,GAAGxE,QAAQ,CAAC,MAAM;MAC9B,IAAIwB,KAAK,CAACgD,QAAQ,EAAE,OAAO,IAAI;MAE/B,MAAMC,OAAO,GAAG,EAAE;MAElB,IAAIjC,QAAQ,CAACM,KAAK,KAAK,OAAO,EAAE;QAC9B2B,OAAO,CAACC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;MACzE,CAAC,MAAM;QACL,IAAIC,KAAK,GAAG5C,OAAO,CAACL,IAAI,CAAC,CAAC;QAE1BiD,KAAK,GAAG5C,OAAO,CAACsB,YAAY,CAACsB,KAAK,CAAC;QACnCA,KAAK,GAAG5C,OAAO,CAAC4B,QAAQ,CAACgB,KAAK,EAAEzB,KAAK,CAACJ,KAAK,CAAC;QAC5C6B,KAAK,GAAG5C,OAAO,CAAC6C,OAAO,CAACD,KAAK,EAAEnB,IAAI,CAACV,KAAK,CAAC;QAE1C,IAAIL,OAAO,CAACK,KAAK,EAAE;UACjB,MAAM+B,YAAY,GAAG9C,OAAO,CAAC+C,OAAO,CAAC/C,OAAO,CAACsB,YAAY,CAACsB,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;UACrE,MAAMI,WAAW,GAAGhD,OAAO,CAAC+C,OAAO,CAAC/C,OAAO,CAAC2B,WAAW,CAACiB,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;UAEnE5C,OAAO,CAACiD,OAAO,CAACvC,OAAO,CAACK,KAAK,EAAE+B,YAAY,CAAC,IAAIJ,OAAO,CAACC,IAAI,CAAC,YAAY,CAAC;UAC1E3C,OAAO,CAACiD,OAAO,CAACvC,OAAO,CAACK,KAAK,EAAEiC,WAAW,CAAC,IAAIN,OAAO,CAACC,IAAI,CAAC,WAAW,CAAC;QAC1E;QAEA,IAAIhC,OAAO,CAACI,KAAK,EAAE;UACjB,MAAMmC,cAAc,GAAGlD,OAAO,CAAC+C,OAAO,CAAC/C,OAAO,CAACmD,UAAU,CAACP,KAAK,CAAC,EAAE,CAAC,CAAC;UACpE,MAAMQ,aAAa,GAAGpD,OAAO,CAAC+C,OAAO,CAAC/C,OAAO,CAACqD,SAAS,CAACT,KAAK,CAAC,EAAE,CAAC,CAAC;UAElE5C,OAAO,CAACiD,OAAO,CAACC,cAAc,EAAEvC,OAAO,CAACI,KAAK,CAAC,IAAI2B,OAAO,CAACC,IAAI,CAAC,YAAY,CAAC;UAC5E3C,OAAO,CAACiD,OAAO,CAACG,aAAa,EAAEzC,OAAO,CAACI,KAAK,CAAC,IAAI2B,OAAO,CAACC,IAAI,CAAC,WAAW,CAAC;QAC5E;MACF;MAEA,OAAOD,OAAO;IAChB,CAAC,CAAC;IAEF,MAAMY,YAAY,GAAGrF,QAAQ,CAAC,MAAM;MAClC,OAAOwB,KAAK,CAAC6D,YAAY,IAAIC,aAAa;IAC5C,CAAC,CAAC;IAEF,MAAMC,aAAa,GAAGvF,QAAQ,CAAC,MAAM;MACnC,OAAOwB,KAAK,CAAC+D,aAAa,IAAIC,cAAc;IAC9C,CAAC,CAAC;IAEF,SAASC,gBAAgBA,CAAEC,KAAc,EAAEC,GAAY,EAAE;MACvD,MAAMC,YAAY,GAAGpE,KAAK,CAACoE,YAAY;MACvC,IAAI,OAAOA,YAAY,KAAK,UAAU,EAAE,OAAO,IAAI;MAEnD,MAAMC,IAAI,GAAG,CAAC,GAAGjG,QAAQ,CAACmC,OAAO,EAAE2D,KAAK,EAAEC,GAAG,CAAC;MAE9C,KAAK,IAAIrD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuD,IAAI,EAAEvD,CAAC,EAAE,EAAE;QAC7B,IAAIsD,YAAY,CAAC7D,OAAO,CAAC+C,OAAO,CAACY,KAAK,EAAEpD,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI;MAC1D;MACA,OAAO,KAAK;IACd;IAEA,SAASgD,aAAaA,CAAE9B,IAAY,EAAE;MACpC,IAAI,OAAOhC,KAAK,CAACoE,YAAY,KAAK,UAAU,EAAE;QAC5C,MAAMlC,WAAW,GAAG3B,OAAO,CAACoC,QAAQ,CAAC,GAAGX,IAAI,QAAQ,CAAC;QACrD,OAAOiC,gBAAgB,CAAC/B,WAAW,EAAE3B,OAAO,CAACqD,SAAS,CAAC1B,WAAW,CAAC,CAAC;MACtE;MAEA,IAAIoC,KAAK,CAACC,OAAO,CAACvE,KAAK,CAACoE,YAAY,CAAC,IAAIpE,KAAK,CAACoE,YAAY,CAAC/B,MAAM,EAAE;QAClE,KAAK,MAAMnC,IAAI,IAAIF,KAAK,CAACoE,YAAY,EAAE;UACrC,IAAI7D,OAAO,CAAC0B,OAAO,CAAC1B,OAAO,CAACL,IAAI,CAACA,IAAI,CAAC,CAAC,KAAK8B,IAAI,EAAE,OAAO,IAAI;QAC/D;QACA,OAAO,KAAK;MACd;MAEA,OAAO,IAAI;IACb;IAEA,SAASgC,cAAcA,CAAEtC,KAAa,EAAE;MACtC,IAAI,OAAO1B,KAAK,CAACoE,YAAY,KAAK,UAAU,EAAE;QAC5C,MAAMI,cAAc,GAAGnF,MAAM,CAACqC,KAAK,GAAG,CAAC,CAAC,CAAC+C,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;QACzD,MAAM5C,YAAY,GAAGtB,OAAO,CAACoC,QAAQ,CAAC,GAAGX,IAAI,CAACV,KAAK,IAAIkD,cAAc,KAAK,CAAC;QAC3E,OAAOP,gBAAgB,CAACpC,YAAY,EAAEtB,OAAO,CAACmD,UAAU,CAAC7B,YAAY,CAAC,CAAC;MACzE;MAEA,IAAIyC,KAAK,CAACC,OAAO,CAACvE,KAAK,CAACoE,YAAY,CAAC,IAAIpE,KAAK,CAACoE,YAAY,CAAC/B,MAAM,EAAE;QAClE,KAAK,MAAMnC,IAAI,IAAIF,KAAK,CAACoE,YAAY,EAAE;UACrC,IACE7D,OAAO,CAAC0B,OAAO,CAAC1B,OAAO,CAACL,IAAI,CAACA,IAAI,CAAC,CAAC,KAAK8B,IAAI,CAACV,KAAK,IAClDf,OAAO,CAACqB,QAAQ,CAACrB,OAAO,CAACL,IAAI,CAACA,IAAI,CAAC,CAAC,KAAKwB,KAAK,EAC9C,OAAO,IAAI;QACf;QACA,OAAO,KAAK;MACd;MAEA,OAAO,IAAI;IACb;;IAEA;IACA;IACA;;IAEA,SAASgD,gBAAgBA,CAAA,EAAI;MAC3B,IAAIhD,KAAK,CAACJ,KAAK,GAAG,EAAE,EAAE;QACpBI,KAAK,CAACJ,KAAK,EAAE;MACf,CAAC,MAAM;QACLU,IAAI,CAACV,KAAK,EAAE;QACZI,KAAK,CAACJ,KAAK,GAAG,CAAC;QACfqD,YAAY,CAAC,CAAC;MAChB;MACAC,aAAa,CAAC,CAAC;IACjB;IAEA,SAASC,gBAAgBA,CAAA,EAAI;MAC3B,IAAInD,KAAK,CAACJ,KAAK,GAAG,CAAC,EAAE;QACnBI,KAAK,CAACJ,KAAK,EAAE;MACf,CAAC,MAAM;QACLU,IAAI,CAACV,KAAK,EAAE;QACZI,KAAK,CAACJ,KAAK,GAAG,EAAE;QAChBqD,YAAY,CAAC,CAAC;MAChB;MACAC,aAAa,CAAC,CAAC;IACjB;IAEA,SAASE,eAAeA,CAAA,EAAI;MAC1B9C,IAAI,CAACV,KAAK,EAAE;MACZ,IAAIJ,OAAO,CAACI,KAAK,EAAE;QACjB,MAAMyD,UAAU,GAAGxE,OAAO,CAACoC,QAAQ,CAAC,GAAGX,IAAI,CAACV,KAAK,IAAII,KAAK,CAACJ,KAAK,GAAG,CAAC,KAAK,CAAC;QAC1E,IAAIf,OAAO,CAACiD,OAAO,CAACuB,UAAU,EAAE7D,OAAO,CAACI,KAAK,CAAC,EAAE;UAC9CI,KAAK,CAACJ,KAAK,GAAGf,OAAO,CAACqB,QAAQ,CAACV,OAAO,CAACI,KAAK,CAAC;QAC/C;MACF;MACAqD,YAAY,CAAC,CAAC;IAChB;IAEA,SAASK,eAAeA,CAAA,EAAI;MAC1BhD,IAAI,CAACV,KAAK,EAAE;MACZ,IAAIL,OAAO,CAACK,KAAK,EAAE;QACjB,MAAMyD,UAAU,GAAGxE,OAAO,CAACmD,UAAU,CAACnD,OAAO,CAACoC,QAAQ,CAAC,GAAGX,IAAI,CAACV,KAAK,IAAII,KAAK,CAACJ,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9F,IAAIf,OAAO,CAACiD,OAAO,CAACvC,OAAO,CAACK,KAAK,EAAEyD,UAAU,CAAC,EAAE;UAC9CrD,KAAK,CAACJ,KAAK,GAAGf,OAAO,CAACqB,QAAQ,CAACX,OAAO,CAACK,KAAK,CAAC;QAC/C;MACF;MACAqD,YAAY,CAAC,CAAC;IAChB;IAEA,SAASM,WAAWA,CAAA,EAAI;MACtBjE,QAAQ,CAACM,KAAK,GAAG,OAAO;IAC1B;IAEA,SAAS4D,YAAYA,CAAA,EAAI;MACvBlE,QAAQ,CAACM,KAAK,GAAGN,QAAQ,CAACM,KAAK,KAAK,QAAQ,GAAG,OAAO,GAAG,QAAQ;IACnE;IAEA,SAAS6D,WAAWA,CAAA,EAAI;MACtBnE,QAAQ,CAACM,KAAK,GAAGN,QAAQ,CAACM,KAAK,KAAK,MAAM,GAAG,OAAO,GAAG,MAAM;IAC/D;IAEA,SAASsD,aAAaA,CAAA,EAAI;MACxB,IAAI5D,QAAQ,CAACM,KAAK,KAAK,QAAQ,EAAE4D,YAAY,CAAC,CAAC;IACjD;IAEA,SAASP,YAAYA,CAAA,EAAI;MACvB,IAAI3D,QAAQ,CAACM,KAAK,KAAK,MAAM,EAAE6D,WAAW,CAAC,CAAC;IAC9C;IAEAxG,KAAK,CAAC+B,KAAK,EAAE,CAAC0E,GAAG,EAAEC,MAAM,KAAK;MAC5B,MAAMC,SAAS,GAAGrG,WAAW,CAACoG,MAAM,CAAC;MACrC,MAAME,QAAQ,GAAGtG,WAAW,CAACmG,GAAG,CAAC;MAEjC,IAAI,CAACG,QAAQ,CAAClD,MAAM,EAAE;MAEtB,MAAMmD,MAAM,GAAGjF,OAAO,CAACL,IAAI,CAACoF,SAAS,CAACA,SAAS,CAACjD,MAAM,GAAG,CAAC,CAAC,CAAC;MAC5D,MAAMoD,KAAK,GAAGlF,OAAO,CAACL,IAAI,CAACqF,QAAQ,CAACA,QAAQ,CAAClD,MAAM,GAAG,CAAC,CAAC,CAAC;MAEzD,IAAI9B,OAAO,CAACmF,SAAS,CAACF,MAAM,EAAEC,KAAK,CAAC,EAAE;MAEtC,MAAME,QAAQ,GAAGpF,OAAO,CAACqB,QAAQ,CAAC6D,KAAK,CAAC;MACxC,MAAMG,OAAO,GAAGrF,OAAO,CAAC0B,OAAO,CAACwD,KAAK,CAAC;MAEtC,IAAIE,QAAQ,KAAKjE,KAAK,CAACJ,KAAK,EAAE;QAC5BI,KAAK,CAACJ,KAAK,GAAGqE,QAAQ;QACtBf,aAAa,CAAC,CAAC;MACjB;MAEA,IAAIgB,OAAO,KAAK5D,IAAI,CAACV,KAAK,EAAE;QAC1BU,IAAI,CAACV,KAAK,GAAGsE,OAAO;QACpBjB,YAAY,CAAC,CAAC;MAChB;MAEAvC,WAAW,CAACd,KAAK,GAAGf,OAAO,CAACsF,QAAQ,CAACL,MAAM,EAAEC,KAAK,CAAC;IACrD,CAAC,CAAC;IAEFzG,SAAS,CAAC,MAAM;MACd,MAAM8G,WAAW,GAAG7H,OAAO,CAAC8H,WAAW,CAAC/F,KAAK,CAAC;MAC9C,MAAMgG,uBAAuB,GAAGlH,IAAI,CAACxB,mBAAmB,CAACyI,WAAW,CAAC/F,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;MAC1F,MAAMiG,qBAAqB,GAAG1I,iBAAiB,CAACwI,WAAW,CAAC/F,KAAK,CAAC;MAClE,MAAMkG,oBAAoB,GAAGzI,gBAAgB,CAACsI,WAAW,CAAC/F,KAAK,CAAC;MAChE,MAAMmG,qBAAqB,GAAGrH,IAAI,CAACnB,iBAAiB,CAACoI,WAAW,CAAC/F,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;MACxF,MAAMoG,oBAAoB,GAAGtH,IAAI,CAACjB,gBAAgB,CAACkI,WAAW,CAAC/F,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;MAEtF,MAAMqG,WAAW,GAAG;QAClB7E,KAAK,EAAEjC,WAAW,CAAC+B,KAAK;QACxBnC,MAAM,EAAEA,MAAM,CAACmC,KAAK;QACpBgF,UAAU,EAAEvD,gBAAgB,CAACzB;MAC/B,CAAC;MAED,OAAAiF,YAAA,CAAAtI,OAAA,EAAAuI,WAAA,CAESV,WAAW;QAAA,SACRvG,WAAW,CAAC+B,KAAK;QAAA,SAClB,CACL,eAAe,EACf,kBAAkBN,QAAQ,CAACM,KAAK,EAAE,EAClC;UACE,0BAA0B,EAAEtB,KAAK,CAACyG;QACpC,CAAC,EACDhG,UAAU,CAACa,KAAK,EAChBtB,KAAK,CAAC0G,KAAK,CACZ;QAAA,SACM,CACL;UACE,wCAAwC,EAAE9H,aAAa,CAACoB,KAAK,CAACP,oBAAoB;QACpF,CAAC,EACDO,KAAK,CAAC2G,KAAK;MACZ,IACQ;QACP/G,KAAK,EAAEA,CAAA,KAAMU,KAAK,CAACV,KAAK,GAAG,CAAC,IAAAgH,mBAAA;UAAA;QAAA,IAEtBpG,CAAC,CAACR,KAAK,CAACJ,KAAK,CAAC,EAEnB;QACDT,MAAM,EAAEA,CAAA,KAAMmB,KAAK,CAACnB,MAAM,GAAAoH,YAAA,CAAAxI,iBAAA;UAAA,YAEZ;YACRR,iBAAiB,EAAE;cAAE,GAAG8I;YAAY;UACtC;QAAC;UAAA/G,OAAA,EAAAA,CAAA,MAECgB,KAAK,CAACnB,MAAM,GAAGkH,WAAW,CAAC;QAAA,KAAAE,YAAA,CAAAhJ,iBAAA,EAAAiJ,WAAA;UAAA;QAAA,GAKxBP,qBAAqB,EACrBI,WAAW;UAAA,WACNrF,QAAQ,CAACM,KAAK,KAAK,OAAO,GAAG2D,WAAW,GAAGtE;QAAS,IACrD;UACPkG,OAAO,EAAEvG,KAAK,CAACuG,OAAO;UACtBC,MAAM,EAAExG,KAAK,CAACwG;QAChB,CAAC,CAEJ;QACDxH,OAAO,EAAEA,CAAA,KAAAsH,mBAAA,CAAAG,SAAA,SAAAR,YAAA,CAAAjJ,mBAAA,EAAAkJ,WAAA,CAGER,uBAAuB;UAAA,YACjBhD,QAAQ,CAAC1B,KAAK;UAAA,YACdN,QAAQ,CAACM,KAAK;UAAA,QAClBsB,aAAa,CAACtB,KAAK;UAAA,aACduB,SAAS,CAACvB,KAAK;UAAA,YAChBwB,QAAQ,CAACxB,KAAK;UAAA,gBACVoD,gBAAgB;UAAA,gBAChBG,gBAAgB;UAAA,oBACZC,eAAe;UAAA,oBACfE,eAAe;UAAA,iBAClBE,YAAY;UAAA,gBACbC;QAAW,IACjB;UAAE7F,OAAO,EAAEgB,KAAK,CAAC0G;QAAS,CAAC,GAAAT,YAAA,CAAAzI,eAAA;UAAA;QAAA;UAAAwB,OAAA,EAAAA,CAAA,MAIlC0B,QAAQ,CAACM,KAAK,KAAK,QAAQ,GAAAiF,YAAA,CAAA5I,iBAAA,EAAA6I,WAAA;YAAA;UAAA,GAGpBL,qBAAqB;YAAA,cAChBzE,KAAK,CAACJ,KAAK;YAAA,wBAAA2F,MAAA,IAAXvF,KAAK,CAACJ,KAAK,GAAA2F,MAAA,EAKCrC,aAAa;YAAA,OAJ7B3D,OAAO,CAACK,KAAK;YAAA,OACbJ,OAAO,CAACI,KAAK;YAAA,QACZU,IAAI,CAACV,KAAK;YAAA,iBACDyC,aAAa,CAACzC;UAAK;YAGhCI,KAAK,EAAEpB,KAAK,CAACoB;UAAK,KAErBV,QAAQ,CAACM,KAAK,KAAK,MAAM,GAAAiF,YAAA,CAAA1I,gBAAA,EAAA2I,WAAA;YAAA;UAAA,GAGpBJ,oBAAoB;YAAA,cACfpE,IAAI,CAACV,KAAK;YAAA,wBAAA2F,MAAA,IAAVjF,IAAI,CAACV,KAAK,GAAA2F,MAAA,EAIEtC,YAAY;YAAA,OAH5B1D,OAAO,CAACK,KAAK;YAAA,OACbJ,OAAO,CAACI,KAAK;YAAA,gBACJuC,YAAY,CAACvC;UAAK;YAG9BU,IAAI,EAAE1B,KAAK,CAAC0B;UAAI,KAAAuE,YAAA,CAAA9I,gBAAA,EAAA+I,WAAA;YAAA;UAAA,GAKdN,oBAAoB;YAAA,cACfxF,KAAK,CAACY,KAAK;YAAA,uBAAA2F,MAAA,IAAXvG,KAAK,CAACY,KAAK,GAAA2F,MAAA;YAAA,SACLvF,KAAK,CAACJ,KAAK;YAAA,mBAAA2F,MAAA,IAAXvF,KAAK,CAACJ,KAAK,GAAA2F,MAAA,EAEVrC,aAAa;YAAA,QADf5C,IAAI,CAACV,KAAK;YAAA,kBAAA2F,MAAA,IAAVjF,IAAI,CAACV,KAAK,GAAA2F,MAAA,EAETtC,YAAY;YAAA,OACtB1D,OAAO,CAACK,KAAK;YAAA,OACbJ,OAAO,CAACI;UAAK;YAEhB4F,GAAG,EAAE5G,KAAK,CAAC4G;UAAG,EAEpB;QAAA,IAGN;QACDC,OAAO,EAAE7G,KAAK,CAAC6G;MACjB,CAAC;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VDatePicker.js","names":["makeVDatePickerControlsProps","VDatePickerControls","VDatePickerHeader","makeVDatePickerMonthProps","VDatePickerMonth","makeVDatePickerMonthsProps","VDatePickerMonths","makeVDatePickerYearsProps","VDatePickerYears","VFadeTransition","VDefaultsProvider","makeVPickerProps","VPicker","useCalendarRange","useDate","daysDiff","useLocale","useRtl","useProxiedModel","computed","shallowRef","toRef","watch","convertToUnit","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDatePickerProps","header","type","String","default","headerColor","headerDateFormat","landscapeHeaderWidth","Number","weeksInMonth","title","modelValue","VDatePicker","name","props","emits","date","setup","_ref","emit","slots","adapter","t","rtlClasses","model","undefined","v","map","i","multiple","viewMode","minDate","maxDate","clampDate","internal","today","value","isValid","color","_month","month","get","getMonth","startOfMonth","set","_year","year","getYear","startOfYear","setMonth","isReversing","length","formattedDate","format","landscape","split","replace","monthTwoDigits","padStart","parseISO","monthYearText","monthText","yearText","headerTransition","disabled","targets","push","_date","setYear","prevMonthEnd","addDays","prevYearEnd","isAfter","nextMonthStart","endOfMonth","nextYearStart","endOfYear","allowedYears","isYearAllowed","allowedMonths","isMonthAllowed","isAllowedInRange","start","end","allowedDates","days","Array","isArray","onClickNextMonth","onUpdateYear","onUpdateMonth","onClickPrevMonth","onClickNextYear","monthStart","onClickPrevYear","onClickDate","onClickMonth","onClickYear","val","oldVal","arrBefore","arrAfter","before","after","isSameDay","newMonth","newYear","isBefore","pickerProps","filterProps","datePickerControlsProps","datePickerHeaderProps","datePickerMonthProps","datePickerMonthsProps","datePickerYearsProps","headerProps","transition","_createVNode","_mergeProps","showWeek","class","style","_createElementVNode","prepend","append","_Fragment","controls","$event","day","actions"],"sources":["../../../src/components/VDatePicker/VDatePicker.tsx"],"sourcesContent":["// Styles\nimport './VDatePicker.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from './VDatePickerControls'\nimport { VDatePickerHeader } from './VDatePickerHeader'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from './VDatePickerMonth'\nimport { makeVDatePickerMonthsProps, VDatePickerMonths } from './VDatePickerMonths'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useCalendarRange } from '@/composables/calendar'\nimport { useDate } from '@/composables/date'\nimport { daysDiff } from '@/composables/date/date'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, shallowRef, toRef, watch } from 'vue'\nimport { convertToUnit, genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VDatePickerControlsDefaultSlotProps } from './VDatePickerControls'\nimport type { VDatePickerHeaderSlots } from './VDatePickerHeader'\nimport type { VDatePickerMonthSlots } from './VDatePickerMonth'\nimport type { VDatePickerMonthsSlots } from './VDatePickerMonths'\nimport type { VDatePickerYearsSlots } from './VDatePickerYears'\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\nimport type { GenericProps } from '@/util'\n\n// Types\nexport type VDatePickerSlots =\n & Omit<VPickerSlots, 'header' | 'default'>\n & Omit<VDatePickerHeaderSlots, 'default'>\n & VDatePickerYearsSlots\n & VDatePickerMonthsSlots\n & VDatePickerMonthSlots\n & {\n header: {\n header: string\n transition: string\n }\n controls: VDatePickerControlsDefaultSlotProps\n }\n\nexport const makeVDatePickerProps = propsFactory({\n // TODO: implement in v3.5\n // calendarIcon: {\n // type: String,\n // default: '$calendar',\n // },\n // keyboardIcon: {\n // type: String,\n // default: '$edit',\n // },\n // inputMode: {\n // type: String as PropType<'calendar' | 'keyboard'>,\n // default: 'calendar',\n // },\n // inputText: {\n // type: String,\n // default: '$vuetify.datePicker.input.placeholder',\n // },\n // inputPlaceholder: {\n // type: String,\n // default: 'dd/mm/yyyy',\n // },\n header: {\n type: String,\n default: '$vuetify.datePicker.header',\n },\n headerColor: String,\n headerDateFormat: {\n type: String,\n default: 'normalDateWithWeekday',\n },\n landscapeHeaderWidth: [Number, String],\n\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps({\n weeksInMonth: 'static' as const,\n }),\n ...omit(makeVDatePickerMonthsProps(), ['modelValue']),\n ...omit(makeVDatePickerYearsProps(), ['modelValue']),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n\n modelValue: null,\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent<new <\n T,\n Multiple extends boolean | 'range' | number | (string & {}) = false,\n TModel = Multiple extends true | number | string\n ? T[]\n : T,\n> (\n props: {\n modelValue?: TModel\n 'onUpdate:modelValue'?: (value: TModel) => void\n multiple?: Multiple\n },\n slots: VDatePickerSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n 'update:month': (date: any) => true,\n 'update:year': (date: any) => true,\n // 'update:inputMode': (date: any) => true,\n 'update:viewMode': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n const { rtlClasses } = useRtl()\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => wrapInArray(v).map(i => adapter.date(i)),\n v => props.multiple ? v : v[0],\n )\n\n const viewMode = useProxiedModel(props, 'viewMode')\n // const inputMode = useProxiedModel(props, 'inputMode')\n\n const { minDate, maxDate, clampDate } = useCalendarRange(props)\n\n const internal = computed(() => {\n const today = adapter.date()\n const value = model.value?.[0]\n ? adapter.date(model.value[0])\n : clampDate(today)\n\n return value && adapter.isValid(value) ? value : today\n })\n const headerColor = toRef(() => props.headerColor ?? props.color)\n\n const _month = useProxiedModel(props, 'month')\n const month = computed({\n get: () => Number(_month.value ?? adapter.getMonth(adapter.startOfMonth(internal.value))),\n set: v => _month.value = v,\n })\n\n const _year = useProxiedModel(props, 'year')\n const year = computed({\n get: () => Number(_year.value ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))),\n set: v => _year.value = v,\n })\n\n const isReversing = shallowRef(false)\n const header = computed(() => {\n if (props.multiple && model.value.length > 1) {\n return t('$vuetify.datePicker.itemsSelected', model.value.length)\n }\n\n const formattedDate = (model.value[0] && adapter.isValid(model.value[0]))\n ? adapter.format(adapter.date(model.value[0]), props.headerDateFormat)\n : t(props.header)\n\n return props.landscape && formattedDate.split(' ').length === 3\n ? formattedDate.replace(' ', '\\n')\n : formattedDate\n })\n\n const date = toRef(() => {\n const monthTwoDigits = String(month.value + 1).padStart(2, '0')\n return adapter.parseISO(`${year.value}-${monthTwoDigits}-01`)\n })\n const monthYearText = toRef(() => adapter.format(date.value, 'monthAndYear'))\n const monthText = toRef(() => adapter.format(date.value, 'monthShort'))\n const yearText = toRef(() => adapter.format(date.value, 'year'))\n\n // const headerIcon = toRef(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = toRef(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n\n const disabled = computed(() => {\n if (props.disabled) return true\n\n const targets = []\n\n if (viewMode.value !== 'month') {\n targets.push(...['prev-month', 'next-month', 'prev-year', 'next-year'])\n } else {\n let _date = adapter.date()\n\n _date = adapter.startOfMonth(_date)\n _date = adapter.setMonth(_date, month.value)\n _date = adapter.setYear(_date, year.value)\n\n if (minDate.value) {\n const prevMonthEnd = adapter.addDays(adapter.startOfMonth(_date), -1)\n const prevYearEnd = adapter.addDays(adapter.startOfYear(_date), -1)\n\n adapter.isAfter(minDate.value, prevMonthEnd) && targets.push('prev-month')\n adapter.isAfter(minDate.value, prevYearEnd) && targets.push('next-year')\n }\n\n if (maxDate.value) {\n const nextMonthStart = adapter.addDays(adapter.endOfMonth(_date), 1)\n const nextYearStart = adapter.addDays(adapter.endOfYear(_date), 1)\n\n adapter.isAfter(nextMonthStart, maxDate.value) && targets.push('next-month')\n adapter.isAfter(nextYearStart, maxDate.value) && targets.push('next-year')\n }\n }\n\n return targets\n })\n\n const allowedYears = computed(() => {\n return props.allowedYears || isYearAllowed\n })\n\n const allowedMonths = computed(() => {\n return props.allowedMonths || isMonthAllowed\n })\n\n function isAllowedInRange (start: unknown, end: unknown) {\n const allowedDates = props.allowedDates\n if (typeof allowedDates !== 'function') return true\n\n const days = 1 + daysDiff(adapter, start, end)\n\n for (let i = 0; i < days; i++) {\n if (allowedDates(adapter.addDays(start, i))) return true\n }\n return false\n }\n\n function isYearAllowed (year: number) {\n if (typeof props.allowedDates === 'function') {\n const startOfYear = adapter.parseISO(`${year}-01-01`)\n return isAllowedInRange(startOfYear, adapter.endOfYear(startOfYear))\n }\n\n if (Array.isArray(props.allowedDates) && props.allowedDates.length) {\n for (const date of props.allowedDates) {\n if (adapter.getYear(adapter.date(date)) === year) return true\n }\n return false\n }\n\n return true\n }\n\n function isMonthAllowed (month: number) {\n if (typeof props.allowedDates === 'function') {\n const monthTwoDigits = String(month + 1).padStart(2, '0')\n const startOfMonth = adapter.parseISO(`${year.value}-${monthTwoDigits}-01`)\n return isAllowedInRange(startOfMonth, adapter.endOfMonth(startOfMonth))\n }\n\n if (Array.isArray(props.allowedDates) && props.allowedDates.length) {\n for (const date of props.allowedDates) {\n if (\n adapter.getYear(adapter.date(date)) === year.value &&\n adapter.getMonth(adapter.date(date)) === month\n ) return true\n }\n return false\n }\n\n return true\n }\n\n // function onClickAppend () {\n // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n // }\n\n function onClickNextMonth () {\n if (month.value < 11) {\n month.value++\n } else {\n year.value++\n month.value = 0\n onUpdateYear()\n }\n onUpdateMonth()\n }\n\n function onClickPrevMonth () {\n if (month.value > 0) {\n month.value--\n } else {\n year.value--\n month.value = 11\n onUpdateYear()\n }\n onUpdateMonth()\n }\n\n function onClickNextYear () {\n year.value++\n if (maxDate.value) {\n const monthTwoDigits = String(month.value + 1).padStart(2, '0')\n const monthStart = adapter.parseISO(`${year.value}-${monthTwoDigits}-01`)\n if (adapter.isAfter(monthStart, maxDate.value)) {\n month.value = adapter.getMonth(maxDate.value)\n }\n }\n onUpdateYear()\n }\n\n function onClickPrevYear () {\n year.value--\n if (minDate.value) {\n const monthTwoDigits = String(month.value + 1).padStart(2, '0')\n const monthStart = adapter.endOfMonth(adapter.parseISO(`${year.value}-${monthTwoDigits}-01`))\n if (adapter.isAfter(minDate.value, monthStart)) {\n month.value = adapter.getMonth(minDate.value)\n }\n }\n onUpdateYear()\n }\n\n function onClickDate () {\n viewMode.value = 'month'\n }\n\n function onClickMonth () {\n viewMode.value = viewMode.value === 'months' ? 'month' : 'months'\n }\n\n function onClickYear () {\n viewMode.value = viewMode.value === 'year' ? 'month' : 'year'\n }\n\n function onUpdateMonth () {\n if (viewMode.value === 'months') onClickMonth()\n }\n\n function onUpdateYear () {\n if (viewMode.value === 'year') onClickYear()\n }\n\n watch(model, (val, oldVal) => {\n const arrBefore = wrapInArray(oldVal)\n const arrAfter = wrapInArray(val)\n\n if (!arrAfter.length) return\n\n const before = adapter.date(arrBefore[arrBefore.length - 1])\n const after = adapter.date(arrAfter[arrAfter.length - 1])\n\n if (adapter.isSameDay(before, after)) return\n\n const newMonth = adapter.getMonth(after)\n const newYear = adapter.getYear(after)\n\n if (newMonth !== month.value) {\n month.value = newMonth\n onUpdateMonth()\n }\n\n if (newYear !== year.value) {\n year.value = newYear\n onUpdateYear()\n }\n\n isReversing.value = adapter.isBefore(before, after)\n })\n\n useRender(() => {\n const pickerProps = VPicker.filterProps(props)\n const datePickerControlsProps = omit(VDatePickerControls.filterProps(props), ['viewMode'])\n const datePickerHeaderProps = VDatePickerHeader.filterProps(props)\n const datePickerMonthProps = VDatePickerMonth.filterProps(props)\n const datePickerMonthsProps = omit(VDatePickerMonths.filterProps(props), ['modelValue'])\n const datePickerYearsProps = omit(VDatePickerYears.filterProps(props), ['modelValue'])\n\n const headerProps = {\n color: headerColor.value,\n header: header.value,\n transition: headerTransition.value,\n }\n\n return (\n <VPicker\n { ...pickerProps }\n color={ headerColor.value }\n class={[\n 'v-date-picker',\n `v-date-picker--${viewMode.value}`,\n {\n 'v-date-picker--show-week': props.showWeek,\n },\n rtlClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-date-picker-landscape-header-width': convertToUnit(props.landscapeHeaderWidth),\n },\n props.style,\n ]}\n v-slots={{\n title: () => slots.title?.() ?? (\n <div class=\"v-date-picker__title\">\n { t(props.title) }\n </div>\n ),\n header: () => slots.header ? (\n <VDefaultsProvider\n defaults={{\n VDatePickerHeader: { ...headerProps },\n }}\n >\n { slots.header?.(headerProps) }\n </VDefaultsProvider>\n ) : (\n <VDatePickerHeader\n key=\"header\"\n { ...datePickerHeaderProps }\n { ...headerProps }\n onClick={ viewMode.value !== 'month' ? onClickDate : undefined }\n v-slots={{\n prepend: slots.prepend,\n append: slots.append,\n }}\n />\n ),\n default: () => (\n <>\n <VDatePickerControls\n { ...datePickerControlsProps }\n disabled={ disabled.value }\n viewMode={ viewMode.value }\n text={ monthYearText.value }\n monthText={ monthText.value }\n yearText={ yearText.value }\n onClick:next={ onClickNextMonth }\n onClick:prev={ onClickPrevMonth }\n onClick:nextYear={ onClickNextYear }\n onClick:prevYear={ onClickPrevYear }\n onClick:month={ onClickMonth }\n onClick:year={ onClickYear }\n v-slots={{ default: slots.controls }}\n />\n\n <VFadeTransition hideOnLeave>\n { viewMode.value === 'months' ? (\n <VDatePickerMonths\n key=\"date-picker-months\"\n { ...datePickerMonthsProps }\n v-model={ month.value }\n min={ minDate.value }\n max={ maxDate.value }\n year={ year.value }\n allowedMonths={ allowedMonths.value }\n onUpdate:modelValue={ onUpdateMonth }\n >\n {{ month: slots.month }}\n </VDatePickerMonths>\n ) : viewMode.value === 'year' ? (\n <VDatePickerYears\n key=\"date-picker-years\"\n { ...datePickerYearsProps }\n v-model={ year.value }\n min={ minDate.value }\n max={ maxDate.value }\n allowedYears={ allowedYears.value }\n onUpdate:modelValue={ onUpdateYear }\n >\n {{ year: slots.year }}\n </VDatePickerYears>\n ) : (\n <VDatePickerMonth\n key=\"date-picker-month\"\n { ...datePickerMonthProps }\n v-model={ model.value }\n v-model:month={ month.value }\n v-model:year={ year.value }\n onUpdate:month={ onUpdateMonth }\n onUpdate:year={ onUpdateYear }\n min={ minDate.value }\n max={ maxDate.value }\n >\n {{ day: slots.day }}\n </VDatePickerMonth>\n )}\n </VFadeTransition>\n </>\n ),\n actions: slots.actions,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType<typeof VDatePicker>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, createVNode as _createVNode } from "vue";
|
|
2
2
|
// Components
|
|
3
3
|
import { VDialog } from "../VDialog.js"; // Utilities
|
|
4
|
-
import { render, screen, userEvent } from '@test';
|
|
4
|
+
import { commands, render, screen, userEvent } from '@test';
|
|
5
5
|
import { nextTick, ref } from 'vue';
|
|
6
6
|
|
|
7
7
|
// Tests
|
|
8
8
|
describe('VDialog', () => {
|
|
9
9
|
it('should render correctly', async () => {
|
|
10
10
|
const model = ref(false);
|
|
11
|
-
|
|
12
|
-
element
|
|
13
|
-
} = render(() => _createElementVNode("div", null, [_createVNode(VDialog, {
|
|
11
|
+
render(() => _createElementVNode("div", null, [_createVNode(VDialog, {
|
|
14
12
|
"modelValue": model.value,
|
|
15
13
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
16
14
|
"data-testid": "dialog"
|
|
@@ -24,7 +22,7 @@ describe('VDialog', () => {
|
|
|
24
22
|
await nextTick();
|
|
25
23
|
await expect(screen.findByTestId('dialog')).resolves.toBeVisible();
|
|
26
24
|
await expect.element(await screen.findByTestId('content')).toBeVisible();
|
|
27
|
-
await
|
|
25
|
+
await commands.click(0, 0);
|
|
28
26
|
await expect.poll(() => model.value).toBeFalsy();
|
|
29
27
|
await expect.poll(() => screen.queryByTestId('dialog')).toBeNull();
|
|
30
28
|
await expect.poll(() => screen.queryByTestId('content')).toBeNull();
|
|
@@ -32,9 +30,7 @@ describe('VDialog', () => {
|
|
|
32
30
|
it('should emit afterLeave', async () => {
|
|
33
31
|
const model = ref(true);
|
|
34
32
|
const onAfterLeave = vi.fn();
|
|
35
|
-
|
|
36
|
-
element
|
|
37
|
-
} = render(() => _createElementVNode("div", null, [_createVNode(VDialog, {
|
|
33
|
+
render(() => _createElementVNode("div", null, [_createVNode(VDialog, {
|
|
38
34
|
"modelValue": model.value,
|
|
39
35
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
40
36
|
"onAfterLeave": onAfterLeave
|
|
@@ -43,7 +39,7 @@ describe('VDialog', () => {
|
|
|
43
39
|
"data-test": "content"
|
|
44
40
|
}, [_createTextVNode("Content")])]
|
|
45
41
|
})]));
|
|
46
|
-
await
|
|
42
|
+
await commands.click(0, 0);
|
|
47
43
|
await expect.poll(() => onAfterLeave).toHaveBeenCalledTimes(1);
|
|
48
44
|
});
|
|
49
45
|
it('should focus on the last element when shift + tab key is pressed on the first element', async () => {
|