yuyeon 0.0.17 → 0.0.19

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.
@@ -1,12 +1,12 @@
1
1
  import { defineComponent, h, withDirectives } from 'vue';
2
2
  import { PlateWave } from "../../directives/plate-wave/index.mjs";
3
+ import { isColorValue } from "../../util/color/index.mjs";
3
4
  import { getSlot, propsFactory } from "../../util/vue-component.mjs";
4
5
  import { YSpinnerRing } from "../loading/YSpinnerRing.mjs";
5
6
  /**
6
7
  * Style
7
8
  */
8
9
  import "./YButton.scss";
9
- import { isColorValue } from "../../util/color/index.mjs";
10
10
  const NAME = 'y-button';
11
11
  export const pressYButtonProps = propsFactory({
12
12
  loading: Boolean,
@@ -90,11 +90,14 @@ export const YButton = defineComponent({
90
90
  let {
91
91
  color
92
92
  } = this;
93
+ let textColor;
93
94
  if (color && !isColorValue(color)) {
94
95
  color = `rgba(var(--y-theme-${color}), 1)`;
96
+ textColor = `rgba(var(--y-theme-on-${this.color}), 1)`;
95
97
  }
96
98
  return {
97
- [`--y-button__color`]: color
99
+ [`--y-button__color`]: color,
100
+ [`--y-button__text-color`]: textColor
98
101
  };
99
102
  }
100
103
  },
@@ -1 +1 @@
1
- {"version":3,"file":"YButton.mjs","names":["defineComponent","h","withDirectives","PlateWave","getSlot","propsFactory","YSpinnerRing","isColorValue","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","methods","createContent","defaultSlot","children","push","width","height","class","getClasses","onClick","e","preventDefault","render","style","undefined"],"sources":["../../../src/components/button/YButton.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType, VNodeArrayChildren } from 'vue';\nimport { defineComponent, h, withDirectives } from 'vue';\n\nimport { PlateWave } from '../../directives/plate-wave';\nimport { getSlot, propsFactory } from '../../util/vue-component';\nimport { YSpinnerRing } from '../loading/YSpinnerRing';\n\n/**\n * Style\n */\nimport './YButton.scss';\nimport { isColorValue } from \"../../util/color\";\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 if (color && !isColorValue(color)) {\n color = `rgba(var(--y-theme-${color}), 1)`;\n }\n return {\n [`--y-button__color`]: color,\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":"AACA,SAASA,eAAe,EAAEC,CAAC,EAAEC,cAAc,QAAQ,KAAK;AAAC,SAEhDC,SAAS;AAAA,SACTC,OAAO,EAAEC,YAAY;AAAA,SACrBC,YAAY;AAErB;AACA;AACA;AACA;AAAwB,SACfC,YAAY;AAErB,MAAMC,IAAI,GAAG,UAAU;AAEvB,OAAO,MAAMC,iBAAiB,GAAGJ,YAAY,CAC3C;EACEK,OAAO,EAAEC,OAAO;EAChBC,QAAQ,EAAE;IACRC,IAAI,EAAEF;EACR,CAAC;EACD;EACAG,SAAS,EAAE;IACTD,IAAI,EAAEE;EACR,CAAC;EACDC,KAAK,EAAEL,OAAO;EACdM,IAAI,EAAEN,OAAO;EACbO,QAAQ,EAAE;IACRL,IAAI,EAAEF,OAAO;IACbQ,OAAO,EAAE;EACX,CAAC;EACDC,OAAO,EAAE;IACPP,IAAI,EAAEF,OAAO;IACbQ,OAAO,EAAE;EACX,CAAC;EACDE,MAAM,EAAE;IACNR,IAAI,EAAEF,OAAO;IACbQ,OAAO,EAAE;EACX,CAAC;EACDG,IAAI,EAAE;IACJT,IAAI,EAAEF;EACR,CAAC;EACD;EACAY,KAAK,EAAE;IACLV,IAAI,EAAEE;EACR,CAAC;EACDS,MAAM,EAAE;IACNX,IAAI,EAAEF,OAAO;IACbQ,OAAO,EAAE;EACX;AACF,CAAC,EACD,SACF,CAAC;AAED,OAAO,MAAMM,OAAO,GAAGzB,eAAe,CAAC;EACrC0B,IAAI,EAAE,SAAS;EACfC,UAAU,EAAE;IACVxB;EACF,CAAC;EACDyB,KAAK,EAAE;IACL,GAAGnB,iBAAiB,CAAC;EACvB,CAAC;EACDoB,QAAQ,EAAE;IACRC,UAAUA,CAAA,EAAU;MAClB,MAAM;QAAEhB;MAAU,CAAC,GAAG,IAAI;MAC1B,IAAIA,SAAS,EAAE;QACb,OAAOA,SAAS,CAACiB,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAEC,KAAK,IAAK;UACzC,OAAOA,KAAK,CAACC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;MACJ;MACA,OAAO,EAAE;IACX,CAAC;IACD;IACAC,OAAOA,CAAA,EAAG;MACR,MAAM;QAAEL,UAAU;QAAEZ,QAAQ;QAAEE,OAAO;QAAEC,MAAM;QAAEC,IAAI;QAAEN,KAAK;QAAEC;MAAK,CAAC,GAAG,IAAI;MACzE,OAAO;QACL,CAAE,GAAET,IAAK,YAAW,GAAGsB,UAAU,CAACM,QAAQ,CAAC,UAAU,CAAC,IAAIlB,QAAQ;QAClE,CAAE,GAAEV,IAAK,WAAU,GAAGsB,UAAU,CAACM,QAAQ,CAAC,SAAS,CAAC,IAAIhB,OAAO;QAC/D,CAAE,GAAEZ,IAAK,UAAS,GAAGsB,UAAU,CAACM,QAAQ,CAAC,QAAQ,CAAC,IAAIf,MAAM;QAC5D,CAAE,GAAEb,IAAK,QAAO,GAAGsB,UAAU,CAACM,QAAQ,CAAC,MAAM,CAAC,IAAId,IAAI;QACtD,CAAE,GAAEd,IAAK,SAAQ,GAAGsB,UAAU,CAACM,QAAQ,CAAC,OAAO,CAAC,IAAIpB,KAAK;QACzD,CAAE,GAAER,IAAK,QAAO,GAAGsB,UAAU,CAACM,QAAQ,CAAC,MAAM,CAAC,IAAInB,IAAI;QACtD,CAAE,GAAET,IAAK,SAAQ,GAAG,IAAI,CAACe,KAAK;QAC9B,CAAE,GAAEf,IAAK,WAAU,GAAG,IAAI,CAACE,OAAO;QAClC,CAAE,GAAEF,IAAK,YAAW,GAAG,IAAI,CAACI;MAC9B,CAAC;IACH,CAAC;IACDyB,MAAMA,CAAA,EAAwB;MAC5B,IAAI;QAAEd;MAAM,CAAC,GAAG,IAAI;MACpB,IAAIA,KAAK,IAAI,CAAChB,YAAY,CAACgB,KAAK,CAAC,EAAE;QACjCA,KAAK,GAAI,sBAAqBA,KAAM,OAAM;MAC5C;MACA,OAAO;QACL,CAAE,mBAAkB,GAAGA;MACzB,CAAC;IACH;EACF,CAAC;EACDe,OAAO,EAAE;IACPC,aAAaA,CAAA,EAAG;MACd,MAAMC,WAAW,GAAGpC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC;MAC5C,MAAMqC,QAA4B,GAAG,EAAE;MACvC,IAAI,IAAI,CAAC/B,OAAO,EAAE;QAChB+B,QAAQ,CAACC,IAAI,CAACzC,CAAC,CAACK,YAAY,EAAE;UAAEqC,KAAK,EAAE,IAAI;UAAEC,MAAM,EAAE;QAAK,CAAC,CAAC,CAAC;MAC/D;MACAH,QAAQ,CAACC,IAAI,CAACF,WAAW,CAAC;MAC1B,OAAOvC,CAAC,CAAC,MAAM,EAAE;QAAE4C,KAAK,EAAE;MAAoB,CAAC,EAAEJ,QAAQ,CAAC;IAC5D,CAAC;IACDK,UAAUA,CAAA,EAAG;MACX,OAAO,IAAI,CAACX,OAAO;IACrB,CAAC;IACD;IACAY,OAAOA,CAACC,CAAa,EAAE;MACrBA,CAAC,CAACC,cAAc,CAAC,CAAC;MAClB,IAAI,IAAI,CAACvC,OAAO,EAAE;QAChB;MACF;IACF;EACF,CAAC;EACDwC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEH,OAAO;MAAEV,MAAM;MAAEb,MAAM;MAAEd;IAAQ,CAAC,GAAG,IAAI;IACjD,OAAOR,cAAc,CACnBD,CAAC,CACC,QAAQ,EACR;MACE4C,KAAK,EAAE;QACL,GAAG,IAAI,CAACC,UAAU,CAAC,CAAC;QACpB,CAAE,GAAEtC,IAAK,EAAC,GAAG;MACf,CAAC;MACD2C,KAAK,EAAEd,MAAM;MACbU,OAAO;MACP,WAAW,EAAE,IAAI,CAACnC,QAAQ,GAAG,IAAI,GAAGwC;IACtC,CAAC,EACD,IAAI,CAACb,aAAa,CAAC,CACrB,CAAC,EACD,CAAC,CAACpC,SAAS,EAAE,CAACqB,MAAM,IAAI,CAACd,OAAO,CAAC,CACnC,CAAC;EACH;AACF,CAAC,CAAC"}
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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"}
@@ -7,6 +7,7 @@ $button-disabled-background: #d3d3d3 !default;
7
7
 
8
8
  .y-button {
9
9
  --y-button__color: var(--y-theme-primary);
10
+ --y-button__text-color: var(--y-theme-on-primary);
10
11
 
11
12
  cursor: pointer;
12
13
  display: inline-flex;
@@ -46,7 +47,7 @@ $button-disabled-background: #d3d3d3 !default;
46
47
 
47
48
  &--filled {
48
49
  background-color: var(--y-button__color);
49
- color: #ffffff;
50
+ color: var(--y-button__text-color);
50
51
  }
51
52
 
52
53
  &--text {
@@ -83,6 +84,8 @@ $button-disabled-background: #d3d3d3 !default;
83
84
 
84
85
  .y-spinner-ring {
85
86
  margin-right: 0.4em;
87
+ width: 1em;
88
+ height: 1em;
86
89
  }
87
90
  }
88
91
 
@@ -44,6 +44,7 @@ $input-border-radius: variables.$border-radius-root !default;
44
44
  contain: paint;
45
45
  border-radius: $input-border-radius;
46
46
  outline: 0 solid rgba(0, 0, 0, 0);
47
+ transition: 140ms ease;
47
48
  }
48
49
 
49
50
  &__value {
@@ -21,8 +21,8 @@ export const YMenuPropOptions = {
21
21
  type: Boolean,
22
22
  default: true
23
23
  },
24
- closeOnClick: {
25
- type: Boolean
24
+ closeCondition: {
25
+ type: [Boolean, Function]
26
26
  },
27
27
  preventClip: {
28
28
  type: Boolean,
@@ -33,8 +33,8 @@ export const YMenuPropOptions = {
33
33
  })
34
34
  };
35
35
 
36
- /**
37
- * # Component
36
+ /**
37
+ * # Component
38
38
  */
39
39
  export const YMenu = defineComponent({
40
40
  name: NAME,
@@ -90,6 +90,15 @@ export const YMenu = defineComponent({
90
90
  }
91
91
  }
92
92
  function onComplementClick(e) {
93
+ if (props.closeCondition === false) {
94
+ return;
95
+ }
96
+ if (typeof props.closeCondition === 'function') {
97
+ if (props.closeCondition(e) === false) {
98
+ active.value = false;
99
+ }
100
+ return;
101
+ }
93
102
  if (active.value) {
94
103
  active.value = false;
95
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"YMenu.mjs","names":["computed","defineComponent","ref","watch","useModelDuplex","useRender","polyTransitionPropOptions","toKebabCase","bindClasses","chooseProps","YLayer","pressYLayerProps","NAME","CLASS_NAME","YMenuPropOptions","menuClasses","type","Array","String","Object","openOnHover","Boolean","default","openOnClickBase","closeOnClick","preventClip","coordinateStrategy","YMenu","name","props","transition","emits","setup","_ref","slots","emit","expose","el$","classes","boundClasses","model","active","get","value","set","v","disabled","onMouseenter","e","onMouseleave","onClick","stopPropagation","currentActive","onComplementClick","bindHover","el","addEventListener","unbindHover","removeEventListener","baseEl","neo","old","computedContentClasses","contentClasses","_createVNode","_Fragment","_mergeProps","onAfterLeave","scrim","$event","_len","arguments","length","args","_key","base","_len2","_key2"],"sources":["../../../src/components/menu/YMenu.tsx"],"sourcesContent":["import type { PropType } from 'vue';\nimport { computed, defineComponent, ref, watch } from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { pressCoordinateProps } from '../../composables/coordinate';\nimport { polyTransitionPropOptions } from '../../composables/transition';\nimport { toKebabCase } from '../../util/string';\nimport { bindClasses, chooseProps } from '../../util/vue-component';\nimport { YLayer, pressYLayerProps } from '../layer';\n\nimport './YMenu.scss';\n\nconst NAME = 'YMenu';\nconst CLASS_NAME = toKebabCase(NAME);\n\nexport const YMenuPropOptions = {\n menuClasses: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n openOnHover: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n openOnClickBase: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n closeOnClick: {\n type: Boolean,\n },\n preventClip: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n ...pressYLayerProps({\n coordinateStrategy: 'levitation',\n }),\n};\n\n/**\n * # Component\n */\nexport const YMenu = defineComponent({\n name: NAME,\n props: {\n ...YMenuPropOptions,\n transition: {\n ...polyTransitionPropOptions.transition,\n default: 'fade',\n },\n },\n emits: ['update:modelValue', 'afterLeave'],\n setup(props, { slots, emit, expose }) {\n const el$ = ref<typeof YLayer>();\n\n const classes = computed(() => {\n const boundClasses = bindClasses(props.menuClasses);\n return {\n ...boundClasses,\n 'y-menu': true,\n };\n });\n\n const model = useModelDuplex(props);\n\n const active = computed({\n get: (): boolean => {\n return !!model.value;\n },\n set: (v: boolean) => {\n if (!(v && props.disabled)) model.value = v;\n },\n });\n\n function onMouseenter(e: MouseEvent) {\n if (props.openOnHover) {\n active.value = true;\n }\n }\n\n function onMouseleave(e: MouseEvent) {\n if (props.openOnHover) {\n active.value = false;\n }\n }\n\n function onClick(e: MouseEvent) {\n e.stopPropagation();\n if (!props.openOnClickBase) {\n return;\n }\n const currentActive = active.value;\n if (!props.disabled) {\n active.value = !currentActive;\n }\n }\n\n function onComplementClick(e: Event) {\n if (active.value) {\n active.value = false;\n }\n }\n\n function bindHover(el: HTMLElement) {\n el.addEventListener('mouseenter', onMouseenter);\n el.addEventListener('mouseleave', onMouseleave);\n }\n\n function unbindHover(el: HTMLElement) {\n el.removeEventListener('mouseenter', onMouseenter);\n el.removeEventListener('mouseleave', onMouseleave);\n }\n\n watch(\n () => el$.value?.baseEl,\n (neo, old) => {\n if (neo) {\n bindHover(neo);\n neo.addEventListener('click', onClick);\n } else if (old) {\n unbindHover(old);\n old.removeEventListener('click', onClick);\n }\n },\n );\n\n const computedContentClasses = computed<Record<string, boolean>>(() => {\n const boundClasses = bindClasses(props.contentClasses);\n return {\n ...boundClasses,\n };\n });\n\n useRender(() => {\n return (\n <>\n <YLayer\n ref={el$}\n transition={props.transition}\n onClick:complement={onComplementClick}\n onAfterLeave={() => emit('afterLeave')}\n {...{\n ...chooseProps(props, YLayer.props),\n classes: classes.value,\n scrim: false,\n contentClasses: {\n 'y-menu__content': true,\n ...computedContentClasses.value,\n },\n }}\n v-model={active.value}\n >\n {{\n default: (...args: any) => {\n return <>{slots.default?.(...args) ?? ''}</>;\n },\n base: (...args: any[]) => slots.base?.(...args),\n }}\n </YLayer>\n </>\n );\n });\n\n return {\n el$,\n classes,\n };\n },\n});\n\nexport type YMenu = InstanceType<typeof YMenu>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YMenu.mjs","names":["computed","defineComponent","ref","watch","useModelDuplex","useRender","polyTransitionPropOptions","toKebabCase","bindClasses","chooseProps","YLayer","pressYLayerProps","NAME","CLASS_NAME","YMenuPropOptions","menuClasses","type","Array","String","Object","openOnHover","Boolean","default","openOnClickBase","closeCondition","Function","preventClip","coordinateStrategy","YMenu","name","props","transition","emits","setup","_ref","slots","emit","expose","el$","classes","boundClasses","model","active","get","value","set","v","disabled","onMouseenter","e","onMouseleave","onClick","stopPropagation","currentActive","onComplementClick","bindHover","el","addEventListener","unbindHover","removeEventListener","baseEl","neo","old","computedContentClasses","contentClasses","_createVNode","_Fragment","_mergeProps","onAfterLeave","scrim","$event","_len","arguments","length","args","_key","base","_len2","_key2"],"sources":["../../../src/components/menu/YMenu.tsx"],"sourcesContent":["import type { PropType } from 'vue';\r\nimport { computed, defineComponent, ref, watch } from 'vue';\r\n\r\nimport { useModelDuplex } from '../../composables/communication';\r\nimport { useRender } from '../../composables/component';\r\nimport { pressCoordinateProps } from '../../composables/coordinate';\r\nimport { polyTransitionPropOptions } from '../../composables/transition';\r\nimport { toKebabCase } from '../../util/string';\r\nimport { bindClasses, chooseProps } from '../../util/vue-component';\r\nimport { YLayer, pressYLayerProps } from '../layer';\r\n\r\nimport './YMenu.scss';\r\n\r\nconst NAME = 'YMenu';\r\nconst CLASS_NAME = toKebabCase(NAME);\r\n\r\nexport const YMenuPropOptions = {\r\n menuClasses: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n openOnHover: {\r\n type: Boolean as PropType<boolean>,\r\n default: false,\r\n },\r\n openOnClickBase: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n closeCondition: {\r\n type: [Boolean, Function],\r\n },\r\n preventClip: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n ...pressYLayerProps({\r\n coordinateStrategy: 'levitation',\r\n }),\r\n};\r\n\r\n/**\r\n * # Component\r\n */\r\nexport const YMenu = defineComponent({\r\n name: NAME,\r\n props: {\r\n ...YMenuPropOptions,\r\n transition: {\r\n ...polyTransitionPropOptions.transition,\r\n default: 'fade',\r\n },\r\n },\r\n emits: ['update:modelValue', 'afterLeave'],\r\n setup(props, { slots, emit, expose }) {\r\n const el$ = ref<typeof YLayer>();\r\n\r\n const classes = computed(() => {\r\n const boundClasses = bindClasses(props.menuClasses);\r\n return {\r\n ...boundClasses,\r\n 'y-menu': true,\r\n };\r\n });\r\n\r\n const model = useModelDuplex(props);\r\n\r\n const active = computed({\r\n get: (): boolean => {\r\n return !!model.value;\r\n },\r\n set: (v: boolean) => {\r\n if (!(v && props.disabled)) model.value = v;\r\n },\r\n });\r\n\r\n function onMouseenter(e: MouseEvent) {\r\n if (props.openOnHover) {\r\n active.value = true;\r\n }\r\n }\r\n\r\n function onMouseleave(e: MouseEvent) {\r\n if (props.openOnHover) {\r\n active.value = false;\r\n }\r\n }\r\n\r\n function onClick(e: MouseEvent) {\r\n e.stopPropagation();\r\n if (!props.openOnClickBase) {\r\n return;\r\n }\r\n const currentActive = active.value;\r\n if (!props.disabled) {\r\n active.value = !currentActive;\r\n }\r\n }\r\n\r\n function onComplementClick(e: Event) {\r\n if (props.closeCondition === false) {\r\n return;\r\n }\r\n if (typeof props.closeCondition === 'function') {\r\n if (props.closeCondition(e) === false) {\r\n active.value = false;\r\n }\r\n return;\r\n }\r\n\r\n if (active.value) {\r\n active.value = false;\r\n }\r\n }\r\n\r\n function bindHover(el: HTMLElement) {\r\n el.addEventListener('mouseenter', onMouseenter);\r\n el.addEventListener('mouseleave', onMouseleave);\r\n }\r\n\r\n function unbindHover(el: HTMLElement) {\r\n el.removeEventListener('mouseenter', onMouseenter);\r\n el.removeEventListener('mouseleave', onMouseleave);\r\n }\r\n\r\n watch(\r\n () => el$.value?.baseEl,\r\n (neo, old) => {\r\n if (neo) {\r\n bindHover(neo);\r\n neo.addEventListener('click', onClick);\r\n } else if (old) {\r\n unbindHover(old);\r\n old.removeEventListener('click', onClick);\r\n }\r\n },\r\n );\r\n\r\n const computedContentClasses = computed<Record<string, boolean>>(() => {\r\n const boundClasses = bindClasses(props.contentClasses);\r\n return {\r\n ...boundClasses,\r\n };\r\n });\r\n\r\n useRender(() => {\r\n return (\r\n <>\r\n <YLayer\r\n ref={el$}\r\n transition={props.transition}\r\n onClick:complement={onComplementClick}\r\n onAfterLeave={() => emit('afterLeave')}\r\n {...{\r\n ...chooseProps(props, YLayer.props),\r\n classes: classes.value,\r\n scrim: false,\r\n contentClasses: {\r\n 'y-menu__content': true,\r\n ...computedContentClasses.value,\r\n },\r\n }}\r\n v-model={active.value}\r\n >\r\n {{\r\n default: (...args: any) => {\r\n return <>{slots.default?.(...args) ?? ''}</>;\r\n },\r\n base: (...args: any[]) => slots.base?.(...args),\r\n }}\r\n </YLayer>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n el$,\r\n classes,\r\n };\r\n },\r\n});\r\n\r\nexport type YMenu = InstanceType<typeof YMenu>;\r\n"],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  .y-progress {
4
4
  --y-progress-bar__height: 4px;
5
5
  --y-progress-bar__color: var(--y-theme-primary);
6
+ --y-progress-bar__track-color: rgba(var(--y-theme-surface-variant), 0.74);
6
7
 
7
8
  display: flex;
8
9
  position: relative;
@@ -37,7 +38,7 @@
37
38
  }
38
39
 
39
40
  &__track {
40
- background-color: #f0f0f0;
41
+ background-color: var(--y-progress-bar__track-color);
41
42
  position: absolute;
42
43
  inset: 0;
43
44
  border-radius: inherit;
@@ -0,0 +1,17 @@
1
+ import { createVNode as _createVNode, Fragment as _Fragment } from "vue";
2
+ import { defineComponent } from 'vue';
3
+ import { useRender } from "../../composables/component.mjs";
4
+ import { YButton } from "../button/index.mjs";
5
+ export const YTab = defineComponent({
6
+ name: 'YTab',
7
+ props: {},
8
+ setup() {
9
+ useRender(() => {
10
+ return _createVNode(_Fragment, null, [_createVNode(YButton, null, {
11
+ default: () => [_createVNode("slot", null, null)]
12
+ })]);
13
+ });
14
+ return {};
15
+ }
16
+ });
17
+ //# sourceMappingURL=YTab.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YTab.mjs","names":["defineComponent","useRender","YButton","YTab","name","props","setup","_createVNode","_Fragment","default"],"sources":["../../../src/components/tab/YTab.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { YButton } from '../button';\n\nexport const YTab = defineComponent({\n name: 'YTab',\n props: {},\n setup() {\n useRender(() => {\n return (\n <>\n <YButton>\n <slot></slot>\n </YButton>\n </>\n );\n });\n\n return {};\n },\n});\n"],"mappings":";AAAA,SAASA,eAAe,QAAQ,KAAK;AAAC,SAE7BC,SAAS;AAAA,SACTC,OAAO;AAEhB,OAAO,MAAMC,IAAI,GAAGH,eAAe,CAAC;EAClCI,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,CAAC,CAAC;EACTC,KAAKA,CAAA,EAAG;IACNL,SAAS,CAAC,MAAM;MACd,OAAAM,YAAA,CAAAC,SAAA,SAAAD,YAAA,CAAAL,OAAA;QAAAO,OAAA,EAAAA,CAAA,MAAAF,YAAA;MAAA;IAOF,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { createVNode as _createVNode } from "vue";
2
+ import { defineComponent } from 'vue';
3
+ import { useRender } from "../../composables/component.mjs";
4
+ import { useResizeObserver } from "../../composables/resize-observer.mjs";
5
+ import { propsFactory } from "../../util/vue-component.mjs";
6
+ export const pressYTabsPropOptions = propsFactory({}, 'YTabs');
7
+ export const YTabs = defineComponent({
8
+ name: 'YTabs',
9
+ props: {
10
+ tag: {
11
+ type: String,
12
+ default: 'div'
13
+ }
14
+ },
15
+ setup(props, _ref) {
16
+ let {
17
+ slots
18
+ } = _ref;
19
+ const {
20
+ resizeObservedRef: container$,
21
+ contentRect: containerRect
22
+ } = useResizeObserver();
23
+ const {
24
+ resizeObservedRef: content$,
25
+ contentRect
26
+ } = useResizeObserver();
27
+ useRender(() => {
28
+ return _createVNode(props.tag, {
29
+ "class": ['y-tabs']
30
+ }, {
31
+ default: () => [_createVNode("div", {
32
+ "key": "container",
33
+ "ref": container$,
34
+ "class": ['y-tabs__container']
35
+ }, [_createVNode("div", {
36
+ "key": "content",
37
+ "ref": content$
38
+ }, [slots.default?.()])])]
39
+ });
40
+ });
41
+ return {};
42
+ }
43
+ });
44
+ //# sourceMappingURL=YTabs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YTabs.mjs","names":["defineComponent","useRender","useResizeObserver","propsFactory","pressYTabsPropOptions","YTabs","name","props","tag","type","String","default","setup","_ref","slots","resizeObservedRef","container$","contentRect","containerRect","content$","_createVNode"],"sources":["../../../src/components/tab/YTabs.tsx"],"sourcesContent":["import { PropType, defineComponent, ref } from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { useResizeObserver } from '../../composables/resize-observer';\nimport { propsFactory } from '../../util/vue-component';\n\nexport const pressYTabsPropOptions = propsFactory({}, 'YTabs');\n\nexport const YTabs = defineComponent({\n name: 'YTabs',\n props: {\n tag: {\n type: String as PropType<'div' | 'nav' | 'ol' | 'ul'>,\n default: 'div',\n },\n },\n setup(props, { slots }) {\n const { resizeObservedRef: container$, contentRect: containerRect } =\n useResizeObserver();\n const { resizeObservedRef: content$, contentRect } = useResizeObserver();\n\n useRender(() => {\n return (\n <props.tag class={['y-tabs']}>\n <div\n key=\"container\"\n ref={container$}\n class={['y-tabs__container']}\n >\n <div key=\"content\" ref={content$}>\n {slots.default?.()}\n </div>\n </div>\n </props.tag>\n );\n });\n\n return {};\n },\n});\n"],"mappings":";AAAA,SAAmBA,eAAe,QAAa,KAAK;AAAC,SAE5CC,SAAS;AAAA,SACTC,iBAAiB;AAAA,SACjBC,YAAY;AAErB,OAAO,MAAMC,qBAAqB,GAAGD,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAE9D,OAAO,MAAME,KAAK,GAAGL,eAAe,CAAC;EACnCM,IAAI,EAAE,OAAO;EACbC,KAAK,EAAE;IACLC,GAAG,EAAE;MACHC,IAAI,EAAEC,MAA+C;MACrDC,OAAO,EAAE;IACX;EACF,CAAC;EACDC,KAAKA,CAACL,KAAK,EAAAM,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACpB,MAAM;MAAEE,iBAAiB,EAAEC,UAAU;MAAEC,WAAW,EAAEC;IAAc,CAAC,GACjEhB,iBAAiB,CAAC,CAAC;IACrB,MAAM;MAAEa,iBAAiB,EAAEI,QAAQ;MAAEF;IAAY,CAAC,GAAGf,iBAAiB,CAAC,CAAC;IAExED,SAAS,CAAC,MAAM;MACd,OAAAmB,YAAA,CAAAb,KAAA,CAAAC,GAAA;QAAA,SACoB,CAAC,QAAQ;MAAC;QAAAG,OAAA,EAAAA,CAAA,MAAAS,YAAA;UAAA,OAEpB,WAAW;UAAA,OACVJ,UAAU;UAAA,SACR,CAAC,mBAAmB;QAAC,IAAAI,YAAA;UAAA,OAEnB,SAAS;UAAA,OAAMD;QAAQ,IAC7BL,KAAK,CAACH,OAAO,GAAG,CAAC;MAAA;IAK5B,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./YTabs.mjs";
2
+ export * from "./YTab.mjs";
3
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/components/tab/index.ts"],"sourcesContent":["export * from './YTabs';\nexport * from './YTab';\n"],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import { inject, provide, ref, watchEffect } from 'vue';
2
- import { propsFactory } from "../../../util/vue-component.mjs";
3
2
  import { getRangeArr } from "../../../util/common.mjs";
3
+ import { propsFactory } from "../../../util/vue-component.mjs";
4
4
  export const pressDataTableHeader = propsFactory({
5
5
  headers: {
6
6
  type: Array,
@@ -1 +1 @@
1
- {"version":3,"file":"header.mjs","names":["inject","provide","ref","watchEffect","propsFactory","getRangeArr","pressDataTableHeader","headers","type","Array","default","Y_DATA_TABLE_HEADER_KEY","Symbol","for","createHeader","props","options","columns","rows","length","isArray","flat","flatMap","row","index","map","column","rowIndex","rowCount","defaultHeader","text","sortable","defaultActionHeader","width","enableSelect","value","foundIndex","findIndex","_ref","key","unshift","rowspan","splice","fixedRows","fixedOffsets","fill","forEach","_ref2","i","push","fixedOffset","Number","fixed","lastFixed","seen","Set","filtered","has","add","at","data","useHeader","Error","description"],"sources":["../../../../src/components/table/composibles/header.ts"],"sourcesContent":["import {\n DeepReadonly,\n InjectionKey,\n PropType,\n Ref,\n inject,\n provide,\n ref,\n watchEffect,\n} from 'vue';\n\nimport { propsFactory } from '../../../util/vue-component';\n\nimport { DataTableHeader, InternalDataTableHeader } from '../types';\nimport { getRangeArr } from \"../../../util/common\";\n\nexport const pressDataTableHeader = propsFactory(\n {\n headers: {\n type: Array as PropType<DataTableHeader[] | DataTableHeader[][]>,\n default: () => [],\n },\n },\n 'YDataTable--header',\n);\n\nexport const Y_DATA_TABLE_HEADER_KEY: InjectionKey<{\n headers: Ref<InternalDataTableHeader[][]>;\n columns: Ref<InternalDataTableHeader[]>;\n}> = Symbol.for('yuyeon.data-table.header');\n\ntype HeaderProps = {\n headers: DeepReadonly<DataTableHeader[] | DataTableHeader[][]>;\n};\n\nexport function createHeader(\n props: HeaderProps,\n options?: {\n enableSelect?: Ref<boolean>;\n },\n) {\n const headers = ref<InternalDataTableHeader[][]>([]);\n const columns = ref<InternalDataTableHeader[]>([]);\n\n watchEffect(() => {\n const rows =\n props.headers.length > 0\n ? Array.isArray(props.headers[0])\n ? (props.headers as DataTableHeader[][])\n : [props.headers as DataTableHeader[]]\n : [];\n const flat = rows.flatMap((row, index) =>\n row.map((column) => ({ column, rowIndex: index })),\n );\n const rowCount = rows.length;\n const defaultHeader = { text: '', sortable: false };\n const defaultActionHeader = { ...defaultHeader, width: 48 };\n\n if (options?.enableSelect?.value) {\n const foundIndex = flat.findIndex(\n ({ column }) => column.key === 'data-table-select',\n );\n if (foundIndex < 0) {\n flat.unshift({\n column: {\n ...defaultActionHeader,\n key: 'data-table-select',\n rowspan: rowCount,\n },\n rowIndex: 0,\n });\n } else {\n flat.splice(foundIndex, 1, {\n column: {\n ...defaultActionHeader,\n ...flat[foundIndex].column,\n },\n rowIndex: flat[foundIndex].rowIndex,\n });\n }\n }\n\n const fixedRows: InternalDataTableHeader[][] = getRangeArr(rowCount).map(() => []);\n const fixedOffsets = getRangeArr(rowCount).fill(0);\n\n flat.forEach(({ column, rowIndex }) => {\n const { key } = column;\n for (let i = rowIndex; i <= rowIndex + (column.rowspan ?? 1) - 1; i += 1) {\n fixedRows[i].push({\n ...column,\n key,\n fixedOffset: fixedOffsets[i],\n sortable: column.sortable ?? !!key,\n })\n fixedOffsets[i] += Number(column.width ?? 0);\n }\n });\n\n fixedRows.forEach((row) => {\n for (let i = row.length; i -= 1; i >= 0) {\n if (row[i].fixed) {\n row[i].lastFixed = true;\n return;\n }\n }\n })\n\n const seen = new Set();\n headers.value = fixedRows.map((row) => {\n const filtered = [];\n for (const column of row) {\n if (!seen.has(column.key)) {\n seen.add(column.key);\n filtered.push(column);\n }\n }\n return filtered;\n });\n\n columns.value = fixedRows.at(-1) ?? [];\n });\n\n const data = { headers, columns };\n\n provide(Y_DATA_TABLE_HEADER_KEY, data);\n\n return data;\n}\n\nexport function useHeader() {\n const data = inject(Y_DATA_TABLE_HEADER_KEY);\n if (!data) {\n throw new Error(`Not provided: ${Y_DATA_TABLE_HEADER_KEY.description}`);\n }\n return data;\n}\n"],"mappings":"AAAA,SAKEA,MAAM,EACNC,OAAO,EACPC,GAAG,EACHC,WAAW,QACN,KAAK;AAAC,SAEJC,YAAY;AAAA,SAGZC,WAAW;AAEpB,OAAO,MAAMC,oBAAoB,GAAGF,YAAY,CAC9C;EACEG,OAAO,EAAE;IACPC,IAAI,EAAEC,KAA0D;IAChEC,OAAO,EAAEA,CAAA,KAAM;EACjB;AACF,CAAC,EACD,oBACF,CAAC;AAED,OAAO,MAAMC,uBAGX,GAAGC,MAAM,CAACC,GAAG,CAAC,0BAA0B,CAAC;AAM3C,OAAO,SAASC,YAAYA,CAC1BC,KAAkB,EAClBC,OAEC,EACD;EACA,MAAMT,OAAO,GAAGL,GAAG,CAA8B,EAAE,CAAC;EACpD,MAAMe,OAAO,GAAGf,GAAG,CAA4B,EAAE,CAAC;EAElDC,WAAW,CAAC,MAAM;IAChB,MAAMe,IAAI,GACRH,KAAK,CAACR,OAAO,CAACY,MAAM,GAAG,CAAC,GACpBV,KAAK,CAACW,OAAO,CAACL,KAAK,CAACR,OAAO,CAAC,CAAC,CAAC,CAAC,GAC5BQ,KAAK,CAACR,OAAO,GACd,CAACQ,KAAK,CAACR,OAAO,CAAsB,GACtC,EAAE;IACR,MAAMc,IAAI,GAAGH,IAAI,CAACI,OAAO,CAAC,CAACC,GAAG,EAAEC,KAAK,KACnCD,GAAG,CAACE,GAAG,CAAEC,MAAM,KAAM;MAAEA,MAAM;MAAEC,QAAQ,EAAEH;IAAM,CAAC,CAAC,CACnD,CAAC;IACD,MAAMI,QAAQ,GAAGV,IAAI,CAACC,MAAM;IAC5B,MAAMU,aAAa,GAAG;MAAEC,IAAI,EAAE,EAAE;MAAEC,QAAQ,EAAE;IAAM,CAAC;IACnD,MAAMC,mBAAmB,GAAG;MAAE,GAAGH,aAAa;MAAEI,KAAK,EAAE;IAAG,CAAC;IAE3D,IAAIjB,OAAO,EAAEkB,YAAY,EAAEC,KAAK,EAAE;MAChC,MAAMC,UAAU,GAAGf,IAAI,CAACgB,SAAS,CAC/BC,IAAA;QAAA,IAAC;UAAEZ;QAAO,CAAC,GAAAY,IAAA;QAAA,OAAKZ,MAAM,CAACa,GAAG,KAAK,mBAAmB;MAAA,CACpD,CAAC;MACD,IAAIH,UAAU,GAAG,CAAC,EAAE;QAClBf,IAAI,CAACmB,OAAO,CAAC;UACXd,MAAM,EAAE;YACN,GAAGM,mBAAmB;YACtBO,GAAG,EAAE,mBAAmB;YACxBE,OAAO,EAAEb;UACX,CAAC;UACDD,QAAQ,EAAE;QACZ,CAAC,CAAC;MACJ,CAAC,MAAM;QACLN,IAAI,CAACqB,MAAM,CAACN,UAAU,EAAE,CAAC,EAAE;UACzBV,MAAM,EAAE;YACN,GAAGM,mBAAmB;YACtB,GAAGX,IAAI,CAACe,UAAU,CAAC,CAACV;UACtB,CAAC;UACDC,QAAQ,EAAEN,IAAI,CAACe,UAAU,CAAC,CAACT;QAC7B,CAAC,CAAC;MACJ;IACF;IAEA,MAAMgB,SAAsC,GAAGtC,WAAW,CAACuB,QAAQ,CAAC,CAACH,GAAG,CAAC,MAAM,EAAE,CAAC;IAClF,MAAMmB,YAAY,GAAGvC,WAAW,CAACuB,QAAQ,CAAC,CAACiB,IAAI,CAAC,CAAC,CAAC;IAElDxB,IAAI,CAACyB,OAAO,CAACC,KAAA,IAA0B;MAAA,IAAzB;QAAErB,MAAM;QAAEC;MAAS,CAAC,GAAAoB,KAAA;MAChC,MAAM;QAAER;MAAI,CAAC,GAAGb,MAAM;MACtB,KAAK,IAAIsB,CAAC,GAAGrB,QAAQ,EAAEqB,CAAC,IAAIrB,QAAQ,IAAID,MAAM,CAACe,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,EAAEO,CAAC,IAAI,CAAC,EAAE;QACxEL,SAAS,CAACK,CAAC,CAAC,CAACC,IAAI,CAAC;UAChB,GAAGvB,MAAM;UACTa,GAAG;UACHW,WAAW,EAAEN,YAAY,CAACI,CAAC,CAAC;UAC5BjB,QAAQ,EAAEL,MAAM,CAACK,QAAQ,IAAI,CAAC,CAACQ;QACjC,CAAC,CAAC;QACFK,YAAY,CAACI,CAAC,CAAC,IAAIG,MAAM,CAACzB,MAAM,CAACO,KAAK,IAAI,CAAC,CAAC;MAC9C;IACF,CAAC,CAAC;IAEFU,SAAS,CAACG,OAAO,CAAEvB,GAAG,IAAK;MACzB,KAAK,IAAIyB,CAAC,GAAGzB,GAAG,CAACJ,MAAM,EAAE6B,CAAC,IAAI,CAAC,EAAEA,CAAC,IAAI,CAAC,EAAE;QACvC,IAAIzB,GAAG,CAACyB,CAAC,CAAC,CAACI,KAAK,EAAE;UAChB7B,GAAG,CAACyB,CAAC,CAAC,CAACK,SAAS,GAAG,IAAI;UACvB;QACF;MACF;IACF,CAAC,CAAC;IAEF,MAAMC,IAAI,GAAG,IAAIC,GAAG,CAAC,CAAC;IACtBhD,OAAO,CAAC4B,KAAK,GAAGQ,SAAS,CAAClB,GAAG,CAAEF,GAAG,IAAK;MACrC,MAAMiC,QAAQ,GAAG,EAAE;MACnB,KAAK,MAAM9B,MAAM,IAAIH,GAAG,EAAE;QACxB,IAAI,CAAC+B,IAAI,CAACG,GAAG,CAAC/B,MAAM,CAACa,GAAG,CAAC,EAAE;UACzBe,IAAI,CAACI,GAAG,CAAChC,MAAM,CAACa,GAAG,CAAC;UACpBiB,QAAQ,CAACP,IAAI,CAACvB,MAAM,CAAC;QACvB;MACF;MACA,OAAO8B,QAAQ;IACjB,CAAC,CAAC;IAEFvC,OAAO,CAACkB,KAAK,GAAGQ,SAAS,CAACgB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;EACxC,CAAC,CAAC;EAEF,MAAMC,IAAI,GAAG;IAAErD,OAAO;IAAEU;EAAQ,CAAC;EAEjChB,OAAO,CAACU,uBAAuB,EAAEiD,IAAI,CAAC;EAEtC,OAAOA,IAAI;AACb;AAEA,OAAO,SAASC,SAASA,CAAA,EAAG;EAC1B,MAAMD,IAAI,GAAG5D,MAAM,CAACW,uBAAuB,CAAC;EAC5C,IAAI,CAACiD,IAAI,EAAE;IACT,MAAM,IAAIE,KAAK,CAAE,iBAAgBnD,uBAAuB,CAACoD,WAAY,EAAC,CAAC;EACzE;EACA,OAAOH,IAAI;AACb"}
1
+ {"version":3,"file":"header.mjs","names":["inject","provide","ref","watchEffect","getRangeArr","propsFactory","pressDataTableHeader","headers","type","Array","default","Y_DATA_TABLE_HEADER_KEY","Symbol","for","createHeader","props","options","columns","rows","length","isArray","flat","flatMap","row","index","map","column","rowIndex","rowCount","defaultHeader","text","sortable","defaultActionHeader","width","enableSelect","value","foundIndex","findIndex","_ref","key","unshift","rowspan","splice","fixedRows","fixedOffsets","fill","forEach","_ref2","i","push","fixedOffset","Number","fixed","lastFixed","seen","Set","filtered","has","add","at","data","useHeader","Error","description"],"sources":["../../../../src/components/table/composibles/header.ts"],"sourcesContent":["import {\n DeepReadonly,\n InjectionKey,\n PropType,\n Ref,\n inject,\n provide,\n ref,\n watchEffect,\n} from 'vue';\n\nimport { getRangeArr } from '../../../util/common';\nimport { propsFactory } from '../../../util/vue-component';\nimport { DataTableHeader, InternalDataTableHeader } from '../types';\n\nexport const pressDataTableHeader = propsFactory(\n {\n headers: {\n type: Array as PropType<DataTableHeader[] | DataTableHeader[][]>,\n default: () => [],\n },\n },\n 'YDataTable--header',\n);\n\nexport const Y_DATA_TABLE_HEADER_KEY: InjectionKey<{\n headers: Ref<InternalDataTableHeader[][]>;\n columns: Ref<InternalDataTableHeader[]>;\n}> = Symbol.for('yuyeon.data-table.header');\n\ntype HeaderProps = {\n headers: DeepReadonly<DataTableHeader[] | DataTableHeader[][]>;\n};\n\nexport function createHeader(\n props: HeaderProps,\n options?: {\n enableSelect?: Ref<boolean>;\n },\n) {\n const headers = ref<InternalDataTableHeader[][]>([]);\n const columns = ref<InternalDataTableHeader[]>([]);\n\n watchEffect(() => {\n const rows =\n props.headers.length > 0\n ? Array.isArray(props.headers[0])\n ? (props.headers as DataTableHeader[][])\n : [props.headers as DataTableHeader[]]\n : [];\n const flat = rows.flatMap((row, index) =>\n row.map((column) => ({ column, rowIndex: index })),\n );\n const rowCount = rows.length;\n const defaultHeader = { text: '', sortable: false };\n const defaultActionHeader = { ...defaultHeader, width: 48 };\n\n if (options?.enableSelect?.value) {\n const foundIndex = flat.findIndex(\n ({ column }) => column.key === 'data-table-select',\n );\n if (foundIndex < 0) {\n flat.unshift({\n column: {\n ...defaultActionHeader,\n key: 'data-table-select',\n rowspan: rowCount,\n },\n rowIndex: 0,\n });\n } else {\n flat.splice(foundIndex, 1, {\n column: {\n ...defaultActionHeader,\n ...flat[foundIndex].column,\n },\n rowIndex: flat[foundIndex].rowIndex,\n });\n }\n }\n\n const fixedRows: InternalDataTableHeader[][] = getRangeArr(rowCount).map(\n () => [],\n );\n const fixedOffsets = getRangeArr(rowCount).fill(0);\n\n flat.forEach(({ column, rowIndex }) => {\n const { key } = column;\n for (\n let i = rowIndex;\n i <= rowIndex + (column.rowspan ?? 1) - 1;\n i += 1\n ) {\n fixedRows[i].push({\n ...column,\n key,\n fixedOffset: fixedOffsets[i],\n sortable: column.sortable ?? !!key,\n });\n fixedOffsets[i] += Number(column.width ?? 0);\n }\n });\n\n fixedRows.forEach((row) => {\n for (let i = row.length; (i -= 1); i >= 0) {\n if (row[i].fixed) {\n row[i].lastFixed = true;\n return;\n }\n }\n });\n\n const seen = new Set();\n headers.value = fixedRows.map((row) => {\n const filtered = [];\n for (const column of row) {\n if (!seen.has(column.key)) {\n seen.add(column.key);\n filtered.push(column);\n }\n }\n return filtered;\n });\n\n columns.value = fixedRows.at(-1) ?? [];\n });\n\n const data = { headers, columns };\n\n provide(Y_DATA_TABLE_HEADER_KEY, data);\n\n return data;\n}\n\nexport function useHeader() {\n const data = inject(Y_DATA_TABLE_HEADER_KEY);\n if (!data) {\n throw new Error(`Not provided: ${Y_DATA_TABLE_HEADER_KEY.description}`);\n }\n return data;\n}\n"],"mappings":"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"}
@@ -303,6 +303,12 @@ export const YTreeView = defineComponent({
303
303
  issueVnodeState(key);
304
304
  }
305
305
  updateNodes(props.items);
306
+ for (const activeValue of props.active.map(getNodeKey)) {
307
+ updateActive(activeValue, true);
308
+ }
309
+ for (const selectedValue of props.selected.map(getNodeKey)) {
310
+ updateSelected(selectedValue, true);
311
+ }
306
312
  provide('tree-view', {
307
313
  register,
308
314
  updateExpanded,
@@ -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","renderLeaves","leaf","classes","styles","color","activeColor","_createVNode","_Fragment","_createTextVNode"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import {\n PropType,\n Ref,\n VNode,\n computed,\n defineComponent,\n onMounted,\n provide,\n ref,\n shallowRef,\n watch,\n watchEffect,\n} from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { differenceBetween } from '../../util/array';\nimport {\n deepEqual,\n getObjectValueByPath,\n hasOwnProperty,\n} from '../../util/common';\nimport { debounce } from '../../util/debounce';\nimport { chooseProps } from '../../util/vue-component';\nimport { YProgressBar } from '../progress-bar';\nimport { YTreeViewNode, pressYTreeViewNodeProps } from './YTreeViewNode';\nimport { filterTreeItem, filterTreeItems, getKeys } from './util';\n\nimport { CandidateKey } from '../../types';\nimport './YTreeView.scss';\nimport { NodeState, TreeviewFilterFn } from './types';\nimport { isColorValue } from \"../../util/color\";\n\nconst treeViewNodeProps = pressYTreeViewNodeProps();\n\nexport const YTreeView = defineComponent({\n name: 'YTreeView',\n props: {\n expanded: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n active: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n multipleActive: Boolean,\n activeStrategy: {\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\n default: 'independent',\n },\n selected: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n selectStrategy: {\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\n default: 'leaf',\n },\n returnItem: Boolean,\n defaultExpand: [Boolean, String, Number],\n filter: Function as PropType<TreeviewFilterFn>,\n searchDebounceWait: {\n type: Number as PropType<number>,\n default: 700,\n },\n ...treeViewNodeProps,\n },\n emits: ['update:expanded', 'update:active', 'update:selected'],\n setup(props, { slots, emit, expose }) {\n const nodes = ref<Record<CandidateKey, any>>({});\n\n const expanded = useModelDuplex(props, 'expanded');\n const active = useModelDuplex(props, 'active');\n const selected = useModelDuplex(props, 'selected');\n\n const expandedSet = ref(new Set<CandidateKey>());\n const selectedSet = ref(new Set<CandidateKey>());\n const activeSet = ref(new Set<CandidateKey>());\n const excludedSet = ref(new Set<CandidateKey>());\n const filterItemsFn = shallowRef(\n debounce(excludeItem, props.searchDebounceWait),\n );\n const expandedCache = ref<CandidateKey[]>([]);\n const searchLoading = shallowRef(false);\n\n function excludeItem(items: any[], search = '', filter = filterTreeItem) {\n const excluded = new Set<CandidateKey>();\n if (!search) {\n searchLoading.value = false;\n excludedSet.value = excluded;\n const diff = differenceBetween(expandedCache.value, [...expandedSet.value]);\n diff.forEach((key) => {\n updateExpanded(key, false);\n });\n expandedCache.value.forEach((key) => {\n updateExpanded(key, true);\n });\n return;\n }\n for (const item of items) {\n filterTreeItems(\n filter,\n item,\n search ?? '',\n props.itemKey,\n props.itemText,\n props.itemChildren as string,\n excluded,\n );\n }\n excludedSet.value = excluded;\n searchLoading.value = false;\n expand();\n }\n\n watchEffect(() => {\n searchLoading.value = true;\n filterItemsFn.value(props.items, props.search, props.filter);\n });\n\n // Util Methods\n function getDescendants(\n key: CandidateKey,\n descendants: CandidateKey[] = [],\n ) {\n const { childKeys } = nodes.value[key];\n descendants.push(...childKeys);\n for (const childKey of childKeys) {\n descendants = getDescendants(childKey, descendants);\n }\n return descendants;\n }\n\n function getNodeKey(itemOrKey: any) {\n return props.returnItem\n ? getObjectValueByPath(itemOrKey, props.itemKey)\n : itemOrKey;\n }\n\n // State Methods\n function updateNodes(\n items: any[],\n parentKey: CandidateKey | null = null,\n level = 0,\n ) {\n for (const item of items) {\n const key = getObjectValueByPath(item, props.itemKey);\n const children = getObjectValueByPath(item, props.itemChildren as string) ?? [];\n const exist = hasOwnProperty(nodes.value, key);\n const existNode = exist\n ? nodes.value[key]\n : {\n vnode: null,\n selected: false,\n indeterminate: false,\n active: false,\n expanded: false,\n };\n const node: NodeState = {\n vnode: existNode.vnode,\n item,\n level,\n parentKey,\n childKeys: children.map((child: any) =>\n getObjectValueByPath(child, props.itemKey),\n ),\n expanded: children.length > 0 && existNode.expanded,\n active: existNode.active,\n indeterminate: existNode.indeterminate,\n selected: existNode.selected,\n };\n\n updateNodes(children, key, level + 1);\n\n nodes.value[key] = node;\n if (nodes.value[key].expanded) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].selected) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].active) {\n activeSet.value.add(key);\n }\n\n issueVnodeState(key);\n }\n }\n\n function updateExpanded(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n const children = getObjectValueByPath(node.item, props.itemChildren as string);\n if (Array.isArray(children) && children.length > 0) {\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\n node.expanded = to;\n issueVnodeState(key);\n }\n }\n\n watch(expandedSet, (neo) => {\n if (!props.search) {\n expandedCache.value = [...neo];\n }\n }, { deep: true })\n\n function expand(until: boolean | string | number = true) {\n Object.entries(nodes.value).forEach(([key, node]) => {\n if (until === true || until >= node.level) {\n updateExpanded(key, true);\n }\n });\n emitExpanded();\n return expandedSet.value;\n }\n\n function updateActive(key: CandidateKey, to: boolean, event?: MouseEvent) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n let inactiveKey = !to ? key : '';\n if (!props.multipleActive) {\n [inactiveKey] = activeSet.value.keys();\n }\n if (to) {\n activeSet.value.add(key);\n node.active = true;\n }\n if (inactiveKey && inactiveKey in nodes.value) {\n activeSet.value.delete(inactiveKey);\n nodes.value[inactiveKey].active = false;\n issueVnodeState(inactiveKey);\n }\n\n if (\n props.activeSingleModifier &&\n event?.getModifierState(props.activeSingleModifier)\n ) {\n return;\n }\n\n if (props.multipleActive && props.activeStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? activeSet.value.add(descendant)\n : activeSet.value.delete(descendant);\n nodes.value[descendant].active = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function updateSelected(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n\n if (to) {\n selectedSet.value.add(key);\n node.selected = true;\n }\n\n if (!to && key in nodes.value) {\n selectedSet.value.delete(key);\n nodes.value[key].selected = false;\n issueVnodeState(key);\n }\n\n if (props.selectStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? selectedSet.value.add(descendant)\n : selectedSet.value.delete(descendant);\n nodes.value[descendant].selected = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function emitExpanded() {\n const arr = [...expandedSet.value];\n expanded.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitActive() {\n const arr = [...activeSet.value];\n active.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitSelected() {\n const arr = [...selectedSet.value];\n selected.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function stateWatcher(\n value: any[],\n stateSet: Ref<Set<CandidateKey>>,\n updater: (key: CandidateKey, to: boolean) => void,\n emitter: () => void,\n ) {\n const valuesOfKey = props.returnItem\n ? value.map((v) => getObjectValueByPath(v, props.itemKey))\n : value;\n const old = [...stateSet.value];\n if (deepEqual(old, valuesOfKey)) {\n return;\n }\n old.forEach((key) => updater(key, false));\n valuesOfKey.forEach((key) => updater(key, true));\n emitter();\n }\n\n watch(expanded, (neo) => {\n stateWatcher(neo, expandedSet, updateExpanded, emitExpanded);\n });\n\n watch(active, (neo) => {\n stateWatcher(neo, activeSet, updateActive, emitActive);\n });\n\n watch(selected, (neo) => {\n stateWatcher(neo, selectedSet, updateSelected, emitSelected);\n });\n\n watch(\n () => props.items,\n (neo: any[]) => {\n const oldKeys = Object.keys(nodes.value).map((nodeKey) =>\n getObjectValueByPath(nodes.value[nodeKey].item, props.itemKey),\n );\n const neoKeys = getKeys(neo, props.itemKey, props.itemChildren as string);\n const diff = differenceBetween(oldKeys, neoKeys);\n if (diff.length < 1 && neoKeys.length < oldKeys.length) {\n return;\n }\n diff.forEach((k) => delete nodes.value[k]);\n\n // init\n const oldSelected = [...selectedSet.value];\n selectedSet.value.clear();\n expandedSet.value.clear();\n activeSet.value.clear();\n updateNodes(neo);\n if (!deepEqual(oldSelected, [...selectedSet.value])) {\n emitSelected();\n }\n },\n { deep: true },\n );\n\n // Search\n function isExcluded(key: CandidateKey) {\n return !!props.search && excludedSet.value.has(key);\n }\n\n // Provide & Issue\n function issueVnodeState(key: CandidateKey) {\n const node = nodes.value[key];\n if (node && node.vnode) {\n node.vnode.active = node.active;\n node.vnode.selected = node.selected;\n node.vnode.indeterminate = node.indeterminate;\n node.vnode.expanded = node.expanded;\n }\n }\n\n function register(key: CandidateKey, vnode: VNode) {\n if (nodes.value[key]) {\n nodes.value[key].vnode = vnode;\n }\n\n issueVnodeState(key);\n }\n\n updateNodes(props.items);\n\n provide('tree-view', {\n register,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n isExcluded,\n searchLoading,\n });\n\n const renderLeaves = computed(() => {\n return props.items.filter((leaf) => {\n return !isExcluded(getObjectValueByPath(leaf, props.itemKey));\n });\n });\n\n const classes = computed(() => {\n return {\n 'y-tree-view': true,\n };\n });\n\n const styles = computed(() => {\n let color = props.activeColor;\n if (props.activeColor && !isColorValue(props.activeColor)) {\n color = `rgba(var(--y-theme-${props.activeColor}), 1)`;\n }\n return {\n [`--y-tree-view__active-color`]: color,\n };\n });\n\n onMounted(() => {\n if (props.defaultExpand !== undefined) {\n expandedCache.value = [...expand(props.defaultExpand)];\n } else {\n expanded.value.forEach((v: any) => updateExpanded(getNodeKey(v), true));\n emitExpanded();\n }\n });\n\n expose({\n expand,\n });\n\n useRender(() => {\n return (\n <>\n <div class={classes.value} style={styles.value} role=\"tree\">\n {searchLoading.value && <YProgressBar indeterminate />}\n {renderLeaves.value.length > 0 ? (\n renderLeaves.value.map((leaf) => {\n return (\n <YTreeViewNode\n v-slots={slots}\n {...{\n ...chooseProps(props, treeViewNodeProps),\n item: leaf,\n level: 0,\n }}\n ></YTreeViewNode>\n );\n })\n ) : (\n <div class=\"y-tree-view__no-data\">\n {slots['no-data'] ? slots['no-data']() : <span>No Data</span>}\n </div>\n )}\n </div>\n </>\n );\n });\n\n return {\n nodes,\n expandedSet,\n selectedSet,\n activeSet,\n excludedSet,\n searchLoading,\n expandedCache,\n };\n },\n});\n\nexport type YTreeView = InstanceType<typeof YTreeView>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YTreeView.mjs","names":["computed","defineComponent","onMounted","provide","ref","shallowRef","watch","watchEffect","useModelDuplex","useRender","differenceBetween","deepEqual","getObjectValueByPath","hasOwnProperty","debounce","chooseProps","YProgressBar","YTreeViewNode","pressYTreeViewNodeProps","filterTreeItem","filterTreeItems","getKeys","isColorValue","treeViewNodeProps","YTreeView","name","props","expanded","type","Array","default","active","multipleActive","Boolean","activeStrategy","String","selected","selectStrategy","returnItem","defaultExpand","Number","filter","Function","searchDebounceWait","emits","setup","_ref","slots","emit","expose","nodes","expandedSet","Set","selectedSet","activeSet","excludedSet","filterItemsFn","excludeItem","expandedCache","searchLoading","items","search","arguments","length","undefined","excluded","value","diff","forEach","key","updateExpanded","item","itemKey","itemText","itemChildren","expand","getDescendants","descendants","childKeys","push","childKey","getNodeKey","itemOrKey","updateNodes","parentKey","level","children","exist","existNode","vnode","indeterminate","node","map","child","add","issueVnodeState","to","isArray","delete","neo","deep","until","Object","entries","_ref2","emitExpanded","updateActive","event","inactiveKey","keys","activeSingleModifier","getModifierState","descendant","updateSelected","arr","emitActive","emitSelected","stateWatcher","stateSet","updater","emitter","valuesOfKey","v","old","oldKeys","nodeKey","neoKeys","k","oldSelected","clear","isExcluded","has","register","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"}