@vuetify/nightly 3.9.0-beta.0-dev.2025-06-24 → 3.9.0-beta.1-dev.2025-06-26

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.
@@ -28,6 +28,7 @@ export declare const makeVTreeviewChildrenProps: <Defaults extends {
28
28
  falseIcon?: unknown;
29
29
  trueIcon?: unknown;
30
30
  returnObject?: unknown;
31
+ activatable?: unknown;
31
32
  selectable?: unknown;
32
33
  selectedColor?: unknown;
33
34
  selectStrategy?: unknown;
@@ -100,6 +101,10 @@ export declare const makeVTreeviewChildrenProps: <Defaults extends {
100
101
  type: PropType<unknown extends Defaults["returnObject"] ? boolean : boolean | Defaults["returnObject"]>;
101
102
  default: unknown extends Defaults["returnObject"] ? boolean : boolean | Defaults["returnObject"];
102
103
  };
104
+ activatable: unknown extends Defaults["activatable"] ? BooleanConstructor : {
105
+ type: PropType<unknown extends Defaults["activatable"] ? boolean : boolean | Defaults["activatable"]>;
106
+ default: unknown extends Defaults["activatable"] ? boolean : boolean | Defaults["activatable"];
107
+ };
103
108
  selectable: unknown extends Defaults["selectable"] ? BooleanConstructor : {
104
109
  type: PropType<unknown extends Defaults["selectable"] ? boolean : boolean | Defaults["selectable"]>;
105
110
  default: unknown extends Defaults["selectable"] ? boolean : boolean | Defaults["selectable"];
@@ -134,6 +139,7 @@ export declare const VTreeviewChildren: {
134
139
  returnObject: boolean;
135
140
  density: import("../../composables/density.js").Density;
136
141
  indeterminateIcon: IconValue;
142
+ activatable: boolean;
137
143
  selectable: boolean;
138
144
  loadingIcon: string;
139
145
  } & {
@@ -153,6 +159,7 @@ export declare const VTreeviewChildren: {
153
159
  density: import("../../composables/density.js").Density;
154
160
  openOnClick: boolean;
155
161
  indeterminateIcon: IconValue;
162
+ activatable: boolean;
156
163
  selectable: boolean;
157
164
  loadingIcon: string;
158
165
  }, true, {}, import("vue").SlotsType<Partial<{
@@ -191,6 +198,7 @@ export declare const VTreeviewChildren: {
191
198
  returnObject: boolean;
192
199
  density: import("../../composables/density.js").Density;
193
200
  indeterminateIcon: IconValue;
201
+ activatable: boolean;
194
202
  selectable: boolean;
195
203
  loadingIcon: string;
196
204
  } & {
@@ -210,6 +218,7 @@ export declare const VTreeviewChildren: {
210
218
  density: import("../../composables/density.js").Density;
211
219
  openOnClick: boolean;
212
220
  indeterminateIcon: IconValue;
221
+ activatable: boolean;
213
222
  selectable: boolean;
214
223
  loadingIcon: string;
215
224
  }>;
@@ -222,6 +231,7 @@ export declare const VTreeviewChildren: {
222
231
  returnObject: boolean;
223
232
  density: import("../../composables/density.js").Density;
224
233
  indeterminateIcon: IconValue;
234
+ activatable: boolean;
225
235
  selectable: boolean;
226
236
  loadingIcon: string;
227
237
  } & {
@@ -241,6 +251,7 @@ export declare const VTreeviewChildren: {
241
251
  density: import("../../composables/density.js").Density;
242
252
  openOnClick: boolean;
243
253
  indeterminateIcon: IconValue;
254
+ activatable: boolean;
244
255
  selectable: boolean;
245
256
  loadingIcon: string;
246
257
  }, {}, string, import("vue").SlotsType<Partial<{
@@ -292,6 +303,7 @@ export declare const VTreeviewChildren: {
292
303
  falseIcon: PropType<IconValue>;
293
304
  trueIcon: PropType<IconValue>;
294
305
  returnObject: BooleanConstructor;
306
+ activatable: BooleanConstructor;
295
307
  selectable: BooleanConstructor;
296
308
  selectedColor: StringConstructor;
297
309
  selectStrategy: PropType<SelectStrategyProp>;
@@ -324,6 +336,7 @@ export declare const VTreeviewChildren: {
324
336
  falseIcon: PropType<IconValue>;
325
337
  trueIcon: PropType<IconValue>;
326
338
  returnObject: BooleanConstructor;
339
+ activatable: BooleanConstructor;
327
340
  selectable: BooleanConstructor;
328
341
  selectedColor: StringConstructor;
329
342
  selectStrategy: PropType<SelectStrategyProp>;
@@ -26,6 +26,7 @@ export const makeVTreeviewChildrenProps = propsFactory({
26
26
  falseIcon: IconValue,
27
27
  trueIcon: IconValue,
28
28
  returnObject: Boolean,
29
+ activatable: Boolean,
29
30
  selectable: Boolean,
30
31
  selectedColor: String,
31
32
  selectStrategy: [String, Function, Object],
@@ -45,7 +46,7 @@ export const VTreeviewChildren = genericComponent()({
45
46
  } = _ref;
46
47
  const isLoading = reactive(new Set());
47
48
  const activatorItems = ref([]);
48
- const isClickOnOpen = computed(() => !props.disabled && (props.openOnClick != null ? props.openOnClick : props.selectable));
49
+ const isClickOnOpen = computed(() => !props.disabled && (props.openOnClick != null ? props.openOnClick : props.selectable && !props.activatable));
49
50
  async function checkChildren(item) {
50
51
  try {
51
52
  if (!props.items?.length || !props.loadChildren) return;
@@ -1 +1 @@
1
- {"version":3,"file":"VTreeviewChildren.js","names":["VTreeviewGroup","VTreeviewItem","VCheckboxBtn","makeDensityProps","IconValue","computed","reactive","ref","toRaw","genericComponent","propsFactory","makeVTreeviewChildrenProps","disabled","Boolean","loadChildren","Function","loadingIcon","type","String","default","items","Array","openOnClick","undefined","indeterminateIcon","falseIcon","trueIcon","returnObject","selectable","selectedColor","selectStrategy","Object","index","Number","path","VTreeviewChildren","name","props","setup","_ref","slots","isLoading","Set","activatorItems","isClickOnOpen","checkChildren","item","length","children","add","value","raw","delete","selectItem","select","isSelected","map","itemProps","loading","has","treeItemProps","depth","isFirst","isLast","slotsWithItem","prepend","slotProps","_createElementVNode","_Fragment","includes","_createVNode","density","isIndeterminate","v","e","stopPropagation","key","internalItem","append","title","subtitle","treeviewGroupProps","filterProps","treeviewChildrenProps","_mergeProps","activator","_ref2","activatorProps","listItemProps","onToggleExpand","onClick","el"],"sources":["../../../src/components/VTreeview/VTreeviewChildren.tsx"],"sourcesContent":["// Components\nimport { VTreeviewGroup } from './VTreeviewGroup'\nimport { VTreeviewItem } from './VTreeviewItem'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, reactive, ref, toRaw } 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] & {\n item: T\n internalItem: InternalListItem<T>\n }\n} & {\n default: never\n item: {\n props: InternalListItem['props']\n item: T\n internalItem: InternalListItem<T>\n }\n}\n\nexport const makeVTreeviewChildrenProps = propsFactory({\n disabled: Boolean,\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 index: Number,\n path: {\n type: Array as PropType<number[]>,\n default: () => [],\n },\n ...makeDensityProps(),\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, { slots }) {\n const isLoading = reactive(new Set<unknown>())\n const activatorItems = ref<VTreeviewItem[]>([])\n\n const isClickOnOpen = computed(() => (\n !props.disabled && (\n props.openOnClick != null\n ? props.openOnClick\n : props.selectable\n )))\n\n async function checkChildren (item: InternalListItem) {\n try {\n if (!props.items?.length || !props.loadChildren) return\n\n if (item?.children?.length === 0) {\n isLoading.add(item.value)\n await props.loadChildren(item.raw)\n }\n } finally {\n isLoading.delete(item.value)\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((item, index) => {\n const { children, props: itemProps } = item\n const loading = isLoading.has(item.value)\n\n const treeItemProps = {\n index,\n depth: props.path?.length ?? 0,\n isFirst: index === 0,\n isLast: props.items ? props.items.length - 1 === index : false,\n path: [...props.path, index],\n }\n\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 disabled={ props.disabled }\n loading={ loading }\n color={ props.selectedColor }\n density={ props.density }\n indeterminate={ slotProps.isIndeterminate }\n indeterminateIcon={ props.indeterminateIcon }\n falseIcon={ props.falseIcon }\n trueIcon={ props.trueIcon }\n onUpdate:modelValue={ v => selectItem(slotProps.select, v) }\n onClick={ (e: PointerEvent) => e.stopPropagation() }\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, ...treeItemProps, item: item.raw, internalItem: item }) }\n </>\n ),\n append: slots.append\n ? slotProps => slots.append?.({ ...slotProps, ...treeItemProps, item: item.raw, internalItem: item })\n : undefined,\n title: slots.title ? slotProps => slots.title?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n subtitle: slots.subtitle ? slotProps => slots.subtitle?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n } satisfies VTreeviewItem['$props']['$children']\n\n const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps)\n const treeviewChildrenProps = VTreeviewChildren.filterProps({ ...props, ...treeItemProps })\n\n return children ? (\n <VTreeviewGroup\n { ...treeviewGroupProps }\n value={ props.returnObject ? item.raw : treeviewGroupProps?.value }\n rawId={ treeviewGroupProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: itemProps?.value,\n onToggleExpand: [() => checkChildren(item), activatorProps.onClick] as any,\n onClick: isClickOnOpen.value\n ? [() => checkChildren(item), activatorProps.onClick] as any\n : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected),\n }\n\n return (\n <VTreeviewItem\n ref={ el => activatorItems.value[index] = el as VTreeviewItem }\n { ...listItemProps }\n value={ props.returnObject ? item.raw : 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, item: item.raw, internalItem: item }) ?? (\n <VTreeviewItem\n { ...itemProps }\n value={ props.returnObject ? toRaw(item.raw) : itemProps.value }\n v-slots={ slotsWithItem }\n />\n ))\n })\n },\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VTreeviewChildren.js","names":["VTreeviewGroup","VTreeviewItem","VCheckboxBtn","makeDensityProps","IconValue","computed","reactive","ref","toRaw","genericComponent","propsFactory","makeVTreeviewChildrenProps","disabled","Boolean","loadChildren","Function","loadingIcon","type","String","default","items","Array","openOnClick","undefined","indeterminateIcon","falseIcon","trueIcon","returnObject","activatable","selectable","selectedColor","selectStrategy","Object","index","Number","path","VTreeviewChildren","name","props","setup","_ref","slots","isLoading","Set","activatorItems","isClickOnOpen","checkChildren","item","length","children","add","value","raw","delete","selectItem","select","isSelected","map","itemProps","loading","has","treeItemProps","depth","isFirst","isLast","slotsWithItem","prepend","slotProps","_createElementVNode","_Fragment","includes","_createVNode","density","isIndeterminate","v","e","stopPropagation","key","internalItem","append","title","subtitle","treeviewGroupProps","filterProps","treeviewChildrenProps","_mergeProps","activator","_ref2","activatorProps","listItemProps","onToggleExpand","onClick","el"],"sources":["../../../src/components/VTreeview/VTreeviewChildren.tsx"],"sourcesContent":["// Components\nimport { VTreeviewGroup } from './VTreeviewGroup'\nimport { VTreeviewItem } from './VTreeviewItem'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, reactive, ref, toRaw } 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] & {\n item: T\n internalItem: InternalListItem<T>\n }\n} & {\n default: never\n item: {\n props: InternalListItem['props']\n item: T\n internalItem: InternalListItem<T>\n }\n}\n\nexport const makeVTreeviewChildrenProps = propsFactory({\n disabled: Boolean,\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 activatable: Boolean,\n selectable: Boolean,\n selectedColor: String,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n index: Number,\n path: {\n type: Array as PropType<number[]>,\n default: () => [],\n },\n ...makeDensityProps(),\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, { slots }) {\n const isLoading = reactive(new Set<unknown>())\n const activatorItems = ref<VTreeviewItem[]>([])\n\n const isClickOnOpen = computed(() => (\n !props.disabled && (\n props.openOnClick != null\n ? props.openOnClick\n : props.selectable && !props.activatable\n )))\n\n async function checkChildren (item: InternalListItem) {\n try {\n if (!props.items?.length || !props.loadChildren) return\n\n if (item?.children?.length === 0) {\n isLoading.add(item.value)\n await props.loadChildren(item.raw)\n }\n } finally {\n isLoading.delete(item.value)\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((item, index) => {\n const { children, props: itemProps } = item\n const loading = isLoading.has(item.value)\n\n const treeItemProps = {\n index,\n depth: props.path?.length ?? 0,\n isFirst: index === 0,\n isLast: props.items ? props.items.length - 1 === index : false,\n path: [...props.path, index],\n }\n\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 disabled={ props.disabled }\n loading={ loading }\n color={ props.selectedColor }\n density={ props.density }\n indeterminate={ slotProps.isIndeterminate }\n indeterminateIcon={ props.indeterminateIcon }\n falseIcon={ props.falseIcon }\n trueIcon={ props.trueIcon }\n onUpdate:modelValue={ v => selectItem(slotProps.select, v) }\n onClick={ (e: PointerEvent) => e.stopPropagation() }\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, ...treeItemProps, item: item.raw, internalItem: item }) }\n </>\n ),\n append: slots.append\n ? slotProps => slots.append?.({ ...slotProps, ...treeItemProps, item: item.raw, internalItem: item })\n : undefined,\n title: slots.title ? slotProps => slots.title?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n subtitle: slots.subtitle ? slotProps => slots.subtitle?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n } satisfies VTreeviewItem['$props']['$children']\n\n const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps)\n const treeviewChildrenProps = VTreeviewChildren.filterProps({ ...props, ...treeItemProps })\n\n return children ? (\n <VTreeviewGroup\n { ...treeviewGroupProps }\n value={ props.returnObject ? item.raw : treeviewGroupProps?.value }\n rawId={ treeviewGroupProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: itemProps?.value,\n onToggleExpand: [() => checkChildren(item), activatorProps.onClick] as any,\n onClick: isClickOnOpen.value\n ? [() => checkChildren(item), activatorProps.onClick] as any\n : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected),\n }\n\n return (\n <VTreeviewItem\n ref={ el => activatorItems.value[index] = el as VTreeviewItem }\n { ...listItemProps }\n value={ props.returnObject ? item.raw : 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, item: item.raw, internalItem: item }) ?? (\n <VTreeviewItem\n { ...itemProps }\n value={ props.returnObject ? toRaw(item.raw) : itemProps.value }\n v-slots={ slotsWithItem }\n />\n ))\n })\n },\n})\n"],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,7 @@ import { VProgressCircular } from "../VProgressCircular/index.js"; // Composable
10
10
  import { forwardRefs } from "../../composables/forwardRefs.js";
11
11
  import { IconValue } from "../../composables/icons.js"; // Utilities
12
12
  import { computed, inject, ref, toRaw } from 'vue';
13
- import { genericComponent, omit, propsFactory, useRender } from "../../util/index.js"; // Types
13
+ import { genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
14
14
  import { VTreeviewSymbol } from "./shared.js";
15
15
  export const makeVTreeviewItemProps = propsFactory({
16
16
  loading: Boolean,
@@ -49,7 +49,7 @@ export const VTreeviewItem = genericComponent()({
49
49
  emit('toggleExpand', e);
50
50
  }
51
51
  useRender(() => {
52
- const listItemProps = omit(VListItem.filterProps(props), ['onClick']);
52
+ const listItemProps = VListItem.filterProps(props);
53
53
  const hasPrepend = slots.prepend || props.toggleIcon;
54
54
  return _createVNode(VListItem, _mergeProps({
55
55
  "ref": vListItemRef
@@ -60,7 +60,7 @@ export const VTreeviewItem = genericComponent()({
60
60
  'v-treeview-item--filtered': isFiltered.value
61
61
  }, props.class],
62
62
  "ripple": false,
63
- "onClick": props.onClick ?? activateGroupActivator
63
+ "onClick": activateGroupActivator
64
64
  }), {
65
65
  ...slots,
66
66
  prepend: hasPrepend ? slotProps => {
@@ -1 +1 @@
1
- {"version":3,"file":"VTreeviewItem.js","names":["VBtn","VListItemAction","makeVListItemProps","VListItem","VProgressCircular","forwardRefs","IconValue","computed","inject","ref","toRaw","genericComponent","omit","propsFactory","useRender","VTreeviewSymbol","makeVTreeviewItemProps","loading","Boolean","toggleIcon","slim","VTreeviewItem","name","props","emits","toggleExpand","value","setup","_ref","slots","emit","visibleIds","vListItemRef","isActivatableGroupActivator","root","activatable","isGroupActivator","vListItemRefIsClickable","link","isClickable","list","disabled","isFiltered","has","id","activateGroupActivator","e","activate","isActivated","onClickAction","preventDefault","stopPropagation","listItemProps","filterProps","hasPrepend","prepend","_createVNode","_mergeProps","class","onClick","slotProps","_createElementVNode","_Fragment","default","loader","undefined"],"sources":["../../../src/components/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 { forwardRefs } from '@/composables/forwardRefs'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, inject, ref, toRaw } from 'vue'\nimport { 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 toggleIcon: IconValue,\n\n ...makeVListItemProps({ slim: true }),\n}, 'VTreeviewItem')\n\nexport const VTreeviewItem = genericComponent<VListItemSlots>()({\n name: 'VTreeviewItem',\n\n props: makeVTreeviewItemProps(),\n\n emits: {\n toggleExpand: (value: PointerEvent) => true,\n },\n\n setup (props, { slots, emit }) {\n const visibleIds = inject(VTreeviewSymbol, { visibleIds: ref() }).visibleIds\n\n const vListItemRef = ref<VListItem>()\n\n const isActivatableGroupActivator = computed(() =>\n (vListItemRef.value?.root.activatable.value) &&\n vListItemRef.value?.isGroupActivator\n )\n const vListItemRefIsClickable = computed(() => (\n vListItemRef.value?.link.isClickable.value ||\n (props.value != null && !!vListItemRef.value?.list)\n ))\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || vListItemRefIsClickable.value || isActivatableGroupActivator.value)\n )\n const isFiltered = computed(() => visibleIds.value && !visibleIds.value.has(toRaw(vListItemRef.value?.id)))\n\n function activateGroupActivator (e: MouseEvent | KeyboardEvent) {\n if (isClickable.value && isActivatableGroupActivator.value) {\n vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e)\n }\n }\n\n function onClickAction (e: PointerEvent) {\n e.preventDefault()\n e.stopPropagation()\n emit('toggleExpand', e)\n }\n\n useRender(() => {\n const listItemProps = omit(VListItem.filterProps(props), ['onClick'])\n const hasPrepend = slots.prepend || props.toggleIcon\n\n return (\n <VListItem\n ref={ vListItemRef }\n { ...listItemProps }\n active={ vListItemRef.value?.isActivated }\n class={[\n 'v-treeview-item',\n {\n 'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,\n 'v-treeview-item--filtered': isFiltered.value,\n },\n props.class,\n ]}\n ripple={ false }\n onClick={ props.onClick ?? activateGroupActivator }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => {\n return (\n <>\n <VListItemAction start>\n { props.toggleIcon ? (\n <VBtn\n density=\"compact\"\n icon={ props.toggleIcon }\n loading={ props.loading }\n variant=\"text\"\n onClick={ onClickAction }\n >\n {{\n loader: () => (\n <VProgressCircular\n indeterminate=\"disable-shrink\"\n size=\"20\"\n width=\"2\"\n />\n ),\n }}\n </VBtn>\n ) : (\n <div class=\"v-treeview-item__level\" />\n )}\n </VListItemAction>\n\n { slots.prepend?.(slotProps) }\n </>\n )\n } : undefined,\n }}\n </VListItem>\n )\n })\n\n return forwardRefs({}, vListItemRef)\n },\n})\n\nexport type VTreeviewItem = InstanceType<typeof VTreeviewItem>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VTreeviewItem.js","names":["VBtn","VListItemAction","makeVListItemProps","VListItem","VProgressCircular","forwardRefs","IconValue","computed","inject","ref","toRaw","genericComponent","propsFactory","useRender","VTreeviewSymbol","makeVTreeviewItemProps","loading","Boolean","toggleIcon","slim","VTreeviewItem","name","props","emits","toggleExpand","value","setup","_ref","slots","emit","visibleIds","vListItemRef","isActivatableGroupActivator","root","activatable","isGroupActivator","vListItemRefIsClickable","link","isClickable","list","disabled","isFiltered","has","id","activateGroupActivator","e","activate","isActivated","onClickAction","preventDefault","stopPropagation","listItemProps","filterProps","hasPrepend","prepend","_createVNode","_mergeProps","class","slotProps","_createElementVNode","_Fragment","default","loader","undefined"],"sources":["../../../src/components/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 { forwardRefs } from '@/composables/forwardRefs'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, inject, ref, toRaw } from 'vue'\nimport { genericComponent, 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 toggleIcon: IconValue,\n\n ...makeVListItemProps({ slim: true }),\n}, 'VTreeviewItem')\n\nexport const VTreeviewItem = genericComponent<VListItemSlots>()({\n name: 'VTreeviewItem',\n\n props: makeVTreeviewItemProps(),\n\n emits: {\n toggleExpand: (value: PointerEvent) => true,\n },\n\n setup (props, { slots, emit }) {\n const visibleIds = inject(VTreeviewSymbol, { visibleIds: ref() }).visibleIds\n\n const vListItemRef = ref<VListItem>()\n\n const isActivatableGroupActivator = computed(() =>\n (vListItemRef.value?.root.activatable.value) &&\n vListItemRef.value?.isGroupActivator\n )\n const vListItemRefIsClickable = computed(() => (\n vListItemRef.value?.link.isClickable.value ||\n (props.value != null && !!vListItemRef.value?.list)\n ))\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || vListItemRefIsClickable.value || isActivatableGroupActivator.value)\n )\n const isFiltered = computed(() => visibleIds.value && !visibleIds.value.has(toRaw(vListItemRef.value?.id)))\n\n function activateGroupActivator (e: MouseEvent | KeyboardEvent) {\n if (isClickable.value && isActivatableGroupActivator.value) {\n vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e)\n }\n }\n\n function onClickAction (e: PointerEvent) {\n e.preventDefault()\n e.stopPropagation()\n emit('toggleExpand', e)\n }\n\n useRender(() => {\n const listItemProps = VListItem.filterProps(props)\n const hasPrepend = slots.prepend || props.toggleIcon\n\n return (\n <VListItem\n ref={ vListItemRef }\n { ...listItemProps }\n active={ vListItemRef.value?.isActivated }\n class={[\n 'v-treeview-item',\n {\n 'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,\n 'v-treeview-item--filtered': isFiltered.value,\n },\n props.class,\n ]}\n ripple={ false }\n onClick={ activateGroupActivator }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => {\n return (\n <>\n <VListItemAction start>\n { props.toggleIcon ? (\n <VBtn\n density=\"compact\"\n icon={ props.toggleIcon }\n loading={ props.loading }\n variant=\"text\"\n onClick={ onClickAction }\n >\n {{\n loader: () => (\n <VProgressCircular\n indeterminate=\"disable-shrink\"\n size=\"20\"\n width=\"2\"\n />\n ),\n }}\n </VBtn>\n ) : (\n <div class=\"v-treeview-item__level\" />\n )}\n </VListItemAction>\n\n { slots.prepend?.(slotProps) }\n </>\n )\n } : undefined,\n }}\n </VListItem>\n )\n })\n\n return forwardRefs({}, vListItemRef)\n },\n})\n\nexport type VTreeviewItem = InstanceType<typeof VTreeviewItem>\n"],"mappings":"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","ignoreList":[]}
@@ -39,9 +39,9 @@ export const makeNestedProps = propsFactory({
39
39
  }, 'nested');
40
40
  export const useNested = props => {
41
41
  let isUnmounted = false;
42
- const children = ref(new Map());
43
- const parents = ref(new Map());
44
- const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
42
+ const children = shallowRef(new Map());
43
+ const parents = shallowRef(new Map());
44
+ const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(Array.isArray(v) ? v.map(i => toRaw(i)) : v), v => [...v.values()]);
45
45
  const activeStrategy = computed(() => {
46
46
  if (typeof props.activeStrategy === 'object') return props.activeStrategy;
47
47
  if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);
@@ -95,7 +95,7 @@ export const useNested = props => {
95
95
  });
96
96
  function getPath(id) {
97
97
  const path = [];
98
- let parent = id;
98
+ let parent = toRaw(id);
99
99
  while (parent != null) {
100
100
  path.unshift(parent);
101
101
  parent = parents.value.get(parent);
@@ -238,7 +238,7 @@ export const useNested = props => {
238
238
  export const useNestedItem = (id, isGroup) => {
239
239
  const parent = inject(VNestedSymbol, emptyNested);
240
240
  const uidSymbol = Symbol('nested item');
241
- const computedId = computed(() => toValue(id) ?? uidSymbol);
241
+ const computedId = computed(() => toRaw(toValue(id)) ?? uidSymbol);
242
242
  const item = {
243
243
  ...parent,
244
244
  id: computedId,
@@ -247,10 +247,10 @@ export const useNestedItem = (id, isGroup) => {
247
247
  isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
248
248
  parent: computed(() => parent.root.parents.value.get(computedId.value)),
249
249
  activate: (activated, e) => parent.root.activate(computedId.value, activated, e),
250
- isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),
250
+ isActivated: computed(() => parent.root.activated.value.has(computedId.value)),
251
251
  select: (selected, e) => parent.root.select(computedId.value, selected, e),
252
- isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),
253
- isIndeterminate: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'indeterminate'),
252
+ isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),
253
+ isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),
254
254
  isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),
255
255
  isGroupActivator: parent.isGroupActivator
256
256
  };
@@ -1 +1 @@
1
- {"version":3,"file":"nested.js","names":["useProxiedModel","computed","inject","onBeforeMount","onBeforeUnmount","provide","ref","shallowRef","toRaw","toRef","toValue","independentActiveStrategy","independentSingleActiveStrategy","leafActiveStrategy","leafSingleActiveStrategy","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","trunkSelectStrategy","consoleError","getCurrentInstance","propsFactory","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","parents","Map","children","open","openOnSelect","activate","select","activatable","selectable","opened","Set","activated","selected","selectedValues","getPath","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","useNested","props","isUnmounted","v","values","value","in","out","path","parent","unshift","get","vm","nodeIds","nested","arr","key","entries","push","parentId","isGroup","has","map","join","newPath","concat","add","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","size","useNestedItem","uidSymbol","computedId","item","e","isOpen","isActivated","isSelected","isIndeterminate","isLeaf","isGroupActivator","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport {\n computed,\n inject,\n onBeforeMount,\n onBeforeUnmount,\n provide,\n ref,\n shallowRef,\n toRaw,\n toRef, toValue,\n} from 'vue'\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy,\n} from './activeStrategies'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n trunkSelectStrategy,\n} from './selectStrategies'\nimport { consoleError, getCurrentInstance, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, MaybeRefOrGetter, PropType, Ref } from 'vue'\nimport type { ActiveStrategy } from './activeStrategies'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategy } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type ActiveStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | ActiveStrategy\n | ((mandatory: boolean) => ActiveStrategy)\nexport type SelectStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | 'classic'\n | 'trunk'\n | SelectStrategy\n | ((mandatory: boolean) => SelectStrategy)\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: ActiveStrategyProp | undefined\n selectStrategy: SelectStrategyProp | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: any\n selected: any\n opened: any\n mandatory: boolean\n 'onUpdate:activated': EventProp<[any]> | undefined\n 'onUpdate:selected': EventProp<[any]> | undefined\n 'onUpdate:opened': EventProp<[any]> | undefined\n}\n\ntype NestedProvide = {\n id: Ref<unknown>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<unknown, unknown[]>>\n parents: Ref<Map<unknown, unknown>>\n activatable: Ref<boolean>\n selectable: Ref<boolean>\n opened: Ref<Set<unknown>>\n activated: Ref<Set<unknown>>\n selected: Ref<Map<unknown, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<unknown[]>\n register: (id: unknown, parentId: unknown, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n activate: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n getPath: (id: unknown) => unknown[]\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n getPath: () => [],\n },\n}\n\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object] as PropType<ActiveStrategyProp>,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map<unknown, unknown[]>())\n const parents = ref(new Map<unknown, unknown>())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\n\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory)\n\n switch (props.activeStrategy) {\n case 'leaf': return leafActiveStrategy(props.mandatory)\n case 'single-leaf': return leafSingleActiveStrategy(props.mandatory)\n case 'independent': return independentActiveStrategy(props.mandatory)\n case 'single-independent':\n default: return independentSingleActiveStrategy(props.mandatory)\n }\n })\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory)\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'trunk': return trunkSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const activated = useProxiedModel(\n props,\n 'activated',\n props.activated,\n v => activeStrategy.value.in(v, children.value, parents.value),\n v => activeStrategy.value.out(v, children.value, parents.value),\n )\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nodeIds = new Set<unknown>()\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(() => props.activatable),\n selectable: toRef(() => props.selectable),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n if (nodeIds.has(id)) {\n const path = getPath(id).map(String).join(' -> ')\n const newPath = getPath(parentId).concat(id).map(String).join(' -> ')\n consoleError(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`)\n return\n } else {\n nodeIds.add(id)\n }\n\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n nodeIds.delete(id)\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event)\n }\n\n vm.emit('click:activate', { id, value, path: getPath(id), event })\n\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n if (newActivated.size !== activated.value.size) {\n activated.value = newActivated\n } else {\n for (const value of newActivated) {\n if (!activated.value.has(value)) {\n activated.value = newActivated\n return\n }\n }\n for (const value of activated.value) {\n if (!newActivated.has(value)) {\n activated.value = newActivated\n return\n }\n }\n }\n },\n children,\n parents,\n getPath,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: MaybeRefOrGetter<unknown>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol('nested item')\n const computedId = computed(() => toValue(id) ?? uidSymbol)\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated: boolean, e?: Event) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(toRaw(computedId.value))),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n onBeforeMount(() => {\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n })\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"nested.js","names":["useProxiedModel","computed","inject","onBeforeMount","onBeforeUnmount","provide","ref","shallowRef","toRaw","toRef","toValue","independentActiveStrategy","independentSingleActiveStrategy","leafActiveStrategy","leafSingleActiveStrategy","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","trunkSelectStrategy","consoleError","getCurrentInstance","propsFactory","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","parents","Map","children","open","openOnSelect","activate","select","activatable","selectable","opened","Set","activated","selected","selectedValues","getPath","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","useNested","props","isUnmounted","v","Array","isArray","map","i","values","value","in","out","path","parent","unshift","get","vm","nodeIds","nested","arr","key","entries","push","parentId","isGroup","has","join","newPath","concat","add","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","size","useNestedItem","uidSymbol","computedId","item","e","isOpen","isActivated","isSelected","isIndeterminate","isLeaf","isGroupActivator","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport {\n computed,\n inject,\n onBeforeMount,\n onBeforeUnmount,\n provide,\n ref,\n shallowRef,\n toRaw,\n toRef,\n toValue,\n} from 'vue'\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy,\n} from './activeStrategies'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n trunkSelectStrategy,\n} from './selectStrategies'\nimport { consoleError, getCurrentInstance, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, MaybeRefOrGetter, PropType, Ref } from 'vue'\nimport type { ActiveStrategy } from './activeStrategies'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategy } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type ActiveStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | ActiveStrategy\n | ((mandatory: boolean) => ActiveStrategy)\nexport type SelectStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | 'classic'\n | 'trunk'\n | SelectStrategy\n | ((mandatory: boolean) => SelectStrategy)\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: ActiveStrategyProp | undefined\n selectStrategy: SelectStrategyProp | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: any\n selected: any\n opened: any\n mandatory: boolean\n 'onUpdate:activated': EventProp<[any]> | undefined\n 'onUpdate:selected': EventProp<[any]> | undefined\n 'onUpdate:opened': EventProp<[any]> | undefined\n}\n\ntype NestedProvide = {\n id: Ref<unknown>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<unknown, unknown[]>>\n parents: Ref<Map<unknown, unknown>>\n activatable: Ref<boolean>\n selectable: Ref<boolean>\n opened: Ref<Set<unknown>>\n activated: Ref<Set<unknown>>\n selected: Ref<Map<unknown, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<unknown[]>\n register: (id: unknown, parentId: unknown, isGroup?: boolean) => void\n unregister: (id: unknown) => void\n open: (id: unknown, value: boolean, event?: Event) => void\n activate: (id: unknown, value: boolean, event?: Event) => void\n select: (id: unknown, value: boolean, event?: Event) => void\n openOnSelect: (id: unknown, value: boolean, event?: Event) => void\n getPath: (id: unknown) => unknown[]\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n getPath: () => [],\n },\n}\n\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object] as PropType<ActiveStrategyProp>,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = shallowRef(new Map<unknown, unknown[]>())\n const parents = shallowRef(new Map<unknown, unknown>())\n\n const opened = useProxiedModel(\n props,\n 'opened',\n props.opened,\n v => new Set(Array.isArray(v) ? v.map(i => toRaw(i)) : v),\n v => [...v.values()],\n )\n\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory)\n\n switch (props.activeStrategy) {\n case 'leaf': return leafActiveStrategy(props.mandatory)\n case 'single-leaf': return leafSingleActiveStrategy(props.mandatory)\n case 'independent': return independentActiveStrategy(props.mandatory)\n case 'single-independent':\n default: return independentSingleActiveStrategy(props.mandatory)\n }\n })\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory)\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'trunk': return trunkSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const activated = useProxiedModel(\n props,\n 'activated',\n props.activated,\n v => activeStrategy.value.in(v, children.value, parents.value),\n v => activeStrategy.value.out(v, children.value, parents.value),\n )\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: unknown) {\n const path: unknown[] = []\n let parent: unknown = toRaw(id)\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nodeIds = new Set<unknown>()\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(() => props.activatable),\n selectable: toRef(() => props.selectable),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n if (nodeIds.has(id)) {\n const path = getPath(id).map(String).join(' -> ')\n const newPath = getPath(parentId).concat(id).map(String).join(' -> ')\n consoleError(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`)\n return\n } else {\n nodeIds.add(id)\n }\n\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n nodeIds.delete(id)\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n nested.root.openOnSelect(id, value, event)\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event)\n }\n\n vm.emit('click:activate', { id, value, path: getPath(id), event })\n\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n if (newActivated.size !== activated.value.size) {\n activated.value = newActivated\n } else {\n for (const value of newActivated) {\n if (!activated.value.has(value)) {\n activated.value = newActivated\n return\n }\n }\n for (const value of activated.value) {\n if (!newActivated.has(value)) {\n activated.value = newActivated\n return\n }\n }\n }\n },\n children,\n parents,\n getPath,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: MaybeRefOrGetter<unknown>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol('nested item')\n const computedId = computed(() => toRaw(toValue(id)) ?? uidSymbol)\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open: boolean, e?: Event) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated: boolean, e?: Event) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(computedId.value)),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n onBeforeMount(() => {\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n })\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.9.0-beta.0-dev.2025-06-24";
19
+ export const version = "3.9.0-beta.1-dev.2025-06-26";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";