yuyeon 0.0.22 → 0.0.23

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.
@@ -92,8 +92,8 @@ export const YButton = defineComponent({
92
92
  } = this;
93
93
  let textColor;
94
94
  if (color && !isColorValue(color)) {
95
- color = `rgba(var(--y-theme-${color}), 1)`;
96
- textColor = `rgba(var(--y-theme-on-${this.color}), 1)`;
95
+ color = `var(--y-theme-${color})`;
96
+ textColor = `var(--y-theme-on-${this.color})`;
97
97
  }
98
98
  return {
99
99
  [`--y-button__color`]: color,
@@ -1 +1 @@
1
- {"version":3,"file":"YButton.mjs","names":["defineComponent","h","withDirectives","PlateWave","isColorValue","getSlot","propsFactory","YSpinnerRing","NAME","pressYButtonProps","loading","Boolean","disabled","type","variation","String","small","icon","outlined","default","rounded","filled","text","color","noWave","YButton","name","directives","props","computed","variations","split","map","value","trim","classes","includes","styles","textColor","methods","createContent","defaultSlot","children","push","width","height","class","getClasses","onClick","e","preventDefault","render","style","undefined"],"sources":["../../../src/components/button/YButton.ts"],"sourcesContent":["import type { PropType, VNodeArrayChildren } from 'vue';\nimport { defineComponent, h, withDirectives } from 'vue';\n\nimport { PlateWave } from '../../directives/plate-wave';\nimport { isColorValue } from '../../util/color';\nimport { getSlot, propsFactory } from '../../util/vue-component';\nimport { YSpinnerRing } from '../loading/YSpinnerRing';\n\n/**\n * Style\n */\nimport './YButton.scss';\n\nconst NAME = 'y-button';\n\nexport const pressYButtonProps = propsFactory(\n {\n loading: Boolean,\n disabled: {\n type: Boolean,\n },\n //\n variation: {\n type: String as PropType<string>,\n },\n small: Boolean,\n icon: Boolean,\n outlined: {\n type: Boolean,\n default: false,\n },\n rounded: {\n type: Boolean,\n default: false,\n },\n filled: {\n type: Boolean,\n default: false,\n },\n text: {\n type: Boolean,\n },\n //\n color: {\n type: String,\n },\n noWave: {\n type: Boolean,\n default: false,\n },\n },\n 'YButton',\n);\n\nexport const YButton = defineComponent({\n name: 'YButton',\n directives: {\n PlateWave,\n },\n props: {\n ...pressYButtonProps(),\n },\n computed: {\n variations(): any[] {\n const { variation } = this;\n if (variation) {\n return variation.split(',').map((value) => {\n return value.trim();\n });\n }\n return [];\n },\n //\n classes() {\n const { variations, outlined, rounded, filled, text, small, icon } = this;\n return {\n [`${NAME}--outlined`]: variations.includes('outlined') || outlined,\n [`${NAME}--rounded`]: variations.includes('rounded') || rounded,\n [`${NAME}--filled`]: variations.includes('filled') || filled,\n [`${NAME}--text`]: variations.includes('text') || text,\n [`${NAME}--small`]: variations.includes('small') || small,\n [`${NAME}--icon`]: variations.includes('icon') || icon,\n [`${NAME}--color`]: this.color,\n [`${NAME}--loading`]: this.loading,\n [`${NAME}--disabled`]: this.disabled,\n };\n },\n styles(): Record<string, any> {\n let { color } = this;\n let textColor: string | undefined;\n if (color && !isColorValue(color)) {\n color = `rgba(var(--y-theme-${color}), 1)`;\n textColor = `rgba(var(--y-theme-on-${this.color}), 1)`;\n }\n return {\n [`--y-button__color`]: color,\n [`--y-button__text-color`]: textColor,\n };\n },\n },\n methods: {\n createContent() {\n const defaultSlot = getSlot(this, 'default');\n const children: VNodeArrayChildren = [];\n if (this.loading) {\n children.push(h(YSpinnerRing, { width: '24', height: '24' }));\n }\n children.push(defaultSlot);\n return h('span', { class: 'y-button__content' }, children);\n },\n getClasses() {\n return this.classes;\n },\n /// Events\n onClick(e: MouseEvent) {\n e.preventDefault();\n if (this.loading) {\n return;\n }\n },\n },\n render() {\n const { onClick, styles, noWave, loading } = this;\n return withDirectives(\n h(\n 'button',\n {\n class: {\n ...this.getClasses(),\n [`${NAME}`]: true,\n },\n style: styles,\n onClick,\n '^disabled': this.disabled ? true : undefined,\n },\n this.createContent(),\n ),\n [[PlateWave, !noWave && !loading]],\n );\n },\n});\n\nexport type YButton = InstanceType<typeof YButton>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YButton.mjs","names":["defineComponent","h","withDirectives","PlateWave","isColorValue","getSlot","propsFactory","YSpinnerRing","NAME","pressYButtonProps","loading","Boolean","disabled","type","variation","String","small","icon","outlined","default","rounded","filled","text","color","noWave","YButton","name","directives","props","computed","variations","split","map","value","trim","classes","includes","styles","textColor","methods","createContent","defaultSlot","children","push","width","height","class","getClasses","onClick","e","preventDefault","render","style","undefined"],"sources":["../../../src/components/button/YButton.ts"],"sourcesContent":["import type { PropType, VNodeArrayChildren } from 'vue';\nimport { defineComponent, h, withDirectives } from 'vue';\n\nimport { PlateWave } from '../../directives/plate-wave';\nimport { isColorValue } from '../../util/color';\nimport { getSlot, propsFactory } from '../../util/vue-component';\nimport { YSpinnerRing } from '../loading/YSpinnerRing';\n\n/**\n * Style\n */\nimport './YButton.scss';\n\nconst NAME = 'y-button';\n\nexport const pressYButtonProps = propsFactory(\n {\n loading: Boolean,\n disabled: {\n type: Boolean,\n },\n //\n variation: {\n type: String as PropType<string>,\n },\n small: Boolean,\n icon: Boolean,\n outlined: {\n type: Boolean,\n default: false,\n },\n rounded: {\n type: Boolean,\n default: false,\n },\n filled: {\n type: Boolean,\n default: false,\n },\n text: {\n type: Boolean,\n },\n //\n color: {\n type: String,\n },\n noWave: {\n type: Boolean,\n default: false,\n },\n },\n 'YButton',\n);\n\nexport const YButton = defineComponent({\n name: 'YButton',\n directives: {\n PlateWave,\n },\n props: {\n ...pressYButtonProps(),\n },\n computed: {\n variations(): any[] {\n const { variation } = this;\n if (variation) {\n return variation.split(',').map((value) => {\n return value.trim();\n });\n }\n return [];\n },\n //\n classes() {\n const { variations, outlined, rounded, filled, text, small, icon } = this;\n return {\n [`${NAME}--outlined`]: variations.includes('outlined') || outlined,\n [`${NAME}--rounded`]: variations.includes('rounded') || rounded,\n [`${NAME}--filled`]: variations.includes('filled') || filled,\n [`${NAME}--text`]: variations.includes('text') || text,\n [`${NAME}--small`]: variations.includes('small') || small,\n [`${NAME}--icon`]: variations.includes('icon') || icon,\n [`${NAME}--color`]: this.color,\n [`${NAME}--loading`]: this.loading,\n [`${NAME}--disabled`]: this.disabled,\n };\n },\n styles(): Record<string, any> {\n let { color } = this;\n let textColor: string | undefined;\n if (color && !isColorValue(color)) {\n color = `var(--y-theme-${color})`;\n textColor = `var(--y-theme-on-${this.color})`;\n }\n return {\n [`--y-button__color`]: color,\n [`--y-button__text-color`]: textColor,\n };\n },\n },\n methods: {\n createContent() {\n const defaultSlot = getSlot(this, 'default');\n const children: VNodeArrayChildren = [];\n if (this.loading) {\n children.push(h(YSpinnerRing, { width: '24', height: '24' }));\n }\n children.push(defaultSlot);\n return h('span', { class: 'y-button__content' }, children);\n },\n getClasses() {\n return this.classes;\n },\n /// Events\n onClick(e: MouseEvent) {\n e.preventDefault();\n if (this.loading) {\n return;\n }\n },\n },\n render() {\n const { onClick, styles, noWave, loading } = this;\n return withDirectives(\n h(\n 'button',\n {\n class: {\n ...this.getClasses(),\n [`${NAME}`]: true,\n },\n style: styles,\n onClick,\n '^disabled': this.disabled ? true : undefined,\n },\n this.createContent(),\n ),\n [[PlateWave, !noWave && !loading]],\n );\n },\n});\n\nexport type YButton = InstanceType<typeof YButton>;\n"],"mappings":"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"}
@@ -6,10 +6,10 @@ $card__padding: 24px;
6
6
 
7
7
  .y-card {
8
8
  --y-card__border-radius: #{$card__border-radius};
9
- --y-card__default-background: 255, 255, 255;
9
+ --y-card__default-background: #ffffff;
10
10
  --y-card__background: var(--y-theme-surface, var(--y-card__default-background));
11
11
 
12
- background-color: rgba(var(--y-card__background), 1);
12
+ background-color: var(--y-card__background);
13
13
  border-radius: var(--y-card__border-radius, $card__border-radius);
14
14
 
15
15
  &__header {
@@ -4,7 +4,7 @@ $checkbox__color: palette.$primary;
4
4
  $checkbox__border-color: #a4a4a4;
5
5
 
6
6
  .y-input--checkbox {
7
- --y-checkbox__color: var(--y-theme-primary);
7
+ --y-checkbox__color: var(--y-theme-primary-rgb);
8
8
 
9
9
  position: relative;
10
10
  width: 24px;
@@ -1,5 +1,5 @@
1
1
  .y-icon-checkbox {
2
- --y-icon-checkbox__color: var(--y-theme-primary);
2
+ --y-icon-checkbox__color: var(--y-theme-primary-rgb);
3
3
  --y-icon-checkbox__border-color: 180, 180, 180;
4
4
  position: relative;
5
5
 
@@ -148,7 +148,7 @@ $input-border-radius: variables.$border-radius-root !default;
148
148
  }
149
149
  //
150
150
  &__plate {
151
- background: rgba(var(--y-theme-on-surface, var(--y-input-default-filled)), var(--y-input-filled-opacity));
151
+ background: rgba(var(--y-theme-on-surface-rgb, var(--y-input-default-filled)), var(--y-input-filled-opacity));
152
152
  }
153
153
 
154
154
  &__display:hover {
@@ -163,7 +163,7 @@ $input-border-radius: variables.$border-radius-root !default;
163
163
 
164
164
  .y-input {
165
165
  &__plate {
166
- border: 1px solid rgba(var(--y-theme-outline), var(--y-input-outlined-opacity));
166
+ border: 1px solid rgba(var(--y-theme-outline-rgb), var(--y-input-outlined-opacity));
167
167
  box-sizing: border-box;
168
168
  inset: 0;
169
169
 
@@ -209,7 +209,7 @@ $input-border-radius: variables.$border-radius-root !default;
209
209
 
210
210
  .y-input__plate {
211
211
  outline: 1px solid rgba(var(--y-theme-primary, #4f97dc), 0.1);
212
- border-color: rgba(var(--y-input-focused-color), 1);
212
+ border-color: var(--y-input-focused-color);
213
213
  }
214
214
 
215
215
  .y-input__leading {
@@ -224,22 +224,22 @@ $input-border-radius: variables.$border-radius-root !default;
224
224
  &--error {
225
225
  &.y-input--outlined {
226
226
  .y-input__plate {
227
- border-color: palette.$alert-negative !important;
227
+ border-color: var(--y-palette-negative) !important;
228
228
  }
229
229
  }
230
230
  .y-input__helper-text {
231
- color: palette.$alert-negative;
231
+ color: var(--y-palette-negative);
232
232
  }
233
233
  }
234
234
 
235
235
  &--success {
236
236
  &.y-input--outlined {
237
237
  .y-input__plate {
238
- border-color: palette.$alert-positive !important;
238
+ border-color: var(--y-palette-positive) !important;
239
239
  }
240
240
  }
241
241
  .y-input__helper-text {
242
- color: palette.$alert-positive;
242
+ color: var(--y-palette-positive);
243
243
  }
244
244
  }
245
245
  }
@@ -12,7 +12,7 @@
12
12
  display: flex;
13
13
  inset: 0;
14
14
  position: fixed;
15
- color: rgba(var(--y-theme-on-background), 1);
15
+ color: var(--y-theme-on-background);
16
16
 
17
17
  &__scrim {
18
18
  pointer-events: auto;
@@ -8,7 +8,7 @@
8
8
  &__content {
9
9
  box-shadow: var(--y-menu__elevation, #{$elevation-fallback});
10
10
  border-radius: var(--y-menu__border-radius);
11
- background: rgba(var(--y-theme-surface), 1);
11
+ background: var(--y-theme-surface);
12
12
  display: flex;
13
13
  flex-direction: column;
14
14
 
@@ -30,14 +30,14 @@ $side-padding: 16px !default;
30
30
  }
31
31
 
32
32
  &:hover &-line {
33
- background: rgba(var(--y-theme-primary), 1);
33
+ background: var(--y-theme-primary);
34
34
  }
35
35
  }
36
36
 
37
37
  &--resizing &__divider {
38
38
  background: rgba(var(--y-theme-primary), 0.12);
39
39
  &-line {
40
- background: rgba(var(--y-theme-primary), 1);
40
+ background: var(--y-theme-primary);
41
41
  }
42
42
  }
43
43
  }
@@ -67,7 +67,7 @@ export const YProgressBar = defineComponent({
67
67
  leadColor() {
68
68
  let color = this.color ?? '';
69
69
  if (!isColorValue(color)) {
70
- color = `rgba(var(--y-theme-${color}), 1)`;
70
+ color = `var(--y-theme-${color})`;
71
71
  }
72
72
  return color;
73
73
  },
@@ -1 +1 @@
1
- {"version":3,"file":"YProgressBar.mjs","names":["defineComponent","useProgress","isColorValue","YProgressBar","name","props","value","type","Number","rounded","Boolean","height","noRewindTransition","outlined","innerText","color","String","default","textColor","outlineColor","indeterminate","reverse","setup","numValue","data","delta","computed","classes","noTransition","leadColor","styles","minWidth","transform","render","slots","$slots","_createVNode","undefined","_createTextVNode"],"sources":["../../../src/components/progress-bar/YProgressBar.tsx"],"sourcesContent":["import { PropType, StyleValue, defineComponent } from 'vue';\n\nimport { useProgress } from '../../composables/progress';\nimport './YProgressBar.scss';\nimport { isColorValue } from \"../../util/color\";\n\nexport const YProgressBar = defineComponent({\n name: 'YProgressBar',\n props: {\n value: {\n type: Number as PropType<number>,\n },\n rounded: {\n type: Boolean as PropType<boolean>,\n },\n height: {\n type: Number as PropType<number>,\n },\n noRewindTransition: {\n type: Boolean as PropType<boolean>,\n },\n outlined: {\n type: Boolean as PropType<boolean>,\n },\n innerText: {\n type: Boolean as PropType<boolean>,\n },\n color: {\n type: String as PropType<string>,\n default: 'primary',\n },\n textColor: {\n type: String as PropType<string>,\n },\n outlineColor: {\n type: String as PropType<string>,\n },\n indeterminate: Boolean,\n reverse: Boolean,\n },\n setup(props) {\n const { numValue } = useProgress(props);\n\n return {\n numValue,\n };\n },\n data() {\n return {\n delta: 0,\n };\n },\n computed: {\n classes(): Record<string, boolean> {\n let noTransition = false;\n if (this.noRewindTransition && this.delta < 0) {\n noTransition = true;\n }\n return {\n 'y-progress--no-trans': noTransition,\n 'y-progress--outlined': !!this.outlined,\n 'y-progress--indeterminate': !!this.indeterminate,\n 'y-progress-bar--rounded': !!this.rounded,\n 'y-progress-bar--reverse': !!this.reverse,\n };\n },\n leadColor(): string {\n let color = this.color ?? '';\n if (!isColorValue(color)) {\n color = `rgba(var(--y-theme-${color}), 1)`;\n }\n return color;\n },\n styles(): StyleValue {\n let minWidth;\n if (this.innerText && this.numValue < 5 && this.numValue > 0) {\n minWidth = '2rem';\n }\n return {\n transform: `scaleX(${this.numValue / 100})`,\n minWidth,\n };\n },\n },\n render() {\n const {\n classes,\n numValue,\n height,\n outlineColor,\n textColor,\n styles,\n innerText,\n } = this;\n const slots = this.$slots;\n return (\n <div\n class={{ 'y-progress y-progress-bar': true, ...classes }}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={numValue}\n style={{\n '--y-progress-bar__height':\n height !== undefined ? `${height}px` : undefined,\n '--y-progress-bar__outline-color':\n outlineColor !== undefined ? outlineColor : undefined,\n '--y-progress-bar__color': this.leadColor,\n }}\n >\n <div class=\"y-progress__track\"></div>\n <div class=\"y-progress__tube\">\n <div class=\"y-progress__lead\" style={styles}>\n {slots['lead-inner']\n ? slots['lead-inner']()\n : innerText && (\n <div\n class={{\n 'y-progress__lead-inner': true,\n 'y-progress__lead-inner--fixed': numValue < 3,\n }}\n style={{ color: textColor }}\n >\n <span>{numValue} %</span>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"YProgressBar.mjs","names":["defineComponent","useProgress","isColorValue","YProgressBar","name","props","value","type","Number","rounded","Boolean","height","noRewindTransition","outlined","innerText","color","String","default","textColor","outlineColor","indeterminate","reverse","setup","numValue","data","delta","computed","classes","noTransition","leadColor","styles","minWidth","transform","render","slots","$slots","_createVNode","undefined","_createTextVNode"],"sources":["../../../src/components/progress-bar/YProgressBar.tsx"],"sourcesContent":["import { PropType, StyleValue, defineComponent } from 'vue';\n\nimport { useProgress } from '../../composables/progress';\nimport './YProgressBar.scss';\nimport { isColorValue } from \"../../util/color\";\n\nexport const YProgressBar = defineComponent({\n name: 'YProgressBar',\n props: {\n value: {\n type: Number as PropType<number>,\n },\n rounded: {\n type: Boolean as PropType<boolean>,\n },\n height: {\n type: Number as PropType<number>,\n },\n noRewindTransition: {\n type: Boolean as PropType<boolean>,\n },\n outlined: {\n type: Boolean as PropType<boolean>,\n },\n innerText: {\n type: Boolean as PropType<boolean>,\n },\n color: {\n type: String as PropType<string>,\n default: 'primary',\n },\n textColor: {\n type: String as PropType<string>,\n },\n outlineColor: {\n type: String as PropType<string>,\n },\n indeterminate: Boolean,\n reverse: Boolean,\n },\n setup(props) {\n const { numValue } = useProgress(props);\n\n return {\n numValue,\n };\n },\n data() {\n return {\n delta: 0,\n };\n },\n computed: {\n classes(): Record<string, boolean> {\n let noTransition = false;\n if (this.noRewindTransition && this.delta < 0) {\n noTransition = true;\n }\n return {\n 'y-progress--no-trans': noTransition,\n 'y-progress--outlined': !!this.outlined,\n 'y-progress--indeterminate': !!this.indeterminate,\n 'y-progress-bar--rounded': !!this.rounded,\n 'y-progress-bar--reverse': !!this.reverse,\n };\n },\n leadColor(): string {\n let color = this.color ?? '';\n if (!isColorValue(color)) {\n color = `var(--y-theme-${color})`;\n }\n return color;\n },\n styles(): StyleValue {\n let minWidth;\n if (this.innerText && this.numValue < 5 && this.numValue > 0) {\n minWidth = '2rem';\n }\n return {\n transform: `scaleX(${this.numValue / 100})`,\n minWidth,\n };\n },\n },\n render() {\n const {\n classes,\n numValue,\n height,\n outlineColor,\n textColor,\n styles,\n innerText,\n } = this;\n const slots = this.$slots;\n return (\n <div\n class={{ 'y-progress y-progress-bar': true, ...classes }}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={numValue}\n style={{\n '--y-progress-bar__height':\n height !== undefined ? `${height}px` : undefined,\n '--y-progress-bar__outline-color':\n outlineColor !== undefined ? outlineColor : undefined,\n '--y-progress-bar__color': this.leadColor,\n }}\n >\n <div class=\"y-progress__track\"></div>\n <div class=\"y-progress__tube\">\n <div class=\"y-progress__lead\" style={styles}>\n {slots['lead-inner']\n ? slots['lead-inner']()\n : innerText && (\n <div\n class={{\n 'y-progress__lead-inner': true,\n 'y-progress__lead-inner--fixed': numValue < 3,\n }}\n style={{ color: textColor }}\n >\n <span>{numValue} %</span>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n },\n});\n"],"mappings":"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"}
@@ -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: var(--y-theme-primary);
6
6
  font-size: 1rem;
7
7
 
8
8
  &__slot {
@@ -29,7 +29,7 @@ $table-cell-padding: 0 16px !default;
29
29
 
30
30
  &--fixed-head.y-table > &__container > table > thead > tr > th {
31
31
  z-index: 1;
32
- background: rgba(var(--y-theme-panel, 250, 250, 250), 1);
32
+ background: var(--y-theme-panel, 250, 250, 250);
33
33
  }
34
34
 
35
35
  &__container {
@@ -333,7 +333,7 @@ export const YTreeView = defineComponent({
333
333
  const styles = computed(() => {
334
334
  let color = props.activeColor;
335
335
  if (props.activeColor && !isColorValue(props.activeColor)) {
336
- color = `rgba(var(--y-theme-${props.activeColor}), 1)`;
336
+ color = `var(--y-theme-${props.activeColor})`;
337
337
  }
338
338
  return {
339
339
  [`--y-tree-view__active-color`]: color
@@ -1 +1 @@
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","activeValue","selectedValue","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 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 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;IAExB,KAAK,MAAMyE,WAAW,IAAI3G,KAAK,CAACK,MAAM,CAAC6D,GAAG,CAACX,UAAU,CAAC,EAAE;MACtDyB,YAAY,CAAC2B,WAAW,EAAE,IAAI,CAAC;IACjC;IAEA,KAAK,MAAMC,aAAa,IAAI5G,KAAK,CAACU,QAAQ,CAACwD,GAAG,CAACX,UAAU,CAAC,EAAE;MAC1DgC,cAAc,CAACqB,aAAa,EAAE,IAAI,CAAC;IACrC;IAEAnI,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,MAAM4E,YAAY,GAAGvI,QAAQ,CAAC,MAAM;MAClC,OAAO0B,KAAK,CAACkC,KAAK,CAACnB,MAAM,CAAE+F,IAAI,IAAK;QAClC,OAAO,CAACN,UAAU,CAACtH,oBAAoB,CAAC4H,IAAI,EAAE9G,KAAK,CAAC8C,OAAO,CAAC,CAAC;MAC/D,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAMiE,OAAO,GAAGzI,QAAQ,CAAC,MAAM;MAC7B,OAAO;QACL,aAAa,EAAE;MACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM0I,MAAM,GAAG1I,QAAQ,CAAC,MAAM;MAC5B,IAAI2I,KAAK,GAAGjH,KAAK,CAACkH,WAAW;MAC7B,IAAIlH,KAAK,CAACkH,WAAW,IAAI,CAACtH,YAAY,CAACI,KAAK,CAACkH,WAAW,CAAC,EAAE;QACzDD,KAAK,GAAI,sBAAqBjH,KAAK,CAACkH,WAAY,OAAM;MACxD;MACA,OAAO;QACL,CAAE,6BAA4B,GAAGD;MACnC,CAAC;IACH,CAAC,CAAC;IAEFzI,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,OAAAoI,YAAA,CAAAC,SAAA,SAAAD,YAAA;QAAA,SAEgBJ,OAAO,CAACvE,KAAK;QAAA,SAASwE,MAAM,CAACxE,KAAK;QAAA,QAAO;MAAM,IACxDP,aAAa,CAACO,KAAK,IAAA2E,YAAA,CAAA7H,YAAA;QAAA;MAAA,QAAkC,EACrDuH,YAAY,CAACrE,KAAK,CAACH,MAAM,GAAG,CAAC,GAC5BwE,YAAY,CAACrE,KAAK,CAAC0B,GAAG,CAAE4C,IAAI,IAAK;QAC/B,OAAAK,YAAA,CAAA5H,aAAA;UAIM,GAAGF,WAAW,CAACW,KAAK,EAAEH,iBAAiB,CAAC;UACxCgD,IAAI,EAAEiE,IAAI;UACVnD,KAAK,EAAE;QAAC,GAJDtC,KAAK;MAQpB,CAAC,CAAC,GAAA8F,YAAA;QAAA,SAES;MAAsB,IAC9B9F,KAAK,CAAC,SAAS,CAAC,GAAGA,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAA8F,YAAA,gBAAAE,gBAAA,aAAuB,EAEhE;IAIT,CAAC,CAAC;IAEF,OAAO;MACL7F,KAAK;MACLC,WAAW;MACXE,WAAW;MACXC,SAAS;MACTC,WAAW;MACXI,aAAa;MACbD;IACF,CAAC;EACH;AACF,CAAC,CAAC"}
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","activeValue","selectedValue","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 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 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 = `var(--y-theme-${props.activeColor})`;\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":"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"}
@@ -15,7 +15,8 @@ export function createThemes(options) {
15
15
  for (const colorName of Object.keys(theme.colors)) {
16
16
  const color = theme.colors[colorName];
17
17
  if (/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})/i.test(color)) {
18
- theme.colors[colorName] = rgbFromHex(color)?.join(', ');
18
+ theme.colors[colorName] = color;
19
+ theme.colors[`${colorName}-rgb`] = rgbFromHex(color)?.join(', ');
19
20
  }
20
21
  if (/^on-[a-z]/.test(colorName) || theme.colors[`on-${colorName}`]) continue;
21
22
  const onColor = `on-${colorName}`;
@@ -24,7 +25,8 @@ export function createThemes(options) {
24
25
  const whiteContrast = Math.abs(APCAcontrast(sRGBtoY([255, 255, 255]), colorY));
25
26
 
26
27
  // Prefer white text if both have an acceptable contrast ratio
27
- theme.colors[onColor] = whiteContrast > Math.min(blackContrast, 50) ? '255, 255, 255' : '0, 0, 0';
28
+ theme.colors[onColor] = whiteContrast > Math.min(blackContrast, 50) ? '#ffffff' : '#000000';
29
+ theme.colors[`${onColor}-rgb`] = whiteContrast > Math.min(blackContrast, 50) ? '255, 255, 255' : '0, 0, 0';
28
30
  }
29
31
  }
30
32
  return acc;
@@ -1 +1 @@
1
- {"version":3,"file":"factory.mjs","names":["APCAcontrast","sRGBtoY","rgbFromHex","createThemes","options","acc","themeKey","themeOptions","Object","entries","theme","colors","variables","colorName","keys","color","test","join","onColor","colorY","blackContrast","Math","abs","whiteContrast","min","createPalette","scaleMethod","value"],"sources":["../../../src/composables/theme/factory.ts"],"sourcesContent":["import { APCAcontrast, sRGBtoY } from '../../util/color/apca';\nimport { rgbFromHex } from '../../util/color/conversion';\nimport { ThemeDefinition } from './types';\n\nexport function createThemes(options: Record<string, any>) {\n const acc: Record<'light' | 'dark' | string, ThemeDefinition> = {};\n\n for (const [themeKey, themeOptions] of Object.entries(options)) {\n const theme = (acc[themeKey] = {\n ...themeOptions,\n colors: {\n ...themeOptions.colors,\n },\n variables: {\n ...themeOptions.variables,\n },\n });\n\n for (const colorName of Object.keys(theme.colors)) {\n const color = theme.colors[colorName];\n if (/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})/i.test(color)) {\n theme.colors[colorName] = rgbFromHex(color)?.join(', ');\n }\n\n if (/^on-[a-z]/.test(colorName) || theme.colors[`on-${colorName}`])\n continue;\n\n const onColor = `on-${colorName}`;\n const colorY = sRGBtoY(rgbFromHex(color!) ?? [0, 0, 0]);\n\n const blackContrast = Math.abs(\n APCAcontrast(sRGBtoY([0, 0, 0]), colorY) as number,\n );\n const whiteContrast = Math.abs(\n APCAcontrast(sRGBtoY([255, 255, 255]), colorY) as number,\n );\n\n // Prefer white text if both have an acceptable contrast ratio\n theme.colors[onColor] =\n whiteContrast > Math.min(blackContrast, 50)\n ? '255, 255, 255'\n : '0, 0, 0';\n }\n }\n\n return acc;\n}\n\nexport function createPalette(options: Record<string, string | any>) {\n const acc: Record<string, string> = {};\n const { scaleMethod, colors } = options;\n for (const [colorName, value] of Object.entries(colors)) {\n if (typeof value === 'string') {\n acc[colorName] = value;\n }\n }\n return acc;\n}\n"],"mappings":"SAASA,YAAY,EAAEC,OAAO;AAAA,SACrBC,UAAU;AAGnB,OAAO,SAASC,YAAYA,CAACC,OAA4B,EAAE;EACzD,MAAMC,GAAuD,GAAG,CAAC,CAAC;EAElE,KAAK,MAAM,CAACC,QAAQ,EAAEC,YAAY,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,OAAO,CAAC,EAAE;IAC9D,MAAMM,KAAK,GAAIL,GAAG,CAACC,QAAQ,CAAC,GAAG;MAC7B,GAAGC,YAAY;MACfI,MAAM,EAAE;QACN,GAAGJ,YAAY,CAACI;MAClB,CAAC;MACDC,SAAS,EAAE;QACT,GAAGL,YAAY,CAACK;MAClB;IACF,CAAE;IAEF,KAAK,MAAMC,SAAS,IAAIL,MAAM,CAACM,IAAI,CAACJ,KAAK,CAACC,MAAM,CAAC,EAAE;MACjD,MAAMI,KAAK,GAAGL,KAAK,CAACC,MAAM,CAACE,SAAS,CAAC;MACrC,IAAI,0CAA0C,CAACG,IAAI,CAACD,KAAK,CAAC,EAAE;QAC1DL,KAAK,CAACC,MAAM,CAACE,SAAS,CAAC,GAAGX,UAAU,CAACa,KAAK,CAAC,EAAEE,IAAI,CAAC,IAAI,CAAC;MACzD;MAEA,IAAI,WAAW,CAACD,IAAI,CAACH,SAAS,CAAC,IAAIH,KAAK,CAACC,MAAM,CAAE,MAAKE,SAAU,EAAC,CAAC,EAChE;MAEF,MAAMK,OAAO,GAAI,MAAKL,SAAU,EAAC;MACjC,MAAMM,MAAM,GAAGlB,OAAO,CAACC,UAAU,CAACa,KAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;MAEvD,MAAMK,aAAa,GAAGC,IAAI,CAACC,GAAG,CAC5BtB,YAAY,CAACC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEkB,MAAM,CACzC,CAAC;MACD,MAAMI,aAAa,GAAGF,IAAI,CAACC,GAAG,CAC5BtB,YAAY,CAACC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAEkB,MAAM,CAC/C,CAAC;;MAED;MACAT,KAAK,CAACC,MAAM,CAACO,OAAO,CAAC,GACnBK,aAAa,GAAGF,IAAI,CAACG,GAAG,CAACJ,aAAa,EAAE,EAAE,CAAC,GACvC,eAAe,GACf,SAAS;IACjB;EACF;EAEA,OAAOf,GAAG;AACZ;AAEA,OAAO,SAASoB,aAAaA,CAACrB,OAAqC,EAAE;EACnE,MAAMC,GAA2B,GAAG,CAAC,CAAC;EACtC,MAAM;IAAEqB,WAAW;IAAEf;EAAO,CAAC,GAAGP,OAAO;EACvC,KAAK,MAAM,CAACS,SAAS,EAAEc,KAAK,CAAC,IAAInB,MAAM,CAACC,OAAO,CAACE,MAAM,CAAC,EAAE;IACvD,IAAI,OAAOgB,KAAK,KAAK,QAAQ,EAAE;MAC7BtB,GAAG,CAACQ,SAAS,CAAC,GAAGc,KAAK;IACxB;EACF;EACA,OAAOtB,GAAG;AACZ"}
1
+ {"version":3,"file":"factory.mjs","names":["APCAcontrast","sRGBtoY","rgbFromHex","createThemes","options","acc","themeKey","themeOptions","Object","entries","theme","colors","variables","colorName","keys","color","test","join","onColor","colorY","blackContrast","Math","abs","whiteContrast","min","createPalette","scaleMethod","value"],"sources":["../../../src/composables/theme/factory.ts"],"sourcesContent":["import { APCAcontrast, sRGBtoY } from '../../util/color/apca';\nimport { rgbFromHex } from '../../util/color/conversion';\nimport { ThemeDefinition } from './types';\n\nexport function createThemes(options: Record<string, any>) {\n const acc: Record<'light' | 'dark' | string, ThemeDefinition> = {};\n\n for (const [themeKey, themeOptions] of Object.entries(options)) {\n const theme = (acc[themeKey] = {\n ...themeOptions,\n colors: {\n ...themeOptions.colors,\n },\n variables: {\n ...themeOptions.variables,\n },\n });\n\n for (const colorName of Object.keys(theme.colors)) {\n const color = theme.colors[colorName];\n if (/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})/i.test(color)) {\n theme.colors[colorName] = color;\n theme.colors[`${colorName}-rgb`] = rgbFromHex(color)?.join(', ');\n }\n\n if (/^on-[a-z]/.test(colorName) || theme.colors[`on-${colorName}`])\n continue;\n\n const onColor = `on-${colorName}`;\n const colorY = sRGBtoY(rgbFromHex(color!) ?? [0, 0, 0]);\n\n const blackContrast = Math.abs(\n APCAcontrast(sRGBtoY([0, 0, 0]), colorY) as number,\n );\n const whiteContrast = Math.abs(\n APCAcontrast(sRGBtoY([255, 255, 255]), colorY) as number,\n );\n\n // Prefer white text if both have an acceptable contrast ratio\n theme.colors[onColor] =\n whiteContrast > Math.min(blackContrast, 50) ? '#ffffff' : '#000000';\n theme.colors[`${onColor}-rgb`] =\n whiteContrast > Math.min(blackContrast, 50)\n ? '255, 255, 255'\n : '0, 0, 0';\n }\n }\n\n return acc;\n}\n\nexport function createPalette(options: Record<string, string | any>) {\n const acc: Record<string, string> = {};\n const { scaleMethod, colors } = options;\n for (const [colorName, value] of Object.entries(colors)) {\n if (typeof value === 'string') {\n acc[colorName] = value;\n }\n }\n return acc;\n}\n"],"mappings":"SAASA,YAAY,EAAEC,OAAO;AAAA,SACrBC,UAAU;AAGnB,OAAO,SAASC,YAAYA,CAACC,OAA4B,EAAE;EACzD,MAAMC,GAAuD,GAAG,CAAC,CAAC;EAElE,KAAK,MAAM,CAACC,QAAQ,EAAEC,YAAY,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,OAAO,CAAC,EAAE;IAC9D,MAAMM,KAAK,GAAIL,GAAG,CAACC,QAAQ,CAAC,GAAG;MAC7B,GAAGC,YAAY;MACfI,MAAM,EAAE;QACN,GAAGJ,YAAY,CAACI;MAClB,CAAC;MACDC,SAAS,EAAE;QACT,GAAGL,YAAY,CAACK;MAClB;IACF,CAAE;IAEF,KAAK,MAAMC,SAAS,IAAIL,MAAM,CAACM,IAAI,CAACJ,KAAK,CAACC,MAAM,CAAC,EAAE;MACjD,MAAMI,KAAK,GAAGL,KAAK,CAACC,MAAM,CAACE,SAAS,CAAC;MACrC,IAAI,0CAA0C,CAACG,IAAI,CAACD,KAAK,CAAC,EAAE;QAC1DL,KAAK,CAACC,MAAM,CAACE,SAAS,CAAC,GAAGE,KAAK;QAC/BL,KAAK,CAACC,MAAM,CAAE,GAAEE,SAAU,MAAK,CAAC,GAAGX,UAAU,CAACa,KAAK,CAAC,EAAEE,IAAI,CAAC,IAAI,CAAC;MAClE;MAEA,IAAI,WAAW,CAACD,IAAI,CAACH,SAAS,CAAC,IAAIH,KAAK,CAACC,MAAM,CAAE,MAAKE,SAAU,EAAC,CAAC,EAChE;MAEF,MAAMK,OAAO,GAAI,MAAKL,SAAU,EAAC;MACjC,MAAMM,MAAM,GAAGlB,OAAO,CAACC,UAAU,CAACa,KAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;MAEvD,MAAMK,aAAa,GAAGC,IAAI,CAACC,GAAG,CAC5BtB,YAAY,CAACC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEkB,MAAM,CACzC,CAAC;MACD,MAAMI,aAAa,GAAGF,IAAI,CAACC,GAAG,CAC5BtB,YAAY,CAACC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAEkB,MAAM,CAC/C,CAAC;;MAED;MACAT,KAAK,CAACC,MAAM,CAACO,OAAO,CAAC,GACnBK,aAAa,GAAGF,IAAI,CAACG,GAAG,CAACJ,aAAa,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,SAAS;MACrEV,KAAK,CAACC,MAAM,CAAE,GAAEO,OAAQ,MAAK,CAAC,GAC5BK,aAAa,GAAGF,IAAI,CAACG,GAAG,CAACJ,aAAa,EAAE,EAAE,CAAC,GACvC,eAAe,GACf,SAAS;IACjB;EACF;EAEA,OAAOf,GAAG;AACZ;AAEA,OAAO,SAASoB,aAAaA,CAACrB,OAAqC,EAAE;EACnE,MAAMC,GAA2B,GAAG,CAAC,CAAC;EACtC,MAAM;IAAEqB,WAAW;IAAEf;EAAO,CAAC,GAAGP,OAAO;EACvC,KAAK,MAAM,CAACS,SAAS,EAAEc,KAAK,CAAC,IAAInB,MAAM,CAACC,OAAO,CAACE,MAAM,CAAC,EAAE;IACvD,IAAI,OAAOgB,KAAK,KAAK,QAAQ,EAAE;MAC7BtB,GAAG,CAACQ,SAAS,CAAC,GAAGc,KAAK;IACxB;EACF;EACA,OAAOtB,GAAG;AACZ"}
@@ -17,8 +17,8 @@
17
17
  }
18
18
 
19
19
  .y-root {
20
- background: rgba(var(--y-theme-background), 1);
21
- color: rgba(var(--y-theme-on-background), 1);
20
+ background: var(--y-theme-background);
21
+ color: var(--y-theme-on-background);
22
22
  }
23
23
 
24
24
  .fade-enter-active,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yuyeon",
3
- "version": "0.0.22",
3
+ "version": "0.0.23",
4
4
  "keywords": [
5
5
  "UI Library",
6
6
  "Vue"