@vuetify/nightly 3.11.2-dev.2025-12-03 → 3.11.2-dev.2025-12-06
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -3
- package/dist/json/attributes.json +2019 -2015
- package/dist/json/importMap-labs.json +24 -24
- package/dist/json/importMap.json +178 -178
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +3666 -3656
- package/dist/vuetify-labs.cjs +46 -8
- package/dist/vuetify-labs.css +3910 -3896
- package/dist/vuetify-labs.d.ts +86 -70
- package/dist/vuetify-labs.esm.js +46 -8
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +46 -8
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +46 -8
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +6857 -6843
- package/dist/vuetify.d.ts +86 -70
- package/dist/vuetify.esm.js +46 -8
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +46 -8
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +23 -17
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VHotkey/_variables.scss +1 -0
- package/lib/components/VOtpInput/VOtpInput.css +15 -1
- package/lib/components/VOtpInput/VOtpInput.d.ts +29 -0
- package/lib/components/VOtpInput/VOtpInput.js +8 -2
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.sass +11 -2
- package/lib/components/VOtpInput/_variables.scss +1 -0
- package/lib/components/VWindow/VWindow.js +3 -3
- package/lib/components/VWindow/VWindow.js.map +1 -1
- package/lib/composables/nested/nested.d.ts +1 -1
- package/lib/composables/nested/nested.js +3 -1
- package/lib/composables/nested/nested.js.map +1 -1
- package/lib/composables/nested/selectStrategies.d.ts +1 -0
- package/lib/composables/nested/selectStrategies.js +31 -0
- package/lib/composables/nested/selectStrategies.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +69 -69
- package/lib/framework.js +1 -1
- package/package.json +6 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested.js","names":["useProxiedModel","computed","inject","nextTick","onBeforeMount","onBeforeUnmount","provide","ref","shallowRef","toRaw","toRef","toValue","watch","independentActiveStrategy","independentSingleActiveStrategy","leafActiveStrategy","leafSingleActiveStrategy","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","trunkSelectStrategy","consoleError","getCurrentInstance","propsFactory","throttle","VNestedSymbol","Symbol","for","emptyNested","id","root","itemsRegistration","register","unregister","children","Map","parents","disabled","Set","open","openOnSelect","activate","select","activatable","scrollToActive","selectable","opened","activated","selected","selectedValues","getPath","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","type","default","useNested","props","_ref","items","returnObject","isUnmounted","v","Array","isArray","map","i","values","value","in","out","path","parent","undefined","unshift","get","vm","nodeIds","itemsUpdatePropagation","updateInternalMaps","immediate","_parents","_children","_disabled","getValue","item","raw","stack","length","itemValue","childValues","child","childValue","set","push","add","nested","arr","key","entries","parentId","isDisabled","isGroup","has","join","newPath","concat","delete","list","filter","event","emit","newOpened","newSelected","newActivated","size","useNestedItem","uidSymbol","computedId","idValue","e","isOpen","isActivated","isSelected","isIndeterminate","isLeaf","isGroupActivator","val","oldVal","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport {\n computed,\n inject,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n provide,\n ref,\n shallowRef,\n toRaw,\n toRef,\n toValue,\n watch,\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, throttle } 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 { ListItem } from '@/composables/list-items'\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\nexport type ItemsRegistrationType = 'props' | 'render'\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 itemsRegistration: ItemsRegistrationType\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 disabled: Ref<Set<unknown>>\n activatable: Ref<boolean>\n selectable: Ref<boolean>\n opened: Ref<Set<unknown>>\n activated: Ref<Set<unknown>>\n scrollToActive: Ref<boolean>\n selected: Ref<Map<unknown, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<unknown[]>\n itemsRegistration: Ref<ItemsRegistrationType>\n register: (id: unknown, parentId: unknown, isDisabled: boolean, 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 itemsRegistration: ref('render'),\n register: () => null,\n unregister: () => null,\n children: ref(new Map()),\n parents: ref(new Map()),\n disabled: ref(new Set()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n scrollToActive: 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 itemsRegistration: {\n type: String as PropType<ItemsRegistrationType>,\n default: 'render',\n },\n}, 'nested')\n\nexport const useNested = (\n props: NestedProps,\n {\n items,\n returnObject,\n scrollToActive,\n }: {\n items: Ref<ListItem[]>\n returnObject: MaybeRefOrGetter<boolean>\n scrollToActive: MaybeRefOrGetter<boolean>\n },\n) => {\n let isUnmounted = false\n const children = shallowRef(new Map<unknown, unknown[]>())\n const parents = shallowRef(new Map<unknown, unknown>())\n const disabled = shallowRef(new Set<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, disabled.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 !== undefined) {\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 itemsUpdatePropagation = throttle(() => {\n nextTick(() => {\n children.value = new Map(children.value)\n parents.value = new Map(parents.value)\n })\n }, 100)\n\n watch(() => [items.value, toValue(returnObject)], () => {\n if (props.itemsRegistration === 'props') {\n updateInternalMaps()\n }\n }, { immediate: true })\n\n function updateInternalMaps () {\n const _parents = new Map()\n const _children = new Map()\n const _disabled = new Set()\n\n const getValue = toValue(returnObject)\n ? (item: ListItem) => toRaw(item.raw)\n : (item: ListItem) => item.value\n\n const stack = [...items.value]\n let i = 0\n while (i < stack.length) {\n const item = stack[i++]\n const itemValue = getValue(item)\n\n if (item.children) {\n const childValues = []\n for (const child of item.children) {\n const childValue = getValue(child)\n _parents.set(childValue, itemValue)\n childValues.push(childValue)\n stack.push(child)\n }\n _children.set(itemValue, childValues)\n }\n\n if (item.props.disabled) {\n _disabled.add(itemValue)\n }\n }\n\n children.value = _children\n parents.value = _parents\n disabled.value = _disabled\n }\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(() => props.activatable),\n scrollToActive: toRef(() => toValue(scrollToActive)),\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 itemsRegistration: toRef(() => props.itemsRegistration),\n register: (id, parentId, isDisabled, 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 isDisabled && disabled.value.add(id)\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n itemsUpdatePropagation()\n },\n unregister: id => {\n if (isUnmounted) return\n\n nodeIds.delete(id)\n children.value.delete(id)\n disabled.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 itemsUpdatePropagation()\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 disabled: disabled.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 disabled,\n getPath,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: MaybeRefOrGetter<unknown>, isDisabled: MaybeRefOrGetter<boolean>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol('nested item')\n const computedId = computed(() => {\n const idValue = toRaw(toValue(id))\n return idValue !== undefined ? idValue : uidSymbol\n })\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 scrollToActive: parent.root.scrollToActive,\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 if (parent.isGroupActivator || parent.root.itemsRegistration.value === 'props') return\n nextTick(() => {\n parent.root.register(computedId.value, parent.id.value, toValue(isDisabled), isGroup)\n })\n })\n\n onBeforeUnmount(() => {\n if (parent.isGroupActivator || parent.root.itemsRegistration.value === 'props') return\n parent.root.unregister(computedId.value)\n })\n\n watch(computedId, (val, oldVal) => {\n if (parent.isGroupActivator || parent.root.itemsRegistration.value === 'props') return\n parent.root.unregister(oldVal)\n nextTick(() => {\n parent.root.register(val, parent.id.value, toValue(isDisabled), isGroup)\n })\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","nextTick","onBeforeMount","onBeforeUnmount","provide","ref","shallowRef","toRaw","toRef","toValue","watch","independentActiveStrategy","independentSingleActiveStrategy","leafActiveStrategy","leafSingleActiveStrategy","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","branchSelectStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","trunkSelectStrategy","consoleError","getCurrentInstance","propsFactory","throttle","VNestedSymbol","Symbol","for","emptyNested","id","root","itemsRegistration","register","unregister","children","Map","parents","disabled","Set","open","openOnSelect","activate","select","activatable","scrollToActive","selectable","opened","activated","selected","selectedValues","getPath","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","type","default","useNested","props","_ref","items","returnObject","isUnmounted","v","Array","isArray","map","i","values","value","in","out","path","parent","undefined","unshift","get","vm","nodeIds","itemsUpdatePropagation","updateInternalMaps","immediate","_parents","_children","_disabled","getValue","item","raw","stack","length","itemValue","childValues","child","childValue","set","push","add","nested","arr","key","entries","parentId","isDisabled","isGroup","has","join","newPath","concat","delete","list","filter","event","emit","newOpened","newSelected","newActivated","size","useNestedItem","uidSymbol","computedId","idValue","e","isOpen","isActivated","isSelected","isIndeterminate","isLeaf","isGroupActivator","val","oldVal","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport {\n computed,\n inject,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n provide,\n ref,\n shallowRef,\n toRaw,\n toRef,\n toValue,\n watch,\n} from 'vue'\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy,\n} from './activeStrategies'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n branchSelectStrategy,\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n trunkSelectStrategy,\n} from './selectStrategies'\nimport { consoleError, getCurrentInstance, propsFactory, throttle } 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 { ListItem } from '@/composables/list-items'\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 | 'branch'\n | SelectStrategy\n | ((mandatory: boolean) => SelectStrategy)\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\nexport type ItemsRegistrationType = 'props' | 'render'\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 itemsRegistration: ItemsRegistrationType\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 disabled: Ref<Set<unknown>>\n activatable: Ref<boolean>\n selectable: Ref<boolean>\n opened: Ref<Set<unknown>>\n activated: Ref<Set<unknown>>\n scrollToActive: Ref<boolean>\n selected: Ref<Map<unknown, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<unknown[]>\n itemsRegistration: Ref<ItemsRegistrationType>\n register: (id: unknown, parentId: unknown, isDisabled: boolean, 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 itemsRegistration: ref('render'),\n register: () => null,\n unregister: () => null,\n children: ref(new Map()),\n parents: ref(new Map()),\n disabled: ref(new Set()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n scrollToActive: 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 itemsRegistration: {\n type: String as PropType<ItemsRegistrationType>,\n default: 'render',\n },\n}, 'nested')\n\nexport const useNested = (\n props: NestedProps,\n {\n items,\n returnObject,\n scrollToActive,\n }: {\n items: Ref<ListItem[]>\n returnObject: MaybeRefOrGetter<boolean>\n scrollToActive: MaybeRefOrGetter<boolean>\n },\n) => {\n let isUnmounted = false\n const children = shallowRef(new Map<unknown, unknown[]>())\n const parents = shallowRef(new Map<unknown, unknown>())\n const disabled = shallowRef(new Set<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 'branch': return branchSelectStrategy(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, disabled.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 !== undefined) {\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 itemsUpdatePropagation = throttle(() => {\n nextTick(() => {\n children.value = new Map(children.value)\n parents.value = new Map(parents.value)\n })\n }, 100)\n\n watch(() => [items.value, toValue(returnObject)], () => {\n if (props.itemsRegistration === 'props') {\n updateInternalMaps()\n }\n }, { immediate: true })\n\n function updateInternalMaps () {\n const _parents = new Map()\n const _children = new Map()\n const _disabled = new Set()\n\n const getValue = toValue(returnObject)\n ? (item: ListItem) => toRaw(item.raw)\n : (item: ListItem) => item.value\n\n const stack = [...items.value]\n let i = 0\n while (i < stack.length) {\n const item = stack[i++]\n const itemValue = getValue(item)\n\n if (item.children) {\n const childValues = []\n for (const child of item.children) {\n const childValue = getValue(child)\n _parents.set(childValue, itemValue)\n childValues.push(childValue)\n stack.push(child)\n }\n _children.set(itemValue, childValues)\n }\n\n if (item.props.disabled) {\n _disabled.add(itemValue)\n }\n }\n\n children.value = _children\n parents.value = _parents\n disabled.value = _disabled\n }\n\n const nested: NestedProvide = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(() => props.activatable),\n scrollToActive: toRef(() => toValue(scrollToActive)),\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 itemsRegistration: toRef(() => props.itemsRegistration),\n register: (id, parentId, isDisabled, 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 isDisabled && disabled.value.add(id)\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n itemsUpdatePropagation()\n },\n unregister: id => {\n if (isUnmounted) return\n\n nodeIds.delete(id)\n children.value.delete(id)\n disabled.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 itemsUpdatePropagation()\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 disabled: disabled.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 disabled,\n getPath,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: MaybeRefOrGetter<unknown>, isDisabled: MaybeRefOrGetter<boolean>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const uidSymbol = Symbol('nested item')\n const computedId = computed(() => {\n const idValue = toRaw(toValue(id))\n return idValue !== undefined ? idValue : uidSymbol\n })\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 scrollToActive: parent.root.scrollToActive,\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 if (parent.isGroupActivator || parent.root.itemsRegistration.value === 'props') return\n nextTick(() => {\n parent.root.register(computedId.value, parent.id.value, toValue(isDisabled), isGroup)\n })\n })\n\n onBeforeUnmount(() => {\n if (parent.isGroupActivator || parent.root.itemsRegistration.value === 'props') return\n parent.root.unregister(computedId.value)\n })\n\n watch(computedId, (val, oldVal) => {\n if (parent.isGroupActivator || parent.root.itemsRegistration.value === 'props') return\n parent.root.unregister(oldVal)\n nextTick(() => {\n parent.root.register(val, parent.id.value, toValue(isDisabled), isGroup)\n })\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":[]}
|
|
@@ -20,4 +20,5 @@ export declare const leafSelectStrategy: (mandatory?: boolean | undefined) => Se
|
|
|
20
20
|
export declare const leafSingleSelectStrategy: (mandatory?: boolean | undefined) => SelectStrategy;
|
|
21
21
|
export declare const classicSelectStrategy: (mandatory?: boolean | undefined) => SelectStrategy;
|
|
22
22
|
export declare const trunkSelectStrategy: (mandatory?: boolean | undefined) => SelectStrategy;
|
|
23
|
+
export declare const branchSelectStrategy: (mandatory?: boolean | undefined) => SelectStrategy;
|
|
23
24
|
|
|
@@ -220,4 +220,35 @@ export const trunkSelectStrategy = mandatory => {
|
|
|
220
220
|
};
|
|
221
221
|
return strategy;
|
|
222
222
|
};
|
|
223
|
+
export const branchSelectStrategy = mandatory => {
|
|
224
|
+
const parentStrategy = classicSelectStrategy(mandatory);
|
|
225
|
+
const strategy = {
|
|
226
|
+
select: parentStrategy.select,
|
|
227
|
+
in: (v, children, parents, disabled) => {
|
|
228
|
+
let map = new Map();
|
|
229
|
+
for (const id of v || []) {
|
|
230
|
+
if (children.has(id)) continue;
|
|
231
|
+
map = strategy.select({
|
|
232
|
+
id,
|
|
233
|
+
value: true,
|
|
234
|
+
selected: map,
|
|
235
|
+
children,
|
|
236
|
+
parents,
|
|
237
|
+
disabled
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
return map;
|
|
241
|
+
},
|
|
242
|
+
out: v => {
|
|
243
|
+
const arr = [];
|
|
244
|
+
for (const [key, value] of v.entries()) {
|
|
245
|
+
if (value === 'on' || value === 'indeterminate') {
|
|
246
|
+
arr.push(key);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return arr;
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
return strategy;
|
|
253
|
+
};
|
|
223
254
|
//# sourceMappingURL=selectStrategies.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectStrategies.js","names":["toRaw","independentSelectStrategy","mandatory","strategy","select","_ref","id","value","selected","on","Array","from","entries","reduce","arr","_ref2","key","push","length","set","in","v","children","parents","disabled","map","Map","out","independentSingleSelectStrategy","parentStrategy","_ref3","rest","singleSelected","has","get","slice","leafSelectStrategy","_ref4","leafSingleSelectStrategy","_ref5","classicSelectStrategy","_ref6","original","items","item","shift","parent","everySelected","noneSelected","child","cid","_ref7","trunkSelectStrategy"],"sources":["../../../src/composables/nested/selectStrategies.ts"],"sourcesContent":["/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue'\n\ntype SelectStrategyFunction = (data: {\n id: unknown\n value: boolean\n selected: Map<unknown, 'on' | 'off' | 'indeterminate'>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n disabled: Set<unknown>\n event?: Event\n}) => Map<unknown, 'on' | 'off' | 'indeterminate'>\n\ntype SelectStrategyTransformInFunction = (\n v: readonly unknown[] | undefined,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n disabled: Set<unknown>,\n) => Map<unknown, 'on' | 'off' | 'indeterminate'>\n\ntype SelectStrategyTransformOutFunction = (\n v: Map<unknown, 'on' | 'off' | 'indeterminate'>,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => unknown[]\n\nexport type SelectStrategy = {\n select: SelectStrategyFunction\n in: SelectStrategyTransformInFunction\n out: SelectStrategyTransformOutFunction\n}\n\nexport const independentSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected }) => {\n id = toRaw(id)\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries())\n .reduce((arr, [key, value]) => {\n if (value === 'on') arr.push(key)\n return arr\n }, [] as unknown[])\n if (on.length === 1 && on[0] === id) return selected\n }\n\n selected.set(id, value ? 'on' : 'off')\n\n return selected\n },\n in: (v, children, parents, disabled) => {\n const map = new Map()\n\n for (const id of (v || [])) {\n strategy.select({\n id,\n value: true,\n selected: map,\n children,\n parents,\n disabled,\n })\n }\n\n return map\n },\n out: v => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const independentSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ selected, id, ...rest }) => {\n id = toRaw(id)\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)!]]) : new Map()\n return parentStrategy.select({ ...rest, id, selected: singleSelected })\n },\n in: (v, children, parents, disabled) => {\n if (v?.length) {\n return parentStrategy.in(v.slice(0, 1), children, parents, disabled)\n }\n\n return new Map()\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSingleSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const classicSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected, children, parents, disabled }) => {\n id = toRaw(id)\n const original = new Map(selected)\n\n const items = [id]\n\n while (items.length) {\n const item = items.shift()!\n\n if (!disabled.has(item)) {\n selected.set(toRaw(item), value ? 'on' : 'off')\n }\n\n if (children.has(item)) {\n items.push(...children.get(item)!)\n }\n }\n\n let parent = toRaw(parents.get(id))\n\n while (parent) {\n let everySelected = true\n let noneSelected = true\n\n for (const child of children.get(parent)!) {\n const cid = toRaw(child)\n\n if (disabled.has(cid)) continue\n if (selected.get(cid) !== 'on') everySelected = false\n if (selected.has(cid) && selected.get(cid) !== 'off') noneSelected = false\n if (!everySelected && !noneSelected) break\n }\n\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate')\n\n parent = toRaw(parents.get(parent))\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries())\n .reduce((arr, [key, value]) => {\n if (value === 'on') arr.push(key)\n return arr\n }, [] as unknown[])\n if (on.length === 0) return original\n }\n\n return selected\n },\n in: (v, children, parents, disabled) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: map,\n children,\n parents,\n disabled,\n })\n }\n\n return map\n },\n out: (v, children) => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const trunkSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = classicSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: parentStrategy.select,\n in: parentStrategy.in,\n out: (v, children, parents) => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on') {\n if (parents.has(key)) {\n const parent = parents.get(key)\n if (v.get(parent) === 'on') continue\n }\n arr.push(key)\n }\n }\n\n return arr\n },\n }\n\n return strategy\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"selectStrategies.js","names":["toRaw","independentSelectStrategy","mandatory","strategy","select","_ref","id","value","selected","on","Array","from","entries","reduce","arr","_ref2","key","push","length","set","in","v","children","parents","disabled","map","Map","out","independentSingleSelectStrategy","parentStrategy","_ref3","rest","singleSelected","has","get","slice","leafSelectStrategy","_ref4","leafSingleSelectStrategy","_ref5","classicSelectStrategy","_ref6","original","items","item","shift","parent","everySelected","noneSelected","child","cid","_ref7","trunkSelectStrategy","branchSelectStrategy"],"sources":["../../../src/composables/nested/selectStrategies.ts"],"sourcesContent":["/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue'\n\ntype SelectStrategyFunction = (data: {\n id: unknown\n value: boolean\n selected: Map<unknown, 'on' | 'off' | 'indeterminate'>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n disabled: Set<unknown>\n event?: Event\n}) => Map<unknown, 'on' | 'off' | 'indeterminate'>\n\ntype SelectStrategyTransformInFunction = (\n v: readonly unknown[] | undefined,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n disabled: Set<unknown>,\n) => Map<unknown, 'on' | 'off' | 'indeterminate'>\n\ntype SelectStrategyTransformOutFunction = (\n v: Map<unknown, 'on' | 'off' | 'indeterminate'>,\n children: Map<unknown, unknown[]>,\n parents: Map<unknown, unknown>,\n) => unknown[]\n\nexport type SelectStrategy = {\n select: SelectStrategyFunction\n in: SelectStrategyTransformInFunction\n out: SelectStrategyTransformOutFunction\n}\n\nexport const independentSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected }) => {\n id = toRaw(id)\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries())\n .reduce((arr, [key, value]) => {\n if (value === 'on') arr.push(key)\n return arr\n }, [] as unknown[])\n if (on.length === 1 && on[0] === id) return selected\n }\n\n selected.set(id, value ? 'on' : 'off')\n\n return selected\n },\n in: (v, children, parents, disabled) => {\n const map = new Map()\n\n for (const id of (v || [])) {\n strategy.select({\n id,\n value: true,\n selected: map,\n children,\n parents,\n disabled,\n })\n }\n\n return map\n },\n out: v => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const independentSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ selected, id, ...rest }) => {\n id = toRaw(id)\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)!]]) : new Map()\n return parentStrategy.select({ ...rest, id, selected: singleSelected })\n },\n in: (v, children, parents, disabled) => {\n if (v?.length) {\n return parentStrategy.in(v.slice(0, 1), children, parents, disabled)\n }\n\n return new Map()\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSingleSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n id = toRaw(id)\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const classicSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected, children, parents, disabled }) => {\n id = toRaw(id)\n const original = new Map(selected)\n\n const items = [id]\n\n while (items.length) {\n const item = items.shift()!\n\n if (!disabled.has(item)) {\n selected.set(toRaw(item), value ? 'on' : 'off')\n }\n\n if (children.has(item)) {\n items.push(...children.get(item)!)\n }\n }\n\n let parent = toRaw(parents.get(id))\n\n while (parent) {\n let everySelected = true\n let noneSelected = true\n\n for (const child of children.get(parent)!) {\n const cid = toRaw(child)\n\n if (disabled.has(cid)) continue\n if (selected.get(cid) !== 'on') everySelected = false\n if (selected.has(cid) && selected.get(cid) !== 'off') noneSelected = false\n if (!everySelected && !noneSelected) break\n }\n\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate')\n\n parent = toRaw(parents.get(parent))\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries())\n .reduce((arr, [key, value]) => {\n if (value === 'on') arr.push(key)\n return arr\n }, [] as unknown[])\n if (on.length === 0) return original\n }\n\n return selected\n },\n in: (v, children, parents, disabled) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: map,\n children,\n parents,\n disabled,\n })\n }\n\n return map\n },\n out: (v, children) => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const trunkSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = classicSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: parentStrategy.select,\n in: parentStrategy.in,\n out: (v, children, parents) => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on') {\n if (parents.has(key)) {\n const parent = parents.get(key)\n if (v.get(parent) === 'on') continue\n }\n arr.push(key)\n }\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const branchSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = classicSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: parentStrategy.select,\n in: (v, children, parents, disabled) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n if (children.has(id)) continue\n map = strategy.select({\n id,\n value: true,\n selected: map,\n children,\n parents,\n disabled,\n })\n }\n\n return map\n },\n out: v => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on' || value === 'indeterminate') {\n arr.push(key)\n }\n }\n\n return arr\n },\n }\n\n return strategy\n}\n"],"mappings":"AAAA;AACA;AACA,SAASA,KAAK,QAAQ,KAAK;AA+B3B,OAAO,MAAMC,yBAAyB,GAAIC,SAAmB,IAAqB;EAChF,MAAMC,QAAwB,GAAG;IAC/BC,MAAM,EAAEC,IAAA,IAA6B;MAAA,IAA5B;QAAEC,EAAE;QAAEC,KAAK;QAAEC;MAAS,CAAC,GAAAH,IAAA;MAC9BC,EAAE,GAAGN,KAAK,CAACM,EAAE,CAAC;;MAEd;MACA;MACA,IAAIJ,SAAS,IAAI,CAACK,KAAK,EAAE;QACvB,MAAME,EAAE,GAAGC,KAAK,CAACC,IAAI,CAACH,QAAQ,CAACI,OAAO,CAAC,CAAC,CAAC,CACtCC,MAAM,CAAC,CAACC,GAAG,EAAAC,KAAA,KAAmB;UAAA,IAAjB,CAACC,GAAG,EAAET,KAAK,CAAC,GAAAQ,KAAA;UACxB,IAAIR,KAAK,KAAK,IAAI,EAAEO,GAAG,CAACG,IAAI,CAACD,GAAG,CAAC;UACjC,OAAOF,GAAG;QACZ,CAAC,EAAE,EAAe,CAAC;QACrB,IAAIL,EAAE,CAACS,MAAM,KAAK,CAAC,IAAIT,EAAE,CAAC,CAAC,CAAC,KAAKH,EAAE,EAAE,OAAOE,QAAQ;MACtD;MAEAA,QAAQ,CAACW,GAAG,CAACb,EAAE,EAAEC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;MAEtC,OAAOC,QAAQ;IACjB,CAAC;IACDY,EAAE,EAAEA,CAACC,CAAC,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,KAAK;MACtC,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAAC,CAAC;MAErB,KAAK,MAAMpB,EAAE,IAAKe,CAAC,IAAI,EAAE,EAAG;QAC1BlB,QAAQ,CAACC,MAAM,CAAC;UACdE,EAAE;UACFC,KAAK,EAAE,IAAI;UACXC,QAAQ,EAAEiB,GAAG;UACbH,QAAQ;UACRC,OAAO;UACPC;QACF,CAAC,CAAC;MACJ;MAEA,OAAOC,GAAG;IACZ,CAAC;IACDE,GAAG,EAAEN,CAAC,IAAI;MACR,MAAMP,GAAG,GAAG,EAAE;MAEd,KAAK,MAAM,CAACE,GAAG,EAAET,KAAK,CAAC,IAAIc,CAAC,CAACT,OAAO,CAAC,CAAC,EAAE;QACtC,IAAIL,KAAK,KAAK,IAAI,EAAEO,GAAG,CAACG,IAAI,CAACD,GAAG,CAAC;MACnC;MAEA,OAAOF,GAAG;IACZ;EACF,CAAC;EAED,OAAOX,QAAQ;AACjB,CAAC;AAED,OAAO,MAAMyB,+BAA+B,GAAI1B,SAAmB,IAAqB;EACtF,MAAM2B,cAAc,GAAG5B,yBAAyB,CAACC,SAAS,CAAC;EAE3D,MAAMC,QAAwB,GAAG;IAC/BC,MAAM,EAAE0B,KAAA,IAA+B;MAAA,IAA9B;QAAEtB,QAAQ;QAAEF,EAAE;QAAE,GAAGyB;MAAK,CAAC,GAAAD,KAAA;MAChCxB,EAAE,GAAGN,KAAK,CAACM,EAAE,CAAC;MACd,MAAM0B,cAAc,GAAGxB,QAAQ,CAACyB,GAAG,CAAC3B,EAAE,CAAC,GAAG,IAAIoB,GAAG,CAAC,CAAC,CAACpB,EAAE,EAAEE,QAAQ,CAAC0B,GAAG,CAAC5B,EAAE,CAAC,CAAE,CAAC,CAAC,GAAG,IAAIoB,GAAG,CAAC,CAAC;MACxF,OAAOG,cAAc,CAACzB,MAAM,CAAC;QAAE,GAAG2B,IAAI;QAAEzB,EAAE;QAAEE,QAAQ,EAAEwB;MAAe,CAAC,CAAC;IACzE,CAAC;IACDZ,EAAE,EAAEA,CAACC,CAAC,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,KAAK;MACtC,IAAIH,CAAC,EAAEH,MAAM,EAAE;QACb,OAAOW,cAAc,CAACT,EAAE,CAACC,CAAC,CAACc,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEb,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,CAAC;MACtE;MAEA,OAAO,IAAIE,GAAG,CAAC,CAAC;IAClB,CAAC;IACDC,GAAG,EAAEA,CAACN,CAAC,EAAEC,QAAQ,EAAEC,OAAO,KAAK;MAC7B,OAAOM,cAAc,CAACF,GAAG,CAACN,CAAC,EAAEC,QAAQ,EAAEC,OAAO,CAAC;IACjD;EACF,CAAC;EAED,OAAOpB,QAAQ;AACjB,CAAC;AAED,OAAO,MAAMiC,kBAAkB,GAAIlC,SAAmB,IAAqB;EACzE,MAAM2B,cAAc,GAAG5B,yBAAyB,CAACC,SAAS,CAAC;EAE3D,MAAMC,QAAwB,GAAG;IAC/BC,MAAM,EAAEiC,KAAA,IAAyC;MAAA,IAAxC;QAAE/B,EAAE;QAAEE,QAAQ;QAAEc,QAAQ;QAAE,GAAGS;MAAK,CAAC,GAAAM,KAAA;MAC1C/B,EAAE,GAAGN,KAAK,CAACM,EAAE,CAAC;MACd,IAAIgB,QAAQ,CAACW,GAAG,CAAC3B,EAAE,CAAC,EAAE,OAAOE,QAAQ;MAErC,OAAOqB,cAAc,CAACzB,MAAM,CAAC;QAAEE,EAAE;QAAEE,QAAQ;QAAEc,QAAQ;QAAE,GAAGS;MAAK,CAAC,CAAC;IACnE,CAAC;IACDX,EAAE,EAAES,cAAc,CAACT,EAAE;IACrBO,GAAG,EAAEE,cAAc,CAACF;EACtB,CAAC;EAED,OAAOxB,QAAQ;AACjB,CAAC;AAED,OAAO,MAAMmC,wBAAwB,GAAIpC,SAAmB,IAAqB;EAC/E,MAAM2B,cAAc,GAAGD,+BAA+B,CAAC1B,SAAS,CAAC;EAEjE,MAAMC,QAAwB,GAAG;IAC/BC,MAAM,EAAEmC,KAAA,IAAyC;MAAA,IAAxC;QAAEjC,EAAE;QAAEE,QAAQ;QAAEc,QAAQ;QAAE,GAAGS;MAAK,CAAC,GAAAQ,KAAA;MAC1CjC,EAAE,GAAGN,KAAK,CAACM,EAAE,CAAC;MACd,IAAIgB,QAAQ,CAACW,GAAG,CAAC3B,EAAE,CAAC,EAAE,OAAOE,QAAQ;MAErC,OAAOqB,cAAc,CAACzB,MAAM,CAAC;QAAEE,EAAE;QAAEE,QAAQ;QAAEc,QAAQ;QAAE,GAAGS;MAAK,CAAC,CAAC;IACnE,CAAC;IACDX,EAAE,EAAES,cAAc,CAACT,EAAE;IACrBO,GAAG,EAAEE,cAAc,CAACF;EACtB,CAAC;EAED,OAAOxB,QAAQ;AACjB,CAAC;AAED,OAAO,MAAMqC,qBAAqB,GAAItC,SAAmB,IAAqB;EAC5E,MAAMC,QAAwB,GAAG;IAC/BC,MAAM,EAAEqC,KAAA,IAA0D;MAAA,IAAzD;QAAEnC,EAAE;QAAEC,KAAK;QAAEC,QAAQ;QAAEc,QAAQ;QAAEC,OAAO;QAAEC;MAAS,CAAC,GAAAiB,KAAA;MAC3DnC,EAAE,GAAGN,KAAK,CAACM,EAAE,CAAC;MACd,MAAMoC,QAAQ,GAAG,IAAIhB,GAAG,CAAClB,QAAQ,CAAC;MAElC,MAAMmC,KAAK,GAAG,CAACrC,EAAE,CAAC;MAElB,OAAOqC,KAAK,CAACzB,MAAM,EAAE;QACnB,MAAM0B,IAAI,GAAGD,KAAK,CAACE,KAAK,CAAC,CAAE;QAE3B,IAAI,CAACrB,QAAQ,CAACS,GAAG,CAACW,IAAI,CAAC,EAAE;UACvBpC,QAAQ,CAACW,GAAG,CAACnB,KAAK,CAAC4C,IAAI,CAAC,EAAErC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;QACjD;QAEA,IAAIe,QAAQ,CAACW,GAAG,CAACW,IAAI,CAAC,EAAE;UACtBD,KAAK,CAAC1B,IAAI,CAAC,GAAGK,QAAQ,CAACY,GAAG,CAACU,IAAI,CAAE,CAAC;QACpC;MACF;MAEA,IAAIE,MAAM,GAAG9C,KAAK,CAACuB,OAAO,CAACW,GAAG,CAAC5B,EAAE,CAAC,CAAC;MAEnC,OAAOwC,MAAM,EAAE;QACb,IAAIC,aAAa,GAAG,IAAI;QACxB,IAAIC,YAAY,GAAG,IAAI;QAEvB,KAAK,MAAMC,KAAK,IAAI3B,QAAQ,CAACY,GAAG,CAACY,MAAM,CAAC,EAAG;UACzC,MAAMI,GAAG,GAAGlD,KAAK,CAACiD,KAAK,CAAC;UAExB,IAAIzB,QAAQ,CAACS,GAAG,CAACiB,GAAG,CAAC,EAAE;UACvB,IAAI1C,QAAQ,CAAC0B,GAAG,CAACgB,GAAG,CAAC,KAAK,IAAI,EAAEH,aAAa,GAAG,KAAK;UACrD,IAAIvC,QAAQ,CAACyB,GAAG,CAACiB,GAAG,CAAC,IAAI1C,QAAQ,CAAC0B,GAAG,CAACgB,GAAG,CAAC,KAAK,KAAK,EAAEF,YAAY,GAAG,KAAK;UAC1E,IAAI,CAACD,aAAa,IAAI,CAACC,YAAY,EAAE;QACvC;QAEAxC,QAAQ,CAACW,GAAG,CAAC2B,MAAM,EAAEC,aAAa,GAAG,IAAI,GAAGC,YAAY,GAAG,KAAK,GAAG,eAAe,CAAC;QAEnFF,MAAM,GAAG9C,KAAK,CAACuB,OAAO,CAACW,GAAG,CAACY,MAAM,CAAC,CAAC;MACrC;;MAEA;MACA;MACA,IAAI5C,SAAS,IAAI,CAACK,KAAK,EAAE;QACvB,MAAME,EAAE,GAAGC,KAAK,CAACC,IAAI,CAACH,QAAQ,CAACI,OAAO,CAAC,CAAC,CAAC,CACtCC,MAAM,CAAC,CAACC,GAAG,EAAAqC,KAAA,KAAmB;UAAA,IAAjB,CAACnC,GAAG,EAAET,KAAK,CAAC,GAAA4C,KAAA;UACxB,IAAI5C,KAAK,KAAK,IAAI,EAAEO,GAAG,CAACG,IAAI,CAACD,GAAG,CAAC;UACjC,OAAOF,GAAG;QACZ,CAAC,EAAE,EAAe,CAAC;QACrB,IAAIL,EAAE,CAACS,MAAM,KAAK,CAAC,EAAE,OAAOwB,QAAQ;MACtC;MAEA,OAAOlC,QAAQ;IACjB,CAAC;IACDY,EAAE,EAAEA,CAACC,CAAC,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,KAAK;MACtC,IAAIC,GAAG,GAAG,IAAIC,GAAG,CAAC,CAAC;MAEnB,KAAK,MAAMpB,EAAE,IAAKe,CAAC,IAAI,EAAE,EAAG;QAC1BI,GAAG,GAAGtB,QAAQ,CAACC,MAAM,CAAC;UACpBE,EAAE;UACFC,KAAK,EAAE,IAAI;UACXC,QAAQ,EAAEiB,GAAG;UACbH,QAAQ;UACRC,OAAO;UACPC;QACF,CAAC,CAAC;MACJ;MAEA,OAAOC,GAAG;IACZ,CAAC;IACDE,GAAG,EAAEA,CAACN,CAAC,EAAEC,QAAQ,KAAK;MACpB,MAAMR,GAAG,GAAG,EAAE;MAEd,KAAK,MAAM,CAACE,GAAG,EAAET,KAAK,CAAC,IAAIc,CAAC,CAACT,OAAO,CAAC,CAAC,EAAE;QACtC,IAAIL,KAAK,KAAK,IAAI,IAAI,CAACe,QAAQ,CAACW,GAAG,CAACjB,GAAG,CAAC,EAAEF,GAAG,CAACG,IAAI,CAACD,GAAG,CAAC;MACzD;MAEA,OAAOF,GAAG;IACZ;EACF,CAAC;EAED,OAAOX,QAAQ;AACjB,CAAC;AAED,OAAO,MAAMiD,mBAAmB,GAAIlD,SAAmB,IAAqB;EAC1E,MAAM2B,cAAc,GAAGW,qBAAqB,CAACtC,SAAS,CAAC;EAEvD,MAAMC,QAAwB,GAAG;IAC/BC,MAAM,EAAEyB,cAAc,CAACzB,MAAM;IAC7BgB,EAAE,EAAES,cAAc,CAACT,EAAE;IACrBO,GAAG,EAAEA,CAACN,CAAC,EAAEC,QAAQ,EAAEC,OAAO,KAAK;MAC7B,MAAMT,GAAG,GAAG,EAAE;MAEd,KAAK,MAAM,CAACE,GAAG,EAAET,KAAK,CAAC,IAAIc,CAAC,CAACT,OAAO,CAAC,CAAC,EAAE;QACtC,IAAIL,KAAK,KAAK,IAAI,EAAE;UAClB,IAAIgB,OAAO,CAACU,GAAG,CAACjB,GAAG,CAAC,EAAE;YACpB,MAAM8B,MAAM,GAAGvB,OAAO,CAACW,GAAG,CAAClB,GAAG,CAAC;YAC/B,IAAIK,CAAC,CAACa,GAAG,CAACY,MAAM,CAAC,KAAK,IAAI,EAAE;UAC9B;UACAhC,GAAG,CAACG,IAAI,CAACD,GAAG,CAAC;QACf;MACF;MAEA,OAAOF,GAAG;IACZ;EACF,CAAC;EAED,OAAOX,QAAQ;AACjB,CAAC;AAED,OAAO,MAAMkD,oBAAoB,GAAInD,SAAmB,IAAqB;EAC3E,MAAM2B,cAAc,GAAGW,qBAAqB,CAACtC,SAAS,CAAC;EAEvD,MAAMC,QAAwB,GAAG;IAC/BC,MAAM,EAAEyB,cAAc,CAACzB,MAAM;IAC7BgB,EAAE,EAAEA,CAACC,CAAC,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,QAAQ,KAAK;MACtC,IAAIC,GAAG,GAAG,IAAIC,GAAG,CAAC,CAAC;MAEnB,KAAK,MAAMpB,EAAE,IAAKe,CAAC,IAAI,EAAE,EAAG;QAC1B,IAAIC,QAAQ,CAACW,GAAG,CAAC3B,EAAE,CAAC,EAAE;QACtBmB,GAAG,GAAGtB,QAAQ,CAACC,MAAM,CAAC;UACpBE,EAAE;UACFC,KAAK,EAAE,IAAI;UACXC,QAAQ,EAAEiB,GAAG;UACbH,QAAQ;UACRC,OAAO;UACPC;QACF,CAAC,CAAC;MACJ;MAEA,OAAOC,GAAG;IACZ,CAAC;IACDE,GAAG,EAAEN,CAAC,IAAI;MACR,MAAMP,GAAG,GAAG,EAAE;MAEd,KAAK,MAAM,CAACE,GAAG,EAAET,KAAK,CAAC,IAAIc,CAAC,CAACT,OAAO,CAAC,CAAC,EAAE;QACtC,IAAIL,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,eAAe,EAAE;UAC/CO,GAAG,CAACG,IAAI,CAACD,GAAG,CAAC;QACf;MACF;MAEA,OAAOF,GAAG;IACZ;EACF,CAAC;EAED,OAAOX,QAAQ;AACjB,CAAC","ignoreList":[]}
|
package/lib/entry-bundler.js
CHANGED
|
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
|
16
16
|
...options
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
|
-
export const version = "3.11.2-dev.2025-12-
|
|
19
|
+
export const version = "3.11.2-dev.2025-12-06";
|
|
20
20
|
createVuetify.version = version;
|
|
21
21
|
export { blueprints, components, directives };
|
|
22
22
|
export * from "./composables/index.js";
|
package/lib/framework.d.ts
CHANGED
|
@@ -2778,24 +2778,24 @@ declare module 'vue' {
|
|
|
2778
2778
|
$children?: VNodeChild
|
|
2779
2779
|
}
|
|
2780
2780
|
export interface GlobalComponents {
|
|
2781
|
+
VAppBar: typeof import('vuetify/components')['VAppBar']
|
|
2782
|
+
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
|
2783
|
+
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
|
2781
2784
|
VApp: typeof import('vuetify/components')['VApp']
|
|
2782
2785
|
VAlert: typeof import('vuetify/components')['VAlert']
|
|
2783
2786
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
2784
2787
|
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
2788
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
|
2785
2789
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
2786
2790
|
VBadge: typeof import('vuetify/components')['VBadge']
|
|
2787
2791
|
VBanner: typeof import('vuetify/components')['VBanner']
|
|
2788
2792
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
|
2789
2793
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
|
2790
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
2791
|
-
VBtn: typeof import('vuetify/components')['VBtn']
|
|
2792
|
-
VAppBar: typeof import('vuetify/components')['VAppBar']
|
|
2793
|
-
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
|
2794
|
-
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
|
2795
2794
|
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
2796
2795
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
|
2797
2796
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
2798
2797
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
2798
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
2799
2799
|
VCard: typeof import('vuetify/components')['VCard']
|
|
2800
2800
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
|
2801
2801
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
|
@@ -2803,18 +2803,24 @@ declare module 'vue' {
|
|
|
2803
2803
|
VCardText: typeof import('vuetify/components')['VCardText']
|
|
2804
2804
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
|
2805
2805
|
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
2806
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
2807
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
2806
2808
|
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
2807
2809
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
2808
2810
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
2809
|
-
VCalendar: typeof import('vuetify/components')['VCalendar']
|
|
2810
2811
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
2811
|
-
|
|
2812
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
2813
|
-
VChip: typeof import('vuetify/components')['VChip']
|
|
2814
|
-
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
2815
|
-
VCounter: typeof import('vuetify/components')['VCounter']
|
|
2812
|
+
VCalendar: typeof import('vuetify/components')['VCalendar']
|
|
2816
2813
|
VCode: typeof import('vuetify/components')['VCode']
|
|
2814
|
+
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
2815
|
+
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
2816
|
+
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
2817
|
+
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
|
2818
|
+
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
2819
|
+
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
2817
2820
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
2821
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
2822
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
|
2823
|
+
VChip: typeof import('vuetify/components')['VChip']
|
|
2818
2824
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
|
2819
2825
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
|
2820
2826
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
|
@@ -2822,37 +2828,31 @@ declare module 'vue' {
|
|
|
2822
2828
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
|
2823
2829
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
|
2824
2830
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
|
2825
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
|
2826
|
-
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
2827
|
-
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
2828
|
-
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
2829
|
-
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
|
2830
|
-
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
2831
|
-
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
2832
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
2833
|
-
VDivider: typeof import('vuetify/components')['VDivider']
|
|
2834
|
-
VField: typeof import('vuetify/components')['VField']
|
|
2835
|
-
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
2836
2831
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
2837
2832
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
2838
2833
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
2839
2834
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
|
2840
|
-
|
|
2835
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
|
2836
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
|
2841
2837
|
VFab: typeof import('vuetify/components')['VFab']
|
|
2838
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
2839
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
2840
|
+
VField: typeof import('vuetify/components')['VField']
|
|
2841
|
+
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
2842
|
+
VHotkey: typeof import('vuetify/components')['VHotkey']
|
|
2842
2843
|
VFooter: typeof import('vuetify/components')['VFooter']
|
|
2844
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
2845
|
+
VImg: typeof import('vuetify/components')['VImg']
|
|
2846
|
+
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
2847
|
+
VItem: typeof import('vuetify/components')['VItem']
|
|
2848
|
+
VInput: typeof import('vuetify/components')['VInput']
|
|
2843
2849
|
VIcon: typeof import('vuetify/components')['VIcon']
|
|
2844
2850
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
|
2845
2851
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
|
2846
2852
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
|
2847
2853
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
|
2848
|
-
VHotkey: typeof import('vuetify/components')['VHotkey']
|
|
2849
|
-
VImg: typeof import('vuetify/components')['VImg']
|
|
2850
|
-
VInput: typeof import('vuetify/components')['VInput']
|
|
2851
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
2852
|
-
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
2853
|
-
VItem: typeof import('vuetify/components')['VItem']
|
|
2854
2854
|
VKbd: typeof import('vuetify/components')['VKbd']
|
|
2855
|
-
|
|
2855
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
|
2856
2856
|
VList: typeof import('vuetify/components')['VList']
|
|
2857
2857
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
|
2858
2858
|
VListImg: typeof import('vuetify/components')['VListImg']
|
|
@@ -2862,78 +2862,79 @@ declare module 'vue' {
|
|
|
2862
2862
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
|
2863
2863
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
|
2864
2864
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
|
2865
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
|
2866
|
-
VMain: typeof import('vuetify/components')['VMain']
|
|
2867
|
-
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
2868
2865
|
VMessages: typeof import('vuetify/components')['VMessages']
|
|
2869
|
-
|
|
2866
|
+
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
|
2867
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
2868
|
+
VMain: typeof import('vuetify/components')['VMain']
|
|
2870
2869
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
|
2871
|
-
VPagination: typeof import('vuetify/components')['VPagination']
|
|
2872
2870
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
2873
|
-
|
|
2874
|
-
|
|
2871
|
+
VPagination: typeof import('vuetify/components')['VPagination']
|
|
2872
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
|
2875
2873
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
|
2876
|
-
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
|
2877
|
-
VSelect: typeof import('vuetify/components')['VSelect']
|
|
2878
2874
|
VRating: typeof import('vuetify/components')['VRating']
|
|
2879
|
-
|
|
2875
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
2876
|
+
VSelect: typeof import('vuetify/components')['VSelect']
|
|
2877
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
|
2880
2878
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
2881
|
-
|
|
2879
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
|
2880
|
+
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
|
2881
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
2882
2882
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
2883
2883
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
2884
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
2885
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
2886
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
|
2887
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
2884
2888
|
VStepper: typeof import('vuetify/components')['VStepper']
|
|
2885
2889
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
|
2886
2890
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
|
2887
2891
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
|
2888
2892
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
|
2889
2893
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
|
2890
|
-
VSheet: typeof import('vuetify/components')['VSheet']
|
|
2891
|
-
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
2892
2894
|
VTab: typeof import('vuetify/components')['VTab']
|
|
2893
2895
|
VTabs: typeof import('vuetify/components')['VTabs']
|
|
2894
2896
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
2895
2897
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
2896
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
2897
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
2898
|
-
VTable: typeof import('vuetify/components')['VTable']
|
|
2899
2898
|
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
2900
|
-
|
|
2901
|
-
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
2902
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
2903
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
2899
|
+
VTable: typeof import('vuetify/components')['VTable']
|
|
2904
2900
|
VTextField: typeof import('vuetify/components')['VTextField']
|
|
2905
|
-
|
|
2901
|
+
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
2902
|
+
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
|
2903
|
+
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
|
2906
2904
|
VTimePicker: typeof import('vuetify/components')['VTimePicker']
|
|
2907
2905
|
VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
|
|
2908
2906
|
VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
|
|
2909
2907
|
VTreeview: typeof import('vuetify/components')['VTreeview']
|
|
2910
2908
|
VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
|
|
2911
2909
|
VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2910
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
2911
|
+
VWindow: typeof import('vuetify/components')['VWindow']
|
|
2912
|
+
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
2913
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
2914
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
2916
2915
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
|
2916
|
+
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
|
2917
2917
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
|
2918
|
-
VHover: typeof import('vuetify/components')['VHover']
|
|
2919
2918
|
VContainer: typeof import('vuetify/components')['VContainer']
|
|
2920
2919
|
VCol: typeof import('vuetify/components')['VCol']
|
|
2921
2920
|
VRow: typeof import('vuetify/components')['VRow']
|
|
2922
2921
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
|
2923
2922
|
VForm: typeof import('vuetify/components')['VForm']
|
|
2923
|
+
VHover: typeof import('vuetify/components')['VHover']
|
|
2924
2924
|
VLazy: typeof import('vuetify/components')['VLazy']
|
|
2925
|
-
VLayout: typeof import('vuetify/components')['VLayout']
|
|
2926
|
-
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
|
2927
2925
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
|
2928
2926
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
|
2929
|
-
|
|
2927
|
+
VLayout: typeof import('vuetify/components')['VLayout']
|
|
2928
|
+
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
|
2930
2929
|
VRadio: typeof import('vuetify/components')['VRadio']
|
|
2930
|
+
VParallax: typeof import('vuetify/components')['VParallax']
|
|
2931
2931
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
|
2932
2932
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
|
2933
2933
|
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
|
2934
2934
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
|
2935
2935
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
|
2936
2936
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
|
2937
|
+
VValidation: typeof import('vuetify/components')['VValidation']
|
|
2937
2938
|
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
|
2938
2939
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
|
2939
2940
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
|
@@ -2951,22 +2952,21 @@ declare module 'vue' {
|
|
|
2951
2952
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
|
2952
2953
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
|
2953
2954
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
|
2955
|
+
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
|
2956
|
+
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
|
2957
2957
|
VPie: typeof import('vuetify/labs/components')['VPie']
|
|
2958
2958
|
VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
|
|
2959
2959
|
VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
|
|
2960
|
-
|
|
2961
|
-
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
|
2962
|
-
VVideo: typeof import('vuetify/labs/components')['VVideo']
|
|
2963
|
-
VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
|
|
2964
|
-
VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
|
|
2960
|
+
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
|
2965
2961
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
|
2966
2962
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
|
2967
2963
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
|
2968
|
-
|
|
2969
|
-
|
|
2964
|
+
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
|
2965
|
+
VVideo: typeof import('vuetify/labs/components')['VVideo']
|
|
2966
|
+
VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
|
|
2967
|
+
VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
|
|
2968
|
+
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
|
2969
|
+
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
|
2970
2970
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
|
2971
2971
|
VMaskInput: typeof import('vuetify/labs/components')['VMaskInput']
|
|
2972
2972
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
package/lib/framework.js
CHANGED
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.11.2-dev.2025-12-
|
|
4
|
+
"version": "3.11.2-dev.2025-12-06",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "John Leider",
|
|
7
7
|
"email": "john@vuetifyjs.com"
|
|
@@ -115,12 +115,14 @@
|
|
|
115
115
|
"build:types:lib": "tsgo --pretty --emitDeclarationOnly -p tsconfig.dist.json && node build/transform-types.js",
|
|
116
116
|
"build:types:bundle": "rollup --config build/rollup.types.config.js",
|
|
117
117
|
"tsc": "tsc",
|
|
118
|
+
"tdd": "vizzly tdd start",
|
|
119
|
+
"tdd:stop": "vizzly tdd stop",
|
|
118
120
|
"test": "vitest",
|
|
119
121
|
"test:unit": "vitest --project unit",
|
|
120
122
|
"test:browser": "vitest --project browser",
|
|
121
123
|
"test:open": "TEST_BAIL=1 vitest --project browser -w",
|
|
122
124
|
"test:coverage": "pnpm test --coverage",
|
|
123
|
-
"test:
|
|
125
|
+
"test:screen": "TEST_TDD_ONLY=1 node ../../scripts/tdd-run.js ",
|
|
124
126
|
"test:all": "concurrently -gr 'vitest --project unit' 'vitest --project browser --shard=1/5' 'vitest --project browser --shard=2/5' 'vitest --project browser --shard=3/5' 'vitest --project browser --shard=4/5' 'vitest --project browser --shard=5/5'",
|
|
125
127
|
"lint": "concurrently -n \"tsc,eslint\" --kill-others-on-fail \"tsgo -p tsconfig.checks.json --noEmit --pretty\" \"eslint src -f codeframe --max-warnings 0\"",
|
|
126
128
|
"lint:fix": "concurrently -n \"tsc,eslint\" \"tsgo -p tsconfig.checks.json --noEmit --pretty\" \"eslint --fix src\""
|
|
@@ -135,8 +137,6 @@
|
|
|
135
137
|
"@fortawesome/free-solid-svg-icons": "^6.7.2",
|
|
136
138
|
"@fortawesome/vue-fontawesome": "^3.0.8",
|
|
137
139
|
"@intlify/devtools-types": "^11.1.12",
|
|
138
|
-
"@percy/cli": "^1.31.4",
|
|
139
|
-
"@percy/sdk-utils": "^1.31.4",
|
|
140
140
|
"@rollup/plugin-alias": "^5.1.1",
|
|
141
141
|
"@rollup/plugin-babel": "^6.1.0",
|
|
142
142
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
@@ -149,6 +149,8 @@
|
|
|
149
149
|
"@vitest/browser-playwright": "^4.0.13",
|
|
150
150
|
"@vitest/coverage-istanbul": "^4.0.13",
|
|
151
151
|
"@vitest/ui": "^4.0.13",
|
|
152
|
+
"@vizzly-testing/cli": "^0.16.4",
|
|
153
|
+
"@vizzly-testing/vitest": "^0.0.3",
|
|
152
154
|
"@vue/reactivity": "^3.5.25",
|
|
153
155
|
"@vue/shared": "^3.5.25",
|
|
154
156
|
"@vue/test-utils": "^2.4.6",
|