@vuetify/nightly 3.7.0-master.2024-08-22 → 3.7.0-master.2024-08-27
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/json/importMap-labs.json +16 -16
- package/dist/json/importMap.json +140 -140
- package/dist/json/web-types.json +7 -7
- package/dist/vuetify-labs.css +2335 -2335
- package/dist/vuetify-labs.d.ts +1839 -36
- package/dist/vuetify-labs.esm.js +12 -6
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +12 -6
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +4054 -4054
- package/dist/vuetify.d.ts +394 -70
- package/dist/vuetify.esm.js +12 -6
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +12 -6
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1058 -1057
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +45 -3
- package/lib/components/VAvatar/VAvatar.css +1 -1
- package/lib/components/VAvatar/_variables.scss +1 -1
- package/lib/components/VCombobox/index.d.mts +45 -3
- package/lib/components/VDialog/index.d.mts +36 -3
- package/lib/components/VFileInput/index.d.mts +27 -3
- package/lib/components/VForm/index.d.mts +96 -3
- package/lib/components/VMenu/index.d.mts +45 -3
- package/lib/components/VSelect/index.d.mts +45 -3
- package/lib/components/VSnackbar/index.d.mts +36 -3
- package/lib/components/VTabs/index.d.mts +15 -3
- package/lib/components/VTextField/index.d.mts +33 -3
- package/lib/components/VTextarea/index.d.mts +27 -3
- package/lib/components/VTooltip/index.d.mts +36 -3
- package/lib/components/index.d.mts +351 -27
- package/lib/components/index.mjs +1 -1
- package/lib/components/index.mjs.map +1 -1
- package/lib/composables/forwardRefs.mjs +2 -0
- package/lib/composables/forwardRefs.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +43 -43
- package/lib/labs/VNumberInput/index.d.mts +2273 -794
- package/lib/labs/VSnackbarQueue/index.d.mts +36 -3
- package/lib/labs/components.d.mts +2293 -781
- package/lib/util/helpers.mjs +7 -3
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +1 -1
- package/lib/components/VTreeview/VTreeview.mjs +0 -350
- package/lib/components/VTreeview/VTreeview.mjs.map +0 -1
- package/lib/components/VTreeview/VTreeview.sass +0 -128
- package/lib/components/VTreeview/VTreeviewNode.mjs +0 -321
- package/lib/components/VTreeview/VTreeviewNode.mjs.map +0 -1
- package/lib/components/VTreeview/_mixins.sass +0 -18
- package/lib/components/VTreeview/_variables.scss +0 -10
- package/lib/components/VTreeview/index.mjs +0 -10
- package/lib/components/VTreeview/index.mjs.map +0 -1
- package/lib/components/VTreeview/util/filterTreeItems.mjs +0 -25
- package/lib/components/VTreeview/util/filterTreeItems.mjs.map +0 -1
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"VTreeview.mjs","names":["VTreeviewNode","VTreeviewNodeProps","Themeable","provide","RegistrableProvide","arrayDiff","deepEqual","getObjectValueByPath","mixins","consoleWarn","filterTreeItems","filterTreeItem","extend","name","treeview","props","active","type","Array","default","dense","Boolean","disabled","filter","Function","hoverable","items","multipleActive","open","openAll","returnObject","search","String","value","data","level","activeCache","Set","nodes","openCache","selectedCache","computed","excludedItems","excluded","i","length","itemKey","itemText","itemChildren","watch","handler","oldKeys","Object","keys","map","k","item","newKeys","getKeys","diff","forEach","oldSelectedCache","buildTree","emitSelected","deep","handleNodeCacheWatcher","updateActive","emitActive","updateSelected","updateOpen","emitOpen","created","getValue","key","mounted","$slots","prepend","append","updateAll","methods","arguments","undefined","push","children","parent","oldNode","hasOwnProperty","isSelected","isIndeterminate","isActive","isOpen","vnode","node","c","selectionType","calculateState","add","updateVnodeState","state","counts","reduce","child","emitNodeCache","event","cache","$emit","updateFn","emitFn","v","old","getDescendants","descendants","getParents","parents","register","unregister","isParent","delete","isForced","changed","Map","descendant","itemDisabled","set","calculated","entries","hasLoaded","checkChildren","then","isExcluded","has","render","h","genChild","options","bind","staticClass","class","themeClasses"],"sources":["../../../src/components/VTreeview/VTreeview.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\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 // Save the developer from themselves\n if (this.$slots.prepend || this.$slots.append) {\n consoleWarn('The prepend and append slots require a slot-scope attribute', this)\n }\n\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 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 (h): 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.options.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 staticClass: 'v-treeview',\n class: {\n 'v-treeview--hoverable': this.hoverable,\n 'v-treeview--dense': this.dense,\n ...this.themeClasses,\n },\n }, children)\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,128 +0,0 @@
|
|
1
|
-
@import './_variables.scss'
|
2
|
-
@import './_mixins.sass'
|
3
|
-
|
4
|
-
// Theme
|
5
|
-
@include theme(v-treeview) using ($material)
|
6
|
-
color: map-deep-get($material, 'text', 'primary')
|
7
|
-
|
8
|
-
&--hoverable .v-treeview-node__root,
|
9
|
-
.v-treeview-node--click > .v-treeview-node__root
|
10
|
-
@include states($material)
|
11
|
-
|
12
|
-
.v-treeview-node__root.v-treeview-node--active
|
13
|
-
@include active-states($material)
|
14
|
-
|
15
|
-
.v-treeview-node--disabled
|
16
|
-
> .v-treeview-node__root > .v-treeview-node__content
|
17
|
-
color: map-deep-get($material, 'text', 'disabled') !important
|
18
|
-
|
19
|
-
.v-treeview-node
|
20
|
-
&.v-treeview-node--shaped
|
21
|
-
@include treeview-shaped($treeview-node-height, $treeview-node-shaped-margin)
|
22
|
-
|
23
|
-
&.v-treeview-node--rounded
|
24
|
-
@include treeview-rounded($treeview-node-height, $treeview-node-shaped-margin)
|
25
|
-
|
26
|
-
&--click
|
27
|
-
> .v-treeview-node__root,
|
28
|
-
> .v-treeview-node__root > .v-treeview-node__content > *
|
29
|
-
cursor: pointer
|
30
|
-
user-select: none
|
31
|
-
|
32
|
-
&.v-treeview-node--active .v-treeview-node__content .v-icon
|
33
|
-
color: inherit
|
34
|
-
|
35
|
-
.v-treeview-node__root
|
36
|
-
display: flex
|
37
|
-
align-items: center
|
38
|
-
min-height: $treeview-node-height
|
39
|
-
padding-left: $treeview-node-padding
|
40
|
-
padding-right: $treeview-node-padding
|
41
|
-
position: relative
|
42
|
-
|
43
|
-
&::before
|
44
|
-
background-color: currentColor
|
45
|
-
bottom: 0
|
46
|
-
content: ''
|
47
|
-
left: 0
|
48
|
-
opacity: 0
|
49
|
-
pointer-events: none
|
50
|
-
position: absolute
|
51
|
-
right: 0
|
52
|
-
top: 0
|
53
|
-
transition: $primary-transition
|
54
|
-
|
55
|
-
// Fix for IE11 where min-height does not work with
|
56
|
-
// align-items: center in flex containers
|
57
|
-
// https://github.com/philipwalton/flexbugs/issues/231
|
58
|
-
&::after
|
59
|
-
content: ''
|
60
|
-
font-size: 0
|
61
|
-
min-height: inherit
|
62
|
-
|
63
|
-
.v-treeview-node__children
|
64
|
-
transition: all $treeview-transition
|
65
|
-
|
66
|
-
.v-treeview--dense
|
67
|
-
.v-treeview-node__root
|
68
|
-
min-height: $treeview-node-height-dense
|
69
|
-
|
70
|
-
&.v-treeview-node--shaped
|
71
|
-
@include treeview-shaped($treeview-node-height-dense, $treeview-node-shaped-margin)
|
72
|
-
|
73
|
-
&.v-treeview-node--rounded
|
74
|
-
@include treeview-rounded($treeview-node-height-dense, $treeview-node-shaped-margin)
|
75
|
-
|
76
|
-
.v-treeview-node__checkbox
|
77
|
-
width: $treeview-node-level-width
|
78
|
-
user-select: none
|
79
|
-
margin-inline-start: $treeview-node-margin
|
80
|
-
|
81
|
-
.v-treeview-node__toggle
|
82
|
-
width: $treeview-node-level-width
|
83
|
-
user-select: none
|
84
|
-
|
85
|
-
&--loading
|
86
|
-
animation: progress-circular-rotate 1s linear infinite
|
87
|
-
|
88
|
-
@include ltr()
|
89
|
-
transform: rotate(-90deg)
|
90
|
-
&--open
|
91
|
-
transform: none
|
92
|
-
|
93
|
-
@include rtl()
|
94
|
-
transform: rotate(90deg)
|
95
|
-
&--open
|
96
|
-
transform: none
|
97
|
-
|
98
|
-
.v-treeview-node__prepend
|
99
|
-
min-width: $treeview-node-level-width
|
100
|
-
margin-inline-end: $treeview-node-margin
|
101
|
-
|
102
|
-
.v-treeview-node__append
|
103
|
-
min-width: $treeview-node-level-width
|
104
|
-
margin-inline-start: $treeview-node-margin
|
105
|
-
|
106
|
-
.v-treeview-node__level
|
107
|
-
width: $treeview-node-level-width
|
108
|
-
|
109
|
-
.v-treeview-node__label
|
110
|
-
flex: 1
|
111
|
-
font-size: $treeview-label-font-size
|
112
|
-
overflow: hidden
|
113
|
-
text-overflow: ellipsis
|
114
|
-
white-space: nowrap
|
115
|
-
|
116
|
-
.v-treeview-node__content
|
117
|
-
align-items: center
|
118
|
-
display: flex
|
119
|
-
flex-basis: 0%
|
120
|
-
flex-grow: 1
|
121
|
-
flex-shrink: 0
|
122
|
-
min-width: 0
|
123
|
-
margin-inline-start: $treeview-node-margin
|
124
|
-
|
125
|
-
// TODO: this is temporary fix for d-flex * shenanigans
|
126
|
-
.v-btn
|
127
|
-
flex-grow: 0 !important
|
128
|
-
flex-shrink: 1 !important
|
@@ -1,321 +0,0 @@
|
|
1
|
-
// @ts-nocheck
|
2
|
-
/* eslint-disable */
|
3
|
-
// Components
|
4
|
-
import { VExpandTransition } from "../transitions/index.mjs";
|
5
|
-
import { VIcon } from "../VIcon/index.mjs";
|
6
|
-
// Mixins
|
7
|
-
import { inject as RegistrableInject } from "../../mixins/registrable.mjs";
|
8
|
-
import Colorable from "../../mixins/colorable.mjs"; // Utils
|
9
|
-
import mixins from "../../util/mixins.mjs";
|
10
|
-
import { getObjectValueByPath, createRange } from "../../util/helpers.mjs"; // Types
|
11
|
-
const baseMixins = mixins(Colorable, RegistrableInject('treeview'));
|
12
|
-
export const VTreeviewNodeProps = {
|
13
|
-
activatable: Boolean,
|
14
|
-
activeClass: {
|
15
|
-
type: String,
|
16
|
-
default: 'v-treeview-node--active'
|
17
|
-
},
|
18
|
-
color: {
|
19
|
-
type: String,
|
20
|
-
default: 'primary'
|
21
|
-
},
|
22
|
-
disablePerNode: Boolean,
|
23
|
-
expandIcon: {
|
24
|
-
type: String,
|
25
|
-
default: '$subgroup'
|
26
|
-
},
|
27
|
-
indeterminateIcon: {
|
28
|
-
type: String,
|
29
|
-
default: '$checkboxIndeterminate'
|
30
|
-
},
|
31
|
-
itemChildren: {
|
32
|
-
type: String,
|
33
|
-
default: 'children'
|
34
|
-
},
|
35
|
-
itemDisabled: {
|
36
|
-
type: String,
|
37
|
-
default: 'disabled'
|
38
|
-
},
|
39
|
-
itemKey: {
|
40
|
-
type: String,
|
41
|
-
default: 'id'
|
42
|
-
},
|
43
|
-
itemText: {
|
44
|
-
type: String,
|
45
|
-
default: 'name'
|
46
|
-
},
|
47
|
-
loadChildren: Function,
|
48
|
-
loadingIcon: {
|
49
|
-
type: String,
|
50
|
-
default: '$loading'
|
51
|
-
},
|
52
|
-
offIcon: {
|
53
|
-
type: String,
|
54
|
-
default: '$checkboxOff'
|
55
|
-
},
|
56
|
-
onIcon: {
|
57
|
-
type: String,
|
58
|
-
default: '$checkboxOn'
|
59
|
-
},
|
60
|
-
openOnClick: Boolean,
|
61
|
-
rounded: Boolean,
|
62
|
-
selectable: Boolean,
|
63
|
-
selectedColor: {
|
64
|
-
type: String,
|
65
|
-
default: 'accent'
|
66
|
-
},
|
67
|
-
shaped: Boolean,
|
68
|
-
transition: Boolean,
|
69
|
-
selectionType: {
|
70
|
-
type: String,
|
71
|
-
default: 'leaf',
|
72
|
-
validator: v => ['leaf', 'independent'].includes(v)
|
73
|
-
}
|
74
|
-
};
|
75
|
-
|
76
|
-
/* @vue/component */
|
77
|
-
const VTreeviewNode = baseMixins.extend().extend({
|
78
|
-
name: 'v-treeview-node',
|
79
|
-
inject: {
|
80
|
-
treeview: {
|
81
|
-
default: null
|
82
|
-
}
|
83
|
-
},
|
84
|
-
props: {
|
85
|
-
level: Number,
|
86
|
-
item: {
|
87
|
-
type: Object,
|
88
|
-
default: () => null
|
89
|
-
},
|
90
|
-
parentIsDisabled: Boolean,
|
91
|
-
...VTreeviewNodeProps
|
92
|
-
},
|
93
|
-
data: () => ({
|
94
|
-
hasLoaded: false,
|
95
|
-
isActive: false,
|
96
|
-
// Node is selected (row)
|
97
|
-
isIndeterminate: false,
|
98
|
-
// Node has at least one selected child
|
99
|
-
isLoading: false,
|
100
|
-
isOpen: false,
|
101
|
-
// Node is open/expanded
|
102
|
-
isSelected: false // Node is selected (checkbox)
|
103
|
-
}),
|
104
|
-
computed: {
|
105
|
-
disabled() {
|
106
|
-
return getObjectValueByPath(this.item, this.itemDisabled) || !this.disablePerNode && this.parentIsDisabled && this.selectionType === 'leaf';
|
107
|
-
},
|
108
|
-
key() {
|
109
|
-
return getObjectValueByPath(this.item, this.itemKey);
|
110
|
-
},
|
111
|
-
children() {
|
112
|
-
const children = getObjectValueByPath(this.item, this.itemChildren);
|
113
|
-
return children && children.filter(child => !this.treeview.isExcluded(getObjectValueByPath(child, this.itemKey)));
|
114
|
-
},
|
115
|
-
text() {
|
116
|
-
return getObjectValueByPath(this.item, this.itemText);
|
117
|
-
},
|
118
|
-
scopedProps() {
|
119
|
-
return {
|
120
|
-
item: this.item,
|
121
|
-
leaf: !this.children,
|
122
|
-
selected: this.isSelected,
|
123
|
-
indeterminate: this.isIndeterminate,
|
124
|
-
active: this.isActive,
|
125
|
-
open: this.isOpen
|
126
|
-
};
|
127
|
-
},
|
128
|
-
computedIcon() {
|
129
|
-
if (this.isIndeterminate) return this.indeterminateIcon;else if (this.isSelected) return this.onIcon;else return this.offIcon;
|
130
|
-
},
|
131
|
-
hasChildren() {
|
132
|
-
return !!this.children && (!!this.children.length || !!this.loadChildren);
|
133
|
-
}
|
134
|
-
},
|
135
|
-
created() {
|
136
|
-
this.treeview.register(this);
|
137
|
-
},
|
138
|
-
beforeDestroy() {
|
139
|
-
this.treeview.unregister(this);
|
140
|
-
},
|
141
|
-
methods: {
|
142
|
-
checkChildren() {
|
143
|
-
return new Promise(resolve => {
|
144
|
-
// TODO: Potential issue with always trying
|
145
|
-
// to load children if response is empty?
|
146
|
-
if (!this.children || this.children.length || !this.loadChildren || this.hasLoaded) return resolve();
|
147
|
-
this.isLoading = true;
|
148
|
-
resolve(this.loadChildren(this.item));
|
149
|
-
}).then(() => {
|
150
|
-
this.isLoading = false;
|
151
|
-
this.hasLoaded = true;
|
152
|
-
});
|
153
|
-
},
|
154
|
-
open() {
|
155
|
-
this.isOpen = !this.isOpen;
|
156
|
-
this.treeview.updateOpen(this.key, this.isOpen);
|
157
|
-
this.treeview.emitOpen();
|
158
|
-
},
|
159
|
-
genLabel() {
|
160
|
-
const children = [];
|
161
|
-
if (this.$scopedSlots.label) children.push(this.$scopedSlots.label(this.scopedProps));else children.push(this.text);
|
162
|
-
return this.$createElement('div', {
|
163
|
-
slot: 'label',
|
164
|
-
staticClass: 'v-treeview-node__label'
|
165
|
-
}, children);
|
166
|
-
},
|
167
|
-
genPrependSlot() {
|
168
|
-
if (!this.$scopedSlots.prepend) return null;
|
169
|
-
return this.$createElement('div', {
|
170
|
-
staticClass: 'v-treeview-node__prepend'
|
171
|
-
}, this.$scopedSlots.prepend(this.scopedProps));
|
172
|
-
},
|
173
|
-
genAppendSlot() {
|
174
|
-
if (!this.$scopedSlots.append) return null;
|
175
|
-
return this.$createElement('div', {
|
176
|
-
staticClass: 'v-treeview-node__append'
|
177
|
-
}, this.$scopedSlots.append(this.scopedProps));
|
178
|
-
},
|
179
|
-
genContent() {
|
180
|
-
const children = [this.genPrependSlot(), this.genLabel(), this.genAppendSlot()];
|
181
|
-
return this.$createElement('div', {
|
182
|
-
staticClass: 'v-treeview-node__content'
|
183
|
-
}, children);
|
184
|
-
},
|
185
|
-
genToggle() {
|
186
|
-
return this.$createElement(VIcon, {
|
187
|
-
staticClass: 'v-treeview-node__toggle',
|
188
|
-
class: {
|
189
|
-
'v-treeview-node__toggle--open': this.isOpen,
|
190
|
-
'v-treeview-node__toggle--loading': this.isLoading
|
191
|
-
},
|
192
|
-
slot: 'prepend',
|
193
|
-
on: {
|
194
|
-
click: e => {
|
195
|
-
e.stopPropagation();
|
196
|
-
if (this.isLoading) return;
|
197
|
-
this.checkChildren().then(() => this.open());
|
198
|
-
}
|
199
|
-
}
|
200
|
-
}, [this.isLoading ? this.loadingIcon : this.expandIcon]);
|
201
|
-
},
|
202
|
-
genCheckbox() {
|
203
|
-
return this.$createElement(VIcon, {
|
204
|
-
staticClass: 'v-treeview-node__checkbox',
|
205
|
-
props: {
|
206
|
-
color: this.isSelected || this.isIndeterminate ? this.selectedColor : undefined,
|
207
|
-
disabled: this.disabled
|
208
|
-
},
|
209
|
-
on: {
|
210
|
-
click: e => {
|
211
|
-
e.stopPropagation();
|
212
|
-
if (this.isLoading) return;
|
213
|
-
this.checkChildren().then(() => {
|
214
|
-
// We nextTick here so that items watch in VTreeview has a chance to run first
|
215
|
-
this.$nextTick(() => {
|
216
|
-
this.isSelected = !this.isSelected;
|
217
|
-
this.isIndeterminate = false;
|
218
|
-
this.treeview.updateSelected(this.key, this.isSelected);
|
219
|
-
this.treeview.emitSelected();
|
220
|
-
});
|
221
|
-
});
|
222
|
-
}
|
223
|
-
}
|
224
|
-
}, [this.computedIcon]);
|
225
|
-
},
|
226
|
-
genLevel(level) {
|
227
|
-
return createRange(level).map(() => this.$createElement('div', {
|
228
|
-
staticClass: 'v-treeview-node__level'
|
229
|
-
}));
|
230
|
-
},
|
231
|
-
genNode() {
|
232
|
-
const children = [this.genContent()];
|
233
|
-
if (this.selectable) children.unshift(this.genCheckbox());
|
234
|
-
if (this.hasChildren) {
|
235
|
-
children.unshift(this.genToggle());
|
236
|
-
} else {
|
237
|
-
children.unshift(...this.genLevel(1));
|
238
|
-
}
|
239
|
-
children.unshift(...this.genLevel(this.level));
|
240
|
-
return this.$createElement('div', this.setTextColor(this.isActive && this.color, {
|
241
|
-
staticClass: 'v-treeview-node__root',
|
242
|
-
class: {
|
243
|
-
[this.activeClass]: this.isActive
|
244
|
-
},
|
245
|
-
on: {
|
246
|
-
click: () => {
|
247
|
-
if (this.openOnClick && this.hasChildren) {
|
248
|
-
this.checkChildren().then(this.open);
|
249
|
-
} else if (this.activatable && !this.disabled) {
|
250
|
-
this.isActive = !this.isActive;
|
251
|
-
this.treeview.updateActive(this.key, this.isActive);
|
252
|
-
this.treeview.emitActive();
|
253
|
-
}
|
254
|
-
}
|
255
|
-
}
|
256
|
-
}), children);
|
257
|
-
},
|
258
|
-
genChild(item, parentIsDisabled) {
|
259
|
-
return this.$createElement(VTreeviewNode, {
|
260
|
-
key: getObjectValueByPath(item, this.itemKey),
|
261
|
-
props: {
|
262
|
-
activatable: this.activatable,
|
263
|
-
activeClass: this.activeClass,
|
264
|
-
item,
|
265
|
-
selectable: this.selectable,
|
266
|
-
selectedColor: this.selectedColor,
|
267
|
-
color: this.color,
|
268
|
-
disablePerNode: this.disablePerNode,
|
269
|
-
expandIcon: this.expandIcon,
|
270
|
-
indeterminateIcon: this.indeterminateIcon,
|
271
|
-
offIcon: this.offIcon,
|
272
|
-
onIcon: this.onIcon,
|
273
|
-
loadingIcon: this.loadingIcon,
|
274
|
-
itemKey: this.itemKey,
|
275
|
-
itemText: this.itemText,
|
276
|
-
itemDisabled: this.itemDisabled,
|
277
|
-
itemChildren: this.itemChildren,
|
278
|
-
loadChildren: this.loadChildren,
|
279
|
-
transition: this.transition,
|
280
|
-
openOnClick: this.openOnClick,
|
281
|
-
rounded: this.rounded,
|
282
|
-
shaped: this.shaped,
|
283
|
-
level: this.level + 1,
|
284
|
-
selectionType: this.selectionType,
|
285
|
-
parentIsDisabled
|
286
|
-
},
|
287
|
-
scopedSlots: this.$scopedSlots
|
288
|
-
});
|
289
|
-
},
|
290
|
-
genChildrenWrapper() {
|
291
|
-
if (!this.isOpen || !this.children) return null;
|
292
|
-
const children = [this.children.map(c => this.genChild(c, this.disabled))];
|
293
|
-
return this.$createElement('div', {
|
294
|
-
staticClass: 'v-treeview-node__children'
|
295
|
-
}, children);
|
296
|
-
},
|
297
|
-
genTransition() {
|
298
|
-
return this.$createElement(VExpandTransition, [this.genChildrenWrapper()]);
|
299
|
-
}
|
300
|
-
},
|
301
|
-
render(h) {
|
302
|
-
const children = [this.genNode()];
|
303
|
-
if (this.transition) children.push(this.genTransition());else children.push(this.genChildrenWrapper());
|
304
|
-
return h('div', {
|
305
|
-
staticClass: 'v-treeview-node',
|
306
|
-
class: {
|
307
|
-
'v-treeview-node--leaf': !this.hasChildren,
|
308
|
-
'v-treeview-node--click': this.openOnClick,
|
309
|
-
'v-treeview-node--disabled': this.disabled,
|
310
|
-
'v-treeview-node--rounded': this.rounded,
|
311
|
-
'v-treeview-node--shaped': this.shaped,
|
312
|
-
'v-treeview-node--selected': this.isSelected
|
313
|
-
},
|
314
|
-
attrs: {
|
315
|
-
'aria-expanded': String(this.isOpen)
|
316
|
-
}
|
317
|
-
}, children);
|
318
|
-
}
|
319
|
-
});
|
320
|
-
export default VTreeviewNode;
|
321
|
-
//# sourceMappingURL=VTreeviewNode.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"VTreeviewNode.mjs","names":["VExpandTransition","VIcon","inject","RegistrableInject","Colorable","mixins","getObjectValueByPath","createRange","baseMixins","VTreeviewNodeProps","activatable","Boolean","activeClass","type","String","default","color","disablePerNode","expandIcon","indeterminateIcon","itemChildren","itemDisabled","itemKey","itemText","loadChildren","Function","loadingIcon","offIcon","onIcon","openOnClick","rounded","selectable","selectedColor","shaped","transition","selectionType","validator","v","includes","VTreeviewNode","extend","name","treeview","props","level","Number","item","Object","parentIsDisabled","data","hasLoaded","isActive","isIndeterminate","isLoading","isOpen","isSelected","computed","disabled","key","children","filter","child","isExcluded","text","scopedProps","leaf","selected","indeterminate","active","open","computedIcon","hasChildren","length","created","register","beforeDestroy","unregister","methods","checkChildren","Promise","resolve","then","updateOpen","emitOpen","genLabel","$scopedSlots","label","push","$createElement","slot","staticClass","genPrependSlot","prepend","genAppendSlot","append","genContent","genToggle","class","on","click","e","stopPropagation","genCheckbox","undefined","$nextTick","updateSelected","emitSelected","genLevel","map","genNode","unshift","setTextColor","updateActive","emitActive","genChild","scopedSlots","genChildrenWrapper","c","genTransition","render","h","attrs"],"sources":["../../../src/components/VTreeview/VTreeviewNode.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\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<options>().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 beforeDestroy () {\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.$scopedSlots.label) children.push(this.$scopedSlots.label(this.scopedProps))\n else children.push(this.text)\n\n return this.$createElement('div', {\n slot: 'label',\n staticClass: 'v-treeview-node__label',\n }, children)\n },\n genPrependSlot () {\n if (!this.$scopedSlots.prepend) return null\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__prepend',\n }, this.$scopedSlots.prepend(this.scopedProps))\n },\n genAppendSlot () {\n if (!this.$scopedSlots.append) return null\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__append',\n }, this.$scopedSlots.append(this.scopedProps))\n },\n genContent () {\n const children = [\n this.genPrependSlot(),\n this.genLabel(),\n this.genAppendSlot(),\n ]\n\n return this.$createElement('div', {\n staticClass: 'v-treeview-node__content',\n }, children)\n },\n genToggle () {\n return this.$createElement(VIcon, {\n staticClass: 'v-treeview-node__toggle',\n class: {\n 'v-treeview-node__toggle--open': this.isOpen,\n 'v-treeview-node__toggle--loading': this.isLoading,\n },\n slot: 'prepend',\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n\n if (this.isLoading) return\n\n this.checkChildren().then(() => this.open())\n },\n },\n }, [this.isLoading ? this.loadingIcon : this.expandIcon])\n },\n genCheckbox () {\n return this.$createElement(VIcon, {\n staticClass: 'v-treeview-node__checkbox',\n props: {\n color: this.isSelected || this.isIndeterminate ? this.selectedColor : undefined,\n disabled: this.disabled,\n },\n on: {\n click: (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 },\n }, [this.computedIcon])\n },\n genLevel (level: number) {\n return createRange(level).map(() => this.$createElement('div', {\n staticClass: '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 this.$createElement('div', this.setTextColor(this.isActive && this.color, {\n staticClass: 'v-treeview-node__root',\n class: {\n [this.activeClass]: this.isActive,\n },\n on: {\n click: () => {\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 },\n }), children)\n },\n genChild (item: any, parentIsDisabled: boolean) {\n return this.$createElement(VTreeviewNode, {\n key: getObjectValueByPath(item, this.itemKey),\n props: {\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 },\n scopedSlots: this.$scopedSlots,\n })\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 this.$createElement('div', {\n staticClass: 'v-treeview-node__children',\n }, children)\n },\n genTransition () {\n return this.$createElement(VExpandTransition, [this.genChildrenWrapper()])\n },\n },\n\n render (h): 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 staticClass: 'v-treeview-node',\n class: {\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 attrs: {\n 'aria-expanded': String(this.isOpen),\n },\n }, children)\n },\n})\n\nexport default VTreeviewNode\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,18 +0,0 @@
|
|
1
|
-
@mixin treeview-shaped($size, $margin)
|
2
|
-
.v-treeview-node__root,
|
3
|
-
.v-treeview-node__root:before
|
4
|
-
border-bottom-right-radius: #{$size * .5} !important
|
5
|
-
border-top-right-radius: #{$size * .5} !important
|
6
|
-
|
7
|
-
.v-treeview-node__root
|
8
|
-
margin-top: $margin
|
9
|
-
margin-bottom: $margin
|
10
|
-
|
11
|
-
@mixin treeview-rounded($size, $margin)
|
12
|
-
.v-treeview-node__root,
|
13
|
-
.v-treeview-node__root:before
|
14
|
-
border-radius: #{$size * .5} !important
|
15
|
-
|
16
|
-
.v-treeview-node__root
|
17
|
-
margin-top: $margin
|
18
|
-
margin-bottom: $margin
|
@@ -1,10 +0,0 @@
|
|
1
|
-
@import '../../styles/styles.sass';
|
2
|
-
|
3
|
-
$treeview-transition: .2s map-get($transition, 'linear-out-slow-in') !default;
|
4
|
-
$treeview-label-font-size: inherit !default;
|
5
|
-
$treeview-node-height: 48px !default;
|
6
|
-
$treeview-node-height-dense: 40px !default;
|
7
|
-
$treeview-node-shaped-margin: 8px !default;
|
8
|
-
$treeview-node-padding: 8px !default;
|
9
|
-
$treeview-node-margin: 6px !default;
|
10
|
-
$treeview-node-level-width: 24px !default;
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["VTreeview","VTreeviewNode","$_vuetify_subcomponents"],"sources":["../../../src/components/VTreeview/index.ts"],"sourcesContent":["import VTreeview from './VTreeview'\nimport VTreeviewNode from './VTreeviewNode'\n\nexport { VTreeview, VTreeviewNode }\n\nexport default {\n $_vuetify_subcomponents: {\n VTreeview,\n VTreeviewNode,\n },\n}\n"],"mappings":"OAAOA,SAAS;AAAA,OACTC,aAAa;AAEpB,SAASD,SAAS,EAAEC,aAAa;AAEjC,eAAe;EACbC,uBAAuB,EAAE;IACvBF,SAAS;IACTC;EACF;AACF,CAAC","ignoreList":[]}
|
@@ -1,25 +0,0 @@
|
|
1
|
-
// @ts-nocheck
|
2
|
-
/* eslint-disable */
|
3
|
-
import { getObjectValueByPath } from "../../../util/helpers.mjs";
|
4
|
-
export function filterTreeItem(item, search, textKey) {
|
5
|
-
const text = getObjectValueByPath(item, textKey);
|
6
|
-
return text.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;
|
7
|
-
}
|
8
|
-
export function filterTreeItems(filter, item, search, idKey, textKey, childrenKey, excluded) {
|
9
|
-
if (filter(item, search, textKey)) {
|
10
|
-
return true;
|
11
|
-
}
|
12
|
-
const children = getObjectValueByPath(item, childrenKey);
|
13
|
-
if (children) {
|
14
|
-
let match = false;
|
15
|
-
for (let i = 0; i < children.length; i++) {
|
16
|
-
if (filterTreeItems(filter, children[i], search, idKey, textKey, childrenKey, excluded)) {
|
17
|
-
match = true;
|
18
|
-
}
|
19
|
-
}
|
20
|
-
if (match) return true;
|
21
|
-
}
|
22
|
-
excluded.add(getObjectValueByPath(item, idKey));
|
23
|
-
return false;
|
24
|
-
}
|
25
|
-
//# sourceMappingURL=filterTreeItems.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"filterTreeItems.mjs","names":["getObjectValueByPath","filterTreeItem","item","search","textKey","text","toLocaleLowerCase","indexOf","filterTreeItems","filter","idKey","childrenKey","excluded","children","match","i","length","add"],"sources":["../../../../src/components/VTreeview/util/filterTreeItems.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport { getObjectValueByPath } from '../../../util/helpers'\nimport { TreeviewItemFunction } from 'vuetify/types'\n\nexport function filterTreeItem (item: object, search: string, textKey: string): boolean {\n const text = getObjectValueByPath(item, textKey)\n\n return text.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1\n}\n\nexport function filterTreeItems (\n filter: TreeviewItemFunction,\n item: any,\n search: string,\n idKey: string,\n textKey: string,\n childrenKey: string,\n excluded: Set<string | number>\n): boolean {\n if (filter(item, search, textKey)) {\n return true\n }\n\n const children = getObjectValueByPath(item, childrenKey)\n\n if (children) {\n let match = false\n for (let i = 0; i < children.length; i++) {\n if (filterTreeItems(filter, children[i], search, idKey, textKey, childrenKey, excluded)) {\n match = true\n }\n }\n\n if (match) return true\n }\n\n excluded.add(getObjectValueByPath(item, idKey))\n\n return false\n}\n"],"mappings":"AAAA;AACA;AAAA,SAESA,oBAAoB;AAG7B,OAAO,SAASC,cAAcA,CAAEC,IAAY,EAAEC,MAAc,EAAEC,OAAe,EAAW;EACtF,MAAMC,IAAI,GAAGL,oBAAoB,CAACE,IAAI,EAAEE,OAAO,CAAC;EAEhD,OAAOC,IAAI,CAACC,iBAAiB,CAAC,CAAC,CAACC,OAAO,CAACJ,MAAM,CAACG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1E;AAEA,OAAO,SAASE,eAAeA,CAC7BC,MAA4B,EAC5BP,IAAS,EACTC,MAAc,EACdO,KAAa,EACbN,OAAe,EACfO,WAAmB,EACnBC,QAA8B,EACrB;EACT,IAAIH,MAAM,CAACP,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC,EAAE;IACjC,OAAO,IAAI;EACb;EAEA,MAAMS,QAAQ,GAAGb,oBAAoB,CAACE,IAAI,EAAES,WAAW,CAAC;EAExD,IAAIE,QAAQ,EAAE;IACZ,IAAIC,KAAK,GAAG,KAAK;IACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,QAAQ,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;MACxC,IAAIP,eAAe,CAACC,MAAM,EAAEI,QAAQ,CAACE,CAAC,CAAC,EAAEZ,MAAM,EAAEO,KAAK,EAAEN,OAAO,EAAEO,WAAW,EAAEC,QAAQ,CAAC,EAAE;QACvFE,KAAK,GAAG,IAAI;MACd;IACF;IAEA,IAAIA,KAAK,EAAE,OAAO,IAAI;EACxB;EAEAF,QAAQ,CAACK,GAAG,CAACjB,oBAAoB,CAACE,IAAI,EAAEQ,KAAK,CAAC,CAAC;EAE/C,OAAO,KAAK;AACd","ignoreList":[]}
|