vuetify 3.6.15 → 3.7.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/dist/json/attributes.json +182 -26
- package/dist/json/importMap-labs.json +30 -30
- package/dist/json/importMap.json +150 -150
- package/dist/json/tags.json +44 -5
- package/dist/json/web-types.json +445 -42
- package/dist/vuetify-labs.css +2359 -2344
- package/dist/vuetify-labs.d.ts +690 -341
- package/dist/vuetify-labs.esm.js +253 -211
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +252 -210
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +2553 -2538
- package/dist/vuetify.d.ts +559 -315
- package/dist/vuetify.esm.js +189 -127
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +188 -126
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +160 -156
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VApp/VApp.mjs +2 -5
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/index.d.mts +6 -6
- package/lib/components/VAppBar/VAppBar.mjs +5 -5
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.mts +8 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs +15 -8
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +78 -49
- package/lib/components/VAvatar/VAvatar.css +9 -0
- package/lib/components/VAvatar/VAvatar.mjs +6 -1
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +1 -0
- package/lib/components/VAvatar/_variables.scss +13 -0
- package/lib/components/VAvatar/index.d.mts +6 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +2 -3
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/index.d.mts +2 -2
- package/lib/components/VBreadcrumbs/index.d.mts +8 -8
- package/lib/components/VBtn/VBtn.css +0 -4
- package/lib/components/VBtn/VBtn.mjs +3 -1
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +0 -6
- package/lib/components/VBtn/_variables.scss +0 -1
- package/lib/components/VBtn/index.d.mts +6 -0
- package/lib/components/VCard/VCard.css +1 -0
- package/lib/components/VCard/VCard.sass +1 -0
- package/lib/components/VCard/_variables.scss +7 -3
- package/lib/components/VCarousel/index.d.mts +9 -0
- package/lib/components/VCheckbox/index.d.mts +7 -6
- package/lib/components/VCombobox/VCombobox.mjs +15 -8
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +78 -49
- package/lib/components/VDialog/index.d.mts +3 -3
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +7 -2
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +72 -0
- package/lib/components/VFab/index.d.mts +6 -0
- package/lib/components/VFileInput/index.d.mts +19 -18
- package/lib/components/VFooter/VFooter.mjs +1 -3
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/index.d.mts +3 -3
- package/lib/components/VForm/index.d.mts +10 -9
- package/lib/components/VGrid/VContainer.mjs +6 -1
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/index.d.mts +36 -0
- package/lib/components/VImg/VImg.css +9 -0
- package/lib/components/VImg/VImg.mjs +2 -0
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +9 -0
- package/lib/components/VImg/index.d.mts +9 -0
- package/lib/components/VInput/index.d.mts +7 -6
- package/lib/components/VLayout/VLayout.mjs +2 -5
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs +4 -6
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLayout/index.d.mts +9 -9
- package/lib/components/VList/VListItem.css +2 -2
- package/lib/components/VList/VListItem.mjs +3 -1
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +1 -1
- package/lib/components/VList/index.d.mts +19 -18
- package/lib/components/VMain/VMain.mjs +2 -3
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/index.d.mts +2 -2
- package/lib/components/VMenu/VMenu.mjs +26 -8
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +30 -15
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +3 -4
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +5 -4
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs +0 -6
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +3 -2
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.mts +7 -6
- package/lib/components/VRangeSlider/index.d.mts +7 -6
- package/lib/components/VSelect/VSelect.mjs +15 -13
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +78 -49
- package/lib/components/VSelect/useScrolling.mjs +3 -3
- package/lib/components/VSelect/useScrolling.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.mjs +3 -1
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +6 -0
- package/lib/components/VSlider/index.d.mts +7 -6
- package/lib/components/VSnackbar/index.d.mts +3 -3
- package/lib/components/VSpeedDial/VSpeedDial.mjs +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
- package/lib/components/VSpeedDial/index.d.mts +28 -13
- package/lib/components/VSwitch/index.d.mts +7 -6
- package/lib/components/VTabs/index.d.mts +21 -3
- package/lib/components/VTextField/index.d.mts +19 -18
- package/lib/components/VTextarea/index.d.mts +19 -18
- package/lib/components/VTooltip/index.d.mts +3 -3
- package/lib/components/VValidation/index.d.mts +7 -6
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +2 -0
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.d.mts +3 -0
- package/lib/components/index.d.mts +504 -259
- package/lib/composables/layout.mjs +37 -14
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +3 -3
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/openStrategies.mjs +4 -2
- package/lib/composables/nested/openStrategies.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +5 -5
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/validation.mjs +8 -6
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/virtual.mjs +1 -0
- package/lib/composables/virtual.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.mts +55 -56
- package/lib/labs/VDateInput/index.d.mts +7 -6
- package/lib/labs/VNumberInput/index.d.mts +43 -42
- package/lib/labs/VPullToRefresh/VPullToRefresh.mjs +4 -3
- package/lib/labs/VPullToRefresh/VPullToRefresh.mjs.map +1 -1
- package/lib/labs/VPullToRefresh/index.d.mts +9 -0
- package/lib/labs/VSnackbarQueue/index.d.mts +3 -3
- package/lib/labs/VStepperVertical/index.d.mts +36 -0
- package/lib/labs/VTreeview/VTreeview.mjs +21 -6
- package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.mjs +33 -10
- package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.css +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.mjs +14 -74
- package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.sass +2 -5
- package/lib/labs/VTreeview/index.d.mts +133 -95
- package/lib/labs/components.d.mts +193 -109
- package/lib/util/helpers.mjs +5 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -725,7 +725,13 @@ declare const VStepperVerticalItem: {
|
|
|
725
725
|
editIcon: string;
|
|
726
726
|
errorIcon: string;
|
|
727
727
|
} & {
|
|
728
|
+
height?: string | number | undefined;
|
|
729
|
+
width?: string | number | undefined;
|
|
728
730
|
color?: string | undefined;
|
|
731
|
+
maxHeight?: string | number | undefined;
|
|
732
|
+
maxWidth?: string | number | undefined;
|
|
733
|
+
minHeight?: string | number | undefined;
|
|
734
|
+
minWidth?: string | number | undefined;
|
|
729
735
|
value?: any;
|
|
730
736
|
title?: string | undefined;
|
|
731
737
|
text?: string | undefined;
|
|
@@ -806,7 +812,13 @@ declare const VStepperVerticalItem: {
|
|
|
806
812
|
editIcon: string;
|
|
807
813
|
errorIcon: string;
|
|
808
814
|
} & {
|
|
815
|
+
height?: string | number | undefined;
|
|
816
|
+
width?: string | number | undefined;
|
|
809
817
|
color?: string | undefined;
|
|
818
|
+
maxHeight?: string | number | undefined;
|
|
819
|
+
maxWidth?: string | number | undefined;
|
|
820
|
+
minHeight?: string | number | undefined;
|
|
821
|
+
minWidth?: string | number | undefined;
|
|
810
822
|
value?: any;
|
|
811
823
|
title?: string | undefined;
|
|
812
824
|
text?: string | undefined;
|
|
@@ -925,7 +937,13 @@ declare const VStepperVerticalItem: {
|
|
|
925
937
|
editIcon: string;
|
|
926
938
|
errorIcon: string;
|
|
927
939
|
} & {
|
|
940
|
+
height?: string | number | undefined;
|
|
941
|
+
width?: string | number | undefined;
|
|
928
942
|
color?: string | undefined;
|
|
943
|
+
maxHeight?: string | number | undefined;
|
|
944
|
+
maxWidth?: string | number | undefined;
|
|
945
|
+
minHeight?: string | number | undefined;
|
|
946
|
+
minWidth?: string | number | undefined;
|
|
929
947
|
value?: any;
|
|
930
948
|
title?: string | undefined;
|
|
931
949
|
text?: string | undefined;
|
|
@@ -1029,7 +1047,13 @@ declare const VStepperVerticalItem: {
|
|
|
1029
1047
|
editIcon: string;
|
|
1030
1048
|
errorIcon: string;
|
|
1031
1049
|
} & {
|
|
1050
|
+
height?: string | number | undefined;
|
|
1051
|
+
width?: string | number | undefined;
|
|
1032
1052
|
color?: string | undefined;
|
|
1053
|
+
maxHeight?: string | number | undefined;
|
|
1054
|
+
maxWidth?: string | number | undefined;
|
|
1055
|
+
minHeight?: string | number | undefined;
|
|
1056
|
+
minWidth?: string | number | undefined;
|
|
1033
1057
|
value?: any;
|
|
1034
1058
|
title?: string | undefined;
|
|
1035
1059
|
text?: string | undefined;
|
|
@@ -1123,7 +1147,13 @@ declare const VStepperVerticalItem: {
|
|
|
1123
1147
|
prev: () => void;
|
|
1124
1148
|
}) => vue.VNode[];
|
|
1125
1149
|
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
|
1150
|
+
height: (StringConstructor | NumberConstructor)[];
|
|
1151
|
+
width: (StringConstructor | NumberConstructor)[];
|
|
1126
1152
|
color: StringConstructor;
|
|
1153
|
+
maxHeight: (StringConstructor | NumberConstructor)[];
|
|
1154
|
+
maxWidth: (StringConstructor | NumberConstructor)[];
|
|
1155
|
+
minHeight: (StringConstructor | NumberConstructor)[];
|
|
1156
|
+
minWidth: (StringConstructor | NumberConstructor)[];
|
|
1127
1157
|
value: null;
|
|
1128
1158
|
style: {
|
|
1129
1159
|
type: vue.PropType<vue.StyleValue>;
|
|
@@ -1193,7 +1223,13 @@ declare const VStepperVerticalItem: {
|
|
|
1193
1223
|
};
|
|
1194
1224
|
hideActions: BooleanConstructor;
|
|
1195
1225
|
}, vue.ExtractPropTypes<{
|
|
1226
|
+
height: (StringConstructor | NumberConstructor)[];
|
|
1227
|
+
width: (StringConstructor | NumberConstructor)[];
|
|
1196
1228
|
color: StringConstructor;
|
|
1229
|
+
maxHeight: (StringConstructor | NumberConstructor)[];
|
|
1230
|
+
maxWidth: (StringConstructor | NumberConstructor)[];
|
|
1231
|
+
minHeight: (StringConstructor | NumberConstructor)[];
|
|
1232
|
+
minWidth: (StringConstructor | NumberConstructor)[];
|
|
1197
1233
|
value: null;
|
|
1198
1234
|
style: {
|
|
1199
1235
|
type: vue.PropType<vue.StyleValue>;
|
|
@@ -5,7 +5,7 @@ import { makeVListProps, useListItems, VList } from "../../components/VList/VLis
|
|
|
5
5
|
import { provideDefaults } from "../../composables/defaults.mjs";
|
|
6
6
|
import { makeFilterProps, useFilter } from "../../composables/filter.mjs";
|
|
7
7
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
|
8
|
-
import { computed, provide, ref, toRef } from 'vue';
|
|
8
|
+
import { computed, provide, ref, toRaw, toRef } from 'vue';
|
|
9
9
|
import { genericComponent, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
10
10
|
import { VTreeviewSymbol } from "./shared.mjs";
|
|
11
11
|
function flatten(items) {
|
|
@@ -27,7 +27,11 @@ export const makeVTreeviewProps = propsFactory({
|
|
|
27
27
|
collapseIcon: '$treeviewCollapse',
|
|
28
28
|
expandIcon: '$treeviewExpand',
|
|
29
29
|
slim: true
|
|
30
|
-
}), ['itemType', 'nav'])
|
|
30
|
+
}), ['itemType', 'nav', 'openStrategy']),
|
|
31
|
+
modelValue: {
|
|
32
|
+
type: Array,
|
|
33
|
+
default: () => []
|
|
34
|
+
}
|
|
31
35
|
}, 'VTreeview');
|
|
32
36
|
export const VTreeview = genericComponent()({
|
|
33
37
|
name: 'VTreeview',
|
|
@@ -36,6 +40,7 @@ export const VTreeview = genericComponent()({
|
|
|
36
40
|
'update:opened': val => true,
|
|
37
41
|
'update:activated': val => true,
|
|
38
42
|
'update:selected': val => true,
|
|
43
|
+
'update:modelValue': val => true,
|
|
39
44
|
'click:open': value => true,
|
|
40
45
|
'click:select': value => true
|
|
41
46
|
},
|
|
@@ -50,7 +55,15 @@ export const VTreeview = genericComponent()({
|
|
|
50
55
|
const baseColor = toRef(props, 'baseColor');
|
|
51
56
|
const color = toRef(props, 'color');
|
|
52
57
|
const activated = useProxiedModel(props, 'activated');
|
|
53
|
-
const
|
|
58
|
+
const model = useProxiedModel(props, 'modelValue');
|
|
59
|
+
const _selected = useProxiedModel(props, 'selected', props.modelValue);
|
|
60
|
+
const selected = computed({
|
|
61
|
+
get: () => _selected.value,
|
|
62
|
+
set(val) {
|
|
63
|
+
_selected.value = val;
|
|
64
|
+
model.value = val;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
54
67
|
const vListRef = ref();
|
|
55
68
|
const opened = computed(() => props.openAll ? openAll(items.value) : props.opened);
|
|
56
69
|
const flatItems = computed(() => flatten(items.value));
|
|
@@ -86,11 +99,11 @@ export const VTreeview = genericComponent()({
|
|
|
86
99
|
}
|
|
87
100
|
return arr;
|
|
88
101
|
}
|
|
89
|
-
function openAll(
|
|
102
|
+
function openAll(items) {
|
|
90
103
|
let ids = [];
|
|
91
|
-
for (const i of
|
|
104
|
+
for (const i of items) {
|
|
92
105
|
if (!i.children) continue;
|
|
93
|
-
ids.push(i.value);
|
|
106
|
+
ids.push(props.returnObject ? toRaw(i.raw) : i.value);
|
|
94
107
|
if (i.children) {
|
|
95
108
|
ids = ids.concat(openAll(i.children));
|
|
96
109
|
}
|
|
@@ -126,6 +139,7 @@ export const VTreeview = genericComponent()({
|
|
|
126
139
|
"ref": vListRef
|
|
127
140
|
}, listProps, {
|
|
128
141
|
"class": ['v-treeview', props.class],
|
|
142
|
+
"open-strategy": "multiple",
|
|
129
143
|
"style": props.style,
|
|
130
144
|
"opened": opened.value,
|
|
131
145
|
"activated": activated.value,
|
|
@@ -134,6 +148,7 @@ export const VTreeview = genericComponent()({
|
|
|
134
148
|
"onUpdate:selected": $event => selected.value = $event
|
|
135
149
|
}), {
|
|
136
150
|
default: () => [_createVNode(VTreeviewChildren, _mergeProps(treeviewChildrenProps, {
|
|
151
|
+
"returnObject": props.returnObject,
|
|
137
152
|
"items": items.value
|
|
138
153
|
}), slots)]
|
|
139
154
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTreeview.mjs","names":["makeVTreeviewChildrenProps","VTreeviewChildren","makeVListProps","useListItems","VList","provideDefaults","makeFilterProps","useFilter","useProxiedModel","computed","provide","ref","toRef","genericComponent","omit","propsFactory","useRender","VTreeviewSymbol","flatten","items","flat","arguments","length","undefined","item","push","children","makeVTreeviewProps","openAll","Boolean","search","String","filterKeys","collapseIcon","expandIcon","slim","VTreeview","name","props","emits","val","value","setup","_ref","slots","activeColor","baseColor","color","activated","selected","vListRef","opened","flatItems","filteredItems","visibleIds","Set","flatMap","getPath","getChildren","id","path","parent","unshift","parents","get","arr","queue","slice","child","shift","ids","i","concat","VTreeviewGroup","VTreeviewItem","activeClass","density","disabled","lines","variant","listProps","filterProps","treeviewChildrenProps","_createVNode","_mergeProps","class","style","$event","default"],"sources":["../../../src/labs/VTreeview/VTreeview.tsx"],"sourcesContent":["// Components\nimport { makeVTreeviewChildrenProps, VTreeviewChildren } from './VTreeviewChildren'\nimport { makeVListProps, useListItems, VList } from '@/components/VList/VList'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, provide, ref, toRef } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VTreeviewSymbol } from './shared'\nimport type { VListChildrenSlots } from '@/components/VList/VListChildren'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps } from '@/util'\n\nfunction flatten (items: ListItem[], flat: ListItem[] = []) {\n for (const item of items) {\n flat.push(item)\n if (item.children) flatten(item.children, flat)\n }\n return flat\n}\n\nexport const makeVTreeviewProps = propsFactory({\n openAll: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeVTreeviewChildrenProps(),\n ...omit(makeVListProps({\n collapseIcon: '$treeviewCollapse',\n expandIcon: '$treeviewExpand',\n slim: true,\n }), ['itemType', 'nav']),\n}, 'VTreeview')\n\nexport const VTreeview = genericComponent<new <T>(\n props: {\n items?: T[]\n },\n slots: VListChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeview',\n\n props: makeVTreeviewProps(),\n\n emits: {\n 'update:opened': (val: unknown) => true,\n 'update:activated': (val: unknown) => true,\n 'update:selected': (val: unknown) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const activeColor = toRef(props, 'activeColor')\n const baseColor = toRef(props, 'baseColor')\n const color = toRef(props, 'color')\n const activated = useProxiedModel(props, 'activated')\n const selected = useProxiedModel(props, 'selected')\n\n const vListRef = ref<VList>()\n\n const opened = computed(() => props.openAll ? openAll(items.value) : props.opened)\n const flatItems = computed(() => flatten(items.value))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter(props, flatItems, search)\n const visibleIds = computed(() => {\n if (!search.value) {\n return null\n }\n return new Set(filteredItems.value.flatMap(item => {\n return [...getPath(item.props.value), ...getChildren(item.props.value)]\n }))\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = id\n while (parent != null) {\n path.unshift(parent)\n parent = vListRef.value?.parents.get(parent)\n }\n return path\n }\n\n function getChildren (id: unknown) {\n const arr: unknown[] = []\n const queue = ((vListRef.value?.children.get(id) ?? []).slice())\n while (queue.length) {\n const child = queue.shift()\n if (!child) continue\n arr.push(child)\n queue.push(...((vListRef.value?.children.get(child) ?? []).slice()))\n }\n return arr\n }\n\n function openAll (item: any) {\n let ids: number[] = []\n\n for (const i of item) {\n if (!i.children) continue\n\n ids.push(i.value)\n\n if (i.children) {\n ids = ids.concat(openAll(i.children))\n }\n }\n\n return ids\n }\n\n provide(VTreeviewSymbol, { visibleIds })\n\n provideDefaults({\n VTreeviewGroup: {\n activeColor,\n baseColor,\n color,\n collapseIcon: toRef(props, 'collapseIcon'),\n expandIcon: toRef(props, 'expandIcon'),\n },\n VTreeviewItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n baseColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n const listProps = VList.filterProps(props)\n\n const treeviewChildrenProps = VTreeviewChildren.filterProps(props)\n\n return (\n <VList\n ref={ vListRef }\n { ...listProps }\n class={[\n 'v-treeview',\n props.class,\n ]}\n style={ props.style }\n opened={ opened.value }\n v-model:activated={ activated.value }\n v-model:selected={ selected.value }\n >\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n items={ items.value }\n v-slots={ slots }\n ></VTreeviewChildren>\n </VList>\n )\n })\n\n return { }\n },\n})\n\nexport type VTreeview = InstanceType<typeof VTreeview>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VTreeview.mjs","names":["makeVTreeviewChildrenProps","VTreeviewChildren","makeVListProps","useListItems","VList","provideDefaults","makeFilterProps","useFilter","useProxiedModel","computed","provide","ref","toRaw","toRef","genericComponent","omit","propsFactory","useRender","VTreeviewSymbol","flatten","items","flat","arguments","length","undefined","item","push","children","makeVTreeviewProps","openAll","Boolean","search","String","filterKeys","collapseIcon","expandIcon","slim","modelValue","type","Array","default","VTreeview","name","props","emits","val","value","setup","_ref","slots","activeColor","baseColor","color","activated","model","_selected","selected","get","set","vListRef","opened","flatItems","filteredItems","visibleIds","Set","flatMap","getPath","getChildren","id","path","parent","unshift","parents","arr","queue","slice","child","shift","ids","i","returnObject","raw","concat","VTreeviewGroup","VTreeviewItem","activeClass","density","disabled","lines","variant","listProps","filterProps","treeviewChildrenProps","_createVNode","_mergeProps","class","style","$event"],"sources":["../../../src/labs/VTreeview/VTreeview.tsx"],"sourcesContent":["// Components\nimport { makeVTreeviewChildrenProps, VTreeviewChildren } from './VTreeviewChildren'\nimport { makeVListProps, useListItems, VList } from '@/components/VList/VList'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, provide, ref, toRaw, toRef } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VTreeviewSymbol } from './shared'\nimport type { InternalListItem } from '@/components/VList/VList'\nimport type { VListChildrenSlots } from '@/components/VList/VListChildren'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps } from '@/util'\n\nfunction flatten (items: ListItem[], flat: ListItem[] = []) {\n for (const item of items) {\n flat.push(item)\n if (item.children) flatten(item.children, flat)\n }\n return flat\n}\n\nexport const makeVTreeviewProps = propsFactory({\n openAll: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeVTreeviewChildrenProps(),\n ...omit(makeVListProps({\n collapseIcon: '$treeviewCollapse',\n expandIcon: '$treeviewExpand',\n slim: true,\n }), ['itemType', 'nav', 'openStrategy']),\n modelValue: {\n type: Array,\n default: () => ([]),\n },\n}, 'VTreeview')\n\nexport const VTreeview = genericComponent<new <T>(\n props: {\n items?: T[]\n },\n slots: VListChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeview',\n\n props: makeVTreeviewProps(),\n\n emits: {\n 'update:opened': (val: unknown) => true,\n 'update:activated': (val: unknown) => true,\n 'update:selected': (val: unknown) => true,\n 'update:modelValue': (val: unknown) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const activeColor = toRef(props, 'activeColor')\n const baseColor = toRef(props, 'baseColor')\n const color = toRef(props, 'color')\n const activated = useProxiedModel(props, 'activated')\n const model = useProxiedModel(props, 'modelValue')\n const _selected = useProxiedModel(props, 'selected', props.modelValue)\n\n const selected = computed({\n get: () => _selected.value,\n set (val) {\n _selected.value = val\n model.value = val\n },\n })\n\n const vListRef = ref<VList>()\n\n const opened = computed(() => props.openAll ? openAll(items.value) : props.opened)\n const flatItems = computed(() => flatten(items.value))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter(props, flatItems, search)\n const visibleIds = computed(() => {\n if (!search.value) {\n return null\n }\n return new Set(filteredItems.value.flatMap(item => {\n return [...getPath(item.props.value), ...getChildren(item.props.value)]\n }))\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = id\n while (parent != null) {\n path.unshift(parent)\n parent = vListRef.value?.parents.get(parent)\n }\n return path\n }\n\n function getChildren (id: unknown) {\n const arr: unknown[] = []\n const queue = ((vListRef.value?.children.get(id) ?? []).slice())\n while (queue.length) {\n const child = queue.shift()\n if (!child) continue\n arr.push(child)\n queue.push(...((vListRef.value?.children.get(child) ?? []).slice()))\n }\n return arr\n }\n\n function openAll (items: InternalListItem<any>[]) {\n let ids: any[] = []\n\n for (const i of items) {\n if (!i.children) continue\n\n ids.push(props.returnObject ? toRaw(i.raw) : i.value)\n\n if (i.children) {\n ids = ids.concat(openAll(i.children))\n }\n }\n\n return ids\n }\n\n provide(VTreeviewSymbol, { visibleIds })\n\n provideDefaults({\n VTreeviewGroup: {\n activeColor,\n baseColor,\n color,\n collapseIcon: toRef(props, 'collapseIcon'),\n expandIcon: toRef(props, 'expandIcon'),\n },\n VTreeviewItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n baseColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n const listProps = VList.filterProps(props)\n\n const treeviewChildrenProps = VTreeviewChildren.filterProps(props)\n\n return (\n <VList\n ref={ vListRef }\n { ...listProps }\n class={[\n 'v-treeview',\n props.class,\n ]}\n open-strategy=\"multiple\"\n style={ props.style }\n opened={ opened.value }\n v-model:activated={ activated.value }\n v-model:selected={ selected.value }\n >\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n returnObject={ props.returnObject }\n items={ items.value }\n v-slots={ slots }\n ></VTreeviewChildren>\n </VList>\n )\n })\n\n return { }\n },\n})\n\nexport type VTreeview = InstanceType<typeof VTreeview>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,8 +2,9 @@ import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, creat
|
|
|
2
2
|
// Components
|
|
3
3
|
import { VTreeviewGroup } from "./VTreeviewGroup.mjs";
|
|
4
4
|
import { VTreeviewItem } from "./VTreeviewItem.mjs";
|
|
5
|
-
import { VCheckboxBtn } from "../../components/VCheckbox/index.mjs"; //
|
|
6
|
-
import {
|
|
5
|
+
import { VCheckboxBtn } from "../../components/VCheckbox/index.mjs"; // Composables
|
|
6
|
+
import { IconValue } from "../../composables/icons.mjs"; // Utilities
|
|
7
|
+
import { computed, shallowRef, toRaw, withModifiers } from 'vue';
|
|
7
8
|
import { genericComponent, propsFactory } from "../../util/index.mjs"; // Types
|
|
8
9
|
export const makeVTreeviewChildrenProps = propsFactory({
|
|
9
10
|
loadChildren: Function,
|
|
@@ -12,7 +13,19 @@ export const makeVTreeviewChildrenProps = propsFactory({
|
|
|
12
13
|
default: '$loading'
|
|
13
14
|
},
|
|
14
15
|
items: Array,
|
|
16
|
+
openOnClick: {
|
|
17
|
+
type: Boolean,
|
|
18
|
+
default: undefined
|
|
19
|
+
},
|
|
20
|
+
indeterminateIcon: {
|
|
21
|
+
type: IconValue,
|
|
22
|
+
default: '$checkboxIndeterminate'
|
|
23
|
+
},
|
|
24
|
+
falseIcon: IconValue,
|
|
25
|
+
trueIcon: IconValue,
|
|
26
|
+
returnObject: Boolean,
|
|
15
27
|
selectable: Boolean,
|
|
28
|
+
selectedColor: String,
|
|
16
29
|
selectStrategy: [String, Function, Object]
|
|
17
30
|
}, 'VTreeviewChildren');
|
|
18
31
|
export const VTreeviewChildren = genericComponent()({
|
|
@@ -24,6 +37,7 @@ export const VTreeviewChildren = genericComponent()({
|
|
|
24
37
|
slots
|
|
25
38
|
} = _ref;
|
|
26
39
|
const isLoading = shallowRef(null);
|
|
40
|
+
const isClickOnOpen = computed(() => props.openOnClick != null ? props.openOnClick : props.selectable);
|
|
27
41
|
function checkChildren(item) {
|
|
28
42
|
return new Promise(resolve => {
|
|
29
43
|
if (!props.items?.length || !props.loadChildren) return resolve();
|
|
@@ -54,7 +68,11 @@ export const VTreeviewChildren = genericComponent()({
|
|
|
54
68
|
"key": item.value,
|
|
55
69
|
"modelValue": slotProps.isSelected,
|
|
56
70
|
"loading": loading,
|
|
71
|
+
"color": props.selectedColor,
|
|
57
72
|
"indeterminate": slotProps.isIndeterminate,
|
|
73
|
+
"indeterminateIcon": props.indeterminateIcon,
|
|
74
|
+
"falseIcon": props.falseIcon,
|
|
75
|
+
"trueIcon": props.trueIcon,
|
|
58
76
|
"onClick": withModifiers(() => selectItem(slotProps.select, slotProps.isSelected), ['stop']),
|
|
59
77
|
"onKeydown": e => {
|
|
60
78
|
if (!['Enter', 'Space'].includes(e.key)) return;
|
|
@@ -76,9 +94,9 @@ export const VTreeviewChildren = genericComponent()({
|
|
|
76
94
|
};
|
|
77
95
|
const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps);
|
|
78
96
|
const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
|
|
79
|
-
return children ? _createVNode(VTreeviewGroup, _mergeProps({
|
|
80
|
-
"value":
|
|
81
|
-
}
|
|
97
|
+
return children ? _createVNode(VTreeviewGroup, _mergeProps(treeviewGroupProps, {
|
|
98
|
+
"value": props.returnObject ? item : treeviewGroupProps?.value
|
|
99
|
+
}), {
|
|
82
100
|
activator: _ref3 => {
|
|
83
101
|
let {
|
|
84
102
|
props: activatorProps
|
|
@@ -86,19 +104,24 @@ export const VTreeviewChildren = genericComponent()({
|
|
|
86
104
|
const listItemProps = {
|
|
87
105
|
...itemProps,
|
|
88
106
|
...activatorProps,
|
|
89
|
-
value: itemProps?.value
|
|
107
|
+
value: itemProps?.value,
|
|
108
|
+
onToggleExpand: activatorProps.onClick,
|
|
109
|
+
onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : undefined
|
|
90
110
|
};
|
|
91
111
|
return _createVNode(VTreeviewItem, _mergeProps(listItemProps, {
|
|
92
|
-
"
|
|
93
|
-
"
|
|
112
|
+
"value": props.returnObject ? toRaw(item) : itemProps.value,
|
|
113
|
+
"loading": loading
|
|
94
114
|
}), slotsWithItem);
|
|
95
115
|
},
|
|
96
116
|
default: () => _createVNode(VTreeviewChildren, _mergeProps(treeviewChildrenProps, {
|
|
97
|
-
"items": children
|
|
117
|
+
"items": children,
|
|
118
|
+
"returnObject": props.returnObject
|
|
98
119
|
}), slots)
|
|
99
120
|
}) : slots.item?.({
|
|
100
121
|
props: itemProps
|
|
101
|
-
}) ?? _createVNode(VTreeviewItem, itemProps,
|
|
122
|
+
}) ?? _createVNode(VTreeviewItem, _mergeProps(itemProps, {
|
|
123
|
+
"value": props.returnObject ? toRaw(item) : itemProps.value
|
|
124
|
+
}), slotsWithItem);
|
|
102
125
|
});
|
|
103
126
|
}
|
|
104
127
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTreeviewChildren.mjs","names":["VTreeviewGroup","VTreeviewItem","VCheckboxBtn","shallowRef","withModifiers","genericComponent","propsFactory","makeVTreeviewChildrenProps","loadChildren","Function","loadingIcon","type","String","default","items","Array","selectable","Boolean","selectStrategy","Object","VTreeviewChildren","name","props","setup","_ref","emit","slots","isLoading","checkChildren","item","Promise","resolve","length","children","value","then","finally","selectItem","select","isSelected","map","_ref2","itemProps","raw","loading","slotsWithItem","prepend","slotProps","_createVNode","_Fragment","includes","isIndeterminate","e","key","stopPropagation","append","undefined","title","treeviewGroupProps","filterProps","treeviewChildrenProps","_mergeProps","activator","_ref3","activatorProps","listItemProps","onClick"],"sources":["../../../src/labs/VTreeview/VTreeviewChildren.tsx"],"sourcesContent":["// Components\nimport { VTreeviewGroup } from './VTreeviewGroup'\nimport { VTreeviewItem } from './VTreeviewItem'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Utilities\nimport { shallowRef, withModifiers } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalListItem } from '@/components/VList/VList'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\nimport type { SelectStrategyProp } from '@/composables/nested/nested'\nimport type { GenericProps } from '@/util'\n\nexport type VTreeviewChildrenSlots<T> = {\n [K in keyof Omit<VListItemSlots, 'default'>]: VListItemSlots[K] & { item: T }\n} & {\n default: never\n item: { props: InternalListItem['props'] }\n}\n\nexport const makeVTreeviewChildrenProps = propsFactory({\n loadChildren: Function as PropType<(item: unknown) => Promise<void>>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n items: Array as PropType<readonly InternalListItem[]>,\n selectable: Boolean,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n}, 'VTreeviewChildren')\n\nexport const VTreeviewChildren = genericComponent<new <T extends InternalListItem>(\n props: {\n items?: readonly T[]\n },\n slots: VTreeviewChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeviewChildren',\n\n props: makeVTreeviewChildrenProps(),\n\n setup (props, { emit, slots }) {\n const isLoading = shallowRef(null)\n\n function checkChildren (item: any) {\n return new Promise<void>(resolve => {\n if (!props.items?.length || !props.loadChildren) return resolve()\n\n if (item?.children?.length === 0) {\n isLoading.value = item.value\n props.loadChildren(item).then(resolve)\n\n return\n }\n\n resolve()\n }).finally(() => {\n isLoading.value = null\n })\n }\n\n function selectItem (select: (value: boolean) => void, isSelected: boolean) {\n if (props.selectable) {\n select(!isSelected)\n }\n }\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, raw: item }) => {\n const loading = isLoading.value === item.value\n const slotsWithItem = {\n prepend: slotProps => (\n <>\n { props.selectable && (!children || (children && !['leaf', 'single-leaf'].includes(props.selectStrategy as string))) && (\n <div>\n <VCheckboxBtn\n key={ item.value }\n modelValue={ slotProps.isSelected }\n loading={ loading }\n indeterminate={ slotProps.isIndeterminate }\n onClick={ withModifiers(() => selectItem(slotProps.select, slotProps.isSelected), ['stop']) }\n onKeydown={ (e: KeyboardEvent) => {\n if (!['Enter', 'Space'].includes(e.key)) return\n e.stopPropagation()\n selectItem(slotProps.select, slotProps.isSelected)\n }}\n />\n </div>\n )}\n\n { slots.prepend?.({ ...slotProps, item }) }\n </>\n ),\n append: slots.append ? slotProps => slots.append?.({ ...slotProps, item }) : undefined,\n title: slots.title ? slotProps => slots.title?.({ ...slotProps, item }) : undefined,\n } satisfies VTreeviewItem['$props']['$children']\n\n const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps)\n const treeviewChildrenProps = VTreeviewChildren.filterProps(props)\n\n return children ? (\n <VTreeviewGroup\n value={ itemProps?.value }\n { ...treeviewGroupProps }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: itemProps?.value,\n }\n\n return (\n <VTreeviewItem\n { ...listItemProps }\n loading={ loading }\n v-slots={ slotsWithItem }\n onClick={ () => checkChildren(item) }\n />\n )\n },\n default: () => (\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n items={ children }\n v-slots={ slots }\n />\n ),\n }}\n </VTreeviewGroup>\n ) : (\n slots.item?.({ props: itemProps }) ?? (\n <VTreeviewItem\n { ...itemProps }\n v-slots={ slotsWithItem }\n />\n ))\n })\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VTreeviewChildren.mjs","names":["VTreeviewGroup","VTreeviewItem","VCheckboxBtn","IconValue","computed","shallowRef","toRaw","withModifiers","genericComponent","propsFactory","makeVTreeviewChildrenProps","loadChildren","Function","loadingIcon","type","String","default","items","Array","openOnClick","Boolean","undefined","indeterminateIcon","falseIcon","trueIcon","returnObject","selectable","selectedColor","selectStrategy","Object","VTreeviewChildren","name","props","setup","_ref","emit","slots","isLoading","isClickOnOpen","checkChildren","item","Promise","resolve","length","children","value","then","finally","selectItem","select","isSelected","map","_ref2","itemProps","raw","loading","slotsWithItem","prepend","slotProps","_createVNode","_Fragment","includes","isIndeterminate","e","key","stopPropagation","append","title","treeviewGroupProps","filterProps","treeviewChildrenProps","_mergeProps","activator","_ref3","activatorProps","listItemProps","onToggleExpand","onClick"],"sources":["../../../src/labs/VTreeview/VTreeviewChildren.tsx"],"sourcesContent":["// Components\nimport { VTreeviewGroup } from './VTreeviewGroup'\nimport { VTreeviewItem } from './VTreeviewItem'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, shallowRef, toRaw, withModifiers } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalListItem } from '@/components/VList/VList'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\nimport type { SelectStrategyProp } from '@/composables/nested/nested'\nimport type { GenericProps } from '@/util'\n\nexport type VTreeviewChildrenSlots<T> = {\n [K in keyof Omit<VListItemSlots, 'default'>]: VListItemSlots[K] & { item: T }\n} & {\n default: never\n item: { props: InternalListItem['props'] }\n}\n\nexport const makeVTreeviewChildrenProps = propsFactory({\n loadChildren: Function as PropType<(item: unknown) => Promise<void>>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n items: Array as PropType<readonly InternalListItem[]>,\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate',\n },\n falseIcon: IconValue,\n trueIcon: IconValue,\n returnObject: Boolean,\n selectable: Boolean,\n selectedColor: String,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n}, 'VTreeviewChildren')\n\nexport const VTreeviewChildren = genericComponent<new <T extends InternalListItem>(\n props: {\n items?: readonly T[]\n },\n slots: VTreeviewChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeviewChildren',\n\n props: makeVTreeviewChildrenProps(),\n\n setup (props, { emit, slots }) {\n const isLoading = shallowRef(null)\n\n const isClickOnOpen = computed(() => props.openOnClick != null ? props.openOnClick : props.selectable)\n\n function checkChildren (item: any) {\n return new Promise<void>(resolve => {\n if (!props.items?.length || !props.loadChildren) return resolve()\n\n if (item?.children?.length === 0) {\n isLoading.value = item.value\n props.loadChildren(item).then(resolve)\n\n return\n }\n\n resolve()\n }).finally(() => {\n isLoading.value = null\n })\n }\n\n function selectItem (select: (value: boolean) => void, isSelected: boolean) {\n if (props.selectable) {\n select(!isSelected)\n }\n }\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, raw: item }) => {\n const loading = isLoading.value === item.value\n const slotsWithItem = {\n prepend: slotProps => (\n <>\n { props.selectable && (!children || (children && !['leaf', 'single-leaf'].includes(props.selectStrategy as string))) && (\n <div>\n <VCheckboxBtn\n key={ item.value }\n modelValue={ slotProps.isSelected }\n loading={ loading }\n color={ props.selectedColor }\n indeterminate={ slotProps.isIndeterminate }\n indeterminateIcon={ props.indeterminateIcon }\n falseIcon={ props.falseIcon }\n trueIcon={ props.trueIcon }\n onClick={ withModifiers(() => selectItem(slotProps.select, slotProps.isSelected), ['stop']) }\n onKeydown={ (e: KeyboardEvent) => {\n if (!['Enter', 'Space'].includes(e.key)) return\n e.stopPropagation()\n selectItem(slotProps.select, slotProps.isSelected)\n }}\n />\n </div>\n )}\n\n { slots.prepend?.({ ...slotProps, item }) }\n </>\n ),\n append: slots.append ? slotProps => slots.append?.({ ...slotProps, item }) : undefined,\n title: slots.title ? slotProps => slots.title?.({ ...slotProps, item }) : undefined,\n } satisfies VTreeviewItem['$props']['$children']\n\n const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps)\n const treeviewChildrenProps = VTreeviewChildren.filterProps(props)\n\n return children ? (\n <VTreeviewGroup\n { ...treeviewGroupProps }\n value={ props.returnObject ? item : treeviewGroupProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: itemProps?.value,\n onToggleExpand: activatorProps.onClick as any,\n onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] as any : undefined,\n }\n\n return (\n <VTreeviewItem\n { ...listItemProps }\n value={ props.returnObject ? toRaw(item) : itemProps.value }\n loading={ loading }\n v-slots={ slotsWithItem }\n />\n )\n },\n default: () => (\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n items={ children }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n ),\n }}\n </VTreeviewGroup>\n ) : (\n slots.item?.({ props: itemProps }) ?? (\n <VTreeviewItem\n { ...itemProps }\n value={ props.returnObject ? toRaw(item) : itemProps.value }\n v-slots={ slotsWithItem }\n />\n ))\n })\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
import { mergeProps as _mergeProps,
|
|
1
|
+
import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
|
|
2
2
|
// Styles
|
|
3
3
|
import "./VTreeviewItem.css";
|
|
4
4
|
|
|
5
5
|
// Components
|
|
6
6
|
import { VBtn } from "../../components/VBtn/index.mjs";
|
|
7
|
-
import { VListItemAction
|
|
7
|
+
import { VListItemAction } from "../../components/VList/index.mjs";
|
|
8
8
|
import { makeVListItemProps, VListItem } from "../../components/VList/VListItem.mjs";
|
|
9
9
|
import { VProgressCircular } from "../../components/VProgressCircular/index.mjs"; // Composables
|
|
10
|
-
import { useDensity } from "../../composables/density.mjs";
|
|
11
10
|
import { IconValue } from "../../composables/icons.mjs";
|
|
12
11
|
import { useNestedItem } from "../../composables/nested/nested.mjs";
|
|
13
|
-
import { useLink } from "../../composables/router.mjs";
|
|
14
|
-
import { genOverlays } from "../../composables/variant.mjs"; // Utilities
|
|
12
|
+
import { useLink } from "../../composables/router.mjs"; // Utilities
|
|
15
13
|
import { computed, inject, ref } from 'vue';
|
|
16
|
-
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
14
|
+
import { EventProp, genericComponent, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
17
15
|
import { VTreeviewSymbol } from "./shared.mjs";
|
|
18
16
|
export const makeVTreeviewItemProps = propsFactory({
|
|
19
17
|
loading: Boolean,
|
|
18
|
+
onToggleExpand: EventProp(),
|
|
20
19
|
toggleIcon: IconValue,
|
|
21
20
|
...makeVListItemProps({
|
|
22
21
|
slim: true
|
|
@@ -37,24 +36,12 @@ export const VTreeviewItem = genericComponent()({
|
|
|
37
36
|
const {
|
|
38
37
|
activate,
|
|
39
38
|
isActivated,
|
|
40
|
-
select,
|
|
41
|
-
isSelected,
|
|
42
|
-
isIndeterminate,
|
|
43
39
|
isGroupActivator,
|
|
44
40
|
root,
|
|
45
41
|
id
|
|
46
42
|
} = useNestedItem(rawId, false);
|
|
47
43
|
const isActivatableGroupActivator = computed(() => root.activatable.value && isGroupActivator);
|
|
48
|
-
const
|
|
49
|
-
densityClasses
|
|
50
|
-
} = useDensity(props, 'v-list-item');
|
|
51
|
-
const slotProps = computed(() => ({
|
|
52
|
-
isActive: isActivated.value,
|
|
53
|
-
select,
|
|
54
|
-
isSelected: isSelected.value,
|
|
55
|
-
isIndeterminate: isIndeterminate.value
|
|
56
|
-
}));
|
|
57
|
-
const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list));
|
|
44
|
+
const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list || isActivatableGroupActivator.value));
|
|
58
45
|
function activateItem(e) {
|
|
59
46
|
if (!isClickable.value || !isActivatableGroupActivator.value && isGroupActivator) return;
|
|
60
47
|
if (root.activatable.value) {
|
|
@@ -65,68 +52,20 @@ export const VTreeviewItem = genericComponent()({
|
|
|
65
52
|
}
|
|
66
53
|
}
|
|
67
54
|
}
|
|
68
|
-
function onKeyDown(e) {
|
|
69
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
|
70
|
-
e.preventDefault();
|
|
71
|
-
activateItem(e);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
55
|
const visibleIds = inject(VTreeviewSymbol, {
|
|
75
56
|
visibleIds: ref()
|
|
76
57
|
}).visibleIds;
|
|
77
58
|
useRender(() => {
|
|
78
|
-
const
|
|
79
|
-
const hasSubtitle = slots.subtitle || props.subtitle != null;
|
|
80
|
-
const listItemProps = VListItem.filterProps(props);
|
|
59
|
+
const listItemProps = omit(VListItem.filterProps(props), ['onClick']);
|
|
81
60
|
const hasPrepend = slots.prepend || props.toggleIcon;
|
|
82
|
-
return
|
|
83
|
-
"
|
|
84
|
-
'v-list-item--active': isActivated.value || isSelected.value,
|
|
85
|
-
'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
|
|
86
|
-
}, densityClasses.value, props.class],
|
|
87
|
-
"onClick": activateItem
|
|
88
|
-
}, [_createVNode(_Fragment, null, [genOverlays(isActivated.value || isSelected.value, 'v-list-item'), props.toggleIcon && _createVNode(VListItemAction, {
|
|
89
|
-
"start": false
|
|
90
|
-
}, {
|
|
91
|
-
default: () => [_createVNode(VBtn, {
|
|
92
|
-
"density": "compact",
|
|
93
|
-
"icon": props.toggleIcon,
|
|
94
|
-
"loading": props.loading,
|
|
95
|
-
"variant": "text",
|
|
96
|
-
"onClick": props.onClick
|
|
97
|
-
}, {
|
|
98
|
-
loader() {
|
|
99
|
-
return _createVNode(VProgressCircular, {
|
|
100
|
-
"indeterminate": "disable-shrink",
|
|
101
|
-
"size": "20",
|
|
102
|
-
"width": "2"
|
|
103
|
-
}, null);
|
|
104
|
-
}
|
|
105
|
-
})]
|
|
106
|
-
})]), _createVNode("div", {
|
|
107
|
-
"class": "v-list-item__content",
|
|
108
|
-
"data-no-activator": ""
|
|
109
|
-
}, [hasTitle && _createVNode(VListItemTitle, {
|
|
110
|
-
"key": "title"
|
|
111
|
-
}, {
|
|
112
|
-
default: () => [slots.title?.({
|
|
113
|
-
title: props.title
|
|
114
|
-
}) ?? props.title]
|
|
115
|
-
}), hasSubtitle && _createVNode(VListItemSubtitle, {
|
|
116
|
-
"key": "subtitle"
|
|
117
|
-
}, {
|
|
118
|
-
default: () => [slots.subtitle?.({
|
|
119
|
-
subtitle: props.subtitle
|
|
120
|
-
}) ?? props.subtitle]
|
|
121
|
-
}), slots.default?.(slotProps.value)])]), [[_resolveDirective("ripple"), isClickable.value && props.ripple]]) : _createVNode(VListItem, _mergeProps({
|
|
122
|
-
"ref": vListItemRef
|
|
123
|
-
}, listItemProps, {
|
|
61
|
+
return _createVNode(VListItem, _mergeProps(listItemProps, {
|
|
62
|
+
"active": isActivated.value,
|
|
124
63
|
"class": ['v-treeview-item', {
|
|
64
|
+
'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,
|
|
125
65
|
'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
|
|
126
66
|
}, props.class],
|
|
127
|
-
"
|
|
128
|
-
"onClick": activateItem
|
|
129
|
-
"onKeydown": isClickable.value && onKeyDown
|
|
67
|
+
"ripple": false,
|
|
68
|
+
"onClick": props.onClick ?? activateItem
|
|
130
69
|
}), {
|
|
131
70
|
...slots,
|
|
132
71
|
prepend: hasPrepend ? slotProps => {
|
|
@@ -137,7 +76,8 @@ export const VTreeviewItem = genericComponent()({
|
|
|
137
76
|
"density": "compact",
|
|
138
77
|
"icon": props.toggleIcon,
|
|
139
78
|
"loading": props.loading,
|
|
140
|
-
"variant": "text"
|
|
79
|
+
"variant": "text",
|
|
80
|
+
"onClick": props.onToggleExpand
|
|
141
81
|
}, {
|
|
142
82
|
loader() {
|
|
143
83
|
return _createVNode(VProgressCircular, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VTreeviewItem.mjs","names":["VBtn","VListItemAction","VListItemSubtitle","VListItemTitle","makeVListItemProps","VListItem","VProgressCircular","useDensity","IconValue","useNestedItem","useLink","genOverlays","computed","inject","ref","genericComponent","propsFactory","useRender","VTreeviewSymbol","makeVTreeviewItemProps","loading","Boolean","toggleIcon","slim","VTreeviewItem","name","props","setup","_ref","attrs","slots","emit","link","rawId","value","undefined","href","vListItemRef","activate","isActivated","select","isSelected","isIndeterminate","isGroupActivator","root","id","isActivatableGroupActivator","activatable","densityClasses","slotProps","isActive","isClickable","disabled","list","activateItem","e","onKeyDown","key","preventDefault","visibleIds","hasTitle","title","hasSubtitle","subtitle","listItemProps","filterProps","hasPrepend","prepend","_withDirectives","_createVNode","has","class","_Fragment","default","onClick","loader","_resolveDirective","ripple","_mergeProps"],"sources":["../../../src/labs/VTreeview/VTreeviewItem.tsx"],"sourcesContent":["// Styles\nimport './VTreeviewItem.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VListItemAction, VListItemSubtitle, VListItemTitle } from '@/components/VList'\nimport { makeVListItemProps, VListItem } from '@/components/VList/VListItem'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { useDensity } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { useLink } from '@/composables/router'\nimport { genOverlays } from '@/composables/variant'\n\n// Utilities\nimport { computed, inject, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VTreeviewSymbol } from './shared'\nimport type { ListItemSlot, VListItemSlots } from '@/components/VList/VListItem'\n\nexport const makeVTreeviewItemProps = propsFactory({\n loading: Boolean,\n toggleIcon: IconValue,\n\n ...makeVListItemProps({ slim: true }),\n}, 'VTreeviewItem')\n\nexport const VTreeviewItem = genericComponent<VListItemSlots>()({\n name: 'VTreeviewItem',\n\n props: makeVTreeviewItemProps(),\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const rawId = computed(() => props.value === undefined ? link.href.value : props.value)\n const vListItemRef = ref<VListItem>()\n\n const {\n activate,\n isActivated,\n select,\n isSelected,\n isIndeterminate,\n isGroupActivator,\n root,\n id,\n } = useNestedItem(rawId, false)\n\n const isActivatableGroupActivator = computed(() =>\n (root.activatable.value) &&\n isGroupActivator\n )\n\n const { densityClasses } = useDensity(props, 'v-list-item')\n\n const slotProps = computed(() => ({\n isActive: isActivated.value,\n select,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (props.value != null && !!vListItemRef.value?.list))\n )\n\n function activateItem (e: MouseEvent | KeyboardEvent) {\n if (\n !isClickable.value ||\n (!isActivatableGroupActivator.value && isGroupActivator)\n ) return\n\n if (root.activatable.value) {\n if (isActivatableGroupActivator.value) {\n activate(!isActivated.value, e)\n } else {\n vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e)\n }\n }\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n activateItem(e)\n }\n }\n\n const visibleIds = inject(VTreeviewSymbol, { visibleIds: ref() }).visibleIds\n\n useRender(() => {\n const hasTitle = (slots.title || props.title != null)\n const hasSubtitle = (slots.subtitle || props.subtitle != null)\n const listItemProps = VListItem.filterProps(props)\n const hasPrepend = slots.prepend || props.toggleIcon\n\n return isActivatableGroupActivator.value\n ? (\n <div\n class={[\n 'v-list-item',\n 'v-list-item--one-line',\n 'v-treeview-item',\n 'v-treeview-item--activetable-group-activator',\n {\n 'v-list-item--active': isActivated.value || isSelected.value,\n 'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value),\n },\n densityClasses.value,\n props.class,\n ]}\n onClick={ activateItem }\n v-ripple={ isClickable.value && props.ripple }\n >\n <>\n { genOverlays(isActivated.value || isSelected.value, 'v-list-item') }\n { props.toggleIcon && (\n <VListItemAction start={ false }>\n <VBtn\n density=\"compact\"\n icon={ props.toggleIcon }\n loading={ props.loading }\n variant=\"text\"\n onClick={ props.onClick }\n >\n {{\n loader () {\n return (\n <VProgressCircular\n indeterminate=\"disable-shrink\"\n size=\"20\"\n width=\"2\"\n />\n )\n },\n }}\n </VBtn>\n </VListItemAction>\n )}\n\n </>\n\n <div class=\"v-list-item__content\" data-no-activator=\"\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? props.title }\n </VListItemTitle>\n )}\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n </VListItemSubtitle>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n </div>\n ) : (\n <VListItem\n ref={ vListItemRef }\n { ...listItemProps }\n class={[\n 'v-treeview-item',\n {\n 'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value),\n },\n props.class,\n ]}\n value={ id.value }\n onClick={ activateItem }\n onKeydown={ isClickable.value && onKeyDown }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => {\n return (\n <>\n { props.toggleIcon && (\n <VListItemAction start={ false }>\n <VBtn\n density=\"compact\"\n icon={ props.toggleIcon }\n loading={ props.loading }\n variant=\"text\"\n >\n {{\n loader () {\n return (\n <VProgressCircular\n indeterminate=\"disable-shrink\"\n size=\"20\"\n width=\"2\"\n />\n )\n },\n }}\n </VBtn>\n </VListItemAction>\n )}\n\n { slots.prepend?.(slotProps) }\n </>\n )\n } : undefined,\n }}\n </VListItem>\n )\n })\n\n return {}\n },\n})\n\nexport type VTreeviewItem = InstanceType<typeof VTreeviewItem>\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VTreeviewItem.mjs","names":["VBtn","VListItemAction","makeVListItemProps","VListItem","VProgressCircular","IconValue","useNestedItem","useLink","computed","inject","ref","EventProp","genericComponent","omit","propsFactory","useRender","VTreeviewSymbol","makeVTreeviewItemProps","loading","Boolean","onToggleExpand","toggleIcon","slim","VTreeviewItem","name","props","setup","_ref","attrs","slots","emit","link","rawId","value","undefined","href","vListItemRef","activate","isActivated","isGroupActivator","root","id","isActivatableGroupActivator","activatable","isClickable","disabled","list","activateItem","e","visibleIds","listItemProps","filterProps","hasPrepend","prepend","_createVNode","_mergeProps","has","class","onClick","slotProps","_Fragment","default","loader"],"sources":["../../../src/labs/VTreeview/VTreeviewItem.tsx"],"sourcesContent":["// Styles\nimport './VTreeviewItem.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VListItemAction } from '@/components/VList'\nimport { makeVListItemProps, VListItem } from '@/components/VList/VListItem'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { useLink } from '@/composables/router'\n\n// Utilities\nimport { computed, inject, ref } from 'vue'\nimport { EventProp, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VTreeviewSymbol } from './shared'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\n\nexport const makeVTreeviewItemProps = propsFactory({\n loading: Boolean,\n onToggleExpand: EventProp<[MouseEvent]>(),\n toggleIcon: IconValue,\n\n ...makeVListItemProps({ slim: true }),\n}, 'VTreeviewItem')\n\nexport const VTreeviewItem = genericComponent<VListItemSlots>()({\n name: 'VTreeviewItem',\n\n props: makeVTreeviewItemProps(),\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const rawId = computed(() => props.value === undefined ? link.href.value : props.value)\n const vListItemRef = ref<VListItem>()\n\n const {\n activate,\n isActivated,\n isGroupActivator,\n root,\n id,\n } = useNestedItem(rawId, false)\n\n const isActivatableGroupActivator = computed(() =>\n (root.activatable.value) &&\n isGroupActivator\n )\n\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (props.value != null && !!vListItemRef.value?.list) || isActivatableGroupActivator.value)\n )\n\n function activateItem (e: MouseEvent | KeyboardEvent) {\n if (\n !isClickable.value ||\n (!isActivatableGroupActivator.value && isGroupActivator)\n ) return\n\n if (root.activatable.value) {\n if (isActivatableGroupActivator.value) {\n activate(!isActivated.value, e)\n } else {\n vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e)\n }\n }\n }\n\n const visibleIds = inject(VTreeviewSymbol, { visibleIds: ref() }).visibleIds\n\n useRender(() => {\n const listItemProps = omit(VListItem.filterProps(props), ['onClick'])\n const hasPrepend = slots.prepend || props.toggleIcon\n\n return (\n <VListItem\n { ...listItemProps }\n active={ isActivated.value }\n class={[\n 'v-treeview-item',\n {\n 'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,\n 'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value),\n },\n props.class,\n ]}\n ripple={ false }\n onClick={ props.onClick ?? activateItem }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => {\n return (\n <>\n { props.toggleIcon && (\n <VListItemAction start={ false }>\n <VBtn\n density=\"compact\"\n icon={ props.toggleIcon }\n loading={ props.loading }\n variant=\"text\"\n onClick={ props.onToggleExpand }\n >\n {{\n loader () {\n return (\n <VProgressCircular\n indeterminate=\"disable-shrink\"\n size=\"20\"\n width=\"2\"\n />\n )\n },\n }}\n </VBtn>\n </VListItemAction>\n )}\n\n { slots.prepend?.(slotProps) }\n </>\n )\n } : undefined,\n }}\n </VListItem>\n )\n })\n\n return {}\n },\n})\n\nexport type VTreeviewItem = InstanceType<typeof VTreeviewItem>\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
@use './variables' as *
|
|
3
3
|
|
|
4
4
|
@include tools.layer('components')
|
|
5
|
-
.v-treeview-item--filtered
|
|
6
|
-
|
|
5
|
+
.v-treeview-item.v-treeview-item--filtered
|
|
6
|
+
display: none
|
|
7
7
|
|
|
8
8
|
.v-treeview
|
|
9
9
|
--indent-padding: 0px
|
|
@@ -16,6 +16,3 @@
|
|
|
16
16
|
|
|
17
17
|
.v-list-group__items .v-list-item
|
|
18
18
|
padding-inline-start: calc(#{$treeview-item-padding-inline-start} + var(--indent-padding)) !important
|
|
19
|
-
|
|
20
|
-
.v-list-group__items .v-list-item--prepend
|
|
21
|
-
// padding-inline-start: calc(#{$treeview-item-prepend-padding-inline-start} + var(--indent-padding)) !important
|