yuyeon 0.0.14 → 0.0.15

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.
Files changed (205) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +15 -0
  3. package/dist/style.css +1 -1
  4. package/dist/yuyeon.mjs +3134 -2276
  5. package/dist/yuyeon.umd.js +29 -1
  6. package/lib/abstract/items.mjs +20 -0
  7. package/lib/abstract/items.mjs.map +1 -0
  8. package/lib/components/button/YButton.mjs +2 -2
  9. package/lib/components/button/YButton.mjs.map +1 -1
  10. package/lib/components/button/YButton.scss +1 -1
  11. package/lib/components/card/YCard.mjs.map +1 -1
  12. package/lib/components/card/YCard.scss +3 -2
  13. package/lib/components/checkbox/YInputCheckbox.scss +1 -1
  14. package/lib/components/chip/YChip.mjs +2 -2
  15. package/lib/components/chip/YChip.mjs.map +1 -1
  16. package/lib/components/dialog/YDialog.mjs +2 -2
  17. package/lib/components/dialog/YDialog.mjs.map +1 -1
  18. package/lib/components/dropdown/YDropdown.mjs +83 -2
  19. package/lib/components/dropdown/YDropdown.mjs.map +1 -1
  20. package/lib/components/dropdown/YDropdown.scss +33 -0
  21. package/lib/components/field-input/YFieldInput.mjs +55 -47
  22. package/lib/components/field-input/YFieldInput.mjs.map +1 -1
  23. package/lib/components/icons/YIconCheckbox.scss +1 -1
  24. package/lib/components/icons/YIconDropdown.mjs +16 -0
  25. package/lib/components/icons/YIconDropdown.mjs.map +1 -0
  26. package/lib/components/index.mjs +2 -0
  27. package/lib/components/index.mjs.map +1 -1
  28. package/lib/components/input/YInput.mjs +83 -49
  29. package/lib/components/input/YInput.mjs.map +1 -1
  30. package/lib/components/input/YInput.scss +8 -8
  31. package/lib/components/layer/YLayer.mjs +21 -9
  32. package/lib/components/layer/YLayer.mjs.map +1 -1
  33. package/lib/components/layer/YLayer.scss +1 -0
  34. package/lib/components/layer/scroll-strategies.mjs +1 -1
  35. package/lib/components/layer/scroll-strategies.mjs.map +1 -1
  36. package/lib/components/list/YList.mjs +40 -2
  37. package/lib/components/list/YList.mjs.map +1 -1
  38. package/lib/components/list/YListItem.mjs +31 -11
  39. package/lib/components/list/YListItem.mjs.map +1 -1
  40. package/lib/components/list/YListItem.scss +5 -2
  41. package/lib/components/menu/YMenu.mjs +29 -18
  42. package/lib/components/menu/YMenu.mjs.map +1 -1
  43. package/lib/components/menu/YMenu.scss +20 -7
  44. package/lib/components/pagination/YPagination.mjs +8 -8
  45. package/lib/components/pagination/YPagination.mjs.map +1 -1
  46. package/lib/components/panel/YDividePanel.scss +4 -4
  47. package/lib/components/progress-bar/YProgressBar.mjs +20 -3
  48. package/lib/components/progress-bar/YProgressBar.mjs.map +1 -1
  49. package/lib/components/progress-bar/YProgressBar.scss +109 -40
  50. package/lib/components/select/YSelect.mjs +185 -0
  51. package/lib/components/select/YSelect.mjs.map +1 -0
  52. package/lib/components/select/YSelect.scss +43 -0
  53. package/lib/components/select/index.mjs +2 -0
  54. package/lib/components/select/index.mjs.map +1 -0
  55. package/lib/components/switch/YSwitch.scss +1 -1
  56. package/lib/components/table/YTable.scss +2 -2
  57. package/lib/components/tree-view/YTreeView.mjs +76 -18
  58. package/lib/components/tree-view/YTreeView.mjs.map +1 -1
  59. package/lib/components/tree-view/YTreeViewNode.mjs +21 -18
  60. package/lib/components/tree-view/YTreeViewNode.mjs.map +1 -1
  61. package/lib/components/tree-view/types.mjs.map +1 -1
  62. package/lib/components/tree-view/util.mjs +24 -0
  63. package/lib/components/tree-view/util.mjs.map +1 -1
  64. package/lib/composables/coordinate/arrangement.mjs.map +1 -1
  65. package/lib/composables/coordinate/index.mjs.map +1 -1
  66. package/lib/composables/coordinate/levitation.mjs +1 -1
  67. package/lib/composables/coordinate/levitation.mjs.map +1 -1
  68. package/lib/composables/coordinate/utils/point.mjs.map +1 -1
  69. package/lib/composables/dimension.mjs +26 -0
  70. package/lib/composables/dimension.mjs.map +1 -0
  71. package/lib/composables/focus.mjs +29 -0
  72. package/lib/composables/focus.mjs.map +1 -0
  73. package/lib/composables/list-items.mjs +58 -0
  74. package/lib/composables/list-items.mjs.map +1 -0
  75. package/lib/composables/theme/factory.mjs +45 -0
  76. package/lib/composables/theme/factory.mjs.map +1 -0
  77. package/lib/composables/theme/helper.mjs +14 -0
  78. package/lib/composables/theme/helper.mjs.map +1 -0
  79. package/lib/composables/theme/index.mjs +144 -10
  80. package/lib/composables/theme/index.mjs.map +1 -1
  81. package/lib/composables/theme/setting.mjs +46 -9
  82. package/lib/composables/theme/setting.mjs.map +1 -1
  83. package/lib/composables/theme/types.mjs +2 -0
  84. package/lib/composables/theme/types.mjs.map +1 -0
  85. package/lib/directives/complement-click/index.mjs.map +1 -1
  86. package/lib/directives/theme-class.mjs +4 -4
  87. package/lib/directives/theme-class.mjs.map +1 -1
  88. package/lib/index.mjs +7 -5
  89. package/lib/index.mjs.map +1 -1
  90. package/lib/mixins/di.mjs +0 -3
  91. package/lib/mixins/di.mjs.map +1 -1
  92. package/lib/styles/_elevation.scss +15 -0
  93. package/lib/styles/base.scss +11 -5
  94. package/lib/styles/settings/_elevation.scss +20 -0
  95. package/lib/styles/theme/light.scss +1 -1
  96. package/lib/styles/util/_helper.scss +12 -0
  97. package/lib/styles/util/_var.scss +18 -0
  98. package/lib/util/color/apca.mjs +201 -0
  99. package/lib/util/color/apca.mjs.map +1 -0
  100. package/lib/util/color/const.mjs +6 -0
  101. package/lib/util/color/const.mjs.map +1 -0
  102. package/lib/util/color/contrast/contrast.mjs +149 -0
  103. package/lib/util/color/contrast/contrast.mjs.map +1 -0
  104. package/lib/util/color/conversion.mjs +310 -0
  105. package/lib/util/color/conversion.mjs.map +1 -0
  106. package/lib/util/color/hct/cam16.mjs +349 -0
  107. package/lib/util/color/hct/cam16.mjs.map +1 -0
  108. package/lib/util/color/hct/hct-solver.mjs +389 -0
  109. package/lib/util/color/hct/hct-solver.mjs.map +1 -0
  110. package/lib/util/color/hct/hct.mjs +153 -0
  111. package/lib/util/color/hct/hct.mjs.map +1 -0
  112. package/lib/util/color/hct/viewing-conditions.mjs +110 -0
  113. package/lib/util/color/hct/viewing-conditions.mjs.map +1 -0
  114. package/lib/util/color/index.mjs +24 -0
  115. package/lib/util/color/index.mjs.map +1 -0
  116. package/lib/util/color/palettes/core-palette.mjs +99 -0
  117. package/lib/util/color/palettes/core-palette.mjs.map +1 -0
  118. package/lib/util/color/palettes/tonal-palette.mjs +112 -0
  119. package/lib/util/color/palettes/tonal-palette.mjs.map +1 -0
  120. package/lib/util/color/types.mjs +2 -0
  121. package/lib/util/color/types.mjs.map +1 -0
  122. package/lib/util/color/utils/math-utils.mjs +139 -0
  123. package/lib/util/color/utils/math-utils.mjs.map +1 -0
  124. package/lib/util/common.mjs +11 -6
  125. package/lib/util/common.mjs.map +1 -1
  126. package/lib/util/debounce.mjs +114 -0
  127. package/lib/util/debounce.mjs.map +1 -0
  128. package/lib/util/{FrameScheduler.mjs → frame-scheduler.mjs} +1 -1
  129. package/lib/util/frame-scheduler.mjs.map +1 -0
  130. package/lib/util/{Rect.mjs → rect.mjs} +1 -1
  131. package/lib/util/{Rect.mjs.map → rect.mjs.map} +1 -1
  132. package/lib/util/string.mjs +6 -0
  133. package/lib/util/string.mjs.map +1 -1
  134. package/lib/util/ui.mjs +11 -36
  135. package/lib/util/ui.mjs.map +1 -1
  136. package/package.json +12 -1
  137. package/types/abstract/items.d.ts +48 -0
  138. package/types/components/card/YCard.d.ts +1 -1
  139. package/types/components/checkbox/YInputCheckbox.d.ts +2 -2
  140. package/types/components/dialog/YDialog.d.ts +23 -8
  141. package/types/components/dropdown/YDropdown.d.ts +219 -0
  142. package/types/components/dropdown/index.d.ts +1 -0
  143. package/types/components/field-input/YFieldInput.d.ts +238 -25
  144. package/types/components/icons/YIconCheckbox.d.ts +1 -1
  145. package/types/components/icons/YIconDropdown.d.ts +1 -0
  146. package/types/components/index.d.ts +2 -0
  147. package/types/components/input/YInput.d.ts +156 -42
  148. package/types/components/layer/YLayer.d.ts +67 -17
  149. package/types/components/list/YList.d.ts +22 -1
  150. package/types/components/list/YListItem.d.ts +28 -2
  151. package/types/components/menu/YMenu.d.ts +132 -16
  152. package/types/components/pagination/YPagination.d.ts +10 -10
  153. package/types/components/progress-bar/YProgressBar.d.ts +18 -1
  154. package/types/components/select/YSelect.d.ts +701 -0
  155. package/types/components/select/index.d.ts +1 -0
  156. package/types/components/table/YDataTable.d.ts +1 -1
  157. package/types/components/table/YDataTableServer.d.ts +1 -1
  158. package/types/components/text-highlighter/YTextHighlighter.d.ts +40 -0
  159. package/types/components/tooltip/YTooltip.d.ts +20 -5
  160. package/types/components/tree-view/YTreeView.d.ts +47 -22
  161. package/types/components/tree-view/YTreeViewNode.d.ts +72 -26
  162. package/types/components/tree-view/types.d.ts +1 -0
  163. package/types/components/tree-view/util.d.ts +4 -1
  164. package/types/composables/coordinate/arrangement.d.ts +1 -1
  165. package/types/composables/coordinate/index.d.ts +3 -3
  166. package/types/composables/coordinate/levitation.d.ts +1 -1
  167. package/types/composables/coordinate/utils/point.d.ts +1 -1
  168. package/types/composables/dimension.d.ts +53 -0
  169. package/types/composables/focus.d.ts +27 -0
  170. package/types/composables/list-items.d.ts +117 -0
  171. package/types/composables/theme/factory.d.ts +3 -0
  172. package/types/composables/theme/helper.d.ts +3 -0
  173. package/types/composables/theme/index.d.ts +45 -5
  174. package/types/composables/theme/setting.d.ts +3 -6
  175. package/types/composables/theme/types.d.ts +28 -0
  176. package/types/directives/complement-click/index.d.ts +1 -1
  177. package/types/directives/theme-class.d.ts +1 -1
  178. package/types/index.d.ts +2 -0
  179. package/types/shims.d.ts +4 -0
  180. package/types/util/color/apca.d.ts +29 -0
  181. package/types/util/color/const.d.ts +5 -0
  182. package/types/util/color/conversion.d.ts +130 -0
  183. package/types/util/color/hct/cam16.d.ts +131 -0
  184. package/types/util/color/hct/hct.d.ts +86 -0
  185. package/types/util/color/hct/hct_solver.d.ts +146 -0
  186. package/types/util/color/hct/viewing_conditions.d.ts +74 -0
  187. package/types/util/color/index.d.ts +4 -0
  188. package/types/util/color/palettes/tonal_palette.d.ts +55 -0
  189. package/types/util/color/types.d.ts +14 -0
  190. package/types/util/color/utils/math-utils.d.ts +82 -0
  191. package/types/util/color/utils/math_utils.d.ts +82 -0
  192. package/types/util/common.d.ts +2 -1
  193. package/types/util/debounce.d.ts +11 -0
  194. package/types/util/string.d.ts +1 -0
  195. package/types/util/ui.d.ts +1 -6
  196. package/lib/components/input/index.scss +0 -2
  197. package/lib/components/table/pagination.mjs +0 -80
  198. package/lib/components/table/pagination.mjs.map +0 -1
  199. package/lib/composables/collections.mjs +0 -2
  200. package/lib/composables/collections.mjs.map +0 -1
  201. package/lib/composables/levitation.mjs +0 -135
  202. package/lib/composables/levitation.mjs.map +0 -1
  203. package/lib/styles/util/helper.scss +0 -6
  204. package/lib/util/FrameScheduler.mjs.map +0 -1
  205. /package/lib/styles/settings/{provided.scss → _provided.scss} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YSelect.mjs","names":["shallowRef","computed","defineComponent","mergeProps","ref","useModelDuplex","useRender","pressCoordinateProps","pressListItemsPropsOptions","useItems","wrapInArray","deepEqual","getObjectValueByPath","omit","propsFactory","YCard","YFieldInput","pressYFieldInputPropsOptions","YIconDropdown","YList","YListItem","YMenu","returnItemEquals","optionsItem","valueItem","valueKey","arguments","length","undefined","valueItemType","itemValue","pressSelectPropsOptions","opened","Boolean","multiple","weakEquals","valueEquals","type","Function","default","pressYSelectPropsOptions","maxHeight","Number","String","position","YSelect","name","props","emits","value","setup","_ref","slots","fieldInputRef","menuRef","listRef","focused","items","toRefineItems","toEmitItems","model","v","emitValue","selections","map","find","item","selected","selection","onMousedownDisplay","event","disabled","onBlur","$el","contains","relatedTarget","onClickItem","select","onAfterLeave","focus","displayText","text","join","_createVNode","$event","base","_len","args","Array","_key","_mergeProps","trailing","menu","e","_createTextVNode"],"sources":["../../../src/components/select/YSelect.tsx"],"sourcesContent":["import { shallowRef } from '@vue/runtime-core';\nimport type { PropType } from 'vue';\nimport { computed, defineComponent, mergeProps, ref } from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { pressCoordinateProps } from '../../composables/coordinate';\nimport {\n ListItem,\n pressListItemsPropsOptions,\n useItems,\n} from '../../composables/list-items';\nimport { wrapInArray } from '../../util/array';\nimport { deepEqual, getObjectValueByPath, omit } from '../../util/common';\nimport { propsFactory } from '../../util/vue-component';\nimport { YCard } from '../card';\nimport { YFieldInput, pressYFieldInputPropsOptions } from '../field-input';\nimport { YIconDropdown } from '../icons/YIconDropdown';\nimport { YList, YListItem } from '../list';\nimport { YMenu } from '../menu';\n\nimport './YSelect.scss';\n\nexport type SelectEquals = (\n optionsItem: any,\n valueItem: any,\n valueKey?: string,\n) => boolean;\n\nexport function returnItemEquals(\n optionsItem: any,\n valueItem: any,\n valueKey = 'value',\n) {\n const valueItemType = typeof valueItem;\n const itemValue =\n valueItemType === 'string' || valueItemType === 'number'\n ? getObjectValueByPath(optionsItem, valueKey)\n : optionsItem;\n return deepEqual(itemValue, valueItem);\n}\n\nexport const pressSelectPropsOptions = propsFactory(\n {\n opened: Boolean as PropType<boolean>,\n multiple: Boolean,\n weakEquals: Boolean,\n valueEquals: {\n type: Function as PropType<SelectEquals>,\n default: deepEqual,\n },\n ...pressListItemsPropsOptions(),\n },\n 'Select',\n);\n\nexport const pressYSelectPropsOptions = propsFactory(\n {\n maxHeight: {\n type: [Number, String],\n default: 310,\n },\n ...pressSelectPropsOptions(),\n ...pressYFieldInputPropsOptions(),\n ...omit(pressCoordinateProps({ position: 'bottom' as 'bottom' }), [\n 'coordinateStrategy',\n ]),\n },\n 'YSelect',\n);\n\nexport const YSelect = defineComponent({\n name: 'YSelect',\n props: {\n ...pressYSelectPropsOptions(),\n },\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:opened': (opened: boolean) => true,\n },\n setup(props, { slots }) {\n const fieldInputRef = ref();\n const menuRef = ref();\n const listRef = ref<InstanceType<typeof YList>>();\n\n const opened = useModelDuplex(props, 'opened');\n const focused = shallowRef(false);\n\n const { items, toRefineItems, toEmitItems } = useItems(props);\n const model = useModelDuplex(\n props,\n 'modelValue',\n [],\n (v) => toRefineItems(v === null ? [null] : wrapInArray(v)),\n (v) => {\n const emitValue = toEmitItems(wrapInArray(v));\n return props.multiple ? emitValue : emitValue[0] ?? null;\n },\n );\n\n const selections = computed<ListItem[]>(() => {\n return model.value.map((v: any) => {\n return items.value.find((item) => {\n return props.valueEquals(item.value, v.value);\n });\n });\n });\n\n const selected = computed(() => {\n return selections.value.map((selection) => selection.props.value);\n });\n\n // Field\n function onMousedownDisplay(event: MouseEvent) {\n if (props.disabled) {\n return;\n }\n opened.value = !opened.value;\n }\n\n function onBlur(event: FocusEvent) {\n if (listRef.value?.$el.contains(event.relatedTarget)) {\n opened.value = false;\n }\n }\n\n // Menu Contents\n function onClickItem(item: ListItem) {\n select(item);\n if (!props.multiple) {\n opened.value = false;\n }\n }\n\n function onAfterLeave() {\n if (focused.value) {\n fieldInputRef.value?.focus();\n }\n }\n\n function select(item: ListItem) {\n if (props.multiple) {\n //\n } else {\n model.value = [item];\n }\n }\n\n const displayText = computed(() => {\n if (props.multiple) {\n return selections.value.map((item) => item.text).join(', ');\n }\n return selections.value?.[0]?.text ?? '';\n });\n\n useRender(() => {\n return (\n <YMenu\n v-model={opened.value}\n ref={menuRef}\n position={props.position}\n content-classes={['y-select__content']}\n maxHeight={props.maxHeight}\n open-on-click-base={false}\n onAfterLeave={onAfterLeave}\n >\n {{\n base: (...args: any[]) =>\n slots.base ? (\n slots.base?.(...args)\n ) : (\n <YFieldInput\n {...mergeProps({ ...args[0].props }, { ref: fieldInputRef })}\n onMousedown:display={onMousedownDisplay}\n onBlur={onBlur}\n readonly\n class={['y-select', { 'y-select--opened': opened.value }]}\n v-model:focused={focused.value}\n >\n {{\n default: () => {\n return (\n <div class={['y-select__selection']}>\n {slots.selection\n ? slots.selection?.()\n : displayText.value}\n </div>\n );\n },\n trailing: (...args: any[]) => {\n return slots['expand-icon'] ? (\n slots['expand-icon']()\n ) : (\n <i class=\"y-select__icon\">\n <YIconDropdown></YIconDropdown>\n </i>\n );\n },\n }}\n </YFieldInput>\n ),\n default: () =>\n slots.menu ? (\n slots.menu()\n ) : (\n <YCard>\n {items.value.length > 0 ? (\n <YList ref={listRef}>\n {items.value.map((item) => {\n return (\n <YListItem onClick={(e) => onClickItem(item)}>\n {item.text}\n </YListItem>\n );\n })}\n </YList>\n ) : (\n <div class=\"pa-4\">항목이 없습니다.</div>\n )}\n </YCard>\n ),\n }}\n </YMenu>\n );\n });\n\n return {\n fieldInputRef,\n model,\n selections,\n };\n },\n});\n"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ .y-select {
2
+ &__icon {
3
+ transition: 200ms ease;
4
+ width: 1.5em;
5
+ height: 1.5em;
6
+ margin-right: 8px;
7
+
8
+ > svg {
9
+ width: 1.5em;
10
+ height: 1.5em;
11
+ }
12
+ }
13
+
14
+ &--opened &__icon {
15
+ transform: rotate3d(1, 0, 0, 180deg) translateY(0.1em);
16
+ }
17
+
18
+ &__content {
19
+ > .y-card {
20
+ padding-top: 8px;
21
+ padding-bottom: 8px;
22
+ }
23
+ }
24
+
25
+ &__selection {
26
+ height: 100%;
27
+ width: 100%;
28
+ padding: 8px 10px;
29
+ }
30
+
31
+ .y-input__display {
32
+ cursor: pointer;
33
+ }
34
+
35
+ .y-field-input__field {
36
+ > input {
37
+ position: absolute;
38
+ inset: 0;
39
+ opacity: 0;
40
+ cursor: pointer;
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./YSelect.mjs";
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/components/select/index.ts"],"sourcesContent":["export * from './YSelect';\r\n"],"mappings":""}
@@ -2,7 +2,7 @@
2
2
  @use '../../styles/variables';
3
3
 
4
4
  .y-switch {
5
- --y-switch__color: rgba(var(--y-theme--primary), 1);
5
+ --y-switch__color: rgba(var(--y-theme-primary), 1);
6
6
  font-size: 1rem;
7
7
 
8
8
  &__slot {
@@ -50,7 +50,7 @@ $table-cell-padding: 0 16px !default;
50
50
  > th {
51
51
  height: 56px;
52
52
  text-align: left;
53
- border-bottom: thin solid rgba(var(--y-line-color), var(--y-line-opacity));
53
+ border-bottom: thin solid rgba(var(--y-theme-outline), var(--y-theme-outline-opacity));
54
54
  user-select: none;
55
55
  }
56
56
  }
@@ -58,7 +58,7 @@ $table-cell-padding: 0 16px !default;
58
58
  > tbody > tr {
59
59
  &:not(:last-child) {
60
60
  > td {
61
- border-bottom: thin solid rgba(var(--y-line-color), var(--y-line-opacity));
61
+ border-bottom: thin solid rgba(var(--y-theme-outline), var(--y-theme-outline-opacity));
62
62
  }
63
63
  }
64
64
  > td {
@@ -1,22 +1,20 @@
1
- import { createTextVNode as _createTextVNode, createVNode as _createVNode, resolveDirective as _resolveDirective, Fragment as _Fragment } from "vue";
2
- import { computed, defineComponent, onMounted, provide, ref, watch } from 'vue';
1
+ import { createTextVNode as _createTextVNode, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from "vue";
2
+ import { computed, defineComponent, onMounted, provide, ref, shallowRef, watch, watchEffect } from 'vue';
3
3
  import { useModelDuplex } from "../../composables/communication.mjs";
4
4
  import { useRender } from "../../composables/component.mjs";
5
5
  import { differenceBetween } from "../../util/array.mjs";
6
6
  import { deepEqual, getObjectValueByPath, hasOwnProperty } from "../../util/common.mjs";
7
- import { isColorValue } from "../../util/ui.mjs";
7
+ import { debounce } from "../../util/debounce.mjs";
8
8
  import { chooseProps } from "../../util/vue-component.mjs";
9
+ import { YProgressBar } from "../progress-bar/index.mjs";
9
10
  import { YTreeViewNode, pressYTreeViewNodeProps } from "./YTreeViewNode.mjs";
10
- import { getKeys } from "./util.mjs";
11
+ import { filterTreeItem, filterTreeItems, getKeys } from "./util.mjs";
11
12
  import "./YTreeView.scss";
13
+ import { isColorValue } from "../../util/color/index.mjs";
12
14
  const treeViewNodeProps = pressYTreeViewNodeProps();
13
15
  export const YTreeView = defineComponent({
14
16
  name: 'YTreeView',
15
17
  props: {
16
- items: {
17
- type: Array,
18
- default: () => []
19
- },
20
18
  expanded: {
21
19
  type: [Array],
22
20
  default: () => []
@@ -42,6 +40,11 @@ export const YTreeView = defineComponent({
42
40
  },
43
41
  returnItem: Boolean,
44
42
  defaultExpand: [Boolean, String, Number],
43
+ filter: Function,
44
+ searchDebounceWait: {
45
+ type: Number,
46
+ default: 700
47
+ },
45
48
  ...treeViewNodeProps
46
49
  },
47
50
  emits: ['update:expanded', 'update:active', 'update:selected'],
@@ -58,7 +61,37 @@ export const YTreeView = defineComponent({
58
61
  const expandedSet = ref(new Set());
59
62
  const selectedSet = ref(new Set());
60
63
  const activeSet = ref(new Set());
64
+ const excludedSet = ref(new Set());
65
+ const filterItemsFn = shallowRef(debounce(excludeItem, props.searchDebounceWait));
61
66
  const expandedCache = ref([]);
67
+ const searchLoading = shallowRef(false);
68
+ function excludeItem(items) {
69
+ let search = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
70
+ let filter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : filterTreeItem;
71
+ const excluded = new Set();
72
+ if (!search) {
73
+ searchLoading.value = false;
74
+ excludedSet.value = excluded;
75
+ const diff = differenceBetween(expandedCache.value, [...expandedSet.value]);
76
+ diff.forEach(key => {
77
+ updateExpanded(key, false);
78
+ });
79
+ expandedCache.value.forEach(key => {
80
+ updateExpanded(key, true);
81
+ });
82
+ return;
83
+ }
84
+ for (const item of items) {
85
+ filterTreeItems(filter, item, search ?? '', props.itemKey, props.itemText, props.itemChildren, excluded);
86
+ }
87
+ excludedSet.value = excluded;
88
+ searchLoading.value = false;
89
+ expand();
90
+ }
91
+ watchEffect(() => {
92
+ searchLoading.value = true;
93
+ filterItemsFn.value(props.items, props.search, props.filter);
94
+ });
62
95
 
63
96
  // Util Methods
64
97
  function getDescendants(key) {
@@ -82,7 +115,7 @@ export const YTreeView = defineComponent({
82
115
  let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
83
116
  for (const item of items) {
84
117
  const key = getObjectValueByPath(item, props.itemKey);
85
- const children = getObjectValueByPath(item, props.childrenKey) ?? [];
118
+ const children = getObjectValueByPath(item, props.itemChildren) ?? [];
86
119
  const exist = hasOwnProperty(nodes.value, key);
87
120
  const existNode = exist ? nodes.value[key] : {
88
121
  vnode: null,
@@ -119,13 +152,20 @@ export const YTreeView = defineComponent({
119
152
  function updateExpanded(key, to) {
120
153
  if (!(key in nodes.value)) return;
121
154
  const node = nodes.value[key];
122
- const children = getObjectValueByPath(node.item, props.childrenKey);
155
+ const children = getObjectValueByPath(node.item, props.itemChildren);
123
156
  if (Array.isArray(children) && children.length > 0) {
124
157
  to ? expandedSet.value.add(key) : expandedSet.value.delete(key);
125
158
  node.expanded = to;
126
159
  issueVnodeState(key);
127
160
  }
128
161
  }
162
+ watch(expandedSet, neo => {
163
+ if (!props.search) {
164
+ expandedCache.value = [...neo];
165
+ }
166
+ }, {
167
+ deep: true
168
+ });
129
169
  function expand() {
130
170
  let until = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
131
171
  Object.entries(nodes.value).forEach(_ref2 => {
@@ -135,8 +175,9 @@ export const YTreeView = defineComponent({
135
175
  }
136
176
  });
137
177
  emitExpanded();
178
+ return expandedSet.value;
138
179
  }
139
- function updateActive(key, to) {
180
+ function updateActive(key, to, event) {
140
181
  if (!(key in nodes.value)) return;
141
182
  const node = nodes.value[key];
142
183
  let inactiveKey = !to ? key : '';
@@ -152,6 +193,9 @@ export const YTreeView = defineComponent({
152
193
  nodes.value[inactiveKey].active = false;
153
194
  issueVnodeState(inactiveKey);
154
195
  }
196
+ if (props.activeSingleModifier && event?.getModifierState(props.activeSingleModifier)) {
197
+ return;
198
+ }
155
199
  if (props.multipleActive && props.activeStrategy === 'cascade') {
156
200
  for (const descendant of getDescendants(key)) {
157
201
  if (descendant in nodes.value) {
@@ -217,7 +261,7 @@ export const YTreeView = defineComponent({
217
261
  });
218
262
  watch(() => props.items, neo => {
219
263
  const oldKeys = Object.keys(nodes.value).map(nodeKey => getObjectValueByPath(nodes.value[nodeKey].item, props.itemKey));
220
- const neoKeys = getKeys(neo, props.itemKey, props.childrenKey);
264
+ const neoKeys = getKeys(neo, props.itemKey, props.itemChildren);
221
265
  const diff = differenceBetween(oldKeys, neoKeys);
222
266
  if (diff.length < 1 && neoKeys.length < oldKeys.length) {
223
267
  return;
@@ -237,6 +281,11 @@ export const YTreeView = defineComponent({
237
281
  deep: true
238
282
  });
239
283
 
284
+ // Search
285
+ function isExcluded(key) {
286
+ return !!props.search && excludedSet.value.has(key);
287
+ }
288
+
240
289
  // Provide & Issue
241
290
  function issueVnodeState(key) {
242
291
  const node = nodes.value[key];
@@ -261,10 +310,14 @@ export const YTreeView = defineComponent({
261
310
  updateSelected,
262
311
  emitExpanded,
263
312
  emitActive,
264
- emitSelected
313
+ emitSelected,
314
+ isExcluded,
315
+ searchLoading
265
316
  });
266
317
  const renderLeaves = computed(() => {
267
- return props.items;
318
+ return props.items.filter(leaf => {
319
+ return !isExcluded(getObjectValueByPath(leaf, props.itemKey));
320
+ });
268
321
  });
269
322
  const classes = computed(() => {
270
323
  return {
@@ -274,7 +327,7 @@ export const YTreeView = defineComponent({
274
327
  const styles = computed(() => {
275
328
  let color = props.activeColor;
276
329
  if (props.activeColor && !isColorValue(props.activeColor)) {
277
- color = `rgba(var(--y-theme--${props.activeColor}), 1)`;
330
+ color = `rgba(var(--y-theme-${props.activeColor}), 1)`;
278
331
  }
279
332
  return {
280
333
  [`--y-tree-view__active-color`]: color
@@ -282,7 +335,7 @@ export const YTreeView = defineComponent({
282
335
  });
283
336
  onMounted(() => {
284
337
  if (props.defaultExpand !== undefined) {
285
- expand(props.defaultExpand);
338
+ expandedCache.value = [...expand(props.defaultExpand)];
286
339
  } else {
287
340
  expanded.value.forEach(v => updateExpanded(getNodeKey(v), true));
288
341
  emitExpanded();
@@ -296,7 +349,9 @@ export const YTreeView = defineComponent({
296
349
  "class": classes.value,
297
350
  "style": styles.value,
298
351
  "role": "tree"
299
- }, [renderLeaves.value.length > 0 ? renderLeaves.value.map(leaf => {
352
+ }, [searchLoading.value && _createVNode(YProgressBar, {
353
+ "indeterminate": true
354
+ }, null), renderLeaves.value.length > 0 ? renderLeaves.value.map(leaf => {
300
355
  return _createVNode(YTreeViewNode, {
301
356
  ...chooseProps(props, treeViewNodeProps),
302
357
  item: leaf,
@@ -310,7 +365,10 @@ export const YTreeView = defineComponent({
310
365
  nodes,
311
366
  expandedSet,
312
367
  selectedSet,
313
- activeSet
368
+ activeSet,
369
+ excludedSet,
370
+ searchLoading,
371
+ expandedCache
314
372
  };
315
373
  }
316
374
  });
@@ -1 +1 @@
1
- {"version":3,"file":"YTreeView.mjs","names":["computed","defineComponent","onMounted","provide","ref","watch","useModelDuplex","useRender","differenceBetween","deepEqual","getObjectValueByPath","hasOwnProperty","isColorValue","chooseProps","YTreeViewNode","pressYTreeViewNodeProps","getKeys","treeViewNodeProps","YTreeView","name","props","items","type","Array","default","expanded","active","multipleActive","Boolean","activeStrategy","String","selected","selectStrategy","returnItem","defaultExpand","Number","emits","setup","_ref","slots","emit","expose","nodes","expandedSet","Set","selectedSet","activeSet","expandedCache","getDescendants","key","descendants","arguments","length","undefined","childKeys","value","push","childKey","getNodeKey","itemOrKey","itemKey","updateNodes","parentKey","level","item","children","childrenKey","exist","existNode","vnode","indeterminate","node","map","child","add","issueVnodeState","updateExpanded","to","isArray","delete","expand","until","Object","entries","forEach","_ref2","emitExpanded","updateActive","inactiveKey","keys","descendant","updateSelected","arr","emitActive","emitSelected","stateWatcher","stateSet","updater","emitter","valuesOfKey","v","old","neo","oldKeys","nodeKey","neoKeys","diff","k","oldSelected","clear","deep","register","renderLeaves","classes","styles","color","activeColor","_createVNode","_Fragment","leaf","_createTextVNode"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import {\n PropType,\n Ref,\n VNode,\n computed,\n defineComponent,\n onMounted,\n provide,\n ref,\n watch,\n} from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { differenceBetween } from '../../util/array';\nimport {\n deepEqual,\n getObjectValueByPath,\n hasOwnProperty,\n} from '../../util/common';\nimport { isColorValue } from '../../util/ui';\nimport { chooseProps } from '../../util/vue-component';\nimport { YTreeViewNode, pressYTreeViewNodeProps } from './YTreeViewNode';\nimport { getKeys } from './util';\n\nimport { CandidateKey } from '../../types';\nimport './YTreeView.scss';\nimport { NodeState } from './types';\n\nconst treeViewNodeProps = pressYTreeViewNodeProps();\n\nexport const YTreeView = defineComponent({\n name: 'YTreeView',\n props: {\n items: {\n type: Array as PropType<any[]>,\n default: () => [],\n },\n expanded: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n active: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n multipleActive: Boolean,\n activeStrategy: {\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\n default: 'independent',\n },\n selected: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n selectStrategy: {\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\n default: 'leaf',\n },\n returnItem: Boolean,\n defaultExpand: [Boolean, String, Number],\n ...treeViewNodeProps,\n },\n emits: ['update:expanded', 'update:active', 'update:selected'],\n setup(props, { slots, emit, expose }) {\n const nodes = ref<Record<CandidateKey, any>>({});\n\n const expanded = useModelDuplex(props, 'expanded');\n const active = useModelDuplex(props, 'active');\n const selected = useModelDuplex(props, 'selected');\n\n const expandedSet = ref(new Set<CandidateKey>());\n const selectedSet = ref(new Set<CandidateKey>());\n const activeSet = ref(new Set<CandidateKey>());\n\n const expandedCache = ref<CandidateKey[]>([]);\n\n // Util Methods\n function getDescendants(key: CandidateKey, descendants: CandidateKey[] = []) {\n const { childKeys } = nodes.value[key];\n descendants.push(...childKeys);\n for (const childKey of childKeys) {\n descendants = getDescendants(childKey, descendants);\n }\n return descendants;\n }\n\n function getNodeKey(itemOrKey: any) {\n return props.returnItem\n ? getObjectValueByPath(itemOrKey, props.itemKey)\n : itemOrKey;\n }\n\n // State Methods\n function updateNodes(\n items: any[],\n parentKey: CandidateKey | null = null,\n level = 0,\n ) {\n for (const item of items) {\n const key = getObjectValueByPath(item, props.itemKey);\n const children = getObjectValueByPath(item, props.childrenKey) ?? [];\n const exist = hasOwnProperty(nodes.value, key);\n const existNode = exist\n ? nodes.value[key]\n : {\n vnode: null,\n selected: false,\n indeterminate: false,\n active: false,\n expanded: false,\n };\n const node: NodeState = {\n vnode: existNode.vnode,\n item,\n level,\n parentKey,\n childKeys: children.map((child: any) =>\n getObjectValueByPath(child, props.itemKey),\n ),\n expanded: children.length > 0 && existNode.expanded,\n active: existNode.active,\n indeterminate: existNode.indeterminate,\n selected: existNode.selected,\n };\n\n updateNodes(children, key, level + 1);\n\n nodes.value[key] = node;\n if (nodes.value[key].expanded) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].selected) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].active) {\n activeSet.value.add(key);\n }\n\n issueVnodeState(key);\n }\n }\n\n function updateExpanded(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n const children = getObjectValueByPath(node.item, props.childrenKey);\n if (Array.isArray(children) && children.length > 0) {\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\n node.expanded = to;\n issueVnodeState(key);\n }\n }\n\n function expand(until: boolean | string | number = true) {\n Object.entries(nodes.value).forEach(([key, node]) => {\n if (until === true || until >= node.level) {\n updateExpanded(key, true);\n }\n });\n emitExpanded();\n }\n\n function updateActive(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n let inactiveKey = !to ? key : '';\n if (!props.multipleActive) {\n [inactiveKey] = activeSet.value.keys();\n }\n if (to) {\n activeSet.value.add(key);\n node.active = true;\n }\n if (inactiveKey && inactiveKey in nodes.value) {\n activeSet.value.delete(inactiveKey);\n nodes.value[inactiveKey].active = false;\n issueVnodeState(inactiveKey);\n }\n\n if (props.multipleActive && props.activeStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? activeSet.value.add(descendant)\n : activeSet.value.delete(descendant);\n nodes.value[descendant].active = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function updateSelected(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n\n if (to) {\n selectedSet.value.add(key);\n node.selected = true;\n }\n\n if (!to && key in nodes.value) {\n selectedSet.value.delete(key);\n nodes.value[key].selected = false;\n issueVnodeState(key);\n }\n\n if (props.selectStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? selectedSet.value.add(descendant)\n : selectedSet.value.delete(descendant);\n nodes.value[descendant].selected = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function emitExpanded() {\n const arr = [...expandedSet.value];\n expanded.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitActive() {\n const arr = [...activeSet.value];\n active.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitSelected() {\n const arr = [...selectedSet.value];\n selected.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function stateWatcher(\n value: any[],\n stateSet: Ref<Set<CandidateKey>>,\n updater: (key: CandidateKey, to: boolean) => void,\n emitter: () => void,\n ) {\n const valuesOfKey = props.returnItem\n ? value.map((v) => getObjectValueByPath(v, props.itemKey))\n : value;\n const old = [...stateSet.value];\n if (deepEqual(old, valuesOfKey)) {\n return;\n }\n old.forEach((key) => updater(key, false));\n valuesOfKey.forEach((key) => updater(key, true));\n emitter();\n }\n\n watch(expanded, (neo) => {\n stateWatcher(neo, expandedSet, updateExpanded, emitExpanded);\n });\n\n watch(active, (neo) => {\n stateWatcher(neo, activeSet, updateActive, emitActive);\n });\n\n watch(selected, (neo) => {\n stateWatcher(neo, selectedSet, updateSelected, emitSelected);\n });\n\n watch(\n () => props.items,\n (neo: any[]) => {\n const oldKeys = Object.keys(nodes.value).map((nodeKey) =>\n getObjectValueByPath(nodes.value[nodeKey].item, props.itemKey),\n );\n const neoKeys = getKeys(neo, props.itemKey, props.childrenKey);\n const diff = differenceBetween(oldKeys, neoKeys);\n if (diff.length < 1 && neoKeys.length < oldKeys.length) {\n return;\n }\n diff.forEach((k) => delete nodes.value[k]);\n\n // init\n const oldSelected = [...selectedSet.value];\n selectedSet.value.clear();\n expandedSet.value.clear();\n activeSet.value.clear();\n updateNodes(neo);\n if (!deepEqual(oldSelected, [...selectedSet.value])) {\n emitSelected();\n }\n },\n { deep: true },\n );\n\n // Provide & Issue\n function issueVnodeState(key: CandidateKey) {\n const node = nodes.value[key];\n if (node && node.vnode) {\n node.vnode.active = node.active;\n node.vnode.selected = node.selected;\n node.vnode.indeterminate = node.indeterminate;\n node.vnode.expanded = node.expanded;\n }\n }\n\n function register(key: CandidateKey, vnode: VNode) {\n if (nodes.value[key]) {\n nodes.value[key].vnode = vnode;\n }\n\n issueVnodeState(key);\n }\n\n updateNodes(props.items);\n\n provide('tree-view', {\n register,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n });\n\n const renderLeaves = computed(() => {\n return props.items;\n });\n\n const classes = computed(() => {\n return {\n 'y-tree-view': true,\n };\n });\n\n const styles = computed(() => {\n let color = props.activeColor;\n if (props.activeColor && !isColorValue(props.activeColor)) {\n color = `rgba(var(--y-theme--${props.activeColor}), 1)`;\n }\n return {\n [`--y-tree-view__active-color`]: color,\n };\n });\n\n onMounted(() => {\n if (props.defaultExpand !== undefined) {\n expand(props.defaultExpand);\n } else {\n expanded.value.forEach((v: any) => updateExpanded(getNodeKey(v), true));\n emitExpanded();\n }\n });\n\n expose({\n expand,\n });\n\n useRender(() => {\n return (\n <>\n <div class={classes.value} style={styles.value} role=\"tree\">\n {renderLeaves.value.length > 0 ? (\n renderLeaves.value.map((leaf) => {\n return (\n <YTreeViewNode\n v-slots={slots}\n {...{\n ...chooseProps(props, treeViewNodeProps),\n item: leaf,\n level: 0,\n }}\n ></YTreeViewNode>\n );\n })\n ) : (\n <div class=\"y-tree-view__no-data\">\n {slots['no-data'] ? slots['no-data']() : <span>No Data</span>}\n </div>\n )}\n </div>\n </>\n );\n });\n\n return {\n nodes,\n expandedSet,\n selectedSet,\n activeSet,\n };\n },\n});\n\nexport type YTreeView = InstanceType<typeof YTreeView>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YTreeView.mjs","names":["computed","defineComponent","onMounted","provide","ref","shallowRef","watch","watchEffect","useModelDuplex","useRender","differenceBetween","deepEqual","getObjectValueByPath","hasOwnProperty","debounce","chooseProps","YProgressBar","YTreeViewNode","pressYTreeViewNodeProps","filterTreeItem","filterTreeItems","getKeys","isColorValue","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","childKey","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","keys","activeSingleModifier","getModifierState","descendant","updateSelected","arr","emitActive","emitSelected","stateWatcher","stateSet","updater","emitter","valuesOfKey","v","old","oldKeys","nodeKey","neoKeys","k","oldSelected","clear","isExcluded","has","register","renderLeaves","leaf","classes","styles","color","activeColor","_createVNode","_Fragment","_createTextVNode"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import {\n PropType,\n Ref,\n VNode,\n computed,\n defineComponent,\n onMounted,\n provide,\n ref,\n shallowRef,\n watch,\n watchEffect,\n} from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { differenceBetween } from '../../util/array';\nimport {\n deepEqual,\n getObjectValueByPath,\n hasOwnProperty,\n} from '../../util/common';\nimport { debounce } from '../../util/debounce';\nimport { chooseProps } from '../../util/vue-component';\nimport { YProgressBar } from '../progress-bar';\nimport { YTreeViewNode, pressYTreeViewNodeProps } from './YTreeViewNode';\nimport { filterTreeItem, filterTreeItems, getKeys } from './util';\n\nimport { CandidateKey } from '../../types';\nimport './YTreeView.scss';\nimport { NodeState, TreeviewFilterFn } from './types';\nimport { isColorValue } from \"../../util/color\";\n\nconst treeViewNodeProps = pressYTreeViewNodeProps();\n\nexport const YTreeView = defineComponent({\n name: 'YTreeView',\n props: {\n expanded: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n active: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n multipleActive: Boolean,\n activeStrategy: {\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\n default: 'independent',\n },\n selected: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n selectStrategy: {\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\n default: 'leaf',\n },\n returnItem: Boolean,\n defaultExpand: [Boolean, String, Number],\n filter: Function as PropType<TreeviewFilterFn>,\n searchDebounceWait: {\n type: Number as PropType<number>,\n default: 700,\n },\n ...treeViewNodeProps,\n },\n emits: ['update:expanded', 'update:active', 'update:selected'],\n setup(props, { slots, emit, expose }) {\n const nodes = ref<Record<CandidateKey, any>>({});\n\n const expanded = useModelDuplex(props, 'expanded');\n const active = useModelDuplex(props, 'active');\n const selected = useModelDuplex(props, 'selected');\n\n const expandedSet = ref(new Set<CandidateKey>());\n const selectedSet = ref(new Set<CandidateKey>());\n const activeSet = ref(new Set<CandidateKey>());\n const excludedSet = ref(new Set<CandidateKey>());\n const filterItemsFn = shallowRef(\n debounce(excludeItem, props.searchDebounceWait),\n );\n const expandedCache = ref<CandidateKey[]>([]);\n const searchLoading = shallowRef(false);\n\n function excludeItem(items: any[], search = '', filter = filterTreeItem) {\n const excluded = new Set<CandidateKey>();\n if (!search) {\n searchLoading.value = false;\n excludedSet.value = excluded;\n const diff = differenceBetween(expandedCache.value, [...expandedSet.value]);\n diff.forEach((key) => {\n updateExpanded(key, false);\n });\n expandedCache.value.forEach((key) => {\n updateExpanded(key, true);\n });\n return;\n }\n for (const item of items) {\n filterTreeItems(\n filter,\n item,\n search ?? '',\n props.itemKey,\n props.itemText,\n props.itemChildren as string,\n excluded,\n );\n }\n excludedSet.value = excluded;\n searchLoading.value = false;\n expand();\n }\n\n watchEffect(() => {\n searchLoading.value = true;\n filterItemsFn.value(props.items, props.search, props.filter);\n });\n\n // Util Methods\n function getDescendants(\n key: CandidateKey,\n descendants: CandidateKey[] = [],\n ) {\n const { childKeys } = nodes.value[key];\n descendants.push(...childKeys);\n for (const childKey of childKeys) {\n descendants = getDescendants(childKey, descendants);\n }\n return descendants;\n }\n\n function getNodeKey(itemOrKey: any) {\n return props.returnItem\n ? getObjectValueByPath(itemOrKey, props.itemKey)\n : itemOrKey;\n }\n\n // State Methods\n function updateNodes(\n items: any[],\n parentKey: CandidateKey | null = null,\n level = 0,\n ) {\n for (const item of items) {\n const key = getObjectValueByPath(item, props.itemKey);\n const children = getObjectValueByPath(item, props.itemChildren as string) ?? [];\n const exist = hasOwnProperty(nodes.value, key);\n const existNode = exist\n ? nodes.value[key]\n : {\n vnode: null,\n selected: false,\n indeterminate: false,\n active: false,\n expanded: false,\n };\n const node: NodeState = {\n vnode: existNode.vnode,\n item,\n level,\n parentKey,\n childKeys: children.map((child: any) =>\n getObjectValueByPath(child, props.itemKey),\n ),\n expanded: children.length > 0 && existNode.expanded,\n active: existNode.active,\n indeterminate: existNode.indeterminate,\n selected: existNode.selected,\n };\n\n updateNodes(children, key, level + 1);\n\n nodes.value[key] = node;\n if (nodes.value[key].expanded) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].selected) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].active) {\n activeSet.value.add(key);\n }\n\n issueVnodeState(key);\n }\n }\n\n function updateExpanded(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n const children = getObjectValueByPath(node.item, props.itemChildren as string);\n if (Array.isArray(children) && children.length > 0) {\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\n node.expanded = to;\n issueVnodeState(key);\n }\n }\n\n watch(expandedSet, (neo) => {\n if (!props.search) {\n expandedCache.value = [...neo];\n }\n }, { deep: true })\n\n function expand(until: boolean | string | number = true) {\n Object.entries(nodes.value).forEach(([key, node]) => {\n if (until === true || until >= node.level) {\n updateExpanded(key, true);\n }\n });\n emitExpanded();\n return expandedSet.value;\n }\n\n function updateActive(key: CandidateKey, to: boolean, event?: MouseEvent) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n let inactiveKey = !to ? key : '';\n if (!props.multipleActive) {\n [inactiveKey] = activeSet.value.keys();\n }\n if (to) {\n activeSet.value.add(key);\n node.active = true;\n }\n if (inactiveKey && inactiveKey in nodes.value) {\n activeSet.value.delete(inactiveKey);\n nodes.value[inactiveKey].active = false;\n issueVnodeState(inactiveKey);\n }\n\n if (\n props.activeSingleModifier &&\n event?.getModifierState(props.activeSingleModifier)\n ) {\n return;\n }\n\n if (props.multipleActive && props.activeStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? activeSet.value.add(descendant)\n : activeSet.value.delete(descendant);\n nodes.value[descendant].active = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function updateSelected(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n\n if (to) {\n selectedSet.value.add(key);\n node.selected = true;\n }\n\n if (!to && key in nodes.value) {\n selectedSet.value.delete(key);\n nodes.value[key].selected = false;\n issueVnodeState(key);\n }\n\n if (props.selectStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? selectedSet.value.add(descendant)\n : selectedSet.value.delete(descendant);\n nodes.value[descendant].selected = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function emitExpanded() {\n const arr = [...expandedSet.value];\n expanded.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitActive() {\n const arr = [...activeSet.value];\n active.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitSelected() {\n const arr = [...selectedSet.value];\n selected.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function stateWatcher(\n value: any[],\n stateSet: Ref<Set<CandidateKey>>,\n updater: (key: CandidateKey, to: boolean) => void,\n emitter: () => void,\n ) {\n const valuesOfKey = props.returnItem\n ? value.map((v) => getObjectValueByPath(v, props.itemKey))\n : value;\n const old = [...stateSet.value];\n if (deepEqual(old, valuesOfKey)) {\n return;\n }\n old.forEach((key) => updater(key, false));\n valuesOfKey.forEach((key) => updater(key, true));\n emitter();\n }\n\n watch(expanded, (neo) => {\n stateWatcher(neo, expandedSet, updateExpanded, emitExpanded);\n });\n\n watch(active, (neo) => {\n stateWatcher(neo, activeSet, updateActive, emitActive);\n });\n\n watch(selected, (neo) => {\n stateWatcher(neo, selectedSet, updateSelected, emitSelected);\n });\n\n watch(\n () => props.items,\n (neo: any[]) => {\n const oldKeys = Object.keys(nodes.value).map((nodeKey) =>\n getObjectValueByPath(nodes.value[nodeKey].item, props.itemKey),\n );\n const neoKeys = getKeys(neo, props.itemKey, props.itemChildren as string);\n const diff = differenceBetween(oldKeys, neoKeys);\n if (diff.length < 1 && neoKeys.length < oldKeys.length) {\n return;\n }\n diff.forEach((k) => delete nodes.value[k]);\n\n // init\n const oldSelected = [...selectedSet.value];\n selectedSet.value.clear();\n expandedSet.value.clear();\n activeSet.value.clear();\n updateNodes(neo);\n if (!deepEqual(oldSelected, [...selectedSet.value])) {\n emitSelected();\n }\n },\n { deep: true },\n );\n\n // Search\n function isExcluded(key: CandidateKey) {\n return !!props.search && excludedSet.value.has(key);\n }\n\n // Provide & Issue\n function issueVnodeState(key: CandidateKey) {\n const node = nodes.value[key];\n if (node && node.vnode) {\n node.vnode.active = node.active;\n node.vnode.selected = node.selected;\n node.vnode.indeterminate = node.indeterminate;\n node.vnode.expanded = node.expanded;\n }\n }\n\n function register(key: CandidateKey, vnode: VNode) {\n if (nodes.value[key]) {\n nodes.value[key].vnode = vnode;\n }\n\n issueVnodeState(key);\n }\n\n updateNodes(props.items);\n\n provide('tree-view', {\n register,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n isExcluded,\n searchLoading,\n });\n\n const renderLeaves = computed(() => {\n return props.items.filter((leaf) => {\n return !isExcluded(getObjectValueByPath(leaf, props.itemKey));\n });\n });\n\n const classes = computed(() => {\n return {\n 'y-tree-view': true,\n };\n });\n\n const styles = computed(() => {\n let color = props.activeColor;\n if (props.activeColor && !isColorValue(props.activeColor)) {\n color = `rgba(var(--y-theme-${props.activeColor}), 1)`;\n }\n return {\n [`--y-tree-view__active-color`]: color,\n };\n });\n\n onMounted(() => {\n if (props.defaultExpand !== undefined) {\n expandedCache.value = [...expand(props.defaultExpand)];\n } else {\n expanded.value.forEach((v: any) => updateExpanded(getNodeKey(v), true));\n emitExpanded();\n }\n });\n\n expose({\n expand,\n });\n\n useRender(() => {\n return (\n <>\n <div class={classes.value} style={styles.value} role=\"tree\">\n {searchLoading.value && <YProgressBar indeterminate />}\n {renderLeaves.value.length > 0 ? (\n renderLeaves.value.map((leaf) => {\n return (\n <YTreeViewNode\n v-slots={slots}\n {...{\n ...chooseProps(props, treeViewNodeProps),\n item: leaf,\n level: 0,\n }}\n ></YTreeViewNode>\n );\n })\n ) : (\n <div class=\"y-tree-view__no-data\">\n {slots['no-data'] ? slots['no-data']() : <span>No Data</span>}\n </div>\n )}\n </div>\n </>\n );\n });\n\n return {\n nodes,\n expandedSet,\n selectedSet,\n activeSet,\n excludedSet,\n searchLoading,\n expandedCache,\n };\n },\n});\n\nexport type YTreeView = InstanceType<typeof YTreeView>;\n"],"mappings":";AAAA,SAIEA,QAAQ,EACRC,eAAe,EACfC,SAAS,EACTC,OAAO,EACPC,GAAG,EACHC,UAAU,EACVC,KAAK,EACLC,WAAW,QACN,KAAK;AAAC,SAEJC,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,iBAAiB;AAAA,SAExBC,SAAS,EACTC,oBAAoB,EACpBC,cAAc;AAAA,SAEPC,QAAQ;AAAA,SACRC,WAAW;AAAA,SACXC,YAAY;AAAA,SACZC,aAAa,EAAEC,uBAAuB;AAAA,SACtCC,cAAc,EAAEC,eAAe,EAAEC,OAAO;AAGjD;AAA0B,SAEjBC,YAAY;AAErB,MAAMC,iBAAiB,GAAGL,uBAAuB,CAAC,CAAC;AAEnD,OAAO,MAAMM,SAAS,GAAGvB,eAAe,CAAC;EACvCwB,IAAI,EAAE,WAAW;EACjBC,KAAK,EAAE;IACLC,QAAQ,EAAE;MACRC,IAAI,EAAE,CAACC,KAAK,CAA6B;MACzCC,OAAO,EAAEA,CAAA,KAAM;IACjB,CAAC;IACDC,MAAM,EAAE;MACNH,IAAI,EAAE,CAACC,KAAK,CAA6B;MACzCC,OAAO,EAAEA,CAAA,KAAM;IACjB,CAAC;IACDE,cAAc,EAAEC,OAAO;IACvBC,cAAc,EAAE;MACdN,IAAI,EAAEO,MAA6C;MAAE;MACrDL,OAAO,EAAE;IACX,CAAC;IACDM,QAAQ,EAAE;MACRR,IAAI,EAAE,CAACC,KAAK,CAA6B;MACzCC,OAAO,EAAEA,CAAA,KAAM;IACjB,CAAC;IACDO,cAAc,EAAE;MACdT,IAAI,EAAEO,MAA6C;MAAE;MACrDL,OAAO,EAAE;IACX,CAAC;IACDQ,UAAU,EAAEL,OAAO;IACnBM,aAAa,EAAE,CAACN,OAAO,EAAEE,MAAM,EAAEK,MAAM,CAAC;IACxCC,MAAM,EAAEC,QAAsC;IAC9CC,kBAAkB,EAAE;MAClBf,IAAI,EAAEY,MAA0B;MAChCV,OAAO,EAAE;IACX,CAAC;IACD,GAAGP;EACL,CAAC;EACDqB,KAAK,EAAE,CAAC,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,CAAC;EAC9DC,KAAKA,CAACnB,KAAK,EAAAoB,IAAA,EAA2B;IAAA,IAAzB;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAO,CAAC,GAAAH,IAAA;IAClC,MAAMI,KAAK,GAAG9C,GAAG,CAA4B,CAAC,CAAC,CAAC;IAEhD,MAAMuB,QAAQ,GAAGnB,cAAc,CAACkB,KAAK,EAAE,UAAU,CAAC;IAClD,MAAMK,MAAM,GAAGvB,cAAc,CAACkB,KAAK,EAAE,QAAQ,CAAC;IAC9C,MAAMU,QAAQ,GAAG5B,cAAc,CAACkB,KAAK,EAAE,UAAU,CAAC;IAElD,MAAMyB,WAAW,GAAG/C,GAAG,CAAC,IAAIgD,GAAG,CAAe,CAAC,CAAC;IAChD,MAAMC,WAAW,GAAGjD,GAAG,CAAC,IAAIgD,GAAG,CAAe,CAAC,CAAC;IAChD,MAAME,SAAS,GAAGlD,GAAG,CAAC,IAAIgD,GAAG,CAAe,CAAC,CAAC;IAC9C,MAAMG,WAAW,GAAGnD,GAAG,CAAC,IAAIgD,GAAG,CAAe,CAAC,CAAC;IAChD,MAAMI,aAAa,GAAGnD,UAAU,CAC9BS,QAAQ,CAAC2C,WAAW,EAAE/B,KAAK,CAACiB,kBAAkB,CAChD,CAAC;IACD,MAAMe,aAAa,GAAGtD,GAAG,CAAiB,EAAE,CAAC;IAC7C,MAAMuD,aAAa,GAAGtD,UAAU,CAAC,KAAK,CAAC;IAEvC,SAASoD,WAAWA,CAACG,KAAY,EAAwC;MAAA,IAAtCC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;MAAA,IAAErB,MAAM,GAAAqB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG3C,cAAc;MACrE,MAAM8C,QAAQ,GAAG,IAAIb,GAAG,CAAe,CAAC;MACxC,IAAI,CAACS,MAAM,EAAE;QACXF,aAAa,CAACO,KAAK,GAAG,KAAK;QAC3BX,WAAW,CAACW,KAAK,GAAGD,QAAQ;QAC5B,MAAME,IAAI,GAAGzD,iBAAiB,CAACgD,aAAa,CAACQ,KAAK,EAAE,CAAC,GAAGf,WAAW,CAACe,KAAK,CAAC,CAAC;QAC3EC,IAAI,CAACC,OAAO,CAAEC,GAAG,IAAK;UACpBC,cAAc,CAACD,GAAG,EAAE,KAAK,CAAC;QAC5B,CAAC,CAAC;QACFX,aAAa,CAACQ,KAAK,CAACE,OAAO,CAAEC,GAAG,IAAK;UACnCC,cAAc,CAACD,GAAG,EAAE,IAAI,CAAC;QAC3B,CAAC,CAAC;QACF;MACF;MACA,KAAK,MAAME,IAAI,IAAIX,KAAK,EAAE;QACxBxC,eAAe,CACbqB,MAAM,EACN8B,IAAI,EACJV,MAAM,IAAI,EAAE,EACZnC,KAAK,CAAC8C,OAAO,EACb9C,KAAK,CAAC+C,QAAQ,EACd/C,KAAK,CAACgD,YAAY,EAClBT,QACF,CAAC;MACH;MACAV,WAAW,CAACW,KAAK,GAAGD,QAAQ;MAC5BN,aAAa,CAACO,KAAK,GAAG,KAAK;MAC3BS,MAAM,CAAC,CAAC;IACV;IAEApE,WAAW,CAAC,MAAM;MAChBoD,aAAa,CAACO,KAAK,GAAG,IAAI;MAC1BV,aAAa,CAACU,KAAK,CAACxC,KAAK,CAACkC,KAAK,EAAElC,KAAK,CAACmC,MAAM,EAAEnC,KAAK,CAACe,MAAM,CAAC;IAC9D,CAAC,CAAC;;IAEF;IACA,SAASmC,cAAcA,CACrBP,GAAiB,EAEjB;MAAA,IADAQ,WAA2B,GAAAf,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;MAEhC,MAAM;QAAEgB;MAAU,CAAC,GAAG5B,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC;MACtCQ,WAAW,CAACE,IAAI,CAAC,GAAGD,SAAS,CAAC;MAC9B,KAAK,MAAME,QAAQ,IAAIF,SAAS,EAAE;QAChCD,WAAW,GAAGD,cAAc,CAACI,QAAQ,EAAEH,WAAW,CAAC;MACrD;MACA,OAAOA,WAAW;IACpB;IAEA,SAASI,UAAUA,CAACC,SAAc,EAAE;MAClC,OAAOxD,KAAK,CAACY,UAAU,GACnB1B,oBAAoB,CAACsE,SAAS,EAAExD,KAAK,CAAC8C,OAAO,CAAC,GAC9CU,SAAS;IACf;;IAEA;IACA,SAASC,WAAWA,CAClBvB,KAAY,EAGZ;MAAA,IAFAwB,SAA8B,GAAAtB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MAAA,IACrCuB,KAAK,GAAAvB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;MAET,KAAK,MAAMS,IAAI,IAAIX,KAAK,EAAE;QACxB,MAAMS,GAAG,GAAGzD,oBAAoB,CAAC2D,IAAI,EAAE7C,KAAK,CAAC8C,OAAO,CAAC;QACrD,MAAMc,QAAQ,GAAG1E,oBAAoB,CAAC2D,IAAI,EAAE7C,KAAK,CAACgD,YAAsB,CAAC,IAAI,EAAE;QAC/E,MAAMa,KAAK,GAAG1E,cAAc,CAACqC,KAAK,CAACgB,KAAK,EAAEG,GAAG,CAAC;QAC9C,MAAMmB,SAAS,GAAGD,KAAK,GACnBrC,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC,GAChB;UACEoB,KAAK,EAAE,IAAI;UACXrD,QAAQ,EAAE,KAAK;UACfsD,aAAa,EAAE,KAAK;UACpB3D,MAAM,EAAE,KAAK;UACbJ,QAAQ,EAAE;QACZ,CAAC;QACL,MAAMgE,IAAe,GAAG;UACtBF,KAAK,EAAED,SAAS,CAACC,KAAK;UACtBlB,IAAI;UACJc,KAAK;UACLD,SAAS;UACTN,SAAS,EAAEQ,QAAQ,CAACM,GAAG,CAAEC,KAAU,IACjCjF,oBAAoB,CAACiF,KAAK,EAAEnE,KAAK,CAAC8C,OAAO,CAC3C,CAAC;UACD7C,QAAQ,EAAE2D,QAAQ,CAACvB,MAAM,GAAG,CAAC,IAAIyB,SAAS,CAAC7D,QAAQ;UACnDI,MAAM,EAAEyD,SAAS,CAACzD,MAAM;UACxB2D,aAAa,EAAEF,SAAS,CAACE,aAAa;UACtCtD,QAAQ,EAAEoD,SAAS,CAACpD;QACtB,CAAC;QAED+C,WAAW,CAACG,QAAQ,EAAEjB,GAAG,EAAEgB,KAAK,GAAG,CAAC,CAAC;QAErCnC,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC,GAAGsB,IAAI;QACvB,IAAIzC,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC,CAAC1C,QAAQ,EAAE;UAC7BwB,WAAW,CAACe,KAAK,CAAC4B,GAAG,CAACzB,GAAG,CAAC;QAC5B;QACA,IAAInB,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC,CAACjC,QAAQ,EAAE;UAC7Be,WAAW,CAACe,KAAK,CAAC4B,GAAG,CAACzB,GAAG,CAAC;QAC5B;QACA,IAAInB,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC,CAACtC,MAAM,EAAE;UAC3BuB,SAAS,CAACY,KAAK,CAAC4B,GAAG,CAACzB,GAAG,CAAC;QAC1B;QAEA0B,eAAe,CAAC1B,GAAG,CAAC;MACtB;IACF;IAEA,SAASC,cAAcA,CAACD,GAAiB,EAAE2B,EAAW,EAAE;MACtD,IAAI,EAAE3B,GAAG,IAAInB,KAAK,CAACgB,KAAK,CAAC,EAAE;MAC3B,MAAMyB,IAAI,GAAGzC,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC;MAC7B,MAAMiB,QAAQ,GAAG1E,oBAAoB,CAAC+E,IAAI,CAACpB,IAAI,EAAE7C,KAAK,CAACgD,YAAsB,CAAC;MAC9E,IAAI7C,KAAK,CAACoE,OAAO,CAACX,QAAQ,CAAC,IAAIA,QAAQ,CAACvB,MAAM,GAAG,CAAC,EAAE;QAClDiC,EAAE,GAAG7C,WAAW,CAACe,KAAK,CAAC4B,GAAG,CAACzB,GAAG,CAAC,GAAGlB,WAAW,CAACe,KAAK,CAACgC,MAAM,CAAC7B,GAAG,CAAC;QAC/DsB,IAAI,CAAChE,QAAQ,GAAGqE,EAAE;QAClBD,eAAe,CAAC1B,GAAG,CAAC;MACtB;IACF;IAEA/D,KAAK,CAAC6C,WAAW,EAAGgD,GAAG,IAAK;MAC1B,IAAI,CAACzE,KAAK,CAACmC,MAAM,EAAE;QACjBH,aAAa,CAACQ,KAAK,GAAG,CAAC,GAAGiC,GAAG,CAAC;MAChC;IACF,CAAC,EAAE;MAAEC,IAAI,EAAE;IAAK,CAAC,CAAC;IAElB,SAASzB,MAAMA,CAAA,EAA0C;MAAA,IAAzC0B,KAAgC,GAAAvC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MACrDwC,MAAM,CAACC,OAAO,CAACrD,KAAK,CAACgB,KAAK,CAAC,CAACE,OAAO,CAACoC,KAAA,IAAiB;QAAA,IAAhB,CAACnC,GAAG,EAAEsB,IAAI,CAAC,GAAAa,KAAA;QAC9C,IAAIH,KAAK,KAAK,IAAI,IAAIA,KAAK,IAAIV,IAAI,CAACN,KAAK,EAAE;UACzCf,cAAc,CAACD,GAAG,EAAE,IAAI,CAAC;QAC3B;MACF,CAAC,CAAC;MACFoC,YAAY,CAAC,CAAC;MACd,OAAOtD,WAAW,CAACe,KAAK;IAC1B;IAEA,SAASwC,YAAYA,CAACrC,GAAiB,EAAE2B,EAAW,EAAEW,KAAkB,EAAE;MACxE,IAAI,EAAEtC,GAAG,IAAInB,KAAK,CAACgB,KAAK,CAAC,EAAE;MAC3B,MAAMyB,IAAI,GAAGzC,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC;MAC7B,IAAIuC,WAAW,GAAG,CAACZ,EAAE,GAAG3B,GAAG,GAAG,EAAE;MAChC,IAAI,CAAC3C,KAAK,CAACM,cAAc,EAAE;QACzB,CAAC4E,WAAW,CAAC,GAAGtD,SAAS,CAACY,KAAK,CAAC2C,IAAI,CAAC,CAAC;MACxC;MACA,IAAIb,EAAE,EAAE;QACN1C,SAAS,CAACY,KAAK,CAAC4B,GAAG,CAACzB,GAAG,CAAC;QACxBsB,IAAI,CAAC5D,MAAM,GAAG,IAAI;MACpB;MACA,IAAI6E,WAAW,IAAIA,WAAW,IAAI1D,KAAK,CAACgB,KAAK,EAAE;QAC7CZ,SAAS,CAACY,KAAK,CAACgC,MAAM,CAACU,WAAW,CAAC;QACnC1D,KAAK,CAACgB,KAAK,CAAC0C,WAAW,CAAC,CAAC7E,MAAM,GAAG,KAAK;QACvCgE,eAAe,CAACa,WAAW,CAAC;MAC9B;MAEA,IACElF,KAAK,CAACoF,oBAAoB,IAC1BH,KAAK,EAAEI,gBAAgB,CAACrF,KAAK,CAACoF,oBAAoB,CAAC,EACnD;QACA;MACF;MAEA,IAAIpF,KAAK,CAACM,cAAc,IAAIN,KAAK,CAACQ,cAAc,KAAK,SAAS,EAAE;QAC9D,KAAK,MAAM8E,UAAU,IAAIpC,cAAc,CAACP,GAAG,CAAC,EAAE;UAC5C,IAAI2C,UAAU,IAAI9D,KAAK,CAACgB,KAAK,EAAE;YAC7B8B,EAAE,GACE1C,SAAS,CAACY,KAAK,CAAC4B,GAAG,CAACkB,UAAU,CAAC,GAC/B1D,SAAS,CAACY,KAAK,CAACgC,MAAM,CAACc,UAAU,CAAC;YACtC9D,KAAK,CAACgB,KAAK,CAAC8C,UAAU,CAAC,CAACjF,MAAM,GAAGiE,EAAE;YACnCD,eAAe,CAACiB,UAAU,CAAC;UAC7B;QACF;MACF;IACF;IAEA,SAASC,cAAcA,CAAC5C,GAAiB,EAAE2B,EAAW,EAAE;MACtD,IAAI,EAAE3B,GAAG,IAAInB,KAAK,CAACgB,KAAK,CAAC,EAAE;MAC3B,MAAMyB,IAAI,GAAGzC,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC;MAE7B,IAAI2B,EAAE,EAAE;QACN3C,WAAW,CAACa,KAAK,CAAC4B,GAAG,CAACzB,GAAG,CAAC;QAC1BsB,IAAI,CAACvD,QAAQ,GAAG,IAAI;MACtB;MAEA,IAAI,CAAC4D,EAAE,IAAI3B,GAAG,IAAInB,KAAK,CAACgB,KAAK,EAAE;QAC7Bb,WAAW,CAACa,KAAK,CAACgC,MAAM,CAAC7B,GAAG,CAAC;QAC7BnB,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC,CAACjC,QAAQ,GAAG,KAAK;QACjC2D,eAAe,CAAC1B,GAAG,CAAC;MACtB;MAEA,IAAI3C,KAAK,CAACW,cAAc,KAAK,SAAS,EAAE;QACtC,KAAK,MAAM2E,UAAU,IAAIpC,cAAc,CAACP,GAAG,CAAC,EAAE;UAC5C,IAAI2C,UAAU,IAAI9D,KAAK,CAACgB,KAAK,EAAE;YAC7B8B,EAAE,GACE3C,WAAW,CAACa,KAAK,CAAC4B,GAAG,CAACkB,UAAU,CAAC,GACjC3D,WAAW,CAACa,KAAK,CAACgC,MAAM,CAACc,UAAU,CAAC;YACxC9D,KAAK,CAACgB,KAAK,CAAC8C,UAAU,CAAC,CAAC5E,QAAQ,GAAG4D,EAAE;YACrCD,eAAe,CAACiB,UAAU,CAAC;UAC7B;QACF;MACF;IACF;IAEA,SAASP,YAAYA,CAAA,EAAG;MACtB,MAAMS,GAAG,GAAG,CAAC,GAAG/D,WAAW,CAACe,KAAK,CAAC;MAClCvC,QAAQ,CAACuC,KAAK,GAAGxC,KAAK,CAACY,UAAU,GAC7B4E,GAAG,CAACtB,GAAG,CAAEvB,GAAG,IAAKnB,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC,CAACE,IAAI,CAAC,GACvC2C,GAAG;IACT;IAEA,SAASC,UAAUA,CAAA,EAAG;MACpB,MAAMD,GAAG,GAAG,CAAC,GAAG5D,SAAS,CAACY,KAAK,CAAC;MAChCnC,MAAM,CAACmC,KAAK,GAAGxC,KAAK,CAACY,UAAU,GAC3B4E,GAAG,CAACtB,GAAG,CAAEvB,GAAG,IAAKnB,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC,CAACE,IAAI,CAAC,GACvC2C,GAAG;IACT;IAEA,SAASE,YAAYA,CAAA,EAAG;MACtB,MAAMF,GAAG,GAAG,CAAC,GAAG7D,WAAW,CAACa,KAAK,CAAC;MAClC9B,QAAQ,CAAC8B,KAAK,GAAGxC,KAAK,CAACY,UAAU,GAC7B4E,GAAG,CAACtB,GAAG,CAAEvB,GAAG,IAAKnB,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC,CAACE,IAAI,CAAC,GACvC2C,GAAG;IACT;IAEA,SAASG,YAAYA,CACnBnD,KAAY,EACZoD,QAAgC,EAChCC,OAAiD,EACjDC,OAAmB,EACnB;MACA,MAAMC,WAAW,GAAG/F,KAAK,CAACY,UAAU,GAChC4B,KAAK,CAAC0B,GAAG,CAAE8B,CAAC,IAAK9G,oBAAoB,CAAC8G,CAAC,EAAEhG,KAAK,CAAC8C,OAAO,CAAC,CAAC,GACxDN,KAAK;MACT,MAAMyD,GAAG,GAAG,CAAC,GAAGL,QAAQ,CAACpD,KAAK,CAAC;MAC/B,IAAIvD,SAAS,CAACgH,GAAG,EAAEF,WAAW,CAAC,EAAE;QAC/B;MACF;MACAE,GAAG,CAACvD,OAAO,CAAEC,GAAG,IAAKkD,OAAO,CAAClD,GAAG,EAAE,KAAK,CAAC,CAAC;MACzCoD,WAAW,CAACrD,OAAO,CAAEC,GAAG,IAAKkD,OAAO,CAAClD,GAAG,EAAE,IAAI,CAAC,CAAC;MAChDmD,OAAO,CAAC,CAAC;IACX;IAEAlH,KAAK,CAACqB,QAAQ,EAAGwE,GAAG,IAAK;MACvBkB,YAAY,CAAClB,GAAG,EAAEhD,WAAW,EAAEmB,cAAc,EAAEmC,YAAY,CAAC;IAC9D,CAAC,CAAC;IAEFnG,KAAK,CAACyB,MAAM,EAAGoE,GAAG,IAAK;MACrBkB,YAAY,CAAClB,GAAG,EAAE7C,SAAS,EAAEoD,YAAY,EAAES,UAAU,CAAC;IACxD,CAAC,CAAC;IAEF7G,KAAK,CAAC8B,QAAQ,EAAG+D,GAAG,IAAK;MACvBkB,YAAY,CAAClB,GAAG,EAAE9C,WAAW,EAAE4D,cAAc,EAAEG,YAAY,CAAC;IAC9D,CAAC,CAAC;IAEF9G,KAAK,CACH,MAAMoB,KAAK,CAACkC,KAAK,EAChBuC,GAAU,IAAK;MACd,MAAMyB,OAAO,GAAGtB,MAAM,CAACO,IAAI,CAAC3D,KAAK,CAACgB,KAAK,CAAC,CAAC0B,GAAG,CAAEiC,OAAO,IACnDjH,oBAAoB,CAACsC,KAAK,CAACgB,KAAK,CAAC2D,OAAO,CAAC,CAACtD,IAAI,EAAE7C,KAAK,CAAC8C,OAAO,CAC/D,CAAC;MACD,MAAMsD,OAAO,GAAGzG,OAAO,CAAC8E,GAAG,EAAEzE,KAAK,CAAC8C,OAAO,EAAE9C,KAAK,CAACgD,YAAsB,CAAC;MACzE,MAAMP,IAAI,GAAGzD,iBAAiB,CAACkH,OAAO,EAAEE,OAAO,CAAC;MAChD,IAAI3D,IAAI,CAACJ,MAAM,GAAG,CAAC,IAAI+D,OAAO,CAAC/D,MAAM,GAAG6D,OAAO,CAAC7D,MAAM,EAAE;QACtD;MACF;MACAI,IAAI,CAACC,OAAO,CAAE2D,CAAC,IAAK,OAAO7E,KAAK,CAACgB,KAAK,CAAC6D,CAAC,CAAC,CAAC;;MAE1C;MACA,MAAMC,WAAW,GAAG,CAAC,GAAG3E,WAAW,CAACa,KAAK,CAAC;MAC1Cb,WAAW,CAACa,KAAK,CAAC+D,KAAK,CAAC,CAAC;MACzB9E,WAAW,CAACe,KAAK,CAAC+D,KAAK,CAAC,CAAC;MACzB3E,SAAS,CAACY,KAAK,CAAC+D,KAAK,CAAC,CAAC;MACvB9C,WAAW,CAACgB,GAAG,CAAC;MAChB,IAAI,CAACxF,SAAS,CAACqH,WAAW,EAAE,CAAC,GAAG3E,WAAW,CAACa,KAAK,CAAC,CAAC,EAAE;QACnDkD,YAAY,CAAC,CAAC;MAChB;IACF,CAAC,EACD;MAAEhB,IAAI,EAAE;IAAK,CACf,CAAC;;IAED;IACA,SAAS8B,UAAUA,CAAC7D,GAAiB,EAAE;MACrC,OAAO,CAAC,CAAC3C,KAAK,CAACmC,MAAM,IAAIN,WAAW,CAACW,KAAK,CAACiE,GAAG,CAAC9D,GAAG,CAAC;IACrD;;IAEA;IACA,SAAS0B,eAAeA,CAAC1B,GAAiB,EAAE;MAC1C,MAAMsB,IAAI,GAAGzC,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC;MAC7B,IAAIsB,IAAI,IAAIA,IAAI,CAACF,KAAK,EAAE;QACtBE,IAAI,CAACF,KAAK,CAAC1D,MAAM,GAAG4D,IAAI,CAAC5D,MAAM;QAC/B4D,IAAI,CAACF,KAAK,CAACrD,QAAQ,GAAGuD,IAAI,CAACvD,QAAQ;QACnCuD,IAAI,CAACF,KAAK,CAACC,aAAa,GAAGC,IAAI,CAACD,aAAa;QAC7CC,IAAI,CAACF,KAAK,CAAC9D,QAAQ,GAAGgE,IAAI,CAAChE,QAAQ;MACrC;IACF;IAEA,SAASyG,QAAQA,CAAC/D,GAAiB,EAAEoB,KAAY,EAAE;MACjD,IAAIvC,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC,EAAE;QACpBnB,KAAK,CAACgB,KAAK,CAACG,GAAG,CAAC,CAACoB,KAAK,GAAGA,KAAK;MAChC;MAEAM,eAAe,CAAC1B,GAAG,CAAC;IACtB;IAEAc,WAAW,CAACzD,KAAK,CAACkC,KAAK,CAAC;IAExBzD,OAAO,CAAC,WAAW,EAAE;MACnBiI,QAAQ;MACR9D,cAAc;MACdoC,YAAY;MACZO,cAAc;MACdR,YAAY;MACZU,UAAU;MACVC,YAAY;MACZc,UAAU;MACVvE;IACF,CAAC,CAAC;IAEF,MAAM0E,YAAY,GAAGrI,QAAQ,CAAC,MAAM;MAClC,OAAO0B,KAAK,CAACkC,KAAK,CAACnB,MAAM,CAAE6F,IAAI,IAAK;QAClC,OAAO,CAACJ,UAAU,CAACtH,oBAAoB,CAAC0H,IAAI,EAAE5G,KAAK,CAAC8C,OAAO,CAAC,CAAC;MAC/D,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM+D,OAAO,GAAGvI,QAAQ,CAAC,MAAM;MAC7B,OAAO;QACL,aAAa,EAAE;MACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAMwI,MAAM,GAAGxI,QAAQ,CAAC,MAAM;MAC5B,IAAIyI,KAAK,GAAG/G,KAAK,CAACgH,WAAW;MAC7B,IAAIhH,KAAK,CAACgH,WAAW,IAAI,CAACpH,YAAY,CAACI,KAAK,CAACgH,WAAW,CAAC,EAAE;QACzDD,KAAK,GAAI,sBAAqB/G,KAAK,CAACgH,WAAY,OAAM;MACxD;MACA,OAAO;QACL,CAAE,6BAA4B,GAAGD;MACnC,CAAC;IACH,CAAC,CAAC;IAEFvI,SAAS,CAAC,MAAM;MACd,IAAIwB,KAAK,CAACa,aAAa,KAAKyB,SAAS,EAAE;QACrCN,aAAa,CAACQ,KAAK,GAAG,CAAC,GAAGS,MAAM,CAACjD,KAAK,CAACa,aAAa,CAAC,CAAC;MACxD,CAAC,MAAM;QACLZ,QAAQ,CAACuC,KAAK,CAACE,OAAO,CAAEsD,CAAM,IAAKpD,cAAc,CAACW,UAAU,CAACyC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACvEjB,YAAY,CAAC,CAAC;MAChB;IACF,CAAC,CAAC;IAEFxD,MAAM,CAAC;MACL0B;IACF,CAAC,CAAC;IAEFlE,SAAS,CAAC,MAAM;MACd,OAAAkI,YAAA,CAAAC,SAAA,SAAAD,YAAA;QAAA,SAEgBJ,OAAO,CAACrE,KAAK;QAAA,SAASsE,MAAM,CAACtE,KAAK;QAAA,QAAO;MAAM,IACxDP,aAAa,CAACO,KAAK,IAAAyE,YAAA,CAAA3H,YAAA;QAAA;MAAA,QAAkC,EACrDqH,YAAY,CAACnE,KAAK,CAACH,MAAM,GAAG,CAAC,GAC5BsE,YAAY,CAACnE,KAAK,CAAC0B,GAAG,CAAE0C,IAAI,IAAK;QAC/B,OAAAK,YAAA,CAAA1H,aAAA;UAIM,GAAGF,WAAW,CAACW,KAAK,EAAEH,iBAAiB,CAAC;UACxCgD,IAAI,EAAE+D,IAAI;UACVjD,KAAK,EAAE;QAAC,GAJDtC,KAAK;MAQpB,CAAC,CAAC,GAAA4F,YAAA;QAAA,SAES;MAAsB,IAC9B5F,KAAK,CAAC,SAAS,CAAC,GAAGA,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAA4F,YAAA,gBAAAE,gBAAA,aAAuB,EAEhE;IAIT,CAAC,CAAC;IAEF,OAAO;MACL3F,KAAK;MACLC,WAAW;MACXE,WAAW;MACXC,SAAS;MACTC,WAAW;MACXI,aAAa;MACbD;IACF,CAAC;EACH;AACF,CAAC,CAAC"}
@@ -4,29 +4,24 @@ import { getObjectValueByPath } from "../../util/common.mjs";
4
4
  import { propsFactory } from "../../util/vue-component.mjs";
5
5
  import { YButton } from "../button/index.mjs";
6
6
  import { YPlate } from "../plate/index.mjs";
7
+ import YTextHighlighter from "../text-highlighter/YTextHighlighter.mjs";
7
8
  import { YIconCheckbox, YIconExpand } from "../icons/index.mjs";
8
9
  import { YExpandVTransition } from "../transitions/index.mjs";
10
+ import { pressItemsPropsOptions } from "../../abstract/items.mjs";
9
11
  export const pressYTreeViewNodeProps = propsFactory({
10
- itemKey: {
11
- type: String,
12
- default: 'id'
13
- },
14
- textKey: {
15
- type: String,
16
- default: 'text'
17
- },
18
- childrenKey: {
19
- type: String,
20
- default: 'children'
21
- },
12
+ search: String,
22
13
  disableTransition: Boolean,
23
14
  enableActive: Boolean,
24
15
  activeClass: [String, Array],
16
+ activeSingleModifier: String,
25
17
  activeColor: {
26
18
  type: String,
27
19
  default: 'primary'
28
20
  },
29
- enableSelect: Boolean
21
+ enableSelect: Boolean,
22
+ ...pressItemsPropsOptions({
23
+ itemKey: 'id'
24
+ })
30
25
  }, 'YTreeViewNode');
31
26
  export const YTreeViewNode = defineComponent({
32
27
  name: 'YTreeNode',
@@ -59,7 +54,7 @@ export const YTreeViewNode = defineComponent({
59
54
  function onClick(e) {
60
55
  const to = !active.value;
61
56
  active.value = to;
62
- treeView.updateActive(myKey.value, to);
57
+ treeView.updateActive(myKey.value, to, e);
63
58
  treeView.emitActive();
64
59
  }
65
60
  function onClickExpand(e) {
@@ -77,7 +72,7 @@ export const YTreeViewNode = defineComponent({
77
72
  treeView.emitSelected();
78
73
  }
79
74
  const children = computed(() => {
80
- return props.item?.[props.childrenKey] ?? [];
75
+ return props.item?.[props.itemChildren] ?? [];
81
76
  });
82
77
  const imLeaf = computed(() => children.value.length < 1);
83
78
  const classes = computed(() => {
@@ -94,7 +89,7 @@ export const YTreeViewNode = defineComponent({
94
89
  };
95
90
  });
96
91
  const contentText = computed(() => {
97
- return getObjectValueByPath(props.item, props.textKey) ?? '';
92
+ return getObjectValueByPath(props.item, props.itemText) ?? '';
98
93
  });
99
94
  const slotProps = computed(() => {
100
95
  return {
@@ -102,8 +97,13 @@ export const YTreeViewNode = defineComponent({
102
97
  imLeaf: imLeaf.value
103
98
  };
104
99
  });
100
+ const searchLoading = computed(() => {
101
+ return treeView.searchLoading.value;
102
+ });
105
103
  useRender(() => {
106
- const leaves = children.value.map(item => {
104
+ const leaves = children.value.filter(leaf => {
105
+ return !treeView.isExcluded(getObjectValueByPath(leaf, props.itemKey));
106
+ }).map(item => {
107
107
  return h(YTreeViewNode, {
108
108
  ...props,
109
109
  level: (props.level ?? 0) + 1,
@@ -127,7 +127,7 @@ export const YTreeViewNode = defineComponent({
127
127
  }, [h(YPlate), h('div', {
128
128
  class: 'y-tree-view-node__indents'
129
129
  }, indentSpacer), /* EXPAND */
130
- !imLeaf.value ? h(YButton, {
130
+ !imLeaf.value && leaves.length > 0 ? h(YButton, {
131
131
  class: 'y-tree-view-node__expand-icon',
132
132
  variation: 'icon',
133
133
  onClick: e => onClickExpand(e)
@@ -148,6 +148,9 @@ export const YTreeViewNode = defineComponent({
148
148
  }, slots.default ? slots.default?.({
149
149
  text: contentText.value,
150
150
  item: props.item
151
+ }) : props.search && !searchLoading.value ? h(YTextHighlighter, {
152
+ text: contentText.value,
153
+ keyword: props.search
151
154
  }) : contentText.value), slots.trailing && h('div', {
152
155
  class: 'y-tree-view-node__trailing'
153
156
  }, slots.trailing())])]), /* CHILDREN */
@@ -1 +1 @@
1
- {"version":3,"file":"YTreeViewNode.mjs","names":["computed","defineComponent","h","inject","ref","useRender","getObjectValueByPath","propsFactory","YButton","YPlate","YIconCheckbox","YIconExpand","YExpandVTransition","pressYTreeViewNodeProps","itemKey","type","String","default","textKey","childrenKey","disableTransition","Boolean","enableActive","activeClass","Array","activeColor","enableSelect","YTreeViewNode","name","components","props","item","Object","level","Number","setup","_ref","slots","expose","treeView","expanded","active","selected","immediate","onClick","e","to","value","updateActive","myKey","emitActive","onClickExpand","stopPropagation","updateExpanded","emitExpanded","onClickSelect","updateSelected","emitSelected","children","imLeaf","length","classes","styles","contentText","slotProps","leaves","map","indentSpacer","i","push","class","style","variation","checked","leading","text","trailing","disabled","role","undefined","created","register"],"sources":["../../../src/components/tree-view/YTreeViewNode.ts"],"sourcesContent":["import {\n PropType,\n VNodeArrayChildren,\n computed,\n defineComponent,\n h,\n inject,\n ref,\n} from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { getObjectValueByPath } from '../../util/common';\nimport { propsFactory } from '../../util/vue-component';\nimport { YButton } from '../button';\nimport { YPlate } from '../plate';\n\nimport { YIconCheckbox, YIconExpand } from '../icons';\nimport { YExpandVTransition } from '../transitions';\n\nexport const pressYTreeViewNodeProps = propsFactory(\n {\n itemKey: {\n type: String as PropType<string>,\n default: 'id',\n },\n textKey: {\n type: String as PropType<string>,\n default: 'text',\n },\n childrenKey: {\n type: String as PropType<string>,\n default: 'children',\n },\n disableTransition: Boolean,\n enableActive: Boolean,\n activeClass: [String, Array],\n activeColor: {\n type: String,\n default: 'primary',\n },\n enableSelect: Boolean,\n },\n 'YTreeViewNode',\n);\n\nexport const YTreeViewNode = defineComponent({\n name: 'YTreeNode',\n components: {\n YButton,\n YIconExpand,\n YPlate,\n YIconCheckbox,\n },\n props: {\n item: {\n type: Object as PropType<any>,\n },\n level: {\n type: Number as PropType<number>,\n default: 0,\n },\n ...pressYTreeViewNodeProps(),\n },\n setup(props, { slots, expose }) {\n const treeView = inject<any>('tree-view');\n\n const expanded = ref(false);\n const active = ref(false);\n const selected = ref(false);\n const immediate = ref(false);\n\n function onClick(e: MouseEvent) {\n const to = !active.value;\n active.value = to;\n treeView.updateActive(myKey.value, to);\n treeView.emitActive();\n }\n\n function onClickExpand(e: MouseEvent) {\n e.stopPropagation();\n const to = !expanded.value;\n expanded.value = to;\n treeView.updateExpanded(myKey.value, to);\n treeView.emitExpanded();\n }\n\n function onClickSelect(e: MouseEvent) {\n e.stopPropagation();\n const to = !selected.value;\n selected.value = to;\n treeView.updateSelected(myKey.value, to);\n treeView.emitSelected();\n }\n\n const children = computed(() => {\n return props.item?.[props.childrenKey] ?? [];\n });\n\n const imLeaf = computed(() => children.value.length < 1);\n\n const classes = computed(() => {\n return {\n 'y-tree-view-node': true,\n 'y-tree-view-node--leaf': imLeaf.value,\n 'y-tree-view-node--expanded': expanded.value,\n 'y-tree-view-node--active': active.value,\n };\n });\n\n const styles = computed(() => {\n return {\n '--tree-view-node--level': props.level,\n };\n });\n\n const contentText = computed(() => {\n return getObjectValueByPath(props.item, props.textKey) ?? '';\n });\n\n const slotProps = computed(() => {\n return {\n level: props.level,\n imLeaf: imLeaf.value,\n };\n });\n\n useRender(() => {\n const leaves = children.value.map((item: any) => {\n return h(\n YTreeViewNode,\n { ...props, level: (props.level ?? 0) + 1, item },\n slots,\n );\n });\n const indentSpacer: VNodeArrayChildren = [];\n for (let i = 0; i < props.level; i += 1) {\n indentSpacer.push(\n h('div', { class: 'y-tree-view-node__indent-spacer' }),\n );\n }\n return h(\n 'div',\n {\n class: classes.value,\n style: styles.value,\n '.role': 'treeitem',\n 'data-level': props.level,\n },\n [\n h(\n 'div',\n {\n class: 'y-tree-view-node__container',\n onClick: (e: MouseEvent) =>\n props.enableActive ? onClick(e) : void 0,\n },\n [\n h(YPlate),\n h('div', { class: 'y-tree-view-node__indents' }, indentSpacer),\n /* EXPAND */\n !imLeaf.value\n ? h(\n YButton,\n {\n class: 'y-tree-view-node__expand-icon',\n variation: 'icon',\n onClick: (e: MouseEvent) => onClickExpand(e),\n },\n () => [\n slots['expand-icon']\n ? slots['expand-icon']()\n : h(YIconExpand),\n ],\n )\n : h('i', { class: 'y-tree-view-node__no-expand-icon' }),\n props.enableSelect &&\n h(\n 'div',\n {\n class: ['y-tree-view-node__select'],\n onClick: (e: MouseEvent) => onClickSelect(e),\n },\n [h(YIconCheckbox, { checked: selected.value })],\n ),\n /* CONTENT */\n h('div', { class: 'y-tree-view-node__content' }, [\n slots.leading &&\n h(\n 'div',\n { class: 'y-tree-view-node__leading' },\n slots.leading(slotProps.value),\n ),\n h(\n 'div',\n { class: 'y-tree-view-node__text' },\n slots.default\n ? slots.default?.({\n text: contentText.value,\n item: props.item,\n })\n : contentText.value,\n ),\n slots.trailing &&\n h(\n 'div',\n { class: 'y-tree-view-node__trailing' },\n slots.trailing(),\n ),\n ]),\n ],\n ),\n /* CHILDREN */\n children.value.length > 0\n ? h(\n YExpandVTransition,\n { disabled: props.disableTransition },\n expanded.value\n ? () =>\n h(\n 'div',\n {\n class: { 'y-tree-view-node__leaves': true },\n role: 'tree',\n },\n leaves,\n )\n : undefined,\n )\n : undefined,\n ],\n );\n });\n\n const myKey = computed(() => {\n return getObjectValueByPath(props.item, props.itemKey);\n });\n\n expose({\n myKey,\n expanded,\n active,\n selected,\n immediate,\n });\n\n return {\n treeView,\n myKey,\n expanded,\n active,\n selected,\n immediate,\n };\n },\n created() {\n this.treeView?.register?.(this.myKey, this);\n },\n});\n\nexport type YTreeNode = InstanceType<typeof YTreeViewNode>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YTreeViewNode.mjs","names":["computed","defineComponent","h","inject","ref","useRender","getObjectValueByPath","propsFactory","YButton","YPlate","YTextHighlighter","YIconCheckbox","YIconExpand","YExpandVTransition","pressItemsPropsOptions","pressYTreeViewNodeProps","search","String","disableTransition","Boolean","enableActive","activeClass","Array","activeSingleModifier","activeColor","type","default","enableSelect","itemKey","YTreeViewNode","name","components","props","item","Object","level","Number","setup","_ref","slots","expose","treeView","expanded","active","selected","immediate","onClick","e","to","value","updateActive","myKey","emitActive","onClickExpand","stopPropagation","updateExpanded","emitExpanded","onClickSelect","updateSelected","emitSelected","children","itemChildren","imLeaf","length","classes","styles","contentText","itemText","slotProps","searchLoading","leaves","filter","leaf","isExcluded","map","indentSpacer","i","push","class","style","variation","checked","leading","text","keyword","trailing","disabled","role","undefined","created","register"],"sources":["../../../src/components/tree-view/YTreeViewNode.ts"],"sourcesContent":["import {\n PropType,\n VNodeArrayChildren,\n computed,\n defineComponent,\n h,\n inject,\n ref,\n} from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { getObjectValueByPath } from '../../util/common';\nimport { propsFactory } from '../../util/vue-component';\nimport { YButton } from '../button';\nimport { YPlate } from '../plate';\nimport YTextHighlighter from '../text-highlighter/YTextHighlighter';\n\nimport { YIconCheckbox, YIconExpand } from '../icons';\nimport { YExpandVTransition } from '../transitions';\nimport { pressItemsPropsOptions } from \"../../abstract/items\";\n\nexport const pressYTreeViewNodeProps = propsFactory(\n {\n search: String,\n disableTransition: Boolean,\n enableActive: Boolean,\n activeClass: [String, Array],\n activeSingleModifier: String,\n activeColor: {\n type: String,\n default: 'primary',\n },\n enableSelect: Boolean,\n ...pressItemsPropsOptions({\n itemKey: 'id',\n }),\n },\n 'YTreeViewNode',\n);\n\nexport const YTreeViewNode = defineComponent({\n name: 'YTreeNode',\n components: {\n YButton,\n YIconExpand,\n YPlate,\n YIconCheckbox,\n },\n props: {\n item: {\n type: Object as PropType<any>,\n },\n level: {\n type: Number as PropType<number>,\n default: 0,\n },\n ...pressYTreeViewNodeProps(),\n },\n setup(props, { slots, expose }) {\n const treeView = inject<any>('tree-view');\n\n const expanded = ref(false);\n const active = ref(false);\n const selected = ref(false);\n const immediate = ref(false);\n\n function onClick(e: MouseEvent) {\n const to = !active.value;\n active.value = to;\n treeView.updateActive(myKey.value, to, e);\n treeView.emitActive();\n }\n\n function onClickExpand(e: MouseEvent) {\n e.stopPropagation();\n const to = !expanded.value;\n expanded.value = to;\n treeView.updateExpanded(myKey.value, to);\n treeView.emitExpanded();\n }\n\n function onClickSelect(e: MouseEvent) {\n e.stopPropagation();\n const to = !selected.value;\n selected.value = to;\n treeView.updateSelected(myKey.value, to);\n treeView.emitSelected();\n }\n\n const children = computed(() => {\n return props.item?.[props.itemChildren as string] ?? [];\n });\n\n const imLeaf = computed(() => children.value.length < 1);\n\n const classes = computed(() => {\n return {\n 'y-tree-view-node': true,\n 'y-tree-view-node--leaf': imLeaf.value,\n 'y-tree-view-node--expanded': expanded.value,\n 'y-tree-view-node--active': active.value,\n };\n });\n\n const styles = computed(() => {\n return {\n '--tree-view-node--level': props.level,\n };\n });\n\n const contentText = computed(() => {\n return getObjectValueByPath(props.item, props.itemText) ?? '';\n });\n\n const slotProps = computed(() => {\n return {\n level: props.level,\n imLeaf: imLeaf.value,\n };\n });\n\n const searchLoading = computed(() => {\n return treeView.searchLoading.value;\n });\n\n useRender(() => {\n const leaves = children.value\n .filter((leaf: any) => {\n return !treeView.isExcluded(\n getObjectValueByPath(leaf, props.itemKey),\n );\n })\n .map((item: any) => {\n return h(\n YTreeViewNode,\n { ...props, level: (props.level ?? 0) + 1, item },\n slots,\n );\n });\n const indentSpacer: VNodeArrayChildren = [];\n for (let i = 0; i < props.level; i += 1) {\n indentSpacer.push(\n h('div', { class: 'y-tree-view-node__indent-spacer' }),\n );\n }\n return h(\n 'div',\n {\n class: classes.value,\n style: styles.value,\n '.role': 'treeitem',\n 'data-level': props.level,\n },\n [\n h(\n 'div',\n {\n class: 'y-tree-view-node__container',\n onClick: (e: MouseEvent) =>\n props.enableActive ? onClick(e) : void 0,\n },\n [\n h(YPlate),\n h('div', { class: 'y-tree-view-node__indents' }, indentSpacer),\n /* EXPAND */\n !imLeaf.value && leaves.length > 0\n ? h(\n YButton,\n {\n class: 'y-tree-view-node__expand-icon',\n variation: 'icon',\n onClick: (e: MouseEvent) => onClickExpand(e),\n },\n () => [\n slots['expand-icon']\n ? slots['expand-icon']()\n : h(YIconExpand),\n ],\n )\n : h('i', { class: 'y-tree-view-node__no-expand-icon' }),\n props.enableSelect &&\n h(\n 'div',\n {\n class: ['y-tree-view-node__select'],\n onClick: (e: MouseEvent) => onClickSelect(e),\n },\n [h(YIconCheckbox, { checked: selected.value })],\n ),\n /* CONTENT */\n h('div', { class: 'y-tree-view-node__content' }, [\n slots.leading &&\n h(\n 'div',\n { class: 'y-tree-view-node__leading' },\n slots.leading(slotProps.value),\n ),\n h(\n 'div',\n { class: 'y-tree-view-node__text' },\n slots.default\n ? slots.default?.({\n text: contentText.value,\n item: props.item,\n })\n : props.search && !searchLoading.value\n ? h(YTextHighlighter, {\n text: contentText.value,\n keyword: props.search,\n })\n : contentText.value,\n ),\n slots.trailing &&\n h(\n 'div',\n { class: 'y-tree-view-node__trailing' },\n slots.trailing(),\n ),\n ]),\n ],\n ),\n /* CHILDREN */\n children.value.length > 0\n ? h(\n YExpandVTransition,\n { disabled: props.disableTransition },\n expanded.value\n ? () =>\n h(\n 'div',\n {\n class: { 'y-tree-view-node__leaves': true },\n role: 'tree',\n },\n leaves,\n )\n : undefined,\n )\n : undefined,\n ],\n );\n });\n\n const myKey = computed(() => {\n return getObjectValueByPath(props.item, props.itemKey);\n });\n\n expose({\n myKey,\n expanded,\n active,\n selected,\n immediate,\n });\n\n return {\n treeView,\n myKey,\n expanded,\n active,\n selected,\n immediate,\n };\n },\n created() {\n this.treeView?.register?.(this.myKey, this);\n },\n});\n\nexport type YTreeNode = InstanceType<typeof YTreeViewNode>;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/components/tree-view/types.ts"],"sourcesContent":["import { ComponentPublicInstance } from 'vue';\nimport { CandidateKey } from \"../../types\";\n\nexport interface NodeState {\n childKeys: CandidateKey[];\n item: any;\n parentKey: null | CandidateKey;\n vnode: null | ComponentPublicInstance;\n level: number;\n //\n selected: false;\n indeterminate: false;\n active: false;\n expanded: false;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/components/tree-view/types.ts"],"sourcesContent":["import { ComponentPublicInstance } from 'vue';\nimport { CandidateKey } from \"../../types\";\n\nexport interface NodeState {\n childKeys: CandidateKey[];\n item: any;\n parentKey: null | CandidateKey;\n vnode: null | ComponentPublicInstance;\n level: number;\n //\n selected: false;\n indeterminate: false;\n active: false;\n expanded: false;\n}\n\nexport type TreeviewFilterFn = (item: any, search: string, itemText: string) => boolean;\n"],"mappings":""}