@dimailn/vuetify 2.7.2-alpha29 → 2.7.2-alpha31
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/dist/vuetify.js +166 -78
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +1 -1
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VBreadcrumbs/VBreadcrumbs.js +8 -6
- package/es5/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
- package/es5/components/VBreadcrumbs/VBreadcrumbsItem.js +4 -0
- package/es5/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
- package/es5/components/VCarousel/VCarousel.js +14 -2
- package/es5/components/VCarousel/VCarousel.js.map +1 -1
- package/es5/components/VDialog/VDialog.js +47 -26
- package/es5/components/VDialog/VDialog.js.map +1 -1
- package/es5/components/VFileInput/VFileInput.js +50 -28
- package/es5/components/VFileInput/VFileInput.js.map +1 -1
- package/es5/components/VPagination/VPagination.js +15 -18
- package/es5/components/VPagination/VPagination.js.map +1 -1
- package/es5/components/VRangeSlider/VRangeSlider.js +57 -32
- package/es5/components/VRangeSlider/VRangeSlider.js.map +1 -1
- package/es5/components/VSubheader/VSubheader.js +1 -1
- package/es5/components/VSubheader/VSubheader.js.map +1 -1
- package/es5/components/VTreeview/VTreeview.js +26 -13
- package/es5/components/VTreeview/VTreeview.js.map +1 -1
- package/es5/components/VTreeview/VTreeviewNode.js +0 -2
- package/es5/components/VTreeview/VTreeviewNode.js.map +1 -1
- package/es5/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
- package/es5/framework.js +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js +7 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +4 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
- package/lib/components/VCarousel/VCarousel.js +14 -2
- package/lib/components/VCarousel/VCarousel.js.map +1 -1
- package/lib/components/VDialog/VDialog.js +9 -2
- package/lib/components/VDialog/VDialog.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.js +43 -26
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VPagination/VPagination.js +15 -19
- package/lib/components/VPagination/VPagination.js.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.js +16 -4
- package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
- package/lib/components/VSubheader/VSubheader.js +1 -1
- package/lib/components/VSubheader/VSubheader.js.map +1 -1
- package/lib/components/VTreeview/VTreeview.js +15 -7
- package/lib/components/VTreeview/VTreeview.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewNode.js +0 -2
- package/lib/components/VTreeview/VTreeviewNode.js.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
- package/lib/framework.js +1 -1
- package/package.json +1 -1
- package/src/components/VBottomNavigation/__tests__/VBottomNavigation.spec.ts +43 -37
- package/src/components/VBottomNavigation/__tests__/__snapshots__/VBottomNavigation.spec.ts.snap +11 -10
- package/src/components/VBreadcrumbs/VBreadcrumbs.ts +8 -4
- package/src/components/VBreadcrumbs/VBreadcrumbsItem.ts +4 -0
- package/src/components/VBreadcrumbs/__tests__/VBreadcrumbs.spec.ts +125 -10
- package/src/components/VBreadcrumbs/__tests__/VBreadcrumbsItem.spec.ts +10 -6
- package/src/components/VBtnToggle/__tests__/VBtnToggle.spec.ts +10 -6
- package/src/components/VCarousel/VCarousel.ts +15 -3
- package/src/components/VCarousel/__tests__/VCarousel.spec.ts +74 -54
- package/src/components/VCarousel/__tests__/VCarouselItem.spec.ts +9 -5
- package/src/components/VCarousel/__tests__/__snapshots__/VCarousel.spec.ts.snap +1 -1
- package/src/components/VDialog/VDialog.ts +14 -4
- package/src/components/VDialog/__tests__/VDialog.spec.ts +105 -101
- package/src/components/VDialog/__tests__/__snapshots__/VDialog.spec.ts.snap +0 -15
- package/src/components/VExpansionPanel/__tests__/VExpansionPanel.spec.ts +43 -27
- package/src/components/VExpansionPanel/__tests__/__snapshots__/VExpansionPanel.spec.ts.snap +18 -16
- package/src/components/VFileInput/VFileInput.ts +46 -33
- package/src/components/VFileInput/__tests__/VFileInput.spec.ts +84 -54
- package/src/components/VFileInput/__tests__/__snapshots__/VFileInput.spec.ts.snap +242 -146
- package/src/components/VImg/__tests__/VImg.spec.ts +21 -20
- package/src/components/VImg/__tests__/__snapshots__/VImg.spec.ts.snap +16 -11
- package/src/components/VNavigationDrawer/__tests__/VNavigationDrawer.spec.ts +84 -71
- package/src/components/VPagination/VPagination.ts +16 -19
- package/src/components/VPagination/__tests__/VPagination.spec.ts +85 -71
- package/src/components/VPagination/__tests__/__snapshots__/VPagination.spec.ts.snap +184 -429
- package/src/components/VRangeSlider/VRangeSlider.ts +19 -4
- package/src/components/VRangeSlider/__tests__/VRangeSlider.spec.ts +40 -40
- package/src/components/VRangeSlider/__tests__/__snapshots__/VRangeSlider.spec.ts.snap +32 -38
- package/src/components/VSubheader/VSubheader.ts +1 -1
- package/src/components/VSubheader/__tests__/VSubheader.spec.ts +12 -7
- package/src/components/VSubheader/__tests__/__snapshots__/VSubheader.spec.ts.snap +1 -1
- package/src/components/VSystemBar/__tests__/VSystemBar.spec.ts +89 -17
- package/src/components/VTimeline/__tests__/VTimelineItem.spec.ts +25 -35
- package/src/components/VTimeline/__tests__/__snapshots__/VTimelineItem.spec.ts.snap +4 -5
- package/src/components/VTreeview/VTreeview.ts +20 -12
- package/src/components/VTreeview/VTreeviewNode.ts +0 -2
- package/src/components/VTreeview/__tests__/VTreeview.spec.ts +168 -174
- package/src/components/VTreeview/__tests__/VTreeviewNode.spec.ts +77 -66
- package/src/components/VTreeview/__tests__/__snapshots__/VTreeview.spec.ts.snap +141 -141
- package/src/components/VTreeview/__tests__/__snapshots__/VTreeviewNode.spec.ts.snap +26 -51
- package/src/components/VVirtualScroll/VVirtualScroll.ts +0 -1
- package/src/components/VVirtualScroll/__tests__/VVirtualScroll.spec.ts +6 -9
- package/src/components/VWindow/__tests__/VWindow.spec.ts +78 -0
- package/src/components/VWindow/__tests__/VWindowItem.spec.ts +127 -0
- package/src/components/VWindow/__tests__/__snapshots__/VWindow.spec.ts.snap +59 -0
- package/src/components/VWindow/__tests__/__snapshots__/VWindowItem.spec.ts.snap +36 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VTreeview/VTreeview.ts"],"names":[],"mappings":"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","sourcesContent":["import {h} from 'vue'\n// Styles\nimport './VTreeview.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { TreeviewItemFunction } from 'vuetify/types'\n\n// Components\nimport VTreeviewNode, { VTreeviewNodeProps } from './VTreeviewNode'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utils\nimport {\n arrayDiff,\n deepEqual,\n getObjectValueByPath,\n} from '../../util/helpers'\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\nimport {\n filterTreeItems,\n filterTreeItem,\n} from './util/filterTreeItems'\n\ntype VTreeviewNodeInstance = InstanceType<typeof VTreeviewNode>\n\ntype NodeCache = Set<string | number>\ntype NodeArray = (string | number)[]\n\ntype NodeState = {\n parent: number | string | null\n children: (number | string)[]\n vnode: VTreeviewNodeInstance | null\n isActive: boolean\n isSelected: boolean\n isIndeterminate: boolean\n isOpen: boolean\n item: any\n}\n\nexport default mixins(\n RegistrableProvide('treeview'),\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-treeview',\n\n provide (): object {\n return { treeview: this }\n },\n\n props: {\n active: {\n type: Array,\n default: () => ([]),\n } as PropValidator<NodeArray>,\n dense: Boolean,\n disabled: Boolean,\n filter: Function as PropType<TreeviewItemFunction>,\n hoverable: Boolean,\n items: {\n type: Array,\n default: () => ([]),\n } as PropValidator<any[]>,\n multipleActive: Boolean,\n open: {\n type: Array,\n default: () => ([]),\n } as PropValidator<NodeArray>,\n openAll: Boolean,\n returnObject: {\n type: Boolean,\n default: false, // TODO: Should be true in next major\n },\n search: String,\n value: {\n type: Array,\n default: () => ([]),\n } as PropValidator<NodeArray>,\n ...VTreeviewNodeProps,\n },\n\n data: () => ({\n level: -1,\n activeCache: new Set() as NodeCache,\n nodes: {} as Record<string | number, NodeState>,\n openCache: new Set() as NodeCache,\n selectedCache: new Set() as NodeCache,\n }),\n\n computed: {\n excludedItems (): Set<string | number> {\n const excluded = new Set<string|number>()\n\n if (!this.search) return excluded\n\n for (let i = 0; i < this.items.length; i++) {\n filterTreeItems(\n this.filter || filterTreeItem,\n this.items[i],\n this.search,\n this.itemKey,\n this.itemText,\n this.itemChildren,\n excluded\n )\n }\n\n return excluded\n },\n },\n\n watch: {\n items: {\n handler () {\n const oldKeys = Object.keys(this.nodes).map(k => getObjectValueByPath(this.nodes[k].item, this.itemKey))\n const newKeys = this.getKeys(this.items)\n const diff = arrayDiff(newKeys, oldKeys)\n\n // We only want to do stuff if items have changed\n if (!diff.length && newKeys.length < oldKeys.length) return\n\n // If nodes are removed we need to clear them from this.nodes\n diff.forEach(k => delete this.nodes[k])\n\n const oldSelectedCache = [...this.selectedCache]\n this.selectedCache = new Set()\n this.activeCache = new Set()\n this.openCache = new Set()\n this.buildTree(this.items)\n\n // Only emit selected if selection has changed\n // as a result of items changing. This fixes a\n // potential double emit when selecting a node\n // with dynamic children\n if (!deepEqual(oldSelectedCache, [...this.selectedCache])) this.emitSelected()\n },\n deep: true,\n },\n active (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.activeCache, this.updateActive, this.emitActive)\n },\n value (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.selectedCache, this.updateSelected, this.emitSelected)\n },\n open (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.openCache, this.updateOpen, this.emitOpen)\n },\n },\n\n created () {\n const getValue = (key: string | number) => this.returnObject ? getObjectValueByPath(key, this.itemKey) : key\n\n this.buildTree(this.items)\n\n for (const value of this.value.map(getValue)) {\n this.updateSelected(value, true, true)\n }\n\n for (const active of this.active.map(getValue)) {\n this.updateActive(active, true)\n }\n },\n\n mounted () {\n if (this.openAll) {\n this.updateAll(true)\n } else {\n this.open.forEach(key => this.updateOpen(this.returnObject ? getObjectValueByPath(key, this.itemKey) : key, true))\n this.emitOpen()\n }\n },\n\n methods: {\n /** @public */\n updateAll (value: boolean) {\n Object.keys(this.nodes).forEach(key => this.updateOpen(getObjectValueByPath(this.nodes[key].item, this.itemKey), value))\n this.emitOpen()\n },\n getKeys (items: any[], keys: any[] = []) {\n for (let i = 0; i < items.length; i++) {\n const key = getObjectValueByPath(items[i], this.itemKey)\n keys.push(key)\n const children = getObjectValueByPath(items[i], this.itemChildren)\n if (children) {\n keys.push(...this.getKeys(children))\n }\n }\n\n return keys\n },\n buildTree (items: any[], parent: (string | number | null) = null) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const key = getObjectValueByPath(item, this.itemKey)\n const children = getObjectValueByPath(item, this.itemChildren) ?? []\n const oldNode = this.nodes.hasOwnProperty(key) ? this.nodes[key] : {\n isSelected: false, isIndeterminate: false, isActive: false, isOpen: false, vnode: null,\n } as NodeState\n\n const node: any = {\n vnode: oldNode.vnode,\n parent,\n children: children.map((c: any) => getObjectValueByPath(c, this.itemKey)),\n item,\n }\n\n this.buildTree(children, key)\n\n // This fixed bug with dynamic children resetting selected parent state\n if (\n this.selectionType !== 'independent' &&\n parent !== null &&\n !this.nodes.hasOwnProperty(key) &&\n this.nodes.hasOwnProperty(parent)\n ) {\n node.isSelected = this.nodes[parent].isSelected\n } else {\n node.isSelected = oldNode.isSelected\n node.isIndeterminate = oldNode.isIndeterminate\n }\n\n node.isActive = oldNode.isActive\n node.isOpen = oldNode.isOpen\n\n this.nodes[key] = node\n\n if (children.length && this.selectionType !== 'independent') {\n const { isSelected, isIndeterminate } = this.calculateState(key, this.nodes)\n\n node.isSelected = isSelected\n node.isIndeterminate = isIndeterminate\n }\n\n // Don't forget to rebuild cache\n if (this.nodes[key].isSelected && (this.selectionType === 'independent' || node.children.length === 0)) this.selectedCache.add(key)\n if (this.nodes[key].isActive) this.activeCache.add(key)\n if (this.nodes[key].isOpen) this.openCache.add(key)\n\n this.updateVnodeState(key)\n }\n },\n calculateState (node: string | number, state: Record<string | number, NodeState>) {\n const children = state[node].children\n const counts = children.reduce((counts: number[], child: string | number) => {\n counts[0] += +Boolean(state[child].isSelected)\n counts[1] += +Boolean(state[child].isIndeterminate)\n\n return counts\n }, [0, 0])\n\n const isSelected = !!children.length && counts[0] === children.length\n const isIndeterminate = !isSelected && (counts[0] > 0 || counts[1] > 0)\n\n return {\n isSelected,\n isIndeterminate,\n }\n },\n emitOpen () {\n this.emitNodeCache('update:open', this.openCache)\n },\n emitSelected () {\n this.emitNodeCache('input', this.selectedCache)\n },\n emitActive () {\n this.emitNodeCache('update:active', this.activeCache)\n },\n emitNodeCache (event: string, cache: NodeCache) {\n this.$emit(event, this.returnObject ? [...cache].map(key => this.nodes[key].item) : [...cache])\n },\n handleNodeCacheWatcher (value: any[], cache: NodeCache, updateFn: Function, emitFn: Function) {\n value = this.returnObject ? value.map(v => getObjectValueByPath(v, this.itemKey)) : value\n const old = [...cache]\n if (deepEqual(old, value)) return\n\n old.forEach(key => updateFn(key, false))\n value.forEach(key => updateFn(key, true))\n\n emitFn()\n },\n getDescendants (key: string | number, descendants: NodeArray = []) {\n const children = this.nodes[key].children\n\n descendants.push(...children)\n\n for (let i = 0; i < children.length; i++) {\n descendants = this.getDescendants(children[i], descendants)\n }\n\n return descendants\n },\n getParents (key: string | number) {\n let parent = this.nodes[key].parent\n\n const parents = []\n while (parent !== null) {\n parents.push(parent)\n parent = this.nodes[parent].parent\n }\n\n return parents\n },\n register (node: VTreeviewNodeInstance) {\n const key = getObjectValueByPath(node.item, this.itemKey)\n\n this.nodes[key].vnode = node\n\n this.updateVnodeState(key)\n },\n unregister (node: VTreeviewNodeInstance) {\n const key = getObjectValueByPath(node.item, this.itemKey)\n if (this.nodes[key]) this.nodes[key].vnode = null\n },\n isParent (key: string | number) {\n return this.nodes[key].children && this.nodes[key].children.length\n },\n updateActive (key: string | number, isActive: boolean) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n if (!this.multipleActive) {\n this.activeCache.forEach(active => {\n this.nodes[active].isActive = false\n this.updateVnodeState(active)\n this.activeCache.delete(active)\n })\n }\n\n const node = this.nodes[key]\n if (!node) return\n\n if (isActive) this.activeCache.add(key)\n else this.activeCache.delete(key)\n\n node.isActive = isActive\n\n this.updateVnodeState(key)\n },\n updateSelected (key: string | number, isSelected: boolean, isForced = false) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n const changed = new Map()\n\n if (this.selectionType !== 'independent') {\n for (const descendant of this.getDescendants(key)) {\n if (!getObjectValueByPath(this.nodes[descendant].item, this.itemDisabled) || isForced) {\n this.nodes[descendant].isSelected = isSelected\n this.nodes[descendant].isIndeterminate = false\n changed.set(descendant, isSelected)\n }\n }\n\n const calculated = this.calculateState(key, this.nodes)\n this.nodes[key].isSelected = isSelected\n this.nodes[key].isIndeterminate = calculated.isIndeterminate\n changed.set(key, isSelected)\n\n for (const parent of this.getParents(key)) {\n const calculated = this.calculateState(parent, this.nodes)\n this.nodes[parent].isSelected = calculated.isSelected\n this.nodes[parent].isIndeterminate = calculated.isIndeterminate\n changed.set(parent, calculated.isSelected)\n }\n } else {\n this.nodes[key].isSelected = isSelected\n this.nodes[key].isIndeterminate = false\n changed.set(key, isSelected)\n }\n\n for (const [key, value] of changed.entries()) {\n this.updateVnodeState(key)\n\n if (this.selectionType === 'leaf' && this.isParent(key)) continue\n\n value === true ? this.selectedCache.add(key) : this.selectedCache.delete(key)\n }\n },\n updateOpen (key: string | number, isOpen: boolean) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n const node = this.nodes[key]\n const children = getObjectValueByPath(node.item, this.itemChildren)\n\n if (children && !children.length && node.vnode && !node.vnode.hasLoaded) {\n node.vnode.checkChildren().then(() => this.updateOpen(key, isOpen))\n } else if (children && children.length) {\n node.isOpen = isOpen\n\n node.isOpen ? this.openCache.add(key) : this.openCache.delete(key)\n\n this.updateVnodeState(key)\n }\n },\n updateVnodeState (key: string | number) {\n const node = this.nodes[key]\n\n if (node && node.vnode) {\n node.vnode.isSelected = node.isSelected\n node.vnode.isIndeterminate = node.isIndeterminate\n node.vnode.isActive = node.isActive\n node.vnode.isOpen = node.isOpen\n }\n },\n isExcluded (key: string | number) {\n return !!this.search && this.excludedItems.has(key)\n },\n },\n\n render (): VNode {\n const children: VNodeChildrenArrayContents = this.items.length\n ? this.items.filter(item => {\n return !this.isExcluded(getObjectValueByPath(item, this.itemKey))\n }).map(item => {\n const genChild = VTreeviewNode.methods.genChild.bind(this)\n\n return genChild(item, this.disabled || getObjectValueByPath(item, this.itemDisabled))\n })\n /* istanbul ignore next */\n : this.$slots.default! // TODO: remove type annotation with TS 3.2\n\n return h('div', {\n class: ['v-treeview', {\n 'v-treeview--hoverable': this.hoverable,\n 'v-treeview--dense': this.dense,\n ...this.themeClasses,\n }],\n }, children)\n },\n})\n"],"sourceRoot":"","file":"VTreeview.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VTreeview/VTreeview.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, VNode, VNodeChildrenArrayContents, PropType } from 'vue'\n// Styles\nimport './VTreeview.sass'\nimport { PropValidator } from 'vue/types/options'\nimport { TreeviewItemFunction } from 'vuetify/types'\n\n// Components\nimport VTreeviewNode, { VTreeviewNodeProps } from './VTreeviewNode'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Utils\nimport {\n arrayDiff,\n deepEqual,\n getObjectValueByPath,\n} from '../../util/helpers'\nimport mixins from '../../util/mixins'\nimport { consoleWarn, breaking } from '../../util/console'\nimport {\n filterTreeItems,\n filterTreeItem,\n} from './util/filterTreeItems'\n\ntype VTreeviewNodeInstance = InstanceType<typeof VTreeviewNode>\n\ntype NodeCache = Set<string | number>\ntype NodeArray = (string | number)[]\n\ntype NodeState = {\n parent: number | string | null\n children: (number | string)[]\n vnode: VTreeviewNodeInstance | null\n isActive: boolean\n isSelected: boolean\n isIndeterminate: boolean\n isOpen: boolean\n item: any\n}\n\nexport default mixins(\n RegistrableProvide('treeview'),\n Themeable\n /* @vue/component */\n).extend({\n name: 'v-treeview',\n\n provide (): object {\n return { treeview: this }\n },\n\n props: {\n active: {\n type: Array,\n default: () => ([]),\n } as PropValidator<NodeArray>,\n dense: Boolean,\n disabled: Boolean,\n filter: Function as PropType<TreeviewItemFunction>,\n hoverable: Boolean,\n items: {\n type: Array,\n default: () => ([]),\n } as PropValidator<any[]>,\n modelValue: {\n type: Array,\n default: () => ([]),\n } as PropValidator<NodeArray>,\n multipleActive: Boolean,\n open: {\n type: Array,\n default: () => ([]),\n } as PropValidator<NodeArray>,\n openAll: Boolean,\n returnObject: {\n type: Boolean,\n default: false, // TODO: Should be true in next major\n },\n search: String,\n ...VTreeviewNodeProps,\n },\n\n data: () => ({\n level: -1,\n activeCache: new Set() as NodeCache,\n nodes: {} as Record<string | number, NodeState>,\n openCache: new Set() as NodeCache,\n selectedCache: new Set() as NodeCache,\n }),\n\n computed: {\n excludedItems (): Set<string | number> {\n const excluded = new Set<string|number>()\n\n if (!this.search) return excluded\n\n for (let i = 0; i < this.items.length; i++) {\n filterTreeItems(\n this.filter || filterTreeItem,\n this.items[i],\n this.search,\n this.itemKey,\n this.itemText,\n this.itemChildren,\n excluded\n )\n }\n\n return excluded\n },\n },\n\n watch: {\n items: {\n handler () {\n const oldKeys = Object.keys(this.nodes).map(k => getObjectValueByPath(this.nodes[k].item, this.itemKey))\n const newKeys = this.getKeys(this.items)\n const diff = arrayDiff(newKeys, oldKeys)\n\n // We only want to do stuff if items have changed\n if (!diff.length && newKeys.length < oldKeys.length) return\n\n // If nodes are removed we need to clear them from this.nodes\n diff.forEach(k => delete this.nodes[k])\n\n const oldSelectedCache = [...this.selectedCache]\n this.selectedCache = new Set()\n this.activeCache = new Set()\n this.openCache = new Set()\n this.buildTree(this.items)\n\n // Only emit selected if selection has changed\n // as a result of items changing. This fixes a\n // potential double emit when selecting a node\n // with dynamic children\n if (!deepEqual(oldSelectedCache, [...this.selectedCache])) this.emitSelected()\n },\n deep: true,\n },\n active (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.activeCache, this.updateActive, this.emitActive)\n },\n modelValue (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.selectedCache, this.updateSelected, this.emitSelected)\n },\n open (value: (string | number | any)[]) {\n this.handleNodeCacheWatcher(value, this.openCache, this.updateOpen, this.emitOpen)\n },\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onInput', 'onUpdate:modelValue'],\n ['onChange', 'onUpdate:modelValue'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n const getValue = (key: string | number) => this.returnObject ? getObjectValueByPath(key, this.itemKey) : key\n\n this.buildTree(this.items)\n\n for (const value of this.modelValue.map(getValue)) {\n this.updateSelected(value, true, true)\n }\n\n for (const active of this.active.map(getValue)) {\n this.updateActive(active, true)\n }\n },\n\n mounted () {\n if (this.openAll) {\n this.updateAll(true)\n } else {\n this.open.forEach(key => this.updateOpen(this.returnObject ? getObjectValueByPath(key, this.itemKey) : key, true))\n this.emitOpen()\n }\n },\n\n methods: {\n /** @public */\n updateAll (value: boolean) {\n Object.keys(this.nodes).forEach(key => this.updateOpen(getObjectValueByPath(this.nodes[key].item, this.itemKey), value))\n this.emitOpen()\n },\n getKeys (items: any[], keys: any[] = []) {\n for (let i = 0; i < items.length; i++) {\n const key = getObjectValueByPath(items[i], this.itemKey)\n keys.push(key)\n const children = getObjectValueByPath(items[i], this.itemChildren)\n if (children) {\n keys.push(...this.getKeys(children))\n }\n }\n\n return keys\n },\n buildTree (items: any[], parent: (string | number | null) = null) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const key = getObjectValueByPath(item, this.itemKey)\n const children = getObjectValueByPath(item, this.itemChildren) ?? []\n const oldNode = this.nodes.hasOwnProperty(key) ? this.nodes[key] : {\n isSelected: false, isIndeterminate: false, isActive: false, isOpen: false, vnode: null,\n } as NodeState\n\n const node: any = {\n vnode: oldNode.vnode,\n parent,\n children: children.map((c: any) => getObjectValueByPath(c, this.itemKey)),\n item,\n }\n\n this.buildTree(children, key)\n\n // This fixed bug with dynamic children resetting selected parent state\n if (\n this.selectionType !== 'independent' &&\n parent !== null &&\n !this.nodes.hasOwnProperty(key) &&\n this.nodes.hasOwnProperty(parent)\n ) {\n node.isSelected = this.nodes[parent].isSelected\n } else {\n node.isSelected = oldNode.isSelected\n node.isIndeterminate = oldNode.isIndeterminate\n }\n\n node.isActive = oldNode.isActive\n node.isOpen = oldNode.isOpen\n\n this.nodes[key] = node\n\n if (children.length && this.selectionType !== 'independent') {\n const { isSelected, isIndeterminate } = this.calculateState(key, this.nodes)\n\n node.isSelected = isSelected\n node.isIndeterminate = isIndeterminate\n }\n\n // Don't forget to rebuild cache\n if (this.nodes[key].isSelected && (this.selectionType === 'independent' || node.children.length === 0)) this.selectedCache.add(key)\n if (this.nodes[key].isActive) this.activeCache.add(key)\n if (this.nodes[key].isOpen) this.openCache.add(key)\n\n this.updateVnodeState(key)\n }\n },\n calculateState (node: string | number, state: Record<string | number, NodeState>) {\n const children = state[node].children\n const counts = children.reduce((counts: number[], child: string | number) => {\n counts[0] += +Boolean(state[child].isSelected)\n counts[1] += +Boolean(state[child].isIndeterminate)\n\n return counts\n }, [0, 0])\n\n const isSelected = !!children.length && counts[0] === children.length\n const isIndeterminate = !isSelected && (counts[0] > 0 || counts[1] > 0)\n\n return {\n isSelected,\n isIndeterminate,\n }\n },\n emitOpen () {\n this.emitNodeCache('update:open', this.openCache)\n },\n emitSelected () {\n this.emitNodeCache('update:modelValue', this.selectedCache)\n },\n emitActive () {\n this.emitNodeCache('update:active', this.activeCache)\n },\n emitNodeCache (event: string, cache: NodeCache) {\n this.$emit(event, this.returnObject ? [...cache].map(key => this.nodes[key].item) : [...cache])\n },\n handleNodeCacheWatcher (value: any[], cache: NodeCache, updateFn: Function, emitFn: Function) {\n value = this.returnObject ? value.map(v => getObjectValueByPath(v, this.itemKey)) : value\n const old = [...cache]\n if (deepEqual(old, value)) return\n\n old.forEach(key => updateFn(key, false))\n value.forEach(key => updateFn(key, true))\n\n emitFn()\n },\n getDescendants (key: string | number, descendants: NodeArray = []) {\n const children = this.nodes[key].children\n\n descendants.push(...children)\n\n for (let i = 0; i < children.length; i++) {\n descendants = this.getDescendants(children[i], descendants)\n }\n\n return descendants\n },\n getParents (key: string | number) {\n let parent = this.nodes[key].parent\n\n const parents = []\n while (parent !== null) {\n parents.push(parent)\n parent = this.nodes[parent].parent\n }\n\n return parents\n },\n register (node: VTreeviewNodeInstance) {\n const key = getObjectValueByPath(node.item, this.itemKey)\n\n this.nodes[key].vnode = node\n\n this.updateVnodeState(key)\n },\n unregister (node: VTreeviewNodeInstance) {\n const key = getObjectValueByPath(node.item, this.itemKey)\n if (this.nodes[key]) this.nodes[key].vnode = null\n },\n isParent (key: string | number) {\n return this.nodes[key].children && this.nodes[key].children.length\n },\n updateActive (key: string | number, isActive: boolean) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n if (!this.multipleActive) {\n this.activeCache.forEach(active => {\n this.nodes[active].isActive = false\n this.updateVnodeState(active)\n this.activeCache.delete(active)\n })\n }\n\n const node = this.nodes[key]\n if (!node) return\n\n if (isActive) this.activeCache.add(key)\n else this.activeCache.delete(key)\n\n node.isActive = isActive\n\n this.updateVnodeState(key)\n },\n updateSelected (key: string | number, isSelected: boolean, isForced = false) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n const changed = new Map()\n\n if (this.selectionType !== 'independent') {\n for (const descendant of this.getDescendants(key)) {\n if (!getObjectValueByPath(this.nodes[descendant].item, this.itemDisabled) || isForced) {\n this.nodes[descendant].isSelected = isSelected\n this.nodes[descendant].isIndeterminate = false\n changed.set(descendant, isSelected)\n }\n }\n\n const calculated = this.calculateState(key, this.nodes)\n this.nodes[key].isSelected = isSelected\n this.nodes[key].isIndeterminate = calculated.isIndeterminate\n changed.set(key, isSelected)\n\n for (const parent of this.getParents(key)) {\n const calculated = this.calculateState(parent, this.nodes)\n this.nodes[parent].isSelected = calculated.isSelected\n this.nodes[parent].isIndeterminate = calculated.isIndeterminate\n changed.set(parent, calculated.isSelected)\n }\n } else {\n this.nodes[key].isSelected = isSelected\n this.nodes[key].isIndeterminate = false\n changed.set(key, isSelected)\n }\n\n for (const [key, value] of changed.entries()) {\n this.updateVnodeState(key)\n\n if (this.selectionType === 'leaf' && this.isParent(key)) continue\n\n value === true ? this.selectedCache.add(key) : this.selectedCache.delete(key)\n }\n },\n updateOpen (key: string | number, isOpen: boolean) {\n if (!this.nodes.hasOwnProperty(key)) return\n\n const node = this.nodes[key]\n const children = getObjectValueByPath(node.item, this.itemChildren)\n\n if (children && !children.length && node.vnode && !node.vnode.hasLoaded) {\n node.vnode.checkChildren().then(() => this.updateOpen(key, isOpen))\n } else if (children && children.length) {\n node.isOpen = isOpen\n\n node.isOpen ? this.openCache.add(key) : this.openCache.delete(key)\n\n this.updateVnodeState(key)\n }\n },\n updateVnodeState (key: string | number) {\n const node = this.nodes[key]\n\n if (node && node.vnode) {\n node.vnode.isSelected = node.isSelected\n node.vnode.isIndeterminate = node.isIndeterminate\n node.vnode.isActive = node.isActive\n node.vnode.isOpen = node.isOpen\n }\n },\n isExcluded (key: string | number) {\n return !!this.search && this.excludedItems.has(key)\n },\n },\n\n render (): VNode {\n const children: VNodeChildrenArrayContents = this.items.length\n ? this.items.filter(item => {\n return !this.isExcluded(getObjectValueByPath(item, this.itemKey))\n }).map(item => {\n const genChild = VTreeviewNode.methods.genChild.bind(this)\n\n return genChild(item, this.disabled || getObjectValueByPath(item, this.itemDisabled))\n })\n /* istanbul ignore next */\n : this.$slots.default! // TODO: remove type annotation with TS 3.2\n\n return h('div', {\n class: ['v-treeview', {\n 'v-treeview--hoverable': this.hoverable,\n 'v-treeview--dense': this.dense,\n ...this.themeClasses,\n }],\n }, children)\n },\n})\n"],"sourceRoot":"","file":"VTreeview.js"}
|
|
@@ -170,7 +170,6 @@ const VTreeviewNode = baseMixins.extend({
|
|
|
170
170
|
const children = [];
|
|
171
171
|
if (this.$slots.label) children.push(this.$slots.label(this.scopedProps));else children.push(this.text);
|
|
172
172
|
return h('div', {
|
|
173
|
-
slot: 'label',
|
|
174
173
|
class: 'v-treeview-node__label'
|
|
175
174
|
}, children);
|
|
176
175
|
},
|
|
@@ -202,7 +201,6 @@ const VTreeviewNode = baseMixins.extend({
|
|
|
202
201
|
'v-treeview-node__toggle--open': this.isOpen,
|
|
203
202
|
'v-treeview-node__toggle--loading': this.isLoading
|
|
204
203
|
}],
|
|
205
|
-
slot: 'prepend',
|
|
206
204
|
onClick: e => {
|
|
207
205
|
e.stopPropagation();
|
|
208
206
|
if (this.isLoading) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VTreeview/VTreeviewNode.ts"],"names":[],"mappings":"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","sourcesContent":["import {h} from 'vue'\n// Components\nimport { VExpandTransition } from '../transitions'\nimport { VIcon } from '../VIcon'\nimport VTreeview from './VTreeview'\n\n// Mixins\nimport { inject as RegistrableInject } from '../../mixins/registrable'\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getObjectValueByPath, createRange } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren, PropType } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ntype VTreeViewInstance = InstanceType<typeof VTreeview>\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject('treeview')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n treeview: VTreeViewInstance\n}\n\nexport const VTreeviewNodeProps = {\n activatable: Boolean,\n activeClass: {\n type: String,\n default: 'v-treeview-node--active',\n },\n color: {\n type: String,\n default: 'primary',\n },\n disablePerNode: Boolean,\n expandIcon: {\n type: String,\n default: '$subgroup',\n },\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n itemChildren: {\n type: String,\n default: 'children',\n },\n itemDisabled: {\n type: String,\n default: 'disabled',\n },\n itemKey: {\n type: String,\n default: 'id',\n },\n itemText: {\n type: String,\n default: 'name',\n },\n loadChildren: Function as PropType<(item: any) => Promise<void>>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n openOnClick: Boolean,\n rounded: Boolean,\n selectable: Boolean,\n selectedColor: {\n type: String,\n default: 'accent',\n },\n shaped: Boolean,\n transition: Boolean,\n selectionType: {\n type: String as PropType<'leaf' | 'independent'>,\n default: 'leaf',\n validator: (v: string) => ['leaf', 'independent'].includes(v),\n },\n}\n\n/* @vue/component */\nconst VTreeviewNode = baseMixins.extend({\n name: 'v-treeview-node',\n\n inject: {\n treeview: {\n default: null,\n },\n },\n\n props: {\n level: Number,\n item: {\n type: Object,\n default: () => null,\n } as PropValidator<Record<string, unknown> | null>,\n parentIsDisabled: Boolean,\n ...VTreeviewNodeProps,\n },\n\n data: () => ({\n hasLoaded: false,\n isActive: false, // Node is selected (row)\n isIndeterminate: false, // Node has at least one selected child\n isLoading: false,\n isOpen: false, // Node is open/expanded\n isSelected: false, // Node is selected (checkbox)\n }),\n\n computed: {\n disabled (): boolean {\n return (\n getObjectValueByPath(this.item, this.itemDisabled) ||\n (!this.disablePerNode && (this.parentIsDisabled && this.selectionType === 'leaf'))\n )\n },\n key (): string {\n return getObjectValueByPath(this.item, this.itemKey)\n },\n children (): any[] | null {\n const children = getObjectValueByPath(this.item, this.itemChildren)\n return children && children.filter((child: any) => !this.treeview.isExcluded(getObjectValueByPath(child, this.itemKey)))\n },\n text (): string {\n return getObjectValueByPath(this.item, this.itemText)\n },\n scopedProps (): object {\n return {\n item: this.item,\n leaf: !this.children,\n selected: this.isSelected,\n indeterminate: this.isIndeterminate,\n active: this.isActive,\n open: this.isOpen,\n }\n },\n computedIcon (): string {\n if (this.isIndeterminate) return this.indeterminateIcon\n else if (this.isSelected) return this.onIcon\n else return this.offIcon\n },\n hasChildren (): boolean {\n return !!this.children && (!!this.children.length || !!this.loadChildren)\n },\n },\n\n created () {\n this.treeview.register(this)\n },\n\n beforeUnmount () {\n this.treeview.unregister(this)\n },\n\n methods: {\n checkChildren (): Promise<void> {\n return new Promise<void>(resolve => {\n // TODO: Potential issue with always trying\n // to load children if response is empty?\n if (!this.children || this.children.length || !this.loadChildren || this.hasLoaded) return resolve()\n\n this.isLoading = true\n resolve(this.loadChildren(this.item))\n }).then(() => {\n this.isLoading = false\n this.hasLoaded = true\n })\n },\n open () {\n this.isOpen = !this.isOpen\n this.treeview.updateOpen(this.key, this.isOpen)\n this.treeview.emitOpen()\n },\n genLabel () {\n const children = []\n\n if (this.$slots.label) children.push(this.$slots.label(this.scopedProps))\n else children.push(this.text)\n\n return h('div', {\n slot: 'label',\n class: 'v-treeview-node__label',\n }, children)\n },\n genPrependSlot () {\n if (!this.$slots.prepend) return null\n\n return h('div', {\n class: 'v-treeview-node__prepend',\n }, this.$slots.prepend(this.scopedProps))\n },\n genAppendSlot () {\n if (!this.$slots.append) return null\n\n return h('div', {\n class: 'v-treeview-node__append',\n }, this.$slots.append(this.scopedProps))\n },\n genContent () {\n const children = [\n this.genPrependSlot(),\n this.genLabel(),\n this.genAppendSlot(),\n ]\n\n return h('div', {\n class: 'v-treeview-node__content',\n }, children)\n },\n genToggle () {\n return h(VIcon, {\n class: ['v-treeview-node__toggle', {\n 'v-treeview-node__toggle--open': this.isOpen,\n 'v-treeview-node__toggle--loading': this.isLoading,\n }],\n slot: 'prepend',\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (this.isLoading) return\n\n this.checkChildren().then(() => this.open())\n }\n }, () => [this.isLoading ? this.loadingIcon : this.expandIcon])\n },\n genCheckbox () {\n return h(VIcon, {\n class: 'v-treeview-node__checkbox',\n color: this.isSelected || this.isIndeterminate ? this.selectedColor : undefined,\n disabled: this.disabled,\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (this.isLoading) return\n\n this.checkChildren().then(() => {\n // We nextTick here so that items watch in VTreeview has a chance to run first\n this.$nextTick(() => {\n this.isSelected = !this.isSelected\n this.isIndeterminate = false\n\n this.treeview.updateSelected(this.key, this.isSelected)\n this.treeview.emitSelected()\n })\n })\n },\n }, () => [this.computedIcon])\n },\n genLevel (level: number) {\n return createRange(level).map(() => h('div', {\n class: 'v-treeview-node__level',\n }))\n },\n genNode () {\n const children = [this.genContent()]\n\n if (this.selectable) children.unshift(this.genCheckbox())\n\n if (this.hasChildren) {\n children.unshift(this.genToggle())\n } else {\n children.unshift(...this.genLevel(1))\n }\n\n children.unshift(...this.genLevel(this.level))\n\n return h('div', this.setTextColor(this.isActive && this.color, {\n class: ['v-treeview-node__root', {\n [this.activeClass]: this.isActive,\n }],\n onClick: () => {\n if (this.openOnClick && this.hasChildren) {\n this.checkChildren().then(this.open)\n } else if (this.activatable && !this.disabled) {\n this.isActive = !this.isActive\n this.treeview.updateActive(this.key, this.isActive)\n this.treeview.emitActive()\n }\n }\n }), children)\n },\n genChild (item: any, parentIsDisabled: boolean) {\n return h(VTreeviewNode, {\n key: getObjectValueByPath(item, this.itemKey),\n activatable: this.activatable,\n activeClass: this.activeClass,\n item,\n selectable: this.selectable,\n selectedColor: this.selectedColor,\n color: this.color,\n disablePerNode: this.disablePerNode,\n expandIcon: this.expandIcon,\n indeterminateIcon: this.indeterminateIcon,\n offIcon: this.offIcon,\n onIcon: this.onIcon,\n loadingIcon: this.loadingIcon,\n itemKey: this.itemKey,\n itemText: this.itemText,\n itemDisabled: this.itemDisabled,\n itemChildren: this.itemChildren,\n loadChildren: this.loadChildren,\n transition: this.transition,\n openOnClick: this.openOnClick,\n rounded: this.rounded,\n shaped: this.shaped,\n level: this.level + 1,\n selectionType: this.selectionType,\n parentIsDisabled,\n }, this.$slots)\n },\n genChildrenWrapper () {\n if (!this.isOpen || !this.children) return null\n\n const children = [this.children.map(c => this.genChild(c, this.disabled))]\n\n return h('div', {\n class: 'v-treeview-node__children',\n }, children)\n },\n genTransition () {\n return h(VExpandTransition, {}, () => [this.genChildrenWrapper()])\n },\n },\n\n render (): VNode {\n const children: VNodeChildren = [this.genNode()]\n\n if (this.transition) children.push(this.genTransition())\n else children.push(this.genChildrenWrapper())\n\n return h('div', {\n class: ['v-treeview-node', {\n 'v-treeview-node--leaf': !this.hasChildren,\n 'v-treeview-node--click': this.openOnClick,\n 'v-treeview-node--disabled': this.disabled,\n 'v-treeview-node--rounded': this.rounded,\n 'v-treeview-node--shaped': this.shaped,\n 'v-treeview-node--selected': this.isSelected,\n }],\n 'aria-expanded': String(this.isOpen),\n }, children)\n },\n})\n\nexport default VTreeviewNode\n"],"sourceRoot":"","file":"VTreeviewNode.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VTreeview/VTreeviewNode.ts"],"names":[],"mappings":"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","sourcesContent":["import {h} from 'vue'\n// Components\nimport { VExpandTransition } from '../transitions'\nimport { VIcon } from '../VIcon'\nimport VTreeview from './VTreeview'\n\n// Mixins\nimport { inject as RegistrableInject } from '../../mixins/registrable'\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getObjectValueByPath, createRange } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren, PropType } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\ntype VTreeViewInstance = InstanceType<typeof VTreeview>\n\nconst baseMixins = mixins(\n Colorable,\n RegistrableInject('treeview')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n treeview: VTreeViewInstance\n}\n\nexport const VTreeviewNodeProps = {\n activatable: Boolean,\n activeClass: {\n type: String,\n default: 'v-treeview-node--active',\n },\n color: {\n type: String,\n default: 'primary',\n },\n disablePerNode: Boolean,\n expandIcon: {\n type: String,\n default: '$subgroup',\n },\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n itemChildren: {\n type: String,\n default: 'children',\n },\n itemDisabled: {\n type: String,\n default: 'disabled',\n },\n itemKey: {\n type: String,\n default: 'id',\n },\n itemText: {\n type: String,\n default: 'name',\n },\n loadChildren: Function as PropType<(item: any) => Promise<void>>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n openOnClick: Boolean,\n rounded: Boolean,\n selectable: Boolean,\n selectedColor: {\n type: String,\n default: 'accent',\n },\n shaped: Boolean,\n transition: Boolean,\n selectionType: {\n type: String as PropType<'leaf' | 'independent'>,\n default: 'leaf',\n validator: (v: string) => ['leaf', 'independent'].includes(v),\n },\n}\n\n/* @vue/component */\nconst VTreeviewNode = baseMixins.extend({\n name: 'v-treeview-node',\n\n inject: {\n treeview: {\n default: null,\n },\n },\n\n props: {\n level: Number,\n item: {\n type: Object,\n default: () => null,\n } as PropValidator<Record<string, unknown> | null>,\n parentIsDisabled: Boolean,\n ...VTreeviewNodeProps,\n },\n\n data: () => ({\n hasLoaded: false,\n isActive: false, // Node is selected (row)\n isIndeterminate: false, // Node has at least one selected child\n isLoading: false,\n isOpen: false, // Node is open/expanded\n isSelected: false, // Node is selected (checkbox)\n }),\n\n computed: {\n disabled (): boolean {\n return (\n getObjectValueByPath(this.item, this.itemDisabled) ||\n (!this.disablePerNode && (this.parentIsDisabled && this.selectionType === 'leaf'))\n )\n },\n key (): string {\n return getObjectValueByPath(this.item, this.itemKey)\n },\n children (): any[] | null {\n const children = getObjectValueByPath(this.item, this.itemChildren)\n return children && children.filter((child: any) => !this.treeview.isExcluded(getObjectValueByPath(child, this.itemKey)))\n },\n text (): string {\n return getObjectValueByPath(this.item, this.itemText)\n },\n scopedProps (): object {\n return {\n item: this.item,\n leaf: !this.children,\n selected: this.isSelected,\n indeterminate: this.isIndeterminate,\n active: this.isActive,\n open: this.isOpen,\n }\n },\n computedIcon (): string {\n if (this.isIndeterminate) return this.indeterminateIcon\n else if (this.isSelected) return this.onIcon\n else return this.offIcon\n },\n hasChildren (): boolean {\n return !!this.children && (!!this.children.length || !!this.loadChildren)\n },\n },\n\n created () {\n this.treeview.register(this)\n },\n\n beforeUnmount () {\n this.treeview.unregister(this)\n },\n\n methods: {\n checkChildren (): Promise<void> {\n return new Promise<void>(resolve => {\n // TODO: Potential issue with always trying\n // to load children if response is empty?\n if (!this.children || this.children.length || !this.loadChildren || this.hasLoaded) return resolve()\n\n this.isLoading = true\n resolve(this.loadChildren(this.item))\n }).then(() => {\n this.isLoading = false\n this.hasLoaded = true\n })\n },\n open () {\n this.isOpen = !this.isOpen\n this.treeview.updateOpen(this.key, this.isOpen)\n this.treeview.emitOpen()\n },\n genLabel () {\n const children = []\n\n if (this.$slots.label) children.push(this.$slots.label(this.scopedProps))\n else children.push(this.text)\n\n return h('div', {\n class: 'v-treeview-node__label',\n }, children)\n },\n genPrependSlot () {\n if (!this.$slots.prepend) return null\n\n return h('div', {\n class: 'v-treeview-node__prepend',\n }, this.$slots.prepend(this.scopedProps))\n },\n genAppendSlot () {\n if (!this.$slots.append) return null\n\n return h('div', {\n class: 'v-treeview-node__append',\n }, this.$slots.append(this.scopedProps))\n },\n genContent () {\n const children = [\n this.genPrependSlot(),\n this.genLabel(),\n this.genAppendSlot(),\n ]\n\n return h('div', {\n class: 'v-treeview-node__content',\n }, children)\n },\n genToggle () {\n return h(VIcon, {\n class: ['v-treeview-node__toggle', {\n 'v-treeview-node__toggle--open': this.isOpen,\n 'v-treeview-node__toggle--loading': this.isLoading,\n }],\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (this.isLoading) return\n\n this.checkChildren().then(() => this.open())\n }\n }, () => [this.isLoading ? this.loadingIcon : this.expandIcon])\n },\n genCheckbox () {\n return h(VIcon, {\n class: 'v-treeview-node__checkbox',\n color: this.isSelected || this.isIndeterminate ? this.selectedColor : undefined,\n disabled: this.disabled,\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (this.isLoading) return\n\n this.checkChildren().then(() => {\n // We nextTick here so that items watch in VTreeview has a chance to run first\n this.$nextTick(() => {\n this.isSelected = !this.isSelected\n this.isIndeterminate = false\n\n this.treeview.updateSelected(this.key, this.isSelected)\n this.treeview.emitSelected()\n })\n })\n },\n }, () => [this.computedIcon])\n },\n genLevel (level: number) {\n return createRange(level).map(() => h('div', {\n class: 'v-treeview-node__level',\n }))\n },\n genNode () {\n const children = [this.genContent()]\n\n if (this.selectable) children.unshift(this.genCheckbox())\n\n if (this.hasChildren) {\n children.unshift(this.genToggle())\n } else {\n children.unshift(...this.genLevel(1))\n }\n\n children.unshift(...this.genLevel(this.level))\n\n return h('div', this.setTextColor(this.isActive && this.color, {\n class: ['v-treeview-node__root', {\n [this.activeClass]: this.isActive,\n }],\n onClick: () => {\n if (this.openOnClick && this.hasChildren) {\n this.checkChildren().then(this.open)\n } else if (this.activatable && !this.disabled) {\n this.isActive = !this.isActive\n this.treeview.updateActive(this.key, this.isActive)\n this.treeview.emitActive()\n }\n }\n }), children)\n },\n genChild (item: any, parentIsDisabled: boolean) {\n return h(VTreeviewNode, {\n key: getObjectValueByPath(item, this.itemKey),\n activatable: this.activatable,\n activeClass: this.activeClass,\n item,\n selectable: this.selectable,\n selectedColor: this.selectedColor,\n color: this.color,\n disablePerNode: this.disablePerNode,\n expandIcon: this.expandIcon,\n indeterminateIcon: this.indeterminateIcon,\n offIcon: this.offIcon,\n onIcon: this.onIcon,\n loadingIcon: this.loadingIcon,\n itemKey: this.itemKey,\n itemText: this.itemText,\n itemDisabled: this.itemDisabled,\n itemChildren: this.itemChildren,\n loadChildren: this.loadChildren,\n transition: this.transition,\n openOnClick: this.openOnClick,\n rounded: this.rounded,\n shaped: this.shaped,\n level: this.level + 1,\n selectionType: this.selectionType,\n parentIsDisabled,\n }, this.$slots)\n },\n genChildrenWrapper () {\n if (!this.isOpen || !this.children) return null\n\n const children = [this.children.map(c => this.genChild(c, this.disabled))]\n\n return h('div', {\n class: 'v-treeview-node__children',\n }, children)\n },\n genTransition () {\n return h(VExpandTransition, {}, () => [this.genChildrenWrapper()])\n },\n },\n\n render (): VNode {\n const children: VNodeChildren = [this.genNode()]\n\n if (this.transition) children.push(this.genTransition())\n else children.push(this.genChildrenWrapper())\n\n return h('div', {\n class: ['v-treeview-node', {\n 'v-treeview-node--leaf': !this.hasChildren,\n 'v-treeview-node--click': this.openOnClick,\n 'v-treeview-node--disabled': this.disabled,\n 'v-treeview-node--rounded': this.rounded,\n 'v-treeview-node--shaped': this.shaped,\n 'v-treeview-node--selected': this.isSelected,\n }],\n 'aria-expanded': String(this.isOpen),\n }, children)\n },\n})\n\nexport default VTreeviewNode\n"],"sourceRoot":"","file":"VTreeviewNode.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VVirtualScroll/VVirtualScroll.ts"],"names":[],"mappings":"AAAA,SAAQ,CAAR,EAAW,cAAX,QAAgC,KAAhC,C,CACA;;AACA,OAAO,4DAAP,C,CAEA;;AACA,OAAO,UAAP,MAAuB,yBAAvB,C,CAEA;;AACA,OAAO,MAAP,MAAmB,yBAAnB,C,CAEA;;AACA,SACE,aADF,EAEE,OAFF,QAGO,oBAHP,C,CAKA;;AACA,SAAgB,eAAhB,QAAuC,KAAvC;AAEA,eAAe,eAAe,CAAC;AAC7B,EAAA,IAAI,EAAE,kBADuB;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VVirtualScroll/VVirtualScroll.ts"],"names":[],"mappings":"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","sourcesContent":["import {h, withDirectives} from 'vue'\n// Styles\nimport './VVirtualScroll.sass'\n\n// Mixins\nimport Measurable from '../../mixins/measurable'\n\n// Directives\nimport Scroll from '../../directives/scroll'\n\n// Utilities\nimport {\n convertToUnit,\n getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'v-virtual-scroll',\n\n extends: Measurable,\n\n props: {\n bench: {\n type: [Number, String],\n default: 0,\n },\n itemHeight: {\n type: [Number, String],\n required: true,\n },\n items: {\n type: Array,\n default: () => [],\n },\n },\n\n data: () => ({\n first: 0,\n last: 0,\n scrollTop: 0,\n }),\n\n computed: {\n __bench (): number {\n return parseInt(this.bench, 10)\n },\n __itemHeight (): number {\n return parseInt(this.itemHeight, 10)\n },\n firstToRender (): number {\n return Math.max(0, this.first - this.__bench)\n },\n lastToRender (): number {\n return Math.min(this.items.length, this.last + this.__bench)\n },\n },\n\n watch: {\n height: 'onScroll',\n itemHeight: 'onScroll',\n },\n\n mounted () {\n this.last = this.getLast(0)\n },\n\n methods: {\n getChildren (): VNode[] {\n return this.items.slice(\n this.firstToRender,\n this.lastToRender,\n ).map(this.genChild)\n },\n genChild (item: any, index: number) {\n index += this.firstToRender\n\n const top = convertToUnit(index * this.__itemHeight)\n\n return h('div', {\n class: 'v-virtual-scroll__item',\n style: { top },\n key: index,\n }, getSlot(this, 'default', { index, item }))\n },\n getFirst (): number {\n return Math.floor(this.scrollTop / this.__itemHeight)\n },\n getLast (first: number): number {\n const height = parseInt(this.height || 0, 10) || this.$el.clientHeight\n\n return first + Math.ceil(height / this.__itemHeight)\n },\n onScroll () {\n this.scrollTop = this.$el.scrollTop\n this.first = this.getFirst()\n this.last = this.getLast(this.first)\n },\n },\n\n render (): VNode {\n const content = h('div', {\n class: 'v-virtual-scroll__container',\n style: {\n height: convertToUnit((this.items.length * this.__itemHeight)),\n },\n }, this.getChildren())\n\n return withDirectives(\n h('div', {\n class: 'v-virtual-scroll',\n style: this.measurableStyles,\n ...(this as any).$listeners,\n }, {\n default: () => [content]\n }),\n [\n [Scroll, this.onScroll, '', { self: true }]\n ]\n )\n },\n})\n"],"sourceRoot":"","file":"VVirtualScroll.js"}
|
package/lib/framework.js
CHANGED
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Libraries
|
|
2
|
-
import
|
|
2
|
+
import { h } from 'vue'
|
|
3
3
|
|
|
4
4
|
// Components
|
|
5
5
|
import VBottomNavigation from '../VBottomNavigation'
|
|
@@ -8,8 +8,9 @@ import VBtn from '../../VBtn/VBtn'
|
|
|
8
8
|
// Utilities
|
|
9
9
|
import {
|
|
10
10
|
mount,
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
VueWrapper,
|
|
12
|
+
MountingOptions,
|
|
13
|
+
enableAutoUnmount,
|
|
13
14
|
} from '@vue/test-utils'
|
|
14
15
|
|
|
15
16
|
function createBtn (val = null) {
|
|
@@ -19,26 +20,31 @@ function createBtn (val = null) {
|
|
|
19
20
|
}
|
|
20
21
|
if (val) options.attrs = { value: val }
|
|
21
22
|
|
|
22
|
-
return
|
|
23
|
-
|
|
23
|
+
return {
|
|
24
|
+
name: 'test',
|
|
25
|
+
render () {
|
|
24
26
|
return h(VBtn, options)
|
|
25
27
|
},
|
|
26
|
-
}
|
|
28
|
+
}
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
describe('VBottomNavigation.ts', () => {
|
|
30
32
|
type Instance = InstanceType<typeof VBottomNavigation>
|
|
31
|
-
let mountFunction: (options?:
|
|
33
|
+
let mountFunction: (options?: MountingOptions<Instance>) => VueWrapper<Instance>
|
|
34
|
+
|
|
35
|
+
enableAutoUnmount(afterEach)
|
|
32
36
|
|
|
33
37
|
beforeEach(() => {
|
|
34
|
-
mountFunction = (options:
|
|
38
|
+
mountFunction = (options: MountingOptions<Instance> = {}) => {
|
|
35
39
|
return mount(VBottomNavigation, {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
global: {
|
|
41
|
+
mocks: {
|
|
42
|
+
$vuetify: {
|
|
43
|
+
application: {
|
|
44
|
+
bottom: 0,
|
|
45
|
+
register: () => {},
|
|
46
|
+
unregister: () => {},
|
|
47
|
+
},
|
|
42
48
|
},
|
|
43
49
|
},
|
|
44
50
|
},
|
|
@@ -49,7 +55,7 @@ describe('VBottomNavigation.ts', () => {
|
|
|
49
55
|
|
|
50
56
|
it('should be visible with a true value', async () => {
|
|
51
57
|
const wrapper = mountFunction({
|
|
52
|
-
|
|
58
|
+
props: { modelValue: true },
|
|
53
59
|
slots: {
|
|
54
60
|
default: [VBtn, VBtn],
|
|
55
61
|
},
|
|
@@ -60,15 +66,15 @@ describe('VBottomNavigation.ts', () => {
|
|
|
60
66
|
expect(wrapper.vm.styles).toMatchSnapshot()
|
|
61
67
|
expect(wrapper.html()).toMatchSnapshot()
|
|
62
68
|
|
|
63
|
-
wrapper.setProps({
|
|
69
|
+
await wrapper.setProps({ modelValue: false })
|
|
64
70
|
|
|
65
71
|
expect(wrapper.vm.styles).toMatchSnapshot()
|
|
66
72
|
expect(wrapper.html()).toMatchSnapshot()
|
|
67
73
|
})
|
|
68
74
|
|
|
69
|
-
it('should update application when height or
|
|
75
|
+
it('should update application when height or modelValue changes', async () => {
|
|
70
76
|
const wrapper = mountFunction({
|
|
71
|
-
|
|
77
|
+
props: {
|
|
72
78
|
app: true,
|
|
73
79
|
},
|
|
74
80
|
slots: {
|
|
@@ -76,25 +82,25 @@ describe('VBottomNavigation.ts', () => {
|
|
|
76
82
|
},
|
|
77
83
|
})
|
|
78
84
|
|
|
79
|
-
const
|
|
85
|
+
const updateApplication = wrapper.vm.updateApplication
|
|
86
|
+
const spy = jest.fn(updateApplication)
|
|
87
|
+
wrapper.vm.updateApplication = spy
|
|
80
88
|
|
|
81
|
-
wrapper.setProps({ height: 80 })
|
|
89
|
+
await wrapper.setProps({ height: 80 })
|
|
82
90
|
|
|
83
91
|
expect(spy).toHaveBeenCalled()
|
|
84
92
|
|
|
85
|
-
wrapper.setProps({
|
|
93
|
+
await wrapper.setProps({ modelValue: false })
|
|
86
94
|
|
|
87
95
|
expect(spy).toHaveBeenCalledTimes(2)
|
|
88
96
|
})
|
|
89
97
|
|
|
90
98
|
it('should fire an event and activate/deactivate when reached threshold and using hideOnScroll', async () => {
|
|
91
|
-
const updateInputValue = jest.fn()
|
|
92
99
|
const wrapper = mountFunction({
|
|
93
|
-
|
|
100
|
+
props: { hideOnScroll: true },
|
|
94
101
|
})
|
|
95
|
-
wrapper.vm.$on('update:input-value', updateInputValue)
|
|
96
102
|
|
|
97
|
-
expect(
|
|
103
|
+
expect(wrapper.emitted('update:modelValue')).toBeFalsy()
|
|
98
104
|
|
|
99
105
|
// Scrolling down
|
|
100
106
|
wrapper.vm.currentScroll = 1000
|
|
@@ -102,7 +108,8 @@ describe('VBottomNavigation.ts', () => {
|
|
|
102
108
|
wrapper.vm.isScrollingUp = false
|
|
103
109
|
|
|
104
110
|
wrapper.vm.thresholdMet()
|
|
105
|
-
expect(
|
|
111
|
+
expect(wrapper.emitted('update:modelValue')).toHaveLength(1)
|
|
112
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([true])
|
|
106
113
|
expect(wrapper.vm.isActive).toBeTruthy()
|
|
107
114
|
|
|
108
115
|
// Scrolling up
|
|
@@ -111,28 +118,27 @@ describe('VBottomNavigation.ts', () => {
|
|
|
111
118
|
wrapper.vm.isScrollingUp = true
|
|
112
119
|
|
|
113
120
|
wrapper.vm.thresholdMet()
|
|
114
|
-
expect(
|
|
121
|
+
expect(wrapper.emitted('update:modelValue')).toHaveLength(2)
|
|
122
|
+
expect(wrapper.emitted('update:modelValue')[1]).toEqual([false])
|
|
115
123
|
expect(wrapper.vm.isActive).toBeFalsy()
|
|
116
124
|
})
|
|
117
125
|
|
|
118
|
-
it('should fire change event when updated', () => {
|
|
119
|
-
const change = jest.fn()
|
|
126
|
+
it('should fire change event when updated', async () => {
|
|
120
127
|
const wrapper = mountFunction({
|
|
121
|
-
|
|
128
|
+
props: {
|
|
122
129
|
app: true,
|
|
123
130
|
},
|
|
124
131
|
slots: {
|
|
125
|
-
default: [VBtn, VBtn],
|
|
126
|
-
},
|
|
127
|
-
listeners: {
|
|
128
|
-
change,
|
|
132
|
+
default: () => [h(VBtn, { value: 1 }), h(VBtn, { value: 2 })],
|
|
129
133
|
},
|
|
130
134
|
})
|
|
131
135
|
|
|
132
|
-
expect(change).
|
|
136
|
+
expect(wrapper.emitted('change')).toBeFalsy()
|
|
133
137
|
|
|
134
|
-
|
|
138
|
+
// Simulate clicking on a button by calling the updateValue method directly
|
|
139
|
+
wrapper.vm.updateValue(1)
|
|
135
140
|
|
|
136
|
-
expect(change).
|
|
141
|
+
expect(wrapper.emitted('change')).toBeTruthy()
|
|
142
|
+
expect(wrapper.emitted('change')[0]).toEqual([1])
|
|
137
143
|
})
|
|
138
144
|
})
|
package/src/components/VBottomNavigation/__tests__/__snapshots__/VBottomNavigation.spec.ts.snap
CHANGED
|
@@ -8,17 +8,17 @@ Object {
|
|
|
8
8
|
`;
|
|
9
9
|
|
|
10
10
|
exports[`VBottomNavigation.ts should be visible with a true value 2`] = `
|
|
11
|
-
<div class="v-
|
|
11
|
+
<div class="v-item-group theme--light v-bottom-navigation"
|
|
12
12
|
style="height: 56px; transform: none;"
|
|
13
13
|
>
|
|
14
|
-
<button
|
|
15
|
-
|
|
14
|
+
<button class="v-btn v-btn--is-elevated v-btn--has-bg theme--light v-size--default"
|
|
15
|
+
type="button"
|
|
16
16
|
>
|
|
17
17
|
<span class="v-btn__content">
|
|
18
18
|
</span>
|
|
19
19
|
</button>
|
|
20
|
-
<button
|
|
21
|
-
|
|
20
|
+
<button class="v-btn v-btn--is-elevated v-btn--has-bg theme--light v-size--default"
|
|
21
|
+
type="button"
|
|
22
22
|
>
|
|
23
23
|
<span class="v-btn__content">
|
|
24
24
|
</span>
|
|
@@ -34,17 +34,18 @@ Object {
|
|
|
34
34
|
`;
|
|
35
35
|
|
|
36
36
|
exports[`VBottomNavigation.ts should be visible with a true value 4`] = `
|
|
37
|
-
<div class="v-
|
|
37
|
+
<div class="v-item-group theme--light v-bottom-navigation"
|
|
38
38
|
style="height: 56px; transform: translateY(100%);"
|
|
39
|
+
directives="[object Object]"
|
|
39
40
|
>
|
|
40
|
-
<button
|
|
41
|
-
|
|
41
|
+
<button class="v-btn v-btn--is-elevated v-btn--has-bg theme--light v-size--default"
|
|
42
|
+
type="button"
|
|
42
43
|
>
|
|
43
44
|
<span class="v-btn__content">
|
|
44
45
|
</span>
|
|
45
46
|
</button>
|
|
46
|
-
<button
|
|
47
|
-
|
|
47
|
+
<button class="v-btn v-btn--is-elevated v-btn--has-bg theme--light v-size--default"
|
|
48
|
+
type="button"
|
|
48
49
|
>
|
|
49
50
|
<span class="v-btn__content">
|
|
50
51
|
</span>
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {h} from 'vue'
|
|
1
|
+
import { h, VNode } from 'vue'
|
|
2
2
|
// Styles
|
|
3
3
|
import './VBreadcrumbs.sass'
|
|
4
4
|
|
|
5
5
|
// Types
|
|
6
|
-
import { VNode } from 'vue'
|
|
7
6
|
import { PropValidator } from 'vue/types/options'
|
|
8
7
|
|
|
9
8
|
// Components
|
|
@@ -46,7 +45,7 @@ export default mixins(
|
|
|
46
45
|
|
|
47
46
|
methods: {
|
|
48
47
|
genDivider () {
|
|
49
|
-
return h(VBreadcrumbsDivider, {}, () => this.$slots.divider ? this.$slots.divider : this.divider)
|
|
48
|
+
return h(VBreadcrumbsDivider, {}, () => this.$slots.divider ? this.$slots.divider() : this.divider)
|
|
50
49
|
},
|
|
51
50
|
genItems () {
|
|
52
51
|
const items = []
|
|
@@ -59,7 +58,12 @@ export default mixins(
|
|
|
59
58
|
keys.push(item.text)
|
|
60
59
|
|
|
61
60
|
if (hasSlot) items.push(this.$slots.item!({ item }))
|
|
62
|
-
else
|
|
61
|
+
else {
|
|
62
|
+
items.push(h(VBreadcrumbsItem, {
|
|
63
|
+
key: keys.join('.'),
|
|
64
|
+
...item
|
|
65
|
+
}, () => [item.text]))
|
|
66
|
+
}
|
|
63
67
|
|
|
64
68
|
if (i < this.items.length - 1) items.push(this.genDivider())
|
|
65
69
|
}
|