yuyeon 0.3.6-beta.3 → 0.3.6-beta.5

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.
@@ -34,6 +34,7 @@ export const pressYPaginationProps = propsFactory({
34
34
  color: String,
35
35
  activeColor: String,
36
36
  buttonVariation: [String],
37
+ activeButtonVariation: [String],
37
38
  align: {
38
39
  type: String,
39
40
  default: 'center'
@@ -207,7 +208,7 @@ export const YPagination = defineComponent({
207
208
  ellipsis: false,
208
209
  disabled: !!props.disabled || +props.length < 2,
209
210
  color: active ? props.activeColor : props.color,
210
- variation: props.buttonVariation,
211
+ variation: active ? props.activeButtonVariation : props.buttonVariation,
211
212
  onClick: e => changePage(e, item)
212
213
  }
213
214
  };
@@ -215,10 +216,10 @@ export const YPagination = defineComponent({
215
216
  });
216
217
  });
217
218
  const styles = computed(() => {
218
- let gap = undefined;
219
+ let gap;
219
220
  if (props.gap) {
220
221
  const value = +props.gap;
221
- if (!isNaN(value)) {
222
+ if (!Number.isNaN(value)) {
222
223
  gap = toStyleSizeValue(value);
223
224
  } else if (typeof props.gap === 'string') {
224
225
  gap = props.gap;
@@ -229,13 +230,12 @@ export const YPagination = defineComponent({
229
230
  };
230
231
  });
231
232
  useRender(() => {
232
- return _createVNode("div", {
233
+ return _createVNode("nav", {
234
+ "ref": resizeObservedRef,
233
235
  "class": ['y-pagination', {
234
236
  [`y-pagination--align-${props.align}`]: props.align !== 'start'
235
237
  }],
236
- "role": 'navigation',
237
- "style": styles.value,
238
- "ref": resizeObservedRef
238
+ "style": styles.value
239
239
  }, [_createVNode("ul", {
240
240
  "class": ['y-pagination__list']
241
241
  }, [props.showEndButton && _createVNode("li", {
@@ -1 +1 @@
1
- {"version":3,"file":"YPagination.js","names":["computed","shallowRef","createVNode","_createVNode","useModelDuplex","useRender","useRefs","useResizeObserver","getRangeArr","defineComponent","propsFactory","toStyleSizeValue","YButton","YIconPageControl","pressYPaginationProps","start","type","Number","String","default","modelValue","props","disabled","Boolean","length","validator","val","totalVisible","maxVisible","showEndButton","gap","color","activeColor","buttonVariation","align","YPagination","name","components","emits","value","change","control","setup","_ref","slots","emit","page","parseInt","itemCount","resizeObservedRef","entries","target","contentRect","firstItem","querySelector","listWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","calcItemCount","fixedCount","fixedWidth","count","Math","max","floor","toFixed","isNaN","min","total","innerWidth","controls","prevDisabled","nextDisabled","first","variation","onClick","e","preventDefault","prev","to","next","last","range","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","refs","updateRef","changePage","event","arguments","undefined","items","map","item","index","ref","active","key","ellipsis","styles"],"sources":["../../../src/components/pagination/YPagination.tsx"],"sourcesContent":["import {\n type ComponentPublicInstance,\n type PropType,\n computed,\n shallowRef,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useRefs } from '@/composables/ref';\nimport { useResizeObserver } from '@/composables/resize-observer';\nimport { getRangeArr } from '@/util/common';\nimport { defineComponent, propsFactory } from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport { YButton } from '../button';\nimport { YIconPageControl } from '../icons/YIconPageControl';\n\nimport './YPagination.scss';\n\nexport const pressYPaginationProps = propsFactory(\n {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start as number,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n maxVisible: [Number, String],\n showEndButton: Boolean,\n gap: {\n type: [String, Number],\n default: 4,\n },\n color: String,\n activeColor: String,\n buttonVariation: [String],\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n // firstIcon: [String],\n // lastIcon: [String],\n // prevIcon: [String],\n // nextIcon: [String],\n },\n 'YPagination',\n);\n\nexport const YPagination = defineComponent({\n name: 'YPagination',\n components: {\n YButton,\n },\n props: {\n ...pressYPaginationProps(),\n },\n emits: {\n 'update:modelValue': (value: number) => true,\n change: (value: number, control?: string) => true,\n },\n setup(props, { slots, emit }) {\n const page = useModelDuplex(props);\n\n const length = computed(() => parseInt(props.length as string, 10));\n const start = computed(() => parseInt(props.start as string, 10));\n\n const itemCount = shallowRef(-1);\n\n const { resizeObservedRef } = useResizeObserver((entries) => {\n if (1 > entries.length) return;\n const { target, contentRect } = entries[0];\n\n const firstItem = target.querySelector(\n '.y-pagination__list > *',\n ) as HTMLElement;\n if (firstItem) {\n const listWidth = contentRect.width;\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n itemCount.value = calcItemCount(listWidth, itemWidth);\n }\n });\n\n function calcItemCount(listWidth: number, itemWidth: number) {\n const fixedCount = props.showEndButton ? 5 : 3;\n const gap = +(props.gap ?? 4);\n const fixedWidth = (itemWidth + gap) * fixedCount - gap;\n const count = Math.max(\n 0,\n Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)),\n );\n const maxVisible = Number(props.maxVisible);\n if (!isNaN(maxVisible)) {\n return Math.min(maxVisible, count);\n }\n return count;\n }\n\n const totalVisible = computed(() => {\n const maxVisible = Number(props.maxVisible);\n if (props.totalVisible) {\n const total = parseInt(props.totalVisible as string, 10);\n if (!isNaN(maxVisible)) {\n return Math.min(total, maxVisible);\n }\n return total;\n } else if (itemCount.value >= 0) return itemCount.value;\n return calcItemCount(innerWidth, 58);\n });\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled =\n !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n page.value = 1;\n emit('change', 1, 'first');\n },\n },\n prev: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.max(1, page.value - 1);\n page.value = to;\n emit('change', to, 'prev');\n },\n },\n next: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.min(+length.value, page.value + 1);\n page.value = to;\n emit('change', to, 'next');\n },\n },\n last: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = +length.value;\n page.value = +length.value;\n emit('change', to, 'last');\n },\n },\n };\n });\n\n const range = computed(() => {\n if (\n length.value <= 0 ||\n isNaN(length.value) ||\n length.value > Number.MAX_SAFE_INTEGER\n ) {\n return [];\n }\n if (totalVisible.value <= 1) {\n return [page.value];\n }\n if (length.value <= totalVisible.value) {\n return getRangeArr(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even\n ? totalVisible.value / 2\n : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n\n if (left - page.value >= 0) {\n return [\n ...getRangeArr(Math.max(1, totalVisible.value - 1), start.value),\n 'ellipsis',\n length.value,\n ];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n ];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3);\n const rangeStart =\n rangeLength === 1\n ? page.value\n : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n 'ellipsis',\n length.value,\n ];\n }\n });\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>();\n\n function changePage(event: Event, to = 1) {\n event.preventDefault();\n page.value = to;\n emit('change', to);\n }\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index);\n\n if (item === 'ellipsis') {\n return {\n active: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n disabled: true, // TODO: skipper\n },\n };\n } else {\n const active = item === page.value;\n return {\n active,\n key: `item-${item}`,\n page: item,\n props: {\n ref,\n ellipsis: false,\n disabled: !!props.disabled || +props.length < 2,\n color: active ? props.activeColor : props.color,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => changePage(e, item),\n },\n };\n }\n });\n });\n\n const styles = computed(() => {\n let gap = undefined;\n if (props.gap) {\n const value = +props.gap;\n if (!isNaN(value)) {\n gap = toStyleSizeValue(value);\n } else if (typeof props.gap === 'string') {\n gap = props.gap;\n }\n }\n return {\n '--y-pagination__gap': gap,\n };\n });\n\n useRender(() => {\n return (\n <div\n class={[\n 'y-pagination',\n { [`y-pagination--align-${props.align}`]: props.align !== 'start' },\n ]}\n role={'navigation'}\n style={styles.value}\n ref={resizeObservedRef}\n >\n <ul class={['y-pagination__list']}>\n {props.showEndButton && (\n <li key=\"first\" class=\"y-pagination__first\">\n {slots.first ? (\n slots.first(controls.value.first)\n ) : (\n <YButton {...controls.value.first}>\n {slots['first-icon'] ? (\n slots['first-icon']()\n ) : (\n <YIconPageControl type={'first'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n <li key=\"prev\" class=\"y-pagination__prev\">\n {slots.prev ? (\n slots.prev(controls.value.prev)\n ) : (\n <YButton {...controls.value.prev}>\n {slots['prev-icon'] ? (\n slots['prev-icon']()\n ) : (\n <YIconPageControl type={'prev'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {items.value.map((item, index) => {\n return (\n <li\n key={item.key}\n class={[\n 'y-pagination__item',\n { 'y-pagination__item--active': item.active },\n ]}\n >\n <YButton {...item.props}>\n {item.props.ellipsis\n ? slots.ellipsis\n ? slots.ellipsis()\n : '...'\n : item.page}\n </YButton>\n </li>\n );\n })}\n <li key=\"next\" class=\"y-pagination__next\">\n {slots.next ? (\n slots.next(controls.value.next)\n ) : (\n <YButton {...controls.value.next}>\n {slots['next-icon'] ? (\n slots['next-icon']()\n ) : (\n <YIconPageControl type={'next'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {props.showEndButton && (\n <li key=\"last\" class=\"y-pagination__last\">\n {slots.last ? (\n slots.last(controls.value.last)\n ) : (\n <YButton {...controls.value.last}>\n {slots['last-icon'] ? (\n slots['last-icon']()\n ) : (\n <YIconPageControl type={'last'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n </ul>\n </div>\n );\n });\n\n return {\n itemCount,\n page,\n refs,\n };\n },\n});\n\nexport type YPagination = InstanceType<typeof YPagination>;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"YPagination.js","names":["computed","shallowRef","createVNode","_createVNode","useModelDuplex","useRender","useRefs","useResizeObserver","getRangeArr","defineComponent","propsFactory","toStyleSizeValue","YButton","YIconPageControl","pressYPaginationProps","start","type","Number","String","default","modelValue","props","disabled","Boolean","length","validator","val","totalVisible","maxVisible","showEndButton","gap","color","activeColor","buttonVariation","activeButtonVariation","align","YPagination","name","components","emits","value","change","control","setup","_ref","slots","emit","page","parseInt","itemCount","resizeObservedRef","entries","target","contentRect","firstItem","querySelector","listWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","calcItemCount","fixedCount","fixedWidth","count","Math","max","floor","toFixed","isNaN","min","total","innerWidth","controls","prevDisabled","nextDisabled","first","variation","onClick","e","preventDefault","prev","to","next","last","range","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","refs","updateRef","changePage","event","arguments","undefined","items","map","item","index","ref","active","key","ellipsis","styles"],"sources":["../../../src/components/pagination/YPagination.tsx"],"sourcesContent":["import {\n type ComponentPublicInstance,\n computed,\n type PropType,\n shallowRef,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useRefs } from '@/composables/ref';\nimport { useResizeObserver } from '@/composables/resize-observer';\nimport { getRangeArr } from '@/util/common';\nimport { defineComponent, propsFactory } from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport { YButton } from '../button';\nimport { YIconPageControl } from '../icons/YIconPageControl';\n\nimport './YPagination.scss';\n\nexport const pressYPaginationProps = propsFactory(\n {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start as number,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n maxVisible: [Number, String],\n showEndButton: Boolean,\n gap: {\n type: [String, Number],\n default: 4,\n },\n color: String,\n activeColor: String,\n buttonVariation: [String],\n activeButtonVariation: [String],\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n // firstIcon: [String],\n // lastIcon: [String],\n // prevIcon: [String],\n // nextIcon: [String],\n },\n 'YPagination',\n);\n\nexport const YPagination = defineComponent({\n name: 'YPagination',\n components: {\n YButton,\n },\n props: {\n ...pressYPaginationProps(),\n },\n emits: {\n 'update:modelValue': (value: number) => true,\n change: (value: number, control?: string) => true,\n },\n setup(props, { slots, emit }) {\n const page = useModelDuplex(props);\n\n const length = computed(() => parseInt(props.length as string, 10));\n const start = computed(() => parseInt(props.start as string, 10));\n\n const itemCount = shallowRef(-1);\n\n const { resizeObservedRef } = useResizeObserver((entries) => {\n if (1 > entries.length) return;\n const { target, contentRect } = entries[0];\n\n const firstItem = target.querySelector(\n '.y-pagination__list > *',\n ) as HTMLElement;\n if (firstItem) {\n const listWidth = contentRect.width;\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n itemCount.value = calcItemCount(listWidth, itemWidth);\n }\n });\n\n function calcItemCount(listWidth: number, itemWidth: number) {\n const fixedCount = props.showEndButton ? 5 : 3;\n const gap = +(props.gap ?? 4);\n const fixedWidth = (itemWidth + gap) * fixedCount - gap;\n const count = Math.max(\n 0,\n Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)),\n );\n const maxVisible = Number(props.maxVisible);\n if (!isNaN(maxVisible)) {\n return Math.min(maxVisible, count);\n }\n return count;\n }\n\n const totalVisible = computed(() => {\n const maxVisible = Number(props.maxVisible);\n if (props.totalVisible) {\n const total = parseInt(props.totalVisible as string, 10);\n if (!isNaN(maxVisible)) {\n return Math.min(total, maxVisible);\n }\n return total;\n } else if (itemCount.value >= 0) return itemCount.value;\n return calcItemCount(innerWidth, 58);\n });\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled =\n !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n page.value = 1;\n emit('change', 1, 'first');\n },\n },\n prev: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.max(1, page.value - 1);\n page.value = to;\n emit('change', to, 'prev');\n },\n },\n next: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.min(+length.value, page.value + 1);\n page.value = to;\n emit('change', to, 'next');\n },\n },\n last: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = +length.value;\n page.value = +length.value;\n emit('change', to, 'last');\n },\n },\n };\n });\n\n const range = computed(() => {\n if (\n length.value <= 0 ||\n isNaN(length.value) ||\n length.value > Number.MAX_SAFE_INTEGER\n ) {\n return [];\n }\n if (totalVisible.value <= 1) {\n return [page.value];\n }\n if (length.value <= totalVisible.value) {\n return getRangeArr(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even\n ? totalVisible.value / 2\n : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n\n if (left - page.value >= 0) {\n return [\n ...getRangeArr(Math.max(1, totalVisible.value - 1), start.value),\n 'ellipsis',\n length.value,\n ];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n ];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3);\n const rangeStart =\n rangeLength === 1\n ? page.value\n : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n 'ellipsis',\n length.value,\n ];\n }\n });\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>();\n\n function changePage(event: Event, to = 1) {\n event.preventDefault();\n page.value = to;\n emit('change', to);\n }\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index);\n\n if (item === 'ellipsis') {\n return {\n active: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n disabled: true, // TODO: skipper\n },\n };\n } else {\n const active = item === page.value;\n return {\n active,\n key: `item-${item}`,\n page: item,\n props: {\n ref,\n ellipsis: false,\n disabled: !!props.disabled || +props.length < 2,\n color: active ? props.activeColor : props.color,\n variation: active ? props.activeButtonVariation : props.buttonVariation,\n onClick: (e: MouseEvent) => changePage(e, item),\n },\n };\n }\n });\n });\n\n const styles = computed(() => {\n let gap: string | undefined;\n if (props.gap) {\n const value = +props.gap;\n if (!Number.isNaN(value)) {\n gap = toStyleSizeValue(value);\n } else if (typeof props.gap === 'string') {\n gap = props.gap;\n }\n }\n return {\n '--y-pagination__gap': gap,\n };\n });\n\n useRender(() => {\n return (\n <nav\n ref={resizeObservedRef}\n class={[\n 'y-pagination',\n { [`y-pagination--align-${props.align}`]: props.align !== 'start' },\n ]}\n style={styles.value}\n >\n <ul class={['y-pagination__list']}>\n {props.showEndButton && (\n <li key=\"first\" class=\"y-pagination__first\">\n {slots.first ? (\n slots.first(controls.value.first)\n ) : (\n <YButton {...controls.value.first}>\n {slots['first-icon'] ? (\n slots['first-icon']()\n ) : (\n <YIconPageControl type={'first'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n <li key=\"prev\" class=\"y-pagination__prev\">\n {slots.prev ? (\n slots.prev(controls.value.prev)\n ) : (\n <YButton {...controls.value.prev}>\n {slots['prev-icon'] ? (\n slots['prev-icon']()\n ) : (\n <YIconPageControl type={'prev'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {items.value.map((item, index) => {\n return (\n <li\n key={item.key}\n class={[\n 'y-pagination__item',\n { 'y-pagination__item--active': item.active },\n ]}\n >\n <YButton {...item.props}>\n {item.props.ellipsis\n ? slots.ellipsis\n ? slots.ellipsis()\n : '...'\n : item.page}\n </YButton>\n </li>\n );\n })}\n <li key=\"next\" class=\"y-pagination__next\">\n {slots.next ? (\n slots.next(controls.value.next)\n ) : (\n <YButton {...controls.value.next}>\n {slots['next-icon'] ? (\n slots['next-icon']()\n ) : (\n <YIconPageControl type={'next'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {props.showEndButton && (\n <li key=\"last\" class=\"y-pagination__last\">\n {slots.last ? (\n slots.last(controls.value.last)\n ) : (\n <YButton {...controls.value.last}>\n {slots['last-icon'] ? (\n slots['last-icon']()\n ) : (\n <YIconPageControl type={'last'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n </ul>\n </nav>\n );\n });\n\n return {\n itemCount,\n page,\n refs,\n };\n },\n});\n\nexport type YPagination = InstanceType<typeof YPagination>;\n"],"mappings":"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","ignoreList":[]}
@@ -37,7 +37,7 @@ export const YTreeView = defineComponent({
37
37
  },
38
38
  ...treeViewNodeProps
39
39
  },
40
- emits: ['update:expanded', 'update:active', 'update:selected'],
40
+ emits: ['update:expanded', 'update:active', 'update:selected', 'mouseenterContainer', 'mouseleaveContainer', 'mousemoveContainer', 'dblclickContainer'],
41
41
  setup(props, _ref) {
42
42
  let {
43
43
  slots,
@@ -1 +1 @@
1
- {"version":3,"file":"YTreeView.js","names":["computed","defineComponent","onMounted","ref","shallowRef","watch","Fragment","_Fragment","createVNode","_createVNode","mergeProps","_mergeProps","createTextVNode","_createTextVNode","provideTreeView","useRender","differenceBetween","isColorValue","deepEqual","getObjectValueByPath","chooseProps","debounce","YProgressBar","filterTreeItem","filterTreeItems","getKeys","pressYTreeViewNodeProps","YTreeViewNode","treeViewNodeProps","YTreeView","name","props","expanded","type","Array","default","active","multipleActive","Boolean","onlyEventActiveStrategy","selected","returnItem","defaultExpand","String","Number","filter","Function","searchDebounceWait","emits","setup","_ref","slots","expose","filterItemsFn","excludeItem","expandedCache","nodes","expandedSet","selectedSet","activeSet","searchLoading","excludedSet","issueVnodeState","updateExpanded","updateActive","updateSelected","emitExpanded","emitActive","emitSelected","isExcluded","items","search","arguments","length","undefined","excluded","Set","value","diff","forEach","key","item","itemKey","itemText","itemChildren","expand","getNodeKey","itemOrKey","updateNodes","parentKey","level","children","exist","Object","hasOwn","existNode","vnode","includes","indeterminate","node","childKeys","map","child","add","neo","deep","until","entries","_ref2","stateWatcher","stateSet","updater","emitter","valuesOfKey","v","old","oldKeys","keys","nodeKey","neoKeys","k","oldSelected","oldActive","clear","flush","renderLeaves","slice","leaf","classes","styles","color","activeColor","activeValue","selectedValue"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import { computed, defineComponent, onMounted, type PropType, type Ref, ref, shallowRef, watch } from 'vue';\n\nimport { provideTreeView } from '@/components/tree-view/tree-view';\nimport { useRender } from '@/composables/component';\nimport type { CandidateKey } from '@/types';\nimport { differenceBetween } from '@/util/array';\nimport { isColorValue } from '@/util/color';\nimport { deepEqual, getObjectValueByPath } from '@/util/common';\nimport { chooseProps } from '@/util/component';\nimport { debounce } from '@/util/debounce';\n\nimport { YProgressBar } from '../progress-bar';\nimport type { NodeState, TreeviewFilterFn } from './types';\nimport { filterTreeItem, filterTreeItems, getKeys } from './util';\nimport { pressYTreeViewNodeProps, YTreeViewNode } from './YTreeViewNode';\n\nimport './YTreeView.scss';\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 onlyEventActiveStrategy: Boolean,\n selected: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\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, expose }) {\n const filterItemsFn = shallowRef(\n debounce(excludeItem, props.searchDebounceWait),\n );\n const expandedCache = ref<CandidateKey[]>([]);\n\n const {\n nodes,\n expanded,\n active,\n selected,\n expandedSet,\n selectedSet,\n activeSet,\n searchLoading,\n excludedSet,\n issueVnodeState,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n isExcluded,\n } = provideTreeView(props);\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, [\n ...expandedSet.value,\n ]);\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 watch(\n () => props.search,\n () => {\n searchLoading.value = true;\n filterItemsFn.value(props.items, props.search, props.filter);\n },\n );\n\n // Util Methods\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 =\n getObjectValueByPath(item, props.itemChildren as string) ?? [];\n const exist = Object.hasOwn(nodes.value, key);\n const existNode = exist\n ? nodes.value[key]\n : {\n vnode: null,\n selected: selected.value?.includes(key) ?? false,\n indeterminate: false,\n active: active.value?.includes(key) ?? false,\n expanded: expanded.value?.includes(key) ?? 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 selectedSet.value.add(key);\n }\n if (nodes.value[key].active) {\n activeSet.value.add(key);\n }\n issueVnodeState(key);\n }\n }\n\n watch(\n expandedSet,\n (neo) => {\n if (!props.search) {\n expandedCache.value = [...neo];\n }\n },\n { deep: true },\n );\n\n function expand(until: boolean | string | number = true) {\n Object.entries(nodes.value).forEach(([key, node]) => {\n if (until === true || Number(until) >= node.level) {\n updateExpanded(key, true);\n }\n });\n emitExpanded();\n return expandedSet.value;\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) => {\n updater(key, false);\n });\n valuesOfKey.forEach((key) => {\n updater(key, true);\n });\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(\n neo,\n props.itemKey,\n props.itemChildren as string,\n );\n const diff = differenceBetween(oldKeys, neoKeys);\n if (diff.length < 1 && neoKeys.length < oldKeys.length) {\n return;\n }\n diff.forEach((k) => {\n delete nodes.value[k];\n });\n\n // init\n const oldSelected = [...selectedSet.value];\n const oldActive = [...activeSet.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 if (!deepEqual(oldActive, [...activeSet.value])) {\n emitActive();\n }\n filterItemsFn.value(neo, props.search, props.filter);\n },\n { deep: true, flush: 'sync' },\n );\n\n // Provide & Issue\n\n updateNodes(props.items);\n\n const renderLeaves = computed(() => {\n return props.items.slice().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 = `var(--y-theme-${props.activeColor})`;\n }\n return {\n [`--y-tree-view__active-color`]: color,\n };\n });\n\n onMounted(() => {\n if (props.search) {\n searchLoading.value = true;\n excludeItem(props.items, props.search, props.filter);\n }\n\n if (props.defaultExpand != null && props.defaultExpand !== false) {\n expandedCache.value = [...expand(props.defaultExpand)];\n } else {\n expanded.value.forEach((v: any) => {\n updateExpanded(getNodeKey(v), true);\n });\n emitExpanded();\n }\n\n for (const activeValue of props.active.map(getNodeKey)) {\n updateActive(activeValue, true);\n }\n\n for (const selectedValue of props.selected.map(getNodeKey)) {\n updateSelected(selectedValue, true);\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.slice().map((leaf) => {\n return (\n <YTreeViewNode\n v-slots={slots}\n key={getObjectValueByPath(leaf, props.itemKey)}\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 renderLeaves,\n };\n },\n});\n\nexport type YTreeView = InstanceType<typeof YTreeView>;\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,eAAe,EAAEC,SAAS,EAA2BC,GAAG,EAAEC,UAAU,EAAEC,KAAK,EAAAC,QAAA,IAAAC,SAAA,EAAAC,WAAA,IAAAC,YAAA,EAAAC,UAAA,IAAAC,WAAA,EAAAC,eAAA,IAAAC,gBAAA,QAAQ,KAAK;AAAC,SAEnGC,eAAe;AAAA,SACfC,SAAS;AAAA,SAETC,iBAAiB;AAAA,SACjBC,YAAY;AAAA,SACZC,SAAS,EAAEC,oBAAoB;AAAA,SAC/BC,WAAW;AAAA,SACXC,QAAQ;AAAA,SAERC,YAAY;AAAA,SAEZC,cAAc,EAAEC,eAAe,EAAEC,OAAO;AAAA,SACxCC,uBAAuB,EAAEC,aAAa;AAE/C;AAEA,MAAMC,iBAAiB,GAAGF,uBAAuB,CAAC,CAAC;AAEnD,OAAO,MAAMG,SAAS,GAAG5B,eAAe,CAAC;EACvC6B,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,uBAAuB,EAAED,OAAO;IAChCE,QAAQ,EAAE;MACRP,IAAI,EAAE,CAACC,KAAK,CAA6B;MACzCC,OAAO,EAAEA,CAAA,KAAM;IACjB,CAAC;IACDM,UAAU,EAAEH,OAAO;IACnBI,aAAa,EAAE,CAACJ,OAAO,EAAEK,MAAM,EAAEC,MAAM,CAAC;IACxCC,MAAM,EAAEC,QAAsC;IAC9CC,kBAAkB,EAAE;MAClBd,IAAI,EAAEW,MAA0B;MAChCT,OAAO,EAAE;IACX,CAAC;IACD,GAAGP;EACL,CAAC;EACDoB,KAAK,EAAE,CAAC,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,CAAC;EAC9DC,KAAKA,CAAClB,KAAK,EAAAmB,IAAA,EAAqB;IAAA,IAAnB;MAAEC,KAAK;MAAEC;IAAO,CAAC,GAAAF,IAAA;IAC5B,MAAMG,aAAa,GAAGjD,UAAU,CAC9BiB,QAAQ,CAACiC,WAAW,EAAEvB,KAAK,CAACgB,kBAAkB,CAChD,CAAC;IACD,MAAMQ,aAAa,GAAGpD,GAAG,CAAiB,EAAE,CAAC;IAE7C,MAAM;MACJqD,KAAK;MACLxB,QAAQ;MACRI,MAAM;MACNI,QAAQ;MACRiB,WAAW;MACXC,WAAW;MACXC,SAAS;MACTC,aAAa;MACbC,WAAW;MACXC,eAAe;MACfC,cAAc;MACdC,YAAY;MACZC,cAAc;MACdC,YAAY;MACZC,UAAU;MACVC,YAAY;MACZC;IACF,CAAC,GAAGvD,eAAe,CAACiB,KAAK,CAAC;IAE1B,SAASuB,WAAWA,CAACgB,KAAY,EAAwC;MAAA,IAAtCC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;MAAA,IAAE3B,MAAM,GAAA2B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGjD,cAAc;MACrE,MAAMoD,QAAQ,GAAG,IAAIC,GAAG,CAAe,CAAC;MACxC,IAAI,CAACL,MAAM,EAAE;QACXX,aAAa,CAACiB,KAAK,GAAG,KAAK;QAC3BhB,WAAW,CAACgB,KAAK,GAAGF,QAAQ;QAC5B,MAAMG,IAAI,GAAG9D,iBAAiB,CAACuC,aAAa,CAACsB,KAAK,EAAE,CAClD,GAAGpB,WAAW,CAACoB,KAAK,CACrB,CAAC;QACFC,IAAI,CAACC,OAAO,CAAEC,GAAG,IAAK;UACpBjB,cAAc,CAACiB,GAAG,EAAE,KAAK,CAAC;QAC5B,CAAC,CAAC;QACFzB,aAAa,CAACsB,KAAK,CAACE,OAAO,CAAEC,GAAG,IAAK;UACnCjB,cAAc,CAACiB,GAAG,EAAE,IAAI,CAAC;QAC3B,CAAC,CAAC;QACF;MACF;MACA,KAAK,MAAMC,IAAI,IAAIX,KAAK,EAAE;QACxB9C,eAAe,CACbqB,MAAM,EACNoC,IAAI,EACJV,MAAM,IAAI,EAAE,EACZxC,KAAK,CAACmD,OAAO,EACbnD,KAAK,CAACoD,QAAQ,EACdpD,KAAK,CAACqD,YAAY,EAClBT,QACF,CAAC;MACH;MACAd,WAAW,CAACgB,KAAK,GAAGF,QAAQ;MAC5Bf,aAAa,CAACiB,KAAK,GAAG,KAAK;MAC3BQ,MAAM,CAAC,CAAC;IACV;IAEAhF,KAAK,CACH,MAAM0B,KAAK,CAACwC,MAAM,EAClB,MAAM;MACJX,aAAa,CAACiB,KAAK,GAAG,IAAI;MAC1BxB,aAAa,CAACwB,KAAK,CAAC9C,KAAK,CAACuC,KAAK,EAAEvC,KAAK,CAACwC,MAAM,EAAExC,KAAK,CAACc,MAAM,CAAC;IAC9D,CACF,CAAC;;IAED;IACA,SAASyC,UAAUA,CAACC,SAAc,EAAE;MAClC,OAAOxD,KAAK,CAACU,UAAU,GACnBtB,oBAAoB,CAACoE,SAAS,EAAExD,KAAK,CAACmD,OAAO,CAAC,GAC9CK,SAAS;IACf;;IAEA;IACA,SAASC,WAAWA,CAClBlB,KAAY,EAGZ;MAAA,IAFAmB,SAA8B,GAAAjB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MAAA,IACrCkB,KAAK,GAAAlB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;MAET,KAAK,MAAMS,IAAI,IAAIX,KAAK,EAAE;QACxB,MAAMU,GAAG,GAAG7D,oBAAoB,CAAC8D,IAAI,EAAElD,KAAK,CAACmD,OAAO,CAAC;QACrD,MAAMS,QAAQ,GACZxE,oBAAoB,CAAC8D,IAAI,EAAElD,KAAK,CAACqD,YAAsB,CAAC,IAAI,EAAE;QAChE,MAAMQ,KAAK,GAAGC,MAAM,CAACC,MAAM,CAACtC,KAAK,CAACqB,KAAK,EAAEG,GAAG,CAAC;QAC7C,MAAMe,SAAS,GAAGH,KAAK,GACnBpC,KAAK,CAACqB,KAAK,CAACG,GAAG,CAAC,GAChB;UACEgB,KAAK,EAAE,IAAI;UACXxD,QAAQ,EAAEA,QAAQ,CAACqC,KAAK,EAAEoB,QAAQ,CAACjB,GAAG,CAAC,IAAI,KAAK;UAChDkB,aAAa,EAAE,KAAK;UACpB9D,MAAM,EAAEA,MAAM,CAACyC,KAAK,EAAEoB,QAAQ,CAACjB,GAAG,CAAC,IAAI,KAAK;UAC5ChD,QAAQ,EAAEA,QAAQ,CAAC6C,KAAK,EAAEoB,QAAQ,CAACjB,GAAG,CAAC,IAAI;QAC7C,CAAC;QACL,MAAMmB,IAAe,GAAG;UACtBH,KAAK,EAAED,SAAS,CAACC,KAAK;UACtBf,IAAI;UACJS,KAAK;UACLD,SAAS;UACTW,SAAS,EAAET,QAAQ,CAACU,GAAG,CAAEC,KAAU,IACjCnF,oBAAoB,CAACmF,KAAK,EAAEvE,KAAK,CAACmD,OAAO,CAC3C,CAAC;UACDlD,QAAQ,EAAE2D,QAAQ,CAAClB,MAAM,GAAG,CAAC,IAAIsB,SAAS,CAAC/D,QAAQ;UACnDI,MAAM,EAAE2D,SAAS,CAAC3D,MAAM;UACxB8D,aAAa,EAAEH,SAAS,CAACG,aAAa;UACtC1D,QAAQ,EAAEuD,SAAS,CAACvD;QACtB,CAAC;QAEDgD,WAAW,CAACG,QAAQ,EAAEX,GAAG,EAAEU,KAAK,GAAG,CAAC,CAAC;QAErClC,KAAK,CAACqB,KAAK,CAACG,GAAG,CAAC,GAAGmB,IAAI;QACvB,IAAI3C,KAAK,CAACqB,KAAK,CAACG,GAAG,CAAC,CAAChD,QAAQ,EAAE;UAC7ByB,WAAW,CAACoB,KAAK,CAAC0B,GAAG,CAACvB,GAAG,CAAC;QAC5B;QACA,IAAIxB,KAAK,CAACqB,KAAK,CAACG,GAAG,CAAC,CAACxC,QAAQ,EAAE;UAC7BkB,WAAW,CAACmB,KAAK,CAAC0B,GAAG,CAACvB,GAAG,CAAC;QAC5B;QACA,IAAIxB,KAAK,CAACqB,KAAK,CAACG,GAAG,CAAC,CAAC5C,MAAM,EAAE;UAC3BuB,SAAS,CAACkB,KAAK,CAAC0B,GAAG,CAACvB,GAAG,CAAC;QAC1B;QACAlB,eAAe,CAACkB,GAAG,CAAC;MACtB;IACF;IAEA3E,KAAK,CACHoD,WAAW,EACV+C,GAAG,IAAK;MACP,IAAI,CAACzE,KAAK,CAACwC,MAAM,EAAE;QACjBhB,aAAa,CAACsB,KAAK,GAAG,CAAC,GAAG2B,GAAG,CAAC;MAChC;IACF,CAAC,EACD;MAAEC,IAAI,EAAE;IAAK,CACf,CAAC;IAED,SAASpB,MAAMA,CAAA,EAA0C;MAAA,IAAzCqB,KAAgC,GAAAlC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MACrDqB,MAAM,CAACc,OAAO,CAACnD,KAAK,CAACqB,KAAK,CAAC,CAACE,OAAO,CAAC6B,KAAA,IAAiB;QAAA,IAAhB,CAAC5B,GAAG,EAAEmB,IAAI,CAAC,GAAAS,KAAA;QAC9C,IAAIF,KAAK,KAAK,IAAI,IAAI9D,MAAM,CAAC8D,KAAK,CAAC,IAAIP,IAAI,CAACT,KAAK,EAAE;UACjD3B,cAAc,CAACiB,GAAG,EAAE,IAAI,CAAC;QAC3B;MACF,CAAC,CAAC;MACFd,YAAY,CAAC,CAAC;MACd,OAAOT,WAAW,CAACoB,KAAK;IAC1B;IAEA,SAASgC,YAAYA,CACnBhC,KAAY,EACZiC,QAAgC,EAChCC,OAAiD,EACjDC,OAAmB,EACnB;MACA,MAAMC,WAAW,GAAGlF,KAAK,CAACU,UAAU,GAChCoC,KAAK,CAACwB,GAAG,CAAEa,CAAC,IAAK/F,oBAAoB,CAAC+F,CAAC,EAAEnF,KAAK,CAACmD,OAAO,CAAC,CAAC,GACxDL,KAAK;MACT,MAAMsC,GAAG,GAAG,CAAC,GAAGL,QAAQ,CAACjC,KAAK,CAAC;MAC/B,IAAI3D,SAAS,CAACiG,GAAG,EAAEF,WAAW,CAAC,EAAE;QAC/B;MACF;MACAE,GAAG,CAACpC,OAAO,CAAEC,GAAG,IAAK;QACnB+B,OAAO,CAAC/B,GAAG,EAAE,KAAK,CAAC;MACrB,CAAC,CAAC;MACFiC,WAAW,CAAClC,OAAO,CAAEC,GAAG,IAAK;QAC3B+B,OAAO,CAAC/B,GAAG,EAAE,IAAI,CAAC;MACpB,CAAC,CAAC;MACFgC,OAAO,CAAC,CAAC;IACX;IAEA3G,KAAK,CAAC2B,QAAQ,EAAGwE,GAAG,IAAK;MACvBK,YAAY,CAACL,GAAG,EAAE/C,WAAW,EAAEM,cAAc,EAAEG,YAAY,CAAC;IAC9D,CAAC,CAAC;IAEF7D,KAAK,CAAC+B,MAAM,EAAGoE,GAAG,IAAK;MACrBK,YAAY,CAACL,GAAG,EAAE7C,SAAS,EAAEK,YAAY,EAAEG,UAAU,CAAC;IACxD,CAAC,CAAC;IAEF9D,KAAK,CAACmC,QAAQ,EAAGgE,GAAG,IAAK;MACvBK,YAAY,CAACL,GAAG,EAAE9C,WAAW,EAAEO,cAAc,EAAEG,YAAY,CAAC;IAC9D,CAAC,CAAC;IAEF/D,KAAK,CACH,MAAM0B,KAAK,CAACuC,KAAK,EAChBkC,GAAU,IAAK;MACd,MAAMY,OAAO,GAAGvB,MAAM,CAACwB,IAAI,CAAC7D,KAAK,CAACqB,KAAK,CAAC,CAACwB,GAAG,CAAEiB,OAAO,IACnDnG,oBAAoB,CAACqC,KAAK,CAACqB,KAAK,CAACyC,OAAO,CAAC,CAACrC,IAAI,EAAElD,KAAK,CAACmD,OAAO,CAC/D,CAAC;MACD,MAAMqC,OAAO,GAAG9F,OAAO,CACrB+E,GAAG,EACHzE,KAAK,CAACmD,OAAO,EACbnD,KAAK,CAACqD,YACR,CAAC;MACD,MAAMN,IAAI,GAAG9D,iBAAiB,CAACoG,OAAO,EAAEG,OAAO,CAAC;MAChD,IAAIzC,IAAI,CAACL,MAAM,GAAG,CAAC,IAAI8C,OAAO,CAAC9C,MAAM,GAAG2C,OAAO,CAAC3C,MAAM,EAAE;QACtD;MACF;MACAK,IAAI,CAACC,OAAO,CAAEyC,CAAC,IAAK;QAClB,OAAOhE,KAAK,CAACqB,KAAK,CAAC2C,CAAC,CAAC;MACvB,CAAC,CAAC;;MAEF;MACA,MAAMC,WAAW,GAAG,CAAC,GAAG/D,WAAW,CAACmB,KAAK,CAAC;MAC1C,MAAM6C,SAAS,GAAG,CAAC,GAAG/D,SAAS,CAACkB,KAAK,CAAC;MACtCnB,WAAW,CAACmB,KAAK,CAAC8C,KAAK,CAAC,CAAC;MACzBlE,WAAW,CAACoB,KAAK,CAAC8C,KAAK,CAAC,CAAC;MACzBhE,SAAS,CAACkB,KAAK,CAAC8C,KAAK,CAAC,CAAC;MACvBnC,WAAW,CAACgB,GAAG,CAAC;MAChB,IAAI,CAACtF,SAAS,CAACuG,WAAW,EAAE,CAAC,GAAG/D,WAAW,CAACmB,KAAK,CAAC,CAAC,EAAE;QACnDT,YAAY,CAAC,CAAC;MAChB;MACA,IAAI,CAAClD,SAAS,CAACwG,SAAS,EAAE,CAAC,GAAG/D,SAAS,CAACkB,KAAK,CAAC,CAAC,EAAE;QAC/CV,UAAU,CAAC,CAAC;MACd;MACAd,aAAa,CAACwB,KAAK,CAAC2B,GAAG,EAAEzE,KAAK,CAACwC,MAAM,EAAExC,KAAK,CAACc,MAAM,CAAC;IACtD,CAAC,EACD;MAAE4D,IAAI,EAAE,IAAI;MAAEmB,KAAK,EAAE;IAAO,CAC9B,CAAC;;IAED;;IAEApC,WAAW,CAACzD,KAAK,CAACuC,KAAK,CAAC;IAExB,MAAMuD,YAAY,GAAG7H,QAAQ,CAAC,MAAM;MAClC,OAAO+B,KAAK,CAACuC,KAAK,CAACwD,KAAK,CAAC,CAAC,CAACjF,MAAM,CAAEkF,IAAI,IAAK;QAC1C,OAAO,CAAC1D,UAAU,CAAClD,oBAAoB,CAAC4G,IAAI,EAAEhG,KAAK,CAACmD,OAAO,CAAC,CAAC;MAC/D,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM8C,OAAO,GAAGhI,QAAQ,CAAC,MAAM;MAC7B,OAAO;QACL,aAAa,EAAE;MACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAMiI,MAAM,GAAGjI,QAAQ,CAAC,MAAM;MAC5B,IAAIkI,KAAK,GAAGnG,KAAK,CAACoG,WAAW;MAC7B,IAAIpG,KAAK,CAACoG,WAAW,IAAI,CAAClH,YAAY,CAACc,KAAK,CAACoG,WAAW,CAAC,EAAE;QACzDD,KAAK,GAAG,iBAAiBnG,KAAK,CAACoG,WAAW,GAAG;MAC/C;MACA,OAAO;QACL,CAAC,6BAA6B,GAAGD;MACnC,CAAC;IACH,CAAC,CAAC;IAEFhI,SAAS,CAAC,MAAM;MACd,IAAI6B,KAAK,CAACwC,MAAM,EAAE;QAChBX,aAAa,CAACiB,KAAK,GAAG,IAAI;QAC1BvB,WAAW,CAACvB,KAAK,CAACuC,KAAK,EAAEvC,KAAK,CAACwC,MAAM,EAAExC,KAAK,CAACc,MAAM,CAAC;MACtD;MAEA,IAAId,KAAK,CAACW,aAAa,IAAI,IAAI,IAAIX,KAAK,CAACW,aAAa,KAAK,KAAK,EAAE;QAChEa,aAAa,CAACsB,KAAK,GAAG,CAAC,GAAGQ,MAAM,CAACtD,KAAK,CAACW,aAAa,CAAC,CAAC;MACxD,CAAC,MAAM;QACLV,QAAQ,CAAC6C,KAAK,CAACE,OAAO,CAAEmC,CAAM,IAAK;UACjCnD,cAAc,CAACuB,UAAU,CAAC4B,CAAC,CAAC,EAAE,IAAI,CAAC;QACrC,CAAC,CAAC;QACFhD,YAAY,CAAC,CAAC;MAChB;MAEA,KAAK,MAAMkE,WAAW,IAAIrG,KAAK,CAACK,MAAM,CAACiE,GAAG,CAACf,UAAU,CAAC,EAAE;QACtDtB,YAAY,CAACoE,WAAW,EAAE,IAAI,CAAC;MACjC;MAEA,KAAK,MAAMC,aAAa,IAAItG,KAAK,CAACS,QAAQ,CAAC6D,GAAG,CAACf,UAAU,CAAC,EAAE;QAC1DrB,cAAc,CAACoE,aAAa,EAAE,IAAI,CAAC;MACrC;IACF,CAAC,CAAC;IAEFjF,MAAM,CAAC;MACLiC;IACF,CAAC,CAAC;IAEFtE,SAAS,CAAC,MAAM;MACd,OAAAN,YAAA,CAAAF,SAAA,SAAAE,YAAA;QAAA,SAEgBuH,OAAO,CAACnD,KAAK;QAAA,SAASoD,MAAM,CAACpD,KAAK;QAAA;MAAA,IAC3CjB,aAAa,CAACiB,KAAK,IAAApE,YAAA,CAAAa,YAAA;QAAA;MAAA,QAAkC,EACrDuG,YAAY,CAAChD,KAAK,CAACJ,MAAM,GAAG,CAAC,GAC5BoD,YAAY,CAAChD,KAAK,CAACiD,KAAK,CAAC,CAAC,CAACzB,GAAG,CAAE0B,IAAI,IAAK;QACvC,OAAAtH,YAAA,CAAAkB,aAAA,EAAAhB,WAAA;UAAA,OAGSQ,oBAAoB,CAAC4G,IAAI,EAAEhG,KAAK,CAACmD,OAAO;QAAC;UAE5C,GAAG9D,WAAW,CAACW,KAAK,EAAEH,iBAAiB,CAAC;UACxCqD,IAAI,EAAE8C,IAAI;UACVrC,KAAK,EAAE;QAAC,IALDvC,KAAK;MASpB,CAAC,CAAC,GAAA1C,YAAA;QAAA;MAAA,IAGC0C,KAAK,CAAC,SAAS,CAAC,GAAGA,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAA1C,YAAA,gBAAAI,gBAAA,aAAuB,EAEhE;IAIT,CAAC,CAAC;IAEF,OAAO;MACL2C,KAAK;MACLC,WAAW;MACXC,WAAW;MACXC,SAAS;MACTE,WAAW;MACXD,aAAa;MACbL,aAAa;MACbsE;IACF,CAAC;EACH;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"YTreeView.js","names":["computed","defineComponent","onMounted","ref","shallowRef","watch","Fragment","_Fragment","createVNode","_createVNode","mergeProps","_mergeProps","createTextVNode","_createTextVNode","provideTreeView","useRender","differenceBetween","isColorValue","deepEqual","getObjectValueByPath","chooseProps","debounce","YProgressBar","filterTreeItem","filterTreeItems","getKeys","pressYTreeViewNodeProps","YTreeViewNode","treeViewNodeProps","YTreeView","name","props","expanded","type","Array","default","active","multipleActive","Boolean","onlyEventActiveStrategy","selected","returnItem","defaultExpand","String","Number","filter","Function","searchDebounceWait","emits","setup","_ref","slots","expose","filterItemsFn","excludeItem","expandedCache","nodes","expandedSet","selectedSet","activeSet","searchLoading","excludedSet","issueVnodeState","updateExpanded","updateActive","updateSelected","emitExpanded","emitActive","emitSelected","isExcluded","items","search","arguments","length","undefined","excluded","Set","value","diff","forEach","key","item","itemKey","itemText","itemChildren","expand","getNodeKey","itemOrKey","updateNodes","parentKey","level","children","exist","Object","hasOwn","existNode","vnode","includes","indeterminate","node","childKeys","map","child","add","neo","deep","until","entries","_ref2","stateWatcher","stateSet","updater","emitter","valuesOfKey","v","old","oldKeys","keys","nodeKey","neoKeys","k","oldSelected","oldActive","clear","flush","renderLeaves","slice","leaf","classes","styles","color","activeColor","activeValue","selectedValue"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import { computed, defineComponent, onMounted, type PropType, type Ref, ref, shallowRef, watch } from 'vue';\n\nimport { provideTreeView } from '@/components/tree-view/tree-view';\nimport { useRender } from '@/composables/component';\nimport type { CandidateKey } from '@/types';\nimport { differenceBetween } from '@/util/array';\nimport { isColorValue } from '@/util/color';\nimport { deepEqual, getObjectValueByPath } from '@/util/common';\nimport { chooseProps } from '@/util/component';\nimport { debounce } from '@/util/debounce';\n\nimport { YProgressBar } from '../progress-bar';\nimport type { NodeState, TreeviewFilterFn } from './types';\nimport { filterTreeItem, filterTreeItems, getKeys } from './util';\nimport { pressYTreeViewNodeProps, YTreeViewNode } from './YTreeViewNode';\n\nimport './YTreeView.scss';\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 onlyEventActiveStrategy: Boolean,\n selected: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\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: [\n 'update:expanded',\n 'update:active',\n 'update:selected',\n 'mouseenterContainer',\n 'mouseleaveContainer',\n 'mousemoveContainer',\n 'dblclickContainer',\n ],\n setup(props, { slots, expose }) {\n const filterItemsFn = shallowRef(\n debounce(excludeItem, props.searchDebounceWait),\n );\n const expandedCache = ref<CandidateKey[]>([]);\n\n const {\n nodes,\n expanded,\n active,\n selected,\n expandedSet,\n selectedSet,\n activeSet,\n searchLoading,\n excludedSet,\n issueVnodeState,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n isExcluded,\n } = provideTreeView(props);\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, [\n ...expandedSet.value,\n ]);\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 watch(\n () => props.search,\n () => {\n searchLoading.value = true;\n filterItemsFn.value(props.items, props.search, props.filter);\n },\n );\n\n // Util Methods\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 =\n getObjectValueByPath(item, props.itemChildren as string) ?? [];\n const exist = Object.hasOwn(nodes.value, key);\n const existNode = exist\n ? nodes.value[key]\n : {\n vnode: null,\n selected: selected.value?.includes(key) ?? false,\n indeterminate: false,\n active: active.value?.includes(key) ?? false,\n expanded: expanded.value?.includes(key) ?? 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 selectedSet.value.add(key);\n }\n if (nodes.value[key].active) {\n activeSet.value.add(key);\n }\n issueVnodeState(key);\n }\n }\n\n watch(\n expandedSet,\n (neo) => {\n if (!props.search) {\n expandedCache.value = [...neo];\n }\n },\n { deep: true },\n );\n\n function expand(until: boolean | string | number = true) {\n Object.entries(nodes.value).forEach(([key, node]) => {\n if (until === true || Number(until) >= node.level) {\n updateExpanded(key, true);\n }\n });\n emitExpanded();\n return expandedSet.value;\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) => {\n updater(key, false);\n });\n valuesOfKey.forEach((key) => {\n updater(key, true);\n });\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(\n neo,\n props.itemKey,\n props.itemChildren as string,\n );\n const diff = differenceBetween(oldKeys, neoKeys);\n if (diff.length < 1 && neoKeys.length < oldKeys.length) {\n return;\n }\n diff.forEach((k) => {\n delete nodes.value[k];\n });\n\n // init\n const oldSelected = [...selectedSet.value];\n const oldActive = [...activeSet.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 if (!deepEqual(oldActive, [...activeSet.value])) {\n emitActive();\n }\n filterItemsFn.value(neo, props.search, props.filter);\n },\n { deep: true, flush: 'sync' },\n );\n\n // Provide & Issue\n\n updateNodes(props.items);\n\n const renderLeaves = computed(() => {\n return props.items.slice().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 = `var(--y-theme-${props.activeColor})`;\n }\n return {\n [`--y-tree-view__active-color`]: color,\n };\n });\n\n onMounted(() => {\n if (props.search) {\n searchLoading.value = true;\n excludeItem(props.items, props.search, props.filter);\n }\n\n if (props.defaultExpand != null && props.defaultExpand !== false) {\n expandedCache.value = [...expand(props.defaultExpand)];\n } else {\n expanded.value.forEach((v: any) => {\n updateExpanded(getNodeKey(v), true);\n });\n emitExpanded();\n }\n\n for (const activeValue of props.active.map(getNodeKey)) {\n updateActive(activeValue, true);\n }\n\n for (const selectedValue of props.selected.map(getNodeKey)) {\n updateSelected(selectedValue, true);\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.slice().map((leaf) => {\n return (\n <YTreeViewNode\n v-slots={slots}\n key={getObjectValueByPath(leaf, props.itemKey)}\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 renderLeaves,\n };\n },\n});\n\nexport type YTreeView = InstanceType<typeof YTreeView>;\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,eAAe,EAAEC,SAAS,EAA2BC,GAAG,EAAEC,UAAU,EAAEC,KAAK,EAAAC,QAAA,IAAAC,SAAA,EAAAC,WAAA,IAAAC,YAAA,EAAAC,UAAA,IAAAC,WAAA,EAAAC,eAAA,IAAAC,gBAAA,QAAQ,KAAK;AAAC,SAEnGC,eAAe;AAAA,SACfC,SAAS;AAAA,SAETC,iBAAiB;AAAA,SACjBC,YAAY;AAAA,SACZC,SAAS,EAAEC,oBAAoB;AAAA,SAC/BC,WAAW;AAAA,SACXC,QAAQ;AAAA,SAERC,YAAY;AAAA,SAEZC,cAAc,EAAEC,eAAe,EAAEC,OAAO;AAAA,SACxCC,uBAAuB,EAAEC,aAAa;AAE/C;AAEA,MAAMC,iBAAiB,GAAGF,uBAAuB,CAAC,CAAC;AAEnD,OAAO,MAAMG,SAAS,GAAG5B,eAAe,CAAC;EACvC6B,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,uBAAuB,EAAED,OAAO;IAChCE,QAAQ,EAAE;MACRP,IAAI,EAAE,CAACC,KAAK,CAA6B;MACzCC,OAAO,EAAEA,CAAA,KAAM;IACjB,CAAC;IACDM,UAAU,EAAEH,OAAO;IACnBI,aAAa,EAAE,CAACJ,OAAO,EAAEK,MAAM,EAAEC,MAAM,CAAC;IACxCC,MAAM,EAAEC,QAAsC;IAC9CC,kBAAkB,EAAE;MAClBd,IAAI,EAAEW,MAA0B;MAChCT,OAAO,EAAE;IACX,CAAC;IACD,GAAGP;EACL,CAAC;EACDoB,KAAK,EAAE,CACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,CACpB;EACDC,KAAKA,CAAClB,KAAK,EAAAmB,IAAA,EAAqB;IAAA,IAAnB;MAAEC,KAAK;MAAEC;IAAO,CAAC,GAAAF,IAAA;IAC5B,MAAMG,aAAa,GAAGjD,UAAU,CAC9BiB,QAAQ,CAACiC,WAAW,EAAEvB,KAAK,CAACgB,kBAAkB,CAChD,CAAC;IACD,MAAMQ,aAAa,GAAGpD,GAAG,CAAiB,EAAE,CAAC;IAE7C,MAAM;MACJqD,KAAK;MACLxB,QAAQ;MACRI,MAAM;MACNI,QAAQ;MACRiB,WAAW;MACXC,WAAW;MACXC,SAAS;MACTC,aAAa;MACbC,WAAW;MACXC,eAAe;MACfC,cAAc;MACdC,YAAY;MACZC,cAAc;MACdC,YAAY;MACZC,UAAU;MACVC,YAAY;MACZC;IACF,CAAC,GAAGvD,eAAe,CAACiB,KAAK,CAAC;IAE1B,SAASuB,WAAWA,CAACgB,KAAY,EAAwC;MAAA,IAAtCC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;MAAA,IAAE3B,MAAM,GAAA2B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGjD,cAAc;MACrE,MAAMoD,QAAQ,GAAG,IAAIC,GAAG,CAAe,CAAC;MACxC,IAAI,CAACL,MAAM,EAAE;QACXX,aAAa,CAACiB,KAAK,GAAG,KAAK;QAC3BhB,WAAW,CAACgB,KAAK,GAAGF,QAAQ;QAC5B,MAAMG,IAAI,GAAG9D,iBAAiB,CAACuC,aAAa,CAACsB,KAAK,EAAE,CAClD,GAAGpB,WAAW,CAACoB,KAAK,CACrB,CAAC;QACFC,IAAI,CAACC,OAAO,CAAEC,GAAG,IAAK;UACpBjB,cAAc,CAACiB,GAAG,EAAE,KAAK,CAAC;QAC5B,CAAC,CAAC;QACFzB,aAAa,CAACsB,KAAK,CAACE,OAAO,CAAEC,GAAG,IAAK;UACnCjB,cAAc,CAACiB,GAAG,EAAE,IAAI,CAAC;QAC3B,CAAC,CAAC;QACF;MACF;MACA,KAAK,MAAMC,IAAI,IAAIX,KAAK,EAAE;QACxB9C,eAAe,CACbqB,MAAM,EACNoC,IAAI,EACJV,MAAM,IAAI,EAAE,EACZxC,KAAK,CAACmD,OAAO,EACbnD,KAAK,CAACoD,QAAQ,EACdpD,KAAK,CAACqD,YAAY,EAClBT,QACF,CAAC;MACH;MACAd,WAAW,CAACgB,KAAK,GAAGF,QAAQ;MAC5Bf,aAAa,CAACiB,KAAK,GAAG,KAAK;MAC3BQ,MAAM,CAAC,CAAC;IACV;IAEAhF,KAAK,CACH,MAAM0B,KAAK,CAACwC,MAAM,EAClB,MAAM;MACJX,aAAa,CAACiB,KAAK,GAAG,IAAI;MAC1BxB,aAAa,CAACwB,KAAK,CAAC9C,KAAK,CAACuC,KAAK,EAAEvC,KAAK,CAACwC,MAAM,EAAExC,KAAK,CAACc,MAAM,CAAC;IAC9D,CACF,CAAC;;IAED;IACA,SAASyC,UAAUA,CAACC,SAAc,EAAE;MAClC,OAAOxD,KAAK,CAACU,UAAU,GACnBtB,oBAAoB,CAACoE,SAAS,EAAExD,KAAK,CAACmD,OAAO,CAAC,GAC9CK,SAAS;IACf;;IAEA;IACA,SAASC,WAAWA,CAClBlB,KAAY,EAGZ;MAAA,IAFAmB,SAA8B,GAAAjB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MAAA,IACrCkB,KAAK,GAAAlB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;MAET,KAAK,MAAMS,IAAI,IAAIX,KAAK,EAAE;QACxB,MAAMU,GAAG,GAAG7D,oBAAoB,CAAC8D,IAAI,EAAElD,KAAK,CAACmD,OAAO,CAAC;QACrD,MAAMS,QAAQ,GACZxE,oBAAoB,CAAC8D,IAAI,EAAElD,KAAK,CAACqD,YAAsB,CAAC,IAAI,EAAE;QAChE,MAAMQ,KAAK,GAAGC,MAAM,CAACC,MAAM,CAACtC,KAAK,CAACqB,KAAK,EAAEG,GAAG,CAAC;QAC7C,MAAMe,SAAS,GAAGH,KAAK,GACnBpC,KAAK,CAACqB,KAAK,CAACG,GAAG,CAAC,GAChB;UACEgB,KAAK,EAAE,IAAI;UACXxD,QAAQ,EAAEA,QAAQ,CAACqC,KAAK,EAAEoB,QAAQ,CAACjB,GAAG,CAAC,IAAI,KAAK;UAChDkB,aAAa,EAAE,KAAK;UACpB9D,MAAM,EAAEA,MAAM,CAACyC,KAAK,EAAEoB,QAAQ,CAACjB,GAAG,CAAC,IAAI,KAAK;UAC5ChD,QAAQ,EAAEA,QAAQ,CAAC6C,KAAK,EAAEoB,QAAQ,CAACjB,GAAG,CAAC,IAAI;QAC7C,CAAC;QACL,MAAMmB,IAAe,GAAG;UACtBH,KAAK,EAAED,SAAS,CAACC,KAAK;UACtBf,IAAI;UACJS,KAAK;UACLD,SAAS;UACTW,SAAS,EAAET,QAAQ,CAACU,GAAG,CAAEC,KAAU,IACjCnF,oBAAoB,CAACmF,KAAK,EAAEvE,KAAK,CAACmD,OAAO,CAC3C,CAAC;UACDlD,QAAQ,EAAE2D,QAAQ,CAAClB,MAAM,GAAG,CAAC,IAAIsB,SAAS,CAAC/D,QAAQ;UACnDI,MAAM,EAAE2D,SAAS,CAAC3D,MAAM;UACxB8D,aAAa,EAAEH,SAAS,CAACG,aAAa;UACtC1D,QAAQ,EAAEuD,SAAS,CAACvD;QACtB,CAAC;QAEDgD,WAAW,CAACG,QAAQ,EAAEX,GAAG,EAAEU,KAAK,GAAG,CAAC,CAAC;QAErClC,KAAK,CAACqB,KAAK,CAACG,GAAG,CAAC,GAAGmB,IAAI;QACvB,IAAI3C,KAAK,CAACqB,KAAK,CAACG,GAAG,CAAC,CAAChD,QAAQ,EAAE;UAC7ByB,WAAW,CAACoB,KAAK,CAAC0B,GAAG,CAACvB,GAAG,CAAC;QAC5B;QACA,IAAIxB,KAAK,CAACqB,KAAK,CAACG,GAAG,CAAC,CAACxC,QAAQ,EAAE;UAC7BkB,WAAW,CAACmB,KAAK,CAAC0B,GAAG,CAACvB,GAAG,CAAC;QAC5B;QACA,IAAIxB,KAAK,CAACqB,KAAK,CAACG,GAAG,CAAC,CAAC5C,MAAM,EAAE;UAC3BuB,SAAS,CAACkB,KAAK,CAAC0B,GAAG,CAACvB,GAAG,CAAC;QAC1B;QACAlB,eAAe,CAACkB,GAAG,CAAC;MACtB;IACF;IAEA3E,KAAK,CACHoD,WAAW,EACV+C,GAAG,IAAK;MACP,IAAI,CAACzE,KAAK,CAACwC,MAAM,EAAE;QACjBhB,aAAa,CAACsB,KAAK,GAAG,CAAC,GAAG2B,GAAG,CAAC;MAChC;IACF,CAAC,EACD;MAAEC,IAAI,EAAE;IAAK,CACf,CAAC;IAED,SAASpB,MAAMA,CAAA,EAA0C;MAAA,IAAzCqB,KAAgC,GAAAlC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MACrDqB,MAAM,CAACc,OAAO,CAACnD,KAAK,CAACqB,KAAK,CAAC,CAACE,OAAO,CAAC6B,KAAA,IAAiB;QAAA,IAAhB,CAAC5B,GAAG,EAAEmB,IAAI,CAAC,GAAAS,KAAA;QAC9C,IAAIF,KAAK,KAAK,IAAI,IAAI9D,MAAM,CAAC8D,KAAK,CAAC,IAAIP,IAAI,CAACT,KAAK,EAAE;UACjD3B,cAAc,CAACiB,GAAG,EAAE,IAAI,CAAC;QAC3B;MACF,CAAC,CAAC;MACFd,YAAY,CAAC,CAAC;MACd,OAAOT,WAAW,CAACoB,KAAK;IAC1B;IAEA,SAASgC,YAAYA,CACnBhC,KAAY,EACZiC,QAAgC,EAChCC,OAAiD,EACjDC,OAAmB,EACnB;MACA,MAAMC,WAAW,GAAGlF,KAAK,CAACU,UAAU,GAChCoC,KAAK,CAACwB,GAAG,CAAEa,CAAC,IAAK/F,oBAAoB,CAAC+F,CAAC,EAAEnF,KAAK,CAACmD,OAAO,CAAC,CAAC,GACxDL,KAAK;MACT,MAAMsC,GAAG,GAAG,CAAC,GAAGL,QAAQ,CAACjC,KAAK,CAAC;MAC/B,IAAI3D,SAAS,CAACiG,GAAG,EAAEF,WAAW,CAAC,EAAE;QAC/B;MACF;MACAE,GAAG,CAACpC,OAAO,CAAEC,GAAG,IAAK;QACnB+B,OAAO,CAAC/B,GAAG,EAAE,KAAK,CAAC;MACrB,CAAC,CAAC;MACFiC,WAAW,CAAClC,OAAO,CAAEC,GAAG,IAAK;QAC3B+B,OAAO,CAAC/B,GAAG,EAAE,IAAI,CAAC;MACpB,CAAC,CAAC;MACFgC,OAAO,CAAC,CAAC;IACX;IAEA3G,KAAK,CAAC2B,QAAQ,EAAGwE,GAAG,IAAK;MACvBK,YAAY,CAACL,GAAG,EAAE/C,WAAW,EAAEM,cAAc,EAAEG,YAAY,CAAC;IAC9D,CAAC,CAAC;IAEF7D,KAAK,CAAC+B,MAAM,EAAGoE,GAAG,IAAK;MACrBK,YAAY,CAACL,GAAG,EAAE7C,SAAS,EAAEK,YAAY,EAAEG,UAAU,CAAC;IACxD,CAAC,CAAC;IAEF9D,KAAK,CAACmC,QAAQ,EAAGgE,GAAG,IAAK;MACvBK,YAAY,CAACL,GAAG,EAAE9C,WAAW,EAAEO,cAAc,EAAEG,YAAY,CAAC;IAC9D,CAAC,CAAC;IAEF/D,KAAK,CACH,MAAM0B,KAAK,CAACuC,KAAK,EAChBkC,GAAU,IAAK;MACd,MAAMY,OAAO,GAAGvB,MAAM,CAACwB,IAAI,CAAC7D,KAAK,CAACqB,KAAK,CAAC,CAACwB,GAAG,CAAEiB,OAAO,IACnDnG,oBAAoB,CAACqC,KAAK,CAACqB,KAAK,CAACyC,OAAO,CAAC,CAACrC,IAAI,EAAElD,KAAK,CAACmD,OAAO,CAC/D,CAAC;MACD,MAAMqC,OAAO,GAAG9F,OAAO,CACrB+E,GAAG,EACHzE,KAAK,CAACmD,OAAO,EACbnD,KAAK,CAACqD,YACR,CAAC;MACD,MAAMN,IAAI,GAAG9D,iBAAiB,CAACoG,OAAO,EAAEG,OAAO,CAAC;MAChD,IAAIzC,IAAI,CAACL,MAAM,GAAG,CAAC,IAAI8C,OAAO,CAAC9C,MAAM,GAAG2C,OAAO,CAAC3C,MAAM,EAAE;QACtD;MACF;MACAK,IAAI,CAACC,OAAO,CAAEyC,CAAC,IAAK;QAClB,OAAOhE,KAAK,CAACqB,KAAK,CAAC2C,CAAC,CAAC;MACvB,CAAC,CAAC;;MAEF;MACA,MAAMC,WAAW,GAAG,CAAC,GAAG/D,WAAW,CAACmB,KAAK,CAAC;MAC1C,MAAM6C,SAAS,GAAG,CAAC,GAAG/D,SAAS,CAACkB,KAAK,CAAC;MACtCnB,WAAW,CAACmB,KAAK,CAAC8C,KAAK,CAAC,CAAC;MACzBlE,WAAW,CAACoB,KAAK,CAAC8C,KAAK,CAAC,CAAC;MACzBhE,SAAS,CAACkB,KAAK,CAAC8C,KAAK,CAAC,CAAC;MACvBnC,WAAW,CAACgB,GAAG,CAAC;MAChB,IAAI,CAACtF,SAAS,CAACuG,WAAW,EAAE,CAAC,GAAG/D,WAAW,CAACmB,KAAK,CAAC,CAAC,EAAE;QACnDT,YAAY,CAAC,CAAC;MAChB;MACA,IAAI,CAAClD,SAAS,CAACwG,SAAS,EAAE,CAAC,GAAG/D,SAAS,CAACkB,KAAK,CAAC,CAAC,EAAE;QAC/CV,UAAU,CAAC,CAAC;MACd;MACAd,aAAa,CAACwB,KAAK,CAAC2B,GAAG,EAAEzE,KAAK,CAACwC,MAAM,EAAExC,KAAK,CAACc,MAAM,CAAC;IACtD,CAAC,EACD;MAAE4D,IAAI,EAAE,IAAI;MAAEmB,KAAK,EAAE;IAAO,CAC9B,CAAC;;IAED;;IAEApC,WAAW,CAACzD,KAAK,CAACuC,KAAK,CAAC;IAExB,MAAMuD,YAAY,GAAG7H,QAAQ,CAAC,MAAM;MAClC,OAAO+B,KAAK,CAACuC,KAAK,CAACwD,KAAK,CAAC,CAAC,CAACjF,MAAM,CAAEkF,IAAI,IAAK;QAC1C,OAAO,CAAC1D,UAAU,CAAClD,oBAAoB,CAAC4G,IAAI,EAAEhG,KAAK,CAACmD,OAAO,CAAC,CAAC;MAC/D,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM8C,OAAO,GAAGhI,QAAQ,CAAC,MAAM;MAC7B,OAAO;QACL,aAAa,EAAE;MACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAMiI,MAAM,GAAGjI,QAAQ,CAAC,MAAM;MAC5B,IAAIkI,KAAK,GAAGnG,KAAK,CAACoG,WAAW;MAC7B,IAAIpG,KAAK,CAACoG,WAAW,IAAI,CAAClH,YAAY,CAACc,KAAK,CAACoG,WAAW,CAAC,EAAE;QACzDD,KAAK,GAAG,iBAAiBnG,KAAK,CAACoG,WAAW,GAAG;MAC/C;MACA,OAAO;QACL,CAAC,6BAA6B,GAAGD;MACnC,CAAC;IACH,CAAC,CAAC;IAEFhI,SAAS,CAAC,MAAM;MACd,IAAI6B,KAAK,CAACwC,MAAM,EAAE;QAChBX,aAAa,CAACiB,KAAK,GAAG,IAAI;QAC1BvB,WAAW,CAACvB,KAAK,CAACuC,KAAK,EAAEvC,KAAK,CAACwC,MAAM,EAAExC,KAAK,CAACc,MAAM,CAAC;MACtD;MAEA,IAAId,KAAK,CAACW,aAAa,IAAI,IAAI,IAAIX,KAAK,CAACW,aAAa,KAAK,KAAK,EAAE;QAChEa,aAAa,CAACsB,KAAK,GAAG,CAAC,GAAGQ,MAAM,CAACtD,KAAK,CAACW,aAAa,CAAC,CAAC;MACxD,CAAC,MAAM;QACLV,QAAQ,CAAC6C,KAAK,CAACE,OAAO,CAAEmC,CAAM,IAAK;UACjCnD,cAAc,CAACuB,UAAU,CAAC4B,CAAC,CAAC,EAAE,IAAI,CAAC;QACrC,CAAC,CAAC;QACFhD,YAAY,CAAC,CAAC;MAChB;MAEA,KAAK,MAAMkE,WAAW,IAAIrG,KAAK,CAACK,MAAM,CAACiE,GAAG,CAACf,UAAU,CAAC,EAAE;QACtDtB,YAAY,CAACoE,WAAW,EAAE,IAAI,CAAC;MACjC;MAEA,KAAK,MAAMC,aAAa,IAAItG,KAAK,CAACS,QAAQ,CAAC6D,GAAG,CAACf,UAAU,CAAC,EAAE;QAC1DrB,cAAc,CAACoE,aAAa,EAAE,IAAI,CAAC;MACrC;IACF,CAAC,CAAC;IAEFjF,MAAM,CAAC;MACLiC;IACF,CAAC,CAAC;IAEFtE,SAAS,CAAC,MAAM;MACd,OAAAN,YAAA,CAAAF,SAAA,SAAAE,YAAA;QAAA,SAEgBuH,OAAO,CAACnD,KAAK;QAAA,SAASoD,MAAM,CAACpD,KAAK;QAAA;MAAA,IAC3CjB,aAAa,CAACiB,KAAK,IAAApE,YAAA,CAAAa,YAAA;QAAA;MAAA,QAAkC,EACrDuG,YAAY,CAAChD,KAAK,CAACJ,MAAM,GAAG,CAAC,GAC5BoD,YAAY,CAAChD,KAAK,CAACiD,KAAK,CAAC,CAAC,CAACzB,GAAG,CAAE0B,IAAI,IAAK;QACvC,OAAAtH,YAAA,CAAAkB,aAAA,EAAAhB,WAAA;UAAA,OAGSQ,oBAAoB,CAAC4G,IAAI,EAAEhG,KAAK,CAACmD,OAAO;QAAC;UAE5C,GAAG9D,WAAW,CAACW,KAAK,EAAEH,iBAAiB,CAAC;UACxCqD,IAAI,EAAE8C,IAAI;UACVrC,KAAK,EAAE;QAAC,IALDvC,KAAK;MASpB,CAAC,CAAC,GAAA1C,YAAA;QAAA;MAAA,IAGC0C,KAAK,CAAC,SAAS,CAAC,GAAGA,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAA1C,YAAA,gBAAAI,gBAAA,aAAuB,EAEhE;IAIT,CAAC,CAAC;IAEF,OAAO;MACL2C,KAAK;MACLC,WAAW;MACXC,WAAW;MACXC,SAAS;MACTE,WAAW;MACXD,aAAa;MACbL,aAAa;MACbsE;IACF,CAAC;EACH;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"YTreeViewNode.js","names":["computed","mergeProps","onBeforeMount","ref","resolveComponent","watch","createVNode","_createVNode","_mergeProps","pressItemsPropsOptions","useTreeView","useRender","getObjectValueByPath","getPropertyFromItem","defineComponent","propsFactory","YButton","YIconCheckbox","YIconExpand","YPlate","YTextHighlighter","YExpandVTransition","pressYTreeViewNodeProps","search","String","disableTransition","Boolean","enableActive","activeStrategy","type","default","activeClass","Array","activeSingleModifier","requiredActive","activeColor","enableSelect","selectStrategy","onMouseenterContainer","Function","onMouseleaveContainer","onMousemoveContainer","onDblclickContainer","itemSelectable","itemKey","YTreeViewNode","name","components","props","item","Object","level","Number","slots","setup","_ref","expose","YTreeNode","treeView","container$","expanded","active","selected","indeterminate","myKey","children","itemChildren","slice","imLeaf","value","length","searchLoading","leaves","filter","leaf","isExcluded","childrenSelection","selectedState","map","child","childrenAllChecked","all","childrenSomeChecked","some","isChecked","classes","styles","contentText","itemText","disabledSelect","selectable","isArray","includes","slotProps","toggleActive","e","to","updateActive","emitActive","onClick","onClickExpand","stopPropagation","updateExpanded","emitExpanded","onClickSelect","updateSelected","emitSelected","toggleExpand","indentSpacer","i","push","leading","text","trailing","_len","arguments","args","_key","_len2","_key2","_len3","_key3","_len4","_key4","nodeState","register"],"sources":["../../../src/components/tree-view/YTreeViewNode.tsx"],"sourcesContent":["/** biome-ignore-all lint/a11y/noStaticElementInteractions: <explanation> */\r\n/** biome-ignore-all lint/a11y/useFocusableInteractive: <explanation> */\r\n/** biome-ignore-all lint/a11y/useKeyWithClickEvents: <explanation> */\r\nimport {\r\n computed,\r\n mergeProps,\r\n onBeforeMount,\r\n type PropType,\r\n ref,\r\n resolveComponent,\r\n type SlotsType,\r\n type VNodeArrayChildren,\r\n watch,\r\n} from 'vue';\r\n\r\nimport { pressItemsPropsOptions } from '@/abstract/items';\r\nimport { useTreeView } from '@/components/tree-view/tree-view';\r\nimport { useRender } from '@/composables/component';\r\nimport { getObjectValueByPath, getPropertyFromItem } from '@/util/common';\r\nimport { defineComponent, propsFactory } from '@/util/component';\r\n\r\nimport { YButton } from '../button';\r\nimport { YIconCheckbox, YIconExpand } from '../icons';\r\nimport { YPlate } from '../plate';\r\nimport { YTextHighlighter } from '../text-highlighter/YTextHighlighter';\r\nimport { YExpandVTransition } from '../transitions';\r\n\r\nexport const pressYTreeViewNodeProps = propsFactory(\r\n {\r\n search: String,\r\n disableTransition: Boolean,\r\n enableActive: Boolean,\r\n activeStrategy: {\r\n /**\r\n * cascade: only action descendent leaves\r\n * relative: cascade after check parent (ancestor)\r\n */\r\n type: String as PropType<'independent' | 'cascade' | 'relative'>,\r\n default: 'independent',\r\n },\r\n activeClass: [String, Array],\r\n activeSingleModifier: String,\r\n requiredActive: Boolean,\r\n activeColor: {\r\n type: String,\r\n default: 'primary',\r\n },\r\n enableSelect: Boolean,\r\n selectStrategy: {\r\n /**\r\n * cascade: only action descendent leaves\r\n * relative: cascade after check parent (ancestor)\r\n * leaves: relative after return values only leaf\r\n */\r\n type: String as PropType<'independent' | 'cascade' | 'relative' | 'leaf'>,\r\n default: 'relative',\r\n },\r\n onMouseenterContainer: Function,\r\n onMouseleaveContainer: Function,\r\n onMousemoveContainer: Function,\r\n onDblclickContainer: Function,\r\n itemSelectable: {\r\n type: [String, Array, Function] as PropType<any>,\r\n },\r\n ...pressItemsPropsOptions({\r\n itemKey: 'id',\r\n }),\r\n },\r\n 'YTreeViewNode',\r\n);\r\n\r\n/**\r\n * TODO: correct selected values what selectStrategy leaf or others\r\n */\r\nexport const YTreeViewNode = defineComponent({\r\n name: 'YTreeNode',\r\n components: {\r\n YButton,\r\n YIconExpand,\r\n YPlate,\r\n YIconCheckbox,\r\n },\r\n props: {\r\n item: {\r\n type: Object as PropType<any>,\r\n },\r\n level: {\r\n type: Number as PropType<number>,\r\n default: 0,\r\n },\r\n ...pressYTreeViewNodeProps(),\r\n },\r\n slots: Object as SlotsType<{\r\n default: any;\r\n 'expand-icon': any;\r\n leading: any;\r\n trailing: any;\r\n }>,\r\n setup(props, { slots, expose }) {\r\n const YTreeNode = resolveComponent('YTreeViewNode', true) as any;\r\n const treeView = useTreeView();\r\n const container$ = ref<HTMLElement>();\r\n\r\n const expanded = ref(false);\r\n const active = ref(false);\r\n const selected = ref(false);\r\n const indeterminate = ref(false);\r\n\r\n const myKey = computed(() =>\r\n getObjectValueByPath(props.item, props.itemKey),\r\n );\r\n\r\n const children = computed(() => {\r\n return (\r\n getObjectValueByPath(props.item, props.itemChildren as string) ?? []\r\n ).slice();\r\n });\r\n\r\n const imLeaf = computed(() => children.value.length < 1);\r\n\r\n const searchLoading = computed(() => {\r\n return treeView.searchLoading.value;\r\n });\r\n\r\n const leaves = computed(() => {\r\n return children.value.filter((leaf: any) => {\r\n return !treeView.isExcluded(getObjectValueByPath(leaf, props.itemKey));\r\n });\r\n });\r\n\r\n const childrenSelection = computed(() =>\r\n treeView.selectedState.value(\r\n myKey.value,\r\n children.value.map((child: any) =>\r\n getObjectValueByPath(child, props.itemKey),\r\n ),\r\n ),\r\n );\r\n\r\n const childrenAllChecked = computed(() => {\r\n return !!children.value?.length && childrenSelection.value.all;\r\n });\r\n\r\n const childrenSomeChecked = computed(() => {\r\n return (\r\n (props.selectStrategy === 'relative' ||\r\n props.selectStrategy === 'leaf') &&\r\n (children.value?.length ?? 0) > 0 &&\r\n !childrenAllChecked.value &&\r\n childrenSelection.value.some\r\n );\r\n });\r\n\r\n const isChecked = computed(() => {\r\n return (\r\n selected.value ||\r\n (props.selectStrategy === 'leaf' && childrenAllChecked.value)\r\n );\r\n });\r\n\r\n const classes = computed(() => {\r\n return {\r\n 'y-tree-view-node': true,\r\n 'y-tree-view-node--leaf': imLeaf.value,\r\n 'y-tree-view-node--expanded': expanded.value,\r\n 'y-tree-view-node--active': active.value,\r\n };\r\n });\r\n\r\n const styles = computed(() => {\r\n return {\r\n '--tree-view-node--level': props.level,\r\n };\r\n });\r\n\r\n const contentText = computed(() => {\r\n return getObjectValueByPath(props.item, props.itemText) ?? '';\r\n });\r\n\r\n const disabledSelect = computed(() => {\r\n if (props.itemSelectable != null) {\r\n let selectable = true;\r\n if (typeof props.itemSelectable === 'function') {\r\n selectable = !!props.itemSelectable(props.item);\r\n } else if (Array.isArray(props.itemSelectable)) {\r\n selectable = props.itemSelectable.includes(myKey.value);\r\n } else {\r\n selectable = getPropertyFromItem(\r\n props.item,\r\n props.itemSelectable,\r\n true,\r\n );\r\n }\r\n\r\n return !selectable;\r\n }\r\n return false;\r\n });\r\n\r\n const slotProps = computed(() => {\r\n return {\r\n level: props.level,\r\n imLeaf: imLeaf.value,\r\n toggleActive,\r\n };\r\n });\r\n\r\n watch(childrenSomeChecked, (value) => {\r\n indeterminate.value = value;\r\n });\r\n\r\n function toggleActive(e?: MouseEvent) {\r\n const to = !active.value;\r\n active.value = to;\r\n treeView.updateActive(myKey.value, to, e);\r\n treeView.emitActive();\r\n }\r\n\r\n function onClick(e: MouseEvent) {\r\n toggleActive(e);\r\n }\r\n\r\n function onClickExpand(e: MouseEvent) {\r\n e.stopPropagation();\r\n const to = !expanded.value;\r\n expanded.value = to;\r\n treeView.updateExpanded(myKey.value, to);\r\n treeView.emitExpanded();\r\n }\r\n\r\n function onClickSelect(e: MouseEvent) {\r\n e.stopPropagation();\r\n if (disabledSelect.value) return;\r\n const to = !isChecked.value;\r\n selected.value = to;\r\n treeView.updateSelected(myKey.value, to);\r\n treeView.emitSelected();\r\n }\r\n\r\n function onMouseenterContainer(e: MouseEvent) {\r\n props.onMouseenterContainer?.(e, {\r\n ...slotProps.value,\r\n item: props.item,\r\n });\r\n }\r\n\r\n function onMouseleaveContainer(e: MouseEvent) {\r\n props.onMouseleaveContainer?.(e, {\r\n ...slotProps.value,\r\n item: props.item,\r\n });\r\n }\r\n\r\n function onMousemoveContainer(e: MouseEvent) {\r\n props.onMousemoveContainer?.(e, { ...slotProps.value, item: props.item });\r\n }\r\n\r\n function onDblclickContainer(e: MouseEvent) {\r\n props.onDblclickContainer?.(e, { ...slotProps.value, item: props.item, toggleExpand: () => onClickExpand(e) });\r\n }\r\n\r\n useRender(() => {\r\n const indentSpacer: VNodeArrayChildren = [];\r\n for (let i = 0; i < props.level; i += 1) {\r\n indentSpacer.push(\r\n <div class={'y-tree-view-node__indent-spacer'}></div>,\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n class={classes.value}\r\n style={styles.value}\r\n role=\"treeitem\"\r\n data-level={props.level}\r\n >\r\n <div\r\n ref={container$}\r\n class={'y-tree-view-node__container'}\r\n onClick={(e: MouseEvent) =>\r\n props.enableActive ? onClick(e) : void 0\r\n }\r\n onMouseenter={props.onMouseenterContainer && onMouseenterContainer}\r\n onMouseleave={props.onMouseleaveContainer && onMouseleaveContainer}\r\n onMousemove={props.onMousemoveContainer && onMousemoveContainer}\r\n onDblclick={onDblclickContainer}\r\n >\r\n <YPlate />\r\n <div class={'y-tree-view-node__indents'}>{indentSpacer}</div>\r\n {/* EXPAND */}\r\n {!imLeaf.value && leaves.value.length > 0 ? (\r\n <YButton\r\n class={'y-tree-view-node__expand-icon'}\r\n variation={'icon'}\r\n onClick={onClickExpand}\r\n >\r\n {slots['expand-icon'] ? (\r\n slots['expand-icon']()\r\n ) : (\r\n <YIconExpand></YIconExpand>\r\n )}\r\n </YButton>\r\n ) : (\r\n <i class={'y-tree-view-node__no-expand-icon'}></i>\r\n )}\r\n {/* SELECT */}\r\n {props.enableSelect && (\r\n // biome-ignore lint/a11y/useSemanticElements: passive\r\n <div\r\n class={[\r\n 'y-tree-view-node__select',\r\n {\r\n 'y-tree-view-node__select--disabled': disabledSelect.value,\r\n },\r\n ]}\r\n role=\"checkbox\"\r\n aria-checked={isChecked.value}\r\n onClick={onClickSelect}\r\n >\r\n <YIconCheckbox\r\n checked={isChecked.value}\r\n indeterminate={!selected.value && childrenSomeChecked.value}\r\n disabled={disabledSelect.value}\r\n ></YIconCheckbox>\r\n </div>\r\n )}\r\n {/* CONTENT */}\r\n <div class={'y-tree-view-node__content'}>\r\n {slots.leading && (\r\n <div class={'y-tree-view-node__leading'}>\r\n {slots.leading(slotProps.value)}\r\n </div>\r\n )}\r\n <div class={'y-tree-view-node__text'}>\r\n {slots.default ? (\r\n slots.default?.({\r\n text: contentText.value,\r\n item: props.item,\r\n ...slotProps.value,\r\n })\r\n ) : props.search && !searchLoading.value ? (\r\n <YTextHighlighter\r\n text={contentText.value}\r\n keyword={props.search}\r\n ></YTextHighlighter>\r\n ) : (\r\n contentText.value\r\n )}\r\n </div>\r\n {slots.trailing && (\r\n <div class={'y-tree-view-node__trailing'}>\r\n {slots.trailing(slotProps.value)}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {/* CHILDREN */}\r\n {children.value.length > 0 && (\r\n <YExpandVTransition disabled={props.disableTransition}>\r\n {expanded.value && (\r\n <div class={['y-tree-view-node__leaves']} role=\"tree\">\r\n {leaves.value.map((item: any) => {\r\n return (\r\n <YTreeNode\r\n {...mergeProps(props)}\r\n key={getObjectValueByPath(item, props.itemKey)}\r\n level={(props.level ?? 0) + 1}\r\n item={item}\r\n >\r\n {{\r\n default:\r\n slots.default &&\r\n ((...args: any[]) => slots.default?.(...args)),\r\n 'expand-icon':\r\n slots['expand-icon'] &&\r\n ((...args: any[]) =>\r\n slots['expand-icon']?.(...args)),\r\n leading:\r\n slots.leading &&\r\n ((...args: any[]) => slots.leading?.(...args)),\r\n trailing:\r\n slots.trailing &&\r\n ((...args: any[]) => slots.trailing?.(...args)),\r\n }}\r\n </YTreeNode>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </YExpandVTransition>\r\n )}\r\n </div>\r\n );\r\n });\r\n\r\n const nodeState = {\r\n myKey,\r\n expanded,\r\n active,\r\n selected,\r\n indeterminate,\r\n };\r\n\r\n expose(nodeState);\r\n\r\n onBeforeMount(() => {\r\n treeView?.register?.(myKey.value, nodeState);\r\n });\r\n\r\n return {\r\n treeView,\r\n myKey,\r\n expanded,\r\n active,\r\n selected,\r\n indeterminate,\r\n childrenSelection,\r\n };\r\n },\r\n});\r\n\r\nexport type YTreeNode = InstanceType<typeof YTreeViewNode>;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"YTreeViewNode.js","names":["computed","mergeProps","onBeforeMount","ref","resolveComponent","watch","createVNode","_createVNode","_mergeProps","pressItemsPropsOptions","useTreeView","useRender","getObjectValueByPath","getPropertyFromItem","defineComponent","propsFactory","YButton","YIconCheckbox","YIconExpand","YPlate","YTextHighlighter","YExpandVTransition","pressYTreeViewNodeProps","search","String","disableTransition","Boolean","enableActive","activeStrategy","type","default","activeClass","Array","activeSingleModifier","requiredActive","activeColor","enableSelect","selectStrategy","onMouseenterContainer","Function","onMouseleaveContainer","onMousemoveContainer","onDblclickContainer","itemSelectable","itemKey","YTreeViewNode","name","components","props","item","Object","level","Number","slots","setup","_ref","expose","YTreeNode","treeView","container$","expanded","active","selected","indeterminate","myKey","children","itemChildren","slice","imLeaf","value","length","searchLoading","leaves","filter","leaf","isExcluded","childrenSelection","selectedState","map","child","childrenAllChecked","all","childrenSomeChecked","some","isChecked","classes","styles","contentText","itemText","disabledSelect","selectable","isArray","includes","slotProps","toggleActive","e","to","updateActive","emitActive","onClick","onClickExpand","stopPropagation","updateExpanded","emitExpanded","onClickSelect","updateSelected","emitSelected","toggleExpand","indentSpacer","i","push","leading","text","trailing","_len","arguments","args","_key","_len2","_key2","_len3","_key3","_len4","_key4","nodeState","register"],"sources":["../../../src/components/tree-view/YTreeViewNode.tsx"],"sourcesContent":["/** biome-ignore-all lint/a11y/noStaticElementInteractions: <explanation> */\r\n/** biome-ignore-all lint/a11y/useFocusableInteractive: <explanation> */\r\n/** biome-ignore-all lint/a11y/useKeyWithClickEvents: <explanation> */\r\nimport {\r\n computed,\r\n mergeProps,\r\n onBeforeMount,\r\n type PropType,\r\n ref,\r\n resolveComponent,\r\n type SlotsType,\r\n type VNodeArrayChildren,\r\n watch,\r\n} from 'vue';\r\n\r\nimport { pressItemsPropsOptions } from '@/abstract/items';\r\nimport { useTreeView } from '@/components/tree-view/tree-view';\r\nimport { useRender } from '@/composables/component';\r\nimport { getObjectValueByPath, getPropertyFromItem } from '@/util/common';\r\nimport { defineComponent, propsFactory } from '@/util/component';\r\n\r\nimport { YButton } from '../button';\r\nimport { YIconCheckbox, YIconExpand } from '../icons';\r\nimport { YPlate } from '../plate';\r\nimport { YTextHighlighter } from '../text-highlighter/YTextHighlighter';\r\nimport { YExpandVTransition } from '../transitions';\r\n\r\nexport const pressYTreeViewNodeProps = propsFactory(\r\n {\r\n search: String,\r\n disableTransition: Boolean,\r\n enableActive: Boolean,\r\n activeStrategy: {\r\n /**\r\n * cascade: only action descendent leaves\r\n * relative: cascade after check parent (ancestor)\r\n */\r\n type: String as PropType<'independent' | 'cascade' | 'relative'>,\r\n default: 'independent',\r\n },\r\n activeClass: [String, Array],\r\n activeSingleModifier: String,\r\n requiredActive: Boolean,\r\n activeColor: {\r\n type: String,\r\n default: 'primary',\r\n },\r\n enableSelect: Boolean,\r\n selectStrategy: {\r\n /**\r\n * cascade: only action descendent leaves\r\n * relative: cascade after check parent (ancestor)\r\n * leaves: relative after return values only leaf\r\n */\r\n type: String as PropType<'independent' | 'cascade' | 'relative' | 'leaf'>,\r\n default: 'relative',\r\n },\r\n onMouseenterContainer: Function,\r\n onMouseleaveContainer: Function,\r\n onMousemoveContainer: Function,\r\n onDblclickContainer: Function,\r\n itemSelectable: {\r\n type: [String, Array, Function] as PropType<any>,\r\n },\r\n ...pressItemsPropsOptions({\r\n itemKey: 'id',\r\n }),\r\n },\r\n 'YTreeViewNode',\r\n);\r\n\r\n/**\r\n * TODO: correct selected values what selectStrategy leaf or others\r\n */\r\nexport const YTreeViewNode = defineComponent({\r\n name: 'YTreeNode',\r\n components: {\r\n YButton,\r\n YIconExpand,\r\n YPlate,\r\n YIconCheckbox,\r\n },\r\n props: {\r\n item: {\r\n type: Object as PropType<any>,\r\n },\r\n level: {\r\n type: Number as PropType<number>,\r\n default: 0,\r\n },\r\n ...pressYTreeViewNodeProps(),\r\n },\r\n slots: Object as SlotsType<{\r\n default: any;\r\n 'expand-icon': any;\r\n leading: any;\r\n trailing: any;\r\n }>,\r\n setup(props, { slots, expose }) {\r\n const YTreeNode = resolveComponent('YTreeViewNode', true) as any;\r\n const treeView = useTreeView();\r\n const container$ = ref<HTMLElement>();\r\n\r\n const expanded = ref(false);\r\n const active = ref(false);\r\n const selected = ref(false);\r\n const indeterminate = ref(false);\r\n\r\n const myKey = computed(() =>\r\n getObjectValueByPath(props.item, props.itemKey),\r\n );\r\n\r\n const children = computed(() => {\r\n return (\r\n getObjectValueByPath(props.item, props.itemChildren as string) ?? []\r\n ).slice();\r\n });\r\n\r\n const imLeaf = computed(() => children.value.length < 1);\r\n\r\n const searchLoading = computed(() => {\r\n return treeView.searchLoading.value;\r\n });\r\n\r\n const leaves = computed(() => {\r\n return children.value.filter((leaf: any) => {\r\n return !treeView.isExcluded(getObjectValueByPath(leaf, props.itemKey));\r\n });\r\n });\r\n\r\n const childrenSelection = computed(() =>\r\n treeView.selectedState.value(\r\n myKey.value,\r\n children.value.map((child: any) =>\r\n getObjectValueByPath(child, props.itemKey),\r\n ),\r\n ),\r\n );\r\n\r\n const childrenAllChecked = computed(() => {\r\n return !!children.value?.length && childrenSelection.value.all;\r\n });\r\n\r\n const childrenSomeChecked = computed(() => {\r\n return (\r\n (props.selectStrategy === 'relative' ||\r\n props.selectStrategy === 'leaf') &&\r\n (children.value?.length ?? 0) > 0 &&\r\n !childrenAllChecked.value &&\r\n childrenSelection.value.some\r\n );\r\n });\r\n\r\n const isChecked = computed(() => {\r\n return (\r\n selected.value ||\r\n (props.selectStrategy === 'leaf' && childrenAllChecked.value)\r\n );\r\n });\r\n\r\n const classes = computed(() => {\r\n return {\r\n 'y-tree-view-node': true,\r\n 'y-tree-view-node--leaf': imLeaf.value,\r\n 'y-tree-view-node--expanded': expanded.value,\r\n 'y-tree-view-node--active': active.value,\r\n };\r\n });\r\n\r\n const styles = computed(() => {\r\n return {\r\n '--tree-view-node--level': props.level,\r\n };\r\n });\r\n\r\n const contentText = computed(() => {\r\n return getObjectValueByPath(props.item, props.itemText) ?? '';\r\n });\r\n\r\n const disabledSelect = computed(() => {\r\n if (props.itemSelectable != null) {\r\n let selectable = true;\r\n if (typeof props.itemSelectable === 'function') {\r\n selectable = !!props.itemSelectable(props.item);\r\n } else if (Array.isArray(props.itemSelectable)) {\r\n selectable = props.itemSelectable.includes(myKey.value);\r\n } else {\r\n selectable = getPropertyFromItem(\r\n props.item,\r\n props.itemSelectable,\r\n true,\r\n );\r\n }\r\n\r\n return !selectable;\r\n }\r\n return false;\r\n });\r\n\r\n const slotProps = computed(() => {\r\n return {\r\n level: props.level,\r\n imLeaf: imLeaf.value,\r\n toggleActive,\r\n };\r\n });\r\n\r\n watch(childrenSomeChecked, (value) => {\r\n indeterminate.value = value;\r\n });\r\n\r\n function toggleActive(e?: MouseEvent) {\r\n const to = !active.value;\r\n active.value = to;\r\n treeView.updateActive(myKey.value, to, e);\r\n treeView.emitActive();\r\n }\r\n\r\n function onClick(e: MouseEvent) {\r\n toggleActive(e);\r\n }\r\n\r\n function onClickExpand(e: MouseEvent) {\r\n e.stopPropagation();\r\n const to = !expanded.value;\r\n expanded.value = to;\r\n treeView.updateExpanded(myKey.value, to);\r\n treeView.emitExpanded();\r\n }\r\n\r\n function onClickSelect(e: MouseEvent) {\r\n e.stopPropagation();\r\n if (disabledSelect.value) return;\r\n const to = !isChecked.value;\r\n selected.value = to;\r\n treeView.updateSelected(myKey.value, to);\r\n treeView.emitSelected();\r\n }\r\n\r\n function onMouseenterContainer(e: MouseEvent) {\r\n props.onMouseenterContainer?.(e, {\r\n ...slotProps.value,\r\n item: props.item,\r\n });\r\n }\r\n\r\n function onMouseleaveContainer(e: MouseEvent) {\r\n props.onMouseleaveContainer?.(e, {\r\n ...slotProps.value,\r\n item: props.item,\r\n });\r\n }\r\n\r\n function onMousemoveContainer(e: MouseEvent) {\r\n props.onMousemoveContainer?.(e, { ...slotProps.value, item: props.item });\r\n }\r\n\r\n function onDblclickContainer(e: MouseEvent) {\r\n props.onDblclickContainer?.(e, {\r\n ...slotProps.value,\r\n item: props.item,\r\n toggleExpand: () => onClickExpand(e),\r\n });\r\n }\r\n\r\n useRender(() => {\r\n const indentSpacer: VNodeArrayChildren = [];\r\n for (let i = 0; i < props.level; i += 1) {\r\n indentSpacer.push(\r\n <div class={'y-tree-view-node__indent-spacer'}></div>,\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n class={classes.value}\r\n style={styles.value}\r\n role=\"treeitem\"\r\n data-level={props.level}\r\n >\r\n <div\r\n ref={container$}\r\n class={'y-tree-view-node__container'}\r\n onClick={(e: MouseEvent) =>\r\n props.enableActive ? onClick(e) : void 0\r\n }\r\n onMouseenter={props.onMouseenterContainer && onMouseenterContainer}\r\n onMouseleave={props.onMouseleaveContainer && onMouseleaveContainer}\r\n onMousemove={props.onMousemoveContainer && onMousemoveContainer}\r\n onDblclick={onDblclickContainer}\r\n >\r\n <YPlate />\r\n <div class={'y-tree-view-node__indents'}>{indentSpacer}</div>\r\n {/* EXPAND */}\r\n {!imLeaf.value && leaves.value.length > 0 ? (\r\n <YButton\r\n class={'y-tree-view-node__expand-icon'}\r\n variation={'icon'}\r\n onClick={onClickExpand}\r\n >\r\n {slots['expand-icon'] ? (\r\n slots['expand-icon']()\r\n ) : (\r\n <YIconExpand></YIconExpand>\r\n )}\r\n </YButton>\r\n ) : (\r\n <i class={'y-tree-view-node__no-expand-icon'}></i>\r\n )}\r\n {/* SELECT */}\r\n {props.enableSelect && (\r\n // biome-ignore lint/a11y/useSemanticElements: passive\r\n <div\r\n class={[\r\n 'y-tree-view-node__select',\r\n {\r\n 'y-tree-view-node__select--disabled': disabledSelect.value,\r\n },\r\n ]}\r\n role=\"checkbox\"\r\n aria-checked={isChecked.value}\r\n onClick={onClickSelect}\r\n >\r\n <YIconCheckbox\r\n checked={isChecked.value}\r\n indeterminate={!selected.value && childrenSomeChecked.value}\r\n disabled={disabledSelect.value}\r\n ></YIconCheckbox>\r\n </div>\r\n )}\r\n {/* CONTENT */}\r\n <div class={'y-tree-view-node__content'}>\r\n {slots.leading && (\r\n <div class={'y-tree-view-node__leading'}>\r\n {slots.leading(slotProps.value)}\r\n </div>\r\n )}\r\n <div class={'y-tree-view-node__text'}>\r\n {slots.default ? (\r\n slots.default?.({\r\n text: contentText.value,\r\n item: props.item,\r\n ...slotProps.value,\r\n })\r\n ) : props.search && !searchLoading.value ? (\r\n <YTextHighlighter\r\n text={contentText.value}\r\n keyword={props.search}\r\n ></YTextHighlighter>\r\n ) : (\r\n contentText.value\r\n )}\r\n </div>\r\n {slots.trailing && (\r\n <div class={'y-tree-view-node__trailing'}>\r\n {slots.trailing(slotProps.value)}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {/* CHILDREN */}\r\n {children.value.length > 0 && (\r\n <YExpandVTransition disabled={props.disableTransition}>\r\n {expanded.value && (\r\n <div class={['y-tree-view-node__leaves']} role=\"tree\">\r\n {leaves.value.map((item: any) => {\r\n return (\r\n <YTreeNode\r\n {...mergeProps(props)}\r\n key={getObjectValueByPath(item, props.itemKey)}\r\n level={(props.level ?? 0) + 1}\r\n item={item}\r\n >\r\n {{\r\n default:\r\n slots.default &&\r\n ((...args: any[]) => slots.default?.(...args)),\r\n 'expand-icon':\r\n slots['expand-icon'] &&\r\n ((...args: any[]) =>\r\n slots['expand-icon']?.(...args)),\r\n leading:\r\n slots.leading &&\r\n ((...args: any[]) => slots.leading?.(...args)),\r\n trailing:\r\n slots.trailing &&\r\n ((...args: any[]) => slots.trailing?.(...args)),\r\n }}\r\n </YTreeNode>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </YExpandVTransition>\r\n )}\r\n </div>\r\n );\r\n });\r\n\r\n const nodeState = {\r\n myKey,\r\n expanded,\r\n active,\r\n selected,\r\n indeterminate,\r\n };\r\n\r\n expose(nodeState);\r\n\r\n onBeforeMount(() => {\r\n treeView?.register?.(myKey.value, nodeState);\r\n });\r\n\r\n return {\r\n treeView,\r\n myKey,\r\n expanded,\r\n active,\r\n selected,\r\n indeterminate,\r\n childrenSelection,\r\n };\r\n },\r\n});\r\n\r\nexport type YTreeNode = InstanceType<typeof YTreeViewNode>;\r\n"],"mappings":"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","ignoreList":[]}