vuetify 3.10.4 → 3.10.6
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/README.md +0 -6
- package/dist/json/attributes.json +1910 -1922
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +182 -182
- package/dist/json/tags.json +6 -9
- package/dist/json/web-types.json +3674 -3697
- package/dist/vuetify-labs.cjs +211 -107
- package/dist/vuetify-labs.css +5703 -5642
- package/dist/vuetify-labs.d.ts +168 -175
- package/dist/vuetify-labs.esm.js +211 -107
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +211 -107
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +192 -97
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5916 -5877
- package/dist/vuetify.d.ts +168 -140
- package/dist/vuetify.esm.js +192 -97
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +192 -97
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +124 -114
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +0 -61
- package/lib/components/VAutocomplete/VAutocomplete.js +13 -11
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBadge/VBadge.css +10 -0
- package/lib/components/VBadge/VBadge.sass +9 -0
- package/lib/components/VChipGroup/VChipGroup.d.ts +37 -0
- package/lib/components/VChipGroup/VChipGroup.js +3 -1
- package/lib/components/VChipGroup/VChipGroup.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.d.ts +6 -67
- package/lib/components/VCombobox/VCombobox.js +26 -28
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VCounter/VCounter.css +1 -0
- package/lib/components/VCounter/VCounter.sass +1 -0
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +4 -1
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableHeaders.js +3 -0
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableRow.js +3 -0
- package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableRows.js +4 -3
- package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +1 -1
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDivider/VDivider.css +1 -0
- package/lib/components/VDivider/VDivider.sass +1 -0
- package/lib/components/VKbd/_variables.scss +3 -1
- package/lib/components/VList/VListItem.css +14 -12
- package/lib/components/VList/VListItem.js +5 -3
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/VListItem.sass +20 -18
- package/lib/components/VMenu/VMenu.js +22 -4
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.css +8 -0
- package/lib/components/VNumberInput/VNumberInput.js +5 -2
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.sass +10 -4
- package/lib/components/VSkeletonLoader/VSkeletonLoader.css +17 -0
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js +3 -3
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +7 -0
- package/lib/components/VSlideGroup/VSlideGroup.d.ts +25 -0
- package/lib/components/VSlideGroup/VSlideGroup.js +5 -1
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VTable/VTable.js +20 -32
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VTabs/VTabs.d.ts +25 -0
- package/lib/components/VTextField/VTextField.js +0 -3
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.css +2 -2
- package/lib/components/VTextarea/VTextarea.js +20 -1
- package/lib/components/VTextarea/VTextarea.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +4 -2
- package/lib/components/VWindow/VWindow.js +43 -3
- package/lib/components/VWindow/VWindow.js.map +1 -1
- package/lib/composables/date/date.js +1 -1
- package/lib/composables/date/date.js.map +1 -1
- package/lib/composables/group.js +1 -1
- package/lib/composables/group.js.map +1 -1
- package/lib/composables/nested/nested.js +12 -2
- package/lib/composables/nested/nested.js.map +1 -1
- package/lib/composables/virtual.js +2 -2
- package/lib/composables/virtual.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +66 -66
- package/lib/framework.js +1 -1
- package/lib/labs/VColorInput/VColorInput.d.ts +0 -40
- package/lib/labs/VColorInput/VColorInput.js +2 -2
- package/lib/labs/VColorInput/VColorInput.js.map +1 -1
- package/lib/labs/VDateInput/VDateInput.d.ts +0 -30
- package/lib/labs/VDateInput/VDateInput.js +16 -7
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VIconBtn/VIconBtn.css +22 -0
- package/lib/labs/VIconBtn/VIconBtn.scss +32 -0
- package/lib/labs/VMaskInput/VMaskInput.js +1 -1
- package/lib/labs/VMaskInput/VMaskInput.js.map +1 -1
- package/lib/labs/rules/rules.js +4 -4
- package/lib/labs/rules/rules.js.map +1 -1
- package/lib/util/helpers.js +4 -2
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested.js","names":["useProxiedModel","computed","inject","onBeforeMount","onBeforeUnmount","provide","ref","shallowRef","toRaw","toRef","toValue","independentActiveStrategy","independentSingleActiveStrategy","leafActiveStrategy","leafSingleActiveStrategy","listOpenStrategy","multipleOpenStrategy","singleOpenStrategy","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","trunkSelectStrategy","consoleError","getCurrentInstance","propsFactory","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","children","Map","parents","disabled","Set","open","openOnSelect","activate","select","activatable","selectable","opened","activated","selected","selectedValues","getPath","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","useNested","props","isUnmounted","v","Array","isArray","map","i","values","value","in","out","path","parent","undefined","unshift","get","vm","nodeIds","nested","arr","key","entries","push","parentId","isDisabled","isGroup","has","join","newPath","concat","add","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","size","useNestedItem","uidSymbol","computedId","idValue","item","e","isOpen","isActivated","isSelected","isIndeterminate","isLeaf","isGroupActivator","useNestedGroupActivator"],"sources":["../../../src/composables/nested/nested.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport {\n computed,\n inject,\n onBeforeMount,\n onBeforeUnmount,\n provide,\n ref,\n shallowRef,\n toRaw,\n toRef,\n toValue,\n} from 'vue'\nimport {\n independentActiveStrategy,\n independentSingleActiveStrategy,\n leafActiveStrategy,\n leafSingleActiveStrategy,\n} from './activeStrategies'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n trunkSelectStrategy,\n} from './selectStrategies'\nimport { consoleError, getCurrentInstance, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, MaybeRefOrGetter, PropType, Ref } from 'vue'\nimport type { ActiveStrategy } from './activeStrategies'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategy } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type ActiveStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | ActiveStrategy\n | ((mandatory: boolean) => ActiveStrategy)\nexport type SelectStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | 'classic'\n | 'trunk'\n | SelectStrategy\n | ((mandatory: boolean) => SelectStrategy)\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: ActiveStrategyProp | undefined\n selectStrategy: SelectStrategyProp | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: any\n selected: any\n opened: any\n mandatory: boolean\n 'onUpdate:activated': EventProp<[any]> | undefined\n 'onUpdate:selected': EventProp<[any]> | undefined\n 'onUpdate:opened': EventProp<[any]> | undefined\n}\n\ntype NestedProvide = {\n id: Ref<unknown>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<unknown, unknown[]>>\n parents: Ref<Map<unknown, unknown>>\n disabled: Ref<Set<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, 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 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 selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n getPath: () => [],\n },\n}\n\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object] as PropType<ActiveStrategyProp>,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = shallowRef(new Map<unknown, unknown[]>())\n const parents = shallowRef(new Map<unknown, unknown>())\n 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 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, 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 },\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 },\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 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) {\n parent.root.register(computedId.value, parent.id.value, toValue(isDisabled), isGroup)\n }\n })\n\n onBeforeUnmount(() => {\n if (!parent.isGroupActivator) {\n parent.root.unregister(computedId.value)\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","classicSelectStrategy","independentSelectStrategy","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","trunkSelectStrategy","consoleError","getCurrentInstance","propsFactory","VNestedSymbol","Symbol","for","emptyNested","id","root","register","unregister","children","Map","parents","disabled","Set","open","openOnSelect","activate","select","activatable","selectable","opened","activated","selected","selectedValues","getPath","makeNestedProps","Boolean","activeStrategy","String","Function","Object","selectStrategy","openStrategy","mandatory","useNested","props","isUnmounted","v","Array","isArray","map","i","values","value","in","out","path","parent","undefined","unshift","get","vm","nodeIds","nested","arr","key","entries","push","parentId","isDisabled","isGroup","has","join","newPath","concat","add","set","delete","list","filter","child","event","emit","newOpened","newSelected","newActivated","size","useNestedItem","uidSymbol","computedId","idValue","item","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 } from '@/util'\n\n// Types\nimport type { InjectionKey, MaybeRefOrGetter, PropType, Ref } from 'vue'\nimport type { ActiveStrategy } from './activeStrategies'\nimport type { OpenStrategy } from './openStrategies'\nimport type { SelectStrategy } from './selectStrategies'\nimport type { EventProp } from '@/util'\n\nexport type ActiveStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | ActiveStrategy\n | ((mandatory: boolean) => ActiveStrategy)\nexport type SelectStrategyProp =\n | 'single-leaf'\n | 'leaf'\n | 'independent'\n | 'single-independent'\n | 'classic'\n | 'trunk'\n | SelectStrategy\n | ((mandatory: boolean) => SelectStrategy)\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n activatable: boolean\n selectable: boolean\n activeStrategy: ActiveStrategyProp | undefined\n selectStrategy: SelectStrategyProp | undefined\n openStrategy: OpenStrategyProp | undefined\n activated: any\n selected: any\n opened: any\n mandatory: boolean\n 'onUpdate:activated': EventProp<[any]> | undefined\n 'onUpdate:selected': EventProp<[any]> | undefined\n 'onUpdate:opened': EventProp<[any]> | undefined\n}\n\ntype NestedProvide = {\n id: Ref<unknown>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<unknown, unknown[]>>\n parents: Ref<Map<unknown, unknown>>\n disabled: Ref<Set<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, 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 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 selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n getPath: () => [],\n },\n}\n\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object] as PropType<ActiveStrategyProp>,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n openStrategy: [String, Object] as PropType<OpenStrategyProp>,\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = shallowRef(new Map<unknown, unknown[]>())\n const parents = shallowRef(new Map<unknown, unknown>())\n 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 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, 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 },\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 },\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 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) {\n nextTick(() => {\n parent.root.register(computedId.value, parent.id.value, toValue(isDisabled), isGroup)\n })\n }\n })\n\n onBeforeUnmount(() => {\n if (!parent.isGroupActivator) {\n parent.root.unregister(computedId.value)\n }\n })\n\n watch(computedId, (val, oldVal) => {\n if (!parent.isGroupActivator) {\n parent.root.unregister(oldVal)\n nextTick(() => {\n parent.root.register(val, parent.id.value, toValue(isDisabled), isGroup)\n })\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":[]}
|
|
@@ -71,7 +71,7 @@ export function useVirtual(props, items) {
|
|
|
71
71
|
const start = performance.now();
|
|
72
72
|
offsets[0] = 0;
|
|
73
73
|
const length = items.value.length;
|
|
74
|
-
for (let i = 1; i <= length
|
|
74
|
+
for (let i = 1; i <= length; i++) {
|
|
75
75
|
offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1);
|
|
76
76
|
}
|
|
77
77
|
updateTime.value = Math.max(updateTime.value, performance.now() - start);
|
|
@@ -106,7 +106,7 @@ export function useVirtual(props, items) {
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
function calculateOffset(index) {
|
|
109
|
-
index = clamp(index, 0, items.value.length
|
|
109
|
+
index = clamp(index, 0, items.value.length);
|
|
110
110
|
const whole = Math.floor(index);
|
|
111
111
|
const fraction = index % 1;
|
|
112
112
|
const next = whole + 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual.js","names":["useDisplay","useResizeObserver","computed","nextTick","onScopeDispose","ref","shallowRef","watch","watchEffect","clamp","debounce","getPropertyFromItem","IN_BROWSER","propsFactory","UP","DOWN","BUFFER_PX","makeVirtualProps","itemHeight","type","Number","String","default","itemKey","Array","Function","height","useVirtual","props","items","display","value","parseFloat","first","last","Math","ceil","parseInt","paddingTop","paddingBottom","containerRef","markerRef","markerOffset","resizeRef","contentRect","viewportHeight","document","documentElement","hasInitialRender","sizes","from","length","offsets","updateTime","targetScrollIndex","getSize","index","updateOffsets","start","performance","now","i","max","unwatch","v","offsetTop","immediate","calculateVisibleItems","window","requestAnimationFrame","scrollToIndex","clear","handleItemResize","prevHeight","prevMinHeight","min","calculateOffset","whole","floor","fraction","next","wholeOffset","nextOffset","calculateIndex","scrollTop","binaryClosest","lastScrollTop","scrollVelocity","lastScrollTime","val","oldVal","scrollTimeout","handleScroll","scrollTime","scrollDeltaT","sign","clearTimeout","setTimeout","handleScrollend","raf","cancelAnimationFrame","_calculateVisibleItems","direction","startPx","endPx","end","topOverflow","bottomOverflow","bufferOverflow","offset","computedItems","slice","map","item","_index","raw","key","deep","arr","high","low","mid","target"],"sources":["../../src/composables/virtual.ts"],"sourcesContent":["// Composables\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { clamp, debounce, getPropertyFromItem, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nconst UP = -1\nconst DOWN = 1\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100\n\ntype VirtualProps = {\n itemHeight: number | string | null | undefined\n itemKey: SelectItemKey\n height: number | string | undefined\n}\n\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null,\n },\n itemKey: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: null,\n },\n height: [Number, String],\n}, 'virtual')\n\nexport function useVirtual <T> (props: VirtualProps, items: Ref<readonly T[]>) {\n const display = useDisplay()\n\n const itemHeight = shallowRef(0)\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0)\n })\n\n const first = shallowRef(0)\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height!) || display.height.value) / (itemHeight.value || 16)\n ) || 1)\n const paddingTop = shallowRef(0)\n const paddingBottom = shallowRef(0)\n\n /** The scrollable element */\n const containerRef = ref<HTMLElement>()\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref<HTMLElement>()\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0\n\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = containerRef.value\n })\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement\n ? display.height.value\n : contentRect.value?.height || parseInt(props.height!) || 0\n })\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value)\n })\n\n let sizes = Array.from<number | null>({ length: items.value.length })\n let offsets = Array.from<number>({ length: items.value.length })\n const updateTime = shallowRef(0)\n let targetScrollIndex = -1\n\n function getSize (index: number) {\n return sizes[index] || itemHeight.value\n }\n\n const updateOffsets = debounce(() => {\n const start = performance.now()\n offsets[0] = 0\n const length = items.value.length\n for (let i = 1; i <= length - 1; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1)\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start)\n }, updateTime)\n\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch()\n markerOffset = markerRef.value!.offsetTop\n updateOffsets.immediate()\n calculateVisibleItems()\n\n if (!~targetScrollIndex) return\n\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex)\n targetScrollIndex = -1\n })\n })\n })\n\n onScopeDispose(() => {\n updateOffsets.clear()\n })\n\n function handleItemResize (index: number, height: number) {\n const prevHeight = sizes[index]\n const prevMinHeight = itemHeight.value\n\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height\n\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height\n updateOffsets()\n }\n }\n\n function calculateOffset (index: number) {\n index = clamp(index, 0, items.value.length - 1)\n const whole = Math.floor(index)\n const fraction = index % 1\n const next = whole + 1\n const wholeOffset = offsets[whole] || 0\n const nextOffset = offsets[next] || wholeOffset\n return wholeOffset + (nextOffset - wholeOffset) * fraction\n }\n\n function calculateIndex (scrollTop: number) {\n return binaryClosest(offsets, scrollTop)\n }\n\n let lastScrollTop = 0\n let scrollVelocity = 0\n let lastScrollTime = 0\n\n watch(viewportHeight, (val, oldVal) => {\n if (oldVal) {\n calculateVisibleItems()\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0\n calculateVisibleItems()\n })\n }\n }\n })\n\n let scrollTimeout = -1\n function handleScroll () {\n if (!containerRef.value || !markerRef.value) return\n\n const scrollTop = containerRef.value.scrollTop\n const scrollTime = performance.now()\n const scrollDeltaT = scrollTime - lastScrollTime\n\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop)\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop\n } else {\n scrollVelocity = scrollTop - lastScrollTop\n }\n\n lastScrollTop = scrollTop\n lastScrollTime = scrollTime\n\n window.clearTimeout(scrollTimeout)\n scrollTimeout = window.setTimeout(handleScrollend, 500)\n\n calculateVisibleItems()\n }\n function handleScrollend () {\n if (!containerRef.value || !markerRef.value) return\n\n scrollVelocity = 0\n lastScrollTime = 0\n\n window.clearTimeout(scrollTimeout)\n calculateVisibleItems()\n }\n\n let raf = -1\n function calculateVisibleItems () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(_calculateVisibleItems)\n }\n function _calculateVisibleItems () {\n if (!containerRef.value || !viewportHeight.value || !itemHeight.value) return\n const scrollTop = lastScrollTop - markerOffset\n const direction = Math.sign(scrollVelocity)\n\n const startPx = Math.max(0, scrollTop - BUFFER_PX)\n const start = clamp(calculateIndex(startPx), 0, items.value.length)\n\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length)\n\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) &&\n (direction !== DOWN || end > last.value)\n ) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start)\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value)\n const bufferOverflow = Math.max(topOverflow, bottomOverflow)\n\n if (bufferOverflow > BUFFER_PX) {\n first.value = start\n last.value = end\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start\n if (end >= items.value.length) last.value = end\n }\n }\n\n paddingTop.value = calculateOffset(first.value)\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value)\n }\n\n function scrollToIndex (index: number) {\n const offset = calculateOffset(index)\n if (!containerRef.value || (index && !offset)) {\n targetScrollIndex = index\n } else {\n containerRef.value.scrollTop = offset\n }\n }\n\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => {\n const _index = index + first.value\n return {\n raw: item,\n index: _index,\n key: getPropertyFromItem(item, props.itemKey, _index),\n }\n })\n })\n\n watch(items, () => {\n sizes = Array.from({ length: items.value.length })\n offsets = Array.from({ length: items.value.length })\n updateOffsets.immediate()\n calculateVisibleItems()\n }, { deep: 1 })\n\n return {\n calculateVisibleItems,\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize,\n }\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest (arr: ArrayLike<number>, val: number) {\n let high = arr.length - 1\n let low = 0\n let mid = 0\n let item = null\n let target = -1\n\n if (arr[high]! < val) {\n return high\n }\n\n while (low <= high) {\n mid = (low + high) >> 1\n item = arr[mid]!\n\n if (item > val) {\n high = mid - 1\n } else if (item < val) {\n target = mid\n low = mid + 1\n } else if (item === val) {\n return mid\n } else {\n return low\n }\n }\n\n return target\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"virtual.js","names":["useDisplay","useResizeObserver","computed","nextTick","onScopeDispose","ref","shallowRef","watch","watchEffect","clamp","debounce","getPropertyFromItem","IN_BROWSER","propsFactory","UP","DOWN","BUFFER_PX","makeVirtualProps","itemHeight","type","Number","String","default","itemKey","Array","Function","height","useVirtual","props","items","display","value","parseFloat","first","last","Math","ceil","parseInt","paddingTop","paddingBottom","containerRef","markerRef","markerOffset","resizeRef","contentRect","viewportHeight","document","documentElement","hasInitialRender","sizes","from","length","offsets","updateTime","targetScrollIndex","getSize","index","updateOffsets","start","performance","now","i","max","unwatch","v","offsetTop","immediate","calculateVisibleItems","window","requestAnimationFrame","scrollToIndex","clear","handleItemResize","prevHeight","prevMinHeight","min","calculateOffset","whole","floor","fraction","next","wholeOffset","nextOffset","calculateIndex","scrollTop","binaryClosest","lastScrollTop","scrollVelocity","lastScrollTime","val","oldVal","scrollTimeout","handleScroll","scrollTime","scrollDeltaT","sign","clearTimeout","setTimeout","handleScrollend","raf","cancelAnimationFrame","_calculateVisibleItems","direction","startPx","endPx","end","topOverflow","bottomOverflow","bufferOverflow","offset","computedItems","slice","map","item","_index","raw","key","deep","arr","high","low","mid","target"],"sources":["../../src/composables/virtual.ts"],"sourcesContent":["// Composables\nimport { useDisplay } from '@/composables/display'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { clamp, debounce, getPropertyFromItem, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nconst UP = -1\nconst DOWN = 1\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100\n\ntype VirtualProps = {\n itemHeight: number | string | null | undefined\n itemKey: SelectItemKey\n height: number | string | undefined\n}\n\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null,\n },\n itemKey: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: null,\n },\n height: [Number, String],\n}, 'virtual')\n\nexport function useVirtual <T> (props: VirtualProps, items: Ref<readonly T[]>) {\n const display = useDisplay()\n\n const itemHeight = shallowRef(0)\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0)\n })\n\n const first = shallowRef(0)\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height!) || display.height.value) / (itemHeight.value || 16)\n ) || 1)\n const paddingTop = shallowRef(0)\n const paddingBottom = shallowRef(0)\n\n /** The scrollable element */\n const containerRef = ref<HTMLElement>()\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref<HTMLElement>()\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0\n\n const { resizeRef, contentRect } = useResizeObserver()\n watchEffect(() => {\n resizeRef.value = containerRef.value\n })\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement\n ? display.height.value\n : contentRect.value?.height || parseInt(props.height!) || 0\n })\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value)\n })\n\n let sizes = Array.from<number | null>({ length: items.value.length })\n let offsets = Array.from<number>({ length: items.value.length })\n const updateTime = shallowRef(0)\n let targetScrollIndex = -1\n\n function getSize (index: number) {\n return sizes[index] || itemHeight.value\n }\n\n const updateOffsets = debounce(() => {\n const start = performance.now()\n offsets[0] = 0\n const length = items.value.length\n for (let i = 1; i <= length; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1)\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start)\n }, updateTime)\n\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch()\n markerOffset = markerRef.value!.offsetTop\n updateOffsets.immediate()\n calculateVisibleItems()\n\n if (!~targetScrollIndex) return\n\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex)\n targetScrollIndex = -1\n })\n })\n })\n\n onScopeDispose(() => {\n updateOffsets.clear()\n })\n\n function handleItemResize (index: number, height: number) {\n const prevHeight = sizes[index]\n const prevMinHeight = itemHeight.value\n\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height\n\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height\n updateOffsets()\n }\n }\n\n function calculateOffset (index: number) {\n index = clamp(index, 0, items.value.length)\n const whole = Math.floor(index)\n const fraction = index % 1\n const next = whole + 1\n const wholeOffset = offsets[whole] || 0\n const nextOffset = offsets[next] || wholeOffset\n return wholeOffset + (nextOffset - wholeOffset) * fraction\n }\n\n function calculateIndex (scrollTop: number) {\n return binaryClosest(offsets, scrollTop)\n }\n\n let lastScrollTop = 0\n let scrollVelocity = 0\n let lastScrollTime = 0\n\n watch(viewportHeight, (val, oldVal) => {\n if (oldVal) {\n calculateVisibleItems()\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0\n calculateVisibleItems()\n })\n }\n }\n })\n\n let scrollTimeout = -1\n function handleScroll () {\n if (!containerRef.value || !markerRef.value) return\n\n const scrollTop = containerRef.value.scrollTop\n const scrollTime = performance.now()\n const scrollDeltaT = scrollTime - lastScrollTime\n\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop)\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop\n } else {\n scrollVelocity = scrollTop - lastScrollTop\n }\n\n lastScrollTop = scrollTop\n lastScrollTime = scrollTime\n\n window.clearTimeout(scrollTimeout)\n scrollTimeout = window.setTimeout(handleScrollend, 500)\n\n calculateVisibleItems()\n }\n function handleScrollend () {\n if (!containerRef.value || !markerRef.value) return\n\n scrollVelocity = 0\n lastScrollTime = 0\n\n window.clearTimeout(scrollTimeout)\n calculateVisibleItems()\n }\n\n let raf = -1\n function calculateVisibleItems () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(_calculateVisibleItems)\n }\n function _calculateVisibleItems () {\n if (!containerRef.value || !viewportHeight.value || !itemHeight.value) return\n const scrollTop = lastScrollTop - markerOffset\n const direction = Math.sign(scrollVelocity)\n\n const startPx = Math.max(0, scrollTop - BUFFER_PX)\n const start = clamp(calculateIndex(startPx), 0, items.value.length)\n\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length)\n\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) &&\n (direction !== DOWN || end > last.value)\n ) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start)\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value)\n const bufferOverflow = Math.max(topOverflow, bottomOverflow)\n\n if (bufferOverflow > BUFFER_PX) {\n first.value = start\n last.value = end\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start\n if (end >= items.value.length) last.value = end\n }\n }\n\n paddingTop.value = calculateOffset(first.value)\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value)\n }\n\n function scrollToIndex (index: number) {\n const offset = calculateOffset(index)\n if (!containerRef.value || (index && !offset)) {\n targetScrollIndex = index\n } else {\n containerRef.value.scrollTop = offset\n }\n }\n\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => {\n const _index = index + first.value\n return {\n raw: item,\n index: _index,\n key: getPropertyFromItem(item, props.itemKey, _index),\n }\n })\n })\n\n watch(items, () => {\n sizes = Array.from({ length: items.value.length })\n offsets = Array.from({ length: items.value.length })\n updateOffsets.immediate()\n calculateVisibleItems()\n }, { deep: 1 })\n\n return {\n calculateVisibleItems,\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize,\n }\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest (arr: ArrayLike<number>, val: number) {\n let high = arr.length - 1\n let low = 0\n let mid = 0\n let item = null\n let target = -1\n\n if (arr[high]! < val) {\n return high\n }\n\n while (low <= high) {\n mid = (low + high) >> 1\n item = arr[mid]!\n\n if (item > val) {\n high = mid - 1\n } else if (item < val) {\n target = mid\n low = mid + 1\n } else if (item === val) {\n return mid\n } else {\n return low\n }\n }\n\n return target\n}\n"],"mappings":"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","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.10.
|
|
19
|
+
export const version = "3.10.6";
|
|
20
20
|
createVuetify.version = version;
|
|
21
21
|
export { blueprints, components, directives };
|
|
22
22
|
export * from "./composables/index.js";
|
package/lib/framework.d.ts
CHANGED
|
@@ -2712,43 +2712,50 @@ declare module 'vue' {
|
|
|
2712
2712
|
$children?: VNodeChild
|
|
2713
2713
|
}
|
|
2714
2714
|
export interface GlobalComponents {
|
|
2715
|
+
VApp: typeof import('vuetify/components')['VApp']
|
|
2715
2716
|
VAlert: typeof import('vuetify/components')['VAlert']
|
|
2716
2717
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
2717
2718
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
|
2718
2719
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
|
2719
2720
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
|
2720
|
-
|
|
2721
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
2721
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
2722
2722
|
VBanner: typeof import('vuetify/components')['VBanner']
|
|
2723
2723
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
|
2724
2724
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
|
2725
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
2726
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
2727
|
-
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
|
2728
|
-
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
2729
|
-
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
2730
2725
|
VBadge: typeof import('vuetify/components')['VBadge']
|
|
2726
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
2731
2727
|
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
2728
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
2732
2729
|
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
2733
2730
|
VBtn: typeof import('vuetify/components')['VBtn']
|
|
2731
|
+
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
|
2732
|
+
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
2733
|
+
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
2734
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
2735
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
2736
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
2737
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
2738
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
2739
|
+
VChip: typeof import('vuetify/components')['VChip']
|
|
2734
2740
|
VCard: typeof import('vuetify/components')['VCard']
|
|
2735
2741
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
|
2736
2742
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
|
2737
2743
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
|
2738
2744
|
VCardText: typeof import('vuetify/components')['VCardText']
|
|
2739
2745
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
|
2740
|
-
|
|
2741
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
2742
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
2743
|
-
VCode: typeof import('vuetify/components')['VCode']
|
|
2744
|
-
VChip: typeof import('vuetify/components')['VChip']
|
|
2745
|
-
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
2746
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
|
2746
2747
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
2747
|
-
|
|
2748
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
2748
|
+
VCode: typeof import('vuetify/components')['VCode']
|
|
2749
2749
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
2750
|
-
|
|
2751
|
-
|
|
2750
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
2751
|
+
VField: typeof import('vuetify/components')['VField']
|
|
2752
|
+
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
2753
|
+
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
2754
|
+
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
2755
|
+
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
2756
|
+
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
|
2757
|
+
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
2758
|
+
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
2752
2759
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
|
2753
2760
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
|
2754
2761
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
|
@@ -2756,35 +2763,26 @@ declare module 'vue' {
|
|
|
2756
2763
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
|
2757
2764
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
|
2758
2765
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
|
2766
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
|
2767
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
|
2768
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
2759
2769
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
2760
2770
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
2761
2771
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
2762
2772
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
|
2763
|
-
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
2764
|
-
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
2765
|
-
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
2766
|
-
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
|
2767
|
-
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
2768
|
-
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
2769
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
2770
2773
|
VFooter: typeof import('vuetify/components')['VFooter']
|
|
2771
|
-
|
|
2774
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
2772
2775
|
VFab: typeof import('vuetify/components')['VFab']
|
|
2776
|
+
VImg: typeof import('vuetify/components')['VImg']
|
|
2777
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
2778
|
+
VInput: typeof import('vuetify/components')['VInput']
|
|
2779
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
|
2773
2780
|
VIcon: typeof import('vuetify/components')['VIcon']
|
|
2774
2781
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
|
2775
2782
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
|
2776
2783
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
|
2777
2784
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
|
2778
|
-
VField: typeof import('vuetify/components')['VField']
|
|
2779
|
-
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
2780
|
-
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
2781
|
-
VImg: typeof import('vuetify/components')['VImg']
|
|
2782
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
2783
|
-
VInput: typeof import('vuetify/components')['VInput']
|
|
2784
2785
|
VLabel: typeof import('vuetify/components')['VLabel']
|
|
2785
|
-
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
2786
|
-
VItem: typeof import('vuetify/components')['VItem']
|
|
2787
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
|
2788
2786
|
VList: typeof import('vuetify/components')['VList']
|
|
2789
2787
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
|
2790
2788
|
VListImg: typeof import('vuetify/components')['VListImg']
|
|
@@ -2794,77 +2792,79 @@ declare module 'vue' {
|
|
|
2794
2792
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
|
2795
2793
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
|
2796
2794
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
|
2795
|
+
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
2796
|
+
VItem: typeof import('vuetify/components')['VItem']
|
|
2800
2797
|
VMessages: typeof import('vuetify/components')['VMessages']
|
|
2801
|
-
|
|
2798
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
|
2799
|
+
VMain: typeof import('vuetify/components')['VMain']
|
|
2802
2800
|
VPagination: typeof import('vuetify/components')['VPagination']
|
|
2801
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
2803
2802
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
|
2804
2803
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
|
2804
|
+
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
|
2805
2805
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
2806
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
2807
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
|
2806
2808
|
VRating: typeof import('vuetify/components')['VRating']
|
|
2807
2809
|
VSelect: typeof import('vuetify/components')['VSelect']
|
|
2808
|
-
|
|
2809
|
-
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
2810
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
2810
2811
|
VSheet: typeof import('vuetify/components')['VSheet']
|
|
2811
2812
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
|
2812
|
-
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
2813
|
-
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
2814
2813
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
2815
2814
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
2816
|
-
VSlider: typeof import('vuetify/components')['VSlider']
|
|
2817
2815
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
2816
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
2817
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
|
2818
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
2819
|
+
VTab: typeof import('vuetify/components')['VTab']
|
|
2820
|
+
VTabs: typeof import('vuetify/components')['VTabs']
|
|
2821
|
+
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
2822
|
+
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
2818
2823
|
VStepper: typeof import('vuetify/components')['VStepper']
|
|
2819
2824
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
|
2820
2825
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
|
2821
2826
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
|
2822
2827
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
|
2823
2828
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
|
2824
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
2825
|
-
VTable: typeof import('vuetify/components')['VTable']
|
|
2826
2829
|
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
2827
|
-
|
|
2828
|
-
VTab: typeof import('vuetify/components')['VTab']
|
|
2829
|
-
VTabs: typeof import('vuetify/components')['VTabs']
|
|
2830
|
-
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
2831
|
-
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
2832
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
|
2833
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
2830
|
+
VTable: typeof import('vuetify/components')['VTable']
|
|
2834
2831
|
VTimePicker: typeof import('vuetify/components')['VTimePicker']
|
|
2835
2832
|
VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
|
|
2836
2833
|
VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
|
|
2834
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
2835
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
|
2836
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
2837
2837
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
2838
2838
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
2839
|
-
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
2840
|
-
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
|
2841
|
-
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
|
2842
2839
|
VTreeview: typeof import('vuetify/components')['VTreeview']
|
|
2843
2840
|
VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
|
|
2844
2841
|
VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
|
|
2842
|
+
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
2843
|
+
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
|
2844
|
+
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
|
2845
2845
|
VWindow: typeof import('vuetify/components')['VWindow']
|
|
2846
2846
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
2847
2847
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
|
2848
2848
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
|
2849
2849
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
|
2850
|
+
VHover: typeof import('vuetify/components')['VHover']
|
|
2851
|
+
VForm: typeof import('vuetify/components')['VForm']
|
|
2850
2852
|
VContainer: typeof import('vuetify/components')['VContainer']
|
|
2851
2853
|
VCol: typeof import('vuetify/components')['VCol']
|
|
2852
2854
|
VRow: typeof import('vuetify/components')['VRow']
|
|
2853
2855
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
|
2854
|
-
|
|
2855
|
-
VHover: typeof import('vuetify/components')['VHover']
|
|
2856
|
+
VLazy: typeof import('vuetify/components')['VLazy']
|
|
2856
2857
|
VLayout: typeof import('vuetify/components')['VLayout']
|
|
2857
2858
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
|
2858
2859
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
|
2859
|
-
VLazy: typeof import('vuetify/components')['VLazy']
|
|
2860
2860
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
|
2861
2861
|
VParallax: typeof import('vuetify/components')['VParallax']
|
|
2862
2862
|
VRadio: typeof import('vuetify/components')['VRadio']
|
|
2863
|
-
VResponsive: typeof import('vuetify/components')['VResponsive']
|
|
2864
2863
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
|
2864
|
+
VResponsive: typeof import('vuetify/components')['VResponsive']
|
|
2865
|
+
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
|
2865
2866
|
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
|
2866
2867
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
|
2867
|
-
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
|
2868
2868
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
|
2869
2869
|
VValidation: typeof import('vuetify/components')['VValidation']
|
|
2870
2870
|
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
|
@@ -2884,26 +2884,26 @@ declare module 'vue' {
|
|
|
2884
2884
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
|
2885
2885
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
|
2886
2886
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
|
2887
|
-
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
|
2888
2887
|
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
|
2889
|
-
|
|
2890
|
-
|
|
2888
|
+
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
|
2889
|
+
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
|
2891
2890
|
VVideo: typeof import('vuetify/labs/components')['VVideo']
|
|
2892
2891
|
VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
|
|
2893
2892
|
VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
|
|
2893
|
+
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
|
2894
|
+
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
|
2894
2895
|
VPie: typeof import('vuetify/labs/components')['VPie']
|
|
2895
2896
|
VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
|
|
2896
2897
|
VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
|
|
2897
|
-
VHotkey: typeof import('vuetify/labs/components')['VHotkey']
|
|
2898
|
-
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
|
2899
2898
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
|
2900
2899
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
|
2901
2900
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
|
2901
|
+
VHotkey: typeof import('vuetify/labs/components')['VHotkey']
|
|
2902
2902
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
|
2903
2903
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
|
2904
2904
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
|
2905
|
-
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
|
2906
2905
|
VMaskInput: typeof import('vuetify/labs/components')['VMaskInput']
|
|
2906
|
+
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
|
2907
2907
|
}
|
|
2908
2908
|
export interface GlobalDirectives {
|
|
2909
2909
|
vClickOutside: typeof import('vuetify/directives')['ClickOutside']
|