vuetify 3.0.6 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_settings.scss +1 -0
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +460 -12
- package/dist/json/importMap-labs.json +28 -0
- package/dist/json/importMap.json +60 -60
- package/dist/json/tags.json +154 -8
- package/dist/json/web-types.json +1522 -26
- package/dist/vuetify-labs.d.ts +875 -0
- package/dist/vuetify-labs.js +9748 -0
- package/dist/vuetify.css +36 -55
- package/dist/vuetify.d.ts +173 -196
- package/dist/vuetify.esm.js +190 -128
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +189 -127
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +788 -780
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +3 -2
- package/lib/blueprints/md1.d.ts +3 -2
- package/lib/blueprints/md2.d.ts +3 -2
- package/lib/blueprints/md3.d.ts +3 -2
- package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
- package/lib/components/VAlert/index.d.ts +1 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +8 -10
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +3 -12
- package/lib/components/VAvatar/VAvatar.mjs +2 -1
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +23 -20
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +21 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.ts +4 -15
- package/lib/components/VColorPicker/VColorPicker.mjs +0 -1
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +8 -10
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +3 -12
- package/lib/components/VDivider/VDivider.css +1 -1
- package/lib/components/VDivider/VDivider.sass +1 -0
- package/lib/components/VDivider/_variables.scss +2 -1
- package/lib/components/VIcon/VIcon.mjs +25 -20
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/index.d.ts +4 -8
- package/lib/components/VList/VListItem.css +0 -4
- package/lib/components/VList/VListItem.sass +12 -6
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +10 -2
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/index.d.ts +11 -3
- package/lib/components/VPagination/VPagination.mjs +12 -5
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +3 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +11 -8
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs +11 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +2 -2
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +12 -3
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.css +2 -0
- package/lib/components/VSlider/VSliderThumb.sass +2 -0
- package/lib/components/VTable/VTable.css +12 -29
- package/lib/components/VTable/VTable.mjs +3 -3
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/VTable.sass +10 -17
- package/lib/components/VTable/_variables.scss +4 -2
- package/lib/components/index.d.ts +27 -51
- package/lib/composables/filter.mjs +18 -10
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/icons.mjs +12 -7
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +15 -13
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa-svg.d.ts +3 -2
- package/lib/iconsets/fa.d.ts +3 -2
- package/lib/iconsets/fa.mjs +2 -1
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.d.ts +3 -2
- package/lib/iconsets/fa4.mjs +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.d.ts +3 -2
- package/lib/iconsets/md.mjs +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.d.ts +3 -2
- package/lib/iconsets/mdi-svg.mjs +2 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.d.ts +3 -2
- package/lib/iconsets/mdi.mjs +2 -1
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.ts +19 -18
- package/lib/labs/VDataTable/VDataTable.css +119 -0
- package/lib/labs/VDataTable/VDataTable.mjs +146 -0
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTable.sass +106 -0
- package/lib/labs/VDataTable/VDataTableColumn.mjs +37 -0
- package/lib/labs/VDataTable/VDataTableColumn.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableFooter.css +22 -0
- package/lib/labs/VDataTable/VDataTableFooter.mjs +105 -0
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableFooter.sass +23 -0
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +88 -0
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +143 -0
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableRow.mjs +75 -0
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableRows.mjs +87 -0
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableServer.mjs +124 -0
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -0
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +154 -0
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -0
- package/lib/labs/VDataTable/_variables.scss +6 -0
- package/lib/labs/VDataTable/composables/expand.mjs +51 -0
- package/lib/labs/VDataTable/composables/expand.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/group.mjs +124 -0
- package/lib/labs/VDataTable/composables/group.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/headers.mjs +152 -0
- package/lib/labs/VDataTable/composables/headers.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/items.mjs +30 -0
- package/lib/labs/VDataTable/composables/items.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/options.mjs +44 -0
- package/lib/labs/VDataTable/composables/options.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/paginate.mjs +62 -0
- package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/select.mjs +57 -0
- package/lib/labs/VDataTable/composables/select.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/sort.mjs +109 -0
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -0
- package/lib/labs/VDataTable/composables/virtual.mjs +77 -0
- package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -0
- package/lib/labs/VDataTable/index.d.ts +705 -0
- package/lib/labs/VDataTable/index.mjs +6 -0
- package/lib/labs/VDataTable/index.mjs.map +1 -0
- package/lib/labs/VDataTable/types.mjs +2 -0
- package/lib/labs/VDataTable/types.mjs.map +1 -0
- package/lib/labs/VVirtualScroll/VVirtualScroll.css +11 -0
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs +118 -0
- package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -0
- package/lib/{components → labs}/VVirtualScroll/VVirtualScroll.sass +0 -5
- package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs +35 -0
- package/lib/labs/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -0
- package/lib/labs/VVirtualScroll/index.d.ts +154 -0
- package/lib/labs/VVirtualScroll/index.mjs +2 -0
- package/lib/labs/VVirtualScroll/index.mjs.map +1 -0
- package/lib/labs/components.d.ts +856 -0
- package/lib/labs/components.mjs +3 -0
- package/lib/labs/components.mjs.map +1 -0
- package/lib/labs/index.mjs +3 -0
- package/lib/labs/index.mjs.map +1 -0
- package/lib/util/defineComponent.mjs +4 -0
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +0 -38
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +4 -2
- package/lib/components/VDataTable/MobileRow.mjs +0 -63
- package/lib/components/VDataTable/MobileRow.mjs.map +0 -1
- package/lib/components/VDataTable/Row.mjs +0 -57
- package/lib/components/VDataTable/Row.mjs.map +0 -1
- package/lib/components/VDataTable/RowGroup.mjs +0 -48
- package/lib/components/VDataTable/RowGroup.mjs.map +0 -1
- package/lib/components/VDataTable/VDataTable.mjs +0 -577
- package/lib/components/VDataTable/VDataTable.mjs.map +0 -1
- package/lib/components/VDataTable/VDataTable.sass +0 -98
- package/lib/components/VDataTable/VDataTableHeader.mjs +0 -42
- package/lib/components/VDataTable/VDataTableHeader.mjs.map +0 -1
- package/lib/components/VDataTable/VDataTableHeader.sass +0 -80
- package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs +0 -96
- package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs.map +0 -1
- package/lib/components/VDataTable/VDataTableHeaderMobile.mjs +0 -89
- package/lib/components/VDataTable/VDataTableHeaderMobile.mjs.map +0 -1
- package/lib/components/VDataTable/VEditDialog.mjs +0 -127
- package/lib/components/VDataTable/VEditDialog.mjs.map +0 -1
- package/lib/components/VDataTable/VEditDialog.sass +0 -22
- package/lib/components/VDataTable/VVirtualTable.mjs +0 -132
- package/lib/components/VDataTable/VVirtualTable.mjs.map +0 -1
- package/lib/components/VDataTable/VVirtualTable.sass +0 -13
- package/lib/components/VDataTable/_variables.scss +0 -24
- package/lib/components/VDataTable/index.mjs +0 -21
- package/lib/components/VDataTable/index.mjs.map +0 -1
- package/lib/components/VDataTable/mixins/header.mjs +0 -71
- package/lib/components/VDataTable/mixins/header.mjs.map +0 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +0 -108
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +0 -1
- package/lib/components/VVirtualScroll/index.mjs +0 -4
- package/lib/components/VVirtualScroll/index.mjs.map +0 -1
|
@@ -105,7 +105,8 @@ interface IconAliases {
|
|
|
105
105
|
checkboxOff: IconValue;
|
|
106
106
|
checkboxIndeterminate: IconValue;
|
|
107
107
|
delimiter: IconValue;
|
|
108
|
-
|
|
108
|
+
sortAsc: IconValue;
|
|
109
|
+
sortDesc: IconValue;
|
|
109
110
|
expand: IconValue;
|
|
110
111
|
menu: IconValue;
|
|
111
112
|
subgroup: IconValue;
|
|
@@ -126,7 +127,7 @@ interface IconAliases {
|
|
|
126
127
|
}
|
|
127
128
|
interface IconProps {
|
|
128
129
|
tag: string;
|
|
129
|
-
icon
|
|
130
|
+
icon?: IconValue;
|
|
130
131
|
disabled?: Boolean;
|
|
131
132
|
}
|
|
132
133
|
declare type IconComponent = JSXComponent<IconProps>;
|
package/lib/blueprints/md1.d.ts
CHANGED
|
@@ -105,7 +105,8 @@ interface IconAliases {
|
|
|
105
105
|
checkboxOff: IconValue;
|
|
106
106
|
checkboxIndeterminate: IconValue;
|
|
107
107
|
delimiter: IconValue;
|
|
108
|
-
|
|
108
|
+
sortAsc: IconValue;
|
|
109
|
+
sortDesc: IconValue;
|
|
109
110
|
expand: IconValue;
|
|
110
111
|
menu: IconValue;
|
|
111
112
|
subgroup: IconValue;
|
|
@@ -126,7 +127,7 @@ interface IconAliases {
|
|
|
126
127
|
}
|
|
127
128
|
interface IconProps {
|
|
128
129
|
tag: string;
|
|
129
|
-
icon
|
|
130
|
+
icon?: IconValue;
|
|
130
131
|
disabled?: Boolean;
|
|
131
132
|
}
|
|
132
133
|
declare type IconComponent = JSXComponent<IconProps>;
|
package/lib/blueprints/md2.d.ts
CHANGED
|
@@ -105,7 +105,8 @@ interface IconAliases {
|
|
|
105
105
|
checkboxOff: IconValue;
|
|
106
106
|
checkboxIndeterminate: IconValue;
|
|
107
107
|
delimiter: IconValue;
|
|
108
|
-
|
|
108
|
+
sortAsc: IconValue;
|
|
109
|
+
sortDesc: IconValue;
|
|
109
110
|
expand: IconValue;
|
|
110
111
|
menu: IconValue;
|
|
111
112
|
subgroup: IconValue;
|
|
@@ -126,7 +127,7 @@ interface IconAliases {
|
|
|
126
127
|
}
|
|
127
128
|
interface IconProps {
|
|
128
129
|
tag: string;
|
|
129
|
-
icon
|
|
130
|
+
icon?: IconValue;
|
|
130
131
|
disabled?: Boolean;
|
|
131
132
|
}
|
|
132
133
|
declare type IconComponent = JSXComponent<IconProps>;
|
package/lib/blueprints/md3.d.ts
CHANGED
|
@@ -105,7 +105,8 @@ interface IconAliases {
|
|
|
105
105
|
checkboxOff: IconValue;
|
|
106
106
|
checkboxIndeterminate: IconValue;
|
|
107
107
|
delimiter: IconValue;
|
|
108
|
-
|
|
108
|
+
sortAsc: IconValue;
|
|
109
|
+
sortDesc: IconValue;
|
|
109
110
|
expand: IconValue;
|
|
110
111
|
menu: IconValue;
|
|
111
112
|
subgroup: IconValue;
|
|
@@ -126,7 +127,7 @@ interface IconAliases {
|
|
|
126
127
|
}
|
|
127
128
|
interface IconProps {
|
|
128
129
|
tag: string;
|
|
129
|
-
icon
|
|
130
|
+
icon?: IconValue;
|
|
130
131
|
disabled?: Boolean;
|
|
131
132
|
}
|
|
132
133
|
declare type IconComponent = JSXComponent<IconProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VAlertTitle.mjs","names":["createSimpleFunctional","VAlertTitle"],"sources":["../../../src/components/VAlert/VAlertTitle.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VAlertTitle = createSimpleFunctional('v-alert-title')\n\nexport type
|
|
1
|
+
{"version":3,"file":"VAlertTitle.mjs","names":["createSimpleFunctional","VAlertTitle"],"sources":["../../../src/components/VAlert/VAlertTitle.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VAlertTitle = createSimpleFunctional('v-alert-title')\n\nexport type VAlertTitle = InstanceType<typeof VAlertTitle>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,WAAW,GAAGD,sBAAsB,CAAC,eAAe,CAAC"}
|
|
@@ -20,6 +20,7 @@ import { computed, mergeProps, nextTick, ref, watch } from 'vue';
|
|
|
20
20
|
import { genericComponent, omit, useRender, wrapInArray } from "../../util/index.mjs";
|
|
21
21
|
import { filterVTextFieldProps, makeVTextFieldProps } from "../VTextField/VTextField.mjs"; // Types
|
|
22
22
|
function highlightResult(text, matches, length) {
|
|
23
|
+
if (matches == null) return text;
|
|
23
24
|
if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented');
|
|
24
25
|
return typeof matches === 'number' && ~matches ? _createVNode(_Fragment, null, [_createVNode("span", {
|
|
25
26
|
"class": "v-autocomplete__unmask"
|
|
@@ -73,7 +74,8 @@ export const VAutocomplete = genericComponent()({
|
|
|
73
74
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
74
75
|
});
|
|
75
76
|
const {
|
|
76
|
-
filteredItems
|
|
77
|
+
filteredItems,
|
|
78
|
+
getMatches
|
|
77
79
|
} = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value));
|
|
78
80
|
const selections = computed(() => {
|
|
79
81
|
return model.value.map(v => {
|
|
@@ -221,12 +223,8 @@ export const VAutocomplete = genericComponent()({
|
|
|
221
223
|
}, {
|
|
222
224
|
default: () => [!filteredItems.value.length && !props.hideNoData && (((_slots$noData = slots['no-data']) == null ? void 0 : _slots$noData.call(slots)) ?? _createVNode(VListItem, {
|
|
223
225
|
"title": t(props.noDataText)
|
|
224
|
-
}, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), filteredItems.value.map((
|
|
226
|
+
}, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), filteredItems.value.map((item, index) => {
|
|
225
227
|
var _slots$item;
|
|
226
|
-
let {
|
|
227
|
-
item,
|
|
228
|
-
matches
|
|
229
|
-
} = _ref2;
|
|
230
228
|
return ((_slots$item = slots.item) == null ? void 0 : _slots$item.call(slots, {
|
|
231
229
|
item,
|
|
232
230
|
index,
|
|
@@ -238,18 +236,18 @@ export const VAutocomplete = genericComponent()({
|
|
|
238
236
|
}, item.props, {
|
|
239
237
|
"onClick": () => select(item)
|
|
240
238
|
}), {
|
|
241
|
-
prepend:
|
|
239
|
+
prepend: _ref2 => {
|
|
242
240
|
let {
|
|
243
241
|
isSelected
|
|
244
|
-
} =
|
|
242
|
+
} = _ref2;
|
|
245
243
|
return props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {
|
|
246
244
|
"modelValue": isSelected,
|
|
247
245
|
"ripple": false
|
|
248
246
|
}, null) : undefined;
|
|
249
247
|
},
|
|
250
248
|
title: () => {
|
|
251
|
-
var _search$value;
|
|
252
|
-
return isPristine.value ? item.title : highlightResult(item.title,
|
|
249
|
+
var _getMatches, _search$value;
|
|
250
|
+
return isPristine.value ? item.title : highlightResult(item.title, (_getMatches = getMatches(item)) == null ? void 0 : _getMatches.title, ((_search$value = search.value) == null ? void 0 : _search$value.length) ?? 0);
|
|
253
251
|
}
|
|
254
252
|
});
|
|
255
253
|
}), (_slots$appendItem = slots['append-item']) == null ? void 0 : _slots$appendItem.call(slots)]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VAutocomplete.mjs","names":["makeSelectProps","VCheckboxBtn","VChip","VDefaultsProvider","VList","VListItem","VMenu","VTextField","makeFilterProps","useFilter","makeTransitionProps","forwardRefs","useItems","useLocale","useProxiedModel","computed","mergeProps","nextTick","ref","watch","genericComponent","omit","useRender","wrapInArray","filterVTextFieldProps","makeVTextFieldProps","highlightResult","text","matches","length","Array","isArray","Error","substr","VAutocomplete","name","props","search","String","filterKeys","modelValue","transition","emits","val","setup","slots","t","vTextFieldRef","isFocused","isPristine","menu","items","transformIn","transformOut","model","v","transformed","multiple","filteredItems","value","undefined","selections","map","find","item","valueComparator","selected","selection","listRef","onClear","e","openOnClear","onClickControl","hideNoData","readonly","onKeydown","includes","key","preventDefault","focus","onInput","target","onAfterLeave","onFocusin","onFocusout","relatedTarget","isSelecting","select","index","findIndex","splice","title","at","hasChips","chips","chip","textFieldProps","externalValue","menuIcon","default","eager","menuProps","noDataText","onClick","prepend","isSelected","hideSelected","onChipClose","stopPropagation","slotProps","closable","closableChips","size"],"sources":["../../../src/components/VAutocomplete/VAutocomplete.tsx"],"sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useItems } from '@/composables/items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, mergeProps, nextTick, ref, watch } from 'vue'\nimport { genericComponent, omit, useRender, wrapInArray } from '@/util'\nimport { filterVTextFieldProps, makeVTextFieldProps } from '../VTextField/VTextField'\n\n// Types\nimport type { FilterMatch } from '@/composables/filter'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nfunction highlightResult (text: string, matches: FilterMatch, length: number) {\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-autocomplete__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-autocomplete__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-autocomplete__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VAutocomplete = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VAutocomplete',\n\n props: {\n // TODO: implement post keyboard support\n // autoSelectFirst: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n },\n\n emits: {\n 'update:search': (val: any) => true,\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = ref(false)\n const isPristine = ref(true)\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const { filteredItems } = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value))\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n\n search.value = ''\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly\n ) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly) return\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n isPristine.value = true\n }\n\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n listRef.value?.focus('prev')\n }\n }\n\n function onInput (e: InputEvent) {\n search.value = (e.target as HTMLInputElement).value\n }\n\n function onAfterLeave () {\n if (isFocused.value) isPristine.value = true\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n const isSelecting = ref(false)\n\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n search.value = ''\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n\n isSelecting.value = true\n\n if (!slots.selection) {\n search.value = item.title\n }\n\n menu.value = false\n isPristine.value = true\n\n nextTick(() => (isSelecting.value = false))\n }\n }\n\n watch(isFocused, val => {\n if (val) {\n isSelecting.value = true\n search.value = props.multiple || !!slots.selection ? '' : String(selections.value.at(-1)?.props.title ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n menu.value = false\n search.value = ''\n }\n })\n\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return\n\n if (val) menu.value = true\n\n isPristine.value = !val\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ search.value }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n onInput={ onInput }\n class={[\n 'v-autocomplete',\n {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n [`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-autocomplete--selection-slot': !!slots.selection,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly={ props.readonly }\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onClick:input={ onClickControl }\n onFocus={ () => isFocused.value = true }\n onBlur={ () => isFocused.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-autocomplete__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n >\n { !filteredItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { filteredItems.value.map(({ item, matches }, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, matches.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n )) }\n\n { slots['append-item']?.() }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-autocomplete__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-autocomplete__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-autocomplete__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VAutocomplete = InstanceType<typeof VAutocomplete>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VAutocomplete.mjs","names":["makeSelectProps","VCheckboxBtn","VChip","VDefaultsProvider","VList","VListItem","VMenu","VTextField","makeFilterProps","useFilter","makeTransitionProps","forwardRefs","useItems","useLocale","useProxiedModel","computed","mergeProps","nextTick","ref","watch","genericComponent","omit","useRender","wrapInArray","filterVTextFieldProps","makeVTextFieldProps","highlightResult","text","matches","length","Array","isArray","Error","substr","VAutocomplete","name","props","search","String","filterKeys","modelValue","transition","emits","val","setup","slots","t","vTextFieldRef","isFocused","isPristine","menu","items","transformIn","transformOut","model","v","transformed","multiple","filteredItems","getMatches","value","undefined","selections","map","find","item","valueComparator","selected","selection","listRef","onClear","e","openOnClear","onClickControl","hideNoData","readonly","onKeydown","includes","key","preventDefault","focus","onInput","target","onAfterLeave","onFocusin","onFocusout","relatedTarget","isSelecting","select","index","findIndex","splice","title","at","hasChips","chips","chip","textFieldProps","externalValue","menuIcon","default","eager","menuProps","noDataText","onClick","prepend","isSelected","hideSelected","onChipClose","stopPropagation","slotProps","closable","closableChips","size"],"sources":["../../../src/components/VAutocomplete/VAutocomplete.tsx"],"sourcesContent":["// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useItems } from '@/composables/items'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, mergeProps, nextTick, ref, watch } from 'vue'\nimport { genericComponent, omit, useRender, wrapInArray } from '@/util'\nimport { filterVTextFieldProps, makeVTextFieldProps } from '../VTextField/VTextField'\n\n// Types\nimport type { FilterMatch } from '@/composables/filter'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nfunction highlightResult (text: string, matches: FilterMatch | undefined, length: number) {\n if (matches == null) return text\n\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-autocomplete__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-autocomplete__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-autocomplete__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VAutocomplete = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VAutocomplete',\n\n props: {\n // TODO: implement post keyboard support\n // autoSelectFirst: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: false }),\n },\n\n emits: {\n 'update:search': (val: any) => true,\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const isFocused = ref(false)\n const isPristine = ref(true)\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const { filteredItems, getMatches } = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value))\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n\n search.value = ''\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly\n ) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly) return\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n isPristine.value = true\n }\n\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n listRef.value?.focus('prev')\n }\n }\n\n function onInput (e: InputEvent) {\n search.value = (e.target as HTMLInputElement).value\n }\n\n function onAfterLeave () {\n if (isFocused.value) isPristine.value = true\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n const isSelecting = ref(false)\n\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n search.value = ''\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n\n isSelecting.value = true\n\n if (!slots.selection) {\n search.value = item.title\n }\n\n menu.value = false\n isPristine.value = true\n\n nextTick(() => (isSelecting.value = false))\n }\n }\n\n watch(isFocused, val => {\n if (val) {\n isSelecting.value = true\n search.value = props.multiple || !!slots.selection ? '' : String(selections.value.at(-1)?.props.title ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n menu.value = false\n search.value = ''\n }\n })\n\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return\n\n if (val) menu.value = true\n\n isPristine.value = !val\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ search.value }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n onInput={ onInput }\n class={[\n 'v-autocomplete',\n {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n [`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-autocomplete--selection-slot': !!slots.selection,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly={ props.readonly }\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onClick:input={ onClickControl }\n onFocus={ () => isFocused.value = true }\n onBlur={ () => isFocused.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-autocomplete__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n onAfterLeave={ onAfterLeave }\n { ...props.menuProps }\n >\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n >\n { !filteredItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { filteredItems.value.map((item, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, getMatches(item)?.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n )) }\n\n { slots['append-item']?.() }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-autocomplete__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-autocomplete__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-autocomplete__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VAutocomplete = InstanceType<typeof VAutocomplete>\n"],"mappings":"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"}
|
|
@@ -859,10 +859,7 @@ declare const VAutocomplete: {
|
|
|
859
859
|
search: vue.Ref<string | undefined> & {
|
|
860
860
|
readonly externalValue: string | undefined;
|
|
861
861
|
};
|
|
862
|
-
filteredItems: vue.
|
|
863
|
-
item: InternalItem<any>;
|
|
864
|
-
matches: Record<string, FilterMatch>;
|
|
865
|
-
}[]>;
|
|
862
|
+
filteredItems: vue.Ref<InternalItem<any>[]>;
|
|
866
863
|
select: (item: InternalItem) => void;
|
|
867
864
|
} & Omit<any, string | number | symbol>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
|
|
868
865
|
'update:search': (val: any) => boolean;
|
|
@@ -1273,10 +1270,7 @@ declare const VAutocomplete: {
|
|
|
1273
1270
|
search: vue.Ref<string | undefined> & {
|
|
1274
1271
|
readonly externalValue: string | undefined;
|
|
1275
1272
|
};
|
|
1276
|
-
filteredItems: vue.
|
|
1277
|
-
item: InternalItem<any>;
|
|
1278
|
-
matches: Record<string, FilterMatch>;
|
|
1279
|
-
}[]>;
|
|
1273
|
+
filteredItems: vue.Ref<InternalItem<any>[]>;
|
|
1280
1274
|
select: (item: InternalItem) => void;
|
|
1281
1275
|
} & Omit<any, string | number | symbol>> & {} & vue.ComponentCustomProperties;
|
|
1282
1276
|
__isFragment?: undefined;
|
|
@@ -1624,10 +1618,7 @@ declare const VAutocomplete: {
|
|
|
1624
1618
|
search: vue.Ref<string | undefined> & {
|
|
1625
1619
|
readonly externalValue: string | undefined;
|
|
1626
1620
|
};
|
|
1627
|
-
filteredItems: vue.
|
|
1628
|
-
item: InternalItem<any>;
|
|
1629
|
-
matches: Record<string, FilterMatch>;
|
|
1630
|
-
}[]>;
|
|
1621
|
+
filteredItems: vue.Ref<InternalItem<any>[]>;
|
|
1631
1622
|
select: (item: InternalItem) => void;
|
|
1632
1623
|
} & Omit<any, string | number | symbol>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
|
|
1633
1624
|
'update:search': (val: any) => boolean;
|
|
@@ -64,7 +64,8 @@ export const VAvatar = defineComponent({
|
|
|
64
64
|
default: () => [props.image ? _createVNode(VImg, {
|
|
65
65
|
"key": "image",
|
|
66
66
|
"src": props.image,
|
|
67
|
-
"alt": ""
|
|
67
|
+
"alt": "",
|
|
68
|
+
"cover": true
|
|
68
69
|
}, null) : props.icon ? _createVNode(VIcon, {
|
|
69
70
|
"key": "icon",
|
|
70
71
|
"icon": props.icon
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VAvatar.mjs","names":["VIcon","VImg","genOverlays","makeVariantProps","useVariant","IconValue","makeDensityProps","useDensity","makeRoundedProps","useRounded","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","defineComponent","propsFactory","useRender","makeVAvatarProps","start","Boolean","end","icon","image","String","variant","VAvatar","name","props","setup","slots","themeClasses","colorClasses","colorStyles","variantClasses","densityClasses","roundedClasses","sizeClasses","sizeStyles","value","default"],"sources":["../../../src/components/VAvatar/VAvatar.tsx"],"sourcesContent":["// Styles\nimport './VAvatar.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVAvatarProps = propsFactory({\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n image: String,\n\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n}, 'v-avatar')\n\nexport const VAvatar = defineComponent({\n name: 'VAvatar',\n\n props: makeVAvatarProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-avatar',\n {\n 'v-avatar--start': props.start,\n 'v-avatar--end': props.end,\n },\n themeClasses.value,\n colorClasses.value,\n densityClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n sizeStyles.value,\n ]}\n >\n { props.image\n ? (<VImg key=\"image\" src={ props.image } alt=\"\" />)\n : props.icon\n ? (<VIcon key=\"icon\" icon={ props.icon } />)\n : slots.default?.()\n }\n\n { genOverlays(false, 'v-avatar') }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VAvatar = InstanceType<typeof VAvatar>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,KAAK;AAAA,SACLC,IAAI,6BAEb;AAAA,SACSC,WAAW,EAAEC,gBAAgB,EAAEC,UAAU;AAAA,SACzCC,SAAS;AAAA,SACTC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,aAAa,EAAEC,OAAO;AAAA,SACtBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AAAA,SACSC,eAAe,EAAEC,YAAY,EAAEC,SAAS;AAEjD,OAAO,MAAMC,gBAAgB,GAAGF,YAAY,CAAC;EAC3CG,KAAK,EAAEC,OAAO;EACdC,GAAG,EAAED,OAAO;EACZE,IAAI,EAAEjB,SAAS;EACfkB,KAAK,EAAEC,MAAM;EAEb,GAAGlB,gBAAgB,EAAE;EACrB,GAAGE,gBAAgB,EAAE;EACrB,GAAGE,aAAa,EAAE;EAClB,GAAGE,YAAY,EAAE;EACjB,GAAGC,cAAc,EAAE;EACnB,GAAGV,gBAAgB,CAAC;IAAEsB,OAAO,EAAE;EAAO,CAAC;AACzC,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,MAAMC,OAAO,GAAGX,eAAe,CAAC;EACrCY,IAAI,EAAE,SAAS;EAEfC,KAAK,EAAEV,gBAAgB,EAAE;EAEzBW,KAAK,CAAED,KAAK,QAAa;IAAA,IAAX;MAAEE;IAAM,CAAC;IACrB,MAAM;MAAEC;IAAa,CAAC,GAAGjB,YAAY,CAACc,KAAK,CAAC;IAC5C,MAAM;MAAEI,YAAY;MAAEC,WAAW;MAAEC;IAAe,CAAC,GAAG9B,UAAU,CAACwB,KAAK,CAAC;IACvE,MAAM;MAAEO;IAAe,CAAC,GAAG5B,UAAU,CAACqB,KAAK,CAAC;IAC5C,MAAM;MAAEQ;IAAe,CAAC,GAAG3B,UAAU,CAACmB,KAAK,CAAC;IAC5C,MAAM;MAAES,WAAW;MAAEC;IAAW,CAAC,GAAG3B,OAAO,CAACiB,KAAK,CAAC;IAElDX,SAAS,CAAC;MAAA;MAAA;QAAA,SAEC,CACL,UAAU,EACV;UACE,iBAAiB,EAAEW,KAAK,CAACT,KAAK;UAC9B,eAAe,EAAES,KAAK,CAACP;QACzB,CAAC,EACDU,YAAY,CAACQ,KAAK,EAClBP,YAAY,CAACO,KAAK,EAClBJ,cAAc,CAACI,KAAK,EACpBH,cAAc,CAACG,KAAK,EACpBF,WAAW,CAACE,KAAK,EACjBL,cAAc,CAACK,KAAK,CACrB;QAAA,SACM,CACLN,WAAW,CAACM,KAAK,EACjBD,UAAU,CAACC,KAAK;MACjB;QAAA,gBAECX,KAAK,CAACL,KAAK;UAAA,OACE,OAAO;UAAA,OAAOK,KAAK,CAACL,KAAK;UAAA,OAAO;
|
|
1
|
+
{"version":3,"file":"VAvatar.mjs","names":["VIcon","VImg","genOverlays","makeVariantProps","useVariant","IconValue","makeDensityProps","useDensity","makeRoundedProps","useRounded","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","defineComponent","propsFactory","useRender","makeVAvatarProps","start","Boolean","end","icon","image","String","variant","VAvatar","name","props","setup","slots","themeClasses","colorClasses","colorStyles","variantClasses","densityClasses","roundedClasses","sizeClasses","sizeStyles","value","default"],"sources":["../../../src/components/VAvatar/VAvatar.tsx"],"sourcesContent":["// Styles\nimport './VAvatar.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVAvatarProps = propsFactory({\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n image: String,\n\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n}, 'v-avatar')\n\nexport const VAvatar = defineComponent({\n name: 'VAvatar',\n\n props: makeVAvatarProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-avatar',\n {\n 'v-avatar--start': props.start,\n 'v-avatar--end': props.end,\n },\n themeClasses.value,\n colorClasses.value,\n densityClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n sizeStyles.value,\n ]}\n >\n { props.image\n ? (<VImg key=\"image\" src={ props.image } alt=\"\" cover />)\n : props.icon\n ? (<VIcon key=\"icon\" icon={ props.icon } />)\n : slots.default?.()\n }\n\n { genOverlays(false, 'v-avatar') }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VAvatar = InstanceType<typeof VAvatar>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,KAAK;AAAA,SACLC,IAAI,6BAEb;AAAA,SACSC,WAAW,EAAEC,gBAAgB,EAAEC,UAAU;AAAA,SACzCC,SAAS;AAAA,SACTC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,aAAa,EAAEC,OAAO;AAAA,SACtBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AAAA,SACSC,eAAe,EAAEC,YAAY,EAAEC,SAAS;AAEjD,OAAO,MAAMC,gBAAgB,GAAGF,YAAY,CAAC;EAC3CG,KAAK,EAAEC,OAAO;EACdC,GAAG,EAAED,OAAO;EACZE,IAAI,EAAEjB,SAAS;EACfkB,KAAK,EAAEC,MAAM;EAEb,GAAGlB,gBAAgB,EAAE;EACrB,GAAGE,gBAAgB,EAAE;EACrB,GAAGE,aAAa,EAAE;EAClB,GAAGE,YAAY,EAAE;EACjB,GAAGC,cAAc,EAAE;EACnB,GAAGV,gBAAgB,CAAC;IAAEsB,OAAO,EAAE;EAAO,CAAC;AACzC,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,MAAMC,OAAO,GAAGX,eAAe,CAAC;EACrCY,IAAI,EAAE,SAAS;EAEfC,KAAK,EAAEV,gBAAgB,EAAE;EAEzBW,KAAK,CAAED,KAAK,QAAa;IAAA,IAAX;MAAEE;IAAM,CAAC;IACrB,MAAM;MAAEC;IAAa,CAAC,GAAGjB,YAAY,CAACc,KAAK,CAAC;IAC5C,MAAM;MAAEI,YAAY;MAAEC,WAAW;MAAEC;IAAe,CAAC,GAAG9B,UAAU,CAACwB,KAAK,CAAC;IACvE,MAAM;MAAEO;IAAe,CAAC,GAAG5B,UAAU,CAACqB,KAAK,CAAC;IAC5C,MAAM;MAAEQ;IAAe,CAAC,GAAG3B,UAAU,CAACmB,KAAK,CAAC;IAC5C,MAAM;MAAES,WAAW;MAAEC;IAAW,CAAC,GAAG3B,OAAO,CAACiB,KAAK,CAAC;IAElDX,SAAS,CAAC;MAAA;MAAA;QAAA,SAEC,CACL,UAAU,EACV;UACE,iBAAiB,EAAEW,KAAK,CAACT,KAAK;UAC9B,eAAe,EAAES,KAAK,CAACP;QACzB,CAAC,EACDU,YAAY,CAACQ,KAAK,EAClBP,YAAY,CAACO,KAAK,EAClBJ,cAAc,CAACI,KAAK,EACpBH,cAAc,CAACG,KAAK,EACpBF,WAAW,CAACE,KAAK,EACjBL,cAAc,CAACK,KAAK,CACrB;QAAA,SACM,CACLN,WAAW,CAACM,KAAK,EACjBD,UAAU,CAACC,KAAK;MACjB;QAAA,gBAECX,KAAK,CAACL,KAAK;UAAA,OACE,OAAO;UAAA,OAAOK,KAAK,CAACL,KAAK;UAAA,OAAO,EAAE;UAAA;QAAA,WAC7CK,KAAK,CAACN,IAAI;UAAA,OACI,MAAM;UAAA,QAAQM,KAAK,CAACN;QAAI,6BACpCQ,KAAK,CAACU,OAAO,qBAAb,oBAAAV,KAAK,CAAY,EAGrB5B,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC;MAAA;IAAA,CAEnC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
|
@@ -56,6 +56,9 @@ export const VBreadcrumbs = genericComponent()({
|
|
|
56
56
|
roundedClasses
|
|
57
57
|
} = useRounded(props);
|
|
58
58
|
provideDefaults({
|
|
59
|
+
VBreadcrumbsDivider: {
|
|
60
|
+
divider: toRef(props, 'divider')
|
|
61
|
+
},
|
|
59
62
|
VBreadcrumbsItem: {
|
|
60
63
|
activeClass: toRef(props, 'activeClass'),
|
|
61
64
|
activeColor: toRef(props, 'activeColor'),
|
|
@@ -82,28 +85,28 @@ export const VBreadcrumbs = genericComponent()({
|
|
|
82
85
|
default: () => [_createVNode("div", {
|
|
83
86
|
"class": "v-breadcrumbs__prepend"
|
|
84
87
|
}, [slots.prepend ? slots.prepend() : props.icon && _createVNode(VIcon, null, null)])]
|
|
85
|
-
}), props.items.map((item, index, array) => {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
var _slots$title;
|
|
95
|
-
return (_slots$title = slots.title) == null ? void 0 : _slots$title.call(slots, {
|
|
96
|
-
item,
|
|
97
|
-
index
|
|
98
|
-
});
|
|
99
|
-
} : undefined
|
|
100
|
-
}), index < array.length - 1 && _createVNode(VBreadcrumbsDivider, null, {
|
|
101
|
-
default: () => [((_slots$divider = slots.divider) == null ? void 0 : _slots$divider.call(slots, {
|
|
88
|
+
}), props.items.map((item, index, array) => _createVNode(_Fragment, null, [_createVNode(VBreadcrumbsItem, _mergeProps({
|
|
89
|
+
"key": index,
|
|
90
|
+
"disabled": index >= array.length - 1
|
|
91
|
+
}, typeof item === 'string' ? {
|
|
92
|
+
title: item
|
|
93
|
+
} : item), {
|
|
94
|
+
default: slots.title ? () => {
|
|
95
|
+
var _slots$title;
|
|
96
|
+
return (_slots$title = slots.title) == null ? void 0 : _slots$title.call(slots, {
|
|
102
97
|
item,
|
|
103
98
|
index
|
|
104
|
-
})
|
|
105
|
-
}
|
|
106
|
-
}),
|
|
99
|
+
});
|
|
100
|
+
} : undefined
|
|
101
|
+
}), index < array.length - 1 && _createVNode(VBreadcrumbsDivider, null, {
|
|
102
|
+
default: slots.divider ? () => {
|
|
103
|
+
var _slots$divider;
|
|
104
|
+
return (_slots$divider = slots.divider) == null ? void 0 : _slots$divider.call(slots, {
|
|
105
|
+
item,
|
|
106
|
+
index
|
|
107
|
+
});
|
|
108
|
+
} : undefined
|
|
109
|
+
})])), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]
|
|
107
110
|
});
|
|
108
111
|
});
|
|
109
112
|
return {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VBreadcrumbs.mjs","names":["VBreadcrumbsDivider","VBreadcrumbsItem","VDefaultsProvider","VIcon","IconValue","makeDensityProps","useDensity","makeRoundedProps","useRounded","makeTagProps","provideDefaults","useBackgroundColor","genericComponent","useRender","toRef","VBreadcrumbs","name","props","activeClass","String","activeColor","bgColor","color","disabled","Boolean","divider","type","default","icon","items","Array","tag","setup","slots","backgroundColorClasses","backgroundColorStyles","densityClasses","roundedClasses","hasPrepend","prepend","value","start","map","item","index","array","length","title","undefined"],"sources":["../../../src/components/VBreadcrumbs/VBreadcrumbs.tsx"],"sourcesContent":["// Styles\nimport './VBreadcrumbs.sass'\n\n// Components\nimport { VBreadcrumbsDivider } from './VBreadcrumbsDivider'\nimport { VBreadcrumbsItem } from './VBreadcrumbsItem'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { LinkProps } from '@/composables/router'\nimport type {
|
|
1
|
+
{"version":3,"file":"VBreadcrumbs.mjs","names":["VBreadcrumbsDivider","VBreadcrumbsItem","VDefaultsProvider","VIcon","IconValue","makeDensityProps","useDensity","makeRoundedProps","useRounded","makeTagProps","provideDefaults","useBackgroundColor","genericComponent","useRender","toRef","VBreadcrumbs","name","props","activeClass","String","activeColor","bgColor","color","disabled","Boolean","divider","type","default","icon","items","Array","tag","setup","slots","backgroundColorClasses","backgroundColorStyles","densityClasses","roundedClasses","hasPrepend","prepend","value","start","map","item","index","array","length","title","undefined"],"sources":["../../../src/components/VBreadcrumbs/VBreadcrumbs.tsx"],"sourcesContent":["// Styles\nimport './VBreadcrumbs.sass'\n\n// Components\nimport { VBreadcrumbsDivider } from './VBreadcrumbsDivider'\nimport { VBreadcrumbsItem } from './VBreadcrumbsItem'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { LinkProps } from '@/composables/router'\nimport type { PropType } from 'vue'\nimport type { SlotsToProps } from '@/util'\n\nexport type BreadcrumbItem = string | (LinkProps & {\n text: string\n disabled?: boolean\n})\n\nexport const VBreadcrumbs = genericComponent<new <T>() => {\n $props: {\n items?: T[]\n } & SlotsToProps<{\n prepend: []\n title: [{ item: T, index: number }]\n divider: [{ item: T, index: number }]\n default: []\n }>\n}>()({\n name: 'VBreadcrumbs',\n\n props: {\n activeClass: String,\n activeColor: String,\n bgColor: String,\n color: String,\n disabled: Boolean,\n divider: {\n type: String,\n default: '/',\n },\n icon: IconValue,\n items: {\n type: Array as PropType<BreadcrumbItem[]>,\n default: () => ([]),\n },\n\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'ul' }),\n },\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBreadcrumbsDivider: {\n divider: toRef(props, 'divider'),\n },\n VBreadcrumbsItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor: toRef(props, 'activeColor'),\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n },\n })\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.icon)\n\n return (\n <props.tag\n class={[\n 'v-breadcrumbs',\n backgroundColorClasses.value,\n densityClasses.value,\n roundedClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VIcon: {\n icon: props.icon,\n start: true,\n },\n }}\n >\n <div class=\"v-breadcrumbs__prepend\">\n { slots.prepend\n ? slots.prepend()\n : props.icon && (<VIcon />)\n }\n </div>\n </VDefaultsProvider>\n ) }\n\n { props.items.map((item, index, array) => (\n <>\n <VBreadcrumbsItem\n key={ index }\n disabled={ index >= array.length - 1 }\n { ...(typeof item === 'string' ? { title: item } : item) }\n v-slots={{\n default: slots.title ? () => slots.title?.({ item, index }) : undefined,\n }}\n />\n\n { index < array.length - 1 && (\n <VBreadcrumbsDivider\n v-slots={{\n default: slots.divider ? () => slots.divider?.({ item, index }) : undefined,\n }}\n />\n ) }\n </>\n )) }\n\n { slots.default?.() }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBreadcrumbs = InstanceType<typeof VBreadcrumbs>\n"],"mappings":"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"}
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { createVNode as _createVNode } from "vue";
|
|
2
|
+
// Utility
|
|
3
|
+
import { defineComponent, useRender } from "../../util/index.mjs";
|
|
4
|
+
export const VBreadcrumbsDivider = defineComponent({
|
|
5
|
+
name: 'VBreadcrumbsDivider',
|
|
6
|
+
props: {
|
|
7
|
+
divider: [Number, String]
|
|
8
|
+
},
|
|
9
|
+
setup(props, _ref) {
|
|
10
|
+
let {
|
|
11
|
+
slots
|
|
12
|
+
} = _ref;
|
|
13
|
+
useRender(() => {
|
|
14
|
+
var _slots$default;
|
|
15
|
+
return _createVNode("li", {
|
|
16
|
+
"class": "v-breadcrumbs-divider"
|
|
17
|
+
}, [(slots == null ? void 0 : (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)) ?? props.divider]);
|
|
18
|
+
});
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
});
|
|
3
22
|
//# sourceMappingURL=VBreadcrumbsDivider.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VBreadcrumbsDivider.mjs","names":["
|
|
1
|
+
{"version":3,"file":"VBreadcrumbsDivider.mjs","names":["defineComponent","useRender","VBreadcrumbsDivider","name","props","divider","Number","String","setup","slots","default"],"sources":["../../../src/components/VBreadcrumbs/VBreadcrumbsDivider.tsx"],"sourcesContent":["// Utility\nimport { defineComponent, useRender } from '@/util'\n\nexport const VBreadcrumbsDivider = defineComponent({\n name: 'VBreadcrumbsDivider',\n\n props: {\n divider: [Number, String],\n },\n\n setup (props, { slots }) {\n useRender(() => (\n <li class=\"v-breadcrumbs-divider\">\n { slots?.default?.() ?? props.divider }\n </li>\n ))\n\n return {}\n },\n})\n"],"mappings":";AAAA;AAAA,SACSA,eAAe,EAAEC,SAAS;AAEnC,OAAO,MAAMC,mBAAmB,GAAGF,eAAe,CAAC;EACjDG,IAAI,EAAE,qBAAqB;EAE3BC,KAAK,EAAE;IACLC,OAAO,EAAE,CAACC,MAAM,EAAEC,MAAM;EAC1B,CAAC;EAEDC,KAAK,CAAEJ,KAAK,QAAa;IAAA,IAAX;MAAEK;IAAM,CAAC;IACrBR,SAAS,CAAC;MAAA;MAAA;QAAA,SACE;MAAuB,IAC7B,CAAAQ,KAAK,sCAALA,KAAK,CAAEC,OAAO,qBAAd,oBAAAD,KAAK,CAAa,KAAIL,KAAK,CAACC,OAAO;IAAA,CAExC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
|
@@ -294,20 +294,9 @@ declare const VBreadcrumbsItem: vue.DefineComponent<{
|
|
|
294
294
|
declare type VBreadcrumbsItem = InstanceType<typeof VBreadcrumbsItem>;
|
|
295
295
|
|
|
296
296
|
declare const VBreadcrumbsDivider: vue.DefineComponent<{
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
302
|
-
[key: string]: any;
|
|
303
|
-
}>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
|
|
304
|
-
tag: {
|
|
305
|
-
type: StringConstructor;
|
|
306
|
-
default: string;
|
|
307
|
-
};
|
|
308
|
-
}>>, {
|
|
309
|
-
tag: string;
|
|
310
|
-
}>;
|
|
311
|
-
declare type VBreadcrumbsDivider = InstanceType<typeof VBreadcrumbsDivider>;
|
|
297
|
+
divider: (StringConstructor | NumberConstructor)[];
|
|
298
|
+
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
|
|
299
|
+
divider: (StringConstructor | NumberConstructor)[];
|
|
300
|
+
}>>, {}>;
|
|
312
301
|
|
|
313
302
|
export { VBreadcrumbs, VBreadcrumbsDivider, VBreadcrumbsItem };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VColorPicker.mjs","names":["VColorPickerCanvas","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","VSheet","makeElevationProps","makeRoundedProps","makeThemeProps","useProxiedModel","defineComponent","HSVtoCSS","useRender","extractColor","modes","nullColor","parseColor","onMounted","ref","VColorPicker","name","
|
|
1
|
+
{"version":3,"file":"VColorPicker.mjs","names":["VColorPickerCanvas","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","VSheet","makeElevationProps","makeRoundedProps","makeThemeProps","useProxiedModel","defineComponent","HSVtoCSS","useRender","extractColor","modes","nullColor","parseColor","onMounted","ref","VColorPicker","name","props","canvasHeight","type","String","Number","default","disabled","Boolean","dotSize","hideCanvas","hideSliders","hideInputs","mode","validator","v","Object","keys","includes","Array","isArray","every","m","showSwatches","swatches","swatchesMaxHeight","modelValue","width","emits","color","setup","lastPickedColor","currentColor","undefined","c","value","h","updateColor","hsva","rounded","elevation","theme","a","endsWith"],"sources":["../../../src/components/VColorPicker/VColorPicker.tsx"],"sourcesContent":["// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\nimport { VSheet } from '@/components/VSheet'\n\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { defineComponent, HSVtoCSS, useRender } from '@/util'\nimport { extractColor, modes, nullColor, parseColor } from './util'\nimport { onMounted, ref } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<string[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n showSwatches: Boolean,\n swatches: Array as PropType<string[][]>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String] as PropType<Record<string, unknown> | string | undefined | null>,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (color: any) => true,\n 'update:mode': (mode: string) => true,\n },\n\n setup (props) {\n const mode = useProxiedModel(props, 'mode')\n const lastPickedColor = ref<HSV | null>(null)\n const currentColor = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n let c = parseColor(v)\n\n if (!c) return null\n\n if (lastPickedColor.value) {\n c = { ...c, h: lastPickedColor.value.h }\n lastPickedColor.value = null\n }\n\n return c\n },\n v => {\n if (!v) return null\n\n return extractColor(v, props.modelValue)\n }\n )\n\n const updateColor = (hsva: HSV) => {\n currentColor.value = hsva\n lastPickedColor.value = hsva\n }\n\n onMounted(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0]\n })\n\n useRender(() => (\n <VSheet\n rounded={ props.rounded }\n elevation={ props.elevation }\n theme={ props.theme }\n class={[\n 'v-color-picker',\n ]}\n style={{\n '--v-color-picker-color-hsv': HSVtoCSS({ ...(currentColor.value ?? nullColor), a: 1 }),\n }}\n maxWidth={ props.width }\n >\n { !props.hideCanvas && (\n <VColorPickerCanvas\n key=\"canvas\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n dotSize={ props.dotSize }\n width={ props.width }\n height={ props.canvasHeight }\n />\n ) }\n\n { (!props.hideSliders || !props.hideInputs) && (\n <div key=\"controls\" class=\"v-color-picker__controls\">\n { !props.hideSliders && (\n <VColorPickerPreview\n key=\"preview\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n hideAlpha={ !mode.value.endsWith('a') }\n disabled={ props.disabled }\n />\n ) }\n\n { !props.hideInputs && (\n <VColorPickerEdit\n key=\"edit\"\n modes={ props.modes }\n mode={ mode.value }\n onUpdate:mode={ m => mode.value = m }\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n />\n ) }\n </div>\n ) }\n\n { props.showSwatches && (\n <VColorPickerSwatches\n key=\"swatches\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n maxHeight={ props.swatchesMaxHeight }\n swatches={ props.swatches }\n disabled={ props.disabled }\n />\n ) }\n </VSheet>\n ))\n\n return {}\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n"],"mappings":"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"}
|