vuetify 3.10.5 → 3.10.7
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 +3488 -3512
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +176 -176
- package/dist/json/tags.json +3 -9
- package/dist/json/web-types.json +6467 -6520
- package/dist/vuetify-labs.cjs +190 -82
- package/dist/vuetify-labs.css +4945 -4895
- package/dist/vuetify-labs.d.ts +117 -172
- package/dist/vuetify-labs.esm.js +190 -82
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +190 -82
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +171 -72
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3926 -3898
- package/dist/vuetify.d.ts +117 -137
- package/dist/vuetify.esm.js +171 -72
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +171 -72
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +118 -107
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +0 -61
- package/lib/components/VAutocomplete/VAutocomplete.js +15 -12
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- 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 +29 -30
- 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/VDatePicker/VDatePicker.js +1 -1
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.js +3 -2
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VList/VListItem.css +14 -12
- package/lib/components/VList/VListItem.js +4 -2
- 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/VSelect/VSelect.js +2 -1
- package/lib/components/VSelect/VSelect.js.map +1 -1
- 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/VTabs/VTabs.d.ts +25 -0
- package/lib/components/VTextField/VTextField.js +3 -5
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.css +2 -2
- package/lib/components/VTextarea/VTextarea.d.ts +3 -3
- package/lib/components/VTextarea/VTextarea.js +23 -3
- package/lib/components/VTextarea/VTextarea.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +4 -2
- package/lib/components/VWindow/VWindow.js +39 -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 +60 -60
- 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 +1 -1
- 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":"AAAA;AAAA,SACSA,UAAU;AAAA,SACVC,iBAAiB,+BAE1B;AACA,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,cAAc,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,EAAEC,WAAW,QAAQ,KAAK;AAAA,SACpFC,KAAK,EAAEC,QAAQ,EAAEC,mBAAmB,EAAEC,UAAU,EAAEC,YAAY,4BAEvE;AAIA,MAAMC,EAAE,GAAG,CAAC,CAAC;AACb,MAAMC,IAAI,GAAG,CAAC;;AAEd;AACA,MAAMC,SAAS,GAAG,GAAG;AAQrB,OAAO,MAAMC,gBAAgB,GAAGJ,YAAY,CAAC;EAC3CK,UAAU,EAAE;IACVC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDC,OAAO,EAAE;IACPJ,IAAI,EAAE,CAACE,MAAM,EAAEG,KAAK,EAAEC,QAAQ,CAA4B;IAC1DH,OAAO,EAAE;EACX,CAAC;EACDI,MAAM,EAAE,CAACN,MAAM,EAAEC,MAAM;AACzB,CAAC,EAAE,SAAS,CAAC;AAEb,OAAO,SAASM,UAAUA,CAAMC,KAAmB,EAAEC,KAAwB,EAAE;EAC7E,MAAMC,OAAO,GAAG9B,UAAU,CAAC,CAAC;EAE5B,MAAMkB,UAAU,GAAGZ,UAAU,CAAC,CAAC,CAAC;EAChCE,WAAW,CAAC,MAAM;IAChBU,UAAU,CAACa,KAAK,GAAGC,UAAU,CAACJ,KAAK,CAACV,UAAU,IAAI,CAAC,CAAC;EACtD,CAAC,CAAC;EAEF,MAAMe,KAAK,GAAG3B,UAAU,CAAC,CAAC,CAAC;EAC3B,MAAM4B,IAAI,GAAG5B,UAAU,CAAC6B,IAAI,CAACC,IAAI;EAC/B;EACA;EACA;EACA;EACA,CAACC,QAAQ,CAACT,KAAK,CAACF,MAAO,CAAC,IAAII,OAAO,CAACJ,MAAM,CAACK,KAAK,KAAKb,UAAU,CAACa,KAAK,IAAI,EAAE,CAC7E,CAAC,IAAI,CAAC,CAAC;EACP,MAAMO,UAAU,GAAGhC,UAAU,CAAC,CAAC,CAAC;EAChC,MAAMiC,aAAa,GAAGjC,UAAU,CAAC,CAAC,CAAC;;EAEnC;EACA,MAAMkC,YAAY,GAAGnC,GAAG,CAAc,CAAC;EACvC;AACF;EACE,MAAMoC,SAAS,GAAGpC,GAAG,CAAc,CAAC;EACpC;EACA,IAAIqC,YAAY,GAAG,CAAC;EAEpB,MAAM;IAAEC,SAAS;IAAEC;EAAY,CAAC,GAAG3C,iBAAiB,CAAC,CAAC;EACtDO,WAAW,CAAC,MAAM;IAChBmC,SAAS,CAACZ,KAAK,GAAGS,YAAY,CAACT,KAAK;EACtC,CAAC,CAAC;EACF,MAAMc,cAAc,GAAG3C,QAAQ,CAAC,MAAM;IACpC,OAAOsC,YAAY,CAACT,KAAK,KAAKe,QAAQ,CAACC,eAAe,GAClDjB,OAAO,CAACJ,MAAM,CAACK,KAAK,GACpBa,WAAW,CAACb,KAAK,EAAEL,MAAM,IAAIW,QAAQ,CAACT,KAAK,CAACF,MAAO,CAAC,IAAI,CAAC;EAC/D,CAAC,CAAC;EACF;EACA,MAAMsB,gBAAgB,GAAG9C,QAAQ,CAAC,MAAM;IACtC,OAAO,CAAC,EAAEsC,YAAY,CAACT,KAAK,IAAIU,SAAS,CAACV,KAAK,IAAIc,cAAc,CAACd,KAAK,IAAIb,UAAU,CAACa,KAAK,CAAC;EAC9F,CAAC,CAAC;EAEF,IAAIkB,KAAK,GAAGzB,KAAK,CAAC0B,IAAI,CAAgB;IAAEC,MAAM,EAAEtB,KAAK,CAACE,KAAK,CAACoB;EAAO,CAAC,CAAC;EACrE,IAAIC,OAAO,GAAG5B,KAAK,CAAC0B,IAAI,CAAS;IAAEC,MAAM,EAAEtB,KAAK,CAACE,KAAK,CAACoB;EAAO,CAAC,CAAC;EAChE,MAAME,UAAU,GAAG/C,UAAU,CAAC,CAAC,CAAC;EAChC,IAAIgD,iBAAiB,GAAG,CAAC,CAAC;EAE1B,SAASC,OAAOA,CAAEC,KAAa,EAAE;IAC/B,OAAOP,KAAK,CAACO,KAAK,CAAC,IAAItC,UAAU,CAACa,KAAK;EACzC;EAEA,MAAM0B,aAAa,GAAG/C,QAAQ,CAAC,MAAM;IACnC,MAAMgD,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;IAC/BR,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACd,MAAMD,MAAM,GAAGtB,KAAK,CAACE,KAAK,CAACoB,MAAM;IACjC,KAAK,IAAIU,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIV,MAAM,GAAG,CAAC,EAAEU,CAAC,EAAE,EAAE;MACpCT,OAAO,CAACS,CAAC,CAAC,GAAG,CAACT,OAAO,CAACS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAIN,OAAO,CAACM,CAAC,GAAG,CAAC,CAAC;IACrD;IACAR,UAAU,CAACtB,KAAK,GAAGI,IAAI,CAAC2B,GAAG,CAACT,UAAU,CAACtB,KAAK,EAAE4B,WAAW,CAACC,GAAG,CAAC,CAAC,GAAGF,KAAK,CAAC;EAC1E,CAAC,EAAEL,UAAU,CAAC;EAEd,MAAMU,OAAO,GAAGxD,KAAK,CAACyC,gBAAgB,EAAEgB,CAAC,IAAI;IAC3C,IAAI,CAACA,CAAC,EAAE;IACR;IACA;;IAEAD,OAAO,CAAC,CAAC;IACTrB,YAAY,GAAGD,SAAS,CAACV,KAAK,CAAEkC,SAAS;IACzCR,aAAa,CAACS,SAAS,CAAC,CAAC;IACzBC,qBAAqB,CAAC,CAAC;IAEvB,IAAI,CAAC,CAACb,iBAAiB,EAAE;IAEzBnD,QAAQ,CAAC,MAAM;MACbS,UAAU,IAAIwD,MAAM,CAACC,qBAAqB,CAAC,MAAM;QAC/CC,aAAa,CAAChB,iBAAiB,CAAC;QAChCA,iBAAiB,GAAG,CAAC,CAAC;MACxB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFlD,cAAc,CAAC,MAAM;IACnBqD,aAAa,CAACc,KAAK,CAAC,CAAC;EACvB,CAAC,CAAC;EAEF,SAASC,gBAAgBA,CAAEhB,KAAa,EAAE9B,MAAc,EAAE;IACxD,MAAM+C,UAAU,GAAGxB,KAAK,CAACO,KAAK,CAAC;IAC/B,MAAMkB,aAAa,GAAGxD,UAAU,CAACa,KAAK;IAEtCb,UAAU,CAACa,KAAK,GAAG2C,aAAa,GAAGvC,IAAI,CAACwC,GAAG,CAACzD,UAAU,CAACa,KAAK,EAAEL,MAAM,CAAC,GAAGA,MAAM;IAE9E,IAAI+C,UAAU,KAAK/C,MAAM,IAAIgD,aAAa,KAAKxD,UAAU,CAACa,KAAK,EAAE;MAC/DkB,KAAK,CAACO,KAAK,CAAC,GAAG9B,MAAM;MACrB+B,aAAa,CAAC,CAAC;IACjB;EACF;EAEA,SAASmB,eAAeA,CAAEpB,KAAa,EAAE;IACvCA,KAAK,GAAG/C,KAAK,CAAC+C,KAAK,EAAE,CAAC,EAAE3B,KAAK,CAACE,KAAK,CAACoB,MAAM,GAAG,CAAC,CAAC;IAC/C,MAAM0B,KAAK,GAAG1C,IAAI,CAAC2C,KAAK,CAACtB,KAAK,CAAC;IAC/B,MAAMuB,QAAQ,GAAGvB,KAAK,GAAG,CAAC;IAC1B,MAAMwB,IAAI,GAAGH,KAAK,GAAG,CAAC;IACtB,MAAMI,WAAW,GAAG7B,OAAO,CAACyB,KAAK,CAAC,IAAI,CAAC;IACvC,MAAMK,UAAU,GAAG9B,OAAO,CAAC4B,IAAI,CAAC,IAAIC,WAAW;IAC/C,OAAOA,WAAW,GAAG,CAACC,UAAU,GAAGD,WAAW,IAAIF,QAAQ;EAC5D;EAEA,SAASI,cAAcA,CAAEC,SAAiB,EAAE;IAC1C,OAAOC,aAAa,CAACjC,OAAO,EAAEgC,SAAS,CAAC;EAC1C;EAEA,IAAIE,aAAa,GAAG,CAAC;EACrB,IAAIC,cAAc,GAAG,CAAC;EACtB,IAAIC,cAAc,GAAG,CAAC;EAEtBjF,KAAK,CAACsC,cAAc,EAAE,CAAC4C,GAAG,EAAEC,MAAM,KAAK;IACrC,IAAIA,MAAM,EAAE;MACVvB,qBAAqB,CAAC,CAAC;MACvB,IAAIsB,GAAG,GAAGC,MAAM,EAAE;QAChBrB,qBAAqB,CAAC,MAAM;UAC1BkB,cAAc,GAAG,CAAC;UAClBpB,qBAAqB,CAAC,CAAC;QACzB,CAAC,CAAC;MACJ;IACF;EACF,CAAC,CAAC;EAEF,IAAIwB,aAAa,GAAG,CAAC,CAAC;EACtB,SAASC,YAAYA,CAAA,EAAI;IACvB,IAAI,CAACpD,YAAY,CAACT,KAAK,IAAI,CAACU,SAAS,CAACV,KAAK,EAAE;IAE7C,MAAMqD,SAAS,GAAG5C,YAAY,CAACT,KAAK,CAACqD,SAAS;IAC9C,MAAMS,UAAU,GAAGlC,WAAW,CAACC,GAAG,CAAC,CAAC;IACpC,MAAMkC,YAAY,GAAGD,UAAU,GAAGL,cAAc;IAEhD,IAAIM,YAAY,GAAG,GAAG,EAAE;MACtBP,cAAc,GAAGpD,IAAI,CAAC4D,IAAI,CAACX,SAAS,GAAGE,aAAa,CAAC;;MAErD;MACA;MACA5C,YAAY,GAAGD,SAAS,CAACV,KAAK,CAACkC,SAAS;IAC1C,CAAC,MAAM;MACLsB,cAAc,GAAGH,SAAS,GAAGE,aAAa;IAC5C;IAEAA,aAAa,GAAGF,SAAS;IACzBI,cAAc,GAAGK,UAAU;IAE3BzB,MAAM,CAAC4B,YAAY,CAACL,aAAa,CAAC;IAClCA,aAAa,GAAGvB,MAAM,CAAC6B,UAAU,CAACC,eAAe,EAAE,GAAG,CAAC;IAEvD/B,qBAAqB,CAAC,CAAC;EACzB;EACA,SAAS+B,eAAeA,CAAA,EAAI;IAC1B,IAAI,CAAC1D,YAAY,CAACT,KAAK,IAAI,CAACU,SAAS,CAACV,KAAK,EAAE;IAE7CwD,cAAc,GAAG,CAAC;IAClBC,cAAc,GAAG,CAAC;IAElBpB,MAAM,CAAC4B,YAAY,CAACL,aAAa,CAAC;IAClCxB,qBAAqB,CAAC,CAAC;EACzB;EAEA,IAAIgC,GAAG,GAAG,CAAC,CAAC;EACZ,SAAShC,qBAAqBA,CAAA,EAAI;IAChCiC,oBAAoB,CAACD,GAAG,CAAC;IACzBA,GAAG,GAAG9B,qBAAqB,CAACgC,sBAAsB,CAAC;EACrD;EACA,SAASA,sBAAsBA,CAAA,EAAI;IACjC,IAAI,CAAC7D,YAAY,CAACT,KAAK,IAAI,CAACc,cAAc,CAACd,KAAK,IAAI,CAACb,UAAU,CAACa,KAAK,EAAE;IACvE,MAAMqD,SAAS,GAAGE,aAAa,GAAG5C,YAAY;IAC9C,MAAM4D,SAAS,GAAGnE,IAAI,CAAC4D,IAAI,CAACR,cAAc,CAAC;IAE3C,MAAMgB,OAAO,GAAGpE,IAAI,CAAC2B,GAAG,CAAC,CAAC,EAAEsB,SAAS,GAAGpE,SAAS,CAAC;IAClD,MAAM0C,KAAK,GAAGjD,KAAK,CAAC0E,cAAc,CAACoB,OAAO,CAAC,EAAE,CAAC,EAAE1E,KAAK,CAACE,KAAK,CAACoB,MAAM,CAAC;IAEnE,MAAMqD,KAAK,GAAGpB,SAAS,GAAGvC,cAAc,CAACd,KAAK,GAAGf,SAAS;IAC1D,MAAMyF,GAAG,GAAGhG,KAAK,CAAC0E,cAAc,CAACqB,KAAK,CAAC,GAAG,CAAC,EAAE9C,KAAK,GAAG,CAAC,EAAE7B,KAAK,CAACE,KAAK,CAACoB,MAAM,CAAC;IAE3E;IACE;IACA;IACA,CAACmD,SAAS,KAAKxF,EAAE,IAAI4C,KAAK,GAAGzB,KAAK,CAACF,KAAK,MACvCuE,SAAS,KAAKvF,IAAI,IAAI0F,GAAG,GAAGvE,IAAI,CAACH,KAAK,CAAC,EACxC;MACA,MAAM2E,WAAW,GAAG9B,eAAe,CAAC3C,KAAK,CAACF,KAAK,CAAC,GAAG6C,eAAe,CAAClB,KAAK,CAAC;MACzE,MAAMiD,cAAc,GAAG/B,eAAe,CAAC6B,GAAG,CAAC,GAAG7B,eAAe,CAAC1C,IAAI,CAACH,KAAK,CAAC;MACzE,MAAM6E,cAAc,GAAGzE,IAAI,CAAC2B,GAAG,CAAC4C,WAAW,EAAEC,cAAc,CAAC;MAE5D,IAAIC,cAAc,GAAG5F,SAAS,EAAE;QAC9BiB,KAAK,CAACF,KAAK,GAAG2B,KAAK;QACnBxB,IAAI,CAACH,KAAK,GAAG0E,GAAG;MAClB,CAAC,MAAM;QACL;QACA,IAAI/C,KAAK,IAAI,CAAC,EAAEzB,KAAK,CAACF,KAAK,GAAG2B,KAAK;QACnC,IAAI+C,GAAG,IAAI5E,KAAK,CAACE,KAAK,CAACoB,MAAM,EAAEjB,IAAI,CAACH,KAAK,GAAG0E,GAAG;MACjD;IACF;IAEAnE,UAAU,CAACP,KAAK,GAAG6C,eAAe,CAAC3C,KAAK,CAACF,KAAK,CAAC;IAC/CQ,aAAa,CAACR,KAAK,GAAG6C,eAAe,CAAC/C,KAAK,CAACE,KAAK,CAACoB,MAAM,CAAC,GAAGyB,eAAe,CAAC1C,IAAI,CAACH,KAAK,CAAC;EACzF;EAEA,SAASuC,aAAaA,CAAEd,KAAa,EAAE;IACrC,MAAMqD,MAAM,GAAGjC,eAAe,CAACpB,KAAK,CAAC;IACrC,IAAI,CAAChB,YAAY,CAACT,KAAK,IAAKyB,KAAK,IAAI,CAACqD,MAAO,EAAE;MAC7CvD,iBAAiB,GAAGE,KAAK;IAC3B,CAAC,MAAM;MACLhB,YAAY,CAACT,KAAK,CAACqD,SAAS,GAAGyB,MAAM;IACvC;EACF;EAEA,MAAMC,aAAa,GAAG5G,QAAQ,CAAC,MAAM;IACnC,OAAO2B,KAAK,CAACE,KAAK,CAACgF,KAAK,CAAC9E,KAAK,CAACF,KAAK,EAAEG,IAAI,CAACH,KAAK,CAAC,CAACiF,GAAG,CAAC,CAACC,IAAI,EAAEzD,KAAK,KAAK;MACrE,MAAM0D,MAAM,GAAG1D,KAAK,GAAGvB,KAAK,CAACF,KAAK;MAClC,OAAO;QACLoF,GAAG,EAAEF,IAAI;QACTzD,KAAK,EAAE0D,MAAM;QACbE,GAAG,EAAEzG,mBAAmB,CAACsG,IAAI,EAAErF,KAAK,CAACL,OAAO,EAAE2F,MAAM;MACtD,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF3G,KAAK,CAACsB,KAAK,EAAE,MAAM;IACjBoB,KAAK,GAAGzB,KAAK,CAAC0B,IAAI,CAAC;MAAEC,MAAM,EAAEtB,KAAK,CAACE,KAAK,CAACoB;IAAO,CAAC,CAAC;IAClDC,OAAO,GAAG5B,KAAK,CAAC0B,IAAI,CAAC;MAAEC,MAAM,EAAEtB,KAAK,CAACE,KAAK,CAACoB;IAAO,CAAC,CAAC;IACpDM,aAAa,CAACS,SAAS,CAAC,CAAC;IACzBC,qBAAqB,CAAC,CAAC;EACzB,CAAC,EAAE;IAAEkD,IAAI,EAAE;EAAE,CAAC,CAAC;EAEf,OAAO;IACLlD,qBAAqB;IACrB3B,YAAY;IACZC,SAAS;IACTqE,aAAa;IACbxE,UAAU;IACVC,aAAa;IACb+B,aAAa;IACbsB,YAAY;IACZM,eAAe;IACf1B;EACF,CAAC;AACH;;AAEA;AACA,SAASa,aAAaA,CAAEiC,GAAsB,EAAE7B,GAAW,EAAE;EAC3D,IAAI8B,IAAI,GAAGD,GAAG,CAACnE,MAAM,GAAG,CAAC;EACzB,IAAIqE,GAAG,GAAG,CAAC;EACX,IAAIC,GAAG,GAAG,CAAC;EACX,IAAIR,IAAI,GAAG,IAAI;EACf,IAAIS,MAAM,GAAG,CAAC,CAAC;EAEf,IAAIJ,GAAG,CAACC,IAAI,CAAC,GAAI9B,GAAG,EAAE;IACpB,OAAO8B,IAAI;EACb;EAEA,OAAOC,GAAG,IAAID,IAAI,EAAE;IAClBE,GAAG,GAAID,GAAG,GAAGD,IAAI,IAAK,CAAC;IACvBN,IAAI,GAAGK,GAAG,CAACG,GAAG,CAAE;IAEhB,IAAIR,IAAI,GAAGxB,GAAG,EAAE;MACd8B,IAAI,GAAGE,GAAG,GAAG,CAAC;IAChB,CAAC,MAAM,IAAIR,IAAI,GAAGxB,GAAG,EAAE;MACrBiC,MAAM,GAAGD,GAAG;MACZD,GAAG,GAAGC,GAAG,GAAG,CAAC;IACf,CAAC,MAAM,IAAIR,IAAI,KAAKxB,GAAG,EAAE;MACvB,OAAOgC,GAAG;IACZ,CAAC,MAAM;MACL,OAAOD,GAAG;IACZ;EACF;EAEA,OAAOE,MAAM;AACf","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.7";
|
|
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,49 +2712,41 @@ declare module 'vue' {
|
|
|
2712
2712
|
$children?: VNodeChild
|
|
2713
2713
|
}
|
|
2714
2714
|
export interface GlobalComponents {
|
|
2715
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
2716
2715
|
VApp: typeof import('vuetify/components')['VApp']
|
|
2716
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
|
2717
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
|
2718
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
|
2717
2719
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
|
2718
2720
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
|
2719
2721
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
|
2720
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
|
2721
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
2722
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
2723
2722
|
VBanner: typeof import('vuetify/components')['VBanner']
|
|
2724
2723
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
|
2725
2724
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
|
2725
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
|
2726
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
|
2727
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
|
2728
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
2726
2729
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
|
2727
2730
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
|
2728
2731
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
|
2732
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
|
2729
2733
|
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
|
2730
|
-
|
|
2731
|
-
|
|
2734
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
2735
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
2736
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
2737
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
2732
2738
|
VCard: typeof import('vuetify/components')['VCard']
|
|
2733
2739
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
|
2734
2740
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
|
2735
2741
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
|
2736
2742
|
VCardText: typeof import('vuetify/components')['VCardText']
|
|
2737
2743
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
|
2738
|
-
VBtn: typeof import('vuetify/components')['VBtn']
|
|
2739
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
|
2740
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
|
2741
|
-
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
|
2742
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
|
2743
|
-
VChip: typeof import('vuetify/components')['VChip']
|
|
2744
|
-
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
2745
|
-
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
2746
2744
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
|
2747
2745
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
|
2746
|
+
VChip: typeof import('vuetify/components')['VChip']
|
|
2748
2747
|
VCode: typeof import('vuetify/components')['VCode']
|
|
2748
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
2749
2749
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
2750
|
-
VCounter: typeof import('vuetify/components')['VCounter']
|
|
2751
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
|
2752
|
-
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
2753
|
-
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
2754
|
-
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
2755
|
-
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
|
2756
|
-
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
2757
|
-
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
2758
2750
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
|
2759
2751
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
|
2760
2752
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
|
@@ -2762,26 +2754,36 @@ declare module 'vue' {
|
|
|
2762
2754
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
|
2763
2755
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
|
2764
2756
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
|
2757
|
+
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
|
2758
|
+
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
|
2759
|
+
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
|
2760
|
+
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
|
2761
|
+
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
|
2762
|
+
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
|
2765
2763
|
VDivider: typeof import('vuetify/components')['VDivider']
|
|
2764
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
|
2765
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
|
2766
2766
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
|
2767
2767
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
|
2768
2768
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
|
2769
2769
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
|
2770
|
-
VFab: typeof import('vuetify/components')['VFab']
|
|
2771
|
-
VField: typeof import('vuetify/components')['VField']
|
|
2772
|
-
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
2773
2770
|
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
|
2774
2771
|
VFooter: typeof import('vuetify/components')['VFooter']
|
|
2772
|
+
VImg: typeof import('vuetify/components')['VImg']
|
|
2773
|
+
VField: typeof import('vuetify/components')['VField']
|
|
2774
|
+
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
|
2775
|
+
VFab: typeof import('vuetify/components')['VFab']
|
|
2776
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
|
2777
|
+
VInput: typeof import('vuetify/components')['VInput']
|
|
2775
2778
|
VIcon: typeof import('vuetify/components')['VIcon']
|
|
2776
2779
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
|
2777
2780
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
|
2778
2781
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
|
2779
2782
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
|
2780
2783
|
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
|
2781
|
-
|
|
2784
|
+
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
2785
|
+
VItem: typeof import('vuetify/components')['VItem']
|
|
2782
2786
|
VKbd: typeof import('vuetify/components')['VKbd']
|
|
2783
|
-
VImg: typeof import('vuetify/components')['VImg']
|
|
2784
|
-
VInput: typeof import('vuetify/components')['VInput']
|
|
2785
2787
|
VLabel: typeof import('vuetify/components')['VLabel']
|
|
2786
2788
|
VList: typeof import('vuetify/components')['VList']
|
|
2787
2789
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
|
@@ -2792,34 +2794,27 @@ declare module 'vue' {
|
|
|
2792
2794
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
|
2793
2795
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
|
2794
2796
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
|
2795
|
-
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
|
2796
|
-
VItem: typeof import('vuetify/components')['VItem']
|
|
2797
|
-
VMessages: typeof import('vuetify/components')['VMessages']
|
|
2798
|
-
VMain: typeof import('vuetify/components')['VMain']
|
|
2799
2797
|
VMenu: typeof import('vuetify/components')['VMenu']
|
|
2798
|
+
VMain: typeof import('vuetify/components')['VMain']
|
|
2799
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
|
2800
2800
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
|
2801
2801
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
|
2802
|
-
VPagination: typeof import('vuetify/components')['VPagination']
|
|
2803
2802
|
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
|
2804
2803
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
|
2805
|
-
|
|
2806
|
-
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
2804
|
+
VPagination: typeof import('vuetify/components')['VPagination']
|
|
2807
2805
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
|
2806
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
|
2808
2807
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
|
2808
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
|
2809
2809
|
VRating: typeof import('vuetify/components')['VRating']
|
|
2810
|
-
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
2811
|
-
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
2812
|
-
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
2813
2810
|
VSelect: typeof import('vuetify/components')['VSelect']
|
|
2814
|
-
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
2815
2811
|
VSheet: typeof import('vuetify/components')['VSheet']
|
|
2816
|
-
|
|
2817
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
2812
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
|
2818
2813
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2814
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
|
2815
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
|
2816
|
+
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
|
2817
|
+
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
|
2823
2818
|
VStepper: typeof import('vuetify/components')['VStepper']
|
|
2824
2819
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
|
2825
2820
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
|
@@ -2827,32 +2822,40 @@ declare module 'vue' {
|
|
|
2827
2822
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
|
2828
2823
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
|
2829
2824
|
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
|
2830
|
-
|
|
2831
|
-
|
|
2825
|
+
VTab: typeof import('vuetify/components')['VTab']
|
|
2826
|
+
VTabs: typeof import('vuetify/components')['VTabs']
|
|
2827
|
+
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
|
2828
|
+
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
|
2832
2829
|
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
2830
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
|
2831
|
+
VTable: typeof import('vuetify/components')['VTable']
|
|
2832
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
|
2833
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
|
2834
|
+
VTimePicker: typeof import('vuetify/components')['VTimePicker']
|
|
2835
|
+
VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
|
|
2836
|
+
VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
|
|
2833
2837
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
2834
2838
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
2835
2839
|
VTreeview: typeof import('vuetify/components')['VTreeview']
|
|
2836
2840
|
VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
|
|
2837
2841
|
VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
|
|
2838
|
-
|
|
2842
|
+
VWindow: typeof import('vuetify/components')['VWindow']
|
|
2843
|
+
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
2839
2844
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
2840
2845
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
|
2841
2846
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
|
2842
|
-
VWindow: typeof import('vuetify/components')['VWindow']
|
|
2843
|
-
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
2844
2847
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
|
2845
2848
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
|
2846
2849
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
|
2847
2850
|
VForm: typeof import('vuetify/components')['VForm']
|
|
2848
|
-
VHover: typeof import('vuetify/components')['VHover']
|
|
2849
2851
|
VContainer: typeof import('vuetify/components')['VContainer']
|
|
2850
2852
|
VCol: typeof import('vuetify/components')['VCol']
|
|
2851
2853
|
VRow: typeof import('vuetify/components')['VRow']
|
|
2852
2854
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
|
2855
|
+
VHover: typeof import('vuetify/components')['VHover']
|
|
2856
|
+
VLazy: typeof import('vuetify/components')['VLazy']
|
|
2853
2857
|
VLayout: typeof import('vuetify/components')['VLayout']
|
|
2854
2858
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
|
2855
|
-
VLazy: typeof import('vuetify/components')['VLazy']
|
|
2856
2859
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
|
2857
2860
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
|
2858
2861
|
VParallax: typeof import('vuetify/components')['VParallax']
|
|
@@ -2881,26 +2884,23 @@ declare module 'vue' {
|
|
|
2881
2884
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
|
2882
2885
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
|
2883
2886
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
|
2884
|
-
VTimePicker: typeof import('vuetify/components')['VTimePicker']
|
|
2885
|
-
VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
|
|
2886
|
-
VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
|
|
2887
2887
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
|
2888
2888
|
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
|
2889
2889
|
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
|
2890
2890
|
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
|
2891
2891
|
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
|
2892
|
-
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
|
2893
|
-
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
|
2894
|
-
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
|
2895
2892
|
VPie: typeof import('vuetify/labs/components')['VPie']
|
|
2896
2893
|
VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
|
|
2897
2894
|
VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
|
|
2895
|
+
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
|
2896
|
+
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
|
2897
|
+
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
|
2898
|
+
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
|
2899
|
+
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
|
2898
2900
|
VHotkey: typeof import('vuetify/labs/components')['VHotkey']
|
|
2899
2901
|
VVideo: typeof import('vuetify/labs/components')['VVideo']
|
|
2900
2902
|
VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
|
|
2901
2903
|
VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
|
|
2902
|
-
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
|
2903
|
-
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
|
2904
2904
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
|
2905
2905
|
VMaskInput: typeof import('vuetify/labs/components')['VMaskInput']
|
|
2906
2906
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|