@vuetify/nightly 3.7.1-master.2024-08-29 → 3.7.1-master.2024-09-02

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.
Files changed (37) hide show
  1. package/dist/json/importMap-labs.json +20 -20
  2. package/dist/json/importMap.json +150 -150
  3. package/dist/json/web-types.json +1 -1
  4. package/dist/vuetify-labs.css +3902 -3902
  5. package/dist/vuetify-labs.d.ts +57 -0
  6. package/dist/vuetify-labs.esm.js +38 -40
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +38 -40
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +738 -738
  11. package/dist/vuetify.d.ts +113 -56
  12. package/dist/vuetify.esm.js +26 -9
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +26 -9
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +22 -22
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VAutocomplete/index.d.mts +3 -0
  20. package/lib/components/VCombobox/index.d.mts +3 -0
  21. package/lib/components/VList/VList.mjs +4 -2
  22. package/lib/components/VList/VList.mjs.map +1 -1
  23. package/lib/components/VList/VListItem.mjs +5 -2
  24. package/lib/components/VList/VListItem.mjs.map +1 -1
  25. package/lib/components/VList/index.d.mts +57 -0
  26. package/lib/components/VSelect/index.d.mts +3 -0
  27. package/lib/components/index.d.mts +57 -0
  28. package/lib/composables/nested/nested.mjs +15 -3
  29. package/lib/composables/nested/nested.mjs.map +1 -1
  30. package/lib/entry-bundler.mjs +1 -1
  31. package/lib/framework.mjs +1 -1
  32. package/lib/index.d.mts +56 -56
  33. package/lib/labs/VTreeview/VTreeview.mjs +3 -12
  34. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  35. package/lib/labs/VTreeview/VTreeviewItem.mjs +9 -20
  36. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  37. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nested.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","provide","ref","shallowRef","toRaw","toRef","independentActiveStrategy","independentSingleActiveStrategy","leafActiveStrategy","leafSingleActiveStrategy","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","getCurrentInstance","getUid","propsFactory","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","parents","Map","children","open","openOnSelect","activate","select","activatable","selectable","opened","Set","activated","selected","selectedValues","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","useNested","props","isUnmounted","v","values","value","in","out","getPath","path","parent","unshift","get","vm","nested","arr","key","entries","push","parentId","isGroup","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","useNestedItem","uidSymbol","computedId","undefined","item","e","isOpen","has","isActivated","isSelected","isIndeterminate","isLeaf","isGroupActivator","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw, toRef } 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} from './selectStrategies'\nimport { getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, 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 | 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 }\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 },\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(toRaw(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 '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 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 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 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 newActivated && (activated.value = newActivated)\n },\n children,\n parents,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref<unknown>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol(getUid())\n const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol)\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(toRaw(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(toRaw(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(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\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.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","provide","ref","shallowRef","toRaw","toRef","independentActiveStrategy","independentSingleActiveStrategy","leafActiveStrategy","leafSingleActiveStrategy","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","consoleError","getCurrentInstance","getUid","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","join","newPath","concat","add","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","useNestedItem","uidSymbol","computedId","undefined","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 { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw, toRef } 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} from './selectStrategies'\nimport { consoleError, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, 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 | 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(toRaw(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 '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).join(' -> ')\n const newPath = getPath(parentId).concat(id).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 newActivated && (activated.value = newActivated)\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: Ref<unknown>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol(getUid())\n const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol)\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(toRaw(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(toRaw(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(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\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.7.1-master.2024-08-29";
19
+ export const version = "3.7.1-master.2024-09-02";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -97,7 +97,7 @@ export function createVuetify() {
97
97
  goTo
98
98
  };
99
99
  }
100
- export const version = "3.7.1-master.2024-08-29";
100
+ export const version = "3.7.1-master.2024-09-02";
101
101
  createVuetify.version = version;
102
102
 
103
103
  // Vue's inject() can only be used in setup
package/lib/index.d.mts CHANGED
@@ -493,18 +493,19 @@ declare module 'vue' {
493
493
  VAlert: typeof import('vuetify/components')['VAlert']
494
494
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
495
495
  VAvatar: typeof import('vuetify/components')['VAvatar']
496
- VBadge: typeof import('vuetify/components')['VBadge']
497
496
  VBanner: typeof import('vuetify/components')['VBanner']
498
497
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
499
498
  VBannerText: typeof import('vuetify/components')['VBannerText']
500
499
  VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
501
- VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
500
+ VBadge: typeof import('vuetify/components')['VBadge']
502
501
  VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
502
+ VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
503
503
  VBtn: typeof import('vuetify/components')['VBtn']
504
504
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
505
505
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
506
506
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
507
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
507
+ VCheckbox: typeof import('vuetify/components')['VCheckbox']
508
+ VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
508
509
  VCard: typeof import('vuetify/components')['VCard']
509
510
  VCardActions: typeof import('vuetify/components')['VCardActions']
510
511
  VCardItem: typeof import('vuetify/components')['VCardItem']
@@ -512,24 +513,14 @@ declare module 'vue' {
512
513
  VCardText: typeof import('vuetify/components')['VCardText']
513
514
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
514
515
  VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
516
+ VCode: typeof import('vuetify/components')['VCode']
517
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
518
+ VChip: typeof import('vuetify/components')['VChip']
515
519
  VCarousel: typeof import('vuetify/components')['VCarousel']
516
520
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
517
- VChip: typeof import('vuetify/components')['VChip']
518
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
519
- VCheckbox: typeof import('vuetify/components')['VCheckbox']
520
- VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
521
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
522
521
  VCombobox: typeof import('vuetify/components')['VCombobox']
523
- VCounter: typeof import('vuetify/components')['VCounter']
524
- VCode: typeof import('vuetify/components')['VCode']
525
- VDatePicker: typeof import('vuetify/components')['VDatePicker']
526
- VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
527
- VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
528
- VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
529
- VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
530
- VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
531
- VDivider: typeof import('vuetify/components')['VDivider']
532
- VDialog: typeof import('vuetify/components')['VDialog']
522
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
523
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
533
524
  VDataTable: typeof import('vuetify/components')['VDataTable']
534
525
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
535
526
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -538,26 +529,33 @@ declare module 'vue' {
538
529
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
539
530
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
540
531
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
541
- VFileInput: typeof import('vuetify/components')['VFileInput']
532
+ VCounter: typeof import('vuetify/components')['VCounter']
533
+ VDialog: typeof import('vuetify/components')['VDialog']
534
+ VDatePicker: typeof import('vuetify/components')['VDatePicker']
535
+ VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
536
+ VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
537
+ VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
538
+ VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
539
+ VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
540
+ VDivider: typeof import('vuetify/components')['VDivider']
541
+ VFab: typeof import('vuetify/components')['VFab']
542
+ VField: typeof import('vuetify/components')['VField']
543
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
542
544
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
543
545
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
544
546
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
545
547
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
546
548
  VFooter: typeof import('vuetify/components')['VFooter']
547
- VFab: typeof import('vuetify/components')['VFab']
548
- VField: typeof import('vuetify/components')['VField']
549
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
549
+ VFileInput: typeof import('vuetify/components')['VFileInput']
550
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
550
551
  VIcon: typeof import('vuetify/components')['VIcon']
551
552
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
552
553
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
553
554
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
554
555
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
555
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
556
556
  VImg: typeof import('vuetify/components')['VImg']
557
557
  VInput: typeof import('vuetify/components')['VInput']
558
- VItemGroup: typeof import('vuetify/components')['VItemGroup']
559
- VItem: typeof import('vuetify/components')['VItem']
560
- VLabel: typeof import('vuetify/components')['VLabel']
558
+ VKbd: typeof import('vuetify/components')['VKbd']
561
559
  VList: typeof import('vuetify/components')['VList']
562
560
  VListGroup: typeof import('vuetify/components')['VListGroup']
563
561
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -567,50 +565,52 @@ declare module 'vue' {
567
565
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
568
566
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
569
567
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
570
- VKbd: typeof import('vuetify/components')['VKbd']
568
+ VLabel: typeof import('vuetify/components')['VLabel']
569
+ VItemGroup: typeof import('vuetify/components')['VItemGroup']
570
+ VItem: typeof import('vuetify/components')['VItem']
571
571
  VMain: typeof import('vuetify/components')['VMain']
572
572
  VMessages: typeof import('vuetify/components')['VMessages']
573
- VMenu: typeof import('vuetify/components')['VMenu']
574
573
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
575
- VOverlay: typeof import('vuetify/components')['VOverlay']
576
- VPagination: typeof import('vuetify/components')['VPagination']
577
574
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
575
+ VMenu: typeof import('vuetify/components')['VMenu']
576
+ VPagination: typeof import('vuetify/components')['VPagination']
578
577
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
579
578
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
580
- VRating: typeof import('vuetify/components')['VRating']
579
+ VOverlay: typeof import('vuetify/components')['VOverlay']
581
580
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
582
- VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
583
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
584
- VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
585
581
  VSelect: typeof import('vuetify/components')['VSelect']
586
- VSheet: typeof import('vuetify/components')['VSheet']
582
+ VRating: typeof import('vuetify/components')['VRating']
583
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
584
+ VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
587
585
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
588
586
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
587
+ VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
588
+ VSheet: typeof import('vuetify/components')['VSheet']
589
589
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
590
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
591
+ VTable: typeof import('vuetify/components')['VTable']
592
+ VTab: typeof import('vuetify/components')['VTab']
593
+ VTabs: typeof import('vuetify/components')['VTabs']
594
+ VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
595
+ VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
596
+ VSlider: typeof import('vuetify/components')['VSlider']
590
597
  VStepper: typeof import('vuetify/components')['VStepper']
591
598
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
592
599
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
593
600
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
594
601
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
595
602
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
596
- VSlider: typeof import('vuetify/components')['VSlider']
597
- VTable: typeof import('vuetify/components')['VTable']
598
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
599
- VTextField: typeof import('vuetify/components')['VTextField']
600
603
  VSwitch: typeof import('vuetify/components')['VSwitch']
601
- VTextarea: typeof import('vuetify/components')['VTextarea']
602
- VTab: typeof import('vuetify/components')['VTab']
603
- VTabs: typeof import('vuetify/components')['VTabs']
604
- VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
605
- VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
606
- VTooltip: typeof import('vuetify/components')['VTooltip']
604
+ VTextField: typeof import('vuetify/components')['VTextField']
607
605
  VTimeline: typeof import('vuetify/components')['VTimeline']
608
606
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
609
607
  VToolbar: typeof import('vuetify/components')['VToolbar']
610
608
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
611
609
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
610
+ VTooltip: typeof import('vuetify/components')['VTooltip']
612
611
  VWindow: typeof import('vuetify/components')['VWindow']
613
612
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
613
+ VTextarea: typeof import('vuetify/components')['VTextarea']
614
614
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
615
615
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
616
616
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
@@ -619,21 +619,21 @@ declare module 'vue' {
619
619
  VCol: typeof import('vuetify/components')['VCol']
620
620
  VRow: typeof import('vuetify/components')['VRow']
621
621
  VSpacer: typeof import('vuetify/components')['VSpacer']
622
+ VHover: typeof import('vuetify/components')['VHover']
622
623
  VLayout: typeof import('vuetify/components')['VLayout']
623
624
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
624
- VHover: typeof import('vuetify/components')['VHover']
625
625
  VLazy: typeof import('vuetify/components')['VLazy']
626
626
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
627
627
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
628
- VRadio: typeof import('vuetify/components')['VRadio']
629
628
  VParallax: typeof import('vuetify/components')['VParallax']
629
+ VRadio: typeof import('vuetify/components')['VRadio']
630
630
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
631
631
  VResponsive: typeof import('vuetify/components')['VResponsive']
632
632
  VSparkline: typeof import('vuetify/components')['VSparkline']
633
633
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
634
634
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
635
- VValidation: typeof import('vuetify/components')['VValidation']
636
635
  VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
636
+ VValidation: typeof import('vuetify/components')['VValidation']
637
637
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
638
638
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
639
639
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -650,24 +650,24 @@ declare module 'vue' {
650
650
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
651
651
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
652
652
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
653
- VPicker: typeof import('vuetify/labs/components')['VPicker']
654
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
655
653
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
656
654
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
657
655
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
658
656
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
659
657
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
660
658
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
659
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
660
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
661
661
  VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
662
- VTreeview: typeof import('vuetify/labs/components')['VTreeview']
663
- VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
664
- VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
665
- VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
666
- VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
667
- VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
668
662
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
669
663
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
670
664
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
665
+ VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
666
+ VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
667
+ VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
668
+ VTreeview: typeof import('vuetify/labs/components')['VTreeview']
669
+ VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
670
+ VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
671
671
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
672
672
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
673
673
  VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
@@ -72,22 +72,13 @@ export const VTreeview = genericComponent()({
72
72
  filteredItems
73
73
  } = useFilter(props, flatItems, search);
74
74
  const visibleIds = computed(() => {
75
- if (!search.value) {
76
- return null;
77
- }
75
+ if (!search.value) return null;
76
+ const getPath = vListRef.value?.getPath;
77
+ if (!getPath) return null;
78
78
  return new Set(filteredItems.value.flatMap(item => {
79
79
  return [...getPath(item.props.value), ...getChildren(item.props.value)];
80
80
  }));
81
81
  });
82
- function getPath(id) {
83
- const path = [];
84
- let parent = id;
85
- while (parent != null) {
86
- path.unshift(parent);
87
- parent = vListRef.value?.parents.get(parent);
88
- }
89
- return path;
90
- }
91
82
  function getChildren(id) {
92
83
  const arr = [];
93
84
  const queue = (vListRef.value?.children.get(id) ?? []).slice();
@@ -1 +1 @@
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":";AAAA;AAAA,SACSA,0BAA0B,EAAEC,iBAAiB;AAAA,SAC7CC,cAAc,EAAEC,YAAY,EAAEC,KAAK,4CAE5C;AAAA,SACSC,eAAe;AAAA,SACfC,eAAe,EAAEC,SAAS;AAAA,SAC1BC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,OAAO,EAAEC,GAAG,EAAEC,KAAK,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACjDC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAExD;AAAA,SACSC,eAAe;AAMxB,SAASC,OAAOA,CAAEC,KAAiB,EAAyB;EAAA,IAAvBC,IAAgB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACxD,KAAK,MAAMG,IAAI,IAAIL,KAAK,EAAE;IACxBC,IAAI,CAACK,IAAI,CAACD,IAAI,CAAC;IACf,IAAIA,IAAI,CAACE,QAAQ,EAAER,OAAO,CAACM,IAAI,CAACE,QAAQ,EAAEN,IAAI,CAAC;EACjD;EACA,OAAOA,IAAI;AACb;AAEA,OAAO,MAAMO,kBAAkB,GAAGZ,YAAY,CAAC;EAC7Ca,OAAO,EAAEC,OAAO;EAChBC,MAAM,EAAEC,MAAM;EAEd,GAAG1B,eAAe,CAAC;IAAE2B,UAAU,EAAE,CAAC,OAAO;EAAE,CAAC,CAAC;EAC7C,GAAGjC,0BAA0B,CAAC,CAAC;EAC/B,GAAGe,IAAI,CAACb,cAAc,CAAC;IACrBgC,YAAY,EAAE,mBAAmB;IACjCC,UAAU,EAAE,iBAAiB;IAC7BC,IAAI,EAAE;EACR,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;EACxCC,UAAU,EAAE;IACVC,IAAI,EAAEC,KAAK;IACXC,OAAO,EAAEA,CAAA,KAAO;EAClB;AACF,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,MAAMC,SAAS,GAAG3B,gBAAgB,CAKM,CAAC,CAAC;EAC/C4B,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAEf,kBAAkB,CAAC,CAAC;EAE3BgB,KAAK,EAAE;IACL,eAAe,EAAGC,GAAY,IAAK,IAAI;IACvC,kBAAkB,EAAGA,GAAY,IAAK,IAAI;IAC1C,iBAAiB,EAAGA,GAAY,IAAK,IAAI;IACzC,mBAAmB,EAAGA,GAAY,IAAK,IAAI;IAC3C,YAAY,EAAGC,KAAuD,IAAK,IAAI;IAC/E,cAAc,EAAGA,KAAuD,IAAK;EAC/E,CAAC;EAEDC,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAE5B;IAAM,CAAC,GAAGjB,YAAY,CAACwC,KAAK,CAAC;IACrC,MAAMO,WAAW,GAAGrC,KAAK,CAAC8B,KAAK,EAAE,aAAa,CAAC;IAC/C,MAAMQ,SAAS,GAAGtC,KAAK,CAAC8B,KAAK,EAAE,WAAW,CAAC;IAC3C,MAAMS,KAAK,GAAGvC,KAAK,CAAC8B,KAAK,EAAE,OAAO,CAAC;IACnC,MAAMU,SAAS,GAAG7C,eAAe,CAACmC,KAAK,EAAE,WAAW,CAAC;IACrD,MAAMW,KAAK,GAAG9C,eAAe,CAACmC,KAAK,EAAE,YAAY,CAAC;IAClD,MAAMY,SAAS,GAAG/C,eAAe,CAACmC,KAAK,EAAE,UAAU,EAAEA,KAAK,CAACN,UAAU,CAAC;IAEtE,MAAMmB,QAAQ,GAAG/C,QAAQ,CAAC;MACxBgD,GAAG,EAAEA,CAAA,KAAMF,SAAS,CAACT,KAAK;MAC1BY,GAAGA,CAAEb,GAAG,EAAE;QACRU,SAAS,CAACT,KAAK,GAAGD,GAAG;QACrBS,KAAK,CAACR,KAAK,GAAGD,GAAG;MACnB;IACF,CAAC,CAAC;IAEF,MAAMc,QAAQ,GAAGhD,GAAG,CAAQ,CAAC;IAE7B,MAAMiD,MAAM,GAAGnD,QAAQ,CAAC,MAAMkC,KAAK,CAACd,OAAO,GAAGA,OAAO,CAACT,KAAK,CAAC0B,KAAK,CAAC,GAAGH,KAAK,CAACiB,MAAM,CAAC;IAClF,MAAMC,SAAS,GAAGpD,QAAQ,CAAC,MAAMU,OAAO,CAACC,KAAK,CAAC0B,KAAK,CAAC,CAAC;IACtD,MAAMf,MAAM,GAAGlB,KAAK,CAAC8B,KAAK,EAAE,QAAQ,CAAC;IACrC,MAAM;MAAEmB;IAAc,CAAC,GAAGvD,SAAS,CAACoC,KAAK,EAAEkB,SAAS,EAAE9B,MAAM,CAAC;IAC7D,MAAMgC,UAAU,GAAGtD,QAAQ,CAAC,MAAM;MAChC,IAAI,CAACsB,MAAM,CAACe,KAAK,EAAE;QACjB,OAAO,IAAI;MACb;MACA,OAAO,IAAIkB,GAAG,CAACF,aAAa,CAAChB,KAAK,CAACmB,OAAO,CAACxC,IAAI,IAAI;QACjD,OAAO,CAAC,GAAGyC,OAAO,CAACzC,IAAI,CAACkB,KAAK,CAACG,KAAK,CAAC,EAAE,GAAGqB,WAAW,CAAC1C,IAAI,CAACkB,KAAK,CAACG,KAAK,CAAC,CAAC;MACzE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,SAASoB,OAAOA,CAAEE,EAAW,EAAE;MAC7B,MAAMC,IAAe,GAAG,EAAE;MAC1B,IAAIC,MAAe,GAAGF,EAAE;MACxB,OAAOE,MAAM,IAAI,IAAI,EAAE;QACrBD,IAAI,CAACE,OAAO,CAACD,MAAM,CAAC;QACpBA,MAAM,GAAGX,QAAQ,CAACb,KAAK,EAAE0B,OAAO,CAACf,GAAG,CAACa,MAAM,CAAC;MAC9C;MACA,OAAOD,IAAI;IACb;IAEA,SAASF,WAAWA,CAAEC,EAAW,EAAE;MACjC,MAAMK,GAAc,GAAG,EAAE;MACzB,MAAMC,KAAK,GAAI,CAACf,QAAQ,CAACb,KAAK,EAAEnB,QAAQ,CAAC8B,GAAG,CAACW,EAAE,CAAC,IAAI,EAAE,EAAEO,KAAK,CAAC,CAAE;MAChE,OAAOD,KAAK,CAACnD,MAAM,EAAE;QACnB,MAAMqD,KAAK,GAAGF,KAAK,CAACG,KAAK,CAAC,CAAC;QAC3B,IAAI,CAACD,KAAK,EAAE;QACZH,GAAG,CAAC/C,IAAI,CAACkD,KAAK,CAAC;QACfF,KAAK,CAAChD,IAAI,CAAC,GAAI,CAACiC,QAAQ,CAACb,KAAK,EAAEnB,QAAQ,CAAC8B,GAAG,CAACmB,KAAK,CAAC,IAAI,EAAE,EAAED,KAAK,CAAC,CAAE,CAAC;MACtE;MACA,OAAOF,GAAG;IACZ;IAEA,SAAS5C,OAAOA,CAAET,KAA8B,EAAE;MAChD,IAAI0D,GAAU,GAAG,EAAE;MAEnB,KAAK,MAAMC,CAAC,IAAI3D,KAAK,EAAE;QACrB,IAAI,CAAC2D,CAAC,CAACpD,QAAQ,EAAE;QAEjBmD,GAAG,CAACpD,IAAI,CAACiB,KAAK,CAACqC,YAAY,GAAGpE,KAAK,CAACmE,CAAC,CAACE,GAAG,CAAC,GAAGF,CAAC,CAACjC,KAAK,CAAC;QAErD,IAAIiC,CAAC,CAACpD,QAAQ,EAAE;UACdmD,GAAG,GAAGA,GAAG,CAACI,MAAM,CAACrD,OAAO,CAACkD,CAAC,CAACpD,QAAQ,CAAC,CAAC;QACvC;MACF;MAEA,OAAOmD,GAAG;IACZ;IAEApE,OAAO,CAACQ,eAAe,EAAE;MAAE6C;IAAW,CAAC,CAAC;IAExC1D,eAAe,CAAC;MACd8E,cAAc,EAAE;QACdjC,WAAW;QACXC,SAAS;QACTC,KAAK;QACLlB,YAAY,EAAErB,KAAK,CAAC8B,KAAK,EAAE,cAAc,CAAC;QAC1CR,UAAU,EAAEtB,KAAK,CAAC8B,KAAK,EAAE,YAAY;MACvC,CAAC;MACDyC,aAAa,EAAE;QACbC,WAAW,EAAExE,KAAK,CAAC8B,KAAK,EAAE,aAAa,CAAC;QACxCO,WAAW;QACXC,SAAS;QACTC,KAAK;QACLkC,OAAO,EAAEzE,KAAK,CAAC8B,KAAK,EAAE,SAAS,CAAC;QAChC4C,QAAQ,EAAE1E,KAAK,CAAC8B,KAAK,EAAE,UAAU,CAAC;QAClC6C,KAAK,EAAE3E,KAAK,CAAC8B,KAAK,EAAE,OAAO,CAAC;QAC5B8C,OAAO,EAAE5E,KAAK,CAAC8B,KAAK,EAAE,SAAS;MACjC;IACF,CAAC,CAAC;IAEF1B,SAAS,CAAC,MAAM;MACd,MAAMyE,SAAS,GAAGtF,KAAK,CAACuF,WAAW,CAAChD,KAAK,CAAC;MAE1C,MAAMiD,qBAAqB,GAAG3F,iBAAiB,CAAC0F,WAAW,CAAChD,KAAK,CAAC;MAElE,OAAAkD,YAAA,CAAAzF,KAAA,EAAA0F,WAAA;QAAA,OAEUnC;MAAQ,GACT+B,SAAS;QAAA,SACP,CACL,YAAY,EACZ/C,KAAK,CAACoD,KAAK,CACZ;QAAA;QAAA,SAEOpD,KAAK,CAACqD,KAAK;QAAA,UACVpC,MAAM,CAACd,KAAK;QAAA,aACDO,SAAS,CAACP,KAAK;QAAA,sBAAAmD,MAAA,IAAf5C,SAAS,CAACP,KAAK,GAAAmD,MAAA;QAAA,YAChBzC,QAAQ,CAACV,KAAK;QAAA,qBAAAmD,MAAA,IAAdzC,QAAQ,CAACV,KAAK,GAAAmD;MAAA;QAAAzD,OAAA,EAAAA,CAAA,MAAAqD,YAAA,CAAA5F,iBAAA,EAAA6F,WAAA,CAG1BF,qBAAqB;UAAA,gBACXjD,KAAK,CAACqC,YAAY;UAAA,SACzB5D,KAAK,CAAC0B;QAAK,IACTG,KAAK;MAAA;IAIvB,CAAC,CAAC;IAEF,OAAO,CAAE,CAAC;EACZ;AACF,CAAC,CAAC","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","getPath","Set","flatMap","getChildren","id","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) return null\n const getPath = vListRef.value?.getPath\n if (!getPath) return null\n return new Set(filteredItems.value.flatMap(item => {\n return [...getPath(item.props.value), ...getChildren(item.props.value)]\n }))\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":[]}
@@ -8,7 +8,6 @@ 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
10
  import { IconValue } from "../../composables/icons.mjs";
11
- import { useNestedItem } from "../../composables/nested/nested.mjs";
12
11
  import { useLink } from "../../composables/router.mjs"; // Utilities
13
12
  import { computed, inject, ref } from 'vue';
14
13
  import { EventProp, genericComponent, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
@@ -31,25 +30,13 @@ export const VTreeviewItem = genericComponent()({
31
30
  emit
32
31
  } = _ref;
33
32
  const link = useLink(props, attrs);
34
- const rawId = computed(() => props.value === undefined ? link.href.value : props.value);
35
33
  const vListItemRef = ref();
36
- const {
37
- activate,
38
- isActivated,
39
- isGroupActivator,
40
- root,
41
- id
42
- } = useNestedItem(rawId, false);
43
- const isActivatableGroupActivator = computed(() => root.activatable.value && isGroupActivator);
34
+ const isActivatableGroupActivator = computed(() => vListItemRef.value?.root.activatable.value && vListItemRef.value?.isGroupActivator);
44
35
  const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list || isActivatableGroupActivator.value));
45
36
  function activateItem(e) {
46
- if (!isClickable.value || !isActivatableGroupActivator.value && isGroupActivator) return;
47
- if (root.activatable.value) {
48
- if (isActivatableGroupActivator.value) {
49
- activate(!isActivated.value, e);
50
- } else {
51
- vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
52
- }
37
+ if (!isClickable.value || !isActivatableGroupActivator.value && vListItemRef.value?.isGroupActivator) return;
38
+ if (vListItemRef.value?.root.activatable.value) {
39
+ vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
53
40
  }
54
41
  }
55
42
  const visibleIds = inject(VTreeviewSymbol, {
@@ -58,11 +45,13 @@ export const VTreeviewItem = genericComponent()({
58
45
  useRender(() => {
59
46
  const listItemProps = omit(VListItem.filterProps(props), ['onClick']);
60
47
  const hasPrepend = slots.prepend || props.toggleIcon;
61
- return _createVNode(VListItem, _mergeProps(listItemProps, {
62
- "active": isActivated.value,
48
+ return _createVNode(VListItem, _mergeProps({
49
+ "ref": vListItemRef
50
+ }, listItemProps, {
51
+ "active": vListItemRef.value?.isActivated,
63
52
  "class": ['v-treeview-item', {
64
53
  'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,
65
- 'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(id.value)
54
+ 'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(vListItemRef.value?.id)
66
55
  }, props.class],
67
56
  "ripple": false,
68
57
  "onClick": props.onClick ?? activateItem
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"file":"VTreeviewItem.mjs","names":["VBtn","VListItemAction","makeVListItemProps","VListItem","VProgressCircular","IconValue","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","vListItemRef","isActivatableGroupActivator","value","root","activatable","isGroupActivator","isClickable","disabled","list","activateItem","e","activate","isActivated","visibleIds","listItemProps","filterProps","hasPrepend","prepend","_createVNode","_mergeProps","has","id","class","onClick","slotProps","_Fragment","default","loader","undefined"],"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 { 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 vListItemRef = ref<VListItem>()\n\n const isActivatableGroupActivator = computed(() =>\n (vListItemRef.value?.root.activatable.value) &&\n vListItemRef.value?.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 && vListItemRef.value?.isGroupActivator)\n ) return\n\n if (vListItemRef.value?.root.activatable.value) {\n vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e)\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 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': visibleIds.value && !visibleIds.value.has(vListItemRef.value?.id),\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":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vuetify/nightly",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "3.7.1-master.2024-08-29",
4
+ "version": "3.7.1-master.2024-09-02",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"