yuyeon 0.2.2 → 0.2.3-rc.0
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/style.css +1 -1
- package/dist/yuyeon.js +1801 -1848
- package/dist/yuyeon.umd.cjs +3 -3
- package/lib/components/dialog/YDialog.mjs +1 -1
- package/lib/components/dialog/YDialog.mjs.map +1 -1
- package/lib/components/switch/YSwitch.mjs +162 -209
- package/lib/components/switch/YSwitch.mjs.map +1 -1
- package/lib/components/switch/YSwitch.scss +211 -204
- package/lib/components/tree-view/YTreeView.mjs +1 -1
- package/lib/components/tree-view/YTreeView.mjs.map +1 -1
- package/lib/index.mjs +3 -2
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
- package/types/components/dropdown/YDropdown.d.ts +12 -12
- package/types/components/select/YSelect.d.ts +13 -13
- package/types/components/switch/YSwitch.d.ts +101 -30
|
@@ -1,204 +1,211 @@
|
|
|
1
|
-
@use '../../styles/variables';
|
|
2
|
-
|
|
3
|
-
.y-switch {
|
|
4
|
-
--y-switch__color: var(--y-theme-primary);
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
.y-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
&__state
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
1
|
+
@use '../../styles/variables';
|
|
2
|
+
|
|
3
|
+
.y-switch {
|
|
4
|
+
--y-switch__color: var(--y-theme-primary);
|
|
5
|
+
--y-switch__color-rgb: var(--y-theme-primary-rgb);
|
|
6
|
+
font-size: 1rem;
|
|
7
|
+
|
|
8
|
+
&__slot {
|
|
9
|
+
display: flex;
|
|
10
|
+
cursor: pointer;
|
|
11
|
+
align-items: center;
|
|
12
|
+
color: inherit;
|
|
13
|
+
min-height: inherit;
|
|
14
|
+
position: relative;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&__input {
|
|
18
|
+
width: 3em;
|
|
19
|
+
height: 1.5em;
|
|
20
|
+
position: relative;
|
|
21
|
+
display: inline-flex;
|
|
22
|
+
user-select: none;
|
|
23
|
+
color: inherit;
|
|
24
|
+
flex: 0 0 auto;
|
|
25
|
+
|
|
26
|
+
input[role='switch'] {
|
|
27
|
+
position: absolute;
|
|
28
|
+
opacity: 0;
|
|
29
|
+
width: 100%;
|
|
30
|
+
height: 100%;
|
|
31
|
+
cursor: pointer;
|
|
32
|
+
user-select: none;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&:not(&--loading) &__input:active &__thumb {
|
|
37
|
+
transform: scaleX(0.94);
|
|
38
|
+
transform-origin: left;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&.y-switch--active:not(&--loading) &__input:active &__thumb {
|
|
42
|
+
transform-origin: right;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&__track {
|
|
46
|
+
width: 100%;
|
|
47
|
+
height: 100%;
|
|
48
|
+
border-radius: 2em;
|
|
49
|
+
background-color: var(--y-theme-surface-variant);
|
|
50
|
+
position: absolute;
|
|
51
|
+
left: 0;
|
|
52
|
+
top: 0;
|
|
53
|
+
transition: 300ms;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&__thumb {
|
|
57
|
+
width: 1.1em;
|
|
58
|
+
height: 1.1em;
|
|
59
|
+
align-self: center;
|
|
60
|
+
left: 0.185em;
|
|
61
|
+
border-radius: 50%;
|
|
62
|
+
display: flex;
|
|
63
|
+
justify-content: center;
|
|
64
|
+
align-items: center;
|
|
65
|
+
background-color: var(--y-theme-surface);
|
|
66
|
+
pointer-events: none;
|
|
67
|
+
position: relative;
|
|
68
|
+
transition: 180ms cubic-bezier(0.78, 0.04, 0.9, 0.18);
|
|
69
|
+
will-change: left, transform;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
&__spinner {
|
|
73
|
+
position: relative;
|
|
74
|
+
width: 100%;
|
|
75
|
+
height: 100%;
|
|
76
|
+
border-radius: 50%;
|
|
77
|
+
animation: rotate 2s linear infinite;
|
|
78
|
+
contain: paint;
|
|
79
|
+
|
|
80
|
+
@keyframes spinner-blur {
|
|
81
|
+
0% {
|
|
82
|
+
filter: blur(4px);
|
|
83
|
+
}
|
|
84
|
+
50% {
|
|
85
|
+
filter: blur(1px);
|
|
86
|
+
}
|
|
87
|
+
100% {
|
|
88
|
+
filter: blur(4px);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&:before {
|
|
93
|
+
content: '';
|
|
94
|
+
position: absolute;
|
|
95
|
+
top: 2px;
|
|
96
|
+
left: 2px;
|
|
97
|
+
right: 2px;
|
|
98
|
+
bottom: 2px;
|
|
99
|
+
border-radius: 50%;
|
|
100
|
+
border-width: 2px 2px 0 0;
|
|
101
|
+
border-style: solid;
|
|
102
|
+
border-color: var(--y-switch__color) transparent;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
&:after {
|
|
106
|
+
content: '';
|
|
107
|
+
position: absolute;
|
|
108
|
+
left: 0;
|
|
109
|
+
top: 0;
|
|
110
|
+
right: 0;
|
|
111
|
+
bottom: 0;
|
|
112
|
+
background: linear-gradient(
|
|
113
|
+
0deg,
|
|
114
|
+
transparent 60%,
|
|
115
|
+
rgba(var(--y-switch__color), 0.4)
|
|
116
|
+
);
|
|
117
|
+
filter: blur(4px);
|
|
118
|
+
animation: spinner-blur 3s infinite;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
&--active {
|
|
123
|
+
.y-switch__track {
|
|
124
|
+
background-color: var(--y-switch__color);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.y-switch__thumb {
|
|
128
|
+
left: calc(100% - 1.1em - 0.24em);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
&--active:not(&--loading):active &__thumb {
|
|
133
|
+
left: 1.8em;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
&--focused {
|
|
137
|
+
.y-switch__thumb:before {
|
|
138
|
+
content: '';
|
|
139
|
+
position: absolute;
|
|
140
|
+
top: 2px;
|
|
141
|
+
bottom: 2px;
|
|
142
|
+
left: 2px;
|
|
143
|
+
right: 2px;
|
|
144
|
+
border-radius: 50%;
|
|
145
|
+
background-color: rgba(var(--y-switch__color-rgb), 0.4);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
&--stick-out {
|
|
150
|
+
.y-switch__thumb {
|
|
151
|
+
box-shadow:
|
|
152
|
+
2px 2px 5px -2px rgba(var(--y-theme-shadow-rgb, 0, 0, 0), 0.54),
|
|
153
|
+
1px 1px 4px rgba(var(--y-theme-shadow-rgb, 0, 0, 0), 0.12),
|
|
154
|
+
0 0 0 1px rgba(var(--y-theme-shadow-rgb, 0, 0, 0), 0.08);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.y-switch__track {
|
|
158
|
+
width: 80%;
|
|
159
|
+
height: 74%;
|
|
160
|
+
top: 50%;
|
|
161
|
+
left: 50%;
|
|
162
|
+
transform: translate(-50%, -50%);
|
|
163
|
+
box-shadow: inset 0 0 4px -1px rgba(var(--y-theme-shadow-rgb, 0, 0, 0), 0.34);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
&--disabled {
|
|
168
|
+
opacity: 0.8;
|
|
169
|
+
filter: brightness(0.88);
|
|
170
|
+
|
|
171
|
+
.y-switch__thumb {
|
|
172
|
+
opacity: 0.4;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
&--disabled &__slot,
|
|
176
|
+
&--disabled &__input input {
|
|
177
|
+
cursor: default;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
&__state {
|
|
181
|
+
position: relative;
|
|
182
|
+
width: 100%;
|
|
183
|
+
height: 100%;
|
|
184
|
+
contain: content;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
&__state-label {
|
|
188
|
+
font-size: 12px;
|
|
189
|
+
color: var(--y-theme-on-primary);
|
|
190
|
+
position: absolute;
|
|
191
|
+
height: 100%;
|
|
192
|
+
display: flex;
|
|
193
|
+
align-items: center;
|
|
194
|
+
transition: transform 180ms cubic-bezier(0.16, 0.85, 0.36, 0.96);
|
|
195
|
+
|
|
196
|
+
&--on {
|
|
197
|
+
left: -40px;
|
|
198
|
+
}
|
|
199
|
+
&--off {
|
|
200
|
+
right: 10px;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
&--active &__state-label {
|
|
205
|
+
transform: translateX(50px);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
&--stick-out &__state-label--off {
|
|
209
|
+
right: 7px;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
@@ -147,7 +147,7 @@ export const YTreeView = defineComponent({
|
|
|
147
147
|
expandedSet.value.add(key);
|
|
148
148
|
}
|
|
149
149
|
if (nodes.value[key].selected) {
|
|
150
|
-
|
|
150
|
+
selectedSet.value.add(key);
|
|
151
151
|
}
|
|
152
152
|
if (nodes.value[key].active) {
|
|
153
153
|
activeSet.value.add(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YTreeView.mjs","names":["computed","defineComponent","onMounted","provide","ref","shallowRef","watch","watchEffect","useModelDuplex","useRender","differenceBetween","isColorValue","deepEqual","getObjectValueByPath","hasOwnProperty","chooseProps","debounce","YProgressBar","YTreeViewNode","pressYTreeViewNodeProps","filterTreeItem","filterTreeItems","getKeys","treeViewNodeProps","YTreeView","name","props","expanded","type","Array","default","active","multipleActive","Boolean","activeStrategy","String","selected","selectStrategy","returnItem","defaultExpand","Number","filter","Function","searchDebounceWait","emits","setup","_ref","slots","emit","expose","nodes","expandedSet","Set","selectedSet","activeSet","excludedSet","filterItemsFn","excludeItem","expandedCache","searchLoading","items","search","arguments","length","undefined","excluded","value","diff","forEach","key","updateExpanded","item","itemKey","itemText","itemChildren","expand","getDescendants","descendants","childKeys","push","remains","slice","childKey","splice","getNodeKey","itemOrKey","updateNodes","parentKey","level","children","exist","existNode","vnode","indeterminate","node","map","child","add","issueVnodeState","to","isArray","delete","neo","deep","until","Object","entries","_ref2","emitExpanded","updateActive","event","inactiveKey","requiredActive","size","activeSingleModifier","getModifierState","descendant","updateSelected","arr","emitActive","emitSelected","stateWatcher","stateSet","updater","emitter","valuesOfKey","v","old","oldKeys","keys","nodeKey","neoKeys","k","oldSelected","oldActive","clear","flush","isExcluded","has","register","renderLeaves","leaf","classes","styles","color","activeColor","activeValue","selectedValue","_createVNode","_Fragment","_mergeProps","_createTextVNode"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import {\r\n type PropType,\r\n type Ref,\r\n type VNode,\r\n computed,\r\n defineComponent,\r\n onMounted,\r\n provide,\r\n ref,\r\n shallowRef,\r\n watch,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { useModelDuplex } from '@/composables/communication';\r\nimport { useRender } from '@/composables/component';\r\nimport { CandidateKey } from '@/types';\r\nimport { differenceBetween } from '@/util/array';\r\nimport { isColorValue } from '@/util/color';\r\nimport { deepEqual, getObjectValueByPath, hasOwnProperty } from '@/util/common';\r\nimport { chooseProps } from '@/util/component';\r\nimport { debounce } from '@/util/debounce';\r\n\r\nimport { YProgressBar } from '../progress-bar';\r\nimport { YTreeViewNode, pressYTreeViewNodeProps } from './YTreeViewNode';\r\nimport { NodeState, TreeviewFilterFn } from './types';\r\nimport { filterTreeItem, filterTreeItems, getKeys } from './util';\r\n\r\nimport './YTreeView.scss';\r\n\r\nconst treeViewNodeProps = pressYTreeViewNodeProps();\r\n\r\nexport const YTreeView = defineComponent({\r\n name: 'YTreeView',\r\n props: {\r\n expanded: {\r\n type: [Array] as PropType<CandidateKey[]>,\r\n default: () => [],\r\n },\r\n active: {\r\n type: [Array] as PropType<CandidateKey[]>,\r\n default: () => [],\r\n },\r\n multipleActive: Boolean,\r\n activeStrategy: {\r\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\r\n default: 'independent',\r\n },\r\n selected: {\r\n type: [Array] as PropType<CandidateKey[]>,\r\n default: () => [],\r\n },\r\n selectStrategy: {\r\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\r\n default: 'leaf',\r\n },\r\n returnItem: Boolean,\r\n defaultExpand: [Boolean, String, Number],\r\n filter: Function as PropType<TreeviewFilterFn>,\r\n searchDebounceWait: {\r\n type: Number as PropType<number>,\r\n default: 700,\r\n },\r\n ...treeViewNodeProps,\r\n },\r\n emits: ['update:expanded', 'update:active', 'update:selected'],\r\n setup(props, { slots, emit, expose }) {\r\n const nodes = ref<Record<CandidateKey, any>>({});\r\n\r\n const expanded = useModelDuplex(props, 'expanded');\r\n const active = useModelDuplex(props, 'active');\r\n const selected = useModelDuplex(props, 'selected');\r\n\r\n const expandedSet = ref(new Set<CandidateKey>());\r\n const selectedSet = ref(new Set<CandidateKey>());\r\n const activeSet = ref(new Set<CandidateKey>());\r\n const excludedSet = ref(new Set<CandidateKey>());\r\n const filterItemsFn = shallowRef(\r\n debounce(excludeItem, props.searchDebounceWait),\r\n );\r\n const expandedCache = ref<CandidateKey[]>([]);\r\n const searchLoading = shallowRef(false);\r\n\r\n function excludeItem(items: any[], search = '', filter = filterTreeItem) {\r\n const excluded = new Set<CandidateKey>();\r\n if (!search) {\r\n searchLoading.value = false;\r\n excludedSet.value = excluded;\r\n const diff = differenceBetween(expandedCache.value, [\r\n ...expandedSet.value,\r\n ]);\r\n diff.forEach((key) => {\r\n updateExpanded(key, false);\r\n });\r\n expandedCache.value.forEach((key) => {\r\n updateExpanded(key, true);\r\n });\r\n return;\r\n }\r\n for (const item of items) {\r\n filterTreeItems(\r\n filter,\r\n item,\r\n search ?? '',\r\n props.itemKey,\r\n props.itemText,\r\n props.itemChildren as string,\r\n excluded,\r\n );\r\n }\r\n excludedSet.value = excluded;\r\n searchLoading.value = false;\r\n expand();\r\n }\r\n\r\n watchEffect(() => {\r\n searchLoading.value = true;\r\n filterItemsFn.value(props.items, props.search, props.filter);\r\n });\r\n\r\n // Util Methods\r\n function getDescendants(key: CandidateKey) {\r\n const descendants: CandidateKey[] = [];\r\n const { childKeys } = nodes.value[key];\r\n descendants.push(...childKeys);\r\n const remains: CandidateKey[] = childKeys.slice();\r\n\r\n while (remains.length > 0) {\r\n const childKey: CandidateKey = remains.splice(0, 1)[0];\r\n const item = nodes.value[childKey];\r\n if (item) {\r\n descendants.push(...item.childKeys);\r\n remains.push(...item.childKeys);\r\n }\r\n }\r\n\r\n return descendants;\r\n }\r\n\r\n function getNodeKey(itemOrKey: any) {\r\n return props.returnItem\r\n ? getObjectValueByPath(itemOrKey, props.itemKey)\r\n : itemOrKey;\r\n }\r\n\r\n // State Methods\r\n function updateNodes(\r\n items: any[],\r\n parentKey: CandidateKey | null = null,\r\n level = 0,\r\n ) {\r\n for (const item of items) {\r\n const key = getObjectValueByPath(item, props.itemKey);\r\n const children =\r\n getObjectValueByPath(item, props.itemChildren as string) ?? [];\r\n const exist = hasOwnProperty(nodes.value, key);\r\n const existNode = exist\r\n ? nodes.value[key]\r\n : {\r\n vnode: null,\r\n selected: false,\r\n indeterminate: false,\r\n active: false,\r\n expanded: false,\r\n };\r\n const node: NodeState = {\r\n vnode: existNode.vnode,\r\n item,\r\n level,\r\n parentKey,\r\n childKeys: children.map((child: any) =>\r\n getObjectValueByPath(child, props.itemKey),\r\n ),\r\n expanded: children.length > 0 && existNode.expanded,\r\n active: existNode.active,\r\n indeterminate: existNode.indeterminate,\r\n selected: existNode.selected,\r\n };\r\n\r\n updateNodes(children, key, level + 1);\r\n\r\n nodes.value[key] = node;\r\n if (nodes.value[key].expanded) {\r\n expandedSet.value.add(key);\r\n }\r\n if (nodes.value[key].selected) {\r\n expandedSet.value.add(key);\r\n }\r\n if (nodes.value[key].active) {\r\n activeSet.value.add(key);\r\n }\r\n\r\n issueVnodeState(key);\r\n }\r\n }\r\n\r\n function updateExpanded(key: CandidateKey, to: boolean) {\r\n if (!(key in nodes.value)) return;\r\n const node = nodes.value[key];\r\n const children = getObjectValueByPath(\r\n node.item,\r\n props.itemChildren as string,\r\n );\r\n if (Array.isArray(children) && children.length > 0) {\r\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\r\n node.expanded = to;\r\n issueVnodeState(key);\r\n }\r\n }\r\n\r\n watch(\r\n expandedSet,\r\n (neo) => {\r\n if (!props.search) {\r\n expandedCache.value = [...neo];\r\n }\r\n },\r\n { deep: true },\r\n );\r\n\r\n function expand(until: boolean | string | number = true) {\r\n Object.entries(nodes.value).forEach(([key, node]) => {\r\n if (until === true || until >= node.level) {\r\n updateExpanded(key, true);\r\n }\r\n });\r\n emitExpanded();\r\n return expandedSet.value;\r\n }\r\n\r\n function updateActive(key: CandidateKey, to: boolean, event?: MouseEvent) {\r\n if (!(key in nodes.value)) return;\r\n const node = nodes.value[key];\r\n let inactiveKey = !to ? key : '';\r\n if (!props.multipleActive) {\r\n [inactiveKey] = [...activeSet.value];\r\n }\r\n if (to) {\r\n activeSet.value.add(key);\r\n node.active = true;\r\n issueVnodeState(key);\r\n } else {\r\n if (\r\n props.requiredActive &&\r\n activeSet.value.size === 1 &&\r\n key === inactiveKey\r\n ) {\r\n issueVnodeState(key);\r\n return;\r\n }\r\n }\r\n if (inactiveKey && inactiveKey in nodes.value) {\r\n activeSet.value.delete(inactiveKey);\r\n nodes.value[inactiveKey].active = false;\r\n issueVnodeState(inactiveKey);\r\n }\r\n\r\n if (\r\n props.activeSingleModifier &&\r\n event?.getModifierState(props.activeSingleModifier)\r\n ) {\r\n return;\r\n }\r\n\r\n if (props.multipleActive && props.activeStrategy === 'cascade') {\r\n for (const descendant of getDescendants(key)) {\r\n if (descendant in nodes.value) {\r\n to\r\n ? activeSet.value.add(descendant)\r\n : activeSet.value.delete(descendant);\r\n nodes.value[descendant].active = to;\r\n issueVnodeState(descendant);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function updateSelected(key: CandidateKey, to: boolean) {\r\n if (!(key in nodes.value)) return;\r\n const node = nodes.value[key];\r\n\r\n if (to) {\r\n selectedSet.value.add(key);\r\n node.selected = true;\r\n }\r\n\r\n if (!to && key in nodes.value) {\r\n selectedSet.value.delete(key);\r\n nodes.value[key].selected = false;\r\n issueVnodeState(key);\r\n }\r\n\r\n if (props.selectStrategy === 'cascade') {\r\n for (const descendant of getDescendants(key)) {\r\n if (descendant in nodes.value) {\r\n to\r\n ? selectedSet.value.add(descendant)\r\n : selectedSet.value.delete(descendant);\r\n nodes.value[descendant].selected = to;\r\n issueVnodeState(descendant);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function emitExpanded() {\r\n const arr = [...expandedSet.value];\r\n expanded.value = props.returnItem\r\n ? arr.map((key) => nodes.value[key].item)\r\n : arr;\r\n }\r\n\r\n function emitActive() {\r\n const arr = [...activeSet.value];\r\n active.value = props.returnItem\r\n ? arr.map((key) => nodes.value[key].item)\r\n : arr;\r\n }\r\n\r\n function emitSelected() {\r\n const arr = [...selectedSet.value];\r\n selected.value = props.returnItem\r\n ? arr.map((key) => nodes.value[key].item)\r\n : arr;\r\n }\r\n\r\n function stateWatcher(\r\n value: any[],\r\n stateSet: Ref<Set<CandidateKey>>,\r\n updater: (key: CandidateKey, to: boolean) => void,\r\n emitter: () => void,\r\n ) {\r\n const valuesOfKey = props.returnItem\r\n ? value.map((v) => getObjectValueByPath(v, props.itemKey))\r\n : value;\r\n const old = [...stateSet.value];\r\n if (deepEqual(old, valuesOfKey)) {\r\n return;\r\n }\r\n old.forEach((key) => updater(key, false));\r\n valuesOfKey.forEach((key) => updater(key, true));\r\n emitter();\r\n }\r\n\r\n watch(expanded, (neo) => {\r\n stateWatcher(neo, expandedSet, updateExpanded, emitExpanded);\r\n });\r\n\r\n watch(active, (neo) => {\r\n stateWatcher(neo, activeSet, updateActive, emitActive);\r\n });\r\n\r\n watch(selected, (neo) => {\r\n stateWatcher(neo, selectedSet, updateSelected, emitSelected);\r\n });\r\n\r\n watch(\r\n () => props.items,\r\n (neo: any[]) => {\r\n const oldKeys = Object.keys(nodes.value).map((nodeKey) =>\r\n getObjectValueByPath(nodes.value[nodeKey].item, props.itemKey),\r\n );\r\n const neoKeys = getKeys(\r\n neo,\r\n props.itemKey,\r\n props.itemChildren as string,\r\n );\r\n const diff = differenceBetween(oldKeys, neoKeys);\r\n if (diff.length < 1 && neoKeys.length < oldKeys.length) {\r\n return;\r\n }\r\n diff.forEach((k) => delete nodes.value[k]);\r\n\r\n // init\r\n const oldSelected = [...selectedSet.value];\r\n const oldActive = [...activeSet.value];\r\n selectedSet.value.clear();\r\n expandedSet.value.clear();\r\n activeSet.value.clear();\r\n updateNodes(neo);\r\n if (!deepEqual(oldSelected, [...selectedSet.value])) {\r\n emitSelected();\r\n }\r\n if (!deepEqual(oldActive, [...activeSet.value])) {\r\n emitActive();\r\n }\r\n },\r\n { deep: true, flush: 'sync' },\r\n );\r\n\r\n // Search\r\n function isExcluded(key: CandidateKey) {\r\n return !!props.search && excludedSet.value.has(key);\r\n }\r\n\r\n // Provide & Issue\r\n function issueVnodeState(key: CandidateKey) {\r\n const node = nodes.value[key];\r\n if (node && node.vnode) {\r\n node.vnode.active = node.active;\r\n node.vnode.selected = node.selected;\r\n node.vnode.indeterminate = node.indeterminate;\r\n node.vnode.expanded = node.expanded;\r\n }\r\n }\r\n\r\n function register(key: CandidateKey, vnode: VNode) {\r\n if (nodes.value[key]) {\r\n nodes.value[key].vnode = vnode;\r\n }\r\n\r\n issueVnodeState(key);\r\n }\r\n\r\n updateNodes(props.items);\r\n\r\n provide('tree-view', {\r\n register,\r\n updateExpanded,\r\n updateActive,\r\n updateSelected,\r\n emitExpanded,\r\n emitActive,\r\n emitSelected,\r\n isExcluded,\r\n searchLoading,\r\n });\r\n\r\n const renderLeaves = computed(() => {\r\n return props.items.slice().filter((leaf) => {\r\n return !isExcluded(getObjectValueByPath(leaf, props.itemKey));\r\n });\r\n });\r\n\r\n const classes = computed(() => {\r\n return {\r\n 'y-tree-view': true,\r\n };\r\n });\r\n\r\n const styles = computed(() => {\r\n let color = props.activeColor;\r\n if (props.activeColor && !isColorValue(props.activeColor)) {\r\n color = `var(--y-theme-${props.activeColor})`;\r\n }\r\n return {\r\n [`--y-tree-view__active-color`]: color,\r\n };\r\n });\r\n\r\n onMounted(() => {\r\n if (props.defaultExpand != null && props.defaultExpand !== false) {\r\n expandedCache.value = [...expand(props.defaultExpand)];\r\n } else {\r\n expanded.value.forEach((v: any) => updateExpanded(getNodeKey(v), true));\r\n emitExpanded();\r\n }\r\n\r\n for (const activeValue of props.active.map(getNodeKey)) {\r\n updateActive(activeValue, true);\r\n }\r\n\r\n for (const selectedValue of props.selected.map(getNodeKey)) {\r\n updateSelected(selectedValue, true);\r\n }\r\n });\r\n\r\n expose({\r\n expand,\r\n });\r\n\r\n useRender(() => {\r\n return (\r\n <>\r\n <div class={classes.value} style={styles.value} role=\"tree\">\r\n {searchLoading.value && <YProgressBar indeterminate />}\r\n {renderLeaves.value.length > 0 ? (\r\n renderLeaves.value.slice().map((leaf) => {\r\n return (\r\n <YTreeViewNode\r\n v-slots={slots}\r\n key={getObjectValueByPath(leaf, props.itemKey)}\r\n {...{\r\n ...chooseProps(props, treeViewNodeProps),\r\n item: leaf,\r\n level: 0,\r\n }}\r\n ></YTreeViewNode>\r\n );\r\n })\r\n ) : (\r\n <div class=\"y-tree-view__no-data\">\r\n {slots['no-data'] ? slots['no-data']() : <span>No Data</span>}\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n nodes,\r\n expandedSet,\r\n selectedSet,\r\n activeSet,\r\n excludedSet,\r\n searchLoading,\r\n expandedCache,\r\n };\r\n },\r\n});\r\n\r\nexport type YTreeView = InstanceType<typeof YTreeView>;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YTreeView.mjs","names":["computed","defineComponent","onMounted","provide","ref","shallowRef","watch","watchEffect","useModelDuplex","useRender","differenceBetween","isColorValue","deepEqual","getObjectValueByPath","hasOwnProperty","chooseProps","debounce","YProgressBar","YTreeViewNode","pressYTreeViewNodeProps","filterTreeItem","filterTreeItems","getKeys","treeViewNodeProps","YTreeView","name","props","expanded","type","Array","default","active","multipleActive","Boolean","activeStrategy","String","selected","selectStrategy","returnItem","defaultExpand","Number","filter","Function","searchDebounceWait","emits","setup","_ref","slots","emit","expose","nodes","expandedSet","Set","selectedSet","activeSet","excludedSet","filterItemsFn","excludeItem","expandedCache","searchLoading","items","search","arguments","length","undefined","excluded","value","diff","forEach","key","updateExpanded","item","itemKey","itemText","itemChildren","expand","getDescendants","descendants","childKeys","push","remains","slice","childKey","splice","getNodeKey","itemOrKey","updateNodes","parentKey","level","children","exist","existNode","vnode","indeterminate","node","map","child","add","issueVnodeState","to","isArray","delete","neo","deep","until","Object","entries","_ref2","emitExpanded","updateActive","event","inactiveKey","requiredActive","size","activeSingleModifier","getModifierState","descendant","updateSelected","arr","emitActive","emitSelected","stateWatcher","stateSet","updater","emitter","valuesOfKey","v","old","oldKeys","keys","nodeKey","neoKeys","k","oldSelected","oldActive","clear","flush","isExcluded","has","register","renderLeaves","leaf","classes","styles","color","activeColor","activeValue","selectedValue","_createVNode","_Fragment","_mergeProps","_createTextVNode"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import {\r\n type PropType,\r\n type Ref,\r\n type VNode,\r\n computed,\r\n defineComponent,\r\n onMounted,\r\n provide,\r\n ref,\r\n shallowRef,\r\n watch,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { useModelDuplex } from '@/composables/communication';\r\nimport { useRender } from '@/composables/component';\r\nimport { CandidateKey } from '@/types';\r\nimport { differenceBetween } from '@/util/array';\r\nimport { isColorValue } from '@/util/color';\r\nimport { deepEqual, getObjectValueByPath, hasOwnProperty } from '@/util/common';\r\nimport { chooseProps } from '@/util/component';\r\nimport { debounce } from '@/util/debounce';\r\n\r\nimport { YProgressBar } from '../progress-bar';\r\nimport { YTreeViewNode, pressYTreeViewNodeProps } from './YTreeViewNode';\r\nimport { NodeState, TreeviewFilterFn } from './types';\r\nimport { filterTreeItem, filterTreeItems, getKeys } from './util';\r\n\r\nimport './YTreeView.scss';\r\n\r\nconst treeViewNodeProps = pressYTreeViewNodeProps();\r\n\r\nexport const YTreeView = defineComponent({\r\n name: 'YTreeView',\r\n props: {\r\n expanded: {\r\n type: [Array] as PropType<CandidateKey[]>,\r\n default: () => [],\r\n },\r\n active: {\r\n type: [Array] as PropType<CandidateKey[]>,\r\n default: () => [],\r\n },\r\n multipleActive: Boolean,\r\n activeStrategy: {\r\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\r\n default: 'independent',\r\n },\r\n selected: {\r\n type: [Array] as PropType<CandidateKey[]>,\r\n default: () => [],\r\n },\r\n selectStrategy: {\r\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\r\n default: 'leaf',\r\n },\r\n returnItem: Boolean,\r\n defaultExpand: [Boolean, String, Number],\r\n filter: Function as PropType<TreeviewFilterFn>,\r\n searchDebounceWait: {\r\n type: Number as PropType<number>,\r\n default: 700,\r\n },\r\n ...treeViewNodeProps,\r\n },\r\n emits: ['update:expanded', 'update:active', 'update:selected'],\r\n setup(props, { slots, emit, expose }) {\r\n const nodes = ref<Record<CandidateKey, any>>({});\r\n\r\n const expanded = useModelDuplex(props, 'expanded');\r\n const active = useModelDuplex(props, 'active');\r\n const selected = useModelDuplex(props, 'selected');\r\n\r\n const expandedSet = ref(new Set<CandidateKey>());\r\n const selectedSet = ref(new Set<CandidateKey>());\r\n const activeSet = ref(new Set<CandidateKey>());\r\n const excludedSet = ref(new Set<CandidateKey>());\r\n const filterItemsFn = shallowRef(\r\n debounce(excludeItem, props.searchDebounceWait),\r\n );\r\n const expandedCache = ref<CandidateKey[]>([]);\r\n const searchLoading = shallowRef(false);\r\n\r\n function excludeItem(items: any[], search = '', filter = filterTreeItem) {\r\n const excluded = new Set<CandidateKey>();\r\n if (!search) {\r\n searchLoading.value = false;\r\n excludedSet.value = excluded;\r\n const diff = differenceBetween(expandedCache.value, [\r\n ...expandedSet.value,\r\n ]);\r\n diff.forEach((key) => {\r\n updateExpanded(key, false);\r\n });\r\n expandedCache.value.forEach((key) => {\r\n updateExpanded(key, true);\r\n });\r\n return;\r\n }\r\n for (const item of items) {\r\n filterTreeItems(\r\n filter,\r\n item,\r\n search ?? '',\r\n props.itemKey,\r\n props.itemText,\r\n props.itemChildren as string,\r\n excluded,\r\n );\r\n }\r\n excludedSet.value = excluded;\r\n searchLoading.value = false;\r\n expand();\r\n }\r\n\r\n watchEffect(() => {\r\n searchLoading.value = true;\r\n filterItemsFn.value(props.items, props.search, props.filter);\r\n });\r\n\r\n // Util Methods\r\n function getDescendants(key: CandidateKey) {\r\n const descendants: CandidateKey[] = [];\r\n const { childKeys } = nodes.value[key];\r\n descendants.push(...childKeys);\r\n const remains: CandidateKey[] = childKeys.slice();\r\n\r\n while (remains.length > 0) {\r\n const childKey: CandidateKey = remains.splice(0, 1)[0];\r\n const item = nodes.value[childKey];\r\n if (item) {\r\n descendants.push(...item.childKeys);\r\n remains.push(...item.childKeys);\r\n }\r\n }\r\n\r\n return descendants;\r\n }\r\n\r\n function getNodeKey(itemOrKey: any) {\r\n return props.returnItem\r\n ? getObjectValueByPath(itemOrKey, props.itemKey)\r\n : itemOrKey;\r\n }\r\n\r\n // State Methods\r\n function updateNodes(\r\n items: any[],\r\n parentKey: CandidateKey | null = null,\r\n level = 0,\r\n ) {\r\n for (const item of items) {\r\n const key = getObjectValueByPath(item, props.itemKey);\r\n const children =\r\n getObjectValueByPath(item, props.itemChildren as string) ?? [];\r\n const exist = hasOwnProperty(nodes.value, key);\r\n const existNode = exist\r\n ? nodes.value[key]\r\n : {\r\n vnode: null,\r\n selected: false,\r\n indeterminate: false,\r\n active: false,\r\n expanded: false,\r\n };\r\n const node: NodeState = {\r\n vnode: existNode.vnode,\r\n item,\r\n level,\r\n parentKey,\r\n childKeys: children.map((child: any) =>\r\n getObjectValueByPath(child, props.itemKey),\r\n ),\r\n expanded: children.length > 0 && existNode.expanded,\r\n active: existNode.active,\r\n indeterminate: existNode.indeterminate,\r\n selected: existNode.selected,\r\n };\r\n\r\n updateNodes(children, key, level + 1);\r\n\r\n nodes.value[key] = node;\r\n if (nodes.value[key].expanded) {\r\n expandedSet.value.add(key);\r\n }\r\n if (nodes.value[key].selected) {\r\n selectedSet.value.add(key);\r\n }\r\n if (nodes.value[key].active) {\r\n activeSet.value.add(key);\r\n }\r\n\r\n issueVnodeState(key);\r\n }\r\n }\r\n\r\n function updateExpanded(key: CandidateKey, to: boolean) {\r\n if (!(key in nodes.value)) return;\r\n const node = nodes.value[key];\r\n const children = getObjectValueByPath(\r\n node.item,\r\n props.itemChildren as string,\r\n );\r\n if (Array.isArray(children) && children.length > 0) {\r\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\r\n node.expanded = to;\r\n issueVnodeState(key);\r\n }\r\n }\r\n\r\n watch(\r\n expandedSet,\r\n (neo) => {\r\n if (!props.search) {\r\n expandedCache.value = [...neo];\r\n }\r\n },\r\n { deep: true },\r\n );\r\n\r\n function expand(until: boolean | string | number = true) {\r\n Object.entries(nodes.value).forEach(([key, node]) => {\r\n if (until === true || until >= node.level) {\r\n updateExpanded(key, true);\r\n }\r\n });\r\n emitExpanded();\r\n return expandedSet.value;\r\n }\r\n\r\n function updateActive(key: CandidateKey, to: boolean, event?: MouseEvent) {\r\n if (!(key in nodes.value)) return;\r\n const node = nodes.value[key];\r\n let inactiveKey = !to ? key : '';\r\n if (!props.multipleActive) {\r\n [inactiveKey] = [...activeSet.value];\r\n }\r\n if (to) {\r\n activeSet.value.add(key);\r\n node.active = true;\r\n issueVnodeState(key);\r\n } else {\r\n if (\r\n props.requiredActive &&\r\n activeSet.value.size === 1 &&\r\n key === inactiveKey\r\n ) {\r\n issueVnodeState(key);\r\n return;\r\n }\r\n }\r\n if (inactiveKey && inactiveKey in nodes.value) {\r\n activeSet.value.delete(inactiveKey);\r\n nodes.value[inactiveKey].active = false;\r\n issueVnodeState(inactiveKey);\r\n }\r\n\r\n if (\r\n props.activeSingleModifier &&\r\n event?.getModifierState(props.activeSingleModifier)\r\n ) {\r\n return;\r\n }\r\n\r\n if (props.multipleActive && props.activeStrategy === 'cascade') {\r\n for (const descendant of getDescendants(key)) {\r\n if (descendant in nodes.value) {\r\n to\r\n ? activeSet.value.add(descendant)\r\n : activeSet.value.delete(descendant);\r\n nodes.value[descendant].active = to;\r\n issueVnodeState(descendant);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function updateSelected(key: CandidateKey, to: boolean) {\r\n if (!(key in nodes.value)) return;\r\n const node = nodes.value[key];\r\n\r\n if (to) {\r\n selectedSet.value.add(key);\r\n node.selected = true;\r\n }\r\n\r\n if (!to && key in nodes.value) {\r\n selectedSet.value.delete(key);\r\n nodes.value[key].selected = false;\r\n issueVnodeState(key);\r\n }\r\n\r\n if (props.selectStrategy === 'cascade') {\r\n for (const descendant of getDescendants(key)) {\r\n if (descendant in nodes.value) {\r\n to\r\n ? selectedSet.value.add(descendant)\r\n : selectedSet.value.delete(descendant);\r\n nodes.value[descendant].selected = to;\r\n issueVnodeState(descendant);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function emitExpanded() {\r\n const arr = [...expandedSet.value];\r\n expanded.value = props.returnItem\r\n ? arr.map((key) => nodes.value[key].item)\r\n : arr;\r\n }\r\n\r\n function emitActive() {\r\n const arr = [...activeSet.value];\r\n active.value = props.returnItem\r\n ? arr.map((key) => nodes.value[key].item)\r\n : arr;\r\n }\r\n\r\n function emitSelected() {\r\n const arr = [...selectedSet.value];\r\n selected.value = props.returnItem\r\n ? arr.map((key) => nodes.value[key].item)\r\n : arr;\r\n }\r\n\r\n function stateWatcher(\r\n value: any[],\r\n stateSet: Ref<Set<CandidateKey>>,\r\n updater: (key: CandidateKey, to: boolean) => void,\r\n emitter: () => void,\r\n ) {\r\n const valuesOfKey = props.returnItem\r\n ? value.map((v) => getObjectValueByPath(v, props.itemKey))\r\n : value;\r\n const old = [...stateSet.value];\r\n if (deepEqual(old, valuesOfKey)) {\r\n return;\r\n }\r\n old.forEach((key) => updater(key, false));\r\n valuesOfKey.forEach((key) => updater(key, true));\r\n emitter();\r\n }\r\n\r\n watch(expanded, (neo) => {\r\n stateWatcher(neo, expandedSet, updateExpanded, emitExpanded);\r\n });\r\n\r\n watch(active, (neo) => {\r\n stateWatcher(neo, activeSet, updateActive, emitActive);\r\n });\r\n\r\n watch(selected, (neo) => {\r\n stateWatcher(neo, selectedSet, updateSelected, emitSelected);\r\n });\r\n\r\n watch(\r\n () => props.items,\r\n (neo: any[]) => {\r\n const oldKeys = Object.keys(nodes.value).map((nodeKey) =>\r\n getObjectValueByPath(nodes.value[nodeKey].item, props.itemKey),\r\n );\r\n const neoKeys = getKeys(\r\n neo,\r\n props.itemKey,\r\n props.itemChildren as string,\r\n );\r\n const diff = differenceBetween(oldKeys, neoKeys);\r\n if (diff.length < 1 && neoKeys.length < oldKeys.length) {\r\n return;\r\n }\r\n diff.forEach((k) => delete nodes.value[k]);\r\n\r\n // init\r\n const oldSelected = [...selectedSet.value];\r\n const oldActive = [...activeSet.value];\r\n selectedSet.value.clear();\r\n expandedSet.value.clear();\r\n activeSet.value.clear();\r\n updateNodes(neo);\r\n if (!deepEqual(oldSelected, [...selectedSet.value])) {\r\n emitSelected();\r\n }\r\n if (!deepEqual(oldActive, [...activeSet.value])) {\r\n emitActive();\r\n }\r\n },\r\n { deep: true, flush: 'sync' },\r\n );\r\n\r\n // Search\r\n function isExcluded(key: CandidateKey) {\r\n return !!props.search && excludedSet.value.has(key);\r\n }\r\n\r\n // Provide & Issue\r\n function issueVnodeState(key: CandidateKey) {\r\n const node = nodes.value[key];\r\n if (node && node.vnode) {\r\n node.vnode.active = node.active;\r\n node.vnode.selected = node.selected;\r\n node.vnode.indeterminate = node.indeterminate;\r\n node.vnode.expanded = node.expanded;\r\n }\r\n }\r\n\r\n function register(key: CandidateKey, vnode: VNode) {\r\n if (nodes.value[key]) {\r\n nodes.value[key].vnode = vnode;\r\n }\r\n\r\n issueVnodeState(key);\r\n }\r\n\r\n updateNodes(props.items);\r\n\r\n provide('tree-view', {\r\n register,\r\n updateExpanded,\r\n updateActive,\r\n updateSelected,\r\n emitExpanded,\r\n emitActive,\r\n emitSelected,\r\n isExcluded,\r\n searchLoading,\r\n });\r\n\r\n const renderLeaves = computed(() => {\r\n return props.items.slice().filter((leaf) => {\r\n return !isExcluded(getObjectValueByPath(leaf, props.itemKey));\r\n });\r\n });\r\n\r\n const classes = computed(() => {\r\n return {\r\n 'y-tree-view': true,\r\n };\r\n });\r\n\r\n const styles = computed(() => {\r\n let color = props.activeColor;\r\n if (props.activeColor && !isColorValue(props.activeColor)) {\r\n color = `var(--y-theme-${props.activeColor})`;\r\n }\r\n return {\r\n [`--y-tree-view__active-color`]: color,\r\n };\r\n });\r\n\r\n onMounted(() => {\r\n if (props.defaultExpand != null && props.defaultExpand !== false) {\r\n expandedCache.value = [...expand(props.defaultExpand)];\r\n } else {\r\n expanded.value.forEach((v: any) => updateExpanded(getNodeKey(v), true));\r\n emitExpanded();\r\n }\r\n\r\n for (const activeValue of props.active.map(getNodeKey)) {\r\n updateActive(activeValue, true);\r\n }\r\n\r\n for (const selectedValue of props.selected.map(getNodeKey)) {\r\n updateSelected(selectedValue, true);\r\n }\r\n });\r\n\r\n expose({\r\n expand,\r\n });\r\n\r\n useRender(() => {\r\n return (\r\n <>\r\n <div class={classes.value} style={styles.value} role=\"tree\">\r\n {searchLoading.value && <YProgressBar indeterminate />}\r\n {renderLeaves.value.length > 0 ? (\r\n renderLeaves.value.slice().map((leaf) => {\r\n return (\r\n <YTreeViewNode\r\n v-slots={slots}\r\n key={getObjectValueByPath(leaf, props.itemKey)}\r\n {...{\r\n ...chooseProps(props, treeViewNodeProps),\r\n item: leaf,\r\n level: 0,\r\n }}\r\n ></YTreeViewNode>\r\n );\r\n })\r\n ) : (\r\n <div class=\"y-tree-view__no-data\">\r\n {slots['no-data'] ? slots['no-data']() : <span>No Data</span>}\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n nodes,\r\n expandedSet,\r\n selectedSet,\r\n activeSet,\r\n excludedSet,\r\n searchLoading,\r\n expandedCache,\r\n };\r\n },\r\n});\r\n\r\nexport type YTreeView = InstanceType<typeof YTreeView>;\r\n"],"mappings":"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"}
|
package/lib/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getCurrentInstance, nextTick, reactive } from 'vue';
|
|
2
|
-
import * as
|
|
2
|
+
import * as allComponents from "./components/index.mjs";
|
|
3
3
|
import { YUYEON_DATE_KEY, YUYEON_DATE_OPTIONS_KEY, createDateModule } from "./composables/date/index.mjs";
|
|
4
4
|
import { createDefaultsModule } from "./composables/defaults/index.mjs";
|
|
5
5
|
import { YUYEON_DEFAULTS_KEY } from "./composables/defaults/share.mjs";
|
|
@@ -20,6 +20,7 @@ export function init() {
|
|
|
20
20
|
const i18nModule = createI18nModule(options?.i18n);
|
|
21
21
|
const dateModule = createDateModule(options?.date, i18nModule.localeModule);
|
|
22
22
|
const iconModule = createIconModule(options?.icon);
|
|
23
|
+
const components = options?.components ?? allComponents;
|
|
23
24
|
const install = app => {
|
|
24
25
|
themeModule.install(app);
|
|
25
26
|
const yuyeon = reactive({
|
|
@@ -33,7 +34,7 @@ export function init() {
|
|
|
33
34
|
date: dateModule,
|
|
34
35
|
defaults: defaultsModule
|
|
35
36
|
});
|
|
36
|
-
Object.keys(
|
|
37
|
+
Object.keys(components).forEach(componentName => {
|
|
37
38
|
const comp = components[componentName];
|
|
38
39
|
if (typeof comp === 'object' && 'name' in comp) app.component(componentName, comp);
|
|
39
40
|
});
|