yuyeon 0.0.42 → 0.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +2810 -2717
  3. package/dist/yuyeon.umd.cjs +6 -6
  4. package/lib/components/badge/YBadge.mjs +78 -0
  5. package/lib/components/badge/YBadge.mjs.map +1 -0
  6. package/lib/components/badge/YBadge.scss +76 -0
  7. package/lib/components/badge/index.mjs +2 -0
  8. package/lib/components/badge/index.mjs.map +1 -0
  9. package/lib/components/button/YButton.mjs +4 -18
  10. package/lib/components/button/YButton.mjs.map +1 -1
  11. package/lib/components/card/YCard.mjs +5 -3
  12. package/lib/components/card/YCard.mjs.map +1 -1
  13. package/lib/components/card/YCard.scss +7 -0
  14. package/lib/components/card/YCardBody.mjs +2 -2
  15. package/lib/components/card/YCardBody.mjs.map +1 -1
  16. package/lib/components/card/YCardFooter.mjs +2 -2
  17. package/lib/components/card/YCardFooter.mjs.map +1 -1
  18. package/lib/components/card/YCardHeader.mjs +2 -2
  19. package/lib/components/card/YCardHeader.mjs.map +1 -1
  20. package/lib/components/card/index.mjs +4 -5
  21. package/lib/components/card/index.mjs.map +1 -1
  22. package/lib/components/checkbox/YCheckbox.mjs +1 -1
  23. package/lib/components/checkbox/YCheckbox.mjs.map +1 -1
  24. package/lib/components/checkbox/index.mjs +1 -2
  25. package/lib/components/checkbox/index.mjs.map +1 -1
  26. package/lib/components/chip/YChip.mjs +2 -2
  27. package/lib/components/chip/YChip.mjs.map +1 -1
  28. package/lib/components/chip/index.mjs +1 -2
  29. package/lib/components/chip/index.mjs.map +1 -1
  30. package/lib/components/dropdown/YDropdown.mjs.map +1 -1
  31. package/lib/components/form/YForm.mjs +2 -2
  32. package/lib/components/form/YForm.mjs.map +1 -1
  33. package/lib/components/form/index.mjs +1 -3
  34. package/lib/components/form/index.mjs.map +1 -1
  35. package/lib/components/index.mjs +1 -0
  36. package/lib/components/index.mjs.map +1 -1
  37. package/lib/components/loading/YSpinnerRing.mjs.map +1 -1
  38. package/lib/components/menu/YMenu.mjs +4 -4
  39. package/lib/components/menu/YMenu.mjs.map +1 -1
  40. package/lib/components/pagination/YPagination.mjs.map +1 -1
  41. package/lib/components/panel/YDividePanel.mjs.map +1 -1
  42. package/lib/components/progress-bar/YProgressBar.mjs +3 -2
  43. package/lib/components/progress-bar/YProgressBar.mjs.map +1 -1
  44. package/lib/components/progress-bar/YProgressBar.scss +6 -2
  45. package/lib/components/select/YSelect.mjs +10 -6
  46. package/lib/components/select/YSelect.mjs.map +1 -1
  47. package/lib/components/snackbar/YSnackbar.mjs.map +1 -1
  48. package/lib/components/switch/YSwitch.mjs.map +1 -1
  49. package/lib/components/tab/YTab.mjs.map +1 -1
  50. package/lib/components/table/YDataTableCell.mjs +4 -0
  51. package/lib/components/table/YDataTableCell.mjs.map +1 -1
  52. package/lib/components/table/YDataTableHead.mjs +1 -0
  53. package/lib/components/table/YDataTableHead.mjs.map +1 -1
  54. package/lib/components/table/YDataTableRow.mjs +52 -39
  55. package/lib/components/table/YDataTableRow.mjs.map +1 -1
  56. package/lib/components/table/YTable.mjs.map +1 -1
  57. package/lib/components/table/YTable.scss +6 -2
  58. package/lib/components/table/types/index.mjs.map +1 -1
  59. package/lib/components/text-highlighter/YTextHighlighter.mjs +1 -1
  60. package/lib/components/text-highlighter/YTextHighlighter.mjs.map +1 -1
  61. package/lib/components/text-highlighter/index.mjs +1 -2
  62. package/lib/components/text-highlighter/index.mjs.map +1 -1
  63. package/lib/components/tooltip/YTooltip.mjs.map +1 -1
  64. package/lib/components/tree-view/YTreeViewNode.mjs +1 -1
  65. package/lib/components/tree-view/YTreeViewNode.mjs.map +1 -1
  66. package/lib/composables/i18n/index.mjs.map +1 -1
  67. package/lib/locales/en.mjs +2 -1
  68. package/lib/locales/en.mjs.map +1 -1
  69. package/lib/locales/ko.mjs +2 -1
  70. package/lib/locales/ko.mjs.map +1 -1
  71. package/lib/util/ui.mjs +4 -2
  72. package/lib/util/ui.mjs.map +1 -1
  73. package/package.json +1 -1
  74. package/types/components/badge/YBadge.d.ts +141 -0
  75. package/types/components/badge/index.d.ts +1 -0
  76. package/types/components/card/YCard.d.ts +2 -2
  77. package/types/components/card/YCardBody.d.ts +2 -2
  78. package/types/components/card/YCardFooter.d.ts +2 -2
  79. package/types/components/card/YCardHeader.d.ts +2 -2
  80. package/types/components/card/index.d.ts +4 -5
  81. package/types/components/checkbox/YCheckbox.d.ts +2 -2
  82. package/types/components/checkbox/index.d.ts +1 -2
  83. package/types/components/chip/YChip.d.ts +2 -2
  84. package/types/components/chip/index.d.ts +1 -2
  85. package/types/components/form/YForm.d.ts +2 -2
  86. package/types/components/form/index.d.ts +1 -3
  87. package/types/components/index.d.ts +1 -0
  88. package/types/components/loading/YSpinnerRing.d.ts +1 -0
  89. package/types/components/menu/YMenu.d.ts +15 -0
  90. package/types/components/pagination/YPagination.d.ts +1 -0
  91. package/types/components/panel/YDividePanel.d.ts +1 -0
  92. package/types/components/progress-bar/YProgressBar.d.ts +1 -0
  93. package/types/components/select/YSelect.d.ts +1 -0
  94. package/types/components/snackbar/YSnackbar.d.ts +1 -0
  95. package/types/components/switch/YSwitch.d.ts +1 -0
  96. package/types/components/tab/YTab.d.ts +1 -0
  97. package/types/components/table/YDataTableCell.d.ts +6 -0
  98. package/types/components/table/YDataTableRow.d.ts +5 -8
  99. package/types/components/table/YTable.d.ts +1 -0
  100. package/types/components/table/composibles/header.d.ts +2 -0
  101. package/types/components/table/types/index.d.ts +19 -4
  102. package/types/components/text-highlighter/YTextHighlighter.d.ts +2 -2
  103. package/types/components/tooltip/YTooltip.d.ts +1 -0
  104. package/types/locales/en.d.ts +1 -0
  105. package/types/shims.d.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"YForm.mjs","names":["defineComponent","h","withKeys","RebindAttrs","NAME","rootTags","name","inheritAttrs","mixins","provide","form$","props","tag","type","String","default","validator","value","includes","loading","Boolean","data","inputs","formData","methods","register","component","iid","unregister","validate","flag","Object","values","forEach","input","valid","invokeValidators","call","computed","attrs","attrs_$","render","class","onSubmit","e","preventDefault","$emit","onKeydown","stopImmediatePropagation","$slots"],"sources":["../../../src/components/form/YForm.ts"],"sourcesContent":["\n//\nimport {\n ComponentPublicInstance,\n PropType,\n VNode,\n defineComponent,\n h,\n withKeys,\n} from 'vue';\n\nimport RebindAttrs from '../../mixins/rebind-attrs';\n\nconst NAME = 'y-form';\nconst rootTags = ['form', 'div', 'section', 'article'];\n\nexport default defineComponent({\n name: NAME,\n inheritAttrs: false,\n mixins: [RebindAttrs],\n provide() {\n return {\n form$: this,\n };\n },\n props: {\n tag: {\n type: String as PropType<string>,\n default: 'form',\n validator(value: string) {\n return rootTags.includes(value);\n },\n },\n loading: Boolean,\n },\n data() {\n return {\n inputs: {} as Record<string, ComponentPublicInstance>,\n formData: {} as any,\n };\n },\n methods: {\n register(component: any) {\n const { iid, name } = component;\n // TODO: vue3 에서 $on 제거됨에 따라 트리거 따로 만들어야 함\n this.inputs[iid] = component;\n },\n unregister(component: any) {\n delete this.inputs[component.iid];\n },\n validate(): boolean {\n let flag = true;\n Object.values(this.inputs).forEach((input: any) => {\n const valid = input?.invokeValidators.call(input);\n flag = flag && valid;\n });\n return flag;\n },\n },\n computed: {\n attrs() {\n return {\n ...this.attrs_$,\n };\n },\n },\n render(): VNode {\n const { tag }: any = this;\n // this.attrs_$\n return h(\n tag,\n {\n class: NAME,\n '.novalidate': true,\n onSubmit: (e: Event) => {\n e.preventDefault();\n this.$emit('submit', e, this.formData);\n },\n onKeydown: withKeys(\n (e: Event) => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.$emit('keydown.enter', e);\n },\n ['enter'],\n ),\n },\n this.$slots.default?.(),\n );\n },\n});\n"],"mappings":"AACA;AACA,SAIEA,eAAe,EACfC,CAAC,EACDC,QAAQ,QACH,KAAK;AAAC,OAENC,WAAW;AAElB,MAAMC,IAAI,GAAG,QAAQ;AACrB,MAAMC,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;AAEtD,eAAeL,eAAe,CAAC;EAC7BM,IAAI,EAAEF,IAAI;EACVG,YAAY,EAAE,KAAK;EACnBC,MAAM,EAAE,CAACL,WAAW,CAAC;EACrBM,OAAOA,CAAA,EAAG;IACR,OAAO;MACLC,KAAK,EAAE;IACT,CAAC;EACH,CAAC;EACDC,KAAK,EAAE;IACLC,GAAG,EAAE;MACHC,IAAI,EAAEC,MAA0B;MAChCC,OAAO,EAAE,MAAM;MACfC,SAASA,CAACC,KAAa,EAAE;QACvB,OAAOZ,QAAQ,CAACa,QAAQ,CAACD,KAAK,CAAC;MACjC;IACF,CAAC;IACDE,OAAO,EAAEC;EACX,CAAC;EACDC,IAAIA,CAAA,EAAG;IACL,OAAO;MACLC,MAAM,EAAE,CAAC,CAA4C;MACrDC,QAAQ,EAAE,CAAC;IACb,CAAC;EACH,CAAC;EACDC,OAAO,EAAE;IACPC,QAAQA,CAACC,SAAc,EAAE;MACvB,MAAM;QAAEC,GAAG;QAAErB;MAAK,CAAC,GAAGoB,SAAS;MAC/B;MACA,IAAI,CAACJ,MAAM,CAACK,GAAG,CAAC,GAAGD,SAAS;IAC9B,CAAC;IACDE,UAAUA,CAACF,SAAc,EAAE;MACzB,OAAO,IAAI,CAACJ,MAAM,CAACI,SAAS,CAACC,GAAG,CAAC;IACnC,CAAC;IACDE,QAAQA,CAAA,EAAY;MAClB,IAAIC,IAAI,GAAG,IAAI;MACfC,MAAM,CAACC,MAAM,CAAC,IAAI,CAACV,MAAM,CAAC,CAACW,OAAO,CAAEC,KAAU,IAAK;QACjD,MAAMC,KAAK,GAAGD,KAAK,EAAEE,gBAAgB,CAACC,IAAI,CAACH,KAAK,CAAC;QACjDJ,IAAI,GAAGA,IAAI,IAAIK,KAAK;MACtB,CAAC,CAAC;MACF,OAAOL,IAAI;IACb;EACF,CAAC;EACDQ,QAAQ,EAAE;IACRC,KAAKA,CAAA,EAAG;MACN,OAAO;QACL,GAAG,IAAI,CAACC;MACV,CAAC;IACH;EACF,CAAC;EACDC,MAAMA,CAAA,EAAU;IACd,MAAM;MAAE7B;IAAS,CAAC,GAAG,IAAI;IACzB;IACA,OAAOX,CAAC,CACNW,GAAG,EACH;MACE8B,KAAK,EAAEtC,IAAI;MACX,aAAa,EAAE,IAAI;MACnBuC,QAAQ,EAAGC,CAAQ,IAAK;QACtBA,CAAC,CAACC,cAAc,CAAC,CAAC;QAClB,IAAI,CAACC,KAAK,CAAC,QAAQ,EAAEF,CAAC,EAAE,IAAI,CAACrB,QAAQ,CAAC;MACxC,CAAC;MACDwB,SAAS,EAAE7C,QAAQ,CAChB0C,CAAQ,IAAK;QACZA,CAAC,CAACC,cAAc,CAAC,CAAC;QAClBD,CAAC,CAACI,wBAAwB,CAAC,CAAC;QAC5B,IAAI,CAACF,KAAK,CAAC,eAAe,EAAEF,CAAC,CAAC;MAChC,CAAC,EACD,CAAC,OAAO,CACV;IACF,CAAC,EACD,IAAI,CAACK,MAAM,CAAClC,OAAO,GAAG,CACxB,CAAC;EACH;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YForm.mjs","names":["defineComponent","h","withKeys","RebindAttrs","NAME","rootTags","YForm","name","inheritAttrs","mixins","provide","form$","props","tag","type","String","default","validator","value","includes","loading","Boolean","data","inputs","formData","methods","register","component","iid","unregister","validate","flag","Object","values","forEach","input","valid","invokeValidators","call","computed","attrs","attrs_$","render","class","onSubmit","e","preventDefault","$emit","onKeydown","stopImmediatePropagation","$slots"],"sources":["../../../src/components/form/YForm.ts"],"sourcesContent":["\n//\nimport {\n ComponentPublicInstance,\n PropType,\n VNode,\n defineComponent,\n h,\n withKeys,\n} from 'vue';\n\nimport RebindAttrs from '../../mixins/rebind-attrs';\n\nconst NAME = 'y-form';\nconst rootTags = ['form', 'div', 'section', 'article'];\n\nexport const YForm = defineComponent({\n name: 'YForm',\n inheritAttrs: false,\n mixins: [RebindAttrs],\n provide() {\n return {\n form$: this,\n };\n },\n props: {\n tag: {\n type: String as PropType<string>,\n default: 'form',\n validator(value: string) {\n return rootTags.includes(value);\n },\n },\n loading: Boolean,\n },\n data() {\n return {\n inputs: {} as Record<string, ComponentPublicInstance>,\n formData: {} as any,\n };\n },\n methods: {\n register(component: any) {\n const { iid, name } = component;\n // TODO: vue3 에서 $on 제거됨에 따라 트리거 따로 만들어야 함\n this.inputs[iid] = component;\n },\n unregister(component: any) {\n delete this.inputs[component.iid];\n },\n validate(): boolean {\n let flag = true;\n Object.values(this.inputs).forEach((input: any) => {\n const valid = input?.invokeValidators.call(input);\n flag = flag && valid;\n });\n return flag;\n },\n },\n computed: {\n attrs() {\n return {\n ...this.attrs_$,\n };\n },\n },\n render(): VNode {\n const { tag }: any = this;\n // this.attrs_$\n return h(\n tag,\n {\n class: NAME,\n '.novalidate': true,\n onSubmit: (e: Event) => {\n e.preventDefault();\n this.$emit('submit', e, this.formData);\n },\n onKeydown: withKeys(\n (e: Event) => {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.$emit('keydown.enter', e);\n },\n ['enter'],\n ),\n },\n this.$slots.default?.(),\n );\n },\n});\n\nexport type YForm = InstanceType<typeof YForm>;\n"],"mappings":"AACA;AACA,SAIEA,eAAe,EACfC,CAAC,EACDC,QAAQ,QACH,KAAK;AAAC,OAENC,WAAW;AAElB,MAAMC,IAAI,GAAG,QAAQ;AACrB,MAAMC,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;AAEtD,OAAO,MAAMC,KAAK,GAAGN,eAAe,CAAC;EACnCO,IAAI,EAAE,OAAO;EACbC,YAAY,EAAE,KAAK;EACnBC,MAAM,EAAE,CAACN,WAAW,CAAC;EACrBO,OAAOA,CAAA,EAAG;IACR,OAAO;MACLC,KAAK,EAAE;IACT,CAAC;EACH,CAAC;EACDC,KAAK,EAAE;IACLC,GAAG,EAAE;MACHC,IAAI,EAAEC,MAA0B;MAChCC,OAAO,EAAE,MAAM;MACfC,SAASA,CAACC,KAAa,EAAE;QACvB,OAAOb,QAAQ,CAACc,QAAQ,CAACD,KAAK,CAAC;MACjC;IACF,CAAC;IACDE,OAAO,EAAEC;EACX,CAAC;EACDC,IAAIA,CAAA,EAAG;IACL,OAAO;MACLC,MAAM,EAAE,CAAC,CAA4C;MACrDC,QAAQ,EAAE,CAAC;IACb,CAAC;EACH,CAAC;EACDC,OAAO,EAAE;IACPC,QAAQA,CAACC,SAAc,EAAE;MACvB,MAAM;QAAEC,GAAG;QAAErB;MAAK,CAAC,GAAGoB,SAAS;MAC/B;MACA,IAAI,CAACJ,MAAM,CAACK,GAAG,CAAC,GAAGD,SAAS;IAC9B,CAAC;IACDE,UAAUA,CAACF,SAAc,EAAE;MACzB,OAAO,IAAI,CAACJ,MAAM,CAACI,SAAS,CAACC,GAAG,CAAC;IACnC,CAAC;IACDE,QAAQA,CAAA,EAAY;MAClB,IAAIC,IAAI,GAAG,IAAI;MACfC,MAAM,CAACC,MAAM,CAAC,IAAI,CAACV,MAAM,CAAC,CAACW,OAAO,CAAEC,KAAU,IAAK;QACjD,MAAMC,KAAK,GAAGD,KAAK,EAAEE,gBAAgB,CAACC,IAAI,CAACH,KAAK,CAAC;QACjDJ,IAAI,GAAGA,IAAI,IAAIK,KAAK;MACtB,CAAC,CAAC;MACF,OAAOL,IAAI;IACb;EACF,CAAC;EACDQ,QAAQ,EAAE;IACRC,KAAKA,CAAA,EAAG;MACN,OAAO;QACL,GAAG,IAAI,CAACC;MACV,CAAC;IACH;EACF,CAAC;EACDC,MAAMA,CAAA,EAAU;IACd,MAAM;MAAE7B;IAAS,CAAC,GAAG,IAAI;IACzB;IACA,OAAOZ,CAAC,CACNY,GAAG,EACH;MACE8B,KAAK,EAAEvC,IAAI;MACX,aAAa,EAAE,IAAI;MACnBwC,QAAQ,EAAGC,CAAQ,IAAK;QACtBA,CAAC,CAACC,cAAc,CAAC,CAAC;QAClB,IAAI,CAACC,KAAK,CAAC,QAAQ,EAAEF,CAAC,EAAE,IAAI,CAACrB,QAAQ,CAAC;MACxC,CAAC;MACDwB,SAAS,EAAE9C,QAAQ,CAChB2C,CAAQ,IAAK;QACZA,CAAC,CAACC,cAAc,CAAC,CAAC;QAClBD,CAAC,CAACI,wBAAwB,CAAC,CAAC;QAC5B,IAAI,CAACF,KAAK,CAAC,eAAe,EAAEF,CAAC,CAAC;MAChC,CAAC,EACD,CAAC,OAAO,CACV;IACF,CAAC,EACD,IAAI,CAACK,MAAM,CAAClC,OAAO,GAAG,CACxB,CAAC;EACH;AACF,CAAC,CAAC"}
@@ -1,4 +1,2 @@
1
- import YForm from "./YForm.mjs";
2
- export { YForm };
3
- export default YForm;
1
+ export * from "./YForm.mjs";
4
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["YForm"],"sources":["../../../src/components/form/index.ts"],"sourcesContent":["\nimport YForm from './YForm';\n\nexport { YForm };\n\nexport default YForm;\n"],"mappings":"OACOA,KAAK;AAEZ,SAASA,KAAK;AAEd,eAAeA,KAAK"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/components/form/index.ts"],"sourcesContent":["export * from './YForm';\n"],"mappings":""}
@@ -29,4 +29,5 @@ export * from "./alert/index.mjs";
29
29
  export * from "./divider/index.mjs";
30
30
  export * from "./date-picker/index.mjs";
31
31
  export * from "./icon/index.mjs";
32
+ export * from "./badge/index.mjs";
32
33
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './app';\r\nexport * from './button';\r\nexport * from './input';\r\nexport * from './field-input';\r\nexport * from './textarea';\r\nexport * from './form';\r\nexport * from './progress-bar';\r\nexport * from './card';\r\nexport * from './chip';\r\nexport * from './switch';\r\nexport * from './layer';\r\nexport * from './dialog';\r\nexport * from './snackbar';\r\nexport * from './tooltip';\r\nexport * from './transitions';\r\nexport * from './panel';\r\nexport * from './tree-view';\r\nexport * from './list';\r\nexport * from './icons';\r\nexport * from './table';\r\nexport * from './menu';\r\nexport * from './checkbox';\r\nexport * from './pagination';\r\nexport * from './loading';\r\nexport * from './dropdown';\r\nexport * from './select';\r\nexport * from './tab';\r\nexport * from './alert';\r\nexport * from './divider';\r\nexport * from './date-picker';\r\nexport * from './icon';\r\n"],"mappings":""}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './app';\nexport * from './button';\nexport * from './input';\nexport * from './field-input';\nexport * from './textarea';\nexport * from './form';\nexport * from './progress-bar';\nexport * from './card';\nexport * from './chip';\nexport * from './switch';\nexport * from './layer';\nexport * from './dialog';\nexport * from './snackbar';\nexport * from './tooltip';\nexport * from './transitions';\nexport * from './panel';\nexport * from './tree-view';\nexport * from './list';\nexport * from './icons';\nexport * from './table';\nexport * from './menu';\nexport * from './checkbox';\nexport * from './pagination';\nexport * from './loading';\nexport * from './dropdown';\nexport * from './select';\nexport * from './tab';\nexport * from './alert';\nexport * from './divider';\nexport * from './date-picker';\nexport * from './icon';\nexport * from './badge';\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"YSpinnerRing.mjs","names":["defineComponent","NAME","YSpinnerRing","name","render","_createVNode"],"sources":["../../../src/components/loading/YSpinnerRing.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\n\nimport './YSpinnerRing.scss';\n\nconst NAME = 'YSpinnerRing';\n\nexport const YSpinnerRing = defineComponent({\n name: NAME,\n render() {\n return (\n <svg\n class=\"y-spinner-ring\"\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"y-spinner-ring__circle\"\n cx=\"24\"\n cy=\"24\"\n r=\"18\"\n stroke-width=\"4\"\n stroke-dasharray=\"113.097\"\n stroke-dashoffset=\"113.097\"\n />\n </svg>\n );\n },\n});\n"],"mappings":";AAAA,SAASA,eAAe,QAAQ,KAAK;AAErC;AAEA,MAAMC,IAAI,GAAG,cAAc;AAE3B,OAAO,MAAMC,YAAY,GAAGF,eAAe,CAAC;EAC1CG,IAAI,EAAEF,IAAI;EACVG,MAAMA,CAAA,EAAG;IACP,OAAAC,YAAA;MAAA,SAEU,gBAAgB;MAAA,SAChB,IAAI;MAAA,UACH,IAAI;MAAA,WACH,WAAW;MAAA,SACb;IAA4B,IAAAA,YAAA;MAAA,SAG1B,wBAAwB;MAAA,MAC3B,IAAI;MAAA,MACJ,IAAI;MAAA,KACL,IAAI;MAAA,gBACO,GAAG;MAAA,oBACC,SAAS;MAAA,qBACR;IAAS;EAInC;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YSpinnerRing.mjs","names":["defineComponent","NAME","YSpinnerRing","name","render","_createVNode"],"sources":["../../../src/components/loading/YSpinnerRing.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\n\nimport './YSpinnerRing.scss';\n\nconst NAME = 'YSpinnerRing';\n\nexport const YSpinnerRing = defineComponent({\n name: NAME,\n render() {\n return (\n <svg\n class=\"y-spinner-ring\"\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"y-spinner-ring__circle\"\n cx=\"24\"\n cy=\"24\"\n r=\"18\"\n stroke-width=\"4\"\n stroke-dasharray=\"113.097\"\n stroke-dashoffset=\"113.097\"\n />\n </svg>\n );\n },\n});\n\nexport type YSpinnerRing = InstanceType<typeof YSpinnerRing>;\n"],"mappings":";AAAA,SAASA,eAAe,QAAQ,KAAK;AAErC;AAEA,MAAMC,IAAI,GAAG,cAAc;AAE3B,OAAO,MAAMC,YAAY,GAAGF,eAAe,CAAC;EAC1CG,IAAI,EAAEF,IAAI;EACVG,MAAMA,CAAA,EAAG;IACP,OAAAC,YAAA;MAAA,SAEU,gBAAgB;MAAA,SAChB,IAAI;MAAA,UACH,IAAI;MAAA,WACH,WAAW;MAAA,SACb;IAA4B,IAAAA,YAAA;MAAA,SAG1B,wBAAwB;MAAA,MAC3B,IAAI;MAAA,MACJ,IAAI;MAAA,KACL,IAAI;MAAA,gBACO,GAAG;MAAA,oBACC,SAAS;MAAA,qBACR;IAAS;EAInC;AACF,CAAC,CAAC"}
@@ -34,8 +34,8 @@ export const YMenuPropOptions = {
34
34
  preventCloseBubble: Boolean
35
35
  };
36
36
 
37
- /**
38
- * # Component
37
+ /**
38
+ * # Component
39
39
  */
40
40
  export const YMenu = defineComponent({
41
41
  name: NAME,
@@ -109,7 +109,7 @@ export const YMenu = defineComponent({
109
109
  }
110
110
  const currentActive = active.value;
111
111
  if (!props.disabled) {
112
- if (props.openOnHover && !!finish.value && active.value) {
112
+ if (props.openOnHover && finish.value && active.value) {
113
113
  return;
114
114
  }
115
115
  active.value = !currentActive;
@@ -131,7 +131,7 @@ export const YMenu = defineComponent({
131
131
  }
132
132
  const parentContent = parent?.$el.value?.content$;
133
133
  const parentModal = parent?.$el.value?.modal;
134
- if (!(parentContent && !hasElementMouseEvent(e, parentContent)) && !parentModal) {
134
+ if (!(parentContent && !hasElementMouseEvent(e, parentContent)) && !parentModal && !props.preventCloseBubble) {
135
135
  parent?.clear();
136
136
  }
137
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"YMenu.mjs","names":["computed","defineComponent","ref","toRef","watch","useModelDuplex","useRender","polyTransitionPropOptions","hasElementMouseEvent","toKebabCase","bindClasses","chooseProps","YLayer","pressYLayerProps","useDelay","useActiveStack","NAME","CLASS_NAME","YMenuPropOptions","menuClasses","type","Array","String","Object","openOnClickBase","Boolean","default","closeCondition","Function","undefined","preventClip","coordinateStrategy","preventCloseBubble","YMenu","name","props","transition","emits","expose","setup","_ref","slots","emit","layer$","classes","boundClasses","model","active","get","value","set","v","disabled","hovered","finish","children","parent","startOpenDelay","startCloseDelay","changeActive","openOnHover","length","onMouseenter","e","onMouseleave","onClick","stopPropagation","currentActive","onComplementClick","parentContent","$el","content$","parentModal","modal","clear","bindHover","el","addEventListener","unbindHover","removeEventListener","baseEl","neo","old","immediate","computedContentClasses","contentClasses","_createVNode","_Fragment","_mergeProps","onAfterLeave","scrim","$event","_len","arguments","args","_key","base","_len2","_key2"],"sources":["../../../src/components/menu/YMenu.tsx"],"sourcesContent":["import type { PropType } from 'vue';\nimport { computed, defineComponent, ref, toRef, watch } from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { polyTransitionPropOptions } from '../../composables/transition';\nimport { hasElementMouseEvent } from '../../util/dom';\nimport { toKebabCase } from '../../util/string';\nimport { bindClasses, chooseProps } from '../../util/vue-component';\nimport { YLayer, pressYLayerProps } from '../layer';\nimport { useDelay } from '../layer/active-delay';\nimport { useActiveStack } from '../layer/active-stack';\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 openOnClickBase: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n closeCondition: {\n type: [Boolean, Function],\n default: undefined,\n },\n preventClip: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n ...pressYLayerProps({\n coordinateStrategy: 'levitation',\n }),\n preventCloseBubble: Boolean as PropType<boolean>,\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 expose: ['layer$', 'baseEl'],\n setup(props, { slots, emit, expose }) {\n const layer$ = 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 const hovered = computed(() => !!layer$.value?.hovered);\n const finish = computed(() => !!layer$.value?.finish);\n const { children, parent } = useActiveStack(\n layer$,\n active,\n toRef(props, 'preventCloseBubble'),\n );\n const { startOpenDelay, startCloseDelay } = useDelay(\n props,\n (changeActive) => {\n if (\n !changeActive &&\n props.openOnHover &&\n !hovered.value &&\n children.value.length === 0\n ) {\n active.value = false;\n } else if (changeActive) {\n active.value = true;\n }\n },\n );\n\n function onMouseenter(e: MouseEvent) {\n if (props.openOnHover) {\n startOpenDelay();\n }\n }\n\n function onMouseleave(e: MouseEvent) {\n if (props.openOnHover) {\n startCloseDelay();\n }\n }\n\n watch(hovered, (value) => {\n if (!value) {\n startCloseDelay();\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 if (props.openOnHover && !!finish.value && active.value) {\n return;\n }\n active.value = !currentActive;\n }\n }\n\n function onComplementClick(e: Event) {\n if (props.closeCondition === false) {\n return;\n }\n if (typeof props.closeCondition === 'function') {\n if (props.closeCondition(e) === false) {\n active.value = false;\n return;\n }\n }\n if (active.value) {\n if ((!parent && children.value.length === 0) || parent) {\n active.value = false;\n }\n const parentContent = parent?.$el.value?.content$;\n const parentModal = parent?.$el.value?.modal;\n if (\n !(parentContent && !hasElementMouseEvent(e, parentContent)) &&\n !parentModal\n ) {\n parent?.clear();\n }\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 () => layer$.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 immediate: true,\n },\n );\n\n const computedContentClasses = computed<Record<string, boolean>>(() => {\n const boundClasses = bindClasses(props.contentClasses);\n return {\n ...boundClasses,\n };\n });\n\n const baseEl = computed(() => {\n return layer$.value?.baseEl;\n });\n\n expose({\n layer$,\n baseEl,\n });\n\n useRender(() => {\n return (\n <>\n <YLayer\n ref={layer$}\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 layer$,\n baseEl,\n classes,\n children,\n parent,\n active,\n hovered,\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","toRef","watch","useModelDuplex","useRender","polyTransitionPropOptions","hasElementMouseEvent","toKebabCase","bindClasses","chooseProps","YLayer","pressYLayerProps","useDelay","useActiveStack","NAME","CLASS_NAME","YMenuPropOptions","menuClasses","type","Array","String","Object","openOnClickBase","Boolean","default","closeCondition","Function","undefined","preventClip","coordinateStrategy","preventCloseBubble","YMenu","name","props","transition","emits","expose","setup","_ref","slots","emit","layer$","classes","boundClasses","model","active","get","value","set","v","disabled","hovered","finish","children","parent","startOpenDelay","startCloseDelay","changeActive","openOnHover","length","onMouseenter","e","onMouseleave","onClick","stopPropagation","currentActive","onComplementClick","parentContent","$el","content$","parentModal","modal","clear","bindHover","el","addEventListener","unbindHover","removeEventListener","baseEl","neo","old","immediate","computedContentClasses","contentClasses","_createVNode","_Fragment","_mergeProps","onAfterLeave","scrim","$event","_len","arguments","args","_key","base","_len2","_key2"],"sources":["../../../src/components/menu/YMenu.tsx"],"sourcesContent":["import type { PropType } from 'vue';\r\nimport { computed, defineComponent, ref, toRef, watch } from 'vue';\r\n\r\nimport { useModelDuplex } from '../../composables/communication';\r\nimport { useRender } from '../../composables/component';\r\nimport { polyTransitionPropOptions } from '../../composables/transition';\r\nimport { hasElementMouseEvent } from '../../util/dom';\r\nimport { toKebabCase } from '../../util/string';\r\nimport { bindClasses, chooseProps } from '../../util/vue-component';\r\nimport { YLayer, pressYLayerProps } from '../layer';\r\nimport { useDelay } from '../layer/active-delay';\r\nimport { useActiveStack } from '../layer/active-stack';\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 openOnClickBase: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n closeCondition: {\r\n type: [Boolean, Function],\r\n default: undefined,\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 preventCloseBubble: Boolean as PropType<boolean>,\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 expose: ['layer$', 'baseEl'],\r\n setup(props, { slots, emit, expose }) {\r\n const layer$ = 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 const hovered = computed(() => !!layer$.value?.hovered);\r\n const finish = computed(() => !!layer$.value?.finish);\r\n const { children, parent } = useActiveStack(\r\n layer$,\r\n active,\r\n toRef(props, 'preventCloseBubble'),\r\n );\r\n const { startOpenDelay, startCloseDelay } = useDelay(\r\n props,\r\n (changeActive) => {\r\n if (\r\n !changeActive &&\r\n props.openOnHover &&\r\n !hovered.value &&\r\n children.value.length === 0\r\n ) {\r\n active.value = false;\r\n } else if (changeActive) {\r\n active.value = true;\r\n }\r\n },\r\n );\r\n\r\n function onMouseenter(e: MouseEvent) {\r\n if (props.openOnHover) {\r\n startOpenDelay();\r\n }\r\n }\r\n\r\n function onMouseleave(e: MouseEvent) {\r\n if (props.openOnHover) {\r\n startCloseDelay();\r\n }\r\n }\r\n\r\n watch(hovered, (value) => {\r\n if (!value) {\r\n startCloseDelay();\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 if (props.openOnHover && finish.value && active.value) {\r\n return;\r\n }\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 return;\r\n }\r\n }\r\n if (active.value) {\r\n if ((!parent && children.value.length === 0) || parent) {\r\n active.value = false;\r\n }\r\n const parentContent = parent?.$el.value?.content$;\r\n const parentModal = parent?.$el.value?.modal;\r\n if (\r\n !(parentContent && !hasElementMouseEvent(e, parentContent)) &&\r\n !parentModal &&\r\n !props.preventCloseBubble\r\n ) {\r\n parent?.clear();\r\n }\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 () => layer$.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 immediate: true,\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 const baseEl = computed(() => {\r\n return layer$.value?.baseEl;\r\n });\r\n\r\n expose({\r\n layer$,\r\n baseEl,\r\n });\r\n\r\n useRender(() => {\r\n return (\r\n <>\r\n <YLayer\r\n ref={layer$}\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 layer$,\r\n baseEl,\r\n classes,\r\n children,\r\n parent,\r\n active,\r\n hovered,\r\n };\r\n },\r\n});\r\n\r\nexport type YMenu = InstanceType<typeof YMenu>;\r\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"YPagination.mjs","names":["computed","defineComponent","shallowRef","useModelDuplex","useRender","useRefs","useResizeObserver","getRangeArr","toStyleSizeValue","propsFactory","YButton","YIconPageControl","pressYPaginationProps","start","type","Number","String","default","modelValue","props","disabled","Boolean","length","validator","val","totalVisible","showEndButton","gap","color","activeColor","buttonVariation","align","YPagination","name","components","emits","value","change","control","setup","_ref","slots","emit","page","parseInt","itemCount","resizeObservedRef","entries","target","contentRect","firstItem","querySelector","listWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","calcItemCount","fixedCount","fixedWidth","count","Math","max","floor","toFixed","innerWidth","controls","prevDisabled","nextDisabled","first","variation","onClick","e","preventDefault","prev","to","next","min","last","range","isNaN","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","refs","updateRef","changePage","event","arguments","undefined","items","map","item","index","ref","active","key","ellipsis","styles","_createVNode"],"sources":["../../../src/components/pagination/YPagination.tsx"],"sourcesContent":["import {\n ComponentPublicInstance,\n PropType,\n computed,\n defineComponent,\n shallowRef,\n} from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { useRefs } from '../../composables/ref';\nimport { useResizeObserver } from '../../composables/resize-observer';\nimport { getRangeArr } from '../../util/common';\nimport { toStyleSizeValue } from '../../util/ui';\nimport { propsFactory } from '../../util/vue-component';\nimport { YButton } from '../button';\nimport { YIconPageControl } from '../icons/YIconPageControl';\n\nimport './YPagination.scss';\n\nexport const pressYPaginationProps = propsFactory(\n {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start as number,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n showEndButton: Boolean,\n gap: {\n type: [String, Number],\n default: 4,\n },\n color: String,\n activeColor: String,\n buttonVariation: [String],\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n // firstIcon: [String],\n // lastIcon: [String],\n // prevIcon: [String],\n // nextIcon: [String],\n },\n 'YPagination',\n);\n\nexport const YPagination = defineComponent({\n name: 'YPagination',\n components: {\n YButton,\n },\n props: {\n ...pressYPaginationProps(),\n },\n emits: {\n 'update:modelValue': (value: number) => true,\n change: (value: number, control?: string) => true,\n },\n setup(props, { slots, emit }) {\n const page = useModelDuplex(props);\n\n const length = computed(() => parseInt(props.length as string, 10));\n const start = computed(() => parseInt(props.start as string, 10));\n\n const itemCount = shallowRef(-1);\n\n const { resizeObservedRef } = useResizeObserver((entries) => {\n if (1 > entries.length) return;\n const { target, contentRect } = entries[0];\n\n const firstItem = target.querySelector(\n '.y-pagination__list > *',\n ) as HTMLElement;\n if (firstItem) {\n const listWidth = contentRect.width;\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n itemCount.value = calcItemCount(listWidth, itemWidth);\n }\n });\n\n function calcItemCount(listWidth: number, itemWidth: number) {\n const fixedCount = props.showEndButton ? 5 : 3;\n const gap = +(props.gap ?? 4);\n const fixedWidth = (itemWidth + gap) * fixedCount - gap;\n const count = Math.max(\n 0,\n Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)),\n );\n return count;\n }\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return parseInt(props.totalVisible as string, 10);\n else if (itemCount.value >= 0) return itemCount.value;\n return calcItemCount(innerWidth, 58);\n });\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled =\n !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n page.value = 1;\n emit('change', 1, 'first');\n },\n },\n prev: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.max(1, page.value - 1);\n page.value = to;\n emit('change', to, 'prev');\n },\n },\n next: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.min(+length.value, page.value + 1);\n page.value = to;\n emit('change', to, 'next');\n },\n },\n last: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = +length.value;\n page.value = +length.value;\n emit('change', to, 'last');\n },\n },\n };\n });\n\n const range = computed(() => {\n if (\n length.value <= 0 ||\n isNaN(length.value) ||\n length.value > Number.MAX_SAFE_INTEGER\n ) {\n return [];\n }\n if (totalVisible.value <= 1) {\n return [page.value];\n }\n if (length.value <= totalVisible.value) {\n return getRangeArr(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even\n ? totalVisible.value / 2\n : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n\n if (left - page.value >= 0) {\n return [\n ...getRangeArr(Math.max(1, totalVisible.value - 1), start.value),\n 'ellipsis',\n length.value,\n ];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n ];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3);\n const rangeStart =\n rangeLength === 1\n ? page.value\n : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n 'ellipsis',\n length.value,\n ];\n }\n });\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>();\n\n function changePage(event: Event, to = 1) {\n event.preventDefault();\n page.value = to;\n emit('change', to);\n }\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index);\n\n if (item === 'ellipsis') {\n return {\n active: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n disabled: true, // TODO: skipper\n },\n };\n } else {\n const active = item === page.value;\n return {\n active,\n key: `item-${item}`,\n page: item,\n props: {\n ref,\n ellipsis: false,\n disabled: !!props.disabled || +props.length < 2,\n color: active ? props.activeColor : props.color,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => changePage(e, item),\n },\n };\n }\n });\n });\n\n const styles = computed(() => {\n let gap = undefined;\n if (props.gap) {\n const value = +props.gap;\n if (!isNaN(value)) {\n gap = toStyleSizeValue(value);\n } else if (typeof props.gap === 'string') {\n gap = props.gap;\n }\n }\n return {\n '--y-pagination__gap': gap,\n };\n });\n\n useRender(() => {\n return (\n <div\n class={[\n 'y-pagination',\n { [`y-pagination--align-${props.align}`]: props.align !== 'start' },\n ]}\n role={'navigation'}\n style={styles.value}\n ref={resizeObservedRef}\n >\n <ul class={['y-pagination__list']}>\n {props.showEndButton && (\n <li key=\"first\" class=\"y-pagination__first\">\n {slots.first ? (\n slots.first(controls.value.first)\n ) : (\n <YButton {...controls.value.first}>\n {slots['first-icon'] ? (\n slots['first-icon']()\n ) : (\n <YIconPageControl type={'first'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n <li key=\"prev\" class=\"y-pagination__prev\">\n {slots.prev ? (\n slots.prev(controls.value.prev)\n ) : (\n <YButton {...controls.value.prev}>\n {slots['prev-icon'] ? (\n slots['prev-icon']()\n ) : (\n <YIconPageControl type={'prev'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {items.value.map((item, index) => {\n return (\n <li\n key={item.key}\n class={[\n 'y-pagination__item',\n { 'y-pagination__item--active': item.active },\n ]}\n >\n <YButton {...item.props}>\n {item.props.ellipsis\n ? slots.ellipsis\n ? slots.ellipsis()\n : '...'\n : item.page}\n </YButton>\n </li>\n );\n })}\n <li key=\"next\" class=\"y-pagination__next\">\n {slots.next ? (\n slots.next(controls.value.next)\n ) : (\n <YButton {...controls.value.next}>\n {slots['next-icon'] ? (\n slots['next-icon']()\n ) : (\n <YIconPageControl type={'next'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {props.showEndButton && (\n <li key=\"last\" class=\"y-pagination__last\">\n {slots.last ? (\n slots.last(controls.value.last)\n ) : (\n <YButton {...controls.value.last}>\n {slots['last-icon'] ? (\n slots['last-icon']()\n ) : (\n <YIconPageControl type={'last'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n </ul>\n </div>\n );\n });\n\n return {\n itemCount,\n page,\n refs,\n };\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"YPagination.mjs","names":["computed","defineComponent","shallowRef","useModelDuplex","useRender","useRefs","useResizeObserver","getRangeArr","toStyleSizeValue","propsFactory","YButton","YIconPageControl","pressYPaginationProps","start","type","Number","String","default","modelValue","props","disabled","Boolean","length","validator","val","totalVisible","showEndButton","gap","color","activeColor","buttonVariation","align","YPagination","name","components","emits","value","change","control","setup","_ref","slots","emit","page","parseInt","itemCount","resizeObservedRef","entries","target","contentRect","firstItem","querySelector","listWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","calcItemCount","fixedCount","fixedWidth","count","Math","max","floor","toFixed","innerWidth","controls","prevDisabled","nextDisabled","first","variation","onClick","e","preventDefault","prev","to","next","min","last","range","isNaN","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","refs","updateRef","changePage","event","arguments","undefined","items","map","item","index","ref","active","key","ellipsis","styles","_createVNode"],"sources":["../../../src/components/pagination/YPagination.tsx"],"sourcesContent":["import {\n ComponentPublicInstance,\n PropType,\n computed,\n defineComponent,\n shallowRef,\n} from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { useRefs } from '../../composables/ref';\nimport { useResizeObserver } from '../../composables/resize-observer';\nimport { getRangeArr } from '../../util/common';\nimport { toStyleSizeValue } from '../../util/ui';\nimport { propsFactory } from '../../util/vue-component';\nimport { YButton } from '../button';\nimport { YIconPageControl } from '../icons/YIconPageControl';\n\nimport './YPagination.scss';\n\nexport const pressYPaginationProps = propsFactory(\n {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start as number,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n showEndButton: Boolean,\n gap: {\n type: [String, Number],\n default: 4,\n },\n color: String,\n activeColor: String,\n buttonVariation: [String],\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n // firstIcon: [String],\n // lastIcon: [String],\n // prevIcon: [String],\n // nextIcon: [String],\n },\n 'YPagination',\n);\n\nexport const YPagination = defineComponent({\n name: 'YPagination',\n components: {\n YButton,\n },\n props: {\n ...pressYPaginationProps(),\n },\n emits: {\n 'update:modelValue': (value: number) => true,\n change: (value: number, control?: string) => true,\n },\n setup(props, { slots, emit }) {\n const page = useModelDuplex(props);\n\n const length = computed(() => parseInt(props.length as string, 10));\n const start = computed(() => parseInt(props.start as string, 10));\n\n const itemCount = shallowRef(-1);\n\n const { resizeObservedRef } = useResizeObserver((entries) => {\n if (1 > entries.length) return;\n const { target, contentRect } = entries[0];\n\n const firstItem = target.querySelector(\n '.y-pagination__list > *',\n ) as HTMLElement;\n if (firstItem) {\n const listWidth = contentRect.width;\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n itemCount.value = calcItemCount(listWidth, itemWidth);\n }\n });\n\n function calcItemCount(listWidth: number, itemWidth: number) {\n const fixedCount = props.showEndButton ? 5 : 3;\n const gap = +(props.gap ?? 4);\n const fixedWidth = (itemWidth + gap) * fixedCount - gap;\n const count = Math.max(\n 0,\n Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)),\n );\n return count;\n }\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return parseInt(props.totalVisible as string, 10);\n else if (itemCount.value >= 0) return itemCount.value;\n return calcItemCount(innerWidth, 58);\n });\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled =\n !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n page.value = 1;\n emit('change', 1, 'first');\n },\n },\n prev: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.max(1, page.value - 1);\n page.value = to;\n emit('change', to, 'prev');\n },\n },\n next: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.min(+length.value, page.value + 1);\n page.value = to;\n emit('change', to, 'next');\n },\n },\n last: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = +length.value;\n page.value = +length.value;\n emit('change', to, 'last');\n },\n },\n };\n });\n\n const range = computed(() => {\n if (\n length.value <= 0 ||\n isNaN(length.value) ||\n length.value > Number.MAX_SAFE_INTEGER\n ) {\n return [];\n }\n if (totalVisible.value <= 1) {\n return [page.value];\n }\n if (length.value <= totalVisible.value) {\n return getRangeArr(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even\n ? totalVisible.value / 2\n : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n\n if (left - page.value >= 0) {\n return [\n ...getRangeArr(Math.max(1, totalVisible.value - 1), start.value),\n 'ellipsis',\n length.value,\n ];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n ];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3);\n const rangeStart =\n rangeLength === 1\n ? page.value\n : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n 'ellipsis',\n length.value,\n ];\n }\n });\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>();\n\n function changePage(event: Event, to = 1) {\n event.preventDefault();\n page.value = to;\n emit('change', to);\n }\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index);\n\n if (item === 'ellipsis') {\n return {\n active: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n disabled: true, // TODO: skipper\n },\n };\n } else {\n const active = item === page.value;\n return {\n active,\n key: `item-${item}`,\n page: item,\n props: {\n ref,\n ellipsis: false,\n disabled: !!props.disabled || +props.length < 2,\n color: active ? props.activeColor : props.color,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => changePage(e, item),\n },\n };\n }\n });\n });\n\n const styles = computed(() => {\n let gap = undefined;\n if (props.gap) {\n const value = +props.gap;\n if (!isNaN(value)) {\n gap = toStyleSizeValue(value);\n } else if (typeof props.gap === 'string') {\n gap = props.gap;\n }\n }\n return {\n '--y-pagination__gap': gap,\n };\n });\n\n useRender(() => {\n return (\n <div\n class={[\n 'y-pagination',\n { [`y-pagination--align-${props.align}`]: props.align !== 'start' },\n ]}\n role={'navigation'}\n style={styles.value}\n ref={resizeObservedRef}\n >\n <ul class={['y-pagination__list']}>\n {props.showEndButton && (\n <li key=\"first\" class=\"y-pagination__first\">\n {slots.first ? (\n slots.first(controls.value.first)\n ) : (\n <YButton {...controls.value.first}>\n {slots['first-icon'] ? (\n slots['first-icon']()\n ) : (\n <YIconPageControl type={'first'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n <li key=\"prev\" class=\"y-pagination__prev\">\n {slots.prev ? (\n slots.prev(controls.value.prev)\n ) : (\n <YButton {...controls.value.prev}>\n {slots['prev-icon'] ? (\n slots['prev-icon']()\n ) : (\n <YIconPageControl type={'prev'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {items.value.map((item, index) => {\n return (\n <li\n key={item.key}\n class={[\n 'y-pagination__item',\n { 'y-pagination__item--active': item.active },\n ]}\n >\n <YButton {...item.props}>\n {item.props.ellipsis\n ? slots.ellipsis\n ? slots.ellipsis()\n : '...'\n : item.page}\n </YButton>\n </li>\n );\n })}\n <li key=\"next\" class=\"y-pagination__next\">\n {slots.next ? (\n slots.next(controls.value.next)\n ) : (\n <YButton {...controls.value.next}>\n {slots['next-icon'] ? (\n slots['next-icon']()\n ) : (\n <YIconPageControl type={'next'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {props.showEndButton && (\n <li key=\"last\" class=\"y-pagination__last\">\n {slots.last ? (\n slots.last(controls.value.last)\n ) : (\n <YButton {...controls.value.last}>\n {slots['last-icon'] ? (\n slots['last-icon']()\n ) : (\n <YIconPageControl type={'last'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n </ul>\n </div>\n );\n });\n\n return {\n itemCount,\n page,\n refs,\n };\n },\n});\n\nexport type YPagination = InstanceType<typeof YPagination>;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"YDividePanel.mjs","names":["computed","defineComponent","ref","watch","useRender","YDividePanel","setup","props","_ref","slots","contentRate","isResizing","secondarySlot","activeSecondary","rootRef","neo","value","topStyles","inset","position","classes","moveListener","event","mouseEvent","containerRect","getBoundingClientRect","requestAnimationFrame","Math","min","max","clientY","y","height","cancelEvent","removeEventListener","upListener","leaveListener","onMousedown","preventDefault","addEventListener","_createVNode","_Fragment","default","secondary"],"sources":["../../../src/components/panel/YDividePanel.tsx"],"sourcesContent":["import {\n CSSProperties,\n computed,\n defineComponent,\n ref,\n toRef,\n watch,\n} from 'vue';\n\nimport { useRender } from '../../composables/component';\n\nimport './YDividePanel.scss';\n\nexport const YDividePanel = defineComponent({\n setup(props, { slots }) {\n const contentRate = ref(50);\n const isResizing = ref(false);\n const secondarySlot = ref();\n const activeSecondary = ref(false);\n const rootRef = ref();\n\n watch(secondarySlot, (neo) => {\n activeSecondary.value = !!neo;\n });\n\n const topStyles = computed<CSSProperties>(() => {\n let inset = '0 0';\n if (activeSecondary.value) {\n inset = `0 0 ${100 - contentRate.value}% 0`;\n }\n return {\n position: 'absolute',\n inset,\n };\n });\n\n const classes = computed(() => {\n return {\n 'y-divide-panel': true,\n 'y-divide-panel--resizing': isResizing.value,\n };\n });\n\n function moveListener(event: Event) {\n const mouseEvent = event as MouseEvent;\n const containerRect = rootRef.value.getBoundingClientRect();\n requestAnimationFrame(() => {\n contentRate.value = Math.min(\n Math.max(\n 10,\n ((mouseEvent.clientY - containerRect.y) / containerRect.height) *\n 100,\n ),\n 90,\n );\n });\n }\n\n function cancelEvent() {\n isResizing.value = false;\n rootRef.value.removeEventListener('mousemove', moveListener);\n rootRef.value.removeEventListener('mouseup', upListener);\n rootRef.value.removeEventListener('mouseleave', leaveListener);\n }\n\n function upListener(event: Event) {\n cancelEvent();\n }\n\n function leaveListener(event: Event) {\n cancelEvent();\n }\n\n function onMousedown(event: MouseEvent) {\n event.preventDefault();\n isResizing.value = true;\n rootRef.value.addEventListener('mousemove', moveListener);\n rootRef.value.addEventListener('mouseup', upListener);\n rootRef.value.addEventListener('mouseleave', leaveListener);\n }\n\n useRender(() => {\n return (\n <>\n <div class={classes.value} ref={rootRef}>\n <div\n class={'y-divide-panel__top-container'}\n style={topStyles.value}\n >\n {slots.default?.()}\n </div>\n {\n (secondarySlot.value = slots.secondary && (\n <>\n <div\n class=\"y-divide-panel__divider\"\n style={{\n position: 'absolute',\n inset: `${contentRate.value}% 0 0 0`,\n }}\n onMousedown={onMousedown}\n >\n <div class=\"y-divide-panel__divider-line\"></div>\n </div>\n <div\n class={'y-divide-panel__secondary-container'}\n style={{\n position: 'absolute',\n inset: `${contentRate.value}% 0 0 0`,\n }}\n >\n {slots.secondary?.()}\n </div>\n </>\n ))\n }\n </div>\n </>\n );\n });\n\n return {\n activeSecondary,\n };\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"YDividePanel.mjs","names":["computed","defineComponent","ref","watch","useRender","YDividePanel","setup","props","_ref","slots","contentRate","isResizing","secondarySlot","activeSecondary","rootRef","neo","value","topStyles","inset","position","classes","moveListener","event","mouseEvent","containerRect","getBoundingClientRect","requestAnimationFrame","Math","min","max","clientY","y","height","cancelEvent","removeEventListener","upListener","leaveListener","onMousedown","preventDefault","addEventListener","_createVNode","_Fragment","default","secondary"],"sources":["../../../src/components/panel/YDividePanel.tsx"],"sourcesContent":["import {\n CSSProperties,\n computed,\n defineComponent,\n ref,\n toRef,\n watch,\n} from 'vue';\n\nimport { useRender } from '../../composables/component';\n\nimport './YDividePanel.scss';\n\nexport const YDividePanel = defineComponent({\n setup(props, { slots }) {\n const contentRate = ref(50);\n const isResizing = ref(false);\n const secondarySlot = ref();\n const activeSecondary = ref(false);\n const rootRef = ref();\n\n watch(secondarySlot, (neo) => {\n activeSecondary.value = !!neo;\n });\n\n const topStyles = computed<CSSProperties>(() => {\n let inset = '0 0';\n if (activeSecondary.value) {\n inset = `0 0 ${100 - contentRate.value}% 0`;\n }\n return {\n position: 'absolute',\n inset,\n };\n });\n\n const classes = computed(() => {\n return {\n 'y-divide-panel': true,\n 'y-divide-panel--resizing': isResizing.value,\n };\n });\n\n function moveListener(event: Event) {\n const mouseEvent = event as MouseEvent;\n const containerRect = rootRef.value.getBoundingClientRect();\n requestAnimationFrame(() => {\n contentRate.value = Math.min(\n Math.max(\n 10,\n ((mouseEvent.clientY - containerRect.y) / containerRect.height) *\n 100,\n ),\n 90,\n );\n });\n }\n\n function cancelEvent() {\n isResizing.value = false;\n rootRef.value.removeEventListener('mousemove', moveListener);\n rootRef.value.removeEventListener('mouseup', upListener);\n rootRef.value.removeEventListener('mouseleave', leaveListener);\n }\n\n function upListener(event: Event) {\n cancelEvent();\n }\n\n function leaveListener(event: Event) {\n cancelEvent();\n }\n\n function onMousedown(event: MouseEvent) {\n event.preventDefault();\n isResizing.value = true;\n rootRef.value.addEventListener('mousemove', moveListener);\n rootRef.value.addEventListener('mouseup', upListener);\n rootRef.value.addEventListener('mouseleave', leaveListener);\n }\n\n useRender(() => {\n return (\n <>\n <div class={classes.value} ref={rootRef}>\n <div\n class={'y-divide-panel__top-container'}\n style={topStyles.value}\n >\n {slots.default?.()}\n </div>\n {\n (secondarySlot.value = slots.secondary && (\n <>\n <div\n class=\"y-divide-panel__divider\"\n style={{\n position: 'absolute',\n inset: `${contentRate.value}% 0 0 0`,\n }}\n onMousedown={onMousedown}\n >\n <div class=\"y-divide-panel__divider-line\"></div>\n </div>\n <div\n class={'y-divide-panel__secondary-container'}\n style={{\n position: 'absolute',\n inset: `${contentRate.value}% 0 0 0`,\n }}\n >\n {slots.secondary?.()}\n </div>\n </>\n ))\n }\n </div>\n </>\n );\n });\n\n return {\n activeSecondary,\n };\n },\n});\n\nexport type YDividePanel = InstanceType<typeof YDividePanel>;\n"],"mappings":"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"}
@@ -77,7 +77,7 @@ export const YProgressBar = defineComponent({
77
77
  minWidth = '2rem';
78
78
  }
79
79
  return {
80
- transform: `scaleX(${this.numValue / 100})`,
80
+ width: `${this.numValue}%`,
81
81
  minWidth
82
82
  };
83
83
  }
@@ -105,7 +105,8 @@ export const YProgressBar = defineComponent({
105
105
  "style": {
106
106
  '--y-progress-bar__height': height !== undefined ? `${height}px` : undefined,
107
107
  '--y-progress-bar__outline-color': outlineColor !== undefined ? outlineColor : undefined,
108
- '--y-progress-bar__color': this.leadColor
108
+ '--y-progress-bar__color': this.leadColor,
109
+ '--y-progress-bar__value': this.numValue
109
110
  }
110
111
  }, [_createVNode("div", {
111
112
  "class": "y-progress__track"
@@ -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';\r\n\r\nimport { useProgress } from '../../composables/progress';\r\nimport './YProgressBar.scss';\r\nimport { isColorValue } from \"../../util/color\";\r\n\r\nexport const YProgressBar = defineComponent({\r\n name: 'YProgressBar',\r\n props: {\r\n value: {\r\n type: Number as PropType<number>,\r\n },\r\n rounded: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n height: {\r\n type: Number as PropType<number>,\r\n },\r\n noRewindTransition: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n outlined: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n innerText: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n color: {\r\n type: String as PropType<string>,\r\n default: 'primary',\r\n },\r\n textColor: {\r\n type: String as PropType<string>,\r\n },\r\n outlineColor: {\r\n type: String as PropType<string>,\r\n },\r\n indeterminate: Boolean,\r\n reverse: Boolean,\r\n },\r\n setup(props) {\r\n const { numValue } = useProgress(props);\r\n\r\n return {\r\n numValue,\r\n };\r\n },\r\n data() {\r\n return {\r\n delta: 0,\r\n };\r\n },\r\n computed: {\r\n classes(): Record<string, boolean> {\r\n let noTransition = false;\r\n if (this.noRewindTransition && this.delta < 0) {\r\n noTransition = true;\r\n }\r\n return {\r\n 'y-progress--no-trans': noTransition,\r\n 'y-progress--outlined': !!this.outlined,\r\n 'y-progress--indeterminate': !!this.indeterminate,\r\n 'y-progress-bar--rounded': !!this.rounded,\r\n 'y-progress-bar--reverse': !!this.reverse,\r\n };\r\n },\r\n leadColor(): string {\r\n let color = this.color ?? '';\r\n if (!isColorValue(color)) {\r\n color = `var(--y-theme-${color})`;\r\n }\r\n return color;\r\n },\r\n styles(): StyleValue {\r\n let minWidth;\r\n if (this.innerText && this.numValue < 5 && this.numValue > 0) {\r\n minWidth = '2rem';\r\n }\r\n return {\r\n transform: `scaleX(${this.numValue / 100})`,\r\n minWidth,\r\n };\r\n },\r\n },\r\n render() {\r\n const {\r\n classes,\r\n numValue,\r\n height,\r\n outlineColor,\r\n textColor,\r\n styles,\r\n innerText,\r\n } = this;\r\n const slots = this.$slots;\r\n return (\r\n <div\r\n class={{ 'y-progress y-progress-bar': true, ...classes }}\r\n role=\"progressbar\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n aria-valuenow={numValue}\r\n style={{\r\n '--y-progress-bar__height':\r\n height !== undefined ? `${height}px` : undefined,\r\n '--y-progress-bar__outline-color':\r\n outlineColor !== undefined ? outlineColor : undefined,\r\n '--y-progress-bar__color': this.leadColor,\r\n }}\r\n >\r\n <div class=\"y-progress__track\"></div>\r\n <div class=\"y-progress__tube\">\r\n <div class=\"y-progress__lead\" style={styles}>\r\n {slots['lead-inner']\r\n ? slots['lead-inner']()\r\n : innerText && (\r\n <div\r\n class={{\r\n 'y-progress__lead-inner': true,\r\n 'y-progress__lead-inner--fixed': numValue < 3,\r\n }}\r\n style={{ color: textColor }}\r\n >\r\n <span>{numValue} %</span>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n },\r\n});\r\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","width","render","slots","$slots","_createVNode","undefined","_createTextVNode"],"sources":["../../../src/components/progress-bar/YProgressBar.tsx"],"sourcesContent":["import { PropType, StyleValue, defineComponent } from 'vue';\r\n\r\nimport { useProgress } from '../../composables/progress';\r\nimport './YProgressBar.scss';\r\nimport { isColorValue } from \"../../util/color\";\r\n\r\nexport const YProgressBar = defineComponent({\r\n name: 'YProgressBar',\r\n props: {\r\n value: {\r\n type: Number as PropType<number>,\r\n },\r\n rounded: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n height: {\r\n type: Number as PropType<number>,\r\n },\r\n noRewindTransition: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n outlined: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n innerText: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n color: {\r\n type: String as PropType<string>,\r\n default: 'primary',\r\n },\r\n textColor: {\r\n type: String as PropType<string>,\r\n },\r\n outlineColor: {\r\n type: String as PropType<string>,\r\n },\r\n indeterminate: Boolean,\r\n reverse: Boolean,\r\n },\r\n setup(props) {\r\n const { numValue } = useProgress(props);\r\n\r\n return {\r\n numValue,\r\n };\r\n },\r\n data() {\r\n return {\r\n delta: 0,\r\n };\r\n },\r\n computed: {\r\n classes(): Record<string, boolean> {\r\n let noTransition = false;\r\n if (this.noRewindTransition && this.delta < 0) {\r\n noTransition = true;\r\n }\r\n return {\r\n 'y-progress--no-trans': noTransition,\r\n 'y-progress--outlined': !!this.outlined,\r\n 'y-progress--indeterminate': !!this.indeterminate,\r\n 'y-progress-bar--rounded': !!this.rounded,\r\n 'y-progress-bar--reverse': !!this.reverse,\r\n };\r\n },\r\n leadColor(): string {\r\n let color = this.color ?? '';\r\n if (!isColorValue(color)) {\r\n color = `var(--y-theme-${color})`;\r\n }\r\n return color;\r\n },\r\n styles(): StyleValue {\r\n let minWidth;\r\n if (this.innerText && this.numValue < 5 && this.numValue > 0) {\r\n minWidth = '2rem';\r\n }\r\n return {\r\n width: `${this.numValue}%`,\r\n minWidth,\r\n };\r\n },\r\n },\r\n render() {\r\n const {\r\n classes,\r\n numValue,\r\n height,\r\n outlineColor,\r\n textColor,\r\n styles,\r\n innerText,\r\n } = this;\r\n const slots = this.$slots;\r\n return (\r\n <div\r\n class={{ 'y-progress y-progress-bar': true, ...classes }}\r\n role=\"progressbar\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n aria-valuenow={numValue}\r\n style={{\r\n '--y-progress-bar__height':\r\n height !== undefined ? `${height}px` : undefined,\r\n '--y-progress-bar__outline-color':\r\n outlineColor !== undefined ? outlineColor : undefined,\r\n '--y-progress-bar__color': this.leadColor,\r\n '--y-progress-bar__value': this.numValue,\r\n }}\r\n >\r\n <div class=\"y-progress__track\"></div>\r\n <div class=\"y-progress__tube\">\r\n <div class=\"y-progress__lead\" style={styles}>\r\n {slots['lead-inner']\r\n ? slots['lead-inner']()\r\n : innerText && (\r\n <div\r\n class={{\r\n 'y-progress__lead-inner': true,\r\n 'y-progress__lead-inner--fixed': numValue < 3,\r\n }}\r\n style={{ color: textColor }}\r\n >\r\n <span>{numValue} %</span>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n },\r\n});\r\n\r\nexport type YProgressBar = InstanceType<typeof YProgressBar>;\r\n"],"mappings":"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"}
@@ -26,7 +26,8 @@
26
26
  }
27
27
 
28
28
  &__lead {
29
- transform-origin: right;
29
+ right: 0;
30
+ position: absolute;
30
31
  }
31
32
  }
32
33
 
@@ -35,6 +36,7 @@
35
36
  overflow: clip;
36
37
  min-width: 0;
37
38
  flex: 1 1;
39
+ position: relative;
38
40
  }
39
41
 
40
42
  &__track {
@@ -47,7 +49,6 @@
47
49
  }
48
50
 
49
51
  &__lead {
50
- width: 100%;
51
52
  height: 100%;
52
53
  background-color: var(--y-progress-bar__color);
53
54
  position: relative;
@@ -107,4 +108,7 @@
107
108
  }
108
109
  }
109
110
 
111
+ &--indeterminate &__lead {
112
+ visibility: hidden;
113
+ }
110
114
  }
@@ -1,10 +1,10 @@
1
- import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
1
+ import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
2
2
  import { shallowRef } from '@vue/runtime-core';
3
- import { nextTick } from 'vue';
4
3
  import { computed, defineComponent, mergeProps, onMounted, ref } from 'vue';
5
4
  import { useModelDuplex } from "../../composables/communication.mjs";
6
5
  import { useRender } from "../../composables/component.mjs";
7
6
  import { pressCoordinateProps } from "../../composables/coordinate/index.mjs";
7
+ import { useI18n } from "../../composables/i18n/index.mjs";
8
8
  import { pressListItemsPropsOptions, useItems } from "../../composables/list-items.mjs";
9
9
  import { wrapInArray } from "../../util/array.mjs";
10
10
  import { deepEqual, getObjectValueByPath, omit } from "../../util/common.mjs";
@@ -86,6 +86,9 @@ export const YSelect = defineComponent({
86
86
  toRefineItems,
87
87
  toEmitItems
88
88
  } = useItems(props);
89
+ const {
90
+ t
91
+ } = useI18n();
89
92
  const model = useModelDuplex(props, 'modelValue', [], v => toRefineItems(v === null ? [null] : wrapInArray(v)), v => {
90
93
  const emitValue = toEmitItems(wrapInArray(v));
91
94
  return props.multiple ? emitValue : emitValue[0] ?? null;
@@ -107,7 +110,8 @@ export const YSelect = defineComponent({
107
110
  });
108
111
  const extraMenuProps = computed(() => {
109
112
  return {
110
- ...props.menuProps
113
+ ...props.menuProps,
114
+ preventCloseBubble: true
111
115
  };
112
116
  });
113
117
  function isSelected(item) {
@@ -133,9 +137,9 @@ export const YSelect = defineComponent({
133
137
  function onClickItem(item, e) {
134
138
  select(item);
135
139
  if (!props.multiple) {
136
- nextTick(() => {
140
+ setTimeout(() => {
137
141
  opened.value = false;
138
- });
142
+ }, 40);
139
143
  }
140
144
  }
141
145
  function onAfterLeave() {
@@ -258,7 +262,7 @@ export const YSelect = defineComponent({
258
262
  })]
259
263
  }) : _createVNode("div", {
260
264
  "class": "y-select__no-options"
261
- }, [_createTextVNode("\uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.")]), slots['menu-append']?.()]
265
+ }, [t('$yuyeon.noItems')]), slots['menu-append']?.()]
262
266
  })
263
267
  });
264
268
  });
@@ -1 +1 @@
1
- {"version":3,"file":"YSelect.mjs","names":["shallowRef","nextTick","computed","defineComponent","mergeProps","onMounted","ref","useModelDuplex","useRender","pressCoordinateProps","pressListItemsPropsOptions","useItems","wrapInArray","deepEqual","getObjectValueByPath","omit","chooseProps","propsFactory","YCard","YFieldInput","pressYFieldInputPropsOptions","YIcon","YList","YListItem","YMenu","returnItemEquals","optionsItem","valueItem","valueKey","arguments","length","undefined","valueItemType","itemValue","pressSelectPropsOptions","opened","Boolean","multiple","weakEquals","valueEquals","type","Function","default","defaultSelect","menuProps","Object","pressYSelectPropsOptions","maxHeight","Number","String","dropdownIcon","Array","openDelay","closeDelay","position","YSelect","name","inheritAttrs","props","emits","value","click:item","item","e","slots","setup","_ref","attrs","expose","fieldInputRef","menuRef","listRef","focused","items","toRefineItems","toEmitItems","model","v","emitValue","selections","ret","found","find","push","selected","map","selection","extraMenuProps","isSelected","selectedItem","onMousedownDisplay","event","disabled","onBlur","onClickItem","select","onAfterLeave","focus","closeCondition","target","layer$","content$","contains","index","findIndex","neo","slice","splice","displayText","text","join","baseEl","fieldInputProps","dropdownIconProps","_createVNode","_mergeProps","$event","offset","align","origin","base","_len","args","_key","rxValue","placeholder","leading","_len2","_key2","trailing","menu","_createTextVNode","modelValue","isArray"],"sources":["../../../src/components/select/YSelect.tsx"],"sourcesContent":["import { shallowRef } from '@vue/runtime-core';\nimport { PropType, SlotsType, nextTick } from 'vue';\nimport { computed, defineComponent, mergeProps, onMounted, ref } from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { pressCoordinateProps } from '../../composables/coordinate';\nimport {\n ListItem,\n pressListItemsPropsOptions,\n useItems,\n} from '../../composables/list-items';\nimport { wrapInArray } from '../../util/array';\nimport { deepEqual, getObjectValueByPath, omit } from '../../util/common';\nimport { chooseProps, propsFactory } from '../../util/vue-component';\nimport { YCard } from '../card';\nimport { YFieldInput, pressYFieldInputPropsOptions } from '../field-input';\nimport { YIcon, YIconIconProp } from '../icon';\nimport { YIconDropdown } from '../icons/YIconDropdown';\nimport { YList, YListItem } from '../list';\nimport { YMenu } from '../menu';\n\nimport './YSelect.scss';\n\nexport type SelectEquals = (\n optionsItem: any,\n valueItem: any,\n valueKey?: string,\n) => boolean;\n\nexport function returnItemEquals(\n optionsItem: any,\n valueItem: any,\n valueKey = 'value',\n) {\n const valueItemType = typeof valueItem;\n const itemValue =\n valueItemType === 'string' || valueItemType === 'number'\n ? getObjectValueByPath(optionsItem, valueKey)\n : optionsItem;\n return deepEqual(itemValue, valueItem);\n}\n\nexport const pressSelectPropsOptions = propsFactory(\n {\n opened: Boolean as PropType<boolean>,\n multiple: Boolean,\n weakEquals: Boolean,\n valueEquals: {\n type: Function as PropType<SelectEquals>,\n default: deepEqual,\n },\n defaultSelect: Boolean,\n menuProps: {\n type: Object as PropType<YMenu['$props']>,\n },\n ...pressListItemsPropsOptions(),\n },\n 'Select',\n);\n\nexport const pressYSelectPropsOptions = propsFactory(\n {\n maxHeight: {\n type: [Number, String],\n default: 310,\n },\n dropdownIcon: {\n type: [String, Array, Object] as PropType<YIconIconProp>,\n default: '$dropdown',\n },\n openDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n closeDelay: {\n type: Number as PropType<number>,\n default: 200,\n },\n ...pressSelectPropsOptions(),\n ...pressYFieldInputPropsOptions(),\n ...omit(pressCoordinateProps({ position: 'bottom' as 'bottom' }), [\n 'coordinateStrategy',\n ]),\n },\n 'YSelect',\n);\n\nexport const YSelect = defineComponent({\n name: 'YSelect',\n inheritAttrs: false,\n props: {\n ...pressYSelectPropsOptions(),\n },\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:opened': (opened: boolean) => true,\n 'click:item': (item: any, e: MouseEvent) => true,\n },\n slots: Object as SlotsType<{\n base: any;\n selection: any;\n leading: any;\n 'helper-text': any;\n menu: any;\n 'menu-prepend': any;\n 'menu-append': any;\n 'dropdown-icon': any;\n item: { item: any; selected: boolean; select: () => void };\n }>,\n setup(props, { slots, attrs, expose }) {\n const fieldInputRef = ref();\n const menuRef = ref<InstanceType<typeof YMenu>>();\n const listRef = ref<InstanceType<typeof YList>>();\n\n const opened = useModelDuplex(props, 'opened');\n const focused = shallowRef(false);\n\n const { items, toRefineItems, toEmitItems } = useItems(props);\n const model = useModelDuplex(\n props,\n 'modelValue',\n [],\n (v) => toRefineItems(v === null ? [null] : wrapInArray(v)),\n (v) => {\n const emitValue = toEmitItems(wrapInArray(v));\n return props.multiple ? emitValue : emitValue[0] ?? null;\n },\n );\n\n const selections = computed<ListItem[]>(() => {\n const ret: ListItem<any>[] = [];\n for (const v of model.value) {\n const found = items.value.find((item) => {\n return props.valueEquals(item.value, v.value);\n });\n if (found !== undefined) {\n ret.push(found);\n }\n }\n return ret;\n });\n\n const selected = computed(() => {\n return selections.value.map((selection) => selection?.props?.value);\n });\n\n const extraMenuProps = computed(() => {\n return { ...props.menuProps };\n });\n\n function isSelected(item: ListItem) {\n return !!selections.value.find((selectedItem) => {\n return selectedItem?.value === item.value;\n });\n }\n\n // Field\n function onMousedownDisplay(event: MouseEvent) {\n if (props.disabled) {\n return;\n }\n opened.value = !opened.value;\n }\n\n function onBlur(event: FocusEvent) {\n // if (listRef.value?.$el.contains(event.relatedTarget)) {\n // opened.value = false;\n // }\n }\n\n // Menu Contents\n function onClickItem(item: ListItem, e: MouseEvent) {\n select(item);\n if (!props.multiple) {\n nextTick(() => {\n opened.value = false;\n });\n }\n }\n\n function onAfterLeave() {\n if (!focused.value) {\n fieldInputRef.value?.focus();\n }\n }\n\n function closeCondition(event: MouseEvent) {\n if (event.target && (menuRef.value as any)?.layer$?.content$) {\n return (event.target as HTMLElement)?.contains(\n (menuRef.value as any)?.layer$?.content$,\n );\n }\n }\n\n function select(item: ListItem) {\n if (props.multiple) {\n const index = selections.value.findIndex((selectedItem) => {\n return selectedItem.value === item.value;\n });\n if (index === -1) {\n model.value = [...model.value, item];\n } else {\n const neo = model.value.slice();\n neo.splice(index, 1);\n model.value = neo;\n }\n } else {\n model.value = [item];\n }\n }\n\n const displayText = computed(() => {\n if (props.multiple) {\n return selections.value.map((item) => item.text).join(', ');\n }\n return selections.value?.[0]?.text ?? '';\n });\n\n const baseEl = computed(() => {\n return menuRef.value?.baseEl;\n });\n\n useRender(() => {\n const fieldInputProps = chooseProps(props, YFieldInput.props);\n const dropdownIconProps = chooseProps(\n typeof props.dropdownIcon === 'object' ? props.dropdownIcon : {},\n YIcon.props,\n );\n return (\n <YMenu\n v-model={opened.value}\n ref={menuRef}\n offset={props.offset}\n position={props.position}\n align={props.align}\n origin={props.origin}\n content-classes={['y-select__content']}\n maxHeight={props.maxHeight}\n open-on-click-base={false}\n onAfterLeave={onAfterLeave}\n open-delay={props.openDelay}\n close-delay={props.closeDelay}\n closeCondition={closeCondition}\n {...extraMenuProps.value}\n >\n {{\n base: (...args: any[]) =>\n slots.base ? (\n slots.base?.(...args)\n ) : (\n <YFieldInput\n {...{\n ...fieldInputProps,\n ...mergeProps({ ...args[0].props }, { ref: fieldInputRef }),\n }}\n modelValue={model.value\n .map((v: any) => v.props.value)\n .join(', ')}\n validationValue={model.rxValue}\n onMousedown:display={onMousedownDisplay}\n onBlur={onBlur}\n readonly\n class={[\n 'y-select',\n {\n 'y-select--opened': opened.value,\n 'y-select--selected': selected.value.length > 0,\n },\n ]}\n {...attrs}\n focused={focused.value}\n >\n {{\n default: () => {\n return (\n <div class={['y-select__selection']}>\n {slots.selection\n ? slots.selection?.()\n : selected.value.length > 0\n ? displayText.value\n : props.placeholder}\n </div>\n );\n },\n leading: slots.leading\n ? (...args: any[]) => slots.leading?.(...args)\n : undefined,\n trailing: (...args: any[]) => {\n return slots['dropdown-icon'] ? (\n slots['dropdown-icon']()\n ) : (\n <YIcon\n {...mergeProps(dropdownIconProps)}\n icon={props.dropdownIcon}\n class={['y-select__icon']}\n ></YIcon>\n );\n },\n 'helper-text': slots['helper-text']\n ? slots['helper-text']?.()\n : undefined,\n }}\n </YFieldInput>\n ),\n default: slots.menu\n ? () => slots.menu()\n : () => (\n <YCard>\n {slots['menu-prepend']?.()}\n {items.value.length > 0 ? (\n <YList ref={listRef}>\n {items.value.map((item) => {\n return (\n <YListItem\n onClick={(e) => onClickItem(item, e)}\n class={{\n 'y-list-item--active': isSelected(item),\n }}\n >\n {slots.item\n ? slots.item({\n item,\n selected: isSelected(item),\n select: () => {\n select(item);\n },\n })\n : item.text}\n </YListItem>\n );\n })}\n </YList>\n ) : (\n <div class=\"y-select__no-options\">항목이 없습니다.</div>\n )}\n {slots['menu-append']?.()}\n </YCard>\n ),\n }}\n </YMenu>\n );\n });\n\n onMounted(() => {\n if (\n props.defaultSelect &&\n (props.modelValue === undefined ||\n (Array.isArray(props.modelValue) && props.modelValue.length === 0)) &&\n items.value?.length\n ) {\n select(items.value[0]);\n }\n });\n\n expose({\n fieldInputRef,\n baseEl,\n });\n\n return {\n fieldInputRef,\n model,\n selections,\n selected,\n menuRef,\n baseEl,\n };\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"YSelect.mjs","names":["shallowRef","computed","defineComponent","mergeProps","onMounted","ref","useModelDuplex","useRender","pressCoordinateProps","useI18n","pressListItemsPropsOptions","useItems","wrapInArray","deepEqual","getObjectValueByPath","omit","chooseProps","propsFactory","YCard","YFieldInput","pressYFieldInputPropsOptions","YIcon","YList","YListItem","YMenu","returnItemEquals","optionsItem","valueItem","valueKey","arguments","length","undefined","valueItemType","itemValue","pressSelectPropsOptions","opened","Boolean","multiple","weakEquals","valueEquals","type","Function","default","defaultSelect","menuProps","Object","pressYSelectPropsOptions","maxHeight","Number","String","dropdownIcon","Array","openDelay","closeDelay","position","YSelect","name","inheritAttrs","props","emits","value","click:item","item","e","slots","setup","_ref","attrs","expose","fieldInputRef","menuRef","listRef","focused","items","toRefineItems","toEmitItems","t","model","v","emitValue","selections","ret","found","find","push","selected","map","selection","extraMenuProps","preventCloseBubble","isSelected","selectedItem","onMousedownDisplay","event","disabled","onBlur","onClickItem","select","setTimeout","onAfterLeave","focus","closeCondition","target","layer$","content$","contains","index","findIndex","neo","slice","splice","displayText","text","join","baseEl","fieldInputProps","dropdownIconProps","_createVNode","_mergeProps","$event","offset","align","origin","base","_len","args","_key","rxValue","placeholder","leading","_len2","_key2","trailing","menu","modelValue","isArray"],"sources":["../../../src/components/select/YSelect.tsx"],"sourcesContent":["import { shallowRef } from '@vue/runtime-core';\r\nimport { PropType, SlotsType, nextTick } from 'vue';\r\nimport { computed, defineComponent, mergeProps, onMounted, ref } from 'vue';\r\n\r\nimport { useModelDuplex } from '../../composables/communication';\r\nimport { useRender } from '../../composables/component';\r\nimport { pressCoordinateProps } from '../../composables/coordinate';\r\nimport { useI18n } from '../../composables/i18n';\r\nimport {\r\n ListItem,\r\n pressListItemsPropsOptions,\r\n useItems,\r\n} from '../../composables/list-items';\r\nimport { wrapInArray } from '../../util/array';\r\nimport { deepEqual, getObjectValueByPath, omit } from '../../util/common';\r\nimport { chooseProps, propsFactory } from '../../util/vue-component';\r\nimport { YCard } from '../card';\r\nimport { YFieldInput, pressYFieldInputPropsOptions } from '../field-input';\r\nimport { YIcon, YIconIconProp } from '../icon';\r\nimport { YList, YListItem } from '../list';\r\nimport { YMenu } from '../menu';\r\n\r\nimport './YSelect.scss';\r\n\r\nexport type SelectEquals = (\r\n optionsItem: any,\r\n valueItem: any,\r\n valueKey?: string,\r\n) => boolean;\r\n\r\nexport function returnItemEquals(\r\n optionsItem: any,\r\n valueItem: any,\r\n valueKey = 'value',\r\n) {\r\n const valueItemType = typeof valueItem;\r\n const itemValue =\r\n valueItemType === 'string' || valueItemType === 'number'\r\n ? getObjectValueByPath(optionsItem, valueKey)\r\n : optionsItem;\r\n return deepEqual(itemValue, valueItem);\r\n}\r\n\r\nexport const pressSelectPropsOptions = propsFactory(\r\n {\r\n opened: Boolean as PropType<boolean>,\r\n multiple: Boolean,\r\n weakEquals: Boolean,\r\n valueEquals: {\r\n type: Function as PropType<SelectEquals>,\r\n default: deepEqual,\r\n },\r\n defaultSelect: Boolean,\r\n menuProps: {\r\n type: Object as PropType<YMenu['$props']>,\r\n },\r\n ...pressListItemsPropsOptions(),\r\n },\r\n 'Select',\r\n);\r\n\r\nexport const pressYSelectPropsOptions = propsFactory(\r\n {\r\n maxHeight: {\r\n type: [Number, String],\r\n default: 310,\r\n },\r\n dropdownIcon: {\r\n type: [String, Array, Object] as PropType<YIconIconProp>,\r\n default: '$dropdown',\r\n },\r\n openDelay: {\r\n type: Number as PropType<number>,\r\n default: 200,\r\n },\r\n closeDelay: {\r\n type: Number as PropType<number>,\r\n default: 200,\r\n },\r\n ...pressSelectPropsOptions(),\r\n ...pressYFieldInputPropsOptions(),\r\n ...omit(pressCoordinateProps({ position: 'bottom' as 'bottom' }), [\r\n 'coordinateStrategy',\r\n ]),\r\n },\r\n 'YSelect',\r\n);\r\n\r\nexport const YSelect = defineComponent({\r\n name: 'YSelect',\r\n inheritAttrs: false,\r\n props: {\r\n ...pressYSelectPropsOptions(),\r\n },\r\n emits: {\r\n 'update:modelValue': (value: any) => true,\r\n 'update:opened': (opened: boolean) => true,\r\n 'click:item': (item: any, e: MouseEvent) => true,\r\n },\r\n slots: Object as SlotsType<{\r\n base: any;\r\n selection: any;\r\n leading: any;\r\n 'helper-text': any;\r\n menu: any;\r\n 'menu-prepend': any;\r\n 'menu-append': any;\r\n 'dropdown-icon': any;\r\n item: { item: any; selected: boolean; select: () => void };\r\n }>,\r\n setup(props, { slots, attrs, expose }) {\r\n const fieldInputRef = ref();\r\n const menuRef = ref<InstanceType<typeof YMenu>>();\r\n const listRef = ref<InstanceType<typeof YList>>();\r\n\r\n const opened = useModelDuplex(props, 'opened');\r\n const focused = shallowRef(false);\r\n\r\n const { items, toRefineItems, toEmitItems } = useItems(props);\r\n const { t } = useI18n();\r\n const model = useModelDuplex(\r\n props,\r\n 'modelValue',\r\n [],\r\n (v) => toRefineItems(v === null ? [null] : wrapInArray(v)),\r\n (v) => {\r\n const emitValue = toEmitItems(wrapInArray(v));\r\n return props.multiple ? emitValue : emitValue[0] ?? null;\r\n },\r\n );\r\n\r\n const selections = computed<ListItem[]>(() => {\r\n const ret: ListItem<any>[] = [];\r\n for (const v of model.value) {\r\n const found = items.value.find((item) => {\r\n return props.valueEquals(item.value, v.value);\r\n });\r\n if (found !== undefined) {\r\n ret.push(found);\r\n }\r\n }\r\n return ret;\r\n });\r\n\r\n const selected = computed(() => {\r\n return selections.value.map((selection) => selection?.props?.value);\r\n });\r\n\r\n const extraMenuProps = computed(() => {\r\n return { ...props.menuProps, preventCloseBubble: true };\r\n });\r\n\r\n function isSelected(item: ListItem) {\r\n return !!selections.value.find((selectedItem) => {\r\n return selectedItem?.value === item.value;\r\n });\r\n }\r\n\r\n // Field\r\n function onMousedownDisplay(event: MouseEvent) {\r\n if (props.disabled) {\r\n return;\r\n }\r\n opened.value = !opened.value;\r\n }\r\n\r\n function onBlur(event: FocusEvent) {\r\n // if (listRef.value?.$el.contains(event.relatedTarget)) {\r\n // opened.value = false;\r\n // }\r\n }\r\n\r\n // Menu Contents\r\n function onClickItem(item: ListItem, e: MouseEvent) {\r\n select(item);\r\n if (!props.multiple) {\r\n setTimeout(() => {\r\n opened.value = false;\r\n }, 40);\r\n }\r\n }\r\n\r\n function onAfterLeave() {\r\n if (!focused.value) {\r\n fieldInputRef.value?.focus();\r\n }\r\n }\r\n\r\n function closeCondition(event: MouseEvent) {\r\n if (event.target && (menuRef.value as any)?.layer$?.content$) {\r\n return (event.target as HTMLElement)?.contains(\r\n (menuRef.value as any)?.layer$?.content$,\r\n );\r\n }\r\n }\r\n\r\n function select(item: ListItem) {\r\n if (props.multiple) {\r\n const index = selections.value.findIndex((selectedItem) => {\r\n return selectedItem.value === item.value;\r\n });\r\n if (index === -1) {\r\n model.value = [...model.value, item];\r\n } else {\r\n const neo = model.value.slice();\r\n neo.splice(index, 1);\r\n model.value = neo;\r\n }\r\n } else {\r\n model.value = [item];\r\n }\r\n }\r\n\r\n const displayText = computed(() => {\r\n if (props.multiple) {\r\n return selections.value.map((item) => item.text).join(', ');\r\n }\r\n return selections.value?.[0]?.text ?? '';\r\n });\r\n\r\n const baseEl = computed(() => {\r\n return menuRef.value?.baseEl;\r\n });\r\n\r\n useRender(() => {\r\n const fieldInputProps = chooseProps(props, YFieldInput.props);\r\n const dropdownIconProps = chooseProps(\r\n typeof props.dropdownIcon === 'object' ? props.dropdownIcon : {},\r\n YIcon.props,\r\n );\r\n return (\r\n <YMenu\r\n v-model={opened.value}\r\n ref={menuRef}\r\n offset={props.offset}\r\n position={props.position}\r\n align={props.align}\r\n origin={props.origin}\r\n content-classes={['y-select__content']}\r\n maxHeight={props.maxHeight}\r\n open-on-click-base={false}\r\n onAfterLeave={onAfterLeave}\r\n open-delay={props.openDelay}\r\n close-delay={props.closeDelay}\r\n closeCondition={closeCondition}\r\n {...extraMenuProps.value}\r\n >\r\n {{\r\n base: (...args: any[]) =>\r\n slots.base ? (\r\n slots.base?.(...args)\r\n ) : (\r\n <YFieldInput\r\n {...{\r\n ...fieldInputProps,\r\n ...mergeProps({ ...args[0].props }, { ref: fieldInputRef }),\r\n }}\r\n modelValue={model.value\r\n .map((v: any) => v.props.value)\r\n .join(', ')}\r\n validationValue={model.rxValue}\r\n onMousedown:display={onMousedownDisplay}\r\n onBlur={onBlur}\r\n readonly\r\n class={[\r\n 'y-select',\r\n {\r\n 'y-select--opened': opened.value,\r\n 'y-select--selected': selected.value.length > 0,\r\n },\r\n ]}\r\n {...attrs}\r\n focused={focused.value}\r\n >\r\n {{\r\n default: () => {\r\n return (\r\n <div class={['y-select__selection']}>\r\n {slots.selection\r\n ? slots.selection?.()\r\n : selected.value.length > 0\r\n ? displayText.value\r\n : props.placeholder}\r\n </div>\r\n );\r\n },\r\n leading: slots.leading\r\n ? (...args: any[]) => slots.leading?.(...args)\r\n : undefined,\r\n trailing: (...args: any[]) => {\r\n return slots['dropdown-icon'] ? (\r\n slots['dropdown-icon']()\r\n ) : (\r\n <YIcon\r\n {...mergeProps(dropdownIconProps)}\r\n icon={props.dropdownIcon}\r\n class={['y-select__icon']}\r\n ></YIcon>\r\n );\r\n },\r\n 'helper-text': slots['helper-text']\r\n ? slots['helper-text']?.()\r\n : undefined,\r\n }}\r\n </YFieldInput>\r\n ),\r\n default: slots.menu\r\n ? () => slots.menu()\r\n : () => (\r\n <YCard>\r\n {slots['menu-prepend']?.()}\r\n {items.value.length > 0 ? (\r\n <YList ref={listRef}>\r\n {items.value.map((item) => {\r\n return (\r\n <YListItem\r\n onClick={(e) => onClickItem(item, e)}\r\n class={{\r\n 'y-list-item--active': isSelected(item),\r\n }}\r\n >\r\n {slots.item\r\n ? slots.item({\r\n item,\r\n selected: isSelected(item),\r\n select: () => {\r\n select(item);\r\n },\r\n })\r\n : item.text}\r\n </YListItem>\r\n );\r\n })}\r\n </YList>\r\n ) : (\r\n <div class=\"y-select__no-options\">\r\n {t('$yuyeon.noItems')}\r\n </div>\r\n )}\r\n {slots['menu-append']?.()}\r\n </YCard>\r\n ),\r\n }}\r\n </YMenu>\r\n );\r\n });\r\n\r\n onMounted(() => {\r\n if (\r\n props.defaultSelect &&\r\n (props.modelValue === undefined ||\r\n (Array.isArray(props.modelValue) && props.modelValue.length === 0)) &&\r\n items.value?.length\r\n ) {\r\n select(items.value[0]);\r\n }\r\n });\r\n\r\n expose({\r\n fieldInputRef,\r\n baseEl,\r\n });\r\n\r\n return {\r\n fieldInputRef,\r\n model,\r\n selections,\r\n selected,\r\n menuRef,\r\n baseEl,\r\n };\r\n },\r\n});\r\n\r\nexport type YSelect = InstanceType<typeof YSelect>;\r\n"],"mappings":"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"}