yuyeon 0.0.52-rc.1 → 0.1.0-rc.10

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 (125) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +3904 -3664
  3. package/dist/yuyeon.umd.cjs +20 -6
  4. package/lib/components/badge/YBadge.mjs.map +1 -1
  5. package/lib/components/checkbox/YCheckbox.mjs.map +1 -1
  6. package/lib/components/checkbox/YInputCheckbox.mjs.map +1 -1
  7. package/lib/components/chip/YChip.mjs.map +1 -1
  8. package/lib/components/date-picker/YDateCalendar.mjs.map +1 -1
  9. package/lib/components/date-picker/YDatePicker.mjs +1 -0
  10. package/lib/components/date-picker/YDatePicker.mjs.map +1 -1
  11. package/lib/components/date-picker/YDatePickerControl.mjs.map +1 -1
  12. package/lib/components/dropdown/YDropdown.mjs +10 -4
  13. package/lib/components/dropdown/YDropdown.mjs.map +1 -1
  14. package/lib/components/field-input/YFieldInput.mjs +4 -0
  15. package/lib/components/field-input/YFieldInput.mjs.map +1 -1
  16. package/lib/components/icons/YIconCheckbox.mjs.map +1 -1
  17. package/lib/components/icons/YIconClear.mjs.map +1 -1
  18. package/lib/components/icons/YIconDropdown.mjs.map +1 -1
  19. package/lib/components/icons/YIconExpand.mjs.map +1 -1
  20. package/lib/components/icons/YIconPageControl.mjs.map +1 -1
  21. package/lib/components/icons/YIconSort.mjs.map +1 -1
  22. package/lib/components/index.mjs +1 -0
  23. package/lib/components/index.mjs.map +1 -1
  24. package/lib/components/input/YInput.mjs +6 -6
  25. package/lib/components/input/YInput.mjs.map +1 -1
  26. package/lib/components/input/YInput.scss +2 -3
  27. package/lib/components/layer/YLayer.mjs +3 -1
  28. package/lib/components/layer/YLayer.mjs.map +1 -1
  29. package/lib/components/layer/base.mjs +5 -1
  30. package/lib/components/layer/base.mjs.map +1 -1
  31. package/lib/components/list/YList.mjs.map +1 -1
  32. package/lib/components/loading/YSpinnerRing.mjs.map +1 -1
  33. package/lib/components/pagination/YPagination.mjs.map +1 -1
  34. package/lib/components/panel/YDividePanel.mjs.map +1 -1
  35. package/lib/components/progress-bar/YProgressBar.mjs.map +1 -1
  36. package/lib/components/select/YSelect.mjs +64 -13
  37. package/lib/components/select/YSelect.mjs.map +1 -1
  38. package/lib/components/snackbar/YSnackbar.mjs +6 -6
  39. package/lib/components/snackbar/YSnackbar.mjs.map +1 -1
  40. package/lib/components/switch/YSwitch.mjs +3 -2
  41. package/lib/components/switch/YSwitch.mjs.map +1 -1
  42. package/lib/components/tab/YTabs.mjs.map +1 -1
  43. package/lib/components/table/YDataTableBody.mjs.map +1 -1
  44. package/lib/components/table/YDataTableControl.mjs.map +1 -1
  45. package/lib/components/table/YDataTableHead.mjs.map +1 -1
  46. package/lib/components/text-ellipsis/YTextEllipsis.mjs +61 -0
  47. package/lib/components/text-ellipsis/YTextEllipsis.mjs.map +1 -0
  48. package/lib/components/text-ellipsis/YTextEllipsis.scss +43 -0
  49. package/lib/components/text-ellipsis/index.mjs +2 -0
  50. package/lib/components/text-ellipsis/index.mjs.map +1 -0
  51. package/lib/components/tooltip/YTooltip.mjs +13 -23
  52. package/lib/components/tooltip/YTooltip.mjs.map +1 -1
  53. package/lib/components/tree-view/YTreeView.mjs.map +1 -1
  54. package/lib/components/tree-view/YTreeViewNode.mjs.map +1 -1
  55. package/lib/composables/icon.mjs.map +1 -1
  56. package/package.json +6 -10
  57. package/types/components/alert/YAlert.d.ts +1 -1
  58. package/types/components/app/YApp.d.ts +1 -1
  59. package/types/components/badge/YBadge.d.ts +2 -2
  60. package/types/components/button/YButton.d.ts +1 -1
  61. package/types/components/card/YCard.d.ts +1 -1
  62. package/types/components/card/YCardBody.d.ts +1 -1
  63. package/types/components/card/YCardFooter.d.ts +1 -1
  64. package/types/components/card/YCardHeader.d.ts +1 -1
  65. package/types/components/checkbox/YCheckbox.d.ts +3 -3
  66. package/types/components/checkbox/YInputCheckbox.d.ts +3 -3
  67. package/types/components/chip/YChip.d.ts +1 -1
  68. package/types/components/date-picker/YDateCalendar.d.ts +1 -1
  69. package/types/components/date-picker/YDatePicker.d.ts +7 -2
  70. package/types/components/date-picker/YDatePickerControl.d.ts +1 -1
  71. package/types/components/date-picker/YMonthPicker.d.ts +1 -1
  72. package/types/components/date-picker/YYearPicker.d.ts +1 -1
  73. package/types/components/dialog/YDialog.d.ts +77 -43
  74. package/types/components/divider/YDivider.d.ts +1 -1
  75. package/types/components/dropdown/YDropdown.d.ts +387 -1
  76. package/types/components/field-input/YFieldInput.d.ts +16 -14
  77. package/types/components/form/YForm.d.ts +2 -2
  78. package/types/components/icon/YIcon.d.ts +1 -1
  79. package/types/components/icons/YIconCheckbox.d.ts +1 -1
  80. package/types/components/icons/YIconClear.d.ts +1 -1
  81. package/types/components/icons/YIconDropdown.d.ts +1 -1
  82. package/types/components/icons/YIconExpand.d.ts +1 -1
  83. package/types/components/icons/YIconPageControl.d.ts +1 -1
  84. package/types/components/icons/YIconSort.d.ts +1 -1
  85. package/types/components/icons/index.d.ts +8 -8
  86. package/types/components/index.d.ts +1 -0
  87. package/types/components/input/YInput.d.ts +11 -9
  88. package/types/components/layer/YLayer.d.ts +69 -35
  89. package/types/components/layer/base.d.ts +1 -0
  90. package/types/components/list/YList.d.ts +1 -1
  91. package/types/components/list/YListItem.d.ts +1 -1
  92. package/types/components/loading/YSpinnerRing.d.ts +1 -1
  93. package/types/components/menu/YMenu.d.ts +70 -36
  94. package/types/components/pagination/YPagination.d.ts +2 -2
  95. package/types/components/panel/YDividePanel.d.ts +1 -1
  96. package/types/components/plate/YPlate.d.ts +1 -1
  97. package/types/components/progress-bar/YProgressBar.d.ts +1 -1
  98. package/types/components/select/YSelect.d.ts +4790 -3589
  99. package/types/components/snackbar/YSnackbar.d.ts +2 -2
  100. package/types/components/switch/YSwitch.d.ts +2 -2
  101. package/types/components/tab/YTab.d.ts +1 -1
  102. package/types/components/tab/YTabs.d.ts +1 -1
  103. package/types/components/table/YDataTable.d.ts +2 -2
  104. package/types/components/table/YDataTableBody.d.ts +1 -1
  105. package/types/components/table/YDataTableCell.d.ts +1 -1
  106. package/types/components/table/YDataTableControl.d.ts +1 -1
  107. package/types/components/table/YDataTableHead.d.ts +1 -1
  108. package/types/components/table/YDataTableLayer.d.ts +1 -1
  109. package/types/components/table/YDataTableRow.d.ts +1 -1
  110. package/types/components/table/YDataTableServer.d.ts +1 -1
  111. package/types/components/table/YTable.d.ts +1 -1
  112. package/types/components/text-ellipsis/YTextEllipsis.d.ts +14 -0
  113. package/types/components/text-ellipsis/index.d.ts +1 -0
  114. package/types/components/text-highlighter/YTextHighlighter.d.ts +1 -1
  115. package/types/components/textarea/YTextarea.d.ts +181 -232
  116. package/types/components/tooltip/YTooltip.d.ts +1883 -39
  117. package/types/components/transitions/expand-transition.d.ts +1 -1
  118. package/types/components/transitions/index.d.ts +2 -2
  119. package/types/components/tree-view/YTreeView.d.ts +5 -5
  120. package/types/components/tree-view/YTreeViewNode.d.ts +1 -1
  121. package/types/composables/coordinate/index.d.ts +67 -34
  122. package/types/composables/icon.d.ts +2 -2
  123. package/types/composables/theme/index.d.ts +1 -1
  124. package/types/composables/validation.d.ts +4 -4
  125. package/types/globals.d.ts +14 -10
@@ -1 +1 @@
1
- {"version":3,"file":"YIconDropdown.mjs","names":["defineComponent","YIconDropdown","name","setup","_createVNode"],"sources":["../../../src/components/icons/YIconDropdown.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\n\nexport const YIconDropdown = defineComponent({\n name: 'YIconDropdown',\n setup() {\n return () => (\n <svg version=\"1.1\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7,10L12,15L17,10H7Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n },\n});\n"],"mappings":";AAAA,SAASA,eAAe,QAAQ,KAAK;AAErC,OAAO,MAAMC,aAAa,GAAGD,eAAe,CAAC;EAC3CE,IAAI,EAAE,eAAe;EACrBC,KAAKA,CAAA,EAAG;IACN,OAAO,MAAAC,YAAA;MAAA,WACQ,KAAK;MAAA,WAAS,WAAW;MAAA,SAAO;IAA4B,IAAAA,YAAA;MAAA,KAEnE,sBAAsB;MAAA,QACnB;IAAc,UAGxB;EACH;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YIconDropdown.mjs","names":["defineComponent","YIconDropdown","name","setup","_createVNode"],"sources":["../../../src/components/icons/YIconDropdown.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\n\nexport const YIconDropdown = defineComponent({\n name: 'YIconDropdown',\n setup() {\n return () => (\n <svg version=\"1.1\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7,10L12,15L17,10H7Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n },\n});\n"],"mappings":";AAAA,SAASA,eAAe,QAAQ,KAAK;AAErC,OAAO,MAAMC,aAAa,GAAGD,eAAe,CAAC;EAC3CE,IAAI,EAAE,eAAe;EACrBC,KAAKA,CAAA,EAAG;IACN,OAAO,MAAAC,YAAA;MAAA;MAAA;MAAA;IAAA,IAAAA,YAAA;MAAA;MAAA;IAAA,UAON;EACH;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"YIconExpand.mjs","names":["defineComponent","YIconExpand","name","setup","_createVNode"],"sources":["../../../src/components/icons/YIconExpand.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\r\n\r\nexport const YIconExpand = defineComponent({\r\n name: 'YIconExpand',\r\n setup() {\r\n return () => (\r\n <svg version=\"1.1\" viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"m9.6086 5.7953 13.557 10.269-13.557 10.141\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"4.1024\"\r\n />\r\n </svg>\r\n );\r\n },\r\n});\r\n"],"mappings":";AAAA,SAASA,eAAe,QAAQ,KAAK;AAErC,OAAO,MAAMC,WAAW,GAAGD,eAAe,CAAC;EACzCE,IAAI,EAAE,aAAa;EACnBC,KAAKA,CAAA,EAAG;IACN,OAAO,MAAAC,YAAA;MAAA,WACQ,KAAK;MAAA,WAAS,WAAW;MAAA,SAAO;IAA4B,IAAAA,YAAA;MAAA,KAEnE,4CAA4C;MAAA,QACzC,MAAM;MAAA,UACJ,cAAc;MAAA,kBACN,OAAO;MAAA,mBACN,OAAO;MAAA,gBACV;IAAQ,UAG1B;EACH;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YIconExpand.mjs","names":["defineComponent","YIconExpand","name","setup","_createVNode"],"sources":["../../../src/components/icons/YIconExpand.tsx"],"sourcesContent":["import { defineComponent } from 'vue';\r\n\r\nexport const YIconExpand = defineComponent({\r\n name: 'YIconExpand',\r\n setup() {\r\n return () => (\r\n <svg version=\"1.1\" viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"m9.6086 5.7953 13.557 10.269-13.557 10.141\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"4.1024\"\r\n />\r\n </svg>\r\n );\r\n },\r\n});\r\n"],"mappings":";AAAA,SAASA,eAAe,QAAQ,KAAK;AAErC,OAAO,MAAMC,WAAW,GAAGD,eAAe,CAAC;EACzCE,IAAI,EAAE,aAAa;EACnBC,KAAKA,CAAA,EAAG;IACN,OAAO,MAAAC,YAAA;MAAA;MAAA;MAAA;IAAA,IAAAA,YAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA,UAWN;EACH;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"YIconPageControl.mjs","names":["defineComponent","PageControlPaths","next","prev","last","first","YIconPageControl","name","props","type","String","default","render","_createVNode","$props"],"sources":["../../../src/components/icons/YIconPageControl.tsx"],"sourcesContent":["import { PropType, defineComponent } from 'vue';\n\nexport const PageControlPaths = {\n next: 'm12.18 23.585 7.6399-7.5489-7.4693-7.622',\n prev: 'm19.82 23.585-7.6399-7.5489 7.4693-7.622',\n last: 'm10.488 23.812 7.4981-7.7457-7.3307-7.8207m0 0zm10.856-0.075007v15.659',\n first: 'm21.512 23.812-7.4981-7.7457 7.3307-7.8207m0 0zm-10.856-0.075007v15.659',\n};\n\nexport const YIconPageControl = defineComponent({\n name: 'YIconPageControl',\n props: {\n type: {\n type: String as PropType<'next' | 'prev' | 'first' | 'last'>,\n default: 'next',\n },\n },\n render() {\n return (\n <svg version=\"1.1\" viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d={\n this.$props.type in PageControlPaths\n ? PageControlPaths[this.$props.type]\n : PageControlPaths.next\n }\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"3\"\n />\n </svg>\n );\n },\n});\n"],"mappings":";AAAA,SAAmBA,eAAe,QAAQ,KAAK;AAE/C,OAAO,MAAMC,gBAAgB,GAAG;EAC9BC,IAAI,EAAE,0CAA0C;EAChDC,IAAI,EAAE,0CAA0C;EAChDC,IAAI,EAAE,wEAAwE;EAC9EC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGN,eAAe,CAAC;EAC9CO,IAAI,EAAE,kBAAkB;EACxBC,KAAK,EAAE;IACLC,IAAI,EAAE;MACJA,IAAI,EAAEC,MAAsD;MAC5DC,OAAO,EAAE;IACX;EACF,CAAC;EACDC,MAAMA,CAAA,EAAG;IACP,OAAAC,YAAA;MAAA,WACe,KAAK;MAAA,WAAS,WAAW;MAAA,SAAO;IAA4B,IAAAA,YAAA;MAAA,KAGnE,IAAI,CAACC,MAAM,CAACL,IAAI,IAAIR,gBAAgB,GAChCA,gBAAgB,CAAC,IAAI,CAACa,MAAM,CAACL,IAAI,CAAC,GAClCR,gBAAgB,CAACC,IAAI;MAAA,QAEtB,MAAM;MAAA,UACJ,cAAc;MAAA,kBACN,OAAO;MAAA,mBACN,OAAO;MAAA,gBACV;IAAG;EAIxB;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YIconPageControl.mjs","names":["defineComponent","PageControlPaths","next","prev","last","first","YIconPageControl","name","props","type","String","default","render","_createVNode","$props"],"sources":["../../../src/components/icons/YIconPageControl.tsx"],"sourcesContent":["import { PropType, defineComponent } from 'vue';\n\nexport const PageControlPaths = {\n next: 'm12.18 23.585 7.6399-7.5489-7.4693-7.622',\n prev: 'm19.82 23.585-7.6399-7.5489 7.4693-7.622',\n last: 'm10.488 23.812 7.4981-7.7457-7.3307-7.8207m0 0zm10.856-0.075007v15.659',\n first: 'm21.512 23.812-7.4981-7.7457 7.3307-7.8207m0 0zm-10.856-0.075007v15.659',\n};\n\nexport const YIconPageControl = defineComponent({\n name: 'YIconPageControl',\n props: {\n type: {\n type: String as PropType<'next' | 'prev' | 'first' | 'last'>,\n default: 'next',\n },\n },\n render() {\n return (\n <svg version=\"1.1\" viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d={\n this.$props.type in PageControlPaths\n ? PageControlPaths[this.$props.type]\n : PageControlPaths.next\n }\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"3\"\n />\n </svg>\n );\n },\n});\n"],"mappings":";AAAA,SAAmBA,eAAe,QAAQ,KAAK;AAE/C,OAAO,MAAMC,gBAAgB,GAAG;EAC9BC,IAAI,EAAE,0CAA0C;EAChDC,IAAI,EAAE,0CAA0C;EAChDC,IAAI,EAAE,wEAAwE;EAC9EC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGN,eAAe,CAAC;EAC9CO,IAAI,EAAE,kBAAkB;EACxBC,KAAK,EAAE;IACLC,IAAI,EAAE;MACJA,IAAI,EAAEC,MAAsD;MAC5DC,OAAO,EAAE;IACX;EACF,CAAC;EACDC,MAAMA,CAAA,EAAG;IACP,OAAAC,YAAA;MAAA;MAAA;MAAA;IAAA,IAAAA,YAAA;MAAA,KAIQ,IAAI,CAACC,MAAM,CAACL,IAAI,IAAIR,gBAAgB,GAChCA,gBAAgB,CAAC,IAAI,CAACa,MAAM,CAACL,IAAI,CAAC,GAClCR,gBAAgB,CAACC,IAAI;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA;EAUnC;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"YIconSort.mjs","names":["defineComponent","YIconSort","name","props","direction","type","String","disabled","Boolean","render","_createVNode"],"sources":["../../../src/components/icons/YIconSort.tsx"],"sourcesContent":["import { PropType, defineComponent } from 'vue';\n\nimport './YIconSort.scss';\n\nexport const YIconSort = defineComponent({\n name: 'YIconSort',\n props: {\n direction: {\n type: String as PropType<'asc' | 'desc'>,\n },\n disabled: {\n type: Boolean,\n },\n },\n render() {\n return (\n <svg\n version=\"1.1\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 32 32\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class={[\n 'y-icon-sort',\n {\n 'y-icon-sort--disabled': this.disabled,\n 'y-icon-sort--asc': this.direction === 'asc',\n 'y-icon-sort--desc': this.direction === 'desc',\n },\n ]}\n >\n <path\n d=\"m8.4146 12.52 7.5489-7.6399 7.622 7.4693\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"3\"\n class=\"y-icon-sort__asc\"\n />\n <path\n d=\"m8.4146 19.48 7.5489 7.6399 7.622-7.4693\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"3\"\n class=\"y-icon-sort__desc\"\n />\n </svg>\n );\n },\n});\n"],"mappings":";AAAA,SAAmBA,eAAe,QAAQ,KAAK;AAE/C;AAEA,OAAO,MAAMC,SAAS,GAAGD,eAAe,CAAC;EACvCE,IAAI,EAAE,WAAW;EACjBC,KAAK,EAAE;IACLC,SAAS,EAAE;MACTC,IAAI,EAAEC;IACR,CAAC;IACDC,QAAQ,EAAE;MACRF,IAAI,EAAEG;IACR;EACF,CAAC;EACDC,MAAMA,CAAA,EAAG;IACP,OAAAC,YAAA;MAAA,WAEY,KAAK;MAAA,SACP,IAAI;MAAA,UACH,IAAI;MAAA,WACH,WAAW;MAAA,SACb,4BAA4B;MAAA,SAC3B,CACL,aAAa,EACb;QACE,uBAAuB,EAAE,IAAI,CAACH,QAAQ;QACtC,kBAAkB,EAAE,IAAI,CAACH,SAAS,KAAK,KAAK;QAC5C,mBAAmB,EAAE,IAAI,CAACA,SAAS,KAAK;MAC1C,CAAC;IACF,IAAAM,YAAA;MAAA,KAGG,0CAA0C;MAAA,QACvC,MAAM;MAAA,UACJ,cAAc;MAAA,kBACN,OAAO;MAAA,mBACN,OAAO;MAAA,gBACV,GAAG;MAAA,SACV;IAAkB,UAAAA,YAAA;MAAA,KAGtB,0CAA0C;MAAA,QACvC,MAAM;MAAA,UACJ,cAAc;MAAA,kBACN,OAAO;MAAA,mBACN,OAAO;MAAA,gBACV,GAAG;MAAA,SACV;IAAmB;EAIjC;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YIconSort.mjs","names":["defineComponent","YIconSort","name","props","direction","type","String","disabled","Boolean","render","_createVNode"],"sources":["../../../src/components/icons/YIconSort.tsx"],"sourcesContent":["import { PropType, defineComponent } from 'vue';\n\nimport './YIconSort.scss';\n\nexport const YIconSort = defineComponent({\n name: 'YIconSort',\n props: {\n direction: {\n type: String as PropType<'asc' | 'desc'>,\n },\n disabled: {\n type: Boolean,\n },\n },\n render() {\n return (\n <svg\n version=\"1.1\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 32 32\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class={[\n 'y-icon-sort',\n {\n 'y-icon-sort--disabled': this.disabled,\n 'y-icon-sort--asc': this.direction === 'asc',\n 'y-icon-sort--desc': this.direction === 'desc',\n },\n ]}\n >\n <path\n d=\"m8.4146 12.52 7.5489-7.6399 7.622 7.4693\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"3\"\n class=\"y-icon-sort__asc\"\n />\n <path\n d=\"m8.4146 19.48 7.5489 7.6399 7.622-7.4693\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"3\"\n class=\"y-icon-sort__desc\"\n />\n </svg>\n );\n },\n});\n"],"mappings":";AAAA,SAAmBA,eAAe,QAAQ,KAAK;AAE/C;AAEA,OAAO,MAAMC,SAAS,GAAGD,eAAe,CAAC;EACvCE,IAAI,EAAE,WAAW;EACjBC,KAAK,EAAE;IACLC,SAAS,EAAE;MACTC,IAAI,EAAEC;IACR,CAAC;IACDC,QAAQ,EAAE;MACRF,IAAI,EAAEG;IACR;EACF,CAAC;EACDC,MAAMA,CAAA,EAAG;IACP,OAAAC,YAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA,SAOW,CACL,aAAa,EACb;QACE,uBAAuB,EAAE,IAAI,CAACH,QAAQ;QACtC,kBAAkB,EAAE,IAAI,CAACH,SAAS,KAAK,KAAK;QAC5C,mBAAmB,EAAE,IAAI,CAACA,SAAS,KAAK;MAC1C,CAAC;IACF,IAAAM,YAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA,UAAAA,YAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA;EAsBP;AACF,CAAC,CAAC"}
@@ -30,4 +30,5 @@ export * from "./divider/index.mjs";
30
30
  export * from "./date-picker/index.mjs";
31
31
  export * from "./icon/index.mjs";
32
32
  export * from "./badge/index.mjs";
33
+ export * from "./text-ellipsis/index.mjs";
33
34
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
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
+ {"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';\nexport * from './text-ellipsis';\n"],"mappings":""}
@@ -196,12 +196,12 @@ export const YInput = defineComponent({
196
196
  "class": [`${NAME}`, {
197
197
  ...classes.value
198
198
  }]
199
- }, [slots.prepend ? () => _createVNode("div", {
199
+ }, [slots.prepend && _createVNode("div", {
200
200
  "class": `${NAME}__prepend`
201
- }, [_createTextVNode("slots.prepend()")]) : undefined, _createVNode("div", {
201
+ }, [slots.prepend()]), _createVNode("div", {
202
202
  "ref": stack$,
203
203
  "class": [`${NAME}__stack`]
204
- }, [!props.floating && createLabel(), _createVNode("div", {
204
+ }, [!props.floating && createLabel(), slots['leading-out'] && slots['leading-out'](), _createVNode("div", {
205
205
  "ref": display$,
206
206
  "class": `${NAME}__display`,
207
207
  "style": [{
@@ -227,15 +227,15 @@ export const YInput = defineComponent({
227
227
  "tabindex": 0,
228
228
  "onFocus": onFocus,
229
229
  "onBlur": onBlur
230
- }, [props.floating && createLabel(), props.modelValue?.toString()]), slots.trailing?.()]), _createVNode("div", {
230
+ }, [props.floating && createLabel(), props.modelValue?.toString()]), slots.trailing?.()]), slots['trailing-out'] && slots['trailing-out'](), _createVNode("div", {
231
231
  "class": `${NAME}__helper-text`
232
232
  }, [slots['helper-text'] ? _createVNode("span", null, [slots['helper-text']({
233
233
  error: isError.value,
234
234
  errors: errors.value,
235
235
  errorResult: errorResult.value
236
- })]) : props.helperText ?? errorResult.value])]), slots.append ? () => _createVNode("div", {
236
+ })]) : props.helperText ?? errorResult.value])]), slots.append && _createVNode("div", {
237
237
  "class": `${NAME}__append`
238
- }, [_createTextVNode("slots.append()")]) : undefined]);
238
+ }, [slots.append()])]);
239
239
  });
240
240
  return {
241
241
  ...(props.extended ?? {}),
@@ -1 +1 @@
1
- {"version":3,"file":"YInput.mjs","names":["computed","defineComponent","ref","shallowRef","watch","useRender","pressFocusPropsOptions","useFocus","pressThemePropsOptions","useLocalTheme","pressValidationPropsOptions","useValidation","getUid","toStyleSizeValue","propsFactory","NAME","uidCounter","pressYInputPropsOptions","name","String","width","type","Number","height","displayTag","default","label","modelValue","Array","Object","autoSelect","Boolean","floating","floated","placeholder","required","loading","variation","outlined","filled","ceramic","extended","YInput","props","emits","slots","setup","_ref","attrs","expose","emit","UID","themeClasses","focused","isFocused","focusedClasses","whenFocus","whenBlur","isDisabled","isReadonly","isLoading","invokeValidators","isError","isSuccess","errors","errorResult","stack$","display$","inValue","lazyValue","hasMouseDown","variations","split","map","value","trim","isFloatedLabel","classes","includes","displayStyles","neo","readonly","onClick","event","onMousedown","e","onMouseup","onFocus","onBlur","onClickLeading","onChange","createLabel","show","undefined","_createVNode","_Fragment","_createTextVNode","validate","prepend","leading","error","attrId","toString","trailing","helperText","append"],"sources":["../../../src/components/input/YInput.tsx"],"sourcesContent":["import {\n PropType,\n SlotsType,\n VNode,\n computed,\n defineComponent,\n ref,\n shallowRef,\n watch,\n} from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { pressFocusPropsOptions, useFocus } from '../../composables/focus';\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\nimport {\n pressValidationPropsOptions,\n useValidation,\n} from '../../composables/validation';\nimport { getUid, toStyleSizeValue } from '../../util';\nimport { propsFactory } from '../../util/vue-component';\n\nimport './YInput.scss';\n\nconst NAME = 'y-input';\nlet uidCounter = 0;\n\nexport const pressYInputPropsOptions = propsFactory(\n {\n name: String,\n width: {\n type: [String, Number] as PropType<string | number>,\n },\n height: [Number, String],\n displayTag: {\n type: String as PropType<string>,\n default: 'div',\n },\n label: String as PropType<string>,\n modelValue: { type: [String, Number, Array, Object] as PropType<any> },\n autoSelect: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n floating: { type: Boolean as PropType<boolean>, default: false },\n floated: { type: Boolean as PropType<boolean>, default: () => false },\n placeholder: String as PropType<string>,\n required: Boolean as PropType<boolean>,\n loading: Boolean as PropType<boolean>,\n // variations\n variation: String as PropType<string>,\n outlined: Boolean as PropType<boolean>,\n filled: Boolean as PropType<boolean>,\n ceramic: Boolean as PropType<boolean>,\n // validate\n ...pressValidationPropsOptions(),\n ...pressFocusPropsOptions(),\n extended: Object as PropType<any>,\n },\n 'YInput',\n);\n\nexport interface YInputDefaultSlotProps {\n value: any;\n loading: boolean;\n attrId: string;\n}\n\nexport const YInput = defineComponent({\n name: 'YInput',\n props: {\n ...pressThemePropsOptions(),\n ...pressYInputPropsOptions(),\n },\n emits: [\n 'error',\n 'click',\n 'mousedown',\n 'mouseup',\n 'focus',\n 'blur',\n 'mousedown:display',\n 'mouseup:display',\n 'click:leading',\n 'update:modelValue',\n 'update:focused',\n ],\n slots: Object as SlotsType<{\n prepend: any;\n append: any;\n label: any;\n default: YInputDefaultSlotProps;\n leading: { error: boolean };\n trailing: any;\n 'helper-text': {\n error: boolean;\n errorResult: string | undefined;\n errors: any[];\n };\n }>,\n setup(props, { slots, attrs, expose, emit }) {\n const UID = getUid();\n const { themeClasses } = useLocalTheme(props);\n const {\n focused: isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n } = useFocus(props, 'y-input');\n\n const {\n isDisabled,\n isReadonly,\n isLoading,\n invokeValidators,\n isError,\n isSuccess,\n errors,\n errorResult,\n } = useValidation(props, NAME, UID);\n\n const stack$ = ref();\n const display$ = ref();\n\n const inValue = ref();\n const lazyValue = ref();\n const hasMouseDown = shallowRef(false);\n\n const variations = computed(() => {\n if (props.variation) {\n return props.variation.split(',').map((value) => {\n return value.trim();\n });\n }\n return [];\n });\n\n const isFloatedLabel = computed(() => {\n return (\n props.floated ||\n !!props.placeholder ||\n (!props.placeholder && isFocused.value) ||\n !!inValue.value\n );\n });\n\n const classes = computed(() => {\n return {\n // Style\n [themeClasses.value as string]: true,\n 'y-input--ceramic': !!props.ceramic,\n 'y-input--outlined':\n !props.ceramic &&\n (variations.value.includes('outlined') || !!props.outlined),\n 'y-input--filled':\n variations.value.includes('filled') || !!props.filled,\n // Value\n 'y-input--loading': isLoading.value,\n 'y-input--has-value': !!inValue.value,\n 'y-input--focused': isFocused.value,\n 'y-input--readonly': isReadonly.value,\n 'y-input--disabled': isDisabled.value,\n 'y-input--error': isError.value,\n 'y-input--success': isSuccess.value,\n };\n });\n\n const displayStyles = computed<Record<string, any>>(() => {\n return {\n width: toStyleSizeValue(props.width),\n height: toStyleSizeValue(props.height),\n };\n });\n\n watch(\n () => props.modelValue,\n (neo) => {\n inValue.value = neo;\n },\n );\n\n watch(\n () => props.readonly,\n (neo) => {\n if (!neo) {\n inValue.value = props.modelValue;\n }\n },\n );\n\n watch(inValue, (neo) => {\n if (!isReadonly.value && !isLoading.value) {\n emit('update:modelValue', neo);\n }\n });\n\n watch(isError, (neo) => {\n emit('error', neo, errors.value);\n });\n\n watch(\n () => props.focused,\n (neo) => {\n if (!neo) {\n invokeValidators();\n }\n },\n );\n\n function onClick(event: MouseEvent) {\n emit('click', event);\n }\n\n function onMousedown(e: Event) {\n hasMouseDown.value = true;\n emit('mousedown:display', e);\n }\n\n function onMouseup(e: Event) {\n hasMouseDown.value = false;\n emit('mouseup:display', e);\n }\n\n function onFocus(event: FocusEvent) {\n whenFocus();\n emit('focus', event);\n }\n\n function onBlur(event: FocusEvent) {\n whenBlur();\n invokeValidators();\n emit('blur', event);\n }\n\n function onClickLeading(event: MouseEvent) {\n emit('click:leading', event);\n }\n\n function onChange(event?: Event) {\n invokeValidators();\n }\n\n function createLabel(): VNode | undefined {\n const show = !!props.label || !!slots.label;\n if (!show) {\n return undefined;\n }\n return (\n <label\n class={[\n {\n [`${NAME}__label`]: true,\n 'y-input__floating-label': props.floating,\n 'y-input__floating-label--floated':\n props.floating && isFloatedLabel.value,\n },\n ]}\n for={`y-input--${UID}`}\n >\n {slots.label ? (\n slots.label()\n ) : props.label ? (\n <>\n {props.label}\n {props.required && (\n <span class={'y-input__required-mark'}>*</span>\n )}\n </>\n ) : (\n props.placeholder && !inValue.value && props.placeholder\n )}\n </label>\n );\n }\n\n expose({\n ...(props.extended ?? {}),\n createLabel,\n invokeValidators,\n validate: invokeValidators,\n });\n\n useRender(() => {\n return (\n <div class={[`${NAME}`, { ...classes.value }]}>\n {slots.prepend\n ? () => <div class={`${NAME}__prepend`}>slots.prepend()</div>\n : undefined}\n <div ref={stack$} class={[`${NAME}__stack`]}>\n {!props.floating && createLabel()}\n <div\n ref={display$}\n class={`${NAME}__display`}\n style={[{ ...displayStyles.value }]}\n onClick={onClick}\n onMousedown={onMousedown}\n onMouseup={onMouseup}\n >\n <div class={`${NAME}__plate`}></div>\n {slots.leading && (\n <div class={'y-input__leading'} onClick={onClickLeading}>\n {slots.leading({ error: isError.value })}\n </div>\n )}\n {slots.default ? (\n slots.default({\n value: props.modelValue,\n loading: isLoading.value,\n attrId: `y-input--${UID}`,\n })\n ) : (\n <div\n class={`${NAME}__value`}\n data-id={`y-input--${UID}`}\n tabindex={0}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n {props.floating && createLabel()}\n {props.modelValue?.toString()}\n </div>\n )}\n {slots.trailing?.()}\n </div>\n <div class={`${NAME}__helper-text`}>\n {slots['helper-text'] ? (\n <span>\n {slots['helper-text']({\n error: isError.value,\n errors: errors.value,\n errorResult: errorResult.value,\n })}\n </span>\n ) : (\n props.helperText ?? errorResult.value\n )}\n </div>\n </div>\n {slots.append\n ? () => <div class={`${NAME}__append`}>slots.append()</div>\n : undefined}\n </div>\n );\n });\n\n return {\n ...(props.extended ?? {}),\n themeClasses,\n isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n createLabel,\n invokeValidators,\n };\n },\n});\n\nexport type YInput = InstanceType<typeof YInput>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YInput.mjs","names":["computed","defineComponent","ref","shallowRef","watch","useRender","pressFocusPropsOptions","useFocus","pressThemePropsOptions","useLocalTheme","pressValidationPropsOptions","useValidation","getUid","toStyleSizeValue","propsFactory","NAME","uidCounter","pressYInputPropsOptions","name","String","width","type","Number","height","displayTag","default","label","modelValue","Array","Object","autoSelect","Boolean","floating","floated","placeholder","required","loading","variation","outlined","filled","ceramic","extended","YInput","props","emits","slots","setup","_ref","attrs","expose","emit","UID","themeClasses","focused","isFocused","focusedClasses","whenFocus","whenBlur","isDisabled","isReadonly","isLoading","invokeValidators","isError","isSuccess","errors","errorResult","stack$","display$","inValue","lazyValue","hasMouseDown","variations","split","map","value","trim","isFloatedLabel","classes","includes","displayStyles","neo","readonly","onClick","event","onMousedown","e","onMouseup","onFocus","onBlur","onClickLeading","onChange","createLabel","show","undefined","_createVNode","_Fragment","_createTextVNode","validate","prepend","leading","error","attrId","toString","trailing","helperText","append"],"sources":["../../../src/components/input/YInput.tsx"],"sourcesContent":["import {\n PropType,\n SlotsType,\n VNode,\n computed,\n defineComponent,\n ref,\n shallowRef,\n watch,\n} from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { pressFocusPropsOptions, useFocus } from '../../composables/focus';\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\nimport {\n pressValidationPropsOptions,\n useValidation,\n} from '../../composables/validation';\nimport { getUid, toStyleSizeValue } from '../../util';\nimport { propsFactory } from '../../util/vue-component';\n\nimport './YInput.scss';\n\nconst NAME = 'y-input';\nlet uidCounter = 0;\n\nexport const pressYInputPropsOptions = propsFactory(\n {\n name: String,\n width: {\n type: [String, Number] as PropType<string | number>,\n },\n height: [Number, String],\n displayTag: {\n type: String as PropType<string>,\n default: 'div',\n },\n label: String as PropType<string>,\n modelValue: { type: [String, Number, Array, Object] as PropType<any> },\n autoSelect: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n floating: { type: Boolean as PropType<boolean>, default: false },\n floated: { type: Boolean as PropType<boolean>, default: () => false },\n placeholder: String as PropType<string>,\n required: Boolean as PropType<boolean>,\n loading: Boolean as PropType<boolean>,\n // variations\n variation: String as PropType<string>,\n outlined: Boolean as PropType<boolean>,\n filled: Boolean as PropType<boolean>,\n ceramic: Boolean as PropType<boolean>,\n // validate\n ...pressValidationPropsOptions(),\n ...pressFocusPropsOptions(),\n extended: Object as PropType<any>,\n },\n 'YInput',\n);\n\nexport interface YInputDefaultSlotProps {\n value: any;\n loading: boolean;\n attrId: string;\n}\n\nexport const YInput = defineComponent({\n name: 'YInput',\n props: {\n ...pressThemePropsOptions(),\n ...pressYInputPropsOptions(),\n },\n emits: [\n 'error',\n 'click',\n 'mousedown',\n 'mouseup',\n 'focus',\n 'blur',\n 'mousedown:display',\n 'mouseup:display',\n 'click:leading',\n 'update:modelValue',\n 'update:focused',\n ],\n slots: Object as SlotsType<{\n prepend: any;\n append: any;\n label: any;\n default: YInputDefaultSlotProps;\n leading: { error: boolean };\n trailing: any;\n 'leading-out': any;\n 'trailing-out': any;\n 'helper-text': {\n error: boolean;\n errorResult: string | undefined;\n errors: any[];\n };\n }>,\n setup(props, { slots, attrs, expose, emit }) {\n const UID = getUid();\n const { themeClasses } = useLocalTheme(props);\n const {\n focused: isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n } = useFocus(props, 'y-input');\n\n const {\n isDisabled,\n isReadonly,\n isLoading,\n invokeValidators,\n isError,\n isSuccess,\n errors,\n errorResult,\n } = useValidation(props, NAME, UID);\n\n const stack$ = ref();\n const display$ = ref();\n\n const inValue = ref();\n const lazyValue = ref();\n const hasMouseDown = shallowRef(false);\n\n const variations = computed(() => {\n if (props.variation) {\n return props.variation.split(',').map((value) => {\n return value.trim();\n });\n }\n return [];\n });\n\n const isFloatedLabel = computed(() => {\n return (\n props.floated ||\n !!props.placeholder ||\n (!props.placeholder && isFocused.value) ||\n !!inValue.value\n );\n });\n\n const classes = computed(() => {\n return {\n // Style\n [themeClasses.value as string]: true,\n 'y-input--ceramic': !!props.ceramic,\n 'y-input--outlined':\n !props.ceramic &&\n (variations.value.includes('outlined') || !!props.outlined),\n 'y-input--filled':\n variations.value.includes('filled') || !!props.filled,\n // Value\n 'y-input--loading': isLoading.value,\n 'y-input--has-value': !!inValue.value,\n 'y-input--focused': isFocused.value,\n 'y-input--readonly': isReadonly.value,\n 'y-input--disabled': isDisabled.value,\n 'y-input--error': isError.value,\n 'y-input--success': isSuccess.value,\n };\n });\n\n const displayStyles = computed<Record<string, any>>(() => {\n return {\n width: toStyleSizeValue(props.width),\n height: toStyleSizeValue(props.height),\n };\n });\n\n watch(\n () => props.modelValue,\n (neo) => {\n inValue.value = neo;\n },\n );\n\n watch(\n () => props.readonly,\n (neo) => {\n if (!neo) {\n inValue.value = props.modelValue;\n }\n },\n );\n\n watch(inValue, (neo) => {\n if (!isReadonly.value && !isLoading.value) {\n emit('update:modelValue', neo);\n }\n });\n\n watch(isError, (neo) => {\n emit('error', neo, errors.value);\n });\n\n watch(\n () => props.focused,\n (neo) => {\n if (!neo) {\n invokeValidators();\n }\n },\n );\n\n function onClick(event: MouseEvent) {\n emit('click', event);\n }\n\n function onMousedown(e: Event) {\n hasMouseDown.value = true;\n emit('mousedown:display', e);\n }\n\n function onMouseup(e: Event) {\n hasMouseDown.value = false;\n emit('mouseup:display', e);\n }\n\n function onFocus(event: FocusEvent) {\n whenFocus();\n emit('focus', event);\n }\n\n function onBlur(event: FocusEvent) {\n whenBlur();\n invokeValidators();\n emit('blur', event);\n }\n\n function onClickLeading(event: MouseEvent) {\n emit('click:leading', event);\n }\n\n function onChange(event?: Event) {\n invokeValidators();\n }\n\n function createLabel(): VNode | undefined {\n const show = !!props.label || !!slots.label;\n if (!show) {\n return undefined;\n }\n return (\n <label\n class={[\n {\n [`${NAME}__label`]: true,\n 'y-input__floating-label': props.floating,\n 'y-input__floating-label--floated':\n props.floating && isFloatedLabel.value,\n },\n ]}\n for={`y-input--${UID}`}\n >\n {slots.label ? (\n slots.label()\n ) : props.label ? (\n <>\n {props.label}\n {props.required && (\n <span class={'y-input__required-mark'}>*</span>\n )}\n </>\n ) : (\n props.placeholder && !inValue.value && props.placeholder\n )}\n </label>\n );\n }\n\n expose({\n ...(props.extended ?? {}),\n createLabel,\n invokeValidators,\n validate: invokeValidators,\n });\n\n useRender(() => {\n return (\n <div class={[`${NAME}`, { ...classes.value }]}>\n {slots.prepend && (\n <div class={`${NAME}__prepend`}>{slots.prepend()}</div>\n )}\n <div ref={stack$} class={[`${NAME}__stack`]}>\n {!props.floating && createLabel()}\n {slots['leading-out'] && slots['leading-out']()}\n <div\n ref={display$}\n class={`${NAME}__display`}\n style={[{ ...displayStyles.value }]}\n onClick={onClick}\n onMousedown={onMousedown}\n onMouseup={onMouseup}\n >\n <div class={`${NAME}__plate`}></div>\n {slots.leading && (\n <div class={'y-input__leading'} onClick={onClickLeading}>\n {slots.leading({ error: isError.value })}\n </div>\n )}\n {slots.default ? (\n slots.default({\n value: props.modelValue,\n loading: isLoading.value,\n attrId: `y-input--${UID}`,\n })\n ) : (\n <div\n class={`${NAME}__value`}\n data-id={`y-input--${UID}`}\n tabindex={0}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n {props.floating && createLabel()}\n {props.modelValue?.toString()}\n </div>\n )}\n {slots.trailing?.()}\n </div>\n {slots['trailing-out'] && slots['trailing-out']()}\n <div class={`${NAME}__helper-text`}>\n {slots['helper-text'] ? (\n <span>\n {slots['helper-text']({\n error: isError.value,\n errors: errors.value,\n errorResult: errorResult.value,\n })}\n </span>\n ) : (\n props.helperText ?? errorResult.value\n )}\n </div>\n </div>\n {slots.append && (\n <div class={`${NAME}__append`}>{slots.append()}</div>\n )}\n </div>\n );\n });\n\n return {\n ...(props.extended ?? {}),\n themeClasses,\n isFocused,\n focusedClasses,\n whenFocus,\n whenBlur,\n createLabel,\n invokeValidators,\n };\n },\n});\n\nexport type YInput = InstanceType<typeof YInput>;\n"],"mappings":"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"}
@@ -21,8 +21,6 @@ $input-border-radius: variables.$border-radius-root !default;
21
21
  }
22
22
 
23
23
  &__stack {
24
- display: flex;
25
- flex-direction: column;
26
24
  height: 100%; // auto
27
25
  flex: 1;
28
26
  flex-wrap: wrap;
@@ -31,7 +29,7 @@ $input-border-radius: variables.$border-radius-root !default;
31
29
  }
32
30
 
33
31
  &__display {
34
- display: flex;
32
+ display: inline-flex;
35
33
  position: relative;
36
34
  cursor: text;
37
35
  flex: 1 1 auto;
@@ -93,6 +91,7 @@ $input-border-radius: variables.$border-radius-root !default;
93
91
  }
94
92
 
95
93
  &__label {
94
+ display: block;
96
95
  color: var(--y-input-label-color);
97
96
  padding-bottom: 4px;
98
97
  font-weight: 500;
@@ -96,7 +96,8 @@ export const YLayer = defineComponent({
96
96
  base,
97
97
  base$,
98
98
  baseEl,
99
- baseSlot
99
+ baseSlot,
100
+ baseFromSlotEl
100
101
  } = useBase(props);
101
102
  const {
102
103
  themeClasses
@@ -285,6 +286,7 @@ export const YLayer = defineComponent({
285
286
  content$,
286
287
  base$,
287
288
  baseEl,
289
+ baseFromSlotEl,
288
290
  polyTransitionBindProps,
289
291
  coordinateStyles,
290
292
  layerGroupState,
@@ -1 +1 @@
1
- {"version":3,"file":"YLayer.mjs","names":["Teleport","Transition","computed","defineComponent","getCurrentInstance","mergeProps","reactive","ref","shallowRef","toRef","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","polyTransitionPropOptions","usePolyTransition","ComplementClick","bindClasses","propsFactory","pressBasePropsOptions","useBase","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","openOnHover","openDelay","closeDelay","zIndex","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","slots","setup","_ref","emit","expose","attrs","vm","scrim$","content$","base","base$","baseEl","baseSlot","themeClasses","layerGroup","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","active","get","set","v","finish","hovered","lazyValue","onAfterUpdate","rendered","coordinateStyles","updateCoordinate","contentEl","onClickComplementLayer","target","closeConditional","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","onMouseenter","event","onMouseleave","computedStyle","toString","computedClass","boundClasses","computedContentClasses","isMe","vnode","slotBase","class","_createVNode","_Fragment","_mergeProps","_withDirectives","_vShow","_resolveDirective"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type {\r\n CSSProperties,\r\n ComponentInternalInstance,\r\n PropType,\r\n SlotsType,\r\n} from 'vue';\r\nimport {\r\n Teleport,\r\n Transition,\r\n computed,\r\n defineComponent,\r\n getCurrentInstance,\r\n mergeProps,\r\n reactive,\r\n ref,\r\n shallowRef,\r\n toRef,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport {\r\n pressCoordinateProps,\r\n useCoordinate,\r\n} from '../../composables/coordinate';\r\nimport {\r\n pressDimensionPropsOptions,\r\n useDimension,\r\n} from '../../composables/dimension';\r\nimport { useLayerGroup } from '../../composables/layer-group';\r\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\r\nimport { useLazy } from '../../composables/timing';\r\nimport {\r\n PolyTransition,\r\n polyTransitionPropOptions,\r\n usePolyTransition,\r\n} from '../../composables/transition';\r\nimport {\r\n ComplementClick,\r\n ComplementClickBindingOptions,\r\n} from '../../directives/complement-click';\r\nimport { bindClasses, propsFactory } from '../../util/vue-component';\r\n\r\nimport './YLayer.scss';\r\nimport { pressBasePropsOptions, useBase } from './base';\r\n\r\nexport const pressYLayerProps = propsFactory(\r\n {\r\n modelValue: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n scrim: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n scrimOpacity: {\r\n type: Number as PropType<number>,\r\n },\r\n eager: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n classes: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n contentClasses: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n closeClickScrim: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n contentStyles: {\r\n type: Object as PropType<CSSProperties>,\r\n default: () => {},\r\n },\r\n disabled: {\r\n type: Boolean as PropType<boolean>,\r\n default: false,\r\n },\r\n openOnHover: {\r\n type: Boolean as PropType<boolean>,\r\n default: false,\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 zIndex: {\r\n type: [Number, String] as PropType<number | string>,\r\n default: 2000,\r\n },\r\n ...pressThemePropsOptions(),\r\n ...polyTransitionPropOptions,\r\n ...pressBasePropsOptions(),\r\n ...pressCoordinateProps(),\r\n ...pressDimensionPropsOptions(),\r\n },\r\n 'YLayer',\r\n);\r\n\r\nexport const YLayer = defineComponent({\r\n name: 'YLayer',\r\n inheritAttrs: false,\r\n components: {\r\n PolyTransition,\r\n },\r\n directives: {\r\n ComplementClick,\r\n },\r\n props: {\r\n modal: Boolean as PropType<boolean>,\r\n ...pressYLayerProps(),\r\n },\r\n emits: {\r\n 'update:modelValue': (value: boolean) => true,\r\n 'click:complement': (mouseEvent: MouseEvent) => true,\r\n afterLeave: () => true,\r\n },\r\n slots: Object as SlotsType<{\r\n base: any;\r\n default: any;\r\n }>,\r\n setup(props, { emit, expose, attrs, slots }) {\r\n const vm = getCurrentInstance();\r\n\r\n const scrim$ = ref<HTMLElement>();\r\n const content$ = ref<HTMLElement>();\r\n\r\n const { base, base$, baseEl, baseSlot } = useBase(props);\r\n\r\n const { themeClasses } = useLocalTheme(props);\r\n const { layerGroup, layerGroupState, getActiveLayers } = useLayerGroup();\r\n const { polyTransitionBindProps } = usePolyTransition(props);\r\n const { dimensionStyles } = useDimension(props);\r\n const active = computed<boolean>({\r\n get: (): boolean => {\r\n return !!props.modelValue;\r\n },\r\n set: (v: boolean) => {\r\n emit('update:modelValue', v);\r\n },\r\n });\r\n const finish = shallowRef(false);\r\n const hovered = ref(false);\r\n\r\n const disabled = toRef(props, 'disabled');\r\n const { lazyValue, onAfterUpdate } = useLazy(toRef(props, 'eager'), active);\r\n const rendered = computed<boolean>(\r\n () => !disabled.value && (lazyValue.value || active.value),\r\n );\r\n\r\n const { coordinateStyles, updateCoordinate } = useCoordinate(props, {\r\n contentEl: content$,\r\n base,\r\n active,\r\n });\r\n\r\n function onClickComplementLayer(mouseEvent: MouseEvent) {\r\n emit('click:complement', mouseEvent);\r\n if (!props.modal) {\r\n if (\r\n scrim$.value !== null &&\r\n scrim$.value === mouseEvent.target &&\r\n props.closeClickScrim\r\n ) {\r\n active.value = false;\r\n }\r\n } else {\r\n // TODO: shrug ani\r\n }\r\n }\r\n\r\n function closeConditional(): boolean {\r\n return (\r\n (!props.openOnHover || (props.openOnHover && !hovered.value)) &&\r\n active.value && finish.value\r\n ); // TODO: && groupTopLevel.value;\r\n }\r\n\r\n const complementClickOption = reactive<ComplementClickBindingOptions>({\r\n handler: onClickComplementLayer,\r\n determine: closeConditional,\r\n include: () => [baseEl.value],\r\n });\r\n\r\n function onAfterEnter() {\r\n finish.value = true;\r\n }\r\n\r\n function onAfterLeave() {\r\n onAfterUpdate();\r\n finish.value = false;\r\n emit('afterLeave');\r\n }\r\n\r\n function onClickScrim() {\r\n if (props.closeClickScrim) {\r\n active.value = false;\r\n }\r\n }\r\n\r\n function onMouseenter(event: Event) {\r\n hovered.value = true;\r\n }\r\n\r\n function onMouseleave(event: Event) {\r\n hovered.value = false;\r\n }\r\n\r\n const computedStyle = computed(() => {\r\n return {\r\n zIndex: (props.zIndex ?? '2000').toString(),\r\n };\r\n });\r\n\r\n const computedClass = computed<Record<string, boolean>>(() => {\r\n const { classes } = props;\r\n const boundClasses = bindClasses(classes);\r\n return {\r\n ...boundClasses,\r\n 'y-layer--active': !!active.value,\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 expose({\r\n scrim$,\r\n base$,\r\n content$: computed(() => content$.value),\r\n baseEl,\r\n active,\r\n onAfterUpdate,\r\n updateCoordinate,\r\n hovered,\r\n finish,\r\n modal: computed(() => props.modal),\r\n getActiveLayers,\r\n isMe: (vnode: ComponentInternalInstance) => {\r\n return vnode === vm;\r\n },\r\n });\r\n\r\n useRender(() => {\r\n const slotBase = slots.base?.({\r\n active: active.value,\r\n props: mergeProps({\r\n ref: base$,\r\n class: {\r\n 'y-layer-base': true,\r\n 'y-layer-base--active': active.value,\r\n },\r\n }),\r\n });\r\n baseSlot.value = slotBase;\r\n return (\r\n <>\r\n {slotBase}\r\n <Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\r\n {rendered.value && (\r\n <div\r\n class={{\r\n 'y-layer': true,\r\n 'y-layer--finish': finish.value,\r\n ...computedClass.value,\r\n [themeClasses.value ?? '']: true,\r\n }}\r\n onMouseenter={onMouseenter}\r\n onMouseleave={onMouseleave}\r\n style={computedStyle.value}\r\n {...attrs}\r\n >\r\n <Transition name=\"fade\" appear>\r\n {active.value && props.scrim && (\r\n <div\r\n class=\"y-layer__scrim\"\r\n style={{ '--y-layer-scrim-opacity': props.scrimOpacity }}\r\n onClick={onClickScrim}\r\n ref=\"scrim$\"\r\n ></div>\r\n )}\r\n </Transition>\r\n <PolyTransition\r\n onAfterEnter={onAfterEnter}\r\n onAfterLeave={onAfterLeave}\r\n appear\r\n {...polyTransitionBindProps.value}\r\n >\r\n <div\r\n v-show={active.value}\r\n v-complement-click={{ ...complementClickOption }}\r\n class={{\r\n 'y-layer__content': true,\r\n ...computedContentClasses.value,\r\n }}\r\n style={[\r\n {\r\n ...dimensionStyles.value,\r\n ...coordinateStyles.value,\r\n ...props.contentStyles,\r\n },\r\n ]}\r\n ref={content$}\r\n >\r\n {slots.default?.({ active: active.value })}\r\n </div>\r\n </PolyTransition>\r\n </div>\r\n )}\r\n </Teleport>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n complementClickOption,\r\n layerGroup,\r\n active,\r\n finish,\r\n rendered,\r\n lazyValue,\r\n onAfterUpdate: onAfterUpdate as () => void,\r\n scrim$,\r\n content$,\r\n base$,\r\n baseEl,\r\n polyTransitionBindProps,\r\n coordinateStyles,\r\n layerGroupState,\r\n getActiveLayers,\r\n };\r\n },\r\n});\r\n\r\nexport type YLayer = InstanceType<typeof YLayer>;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"YLayer.mjs","names":["Teleport","Transition","computed","defineComponent","getCurrentInstance","mergeProps","reactive","ref","shallowRef","toRef","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","polyTransitionPropOptions","usePolyTransition","ComplementClick","bindClasses","propsFactory","pressBasePropsOptions","useBase","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","openOnHover","openDelay","closeDelay","zIndex","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","slots","setup","_ref","emit","expose","attrs","vm","scrim$","content$","base","base$","baseEl","baseSlot","baseFromSlotEl","themeClasses","layerGroup","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","active","get","set","v","finish","hovered","lazyValue","onAfterUpdate","rendered","coordinateStyles","updateCoordinate","contentEl","onClickComplementLayer","target","closeConditional","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","onMouseenter","event","onMouseleave","computedStyle","toString","computedClass","boundClasses","computedContentClasses","isMe","vnode","slotBase","class","_createVNode","_Fragment","_mergeProps","_withDirectives","_vShow","_resolveDirective"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type {\r\n CSSProperties,\r\n ComponentInternalInstance,\r\n PropType,\r\n SlotsType,\r\n} from 'vue';\r\nimport {\r\n Teleport,\r\n Transition,\r\n computed,\r\n defineComponent,\r\n getCurrentInstance,\r\n mergeProps,\r\n reactive,\r\n ref,\r\n shallowRef,\r\n toRef,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport {\r\n pressCoordinateProps,\r\n useCoordinate,\r\n} from '../../composables/coordinate';\r\nimport {\r\n pressDimensionPropsOptions,\r\n useDimension,\r\n} from '../../composables/dimension';\r\nimport { useLayerGroup } from '../../composables/layer-group';\r\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\r\nimport { useLazy } from '../../composables/timing';\r\nimport {\r\n PolyTransition,\r\n polyTransitionPropOptions,\r\n usePolyTransition,\r\n} from '../../composables/transition';\r\nimport {\r\n ComplementClick,\r\n ComplementClickBindingOptions,\r\n} from '../../directives/complement-click';\r\nimport { bindClasses, propsFactory } from '../../util/vue-component';\r\n\r\nimport './YLayer.scss';\r\nimport { pressBasePropsOptions, useBase } from './base';\r\n\r\nexport const pressYLayerProps = propsFactory(\r\n {\r\n modelValue: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n scrim: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n scrimOpacity: {\r\n type: Number as PropType<number>,\r\n },\r\n eager: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n classes: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n contentClasses: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n closeClickScrim: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n contentStyles: {\r\n type: Object as PropType<CSSProperties>,\r\n default: () => {},\r\n },\r\n disabled: {\r\n type: Boolean as PropType<boolean>,\r\n default: false,\r\n },\r\n openOnHover: {\r\n type: Boolean as PropType<boolean>,\r\n default: false,\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 zIndex: {\r\n type: [Number, String] as PropType<number | string>,\r\n default: 2000,\r\n },\r\n ...pressThemePropsOptions(),\r\n ...polyTransitionPropOptions,\r\n ...pressBasePropsOptions(),\r\n ...pressCoordinateProps(),\r\n ...pressDimensionPropsOptions(),\r\n },\r\n 'YLayer',\r\n);\r\n\r\nexport const YLayer = defineComponent({\r\n name: 'YLayer',\r\n inheritAttrs: false,\r\n components: {\r\n PolyTransition,\r\n },\r\n directives: {\r\n ComplementClick,\r\n },\r\n props: {\r\n modal: Boolean as PropType<boolean>,\r\n ...pressYLayerProps(),\r\n },\r\n emits: {\r\n 'update:modelValue': (value: boolean) => true,\r\n 'click:complement': (mouseEvent: MouseEvent) => true,\r\n afterLeave: () => true,\r\n },\r\n slots: Object as SlotsType<{\r\n base: any;\r\n default: any;\r\n }>,\r\n setup(props, { emit, expose, attrs, slots }) {\r\n const vm = getCurrentInstance();\r\n\r\n const scrim$ = ref<HTMLElement>();\r\n const content$ = ref<HTMLElement>();\r\n\r\n const { base, base$, baseEl, baseSlot, baseFromSlotEl } = useBase(props);\r\n\r\n const { themeClasses } = useLocalTheme(props);\r\n const { layerGroup, layerGroupState, getActiveLayers } = useLayerGroup();\r\n const { polyTransitionBindProps } = usePolyTransition(props);\r\n const { dimensionStyles } = useDimension(props);\r\n const active = computed<boolean>({\r\n get: (): boolean => {\r\n return !!props.modelValue;\r\n },\r\n set: (v: boolean) => {\r\n emit('update:modelValue', v);\r\n },\r\n });\r\n const finish = shallowRef(false);\r\n const hovered = ref(false);\r\n\r\n const disabled = toRef(props, 'disabled');\r\n const { lazyValue, onAfterUpdate } = useLazy(toRef(props, 'eager'), active);\r\n const rendered = computed<boolean>(\r\n () => !disabled.value && (lazyValue.value || active.value),\r\n );\r\n\r\n const { coordinateStyles, updateCoordinate } = useCoordinate(props, {\r\n contentEl: content$,\r\n base,\r\n active,\r\n });\r\n\r\n function onClickComplementLayer(mouseEvent: MouseEvent) {\r\n emit('click:complement', mouseEvent);\r\n if (!props.modal) {\r\n if (\r\n scrim$.value !== null &&\r\n scrim$.value === mouseEvent.target &&\r\n props.closeClickScrim\r\n ) {\r\n active.value = false;\r\n }\r\n } else {\r\n // TODO: shrug ani\r\n }\r\n }\r\n\r\n function closeConditional(): boolean {\r\n return (\r\n (!props.openOnHover || (props.openOnHover && !hovered.value)) &&\r\n active.value && finish.value\r\n ); // TODO: && groupTopLevel.value;\r\n }\r\n\r\n const complementClickOption = reactive<ComplementClickBindingOptions>({\r\n handler: onClickComplementLayer,\r\n determine: closeConditional,\r\n include: () => [baseEl.value],\r\n });\r\n\r\n function onAfterEnter() {\r\n finish.value = true;\r\n }\r\n\r\n function onAfterLeave() {\r\n onAfterUpdate();\r\n finish.value = false;\r\n emit('afterLeave');\r\n }\r\n\r\n function onClickScrim() {\r\n if (props.closeClickScrim) {\r\n active.value = false;\r\n }\r\n }\r\n\r\n function onMouseenter(event: Event) {\r\n hovered.value = true;\r\n }\r\n\r\n function onMouseleave(event: Event) {\r\n hovered.value = false;\r\n }\r\n\r\n const computedStyle = computed(() => {\r\n return {\r\n zIndex: (props.zIndex ?? '2000').toString(),\r\n };\r\n });\r\n\r\n const computedClass = computed<Record<string, boolean>>(() => {\r\n const { classes } = props;\r\n const boundClasses = bindClasses(classes);\r\n return {\r\n ...boundClasses,\r\n 'y-layer--active': !!active.value,\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 expose({\r\n scrim$,\r\n base$,\r\n content$: computed(() => content$.value),\r\n baseEl,\r\n active,\r\n onAfterUpdate,\r\n updateCoordinate,\r\n hovered,\r\n finish,\r\n modal: computed(() => props.modal),\r\n getActiveLayers,\r\n isMe: (vnode: ComponentInternalInstance) => {\r\n return vnode === vm;\r\n },\r\n });\r\n\r\n useRender(() => {\r\n const slotBase = slots.base?.({\r\n active: active.value,\r\n props: mergeProps({\r\n ref: base$,\r\n class: {\r\n 'y-layer-base': true,\r\n 'y-layer-base--active': active.value,\r\n },\r\n }),\r\n });\r\n baseSlot.value = slotBase;\r\n return (\r\n <>\r\n {slotBase}\r\n <Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\r\n {rendered.value && (\r\n <div\r\n class={{\r\n 'y-layer': true,\r\n 'y-layer--finish': finish.value,\r\n ...computedClass.value,\r\n [themeClasses.value ?? '']: true,\r\n }}\r\n onMouseenter={onMouseenter}\r\n onMouseleave={onMouseleave}\r\n style={computedStyle.value}\r\n {...attrs}\r\n >\r\n <Transition name=\"fade\" appear>\r\n {active.value && props.scrim && (\r\n <div\r\n class=\"y-layer__scrim\"\r\n style={{ '--y-layer-scrim-opacity': props.scrimOpacity }}\r\n onClick={onClickScrim}\r\n ref=\"scrim$\"\r\n ></div>\r\n )}\r\n </Transition>\r\n <PolyTransition\r\n onAfterEnter={onAfterEnter}\r\n onAfterLeave={onAfterLeave}\r\n appear\r\n {...polyTransitionBindProps.value}\r\n >\r\n <div\r\n v-show={active.value}\r\n v-complement-click={{ ...complementClickOption }}\r\n class={{\r\n 'y-layer__content': true,\r\n ...computedContentClasses.value,\r\n }}\r\n style={[\r\n {\r\n ...dimensionStyles.value,\r\n ...coordinateStyles.value,\r\n ...props.contentStyles,\r\n },\r\n ]}\r\n ref={content$}\r\n >\r\n {slots.default?.({ active: active.value })}\r\n </div>\r\n </PolyTransition>\r\n </div>\r\n )}\r\n </Teleport>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n complementClickOption,\r\n layerGroup,\r\n active,\r\n finish,\r\n rendered,\r\n lazyValue,\r\n onAfterUpdate: onAfterUpdate as () => void,\r\n scrim$,\r\n content$,\r\n base$,\r\n baseEl,\r\n baseFromSlotEl,\r\n polyTransitionBindProps,\r\n coordinateStyles,\r\n layerGroupState,\r\n getActiveLayers,\r\n };\r\n },\r\n});\r\n\r\nexport type YLayer = InstanceType<typeof YLayer>;\r\n"],"mappings":";AAMA,SACEA,QAAQ,EACRC,UAAU,EACVC,QAAQ,EACRC,eAAe,EACfC,kBAAkB,EAClBC,UAAU,EACVC,QAAQ,EACRC,GAAG,EACHC,UAAU,EACVC,KAAK,QAEA,KAAK;AAAC,SAEJC,SAAS;AAAA,SAEhBC,oBAAoB,EACpBC,aAAa;AAAA,SAGbC,0BAA0B,EAC1BC,YAAY;AAAA,SAELC,aAAa;AAAA,SACbC,sBAAsB,EAAEC,aAAa;AAAA,SACrCC,OAAO;AAAA,SAEdC,cAAc,EACdC,yBAAyB,EACzBC,iBAAiB;AAAA,SAGjBC,eAAe;AAAA,SAGRC,WAAW,EAAEC,YAAY;AAElC;AAAuB,SACdC,qBAAqB,EAAEC,OAAO;AAEvC,OAAO,MAAMC,gBAAgB,GAAGH,YAAY,CAC1C;EACEI,UAAU,EAAE;IACVC,IAAI,EAAEC;EACR,CAAC;EACDC,KAAK,EAAE;IACLF,IAAI,EAAEC;EACR,CAAC;EACDE,YAAY,EAAE;IACZH,IAAI,EAAEI;EACR,CAAC;EACDC,KAAK,EAAE;IACLL,IAAI,EAAEC;EACR,CAAC;EACDK,OAAO,EAAE;IACPN,IAAI,EAAE,CAACO,KAAK,EAAEC,MAAM,EAAEC,MAAM;EAG9B,CAAC;EACDC,cAAc,EAAE;IACdV,IAAI,EAAE,CAACO,KAAK,EAAEC,MAAM,EAAEC,MAAM;EAG9B,CAAC;EACDE,eAAe,EAAE;IACfX,IAAI,EAAEC;EACR,CAAC;EACDW,aAAa,EAAE;IACbZ,IAAI,EAAES,MAAiC;IACvCI,OAAO,EAAEA,CAAA,KAAM,CAAC;EAClB,CAAC;EACDC,QAAQ,EAAE;IACRd,IAAI,EAAEC,OAA4B;IAClCY,OAAO,EAAE;EACX,CAAC;EACDE,WAAW,EAAE;IACXf,IAAI,EAAEC,OAA4B;IAClCY,OAAO,EAAE;EACX,CAAC;EACDG,SAAS,EAAE;IACThB,IAAI,EAAEI,MAA0B;IAChCS,OAAO,EAAE;EACX,CAAC;EACDI,UAAU,EAAE;IACVjB,IAAI,EAAEI,MAA0B;IAChCS,OAAO,EAAE;EACX,CAAC;EACDK,MAAM,EAAE;IACNlB,IAAI,EAAE,CAACI,MAAM,EAAEI,MAAM,CAA8B;IACnDK,OAAO,EAAE;EACX,CAAC;EACD,GAAG1B,sBAAsB,CAAC,CAAC;EAC3B,GAAGI,yBAAyB;EAC5B,GAAGK,qBAAqB,CAAC,CAAC;EAC1B,GAAGd,oBAAoB,CAAC,CAAC;EACzB,GAAGE,0BAA0B,CAAC;AAChC,CAAC,EACD,QACF,CAAC;AAED,OAAO,MAAMmC,MAAM,GAAG7C,eAAe,CAAC;EACpC8C,IAAI,EAAE,QAAQ;EACdC,YAAY,EAAE,KAAK;EACnBC,UAAU,EAAE;IACVhC;EACF,CAAC;EACDiC,UAAU,EAAE;IACV9B;EACF,CAAC;EACD+B,KAAK,EAAE;IACLC,KAAK,EAAExB,OAA4B;IACnC,GAAGH,gBAAgB,CAAC;EACtB,CAAC;EACD4B,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAc,IAAK,IAAI;IAC7C,kBAAkB,EAAGC,UAAsB,IAAK,IAAI;IACpDC,UAAU,EAAEA,CAAA,KAAM;EACpB,CAAC;EACDC,KAAK,EAAErB,MAGL;EACFsB,KAAKA,CAACP,KAAK,EAAAQ,IAAA,EAAkC;IAAA,IAAhC;MAAEC,IAAI;MAAEC,MAAM;MAAEC,KAAK;MAAEL;IAAM,CAAC,GAAAE,IAAA;IACzC,MAAMI,EAAE,GAAG7D,kBAAkB,CAAC,CAAC;IAE/B,MAAM8D,MAAM,GAAG3D,GAAG,CAAc,CAAC;IACjC,MAAM4D,QAAQ,GAAG5D,GAAG,CAAc,CAAC;IAEnC,MAAM;MAAE6D,IAAI;MAAEC,KAAK;MAAEC,MAAM;MAAEC,QAAQ;MAAEC;IAAe,CAAC,GAAG9C,OAAO,CAAC2B,KAAK,CAAC;IAExE,MAAM;MAAEoB;IAAa,CAAC,GAAGxD,aAAa,CAACoC,KAAK,CAAC;IAC7C,MAAM;MAAEqB,UAAU;MAAEC,eAAe;MAAEC;IAAgB,CAAC,GAAG7D,aAAa,CAAC,CAAC;IACxE,MAAM;MAAE8D;IAAwB,CAAC,GAAGxD,iBAAiB,CAACgC,KAAK,CAAC;IAC5D,MAAM;MAAEyB;IAAgB,CAAC,GAAGhE,YAAY,CAACuC,KAAK,CAAC;IAC/C,MAAM0B,MAAM,GAAG7E,QAAQ,CAAU;MAC/B8E,GAAG,EAAEA,CAAA,KAAe;QAClB,OAAO,CAAC,CAAC3B,KAAK,CAACzB,UAAU;MAC3B,CAAC;MACDqD,GAAG,EAAGC,CAAU,IAAK;QACnBpB,IAAI,CAAC,mBAAmB,EAAEoB,CAAC,CAAC;MAC9B;IACF,CAAC,CAAC;IACF,MAAMC,MAAM,GAAG3E,UAAU,CAAC,KAAK,CAAC;IAChC,MAAM4E,OAAO,GAAG7E,GAAG,CAAC,KAAK,CAAC;IAE1B,MAAMoC,QAAQ,GAAGlC,KAAK,CAAC4C,KAAK,EAAE,UAAU,CAAC;IACzC,MAAM;MAAEgC,SAAS;MAAEC;IAAc,CAAC,GAAGpE,OAAO,CAACT,KAAK,CAAC4C,KAAK,EAAE,OAAO,CAAC,EAAE0B,MAAM,CAAC;IAC3E,MAAMQ,QAAQ,GAAGrF,QAAQ,CACvB,MAAM,CAACyC,QAAQ,CAACa,KAAK,KAAK6B,SAAS,CAAC7B,KAAK,IAAIuB,MAAM,CAACvB,KAAK,CAC3D,CAAC;IAED,MAAM;MAAEgC,gBAAgB;MAAEC;IAAiB,CAAC,GAAG7E,aAAa,CAACyC,KAAK,EAAE;MAClEqC,SAAS,EAAEvB,QAAQ;MACnBC,IAAI;MACJW;IACF,CAAC,CAAC;IAEF,SAASY,sBAAsBA,CAAClC,UAAsB,EAAE;MACtDK,IAAI,CAAC,kBAAkB,EAAEL,UAAU,CAAC;MACpC,IAAI,CAACJ,KAAK,CAACC,KAAK,EAAE;QAChB,IACEY,MAAM,CAACV,KAAK,KAAK,IAAI,IACrBU,MAAM,CAACV,KAAK,KAAKC,UAAU,CAACmC,MAAM,IAClCvC,KAAK,CAACb,eAAe,EACrB;UACAuC,MAAM,CAACvB,KAAK,GAAG,KAAK;QACtB;MACF,CAAC,MAAM;QACL;MAAA;IAEJ;IAEA,SAASqC,gBAAgBA,CAAA,EAAY;MACnC,OACE,CAAC,CAACxC,KAAK,CAACT,WAAW,IAAKS,KAAK,CAACT,WAAW,IAAI,CAACwC,OAAO,CAAC5B,KAAM,KAC5DuB,MAAM,CAACvB,KAAK,IAAI2B,MAAM,CAAC3B,KAAK,CAC5B,CAAC;IACL;;IAEA,MAAMsC,qBAAqB,GAAGxF,QAAQ,CAAgC;MACpEyF,OAAO,EAAEJ,sBAAsB;MAC/BK,SAAS,EAAEH,gBAAgB;MAC3BI,OAAO,EAAEA,CAAA,KAAM,CAAC3B,MAAM,CAACd,KAAK;IAC9B,CAAC,CAAC;IAEF,SAAS0C,YAAYA,CAAA,EAAG;MACtBf,MAAM,CAAC3B,KAAK,GAAG,IAAI;IACrB;IAEA,SAAS2C,YAAYA,CAAA,EAAG;MACtBb,aAAa,CAAC,CAAC;MACfH,MAAM,CAAC3B,KAAK,GAAG,KAAK;MACpBM,IAAI,CAAC,YAAY,CAAC;IACpB;IAEA,SAASsC,YAAYA,CAAA,EAAG;MACtB,IAAI/C,KAAK,CAACb,eAAe,EAAE;QACzBuC,MAAM,CAACvB,KAAK,GAAG,KAAK;MACtB;IACF;IAEA,SAAS6C,YAAYA,CAACC,KAAY,EAAE;MAClClB,OAAO,CAAC5B,KAAK,GAAG,IAAI;IACtB;IAEA,SAAS+C,YAAYA,CAACD,KAAY,EAAE;MAClClB,OAAO,CAAC5B,KAAK,GAAG,KAAK;IACvB;IAEA,MAAMgD,aAAa,GAAGtG,QAAQ,CAAC,MAAM;MACnC,OAAO;QACL6C,MAAM,EAAE,CAACM,KAAK,CAACN,MAAM,IAAI,MAAM,EAAE0D,QAAQ,CAAC;MAC5C,CAAC;IACH,CAAC,CAAC;IAEF,MAAMC,aAAa,GAAGxG,QAAQ,CAA0B,MAAM;MAC5D,MAAM;QAAEiC;MAAQ,CAAC,GAAGkB,KAAK;MACzB,MAAMsD,YAAY,GAAGpF,WAAW,CAACY,OAAO,CAAC;MACzC,OAAO;QACL,GAAGwE,YAAY;QACf,iBAAiB,EAAE,CAAC,CAAC5B,MAAM,CAACvB;MAC9B,CAAC;IACH,CAAC,CAAC;IAEF,MAAMoD,sBAAsB,GAAG1G,QAAQ,CAA0B,MAAM;MACrE,MAAMyG,YAAY,GAAGpF,WAAW,CAAC8B,KAAK,CAACd,cAAc,CAAC;MACtD,OAAO;QACL,GAAGoE;MACL,CAAC;IACH,CAAC,CAAC;IAEF5C,MAAM,CAAC;MACLG,MAAM;MACNG,KAAK;MACLF,QAAQ,EAAEjE,QAAQ,CAAC,MAAMiE,QAAQ,CAACX,KAAK,CAAC;MACxCc,MAAM;MACNS,MAAM;MACNO,aAAa;MACbG,gBAAgB;MAChBL,OAAO;MACPD,MAAM;MACN7B,KAAK,EAAEpD,QAAQ,CAAC,MAAMmD,KAAK,CAACC,KAAK,CAAC;MAClCsB,eAAe;MACfiC,IAAI,EAAGC,KAAgC,IAAK;QAC1C,OAAOA,KAAK,KAAK7C,EAAE;MACrB;IACF,CAAC,CAAC;IAEFvD,SAAS,CAAC,MAAM;MACd,MAAMqG,QAAQ,GAAGpD,KAAK,CAACS,IAAI,GAAG;QAC5BW,MAAM,EAAEA,MAAM,CAACvB,KAAK;QACpBH,KAAK,EAAEhD,UAAU,CAAC;UAChBE,GAAG,EAAE8D,KAAK;UACV2C,KAAK,EAAE;YACL,cAAc,EAAE,IAAI;YACpB,sBAAsB,EAAEjC,MAAM,CAACvB;UACjC;QACF,CAAC;MACH,CAAC,CAAC;MACFe,QAAQ,CAACf,KAAK,GAAGuD,QAAQ;MACzB,OAAAE,YAAA,CAAAC,SAAA,SAEKH,QAAQ,EAAAE,YAAA,CAAAjH,QAAA;QAAA,YACW,CAAC0E,UAAU,CAAClB,KAAK;QAAA,MAAMkB,UAAU,CAAClB;MAAK;QAAAd,OAAA,EAAAA,CAAA,MACxD6C,QAAQ,CAAC/B,KAAK,IAAAyD,YAAA,QAAAE,WAAA;UAAA,SAEJ;YACL,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAEhC,MAAM,CAAC3B,KAAK;YAC/B,GAAGkD,aAAa,CAAClD,KAAK;YACtB,CAACiB,YAAY,CAACjB,KAAK,IAAI,EAAE,GAAG;UAC9B,CAAC;UAAA,gBACa6C,YAAY;UAAA,gBACZE,YAAY;UAAA,SACnBC,aAAa,CAAChD;QAAK,GACtBQ,KAAK,IAAAiD,YAAA,CAAAhH,UAAA;UAAA;UAAA;QAAA;UAAAyC,OAAA,EAAAA,CAAA,MAGNqC,MAAM,CAACvB,KAAK,IAAIH,KAAK,CAACtB,KAAK,IAAAkF,YAAA;YAAA;YAAA,SAGjB;cAAE,yBAAyB,EAAE5D,KAAK,CAACrB;YAAa,CAAC;YAAA,WAC/CoE,YAAY;YAAA;UAAA,QAGxB;QAAA,IAAAa,YAAA,CAAA9F,cAAA,EAAAgG,WAAA;UAAA,gBAGajB,YAAY;UAAA,gBACZC,YAAY;UAAA;QAAA,GAEtBtB,uBAAuB,CAACrB,KAAK;UAAAd,OAAA,EAAAA,CAAA,MAAA0E,eAAA,CAAAH,YAAA;YAAA,SAKxB;cACL,kBAAkB,EAAE,IAAI;cACxB,GAAGL,sBAAsB,CAACpD;YAC5B,CAAC;YAAA,SACM,CACL;cACE,GAAGsB,eAAe,CAACtB,KAAK;cACxB,GAAGgC,gBAAgB,CAAChC,KAAK;cACzB,GAAGH,KAAK,CAACZ;YACX,CAAC,CACF;YAAA,OACI0B;UAAQ,IAEZR,KAAK,CAACjB,OAAO,GAAG;YAAEqC,MAAM,EAAEA,MAAM,CAACvB;UAAM,CAAC,CAAC,MAAA6D,MAAA,EAflCtC,MAAM,CAACvB,KAAK,IAAA8D,iBAAA,sBACA;YAAE,GAAGxB;UAAsB,CAAC;QAAA,IAkBvD;MAAA;IAIT,CAAC,CAAC;IAEF,OAAO;MACLA,qBAAqB;MACrBpB,UAAU;MACVK,MAAM;MACNI,MAAM;MACNI,QAAQ;MACRF,SAAS;MACTC,aAAa,EAAEA,aAA2B;MAC1CpB,MAAM;MACNC,QAAQ;MACRE,KAAK;MACLC,MAAM;MACNE,cAAc;MACdK,uBAAuB;MACvBW,gBAAgB;MAChBb,eAAe;MACfC;IACF,CAAC;EACH;AACF,CAAC,CAAC"}
@@ -39,13 +39,17 @@ export function useBase(props) {
39
39
  toEl = base$.value.$el;
40
40
  }
41
41
  }
42
+ if (toEl?.nodeType !== Node.ELEMENT_NODE) {
43
+ toEl = baseFromSlotEl.value;
44
+ }
42
45
  baseEl.value = toEl;
43
46
  });
44
47
  return {
45
48
  base$,
46
49
  baseEl,
47
50
  baseSlot,
48
- base
51
+ base,
52
+ baseFromSlotEl
49
53
  };
50
54
  }
51
55
  function getBase(selector, vm) {
@@ -1 +1 @@
1
- {"version":3,"file":"base.mjs","names":["computed","getCurrentInstance","ref","watchEffect","propsFactory","pressBasePropsOptions","base","String","Object","Array","useBase","props","vm","base$","baseSlot","baseEl","baseFromSlotEl","el","value","nodeType","Node","ELEMENT_NODE","undefined","getBase","isArray","toEl","$el","selector","ret","proxy","parentNode","hasAttribute","document","querySelector"],"sources":["../../../src/components/layer/base.ts"],"sourcesContent":["import {\r\n ComponentInternalInstance,\r\n ComponentPublicInstance,\r\n PropType,\r\n computed,\r\n getCurrentInstance,\r\n ref,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { propsFactory } from '../../util/vue-component';\r\n\r\nexport type BaseType =\r\n | string\r\n | Element\r\n | ComponentPublicInstance\r\n | [x: number, y: number]\r\n | undefined;\r\n\r\nexport const pressBasePropsOptions = propsFactory(\r\n {\r\n base: [String, Object, Array] as PropType<BaseType>,\r\n },\r\n 'YLayer.base',\r\n);\r\n\r\ninterface BaseProps {\r\n base: BaseType;\r\n}\r\n\r\nexport function useBase(props: BaseProps) {\r\n const vm = getCurrentInstance()!;\r\n\r\n const base$ = ref();\r\n const baseSlot = ref();\r\n const baseEl = ref<HTMLElement>();\r\n\r\n const baseFromSlotEl = computed(() => {\r\n const el = baseSlot.value?.[0]?.el;\r\n if (el && el.nodeType === Node.ELEMENT_NODE) {\r\n return el;\r\n }\r\n return undefined;\r\n });\r\n\r\n const base = computed(() => {\r\n if (baseEl.value) {\r\n return baseEl.value;\r\n }\r\n return getBase(props.base, vm);\r\n });\r\n\r\n watchEffect(() => {\r\n if (!base$.value) {\r\n if (!baseFromSlotEl.value && props.base && !Array.isArray(props.base)) {\r\n baseEl.value = base.value;\r\n return;\r\n }\r\n baseEl.value = baseFromSlotEl.value;\r\n return;\r\n }\r\n let toEl = base$.value;\r\n if (toEl.baseEl) {\r\n toEl = toEl.baseEl;\r\n }\r\n if (base$.value?.$el) {\r\n if (base$.value.$el.nodeType === Node.ELEMENT_NODE) {\r\n toEl = base$.value.$el;\r\n }\r\n }\r\n baseEl.value = toEl;\r\n });\r\n\r\n return {\r\n base$,\r\n baseEl,\r\n baseSlot,\r\n base,\r\n };\r\n}\r\n\r\nfunction getBase(selector: BaseType, vm: ComponentInternalInstance) {\r\n if (!selector) return;\r\n\r\n let ret;\r\n\r\n if (selector === 'parent') {\r\n let el = vm?.proxy?.$el?.parentNode;\r\n while (el?.hasAttribute('data-base-parent')) {\r\n el = el.parentNode;\r\n }\r\n ret = el;\r\n }\r\n // Selector\r\n else if (typeof selector === 'string') {\r\n ret = document.querySelector(selector);\r\n }\r\n // Component\r\n else if ('$el' in selector) {\r\n ret = selector.$el;\r\n }\r\n // HTMLElement | Element | [x, y]\r\n else {\r\n ret = selector;\r\n }\r\n\r\n return ret;\r\n}\r\n"],"mappings":"AAAA,SAIEA,QAAQ,EACRC,kBAAkB,EAClBC,GAAG,EACHC,WAAW,QACN,KAAK;AAAC,SAEJC,YAAY;AASrB,OAAO,MAAMC,qBAAqB,GAAGD,YAAY,CAC/C;EACEE,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,EAAEC,KAAK;AAC9B,CAAC,EACD,aACF,CAAC;AAMD,OAAO,SAASC,OAAOA,CAACC,KAAgB,EAAE;EACxC,MAAMC,EAAE,GAAGX,kBAAkB,CAAC,CAAE;EAEhC,MAAMY,KAAK,GAAGX,GAAG,CAAC,CAAC;EACnB,MAAMY,QAAQ,GAAGZ,GAAG,CAAC,CAAC;EACtB,MAAMa,MAAM,GAAGb,GAAG,CAAc,CAAC;EAEjC,MAAMc,cAAc,GAAGhB,QAAQ,CAAC,MAAM;IACpC,MAAMiB,EAAE,GAAGH,QAAQ,CAACI,KAAK,GAAG,CAAC,CAAC,EAAED,EAAE;IAClC,IAAIA,EAAE,IAAIA,EAAE,CAACE,QAAQ,KAAKC,IAAI,CAACC,YAAY,EAAE;MAC3C,OAAOJ,EAAE;IACX;IACA,OAAOK,SAAS;EAClB,CAAC,CAAC;EAEF,MAAMhB,IAAI,GAAGN,QAAQ,CAAC,MAAM;IAC1B,IAAIe,MAAM,CAACG,KAAK,EAAE;MAChB,OAAOH,MAAM,CAACG,KAAK;IACrB;IACA,OAAOK,OAAO,CAACZ,KAAK,CAACL,IAAI,EAAEM,EAAE,CAAC;EAChC,CAAC,CAAC;EAEFT,WAAW,CAAC,MAAM;IAChB,IAAI,CAACU,KAAK,CAACK,KAAK,EAAE;MAChB,IAAI,CAACF,cAAc,CAACE,KAAK,IAAIP,KAAK,CAACL,IAAI,IAAI,CAACG,KAAK,CAACe,OAAO,CAACb,KAAK,CAACL,IAAI,CAAC,EAAE;QACrES,MAAM,CAACG,KAAK,GAAGZ,IAAI,CAACY,KAAK;QACzB;MACF;MACAH,MAAM,CAACG,KAAK,GAAGF,cAAc,CAACE,KAAK;MACnC;IACF;IACA,IAAIO,IAAI,GAAGZ,KAAK,CAACK,KAAK;IACtB,IAAIO,IAAI,CAACV,MAAM,EAAE;MACfU,IAAI,GAAGA,IAAI,CAACV,MAAM;IACpB;IACA,IAAIF,KAAK,CAACK,KAAK,EAAEQ,GAAG,EAAE;MACpB,IAAIb,KAAK,CAACK,KAAK,CAACQ,GAAG,CAACP,QAAQ,KAAKC,IAAI,CAACC,YAAY,EAAE;QAClDI,IAAI,GAAGZ,KAAK,CAACK,KAAK,CAACQ,GAAG;MACxB;IACF;IACAX,MAAM,CAACG,KAAK,GAAGO,IAAI;EACrB,CAAC,CAAC;EAEF,OAAO;IACLZ,KAAK;IACLE,MAAM;IACND,QAAQ;IACRR;EACF,CAAC;AACH;AAEA,SAASiB,OAAOA,CAACI,QAAkB,EAAEf,EAA6B,EAAE;EAClE,IAAI,CAACe,QAAQ,EAAE;EAEf,IAAIC,GAAG;EAEP,IAAID,QAAQ,KAAK,QAAQ,EAAE;IACzB,IAAIV,EAAE,GAAGL,EAAE,EAAEiB,KAAK,EAAEH,GAAG,EAAEI,UAAU;IACnC,OAAOb,EAAE,EAAEc,YAAY,CAAC,kBAAkB,CAAC,EAAE;MAC3Cd,EAAE,GAAGA,EAAE,CAACa,UAAU;IACpB;IACAF,GAAG,GAAGX,EAAE;EACV;EACA;EAAA,KACK,IAAI,OAAOU,QAAQ,KAAK,QAAQ,EAAE;IACrCC,GAAG,GAAGI,QAAQ,CAACC,aAAa,CAACN,QAAQ,CAAC;EACxC;EACA;EAAA,KACK,IAAI,KAAK,IAAIA,QAAQ,EAAE;IAC1BC,GAAG,GAAGD,QAAQ,CAACD,GAAG;EACpB;EACA;EAAA,KACK;IACHE,GAAG,GAAGD,QAAQ;EAChB;EAEA,OAAOC,GAAG;AACZ"}
1
+ {"version":3,"file":"base.mjs","names":["computed","getCurrentInstance","ref","watchEffect","propsFactory","pressBasePropsOptions","base","String","Object","Array","useBase","props","vm","base$","baseSlot","baseEl","baseFromSlotEl","el","value","nodeType","Node","ELEMENT_NODE","undefined","getBase","isArray","toEl","$el","selector","ret","proxy","parentNode","hasAttribute","document","querySelector"],"sources":["../../../src/components/layer/base.ts"],"sourcesContent":["import {\n ComponentInternalInstance,\n ComponentPublicInstance,\n PropType,\n computed,\n getCurrentInstance,\n ref,\n watchEffect,\n} from 'vue';\n\nimport { propsFactory } from '../../util/vue-component';\n\nexport type BaseType =\n | string\n | Element\n | ComponentPublicInstance\n | [x: number, y: number]\n | undefined;\n\nexport const pressBasePropsOptions = propsFactory(\n {\n base: [String, Object, Array] as PropType<BaseType>,\n },\n 'YLayer.base',\n);\n\ninterface BaseProps {\n base: BaseType;\n}\n\nexport function useBase(props: BaseProps) {\n const vm = getCurrentInstance()!;\n\n const base$ = ref();\n const baseSlot = ref();\n const baseEl = ref<HTMLElement>();\n\n const baseFromSlotEl = computed(() => {\n const el = baseSlot.value?.[0]?.el;\n if (el && el.nodeType === Node.ELEMENT_NODE) {\n return el;\n }\n return undefined;\n });\n\n const base = computed(() => {\n if (baseEl.value) {\n return baseEl.value;\n }\n return getBase(props.base, vm);\n });\n\n watchEffect(() => {\n if (!base$.value) {\n if (!baseFromSlotEl.value && props.base && !Array.isArray(props.base)) {\n baseEl.value = base.value;\n return;\n }\n baseEl.value = baseFromSlotEl.value;\n return;\n }\n let toEl = base$.value;\n if (toEl.baseEl) {\n toEl = toEl.baseEl;\n }\n if (base$.value?.$el) {\n if (base$.value.$el.nodeType === Node.ELEMENT_NODE) {\n toEl = base$.value.$el;\n }\n }\n if (toEl?.nodeType !== Node.ELEMENT_NODE) {\n toEl = baseFromSlotEl.value;\n }\n baseEl.value = toEl;\n });\n\n return {\n base$,\n baseEl,\n baseSlot,\n base,\n baseFromSlotEl,\n };\n}\n\nfunction getBase(selector: BaseType, vm: ComponentInternalInstance) {\n if (!selector) return;\n\n let ret;\n\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode;\n while (el?.hasAttribute('data-base-parent')) {\n el = el.parentNode;\n }\n ret = el;\n }\n // Selector\n else if (typeof selector === 'string') {\n ret = document.querySelector(selector);\n }\n // Component\n else if ('$el' in selector) {\n ret = selector.$el;\n }\n // HTMLElement | Element | [x, y]\n else {\n ret = selector;\n }\n\n return ret;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"YList.mjs","names":["defineComponent","ref","shallowRef","useRender","pressThemePropsOptions","useLocalTheme","propsFactory","pressYListPropsOptions","disabled","Boolean","YList","name","props","setup","_ref","slots","attrs","el$","themeClasses","focused","onFocus","event","value","relatedTarget","contains","focus","onFocusIn","onFocusOut","onKeydown","target","_createVNode","_mergeProps","tabindex","default"],"sources":["../../../src/components/list/YList.tsx"],"sourcesContent":["import { defineComponent, ref, shallowRef } from 'vue';\r\n\r\n\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\r\nimport { propsFactory } from '../../util/vue-component';\r\n\r\n\r\n\r\nimport './YList.scss';\r\n\r\n\r\nexport const pressYListPropsOptions = propsFactory(\r\n {\r\n disabled: Boolean,\r\n ...pressThemePropsOptions(),\r\n },\r\n 'YList',\r\n);\r\n\r\nexport const YList = defineComponent({\r\n name: 'YList',\r\n props: {\r\n ...pressYListPropsOptions(),\r\n },\r\n setup(props, { slots, attrs }) {\r\n const el$ = ref<HTMLElement>();\r\n\r\n const { themeClasses } = useLocalTheme(props);\r\n\r\n const focused = shallowRef(false);\r\n\r\n function onFocus(event: FocusEvent) {\r\n if (\r\n !focused.value &&\r\n !(\r\n event.relatedTarget &&\r\n el$.value?.contains(event.relatedTarget as Node)\r\n )\r\n ) {\r\n focus();\r\n }\r\n }\r\n\r\n function onFocusIn(event: FocusEvent) {\r\n focused.value = true;\r\n }\r\n\r\n function onFocusOut(event: FocusEvent) {\r\n focused.value = false;\r\n }\r\n\r\n function onKeydown(event: KeyboardEvent) {\r\n //\r\n }\r\n\r\n function focus(target?: string) {\r\n //\r\n }\r\n\r\n useRender(() => (\r\n <div\r\n ref={el$}\r\n class={['y-list', themeClasses.value]}\r\n role=\"listbox\"\r\n tabindex={\r\n (attrs.tabindex as number | string) ??\r\n (props.disabled || focused.value ? -1 : 0)\r\n }\r\n onFocus={onFocus}\r\n onFocusin={onFocusIn}\r\n onFocusout={onFocusOut}\r\n onKeydown={onKeydown}\r\n {...attrs}\r\n >\r\n {slots.default?.()}\r\n </div>\r\n ));\r\n },\r\n});\r\n\r\nexport type YList = InstanceType<typeof YList>;\r\n"],"mappings":";AAAA,SAASA,eAAe,EAAEC,GAAG,EAAEC,UAAU,QAAQ,KAAK;AAAC,SAI9CC,SAAS;AAAA,SACTC,sBAAsB,EAAEC,aAAa;AAAA,SACrCC,YAAY;AAIrB;AAGA,OAAO,MAAMC,sBAAsB,GAAGD,YAAY,CAChD;EACEE,QAAQ,EAAEC,OAAO;EACjB,GAAGL,sBAAsB,CAAC;AAC5B,CAAC,EACD,OACF,CAAC;AAED,OAAO,MAAMM,KAAK,GAAGV,eAAe,CAAC;EACnCW,IAAI,EAAE,OAAO;EACbC,KAAK,EAAE;IACL,GAAGL,sBAAsB,CAAC;EAC5B,CAAC;EACDM,KAAKA,CAACD,KAAK,EAAAE,IAAA,EAAoB;IAAA,IAAlB;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAMG,GAAG,GAAGhB,GAAG,CAAc,CAAC;IAE9B,MAAM;MAAEiB;IAAa,CAAC,GAAGb,aAAa,CAACO,KAAK,CAAC;IAE7C,MAAMO,OAAO,GAAGjB,UAAU,CAAC,KAAK,CAAC;IAEjC,SAASkB,OAAOA,CAACC,KAAiB,EAAE;MAClC,IACE,CAACF,OAAO,CAACG,KAAK,IACd,EACED,KAAK,CAACE,aAAa,IACnBN,GAAG,CAACK,KAAK,EAAEE,QAAQ,CAACH,KAAK,CAACE,aAAqB,CAAC,CACjD,EACD;QACAE,KAAK,CAAC,CAAC;MACT;IACF;IAEA,SAASC,SAASA,CAACL,KAAiB,EAAE;MACpCF,OAAO,CAACG,KAAK,GAAG,IAAI;IACtB;IAEA,SAASK,UAAUA,CAACN,KAAiB,EAAE;MACrCF,OAAO,CAACG,KAAK,GAAG,KAAK;IACvB;IAEA,SAASM,SAASA,CAACP,KAAoB,EAAE;MACvC;IAAA;IAGF,SAASI,KAAKA,CAACI,MAAe,EAAE;MAC9B;IAAA;IAGF1B,SAAS,CAAC,MAAA2B,YAAA,QAAAC,WAAA;MAAA,OAEDd,GAAG;MAAA,SACD,CAAC,QAAQ,EAAEC,YAAY,CAACI,KAAK,CAAC;MAAA,QAChC,SAAS;MAAA,YAEXN,KAAK,CAACgB,QAAQ,KACdpB,KAAK,CAACJ,QAAQ,IAAIW,OAAO,CAACG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;MAAA,WAEnCF,OAAO;MAAA,aACLM,SAAS;MAAA,cACRC,UAAU;MAAA,aACXC;IAAS,GAChBZ,KAAK,IAERD,KAAK,CAACkB,OAAO,GAAG,CAAC,EAErB,CAAC;EACJ;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YList.mjs","names":["defineComponent","ref","shallowRef","useRender","pressThemePropsOptions","useLocalTheme","propsFactory","pressYListPropsOptions","disabled","Boolean","YList","name","props","setup","_ref","slots","attrs","el$","themeClasses","focused","onFocus","event","value","relatedTarget","contains","focus","onFocusIn","onFocusOut","onKeydown","target","_createVNode","_mergeProps","tabindex","default"],"sources":["../../../src/components/list/YList.tsx"],"sourcesContent":["import { defineComponent, ref, shallowRef } from 'vue';\r\n\r\n\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { pressThemePropsOptions, useLocalTheme } from '../../composables/theme';\r\nimport { propsFactory } from '../../util/vue-component';\r\n\r\n\r\n\r\nimport './YList.scss';\r\n\r\n\r\nexport const pressYListPropsOptions = propsFactory(\r\n {\r\n disabled: Boolean,\r\n ...pressThemePropsOptions(),\r\n },\r\n 'YList',\r\n);\r\n\r\nexport const YList = defineComponent({\r\n name: 'YList',\r\n props: {\r\n ...pressYListPropsOptions(),\r\n },\r\n setup(props, { slots, attrs }) {\r\n const el$ = ref<HTMLElement>();\r\n\r\n const { themeClasses } = useLocalTheme(props);\r\n\r\n const focused = shallowRef(false);\r\n\r\n function onFocus(event: FocusEvent) {\r\n if (\r\n !focused.value &&\r\n !(\r\n event.relatedTarget &&\r\n el$.value?.contains(event.relatedTarget as Node)\r\n )\r\n ) {\r\n focus();\r\n }\r\n }\r\n\r\n function onFocusIn(event: FocusEvent) {\r\n focused.value = true;\r\n }\r\n\r\n function onFocusOut(event: FocusEvent) {\r\n focused.value = false;\r\n }\r\n\r\n function onKeydown(event: KeyboardEvent) {\r\n //\r\n }\r\n\r\n function focus(target?: string) {\r\n //\r\n }\r\n\r\n useRender(() => (\r\n <div\r\n ref={el$}\r\n class={['y-list', themeClasses.value]}\r\n role=\"listbox\"\r\n tabindex={\r\n (attrs.tabindex as number | string) ??\r\n (props.disabled || focused.value ? -1 : 0)\r\n }\r\n onFocus={onFocus}\r\n onFocusin={onFocusIn}\r\n onFocusout={onFocusOut}\r\n onKeydown={onKeydown}\r\n {...attrs}\r\n >\r\n {slots.default?.()}\r\n </div>\r\n ));\r\n },\r\n});\r\n\r\nexport type YList = InstanceType<typeof YList>;\r\n"],"mappings":";AAAA,SAASA,eAAe,EAAEC,GAAG,EAAEC,UAAU,QAAQ,KAAK;AAAC,SAI9CC,SAAS;AAAA,SACTC,sBAAsB,EAAEC,aAAa;AAAA,SACrCC,YAAY;AAIrB;AAGA,OAAO,MAAMC,sBAAsB,GAAGD,YAAY,CAChD;EACEE,QAAQ,EAAEC,OAAO;EACjB,GAAGL,sBAAsB,CAAC;AAC5B,CAAC,EACD,OACF,CAAC;AAED,OAAO,MAAMM,KAAK,GAAGV,eAAe,CAAC;EACnCW,IAAI,EAAE,OAAO;EACbC,KAAK,EAAE;IACL,GAAGL,sBAAsB,CAAC;EAC5B,CAAC;EACDM,KAAKA,CAACD,KAAK,EAAAE,IAAA,EAAoB;IAAA,IAAlB;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAMG,GAAG,GAAGhB,GAAG,CAAc,CAAC;IAE9B,MAAM;MAAEiB;IAAa,CAAC,GAAGb,aAAa,CAACO,KAAK,CAAC;IAE7C,MAAMO,OAAO,GAAGjB,UAAU,CAAC,KAAK,CAAC;IAEjC,SAASkB,OAAOA,CAACC,KAAiB,EAAE;MAClC,IACE,CAACF,OAAO,CAACG,KAAK,IACd,EACED,KAAK,CAACE,aAAa,IACnBN,GAAG,CAACK,KAAK,EAAEE,QAAQ,CAACH,KAAK,CAACE,aAAqB,CAAC,CACjD,EACD;QACAE,KAAK,CAAC,CAAC;MACT;IACF;IAEA,SAASC,SAASA,CAACL,KAAiB,EAAE;MACpCF,OAAO,CAACG,KAAK,GAAG,IAAI;IACtB;IAEA,SAASK,UAAUA,CAACN,KAAiB,EAAE;MACrCF,OAAO,CAACG,KAAK,GAAG,KAAK;IACvB;IAEA,SAASM,SAASA,CAACP,KAAoB,EAAE;MACvC;IAAA;IAGF,SAASI,KAAKA,CAACI,MAAe,EAAE;MAC9B;IAAA;IAGF1B,SAAS,CAAC,MAAA2B,YAAA,QAAAC,WAAA;MAAA,OAEDd,GAAG;MAAA,SACD,CAAC,QAAQ,EAAEC,YAAY,CAACI,KAAK,CAAC;MAAA;MAAA,YAGlCN,KAAK,CAACgB,QAAQ,KACdpB,KAAK,CAACJ,QAAQ,IAAIW,OAAO,CAACG,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;MAAA,WAEnCF,OAAO;MAAA,aACLM,SAAS;MAAA,cACRC,UAAU;MAAA,aACXC;IAAS,GAChBZ,KAAK,IAERD,KAAK,CAACkB,OAAO,GAAG,CAAC,EAErB,CAAC;EACJ;AACF,CAAC,CAAC"}
@@ -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\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"}
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;MAAA;MAAA;MAAA;MAAA;IAAA,IAAAA,YAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA;EAmBF;AACF,CAAC,CAAC"}
@@ -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","maxVisible","showEndButton","gap","color","activeColor","buttonVariation","align","YPagination","name","components","emits","value","change","control","setup","_ref","slots","emit","page","parseInt","itemCount","resizeObservedRef","entries","target","contentRect","firstItem","querySelector","listWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","calcItemCount","fixedCount","fixedWidth","count","Math","max","floor","toFixed","isNaN","min","total","innerWidth","controls","prevDisabled","nextDisabled","first","variation","onClick","e","preventDefault","prev","to","next","last","range","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","refs","updateRef","changePage","event","arguments","undefined","items","map","item","index","ref","active","key","ellipsis","styles","_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 maxVisible: [Number, String],\n showEndButton: Boolean,\n gap: {\n type: [String, Number],\n default: 4,\n },\n color: String,\n activeColor: String,\n buttonVariation: [String],\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n // firstIcon: [String],\n // lastIcon: [String],\n // prevIcon: [String],\n // nextIcon: [String],\n },\n 'YPagination',\n);\n\nexport const YPagination = defineComponent({\n name: 'YPagination',\n components: {\n YButton,\n },\n props: {\n ...pressYPaginationProps(),\n },\n emits: {\n 'update:modelValue': (value: number) => true,\n change: (value: number, control?: string) => true,\n },\n setup(props, { slots, emit }) {\n const page = useModelDuplex(props);\n\n const length = computed(() => parseInt(props.length as string, 10));\n const start = computed(() => parseInt(props.start as string, 10));\n\n const itemCount = shallowRef(-1);\n\n const { resizeObservedRef } = useResizeObserver((entries) => {\n if (1 > entries.length) return;\n const { target, contentRect } = entries[0];\n\n const firstItem = target.querySelector(\n '.y-pagination__list > *',\n ) as HTMLElement;\n if (firstItem) {\n const listWidth = contentRect.width;\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n itemCount.value = calcItemCount(listWidth, itemWidth);\n }\n });\n\n function calcItemCount(listWidth: number, itemWidth: number) {\n const fixedCount = props.showEndButton ? 5 : 3;\n const gap = +(props.gap ?? 4);\n const fixedWidth = (itemWidth + gap) * fixedCount - gap;\n const count = Math.max(\n 0,\n Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)),\n );\n const maxVisible = Number(props.maxVisible);\n if (!isNaN(maxVisible)) {\n return Math.min(maxVisible, count);\n }\n return count;\n }\n\n const totalVisible = computed(() => {\n const maxVisible = Number(props.maxVisible);\n if (props.totalVisible) {\n const total = parseInt(props.totalVisible as string, 10);\n if (!isNaN(maxVisible)) {\n return Math.min(total, maxVisible)\n }\n return total;\n }\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
+ {"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","maxVisible","showEndButton","gap","color","activeColor","buttonVariation","align","YPagination","name","components","emits","value","change","control","setup","_ref","slots","emit","page","parseInt","itemCount","resizeObservedRef","entries","target","contentRect","firstItem","querySelector","listWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","calcItemCount","fixedCount","fixedWidth","count","Math","max","floor","toFixed","isNaN","min","total","innerWidth","controls","prevDisabled","nextDisabled","first","variation","onClick","e","preventDefault","prev","to","next","last","range","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","refs","updateRef","changePage","event","arguments","undefined","items","map","item","index","ref","active","key","ellipsis","styles","_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 maxVisible: [Number, String],\n showEndButton: Boolean,\n gap: {\n type: [String, Number],\n default: 4,\n },\n color: String,\n activeColor: String,\n buttonVariation: [String],\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n // firstIcon: [String],\n // lastIcon: [String],\n // prevIcon: [String],\n // nextIcon: [String],\n },\n 'YPagination',\n);\n\nexport const YPagination = defineComponent({\n name: 'YPagination',\n components: {\n YButton,\n },\n props: {\n ...pressYPaginationProps(),\n },\n emits: {\n 'update:modelValue': (value: number) => true,\n change: (value: number, control?: string) => true,\n },\n setup(props, { slots, emit }) {\n const page = useModelDuplex(props);\n\n const length = computed(() => parseInt(props.length as string, 10));\n const start = computed(() => parseInt(props.start as string, 10));\n\n const itemCount = shallowRef(-1);\n\n const { resizeObservedRef } = useResizeObserver((entries) => {\n if (1 > entries.length) return;\n const { target, contentRect } = entries[0];\n\n const firstItem = target.querySelector(\n '.y-pagination__list > *',\n ) as HTMLElement;\n if (firstItem) {\n const listWidth = contentRect.width;\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n itemCount.value = calcItemCount(listWidth, itemWidth);\n }\n });\n\n function calcItemCount(listWidth: number, itemWidth: number) {\n const fixedCount = props.showEndButton ? 5 : 3;\n const gap = +(props.gap ?? 4);\n const fixedWidth = (itemWidth + gap) * fixedCount - gap;\n const count = Math.max(\n 0,\n Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)),\n );\n const maxVisible = Number(props.maxVisible);\n if (!isNaN(maxVisible)) {\n return Math.min(maxVisible, count);\n }\n return count;\n }\n\n const totalVisible = computed(() => {\n const maxVisible = Number(props.maxVisible);\n if (props.totalVisible) {\n const total = parseInt(props.totalVisible as string, 10);\n if (!isNaN(maxVisible)) {\n return Math.min(total, maxVisible)\n }\n return total;\n }\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\nexport type YDividePanel = InstanceType<typeof YDividePanel>;\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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"}