yuyeon 0.3.1-rc.4 → 0.3.1-rc.6

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 (219) hide show
  1. package/LICENSE +191 -191
  2. package/README.md +15 -15
  3. package/dist/yuyeon.js +611 -607
  4. package/dist/yuyeon.umd.cjs +3 -3
  5. package/lib/abstract/items.mjs.map +1 -1
  6. package/lib/components/alert/YAlert.mjs +2 -2
  7. package/lib/components/alert/YAlert.mjs.map +1 -1
  8. package/lib/components/alert/YAlert.scss +77 -77
  9. package/lib/components/app/YApp.mjs +2 -2
  10. package/lib/components/app/YApp.mjs.map +1 -1
  11. package/lib/components/bench/YBench.mjs +2 -2
  12. package/lib/components/bench/YBench.mjs.map +1 -1
  13. package/lib/components/button/YButton.scss +137 -137
  14. package/lib/components/card/YCard.mjs.map +1 -1
  15. package/lib/components/card/YCard.scss +45 -45
  16. package/lib/components/card/YCardBody.mjs.map +1 -1
  17. package/lib/components/card/YCardFooter.mjs.map +1 -1
  18. package/lib/components/card/YCardHeader.mjs.map +1 -1
  19. package/lib/components/checkbox/YCheckbox.mjs.map +1 -1
  20. package/lib/components/checkbox/YInputCheckbox.mjs.map +1 -1
  21. package/lib/components/checkbox/YInputCheckbox.scss +84 -84
  22. package/lib/components/checkbox/index.mjs.map +1 -1
  23. package/lib/components/chip/YChip.scss +36 -36
  24. package/lib/components/date-picker/YDateCalendar.mjs.map +1 -1
  25. package/lib/components/date-picker/YDateCalendar.scss +84 -84
  26. package/lib/components/date-picker/YDatePicker.mjs.map +1 -1
  27. package/lib/components/date-picker/YDatePickerControl.mjs.map +1 -1
  28. package/lib/components/date-picker/YMonthPicker.mjs.map +1 -1
  29. package/lib/components/date-picker/YYearPicker.mjs.map +1 -1
  30. package/lib/components/dialog/index.mjs.map +1 -1
  31. package/lib/components/divider/YDivider.mjs.map +1 -1
  32. package/lib/components/divider/YDivider.scss +2 -2
  33. package/lib/components/draggable/YDraggable.mjs +1 -1
  34. package/lib/components/draggable/YDraggable.mjs.map +1 -1
  35. package/lib/components/dropdown/YDropdown.mjs.map +1 -1
  36. package/lib/components/dropdown/YDropdown.scss +27 -27
  37. package/lib/components/field-input/index.mjs.map +1 -1
  38. package/lib/components/form/YForm.mjs.map +1 -1
  39. package/lib/components/icon/YIcon.mjs.map +1 -1
  40. package/lib/components/icon/YIcon.scss +18 -18
  41. package/lib/components/icon/poly.mjs +57 -0
  42. package/lib/components/icon/poly.mjs.map +1 -0
  43. package/lib/components/icons/YIconCheckbox.mjs.map +1 -1
  44. package/lib/components/icons/YIconClear.mjs.map +1 -1
  45. package/lib/components/icons/YIconDropdown.mjs.map +1 -1
  46. package/lib/components/icons/YIconExpand.mjs.map +1 -1
  47. package/lib/components/icons/YIconPageControl.mjs.map +1 -1
  48. package/lib/components/icons/YIconSort.mjs.map +1 -1
  49. package/lib/components/icons/YIconSort.scss +24 -24
  50. package/lib/components/icons/index.mjs.map +1 -1
  51. package/lib/components/img/YImg.mjs +4 -4
  52. package/lib/components/img/YImg.mjs.map +1 -1
  53. package/lib/components/index.mjs.map +1 -1
  54. package/lib/components/input/YInput.mjs.map +1 -1
  55. package/lib/components/input/YInput.scss +258 -258
  56. package/lib/components/ip-field/YIpv4Field.mjs.map +1 -1
  57. package/lib/components/layer/YLayer.mjs.map +1 -1
  58. package/lib/components/layer/active-stack.mjs.map +1 -1
  59. package/lib/components/layer/base.mjs.map +1 -1
  60. package/lib/components/layer/content.mjs.map +1 -1
  61. package/lib/components/layer/scroll-strategies.mjs.map +1 -1
  62. package/lib/components/list/YList.mjs.map +1 -1
  63. package/lib/components/list/YListItem.mjs.map +1 -1
  64. package/lib/components/loading/YSpinnerRing.mjs.map +1 -1
  65. package/lib/components/menu/YMenu.mjs +2 -2
  66. package/lib/components/menu/YMenu.mjs.map +1 -1
  67. package/lib/components/menu/YMenu.scss +25 -25
  68. package/lib/components/navigation/YNavigation.mjs.map +1 -1
  69. package/lib/components/pagination/YPagination.mjs.map +1 -1
  70. package/lib/components/pagination/YPagination.scss +52 -52
  71. package/lib/components/panel/YDividePanel.mjs.map +1 -1
  72. package/lib/components/plate/YPlate.mjs +2 -2
  73. package/lib/components/plate/YPlate.mjs.map +1 -1
  74. package/lib/components/progress-bar/YProgressBar.mjs.map +1 -1
  75. package/lib/components/progress-bar/YProgressBar.scss +120 -120
  76. package/lib/components/progress-ring/YProgressRing.mjs +2 -2
  77. package/lib/components/progress-ring/YProgressRing.mjs.map +1 -1
  78. package/lib/components/progress-ring/YProgressRing.scss +38 -38
  79. package/lib/components/progress-ring/index.mjs.map +1 -1
  80. package/lib/components/select/YSelect.mjs +1 -1
  81. package/lib/components/select/YSelect.mjs.map +1 -1
  82. package/lib/components/slider/YSlider.mjs.map +1 -1
  83. package/lib/components/snackbar/YSnackbar.mjs +5 -5
  84. package/lib/components/snackbar/YSnackbar.mjs.map +1 -1
  85. package/lib/components/switch/YSwitch.mjs.map +1 -1
  86. package/lib/components/switch/YSwitch.scss +211 -211
  87. package/lib/components/tab/YTab.mjs.map +1 -1
  88. package/lib/components/tab/YTab.scss +73 -73
  89. package/lib/components/tab/YTabs.mjs.map +1 -1
  90. package/lib/components/tab/YTabs.scss +8 -8
  91. package/lib/components/tab/index.mjs.map +1 -1
  92. package/lib/components/tab/types.mjs.map +1 -1
  93. package/lib/components/table/YDataTableBody.mjs.map +1 -1
  94. package/lib/components/table/YDataTableCell.mjs.map +1 -1
  95. package/lib/components/table/YDataTableHead.mjs.map +1 -1
  96. package/lib/components/table/YDataTableLayer.mjs.map +1 -1
  97. package/lib/components/table/YDataTableRow.mjs.map +1 -1
  98. package/lib/components/table/YTable.mjs.map +1 -1
  99. package/lib/components/table/YTable.scss +157 -157
  100. package/lib/components/table/composibles/header.mjs.map +1 -1
  101. package/lib/components/table/composibles/items.mjs.map +1 -1
  102. package/lib/components/table/composibles/options.mjs.map +1 -1
  103. package/lib/components/table/composibles/pagination.mjs.map +1 -1
  104. package/lib/components/table/composibles/selection.mjs.map +1 -1
  105. package/lib/components/table/composibles/sorted-items.mjs.map +1 -1
  106. package/lib/components/table/composibles/sorting.mjs.map +1 -1
  107. package/lib/components/table/types/header.mjs.map +1 -1
  108. package/lib/components/table/types/index.mjs.map +1 -1
  109. package/lib/components/table/types/row.mjs.map +1 -1
  110. package/lib/components/text-ellipsis/YTextEllipsis.mjs.map +1 -1
  111. package/lib/components/text-ellipsis/YTextEllipsis.scss +43 -43
  112. package/lib/components/text-highlighter/YTextHighlighter.mjs.map +1 -1
  113. package/lib/components/text-interpolation/YTi.mjs.map +1 -1
  114. package/lib/components/textarea/YTextarea.mjs.map +1 -1
  115. package/lib/components/toggle-button/YToggleButton.mjs.map +1 -1
  116. package/lib/components/tooltip/YTooltip.mjs +14 -13
  117. package/lib/components/tooltip/YTooltip.mjs.map +1 -1
  118. package/lib/components/tree-view/YTreeView.scss +81 -81
  119. package/lib/components/tree-view/types.mjs.map +1 -1
  120. package/lib/components/tree-view/util.mjs.map +1 -1
  121. package/lib/composables/choice.mjs.map +1 -1
  122. package/lib/composables/communication.mjs.map +1 -1
  123. package/lib/composables/component.mjs.map +1 -1
  124. package/lib/composables/coordinate/arrangement.mjs.map +1 -1
  125. package/lib/composables/coordinate/index.mjs.map +1 -1
  126. package/lib/composables/coordinate/levitation.mjs +2 -2
  127. package/lib/composables/coordinate/levitation.mjs.map +1 -1
  128. package/lib/composables/coordinate/types.mjs.map +1 -1
  129. package/lib/composables/coordinate/utils/point.mjs.map +1 -1
  130. package/lib/composables/date/factory.mjs.map +1 -1
  131. package/lib/composables/date/index.mjs.map +1 -1
  132. package/lib/composables/date/setting.mjs.map +1 -1
  133. package/lib/composables/date/types.mjs.map +1 -1
  134. package/lib/composables/defaults/index.mjs.map +1 -1
  135. package/lib/composables/defaults/share.mjs.map +1 -1
  136. package/lib/composables/defaults/types.mjs.map +1 -1
  137. package/lib/composables/dimension.mjs.map +1 -1
  138. package/lib/composables/focus.mjs.map +1 -1
  139. package/lib/composables/form.mjs.map +1 -1
  140. package/lib/composables/group.mjs +194 -0
  141. package/lib/composables/group.mjs.map +1 -0
  142. package/lib/composables/i18n/index.mjs.map +1 -1
  143. package/lib/composables/i18n/locale.mjs.map +1 -1
  144. package/lib/composables/i18n/rtl.mjs.map +1 -1
  145. package/lib/composables/i18n/share.mjs.map +1 -1
  146. package/lib/composables/icon.mjs.map +1 -1
  147. package/lib/composables/index.mjs.map +1 -1
  148. package/lib/composables/layer-group.mjs.map +1 -1
  149. package/lib/composables/layout.mjs.map +1 -1
  150. package/lib/composables/list-items.mjs.map +1 -1
  151. package/lib/composables/progress.mjs.map +1 -1
  152. package/lib/composables/ref.mjs.map +1 -1
  153. package/lib/composables/resize-observer.mjs.map +1 -1
  154. package/lib/composables/scope.mjs.map +1 -1
  155. package/lib/composables/theme/factory.mjs.map +1 -1
  156. package/lib/composables/theme/index.mjs.map +1 -1
  157. package/lib/composables/theme/setting.mjs.map +1 -1
  158. package/lib/composables/theme/types.mjs.map +1 -1
  159. package/lib/composables/timing.mjs.map +1 -1
  160. package/lib/composables/transition.mjs.map +1 -1
  161. package/lib/composables/validation.mjs.map +1 -1
  162. package/lib/composables/vue-router.mjs.map +1 -1
  163. package/lib/directives/plate-wave/index.mjs +2 -2
  164. package/lib/directives/plate-wave/index.mjs.map +1 -1
  165. package/lib/etc/index.mjs.map +1 -1
  166. package/lib/i18n/built-in.mjs.map +1 -1
  167. package/lib/i18n/config.mjs.map +1 -1
  168. package/lib/i18n/types.mjs.map +1 -1
  169. package/lib/index.mjs.map +1 -1
  170. package/lib/locales/en.mjs.map +1 -1
  171. package/lib/locales/index.mjs.map +1 -1
  172. package/lib/locales/ko.mjs.map +1 -1
  173. package/lib/styles/_elevation.scss +16 -16
  174. package/lib/styles/_palette.scss +1 -1
  175. package/lib/styles/base.scss +130 -130
  176. package/lib/styles/settings/_elevation.scss +20 -20
  177. package/lib/styles/settings/_variables.scss +14 -14
  178. package/lib/styles/theme/dark.scss +11 -11
  179. package/lib/styles/theme/light.scss +11 -11
  180. package/lib/styles/util/_mixin.scss +33 -33
  181. package/lib/styles/util/_var.scss +18 -18
  182. package/lib/util/anchor.mjs.map +1 -1
  183. package/lib/util/collection.mjs.map +1 -1
  184. package/lib/util/color/const.mjs.map +1 -1
  185. package/lib/util/color/index.mjs +12 -12
  186. package/lib/util/color/index.mjs.map +1 -1
  187. package/lib/util/color/types.mjs.map +1 -1
  188. package/lib/util/color/utils/math-utils.mjs +62 -62
  189. package/lib/util/color/utils/math-utils.mjs.map +1 -1
  190. package/lib/util/component/component.mjs.map +1 -1
  191. package/lib/util/component/index.mjs.map +1 -1
  192. package/lib/util/component/inject-self.mjs.map +1 -1
  193. package/lib/util/component/props.mjs.map +1 -1
  194. package/lib/util/component/types.mjs.map +1 -1
  195. package/lib/util/date/index.mjs.map +1 -1
  196. package/lib/util/date/types.mjs.map +1 -1
  197. package/lib/util/debounce.mjs.map +1 -1
  198. package/lib/util/environments.mjs.map +1 -1
  199. package/lib/util/index.mjs.map +1 -1
  200. package/lib/util/parser.mjs +31 -0
  201. package/lib/util/parser.mjs.map +1 -0
  202. package/lib/util/reactivity.mjs +3 -3
  203. package/lib/util/reactivity.mjs.map +1 -1
  204. package/lib/util/rect.mjs.map +1 -1
  205. package/lib/util/validation.mjs.map +1 -1
  206. package/lib/util/vue-component/index.mjs +63 -0
  207. package/lib/util/vue-component/index.mjs.map +1 -0
  208. package/lib/util/vue-component/props.mjs +37 -0
  209. package/lib/util/vue-component/props.mjs.map +1 -0
  210. package/lib/util/vue-component/types.mjs +2 -0
  211. package/lib/util/vue-component/types.mjs.map +1 -0
  212. package/lib/util/vue-component.mjs +102 -0
  213. package/lib/util/vue-component.mjs.map +1 -0
  214. package/package.json +120 -120
  215. package/types/components/dropdown/YDropdown.d.ts +4 -4
  216. package/types/components/select/YSelect.d.ts +1539 -0
  217. package/types/components/tooltip/YTooltip.d.ts +502 -0
  218. package/types/globals.d.ts +20 -20
  219. package/types/shims.d.ts +55 -55
@@ -1 +1 @@
1
- {"version":3,"file":"factory.mjs","names":["reactive","watch","constructAdapter","options","locale","instance","adapter","value","formats"],"sources":["../../../src/composables/date/factory.ts"],"sourcesContent":["import { reactive, watch } from 'vue';\n\nimport { LocaleModule } from '@/i18n/types';\n\nexport function constructAdapter(options: any, locale: LocaleModule) {\n const instance = reactive(\n typeof options.adapter === 'function'\n ? new options.adapter({\n locale: options.locale[locale.locale.value] ?? locale.locale.value,\n formats: options.formats,\n })\n : options.adapter,\n );\n\n watch(locale.locale, (value) => {\n instance.locale = options.locale[value] ?? value ?? instance.locale;\n });\n\n return instance;\n}\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAIrC,OAAO,SAASC,gBAAgBA,CAACC,OAAY,EAAEC,MAAoB,EAAE;EACnE,MAAMC,QAAQ,GAAGL,QAAQ,CACvB,OAAOG,OAAO,CAACG,OAAO,KAAK,UAAU,GACjC,IAAIH,OAAO,CAACG,OAAO,CAAC;IAClBF,MAAM,EAAED,OAAO,CAACC,MAAM,CAACA,MAAM,CAACA,MAAM,CAACG,KAAK,CAAC,IAAIH,MAAM,CAACA,MAAM,CAACG,KAAK;IAClEC,OAAO,EAAEL,OAAO,CAACK;EACnB,CAAC,CAAC,GACFL,OAAO,CAACG,OACd,CAAC;EAEDL,KAAK,CAACG,MAAM,CAACA,MAAM,EAAGG,KAAK,IAAK;IAC9BF,QAAQ,CAACD,MAAM,GAAGD,OAAO,CAACC,MAAM,CAACG,KAAK,CAAC,IAAIA,KAAK,IAAIF,QAAQ,CAACD,MAAM;EACrE,CAAC,CAAC;EAEF,OAAOC,QAAQ;AACjB"}
1
+ {"version":3,"file":"factory.mjs","names":["reactive","watch","constructAdapter","options","locale","instance","adapter","value","formats"],"sources":["../../../src/composables/date/factory.ts"],"sourcesContent":["import { reactive, watch } from 'vue';\r\n\r\nimport { LocaleModule } from '@/i18n/types';\r\n\r\nexport function constructAdapter(options: any, locale: LocaleModule) {\r\n const instance = reactive(\r\n typeof options.adapter === 'function'\r\n ? new options.adapter({\r\n locale: options.locale[locale.locale.value] ?? locale.locale.value,\r\n formats: options.formats,\r\n })\r\n : options.adapter,\r\n );\r\n\r\n watch(locale.locale, (value) => {\r\n instance.locale = options.locale[value] ?? value ?? instance.locale;\r\n });\r\n\r\n return instance;\r\n}\r\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAIrC,OAAO,SAASC,gBAAgBA,CAACC,OAAY,EAAEC,MAAoB,EAAE;EACnE,MAAMC,QAAQ,GAAGL,QAAQ,CACvB,OAAOG,OAAO,CAACG,OAAO,KAAK,UAAU,GACjC,IAAIH,OAAO,CAACG,OAAO,CAAC;IAClBF,MAAM,EAAED,OAAO,CAACC,MAAM,CAACA,MAAM,CAACA,MAAM,CAACG,KAAK,CAAC,IAAIH,MAAM,CAACA,MAAM,CAACG,KAAK;IAClEC,OAAO,EAAEL,OAAO,CAACK;EACnB,CAAC,CAAC,GACFL,OAAO,CAACG,OACd,CAAC;EAEDL,KAAK,CAACG,MAAM,CAACA,MAAM,EAAGG,KAAK,IAAK;IAC9BF,QAAQ,CAACD,MAAM,GAAGD,OAAO,CAACC,MAAM,CAACG,KAAK,CAAC,IAAIA,KAAK,IAAIF,QAAQ,CAACD,MAAM;EACrE,CAAC,CAAC;EAEF,OAAOC,QAAQ;AACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["inject","useI18n","constructAdapter","configureOptions","YUYEON_DATE_KEY","Symbol","for","YUYEON_DATE_OPTIONS_KEY","createDateModule","options","locale","_options","instance","useDate","Error","i18n"],"sources":["../../../src/composables/date/index.ts"],"sourcesContent":["import { inject } from 'vue';\n\nimport { LocaleModule } from '@/i18n/types';\n\nimport { useI18n } from '../i18n';\nimport { constructAdapter } from './factory';\nimport { configureOptions } from './setting';\nimport { DateInstance, DateOptions } from './types';\n\nexport const YUYEON_DATE_KEY = Symbol.for('yuyeon.date');\nexport const YUYEON_DATE_OPTIONS_KEY = Symbol.for('yuyeon.date-options');\n\nexport function createDateModule(options: DateOptions, locale: LocaleModule) {\n const _options = configureOptions(options);\n return {\n options: _options,\n instance: constructAdapter(_options, locale),\n };\n}\n\nexport function useDate(): DateInstance {\n const options = inject<any>(YUYEON_DATE_OPTIONS_KEY);\n if (!options)\n throw new Error('【yuyeon】 Not found provided \"DateModule\" for options');\n\n const i18n = useI18n();\n\n return constructAdapter(options, i18n);\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,KAAK;AAAC,SAIpBC,OAAO;AAAA,SACPC,gBAAgB;AAAA,SAChBC,gBAAgB;AAGzB,OAAO,MAAMC,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC;AACxD,OAAO,MAAMC,uBAAuB,GAAGF,MAAM,CAACC,GAAG,CAAC,qBAAqB,CAAC;AAExE,OAAO,SAASE,gBAAgBA,CAACC,OAAoB,EAAEC,MAAoB,EAAE;EAC3E,MAAMC,QAAQ,GAAGR,gBAAgB,CAACM,OAAO,CAAC;EAC1C,OAAO;IACLA,OAAO,EAAEE,QAAQ;IACjBC,QAAQ,EAAEV,gBAAgB,CAACS,QAAQ,EAAED,MAAM;EAC7C,CAAC;AACH;AAEA,OAAO,SAASG,OAAOA,CAAA,EAAiB;EACtC,MAAMJ,OAAO,GAAGT,MAAM,CAAMO,uBAAuB,CAAC;EACpD,IAAI,CAACE,OAAO,EACV,MAAM,IAAIK,KAAK,CAAC,sDAAsD,CAAC;EAEzE,MAAMC,IAAI,GAAGd,OAAO,CAAC,CAAC;EAEtB,OAAOC,gBAAgB,CAACO,OAAO,EAAEM,IAAI,CAAC;AACxC"}
1
+ {"version":3,"file":"index.mjs","names":["inject","useI18n","constructAdapter","configureOptions","YUYEON_DATE_KEY","Symbol","for","YUYEON_DATE_OPTIONS_KEY","createDateModule","options","locale","_options","instance","useDate","Error","i18n"],"sources":["../../../src/composables/date/index.ts"],"sourcesContent":["import { inject } from 'vue';\r\n\r\nimport { LocaleModule } from '@/i18n/types';\r\n\r\nimport { useI18n } from '../i18n';\r\nimport { constructAdapter } from './factory';\r\nimport { configureOptions } from './setting';\r\nimport { DateInstance, DateOptions } from './types';\r\n\r\nexport const YUYEON_DATE_KEY = Symbol.for('yuyeon.date');\r\nexport const YUYEON_DATE_OPTIONS_KEY = Symbol.for('yuyeon.date-options');\r\n\r\nexport function createDateModule(options: DateOptions, locale: LocaleModule) {\r\n const _options = configureOptions(options);\r\n return {\r\n options: _options,\r\n instance: constructAdapter(_options, locale),\r\n };\r\n}\r\n\r\nexport function useDate(): DateInstance {\r\n const options = inject<any>(YUYEON_DATE_OPTIONS_KEY);\r\n if (!options)\r\n throw new Error('【yuyeon】 Not found provided \"DateModule\" for options');\r\n\r\n const i18n = useI18n();\r\n\r\n return constructAdapter(options, i18n);\r\n}\r\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,KAAK;AAAC,SAIpBC,OAAO;AAAA,SACPC,gBAAgB;AAAA,SAChBC,gBAAgB;AAGzB,OAAO,MAAMC,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC;AACxD,OAAO,MAAMC,uBAAuB,GAAGF,MAAM,CAACC,GAAG,CAAC,qBAAqB,CAAC;AAExE,OAAO,SAASE,gBAAgBA,CAACC,OAAoB,EAAEC,MAAoB,EAAE;EAC3E,MAAMC,QAAQ,GAAGR,gBAAgB,CAACM,OAAO,CAAC;EAC1C,OAAO;IACLA,OAAO,EAAEE,QAAQ;IACjBC,QAAQ,EAAEV,gBAAgB,CAACS,QAAQ,EAAED,MAAM;EAC7C,CAAC;AACH;AAEA,OAAO,SAASG,OAAOA,CAAA,EAAiB;EACtC,MAAMJ,OAAO,GAAGT,MAAM,CAAMO,uBAAuB,CAAC;EACpD,IAAI,CAACE,OAAO,EACV,MAAM,IAAIK,KAAK,CAAC,sDAAsD,CAAC;EAEzE,MAAMC,IAAI,GAAGd,OAAO,CAAC,CAAC;EAEtB,OAAOC,gBAAgB,CAACO,OAAO,EAAEM,IAAI,CAAC;AACxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"setting.mjs","names":["localeCodesMap","mergeDeep","YuyeonDateAdapter","configureOptions","options","_options","adapter","locale"],"sources":["../../../src/composables/date/setting.ts"],"sourcesContent":["import { localeCodesMap } from '@/i18n/config';\nimport { mergeDeep } from '@/util/common';\nimport { YuyeonDateAdapter } from '@/util/date';\n\nimport type { DateOptions } from './types';\n\nexport function configureOptions(options?: DateOptions) {\n const _options = mergeDeep(\n {\n adapter: YuyeonDateAdapter,\n locale: localeCodesMap,\n },\n options,\n );\n\n return _options;\n}\n"],"mappings":"SAASA,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,iBAAiB;AAI1B,OAAO,SAASC,gBAAgBA,CAACC,OAAqB,EAAE;EACtD,MAAMC,QAAQ,GAAGJ,SAAS,CACxB;IACEK,OAAO,EAAEJ,iBAAiB;IAC1BK,MAAM,EAAEP;EACV,CAAC,EACDI,OACF,CAAC;EAED,OAAOC,QAAQ;AACjB"}
1
+ {"version":3,"file":"setting.mjs","names":["localeCodesMap","mergeDeep","YuyeonDateAdapter","configureOptions","options","_options","adapter","locale"],"sources":["../../../src/composables/date/setting.ts"],"sourcesContent":["import { localeCodesMap } from '@/i18n/config';\r\nimport { mergeDeep } from '@/util/common';\r\nimport { YuyeonDateAdapter } from '@/util/date';\r\n\r\nimport type { DateOptions } from './types';\r\n\r\nexport function configureOptions(options?: DateOptions) {\r\n const _options = mergeDeep(\r\n {\r\n adapter: YuyeonDateAdapter,\r\n locale: localeCodesMap,\r\n },\r\n options,\r\n );\r\n\r\n return _options;\r\n}\r\n"],"mappings":"SAASA,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,iBAAiB;AAI1B,OAAO,SAASC,gBAAgBA,CAACC,OAAqB,EAAE;EACtD,MAAMC,QAAQ,GAAGJ,SAAS,CACxB;IACEK,OAAO,EAAEJ,iBAAiB;IAC1BK,MAAM,EAAEP;EACV,CAAC,EACDI,OACF,CAAC;EAED,OAAOC,QAAQ;AACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/composables/date/types.ts"],"sourcesContent":["import type { DateAdapter } from '@/util/date/types';\n\nexport interface DateOptions {\n adapter: any;\n locale: Record<string, any>;\n formats?: Record<string, any>;\n}\n\nexport interface DateInstanceType {\n instanceType: unknown;\n}\n\nexport interface DateInstance<T = DateInstanceType['instanceType']>\n extends DateAdapter<T> {\n locale?: any;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/composables/date/types.ts"],"sourcesContent":["import type { DateAdapter } from '@/util/date/types';\r\n\r\nexport interface DateOptions {\r\n adapter: any;\r\n locale: Record<string, any>;\r\n formats?: Record<string, any>;\r\n}\r\n\r\nexport interface DateInstanceType {\r\n instanceType: unknown;\r\n}\r\n\r\nexport interface DateInstance<T = DateInstanceType['instanceType']>\r\n extends DateAdapter<T> {\r\n locale?: any;\r\n}\r\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["computed","getCurrentInstance","inject","provide","ref","shallowRef","unref","watchEffect","clamp","mergeDeep","injectSelf","propIsDefined","YUYEON_DEFAULTS_KEY","configureOptions","options","createDefaultsModule","useDefaultsModule","defaults","Error","provideDefaults","defaultsModule","provides","computedDefaults","disabled","value","root","reset","scoped","revision","Array","isArray","revisions","push","resetNum","isNaN","Number","length","useSuperDefaults","props","arguments","undefined","name","vm","type","__name","namedDefaults","_subcomponentDefaults","_props","Proxy","get","target","prop","propValue","Reflect","filter","v","vnode","global","subComponents","Object","entries","_ref","key","startsWith","toUpperCase","fromEntries","provideSubDefaults","injected","useDefaults"],"sources":["../../../src/composables/defaults/index.ts"],"sourcesContent":["import {\n type MaybeRef,\n computed,\n getCurrentInstance,\n inject,\n provide,\n ref,\n shallowRef,\n unref,\n watchEffect,\n} from 'vue';\n\nimport { clamp, mergeDeep } from '@/util/common';\nimport { injectSelf } from '@/util/component/inject-self';\nimport { propIsDefined } from '@/util/component/props';\n\nimport { YUYEON_DEFAULTS_KEY } from './share';\nimport {\n DefaultsModuleInstance,\n DefaultsOptions,\n ProvideDefaultsOptions,\n} from './types';\n\nfunction configureOptions(options?: DefaultsOptions) {\n return ref<DefaultsModuleInstance>(options);\n}\n\nexport function createDefaultsModule(options?: DefaultsModuleInstance) {\n return configureOptions(options);\n}\n\nexport function useDefaultsModule() {\n const defaults = inject(YUYEON_DEFAULTS_KEY);\n if (!defaults)\n throw new Error('【yuyeon】 Not found provided \"DefaultsModule\"');\n\n return defaults;\n}\n\nexport function provideDefaults(\n defaults?: MaybeRef<DefaultsModuleInstance | undefined>,\n options?: ProvideDefaultsOptions,\n) {\n const defaultsModule = useDefaultsModule();\n const provides = ref(defaults);\n\n const computedDefaults = computed<DefaultsModuleInstance>(() => {\n if (unref(options?.disabled)) return defaultsModule.value;\n\n const root = unref(options?.root);\n const reset = unref(options?.reset);\n const scoped = unref(options?.scoped);\n\n if (provides.value == null && !(scoped || reset || root))\n return defaultsModule.value;\n\n let revision = provides.value ?? {};\n if (!Array.isArray(revision?.revisions)) {\n revision.revisions = [];\n }\n revision.revisions.push(defaultsModule.value);\n if (scoped) return revision;\n if (reset || root) {\n const { revisions } = revision;\n const resetNum = isNaN(Number(reset))\n ? 0\n : clamp(Number(reset), 0, revisions.length);\n revision = revisions[revisions.length - resetNum];\n if (revision && typeof root === 'string' && root in revision) {\n revision = mergeDeep(revision, revision[root]);\n }\n\n return revision;\n }\n });\n\n provide(YUYEON_DEFAULTS_KEY, computedDefaults);\n\n return computedDefaults;\n}\n\nexport function useSuperDefaults(\n props: Record<string, any> = {},\n name?: string,\n defaults = useDefaultsModule(),\n) {\n const vm = getCurrentInstance()!;\n name = name || vm?.type?.name || vm?.type?.__name;\n if (!name) throw new Error('Missing component name');\n\n const namedDefaults = computed(() => defaults.value?.[name]);\n const _subcomponentDefaults = shallowRef();\n\n const _props = new Proxy(props, {\n get(target, prop) {\n const propValue = Reflect.get(target, prop);\n if (prop === 'class' || prop === 'style') {\n return [namedDefaults.value?.[prop], propValue].filter(\n (v) => v != null,\n );\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return namedDefaults.value?.[prop] !== undefined\n ? namedDefaults.value?.[prop]\n : defaults.value?.global?.[prop] !== undefined\n ? defaults.value?.global?.[prop]\n : propValue;\n }\n return propValue;\n },\n });\n\n watchEffect(() => {\n if (namedDefaults.value) {\n const subComponents = Object.entries(namedDefaults.value).filter(\n ([key]) => key.startsWith(key[0].toUpperCase()),\n );\n _subcomponentDefaults.value = subComponents.length\n ? Object.fromEntries(subComponents)\n : undefined;\n } else {\n _subcomponentDefaults.value = undefined;\n }\n });\n\n function provideSubDefaults() {\n const injected = injectSelf(YUYEON_DEFAULTS_KEY, vm);\n provide(\n YUYEON_DEFAULTS_KEY,\n computed(() => {\n return _subcomponentDefaults.value\n ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value)\n : injected?.value;\n }),\n );\n }\n\n return { props: _props, provideSubDefaults };\n}\n\nexport function useDefaults(\n props: undefined,\n name: string,\n): Record<string, any>;\nexport function useDefaults(props: Record<string, any> = {}, name?: string) {\n const { props: _props, provideSubDefaults } = useSuperDefaults(props, name);\n provideSubDefaults();\n\n return _props;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["computed","getCurrentInstance","inject","provide","ref","shallowRef","unref","watchEffect","clamp","mergeDeep","injectSelf","propIsDefined","YUYEON_DEFAULTS_KEY","configureOptions","options","createDefaultsModule","useDefaultsModule","defaults","Error","provideDefaults","defaultsModule","provides","computedDefaults","disabled","value","root","reset","scoped","revision","Array","isArray","revisions","push","resetNum","isNaN","Number","length","useSuperDefaults","props","arguments","undefined","name","vm","type","__name","namedDefaults","_subcomponentDefaults","_props","Proxy","get","target","prop","propValue","Reflect","filter","v","vnode","global","subComponents","Object","entries","_ref","key","startsWith","toUpperCase","fromEntries","provideSubDefaults","injected","useDefaults"],"sources":["../../../src/composables/defaults/index.ts"],"sourcesContent":["import {\r\n type MaybeRef,\r\n computed,\r\n getCurrentInstance,\r\n inject,\r\n provide,\r\n ref,\r\n shallowRef,\r\n unref,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { clamp, mergeDeep } from '@/util/common';\r\nimport { injectSelf } from '@/util/component/inject-self';\r\nimport { propIsDefined } from '@/util/component/props';\r\n\r\nimport { YUYEON_DEFAULTS_KEY } from './share';\r\nimport {\r\n DefaultsModuleInstance,\r\n DefaultsOptions,\r\n ProvideDefaultsOptions,\r\n} from './types';\r\n\r\nfunction configureOptions(options?: DefaultsOptions) {\r\n return ref<DefaultsModuleInstance>(options);\r\n}\r\n\r\nexport function createDefaultsModule(options?: DefaultsModuleInstance) {\r\n return configureOptions(options);\r\n}\r\n\r\nexport function useDefaultsModule() {\r\n const defaults = inject(YUYEON_DEFAULTS_KEY);\r\n if (!defaults)\r\n throw new Error('【yuyeon】 Not found provided \"DefaultsModule\"');\r\n\r\n return defaults;\r\n}\r\n\r\nexport function provideDefaults(\r\n defaults?: MaybeRef<DefaultsModuleInstance | undefined>,\r\n options?: ProvideDefaultsOptions,\r\n) {\r\n const defaultsModule = useDefaultsModule();\r\n const provides = ref(defaults);\r\n\r\n const computedDefaults = computed<DefaultsModuleInstance>(() => {\r\n if (unref(options?.disabled)) return defaultsModule.value;\r\n\r\n const root = unref(options?.root);\r\n const reset = unref(options?.reset);\r\n const scoped = unref(options?.scoped);\r\n\r\n if (provides.value == null && !(scoped || reset || root))\r\n return defaultsModule.value;\r\n\r\n let revision = provides.value ?? {};\r\n if (!Array.isArray(revision?.revisions)) {\r\n revision.revisions = [];\r\n }\r\n revision.revisions.push(defaultsModule.value);\r\n if (scoped) return revision;\r\n if (reset || root) {\r\n const { revisions } = revision;\r\n const resetNum = isNaN(Number(reset))\r\n ? 0\r\n : clamp(Number(reset), 0, revisions.length);\r\n revision = revisions[revisions.length - resetNum];\r\n if (revision && typeof root === 'string' && root in revision) {\r\n revision = mergeDeep(revision, revision[root]);\r\n }\r\n\r\n return revision;\r\n }\r\n });\r\n\r\n provide(YUYEON_DEFAULTS_KEY, computedDefaults);\r\n\r\n return computedDefaults;\r\n}\r\n\r\nexport function useSuperDefaults(\r\n props: Record<string, any> = {},\r\n name?: string,\r\n defaults = useDefaultsModule(),\r\n) {\r\n const vm = getCurrentInstance()!;\r\n name = name || vm?.type?.name || vm?.type?.__name;\r\n if (!name) throw new Error('Missing component name');\r\n\r\n const namedDefaults = computed(() => defaults.value?.[name]);\r\n const _subcomponentDefaults = shallowRef();\r\n\r\n const _props = new Proxy(props, {\r\n get(target, prop) {\r\n const propValue = Reflect.get(target, prop);\r\n if (prop === 'class' || prop === 'style') {\r\n return [namedDefaults.value?.[prop], propValue].filter(\r\n (v) => v != null,\r\n );\r\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\r\n return namedDefaults.value?.[prop] !== undefined\r\n ? namedDefaults.value?.[prop]\r\n : defaults.value?.global?.[prop] !== undefined\r\n ? defaults.value?.global?.[prop]\r\n : propValue;\r\n }\r\n return propValue;\r\n },\r\n });\r\n\r\n watchEffect(() => {\r\n if (namedDefaults.value) {\r\n const subComponents = Object.entries(namedDefaults.value).filter(\r\n ([key]) => key.startsWith(key[0].toUpperCase()),\r\n );\r\n _subcomponentDefaults.value = subComponents.length\r\n ? Object.fromEntries(subComponents)\r\n : undefined;\r\n } else {\r\n _subcomponentDefaults.value = undefined;\r\n }\r\n });\r\n\r\n function provideSubDefaults() {\r\n const injected = injectSelf(YUYEON_DEFAULTS_KEY, vm);\r\n provide(\r\n YUYEON_DEFAULTS_KEY,\r\n computed(() => {\r\n return _subcomponentDefaults.value\r\n ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value)\r\n : injected?.value;\r\n }),\r\n );\r\n }\r\n\r\n return { props: _props, provideSubDefaults };\r\n}\r\n\r\nexport function useDefaults(\r\n props: undefined,\r\n name: string,\r\n): Record<string, any>;\r\nexport function useDefaults(props: Record<string, any> = {}, name?: string) {\r\n const { props: _props, provideSubDefaults } = useSuperDefaults(props, name);\r\n provideSubDefaults();\r\n\r\n return _props;\r\n}\r\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"share.mjs","names":["YUYEON_DEFAULTS_KEY","Symbol","for"],"sources":["../../../src/composables/defaults/share.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue';\n\nimport type { DefaultsModuleInstance } from './types';\n\nexport const YUYEON_DEFAULTS_KEY: InjectionKey<Ref<DefaultsModuleInstance>> =\n Symbol.for('yuyeon.defaults');\n"],"mappings":"AAIA,OAAO,MAAMA,mBAA8D,GACzEC,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC"}
1
+ {"version":3,"file":"share.mjs","names":["YUYEON_DEFAULTS_KEY","Symbol","for"],"sources":["../../../src/composables/defaults/share.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue';\r\n\r\nimport type { DefaultsModuleInstance } from './types';\r\n\r\nexport const YUYEON_DEFAULTS_KEY: InjectionKey<Ref<DefaultsModuleInstance>> =\r\n Symbol.for('yuyeon.defaults');\r\n"],"mappings":"AAIA,OAAO,MAAMA,mBAA8D,GACzEC,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/composables/defaults/types.ts"],"sourcesContent":["import { type MaybeRef } from 'vue';\n\nexport type DefaultsModuleInstance = undefined | {\n [key: string]: any;\n}\n\nexport type DefaultsOptions = Partial<DefaultsModuleInstance>;\n\nexport type ProvideDefaultsOptions = {\n disabled?: MaybeRef<boolean | undefined>\n reset?: MaybeRef<number | string | undefined>\n root?: MaybeRef<boolean | string | undefined>\n scoped?: MaybeRef<boolean | undefined>\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/composables/defaults/types.ts"],"sourcesContent":["import { type MaybeRef } from 'vue';\r\n\r\nexport type DefaultsModuleInstance = undefined | {\r\n [key: string]: any;\r\n}\r\n\r\nexport type DefaultsOptions = Partial<DefaultsModuleInstance>;\r\n\r\nexport type ProvideDefaultsOptions = {\r\n disabled?: MaybeRef<boolean | undefined>\r\n reset?: MaybeRef<number | string | undefined>\r\n root?: MaybeRef<boolean | string | undefined>\r\n scoped?: MaybeRef<boolean | undefined>\r\n}\r\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"dimension.mjs","names":["computed","propsFactory","toStyleSizeValue","dimensionPropsOptions","minWidth","Number","String","width","maxWidth","minHeight","height","maxHeight","pressDimensionPropsOptions","useDimension","props","dimensionStyles"],"sources":["../../src/composables/dimension.ts"],"sourcesContent":["import { type ExtractPropTypes, type PropType, computed } from 'vue';\n\nimport { propsFactory } from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nconst dimensionPropsOptions = {\n minWidth: [Number, String] as PropType<number | string>,\n width: [Number, String] as PropType<number | string>,\n maxWidth: [Number, String] as PropType<number | string>,\n minHeight: [Number, String] as PropType<number | string>,\n height: [Number, String] as PropType<number | string>,\n maxHeight: [Number, String] as PropType<number | string>,\n};\n\nexport const pressDimensionPropsOptions = propsFactory(\n dimensionPropsOptions,\n 'dimension',\n);\n\nexport function useDimension(\n props: ExtractPropTypes<typeof dimensionPropsOptions>,\n) {\n const dimensionStyles = computed(() => ({\n minWidth: toStyleSizeValue(props.minWidth),\n width: toStyleSizeValue(props.width),\n maxWidth: toStyleSizeValue(props.maxWidth),\n minHeight: toStyleSizeValue(props.minHeight),\n height: toStyleSizeValue(props.height),\n maxHeight: toStyleSizeValue(props.maxHeight),\n }));\n\n return {\n dimensionStyles,\n };\n}\n"],"mappings":"AAAA,SAA+CA,QAAQ,QAAQ,KAAK;AAAC,SAE5DC,YAAY;AAAA,SACZC,gBAAgB;AAEzB,MAAMC,qBAAqB,GAAG;EAC5BC,QAAQ,EAAE,CAACC,MAAM,EAAEC,MAAM,CAA8B;EACvDC,KAAK,EAAE,CAACF,MAAM,EAAEC,MAAM,CAA8B;EACpDE,QAAQ,EAAE,CAACH,MAAM,EAAEC,MAAM,CAA8B;EACvDG,SAAS,EAAE,CAACJ,MAAM,EAAEC,MAAM,CAA8B;EACxDI,MAAM,EAAE,CAACL,MAAM,EAAEC,MAAM,CAA8B;EACrDK,SAAS,EAAE,CAACN,MAAM,EAAEC,MAAM;AAC5B,CAAC;AAED,OAAO,MAAMM,0BAA0B,GAAGX,YAAY,CACpDE,qBAAqB,EACrB,WACF,CAAC;AAED,OAAO,SAASU,YAAYA,CAC1BC,KAAqD,EACrD;EACA,MAAMC,eAAe,GAAGf,QAAQ,CAAC,OAAO;IACtCI,QAAQ,EAAEF,gBAAgB,CAACY,KAAK,CAACV,QAAQ,CAAC;IAC1CG,KAAK,EAAEL,gBAAgB,CAACY,KAAK,CAACP,KAAK,CAAC;IACpCC,QAAQ,EAAEN,gBAAgB,CAACY,KAAK,CAACN,QAAQ,CAAC;IAC1CC,SAAS,EAAEP,gBAAgB,CAACY,KAAK,CAACL,SAAS,CAAC;IAC5CC,MAAM,EAAER,gBAAgB,CAACY,KAAK,CAACJ,MAAM,CAAC;IACtCC,SAAS,EAAET,gBAAgB,CAACY,KAAK,CAACH,SAAS;EAC7C,CAAC,CAAC,CAAC;EAEH,OAAO;IACLI;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"dimension.mjs","names":["computed","propsFactory","toStyleSizeValue","dimensionPropsOptions","minWidth","Number","String","width","maxWidth","minHeight","height","maxHeight","pressDimensionPropsOptions","useDimension","props","dimensionStyles"],"sources":["../../src/composables/dimension.ts"],"sourcesContent":["import { type ExtractPropTypes, type PropType, computed } from 'vue';\r\n\r\nimport { propsFactory } from '@/util/component';\r\nimport { toStyleSizeValue } from '@/util/ui';\r\n\r\nconst dimensionPropsOptions = {\r\n minWidth: [Number, String] as PropType<number | string>,\r\n width: [Number, String] as PropType<number | string>,\r\n maxWidth: [Number, String] as PropType<number | string>,\r\n minHeight: [Number, String] as PropType<number | string>,\r\n height: [Number, String] as PropType<number | string>,\r\n maxHeight: [Number, String] as PropType<number | string>,\r\n};\r\n\r\nexport const pressDimensionPropsOptions = propsFactory(\r\n dimensionPropsOptions,\r\n 'dimension',\r\n);\r\n\r\nexport function useDimension(\r\n props: ExtractPropTypes<typeof dimensionPropsOptions>,\r\n) {\r\n const dimensionStyles = computed(() => ({\r\n minWidth: toStyleSizeValue(props.minWidth),\r\n width: toStyleSizeValue(props.width),\r\n maxWidth: toStyleSizeValue(props.maxWidth),\r\n minHeight: toStyleSizeValue(props.minHeight),\r\n height: toStyleSizeValue(props.height),\r\n maxHeight: toStyleSizeValue(props.maxHeight),\r\n }));\r\n\r\n return {\r\n dimensionStyles,\r\n };\r\n}\r\n"],"mappings":"AAAA,SAA+CA,QAAQ,QAAQ,KAAK;AAAC,SAE5DC,YAAY;AAAA,SACZC,gBAAgB;AAEzB,MAAMC,qBAAqB,GAAG;EAC5BC,QAAQ,EAAE,CAACC,MAAM,EAAEC,MAAM,CAA8B;EACvDC,KAAK,EAAE,CAACF,MAAM,EAAEC,MAAM,CAA8B;EACpDE,QAAQ,EAAE,CAACH,MAAM,EAAEC,MAAM,CAA8B;EACvDG,SAAS,EAAE,CAACJ,MAAM,EAAEC,MAAM,CAA8B;EACxDI,MAAM,EAAE,CAACL,MAAM,EAAEC,MAAM,CAA8B;EACrDK,SAAS,EAAE,CAACN,MAAM,EAAEC,MAAM;AAC5B,CAAC;AAED,OAAO,MAAMM,0BAA0B,GAAGX,YAAY,CACpDE,qBAAqB,EACrB,WACF,CAAC;AAED,OAAO,SAASU,YAAYA,CAC1BC,KAAqD,EACrD;EACA,MAAMC,eAAe,GAAGf,QAAQ,CAAC,OAAO;IACtCI,QAAQ,EAAEF,gBAAgB,CAACY,KAAK,CAACV,QAAQ,CAAC;IAC1CG,KAAK,EAAEL,gBAAgB,CAACY,KAAK,CAACP,KAAK,CAAC;IACpCC,QAAQ,EAAEN,gBAAgB,CAACY,KAAK,CAACN,QAAQ,CAAC;IAC1CC,SAAS,EAAEP,gBAAgB,CAACY,KAAK,CAACL,SAAS,CAAC;IAC5CC,MAAM,EAAER,gBAAgB,CAACY,KAAK,CAACJ,MAAM,CAAC;IACtCC,SAAS,EAAET,gBAAgB,CAACY,KAAK,CAACH,SAAS;EAC7C,CAAC,CAAC,CAAC;EAEH,OAAO;IACLI;EACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"focus.mjs","names":["computed","propsFactory","useModelDuplex","focusPropsOptions","focused","Boolean","Function","pressFocusPropsOptions","useFocus","props","className","whenFocus","value","whenBlur","focusedClasses"],"sources":["../../src/composables/focus.ts"],"sourcesContent":["import { type ExtractPropTypes, type PropType, computed } from 'vue';\n\nimport { propsFactory } from '@/util/component';\n\nimport { useModelDuplex } from './communication';\n\nconst focusPropsOptions = {\n focused: Boolean,\n 'onUpdate:focused': Function as PropType<(v: boolean) => void>,\n};\n\nexport const pressFocusPropsOptions = propsFactory(focusPropsOptions, 'focus');\n\nexport function useFocus(\n props: ExtractPropTypes<typeof focusPropsOptions>,\n className: string,\n) {\n const focused = useModelDuplex(props, 'focused');\n\n function whenFocus() {\n focused.value = true;\n }\n\n function whenBlur() {\n focused.value = false;\n }\n\n const focusedClasses = computed(() => {\n return {\n [`${className}--focused`]: focused.value,\n };\n });\n\n return {\n focused,\n whenFocus,\n whenBlur,\n focusedClasses,\n };\n}\n"],"mappings":"AAAA,SAA+CA,QAAQ,QAAQ,KAAK;AAAC,SAE5DC,YAAY;AAAA,SAEZC,cAAc;AAEvB,MAAMC,iBAAiB,GAAG;EACxBC,OAAO,EAAEC,OAAO;EAChB,kBAAkB,EAAEC;AACtB,CAAC;AAED,OAAO,MAAMC,sBAAsB,GAAGN,YAAY,CAACE,iBAAiB,EAAE,OAAO,CAAC;AAE9E,OAAO,SAASK,QAAQA,CACtBC,KAAiD,EACjDC,SAAiB,EACjB;EACA,MAAMN,OAAO,GAAGF,cAAc,CAACO,KAAK,EAAE,SAAS,CAAC;EAEhD,SAASE,SAASA,CAAA,EAAG;IACnBP,OAAO,CAACQ,KAAK,GAAG,IAAI;EACtB;EAEA,SAASC,QAAQA,CAAA,EAAG;IAClBT,OAAO,CAACQ,KAAK,GAAG,KAAK;EACvB;EAEA,MAAME,cAAc,GAAGd,QAAQ,CAAC,MAAM;IACpC,OAAO;MACL,CAAE,GAAEU,SAAU,WAAU,GAAGN,OAAO,CAACQ;IACrC,CAAC;EACH,CAAC,CAAC;EAEF,OAAO;IACLR,OAAO;IACPO,SAAS;IACTE,QAAQ;IACRC;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"focus.mjs","names":["computed","propsFactory","useModelDuplex","focusPropsOptions","focused","Boolean","Function","pressFocusPropsOptions","useFocus","props","className","whenFocus","value","whenBlur","focusedClasses"],"sources":["../../src/composables/focus.ts"],"sourcesContent":["import { type ExtractPropTypes, type PropType, computed } from 'vue';\r\n\r\nimport { propsFactory } from '@/util/component';\r\n\r\nimport { useModelDuplex } from './communication';\r\n\r\nconst focusPropsOptions = {\r\n focused: Boolean,\r\n 'onUpdate:focused': Function as PropType<(v: boolean) => void>,\r\n};\r\n\r\nexport const pressFocusPropsOptions = propsFactory(focusPropsOptions, 'focus');\r\n\r\nexport function useFocus(\r\n props: ExtractPropTypes<typeof focusPropsOptions>,\r\n className: string,\r\n) {\r\n const focused = useModelDuplex(props, 'focused');\r\n\r\n function whenFocus() {\r\n focused.value = true;\r\n }\r\n\r\n function whenBlur() {\r\n focused.value = false;\r\n }\r\n\r\n const focusedClasses = computed(() => {\r\n return {\r\n [`${className}--focused`]: focused.value,\r\n };\r\n });\r\n\r\n return {\r\n focused,\r\n whenFocus,\r\n whenBlur,\r\n focusedClasses,\r\n };\r\n}\r\n"],"mappings":"AAAA,SAA+CA,QAAQ,QAAQ,KAAK;AAAC,SAE5DC,YAAY;AAAA,SAEZC,cAAc;AAEvB,MAAMC,iBAAiB,GAAG;EACxBC,OAAO,EAAEC,OAAO;EAChB,kBAAkB,EAAEC;AACtB,CAAC;AAED,OAAO,MAAMC,sBAAsB,GAAGN,YAAY,CAACE,iBAAiB,EAAE,OAAO,CAAC;AAE9E,OAAO,SAASK,QAAQA,CACtBC,KAAiD,EACjDC,SAAiB,EACjB;EACA,MAAMN,OAAO,GAAGF,cAAc,CAACO,KAAK,EAAE,SAAS,CAAC;EAEhD,SAASE,SAASA,CAAA,EAAG;IACnBP,OAAO,CAACQ,KAAK,GAAG,IAAI;EACtB;EAEA,SAASC,QAAQA,CAAA,EAAG;IAClBT,OAAO,CAACQ,KAAK,GAAG,KAAK;EACvB;EAEA,MAAME,cAAc,GAAGd,QAAQ,CAAC,MAAM;IACpC,OAAO;MACL,CAAE,GAAEU,SAAU,WAAU,GAAGN,OAAO,CAACQ;IACrC,CAAC;EACH,CAAC,CAAC;EAEF,OAAO;IACLR,OAAO;IACPO,SAAS;IACTE,QAAQ;IACRC;EACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"form.mjs","names":["computed","inject","provide","ref","shallowRef","toRef","propsFactory","useModelDuplex","YUYEON_FORM_KEY","Symbol","for","pressFormPropsOptions","readonly","Boolean","disabled","loading","modelValue","type","default","validateOn","String","createForm","props","model","isValidating","inputs","errors","isReadonly","isDisabled","isLoading","validate","results","valid","value","item","itemErrors","length","push","id","vnode","exposed","component","register","input","isError","unregister","filter","update","found","find","provideInstance","isValid","useForm"],"sources":["../../src/composables/form.ts"],"sourcesContent":["import {\n type ComputedRef,\n type InjectionKey,\n type PropType,\n type Ref,\n type VNode,\n computed,\n inject,\n provide,\n ref,\n shallowRef,\n toRef,\n} from 'vue';\n\nimport { type EventProp, propsFactory } from '@/util/component';\n\nimport { useModelDuplex } from './communication';\nimport { type ValidationProps } from './validation';\n\nexport interface FormInput {\n id: number | string;\n vnode: VNode;\n validate: () => Promise<any[]>;\n isError: boolean | undefined | null;\n errors: any[];\n}\n\nexport interface InputValidationResult {\n id: number | string;\n vnode: VNode;\n exposed: any;\n errors: any[];\n}\n\nexport interface FormValidationResult {\n valid: boolean;\n errors: InputValidationResult[];\n}\n\nexport interface SubmitEventPromise\n extends SubmitEvent,\n Promise<FormValidationResult> {}\n\nexport interface FormInstance {\n register: (input: {\n id: number | string;\n vnode: VNode;\n validate: () => Promise<any[]>;\n resetValidation: () => Promise<void>;\n }) => void;\n unregister: (id: number | string) => void;\n update: (\n id: number | string,\n isError: boolean | undefined | null,\n errors: any[],\n ) => void;\n inputs: Ref<FormInput[]>;\n isDisabled: ComputedRef<boolean>;\n isReadonly: ComputedRef<boolean>;\n isLoading: ComputedRef<boolean>;\n isValidating: Ref<boolean>;\n isValid: Ref<boolean | null>;\n validateOn: Ref<FormProps['validateOn']>;\n}\n\nexport const YUYEON_FORM_KEY: InjectionKey<FormInstance> =\n Symbol.for('yuyeon.form');\n\nexport interface FormProps {\n readonly: boolean;\n disabled: boolean;\n loading: boolean;\n modelValue: boolean | null;\n 'onUpdate:modelValue': EventProp<[boolean | null]> | undefined;\n validateOn: ValidationProps['validateOn'];\n}\n\nexport const pressFormPropsOptions = propsFactory(\n {\n readonly: Boolean,\n disabled: Boolean,\n loading: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n validateOn: {\n type: String as PropType<ValidationProps['validateOn']>,\n default: 'input',\n },\n },\n 'form',\n);\n\nexport function createForm(props: FormProps) {\n const model = useModelDuplex(props);\n const isValidating = shallowRef(false);\n const inputs = ref<FormInput[]>([]);\n const errors = ref<InputValidationResult[]>([]);\n\n const isReadonly = computed(() => props.readonly);\n const isDisabled = computed(() => props.disabled);\n const isLoading = computed(() => props.loading);\n\n async function validate() {\n const results: InputValidationResult[] = [];\n let valid = true;\n\n errors.value = [];\n isValidating.value = true;\n\n for (const item of inputs.value) {\n const itemErrors = await item.validate();\n\n if (itemErrors.length > 0) {\n valid = false;\n\n results.push({\n id: item.id,\n vnode: item.vnode,\n exposed: item.vnode.component?.exposed,\n errors: itemErrors,\n });\n }\n }\n\n errors.value = results;\n isValidating.value = false;\n\n return { valid, errors: errors.value };\n }\n\n function register(input: {\n id: number | string;\n vnode: VNode;\n validate: () => Promise<any[]>;\n }) {\n const { id, validate, vnode } = input;\n inputs.value.push({\n id,\n validate,\n vnode,\n isError: null,\n errors: [],\n });\n }\n\n function unregister(id: number | string) {\n inputs.value = inputs.value.filter((input) => input.id !== id);\n }\n\n function update(\n id: number | string,\n isError: boolean | undefined | null,\n errors: any[],\n ) {\n const found = inputs.value.find((item) => item.id === id);\n\n if (!found) return;\n\n found.isError = isError;\n found.errors = errors;\n }\n\n const provideInstance: FormInstance = {\n inputs,\n isDisabled,\n isReadonly,\n isLoading,\n isValid: model,\n isValidating,\n register,\n unregister,\n update,\n validateOn: toRef(props, 'validateOn'),\n };\n\n provide(YUYEON_FORM_KEY, provideInstance);\n\n return {\n inputs,\n errors,\n isValid: model,\n isDisabled,\n isReadonly,\n isLoading,\n isValidating,\n validate,\n };\n}\n\nexport function useForm() {\n return inject(YUYEON_FORM_KEY, null);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"form.mjs","names":["computed","inject","provide","ref","shallowRef","toRef","propsFactory","useModelDuplex","YUYEON_FORM_KEY","Symbol","for","pressFormPropsOptions","readonly","Boolean","disabled","loading","modelValue","type","default","validateOn","String","createForm","props","model","isValidating","inputs","errors","isReadonly","isDisabled","isLoading","validate","results","valid","value","item","itemErrors","length","push","id","vnode","exposed","component","register","input","isError","unregister","filter","update","found","find","provideInstance","isValid","useForm"],"sources":["../../src/composables/form.ts"],"sourcesContent":["import {\r\n type ComputedRef,\r\n type InjectionKey,\r\n type PropType,\r\n type Ref,\r\n type VNode,\r\n computed,\r\n inject,\r\n provide,\r\n ref,\r\n shallowRef,\r\n toRef,\r\n} from 'vue';\r\n\r\nimport { type EventProp, propsFactory } from '@/util/component';\r\n\r\nimport { useModelDuplex } from './communication';\r\nimport { type ValidationProps } from './validation';\r\n\r\nexport interface FormInput {\r\n id: number | string;\r\n vnode: VNode;\r\n validate: () => Promise<any[]>;\r\n isError: boolean | undefined | null;\r\n errors: any[];\r\n}\r\n\r\nexport interface InputValidationResult {\r\n id: number | string;\r\n vnode: VNode;\r\n exposed: any;\r\n errors: any[];\r\n}\r\n\r\nexport interface FormValidationResult {\r\n valid: boolean;\r\n errors: InputValidationResult[];\r\n}\r\n\r\nexport interface SubmitEventPromise\r\n extends SubmitEvent,\r\n Promise<FormValidationResult> {}\r\n\r\nexport interface FormInstance {\r\n register: (input: {\r\n id: number | string;\r\n vnode: VNode;\r\n validate: () => Promise<any[]>;\r\n resetValidation: () => Promise<void>;\r\n }) => void;\r\n unregister: (id: number | string) => void;\r\n update: (\r\n id: number | string,\r\n isError: boolean | undefined | null,\r\n errors: any[],\r\n ) => void;\r\n inputs: Ref<FormInput[]>;\r\n isDisabled: ComputedRef<boolean>;\r\n isReadonly: ComputedRef<boolean>;\r\n isLoading: ComputedRef<boolean>;\r\n isValidating: Ref<boolean>;\r\n isValid: Ref<boolean | null>;\r\n validateOn: Ref<FormProps['validateOn']>;\r\n}\r\n\r\nexport const YUYEON_FORM_KEY: InjectionKey<FormInstance> =\r\n Symbol.for('yuyeon.form');\r\n\r\nexport interface FormProps {\r\n readonly: boolean;\r\n disabled: boolean;\r\n loading: boolean;\r\n modelValue: boolean | null;\r\n 'onUpdate:modelValue': EventProp<[boolean | null]> | undefined;\r\n validateOn: ValidationProps['validateOn'];\r\n}\r\n\r\nexport const pressFormPropsOptions = propsFactory(\r\n {\r\n readonly: Boolean,\r\n disabled: Boolean,\r\n loading: Boolean,\r\n modelValue: {\r\n type: Boolean as PropType<boolean | null>,\r\n default: null,\r\n },\r\n validateOn: {\r\n type: String as PropType<ValidationProps['validateOn']>,\r\n default: 'input',\r\n },\r\n },\r\n 'form',\r\n);\r\n\r\nexport function createForm(props: FormProps) {\r\n const model = useModelDuplex(props);\r\n const isValidating = shallowRef(false);\r\n const inputs = ref<FormInput[]>([]);\r\n const errors = ref<InputValidationResult[]>([]);\r\n\r\n const isReadonly = computed(() => props.readonly);\r\n const isDisabled = computed(() => props.disabled);\r\n const isLoading = computed(() => props.loading);\r\n\r\n async function validate() {\r\n const results: InputValidationResult[] = [];\r\n let valid = true;\r\n\r\n errors.value = [];\r\n isValidating.value = true;\r\n\r\n for (const item of inputs.value) {\r\n const itemErrors = await item.validate();\r\n\r\n if (itemErrors.length > 0) {\r\n valid = false;\r\n\r\n results.push({\r\n id: item.id,\r\n vnode: item.vnode,\r\n exposed: item.vnode.component?.exposed,\r\n errors: itemErrors,\r\n });\r\n }\r\n }\r\n\r\n errors.value = results;\r\n isValidating.value = false;\r\n\r\n return { valid, errors: errors.value };\r\n }\r\n\r\n function register(input: {\r\n id: number | string;\r\n vnode: VNode;\r\n validate: () => Promise<any[]>;\r\n }) {\r\n const { id, validate, vnode } = input;\r\n inputs.value.push({\r\n id,\r\n validate,\r\n vnode,\r\n isError: null,\r\n errors: [],\r\n });\r\n }\r\n\r\n function unregister(id: number | string) {\r\n inputs.value = inputs.value.filter((input) => input.id !== id);\r\n }\r\n\r\n function update(\r\n id: number | string,\r\n isError: boolean | undefined | null,\r\n errors: any[],\r\n ) {\r\n const found = inputs.value.find((item) => item.id === id);\r\n\r\n if (!found) return;\r\n\r\n found.isError = isError;\r\n found.errors = errors;\r\n }\r\n\r\n const provideInstance: FormInstance = {\r\n inputs,\r\n isDisabled,\r\n isReadonly,\r\n isLoading,\r\n isValid: model,\r\n isValidating,\r\n register,\r\n unregister,\r\n update,\r\n validateOn: toRef(props, 'validateOn'),\r\n };\r\n\r\n provide(YUYEON_FORM_KEY, provideInstance);\r\n\r\n return {\r\n inputs,\r\n errors,\r\n isValid: model,\r\n isDisabled,\r\n isReadonly,\r\n isLoading,\r\n isValidating,\r\n validate,\r\n };\r\n}\r\n\r\nexport function useForm() {\r\n return inject(YUYEON_FORM_KEY, null);\r\n}\r\n"],"mappings":"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"}
@@ -0,0 +1,194 @@
1
+ import { computed, getCurrentInstance, inject, onBeforeUnmount, onMounted, provide, reactive, toRef, watch } from 'vue';
2
+ import { wrapInArray } from "../util/array.mjs";
3
+ import { deepEqual } from "../util/common.mjs";
4
+ import { getUid, propsFactory } from "../util/vue-component.mjs";
5
+ import { useModelDuplex } from "./communication.mjs";
6
+ export const pressGroupPropsOptions = propsFactory({
7
+ modelValue: {
8
+ type: null,
9
+ default: undefined
10
+ },
11
+ multiple: Boolean,
12
+ mandatory: [Boolean, String],
13
+ max: Number,
14
+ selectedClass: String,
15
+ disabled: Boolean
16
+ }, 'group');
17
+ export const pressGroupItemPropsOptions = propsFactory({
18
+ value: null,
19
+ disabled: Boolean,
20
+ selectedClass: String
21
+ }, 'group-item');
22
+ export function useGroupItem(props, injectKey) {
23
+ let required = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
24
+ const vm = getCurrentInstance();
25
+ if (!vm) {
26
+ throw new Error('useGroupItem composable must be used inside a component setup function');
27
+ }
28
+ const id = getUid();
29
+ provide(Symbol.for(`${injectKey.description}:id`), id);
30
+ const group = inject(injectKey, null);
31
+ if (!group) {
32
+ if (!required) return group;
33
+ throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);
34
+ }
35
+ const value = toRef(props, 'value');
36
+ const disabled = computed(() => !!(group.disabled.value || props.disabled));
37
+ group.register({
38
+ id,
39
+ value,
40
+ disabled
41
+ }, vm);
42
+ onBeforeUnmount(() => {
43
+ group.unregister(id);
44
+ });
45
+ const isSelected = computed(() => {
46
+ return group.isSelected(id);
47
+ });
48
+ const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass]);
49
+ watch(isSelected, value => {
50
+ vm.emit('group:selected', {
51
+ value
52
+ });
53
+ });
54
+ return {
55
+ id,
56
+ isSelected,
57
+ toggle: () => group.select(id, !isSelected.value),
58
+ select: value => group.select(id, value),
59
+ selectedClass,
60
+ value,
61
+ disabled,
62
+ group
63
+ };
64
+ }
65
+ export function useGroup(props, injectKey) {
66
+ let isUnmounted = false;
67
+ const items = reactive([]);
68
+ const selected = useModelDuplex(props, 'modelValue', [], v => {
69
+ if (v == null) return [];
70
+ return getIds(items, wrapInArray(v));
71
+ }, v => {
72
+ const arr = getValues(items, v);
73
+ return props.multiple ? arr : arr[0];
74
+ });
75
+ const groupVm = getCurrentInstance();
76
+ function register(item, vm) {
77
+ // Is there a better way to fix this typing?
78
+ const unwrapped = item;
79
+ const key = Symbol.for(`${injectKey.description}:id`);
80
+ const children = findChildrenWithProvide(key, groupVm?.vnode);
81
+ const index = children.indexOf(vm);
82
+ if (index > -1) {
83
+ items.splice(index, 0, unwrapped);
84
+ } else {
85
+ items.push(unwrapped);
86
+ }
87
+ }
88
+ function unregister(id) {
89
+ if (isUnmounted) return;
90
+ forceMandatoryValue();
91
+ const index = items.findIndex(item => item.id === id);
92
+ items.splice(index, 1);
93
+ }
94
+ function forceMandatoryValue() {
95
+ const item = items.find(item => !item.disabled);
96
+ if (item && props.mandatory === 'force' && !selected.value.length) {
97
+ selected.value = [item.id];
98
+ }
99
+ }
100
+ onMounted(() => {
101
+ forceMandatoryValue();
102
+ });
103
+ onBeforeUnmount(() => {
104
+ isUnmounted = true;
105
+ });
106
+ function select(id, value) {
107
+ const item = items.find(item => item.id === id);
108
+ if (value && item?.disabled) return;
109
+ if (props.multiple) {
110
+ const internalValue = selected.value.slice();
111
+ const index = internalValue.findIndex(v => v === id);
112
+ const isSelected = ~index;
113
+ value = value ?? !isSelected;
114
+
115
+ // We can't remove value if group is
116
+ // mandatory, value already exists,
117
+ // and it is the only value
118
+ if (isSelected && props.mandatory && internalValue.length <= 1) return;
119
+
120
+ // We can't add value if it would
121
+ // cause max limit to be exceeded
122
+ if (!isSelected && props.max != null && internalValue.length + 1 > props.max) return;
123
+ if (index < 0 && value) internalValue.push(id);else if (index >= 0 && !value) internalValue.splice(index, 1);
124
+ selected.value = internalValue;
125
+ } else {
126
+ const isSelected = selected.value.includes(id);
127
+ if (props.mandatory && isSelected) return;
128
+ selected.value = value ?? !isSelected ? [id] : [];
129
+ }
130
+ }
131
+ function step(offset) {
132
+ if (props.multiple) {}
133
+ if (!selected.value.length) {
134
+ const item = items.find(item => !item.disabled);
135
+ item && (selected.value = [item.id]);
136
+ } else {
137
+ const currentId = selected.value[0];
138
+ const currentIndex = items.findIndex(i => i.id === currentId);
139
+ let newIndex = (currentIndex + offset) % items.length;
140
+ let newItem = items[newIndex];
141
+ while (newItem.disabled && newIndex !== currentIndex) {
142
+ newIndex = (newIndex + offset) % items.length;
143
+ newItem = items[newIndex];
144
+ }
145
+ if (newItem.disabled) return;
146
+ selected.value = [items[newIndex].id];
147
+ }
148
+ }
149
+ const state = {
150
+ register,
151
+ unregister,
152
+ selected,
153
+ select,
154
+ disabled: toRef(props, 'disabled'),
155
+ prev: () => step(items.length - 1),
156
+ next: () => step(1),
157
+ isSelected: id => selected.value.includes(id),
158
+ selectedClass: computed(() => props.selectedClass),
159
+ items: computed(() => items),
160
+ getItemIndex: value => getItemIndex(items, value)
161
+ };
162
+ provide(injectKey, state);
163
+ return state;
164
+ }
165
+ function getItemIndex(items, value) {
166
+ const ids = getIds(items, [value]);
167
+ if (!ids.length) return -1;
168
+ return items.findIndex(item => item.id === ids[0]);
169
+ }
170
+ function getIds(items, modelValue) {
171
+ const ids = [];
172
+ modelValue.forEach(value => {
173
+ const item = items.find(item => deepEqual(value, item.value));
174
+ const itemByIndex = items[value];
175
+ if (item?.value != null) {
176
+ ids.push(item.id);
177
+ } else if (itemByIndex != null) {
178
+ ids.push(itemByIndex.id);
179
+ }
180
+ });
181
+ return ids;
182
+ }
183
+ function getValues(items, ids) {
184
+ const values = [];
185
+ ids.forEach(id => {
186
+ const itemIndex = items.findIndex(item => item.id === id);
187
+ if (~itemIndex) {
188
+ const item = items[itemIndex];
189
+ values.push(item.value != null ? item.value : itemIndex);
190
+ }
191
+ });
192
+ return values;
193
+ }
194
+ //# sourceMappingURL=group.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.mjs","names":["computed","getCurrentInstance","inject","onBeforeUnmount","onMounted","provide","reactive","toRef","watch","wrapInArray","deepEqual","getUid","propsFactory","useModelDuplex","pressGroupPropsOptions","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","pressGroupItemPropsOptions","value","useGroupItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","group","register","unregister","isSelected","emit","toggle","select","useGroup","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","findChildrenWithProvide","vnode","index","indexOf","splice","push","forceMandatoryValue","findIndex","find","internalValue","slice","includes","step","offset","currentId","currentIndex","i","newIndex","newItem","state","prev","next","getItemIndex","ids","forEach","itemByIndex","values","itemIndex"],"sources":["../../src/composables/group.ts"],"sourcesContent":["import type {\n ComponentInternalInstance,\n ComputedRef,\n ExtractPropTypes,\n InjectionKey,\n PropType,\n Ref,\n UnwrapRef,\n} from 'vue';\nimport {\n computed,\n getCurrentInstance,\n inject,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n toRef,\n watch,\n} from 'vue';\n\nimport { wrapInArray } from '../util/array';\nimport { deepEqual } from '../util/common';\nimport { getUid, propsFactory } from '../util/vue-component';\nimport { useModelDuplex } from './communication';\n\nexport interface GroupItem {\n id: number;\n value: Ref<unknown>;\n disabled: Ref<boolean | undefined>;\n}\n\nexport interface GroupProps {\n disabled: boolean;\n modelValue: unknown;\n multiple?: boolean;\n mandatory?: boolean | 'force' | undefined;\n max?: number | undefined;\n selectedClass: string | undefined;\n 'onUpdate:modelValue': ((value: unknown) => void) | undefined;\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, instance: ComponentInternalInstance) => void;\n unregister: (id: number) => void;\n select: (id: number, value: boolean) => void;\n selected: Ref<Readonly<number[]>>;\n selectedClass: Ref<string | undefined>;\n isSelected: (id: number) => boolean;\n disabled: Ref<boolean | undefined>;\n getItemIndex: (value: unknown) => number;\n prev: () => void;\n next: () => void;\n items: ComputedRef<\n { id: number; value: unknown; disabled: boolean | undefined }[]\n >;\n}\n\nexport interface GroupItemProvide {\n id: number;\n isSelected: Ref<boolean>;\n toggle: () => void;\n select: (value: boolean) => void;\n selectedClass: Ref<(string | undefined)[] | false>;\n value: Ref<unknown>;\n disabled: Ref<boolean | undefined>;\n group: GroupProvide;\n}\n\nexport const pressGroupPropsOptions = propsFactory(\n {\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n },\n 'group',\n);\n\nexport const pressGroupItemPropsOptions = propsFactory(\n {\n value: null,\n disabled: Boolean,\n selectedClass: String,\n },\n 'group-item',\n);\n\nexport interface GroupItemProps\n extends ExtractPropTypes<ReturnType<typeof pressGroupItemPropsOptions>> {\n 'onGroup:selected': ((val: { value: boolean }) => void) | undefined;\n}\n\nexport function useGroupItem(\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required?: true,\n): GroupItemProvide;\nexport function useGroupItem(\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required: false,\n): GroupItemProvide | null;\nexport function useGroupItem(\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance();\n\n if (!vm) {\n throw new Error(\n 'useGroupItem composable must be used inside a component setup function',\n );\n }\n\n const id = getUid();\n\n provide(Symbol.for(`${injectKey.description}:id`), id);\n\n const group = inject(injectKey, null);\n\n if (!group) {\n if (!required) return group;\n\n throw new Error(\n `[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`,\n );\n }\n\n const value = toRef(props, 'value');\n const disabled = computed(() => !!(group.disabled.value || props.disabled));\n\n group.register(\n {\n id,\n value,\n disabled,\n },\n vm,\n );\n\n onBeforeUnmount(() => {\n group.unregister(id);\n });\n\n const isSelected = computed(() => {\n return group.isSelected(id);\n });\n\n const selectedClass = computed(\n () => isSelected.value && [group.selectedClass.value, props.selectedClass],\n );\n\n watch(isSelected, (value) => {\n vm.emit('group:selected', { value });\n });\n\n return {\n id,\n isSelected,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n };\n}\n\nexport function useGroup(\n props: GroupProps,\n injectKey: InjectionKey<GroupProvide>,\n) {\n let isUnmounted = false;\n const items = reactive<GroupItem[]>([]);\n const selected = useModelDuplex(\n props,\n 'modelValue',\n [],\n (v) => {\n if (v == null) return [];\n\n return getIds(items, wrapInArray(v));\n },\n (v) => {\n const arr = getValues(items, v);\n\n return props.multiple ? arr : arr[0];\n },\n );\n\n const groupVm = getCurrentInstance();\n\n function register(item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef<GroupItem>;\n\n const key = Symbol.for(`${injectKey.description}:id`);\n const children = findChildrenWithProvide(key, groupVm?.vnode);\n const index = children.indexOf(vm);\n\n if (index > -1) {\n items.splice(index, 0, unwrapped);\n } else {\n items.push(unwrapped);\n }\n }\n\n function unregister(id: number) {\n if (isUnmounted) return;\n forceMandatoryValue();\n const index = items.findIndex((item) => item.id === id);\n items.splice(index, 1);\n }\n\n function forceMandatoryValue() {\n const item = items.find((item) => !item.disabled);\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id];\n }\n }\n\n onMounted(() => {\n forceMandatoryValue();\n });\n\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n\n function select(id: number, value?: boolean) {\n const item = items.find((item) => item.id === id);\n if (value && item?.disabled) return;\n\n if (props.multiple) {\n const internalValue = selected.value.slice();\n const index = internalValue.findIndex((v) => v === id);\n const isSelected = ~index;\n value = value ?? !isSelected;\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (isSelected && props.mandatory && internalValue.length <= 1) return;\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n )\n return;\n\n if (index < 0 && value) internalValue.push(id);\n else if (index >= 0 && !value) internalValue.splice(index, 1);\n\n selected.value = internalValue;\n } else {\n const isSelected = selected.value.includes(id);\n if (props.mandatory && isSelected) return;\n\n selected.value = value ?? !isSelected ? [id] : [];\n }\n }\n\n function step(offset: number) {\n if (props.multiple) {\n }\n\n if (!selected.value.length) {\n const item = items.find((item) => !item.disabled);\n item && (selected.value = [item.id]);\n } else {\n const currentId = selected.value[0];\n const currentIndex = items.findIndex((i) => i.id === currentId);\n\n let newIndex = (currentIndex + offset) % items.length;\n let newItem = items[newIndex];\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length;\n newItem = items[newIndex];\n }\n\n if (newItem.disabled) return;\n\n selected.value = [items[newIndex].id];\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n };\n\n provide(injectKey, state);\n\n return state;\n}\n\nfunction getItemIndex(items: UnwrapRef<GroupItem[]>, value: unknown) {\n const ids = getIds(items, [value]);\n\n if (!ids.length) return -1;\n\n return items.findIndex((item) => item.id === ids[0]);\n}\n\nfunction getIds(items: UnwrapRef<GroupItem[]>, modelValue: any[]) {\n const ids: number[] = [];\n\n modelValue.forEach((value) => {\n const item = items.find((item) => deepEqual(value, item.value));\n const itemByIndex = items[value];\n\n if (item?.value != null) {\n ids.push(item.id);\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id);\n }\n });\n\n return ids;\n}\n\nfunction getValues(items: UnwrapRef<GroupItem[]>, ids: any[]) {\n const values: unknown[] = [];\n\n ids.forEach((id) => {\n const itemIndex = items.findIndex((item) => item.id === id);\n if (~itemIndex) {\n const item = items[itemIndex];\n values.push(item.value != null ? item.value : itemIndex);\n }\n });\n\n return values;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["inject","provide","createLocaleModule","createRtlModule","createRtlProvideValue","YUYEON_I18N_KEY","createI18nModule","options","localeModule","rtlModule","useI18n","i18n","Error","provideI18n","props","locale","getContext","rtl","state"],"sources":["../../../src/composables/i18n/index.ts"],"sourcesContent":["import { inject, provide } from 'vue';\n\nimport type { LocaleModule, LocaleOptions } from '@/i18n/types';\n\nimport { createLocaleModule } from './locale';\nimport {\n type RtlModule,\n type RtlOptions,\n type RtlProps,\n createRtlModule,\n createRtlProvideValue,\n} from './rtl';\nimport { YUYEON_I18N_KEY } from './share';\n\nexport function createI18nModule(options?: LocaleOptions & RtlOptions) {\n const localeModule = createLocaleModule(options);\n const rtlModule = createRtlModule(localeModule, options);\n\n return {\n localeModule,\n rtlModule,\n };\n}\n\nexport function useI18n(): LocaleModule & RtlModule {\n const i18n = inject<any>(YUYEON_I18N_KEY);\n if (!i18n) throw new Error('【yuyeon】 Not found provided \"I18nModule\"');\n return i18n;\n}\n\nexport function provideI18n(props: LocaleOptions & RtlProps) {\n const i18n = inject<any>(YUYEON_I18N_KEY);\n if (!i18n) throw new Error('【yuyeon】 Not found provided \"I18nModule\"');\n\n const locale = i18n.getContext(props);\n const rtl = createRtlProvideValue(locale, i18n.rtl, props);\n\n const state = {\n ...locale,\n ...rtl,\n };\n provide(YUYEON_I18N_KEY, state);\n\n return state;\n}\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,OAAO,QAAQ,KAAK;AAAC,SAI7BC,kBAAkB;AAAA,SAKzBC,eAAe,EACfC,qBAAqB;AAAA,SAEdC,eAAe;AAExB,OAAO,SAASC,gBAAgBA,CAACC,OAAoC,EAAE;EACrE,MAAMC,YAAY,GAAGN,kBAAkB,CAACK,OAAO,CAAC;EAChD,MAAME,SAAS,GAAGN,eAAe,CAACK,YAAY,EAAED,OAAO,CAAC;EAExD,OAAO;IACLC,YAAY;IACZC;EACF,CAAC;AACH;AAEA,OAAO,SAASC,OAAOA,CAAA,EAA6B;EAClD,MAAMC,IAAI,GAAGX,MAAM,CAAMK,eAAe,CAAC;EACzC,IAAI,CAACM,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;EACtE,OAAOD,IAAI;AACb;AAEA,OAAO,SAASE,WAAWA,CAACC,KAA+B,EAAE;EAC3D,MAAMH,IAAI,GAAGX,MAAM,CAAMK,eAAe,CAAC;EACzC,IAAI,CAACM,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;EAEtE,MAAMG,MAAM,GAAGJ,IAAI,CAACK,UAAU,CAACF,KAAK,CAAC;EACrC,MAAMG,GAAG,GAAGb,qBAAqB,CAACW,MAAM,EAAEJ,IAAI,CAACM,GAAG,EAAEH,KAAK,CAAC;EAE1D,MAAMI,KAAK,GAAG;IACZ,GAAGH,MAAM;IACT,GAAGE;EACL,CAAC;EACDhB,OAAO,CAACI,eAAe,EAAEa,KAAK,CAAC;EAE/B,OAAOA,KAAK;AACd"}
1
+ {"version":3,"file":"index.mjs","names":["inject","provide","createLocaleModule","createRtlModule","createRtlProvideValue","YUYEON_I18N_KEY","createI18nModule","options","localeModule","rtlModule","useI18n","i18n","Error","provideI18n","props","locale","getContext","rtl","state"],"sources":["../../../src/composables/i18n/index.ts"],"sourcesContent":["import { inject, provide } from 'vue';\r\n\r\nimport type { LocaleModule, LocaleOptions } from '@/i18n/types';\r\n\r\nimport { createLocaleModule } from './locale';\r\nimport {\r\n type RtlModule,\r\n type RtlOptions,\r\n type RtlProps,\r\n createRtlModule,\r\n createRtlProvideValue,\r\n} from './rtl';\r\nimport { YUYEON_I18N_KEY } from './share';\r\n\r\nexport function createI18nModule(options?: LocaleOptions & RtlOptions) {\r\n const localeModule = createLocaleModule(options);\r\n const rtlModule = createRtlModule(localeModule, options);\r\n\r\n return {\r\n localeModule,\r\n rtlModule,\r\n };\r\n}\r\n\r\nexport function useI18n(): LocaleModule & RtlModule {\r\n const i18n = inject<any>(YUYEON_I18N_KEY);\r\n if (!i18n) throw new Error('【yuyeon】 Not found provided \"I18nModule\"');\r\n return i18n;\r\n}\r\n\r\nexport function provideI18n(props: LocaleOptions & RtlProps) {\r\n const i18n = inject<any>(YUYEON_I18N_KEY);\r\n if (!i18n) throw new Error('【yuyeon】 Not found provided \"I18nModule\"');\r\n\r\n const locale = i18n.getContext(props);\r\n const rtl = createRtlProvideValue(locale, i18n.rtl, props);\r\n\r\n const state = {\r\n ...locale,\r\n ...rtl,\r\n };\r\n provide(YUYEON_I18N_KEY, state);\r\n\r\n return state;\r\n}\r\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,OAAO,QAAQ,KAAK;AAAC,SAI7BC,kBAAkB;AAAA,SAKzBC,eAAe,EACfC,qBAAqB;AAAA,SAEdC,eAAe;AAExB,OAAO,SAASC,gBAAgBA,CAACC,OAAoC,EAAE;EACrE,MAAMC,YAAY,GAAGN,kBAAkB,CAACK,OAAO,CAAC;EAChD,MAAME,SAAS,GAAGN,eAAe,CAACK,YAAY,EAAED,OAAO,CAAC;EAExD,OAAO;IACLC,YAAY;IACZC;EACF,CAAC;AACH;AAEA,OAAO,SAASC,OAAOA,CAAA,EAA6B;EAClD,MAAMC,IAAI,GAAGX,MAAM,CAAMK,eAAe,CAAC;EACzC,IAAI,CAACM,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;EACtE,OAAOD,IAAI;AACb;AAEA,OAAO,SAASE,WAAWA,CAACC,KAA+B,EAAE;EAC3D,MAAMH,IAAI,GAAGX,MAAM,CAAMK,eAAe,CAAC;EACzC,IAAI,CAACM,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;EAEtE,MAAMG,MAAM,GAAGJ,IAAI,CAACK,UAAU,CAACF,KAAK,CAAC;EACrC,MAAMG,GAAG,GAAGb,qBAAqB,CAACW,MAAM,EAAEJ,IAAI,CAACM,GAAG,EAAEH,KAAK,CAAC;EAE1D,MAAMI,KAAK,GAAG;IACZ,GAAGH,MAAM;IACT,GAAGE;EACL,CAAC;EACDhB,OAAO,CAACI,eAAe,EAAEa,KAAK,CAAC;EAE/B,OAAOA,KAAK;AACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"locale.mjs","names":["constructYuyeonI18nAdapter","createLocaleModule","options","adapter","name"],"sources":["../../../src/composables/i18n/locale.ts"],"sourcesContent":["import { constructYuyeonI18nAdapter } from '../../i18n/built-in';\nimport { LocaleOptions } from '../../i18n/types';\n\nexport function createLocaleModule(options?: LocaleOptions) {\n return options?.adapter && options.adapter?.name\n ? options.adapter\n : constructYuyeonI18nAdapter(options);\n}\n"],"mappings":"SAASA,0BAA0B;AAGnC,OAAO,SAASC,kBAAkBA,CAACC,OAAuB,EAAE;EAC1D,OAAOA,OAAO,EAAEC,OAAO,IAAID,OAAO,CAACC,OAAO,EAAEC,IAAI,GAC5CF,OAAO,CAACC,OAAO,GACfH,0BAA0B,CAACE,OAAO,CAAC;AACzC"}
1
+ {"version":3,"file":"locale.mjs","names":["constructYuyeonI18nAdapter","createLocaleModule","options","adapter","name"],"sources":["../../../src/composables/i18n/locale.ts"],"sourcesContent":["import { constructYuyeonI18nAdapter } from '../../i18n/built-in';\r\nimport { LocaleOptions } from '../../i18n/types';\r\n\r\nexport function createLocaleModule(options?: LocaleOptions) {\r\n return options?.adapter && options.adapter?.name\r\n ? options.adapter\r\n : constructYuyeonI18nAdapter(options);\r\n}\r\n"],"mappings":"SAASA,0BAA0B;AAGnC,OAAO,SAASC,kBAAkBA,CAACC,OAAuB,EAAE;EAC1D,OAAOA,OAAO,EAAEC,OAAO,IAAID,OAAO,CAACC,OAAO,EAAEC,IAAI,GAC5CF,OAAO,CAACC,OAAO,GACfH,0BAA0B,CAACE,OAAO,CAAC;AACzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rtl.mjs","names":["computed","inject","ref","defaultRtl","YUYEON_I18N_KEY","YUYEON_RTL_KEY","Symbol","for","createRtlModule","localeModule","options","rtlOptions","rtl","value","locale","rtlClasses","createRtlProvideValue","props","useRtl","i18n","Error"],"sources":["../../../src/composables/i18n/rtl.ts"],"sourcesContent":["import { computed, inject, ref } from 'vue';\nimport type { Ref } from 'vue';\n\nimport { defaultRtl } from '../../i18n/config';\nimport { LocaleModule } from '../../i18n/types';\nimport { YUYEON_I18N_KEY } from './share';\n\nexport const YUYEON_RTL_KEY = Symbol.for('yuyeon.rtl');\n\nexport interface RtlOptions {\n rtlOptions: Record<string, boolean>;\n}\n\nexport interface RtlProps {\n rtl?: boolean;\n}\n\nexport interface RtlModule {\n rtl: Ref<boolean>;\n rtlOptions: Ref<Record<string, boolean>>;\n rtlClasses: Ref<string>;\n}\n\nexport function createRtlModule(\n localeModule: LocaleModule,\n options?: RtlOptions,\n): RtlModule {\n const rtlOptions = ref<Record<string, boolean>>(\n options?.rtlOptions ?? defaultRtl,\n );\n const rtl = computed(() => {\n return rtlOptions.value[localeModule.locale.value] ?? false;\n });\n const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);\n\n return {\n rtlOptions,\n rtl,\n rtlClasses,\n };\n}\n\nexport function createRtlProvideValue(\n localeModule: LocaleModule,\n rtlOptions: RtlModule['rtlOptions'],\n props: RtlProps,\n): RtlModule {\n const rtl = computed(\n () => props.rtl ?? rtlOptions.value[localeModule.locale.value] ?? false,\n );\n const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);\n\n return {\n rtl,\n rtlOptions,\n rtlClasses,\n };\n}\n\nexport function useRtl() {\n const i18n = inject<any>(YUYEON_I18N_KEY);\n if (!i18n) throw new Error('Not found provided \"I18nModule\" for rtl');\n return {\n rtl: i18n.rtl,\n rtlClasses: i18n.rtlClasses,\n };\n}\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,GAAG,QAAQ,KAAK;AAAC,SAGnCC,UAAU;AAAA,SAEVC,eAAe;AAExB,OAAO,MAAMC,cAAc,GAAGC,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;AAgBtD,OAAO,SAASC,eAAeA,CAC7BC,YAA0B,EAC1BC,OAAoB,EACT;EACX,MAAMC,UAAU,GAAGT,GAAG,CACpBQ,OAAO,EAAEC,UAAU,IAAIR,UACzB,CAAC;EACD,MAAMS,GAAG,GAAGZ,QAAQ,CAAC,MAAM;IACzB,OAAOW,UAAU,CAACE,KAAK,CAACJ,YAAY,CAACK,MAAM,CAACD,KAAK,CAAC,IAAI,KAAK;EAC7D,CAAC,CAAC;EACF,MAAME,UAAU,GAAGf,QAAQ,CAAC,MAAO,WAAUY,GAAG,CAACC,KAAK,GAAG,KAAK,GAAG,KAAM,EAAC,CAAC;EAEzE,OAAO;IACLF,UAAU;IACVC,GAAG;IACHG;EACF,CAAC;AACH;AAEA,OAAO,SAASC,qBAAqBA,CACnCP,YAA0B,EAC1BE,UAAmC,EACnCM,KAAe,EACJ;EACX,MAAML,GAAG,GAAGZ,QAAQ,CAClB,MAAMiB,KAAK,CAACL,GAAG,IAAID,UAAU,CAACE,KAAK,CAACJ,YAAY,CAACK,MAAM,CAACD,KAAK,CAAC,IAAI,KACpE,CAAC;EACD,MAAME,UAAU,GAAGf,QAAQ,CAAC,MAAO,WAAUY,GAAG,CAACC,KAAK,GAAG,KAAK,GAAG,KAAM,EAAC,CAAC;EAEzE,OAAO;IACLD,GAAG;IACHD,UAAU;IACVI;EACF,CAAC;AACH;AAEA,OAAO,SAASG,MAAMA,CAAA,EAAG;EACvB,MAAMC,IAAI,GAAGlB,MAAM,CAAMG,eAAe,CAAC;EACzC,IAAI,CAACe,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,yCAAyC,CAAC;EACrE,OAAO;IACLR,GAAG,EAAEO,IAAI,CAACP,GAAG;IACbG,UAAU,EAAEI,IAAI,CAACJ;EACnB,CAAC;AACH"}
1
+ {"version":3,"file":"rtl.mjs","names":["computed","inject","ref","defaultRtl","YUYEON_I18N_KEY","YUYEON_RTL_KEY","Symbol","for","createRtlModule","localeModule","options","rtlOptions","rtl","value","locale","rtlClasses","createRtlProvideValue","props","useRtl","i18n","Error"],"sources":["../../../src/composables/i18n/rtl.ts"],"sourcesContent":["import { computed, inject, ref } from 'vue';\r\nimport type { Ref } from 'vue';\r\n\r\nimport { defaultRtl } from '../../i18n/config';\r\nimport { LocaleModule } from '../../i18n/types';\r\nimport { YUYEON_I18N_KEY } from './share';\r\n\r\nexport const YUYEON_RTL_KEY = Symbol.for('yuyeon.rtl');\r\n\r\nexport interface RtlOptions {\r\n rtlOptions: Record<string, boolean>;\r\n}\r\n\r\nexport interface RtlProps {\r\n rtl?: boolean;\r\n}\r\n\r\nexport interface RtlModule {\r\n rtl: Ref<boolean>;\r\n rtlOptions: Ref<Record<string, boolean>>;\r\n rtlClasses: Ref<string>;\r\n}\r\n\r\nexport function createRtlModule(\r\n localeModule: LocaleModule,\r\n options?: RtlOptions,\r\n): RtlModule {\r\n const rtlOptions = ref<Record<string, boolean>>(\r\n options?.rtlOptions ?? defaultRtl,\r\n );\r\n const rtl = computed(() => {\r\n return rtlOptions.value[localeModule.locale.value] ?? false;\r\n });\r\n const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);\r\n\r\n return {\r\n rtlOptions,\r\n rtl,\r\n rtlClasses,\r\n };\r\n}\r\n\r\nexport function createRtlProvideValue(\r\n localeModule: LocaleModule,\r\n rtlOptions: RtlModule['rtlOptions'],\r\n props: RtlProps,\r\n): RtlModule {\r\n const rtl = computed(\r\n () => props.rtl ?? rtlOptions.value[localeModule.locale.value] ?? false,\r\n );\r\n const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);\r\n\r\n return {\r\n rtl,\r\n rtlOptions,\r\n rtlClasses,\r\n };\r\n}\r\n\r\nexport function useRtl() {\r\n const i18n = inject<any>(YUYEON_I18N_KEY);\r\n if (!i18n) throw new Error('Not found provided \"I18nModule\" for rtl');\r\n return {\r\n rtl: i18n.rtl,\r\n rtlClasses: i18n.rtlClasses,\r\n };\r\n}\r\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,GAAG,QAAQ,KAAK;AAAC,SAGnCC,UAAU;AAAA,SAEVC,eAAe;AAExB,OAAO,MAAMC,cAAc,GAAGC,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;AAgBtD,OAAO,SAASC,eAAeA,CAC7BC,YAA0B,EAC1BC,OAAoB,EACT;EACX,MAAMC,UAAU,GAAGT,GAAG,CACpBQ,OAAO,EAAEC,UAAU,IAAIR,UACzB,CAAC;EACD,MAAMS,GAAG,GAAGZ,QAAQ,CAAC,MAAM;IACzB,OAAOW,UAAU,CAACE,KAAK,CAACJ,YAAY,CAACK,MAAM,CAACD,KAAK,CAAC,IAAI,KAAK;EAC7D,CAAC,CAAC;EACF,MAAME,UAAU,GAAGf,QAAQ,CAAC,MAAO,WAAUY,GAAG,CAACC,KAAK,GAAG,KAAK,GAAG,KAAM,EAAC,CAAC;EAEzE,OAAO;IACLF,UAAU;IACVC,GAAG;IACHG;EACF,CAAC;AACH;AAEA,OAAO,SAASC,qBAAqBA,CACnCP,YAA0B,EAC1BE,UAAmC,EACnCM,KAAe,EACJ;EACX,MAAML,GAAG,GAAGZ,QAAQ,CAClB,MAAMiB,KAAK,CAACL,GAAG,IAAID,UAAU,CAACE,KAAK,CAACJ,YAAY,CAACK,MAAM,CAACD,KAAK,CAAC,IAAI,KACpE,CAAC;EACD,MAAME,UAAU,GAAGf,QAAQ,CAAC,MAAO,WAAUY,GAAG,CAACC,KAAK,GAAG,KAAK,GAAG,KAAM,EAAC,CAAC;EAEzE,OAAO;IACLD,GAAG;IACHD,UAAU;IACVI;EACF,CAAC;AACH;AAEA,OAAO,SAASG,MAAMA,CAAA,EAAG;EACvB,MAAMC,IAAI,GAAGlB,MAAM,CAAMG,eAAe,CAAC;EACzC,IAAI,CAACe,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,yCAAyC,CAAC;EACrE,OAAO;IACLR,GAAG,EAAEO,IAAI,CAACP,GAAG;IACbG,UAAU,EAAEI,IAAI,CAACJ;EACnB,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"share.mjs","names":["YUYEON_I18N_KEY","Symbol","for"],"sources":["../../../src/composables/i18n/share.ts"],"sourcesContent":["export const YUYEON_I18N_KEY = Symbol.for('yuyeon.i18n');\n"],"mappings":"AAAA,OAAO,MAAMA,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC"}
1
+ {"version":3,"file":"share.mjs","names":["YUYEON_I18N_KEY","Symbol","for"],"sources":["../../../src/composables/i18n/share.ts"],"sourcesContent":["export const YUYEON_I18N_KEY = Symbol.for('yuyeon.i18n');\r\n"],"mappings":"AAAA,OAAO,MAAMA,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"icon.mjs","names":["computed","h","inject","mergeProps","unref","builtSet","mergeDeep","defineComponent","propsFactory","IconPropOption","String","Function","Object","Array","IconValue","pressIconPropsOptions","icon","type","tag","required","YComponentIcon","name","props","setup","_ref","slots","Icon","_createVNode","_Fragment","iconProps","component","default","YSvgIcon","inheritAttrs","_ref2","attrs","isArray","map","path","YUYEON_ICON_KEY","Symbol","for","createIconModule","options","defaultSet","sets","svg","aliases","useIcon","iconProp","iconModule","Error","iconData","iconMeta","alias","trim","startsWith","slice","iconValue","iconSetName","keys","find","setName","iconName","length","iconSet","text","DOMParser","parseFromString","svgNode","querySelector","mounted","childNodes","forEach","child","$el","appendChild","render","hasAttributes","i","attributes","attr","item","value","node"],"sources":["../../src/composables/icon.tsx"],"sourcesContent":["import {\n type HTMLAttributes,\n type InjectionKey,\n type PropType,\n type Ref,\n type SVGAttributes,\n computed,\n h,\n inject,\n mergeProps,\n unref,\n} from 'vue';\n\nimport { builtSet } from '@/components/icons';\nimport type { JSXComponent } from '@/types';\nimport { mergeDeep } from '@/util/common';\nimport { defineComponent } from '@/util/component/component';\nimport { propsFactory } from '@/util/component/props';\n\ntype IconComponent =\n | JSXComponent<IconProps>\n | JSXComponent<SVGAttributes | HTMLAttributes>;\n\nexport type IconValue =\n | string\n | (string | [path: string, opacity: number])[]\n | IconComponent\n | { component: JSXComponent; props?: any }\n | { alias: string; iconProps?: any };\n\nexport const IconPropOption = [\n String,\n Function,\n Object,\n Array,\n] as PropType<IconValue>;\n\ntype IconProps = {\n tag: string;\n icon?: IconValue;\n disabled?: Boolean;\n};\n\nexport interface IconSet {\n component: IconComponent;\n}\n\nexport const IconValue = [\n String,\n Object,\n Array,\n Function,\n] as PropType<IconValue>;\n\nexport type IconModuleOptions = {\n defaultSet?: string;\n sets?: Record<string, IconSet>;\n aliases?: Partial<Record<string, any>>;\n};\n\nexport const pressIconPropsOptions = propsFactory(\n {\n icon: {\n type: IconValue,\n },\n tag: {\n type: String,\n required: true,\n },\n },\n 'icon',\n);\n\nexport const YComponentIcon = defineComponent({\n name: 'YComponentIcon',\n props: pressIconPropsOptions(),\n setup(props, { slots }) {\n return () => {\n const icon = props.icon as unknown;\n let Icon: JSXComponent = () => <></>;\n let iconProps: any = {};\n if (icon instanceof Object) {\n Icon = icon as JSXComponent;\n if ('component' in icon) {\n Icon = icon.component as JSXComponent;\n iconProps = (icon as any)?.props;\n }\n }\n return (\n <props.tag>\n {props.icon ? <Icon {...mergeProps(iconProps)} /> : slots.default?.()}\n </props.tag>\n );\n };\n },\n});\nexport type YComponentIcon = InstanceType<typeof YComponentIcon>;\n\nexport const YSvgIcon = defineComponent({\n name: 'YSvgIcon',\n inheritAttrs: false,\n props: pressIconPropsOptions(),\n setup(props, { attrs }) {\n return () => {\n return (\n <props.tag {...attrs}>\n <svg\n class=\"y-icon__svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-hidden=\"true\"\n >\n {Array.isArray(props.icon) ? (\n props.icon.map((path) =>\n Array.isArray(path) ? (\n <path d={path[0] as string} fill-opacity={path[1]}></path>\n ) : (\n <path d={path as string}></path>\n ),\n )\n ) : (\n <path d={props.icon as string}></path>\n )}\n </svg>\n </props.tag>\n );\n };\n },\n});\nexport type YSvgIcon = InstanceType<typeof YSvgIcon>;\n\nexport const YUYEON_ICON_KEY: InjectionKey<Required<IconModuleOptions>> =\n Symbol.for('yuyeon.icon');\n\nexport function createIconModule(options?: IconModuleOptions) {\n return mergeDeep(\n {\n defaultSet: 'built',\n sets: {\n svg: {\n component: YSvgIcon,\n },\n },\n aliases: {\n ...builtSet,\n },\n },\n options,\n ) as Required<IconModuleOptions>;\n}\n\ntype IconInstance = {\n component: IconComponent;\n icon?: IconValue;\n};\n\nexport function useIcon(iconProp: Ref<IconValue | undefined>) {\n const iconModule = inject(YUYEON_ICON_KEY);\n\n if (!iconModule) throw new Error('Not found provided \"IconModule\"');\n\n const iconData = computed<IconInstance>(() => {\n const iconMeta = unref(iconProp);\n\n if (!iconMeta) return { component: YComponentIcon };\n\n let icon: IconValue | undefined = iconMeta;\n\n if (\n typeof icon === 'object' &&\n 'alias' in icon &&\n typeof icon.alias === 'string'\n ) {\n icon = icon.alias;\n }\n\n if (typeof icon === 'string') {\n icon = icon.trim();\n\n if (icon.startsWith('$')) {\n icon = iconModule.aliases?.[icon.slice(1)];\n }\n }\n\n if (!icon) throw new Error(`Could not find aliased icon \"${iconMeta}\"`);\n\n if (Array.isArray(icon)) {\n return {\n component: YSvgIcon,\n icon,\n };\n } else if (typeof icon !== 'string') {\n const iconValue = unref(iconProp);\n if (\n iconValue &&\n typeof iconValue === 'object' &&\n 'iconProps' in iconValue\n ) {\n icon = {\n component:\n 'component' in icon ? icon.component : (icon as JSXComponent),\n props:\n 'props' in icon\n ? mergeDeep(icon.props, iconValue?.iconProps ?? {})\n : iconValue.iconProps,\n };\n }\n\n return {\n component: YComponentIcon,\n icon,\n };\n }\n\n const iconSetName = Object.keys(iconModule.sets).find(\n (setName) => typeof icon === 'string' && icon.startsWith(`${setName}:`),\n );\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;\n const iconSet = iconModule.sets[iconSetName ?? iconModule.defaultSet];\n\n if (!iconSet?.component && typeof icon === 'string') {\n const text = new DOMParser().parseFromString(icon, 'text/xml');\n const svgNode = text.querySelector('svg');\n if (svgNode) {\n return {\n component: YComponentIcon,\n icon: {\n mounted() {\n svgNode.childNodes.forEach((child) => {\n this.$el?.appendChild(child);\n });\n },\n render: function () {\n const attrs: any = {};\n if (svgNode.hasAttributes()) {\n for (let i = 0; i < svgNode.attributes.length; i += 1) {\n const attr = svgNode.attributes.item(i);\n if (attr) {\n attrs[`^${attr.name}`] = attr.value;\n }\n }\n }\n\n const node = h('svg', { ...attrs }, []);\n return node;\n },\n } as any,\n };\n }\n }\n\n return {\n icon: iconName,\n component: iconSet.component,\n };\n });\n\n return {\n iconData,\n };\n}\n"],"mappings":";AAAA,SAMEA,QAAQ,EACRC,CAAC,EACDC,MAAM,EACNC,UAAU,EACVC,KAAK,QACA,KAAK;AAAC,SAEJC,QAAQ;AAAA,SAERC,SAAS;AAAA,SACTC,eAAe;AAAA,SACfC,YAAY;AAarB,OAAO,MAAMC,cAAc,GAAG,CAC5BC,MAAM,EACNC,QAAQ,EACRC,MAAM,EACNC,KAAK,CACiB;AAYxB,OAAO,MAAMC,SAAS,GAAG,CACvBJ,MAAM,EACNE,MAAM,EACNC,KAAK,EACLF,QAAQ,CACc;AAQxB,OAAO,MAAMI,qBAAqB,GAAGP,YAAY,CAC/C;EACEQ,IAAI,EAAE;IACJC,IAAI,EAAEH;EACR,CAAC;EACDI,GAAG,EAAE;IACHD,IAAI,EAAEP,MAAM;IACZS,QAAQ,EAAE;EACZ;AACF,CAAC,EACD,MACF,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGb,eAAe,CAAC;EAC5Cc,IAAI,EAAE,gBAAgB;EACtBC,KAAK,EAAEP,qBAAqB,CAAC,CAAC;EAC9BQ,KAAKA,CAACD,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACpB,OAAO,MAAM;MACX,MAAMR,IAAI,GAAGM,KAAK,CAACN,IAAe;MAClC,IAAIU,IAAkB,GAAGA,CAAA,KAAAC,YAAA,CAAAC,SAAA,aAAW;MACpC,IAAIC,SAAc,GAAG,CAAC,CAAC;MACvB,IAAIb,IAAI,YAAYJ,MAAM,EAAE;QAC1Bc,IAAI,GAAGV,IAAoB;QAC3B,IAAI,WAAW,IAAIA,IAAI,EAAE;UACvBU,IAAI,GAAGV,IAAI,CAACc,SAAyB;UACrCD,SAAS,GAAIb,IAAI,EAAUM,KAAK;QAClC;MACF;MACA,OAAAK,YAAA,CAAAL,KAAA,CAAAJ,GAAA;QAAAa,OAAA,EAAAA,CAAA,MAEKT,KAAK,CAACN,IAAI,GAAAW,YAAA,CAAAD,IAAA,EAAavB,UAAU,CAAC0B,SAAS,CAAC,UAAOJ,KAAK,CAACM,OAAO,GAAG,CAAC;MAAA;IAG3E,CAAC;EACH;AACF,CAAC,CAAC;AAGF,OAAO,MAAMC,QAAQ,GAAGzB,eAAe,CAAC;EACtCc,IAAI,EAAE,UAAU;EAChBY,YAAY,EAAE,KAAK;EACnBX,KAAK,EAAEP,qBAAqB,CAAC,CAAC;EAC9BQ,KAAKA,CAACD,KAAK,EAAAY,KAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,KAAA;IACpB,OAAO,MAAM;MACX,OAAAP,YAAA,CAAAL,KAAA,CAAAJ,GAAA,EACiBiB,KAAK;QAAAJ,OAAA,EAAAA,CAAA,MAAAJ,YAAA;UAAA;UAAA;UAAA;UAAA;UAAA;QAAA,IAQfd,KAAK,CAACuB,OAAO,CAACd,KAAK,CAACN,IAAI,CAAC,GACxBM,KAAK,CAACN,IAAI,CAACqB,GAAG,CAAEC,IAAI,IAClBzB,KAAK,CAACuB,OAAO,CAACE,IAAI,CAAC,GAAAX,YAAA;UAAA,KACRW,IAAI,CAAC,CAAC,CAAC;UAAA,gBAA0BA,IAAI,CAAC,CAAC;QAAC,WAAAX,YAAA;UAAA,KAExCW;QAAI,QAEjB,CAAC,GAAAX,YAAA;UAAA,KAEQL,KAAK,CAACN;QAAI,QACpB;MAAA;IAIT,CAAC;EACH;AACF,CAAC,CAAC;AAGF,OAAO,MAAMuB,eAA0D,GACrEC,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC;AAE3B,OAAO,SAASC,gBAAgBA,CAACC,OAA2B,EAAE;EAC5D,OAAOrC,SAAS,CACd;IACEsC,UAAU,EAAE,OAAO;IACnBC,IAAI,EAAE;MACJC,GAAG,EAAE;QACHhB,SAAS,EAAEE;MACb;IACF,CAAC;IACDe,OAAO,EAAE;MACP,GAAG1C;IACL;EACF,CAAC,EACDsC,OACF,CAAC;AACH;AAOA,OAAO,SAASK,OAAOA,CAACC,QAAoC,EAAE;EAC5D,MAAMC,UAAU,GAAGhD,MAAM,CAACqC,eAAe,CAAC;EAE1C,IAAI,CAACW,UAAU,EAAE,MAAM,IAAIC,KAAK,CAAC,iCAAiC,CAAC;EAEnE,MAAMC,QAAQ,GAAGpD,QAAQ,CAAe,MAAM;IAC5C,MAAMqD,QAAQ,GAAGjD,KAAK,CAAC6C,QAAQ,CAAC;IAEhC,IAAI,CAACI,QAAQ,EAAE,OAAO;MAAEvB,SAAS,EAAEV;IAAe,CAAC;IAEnD,IAAIJ,IAA2B,GAAGqC,QAAQ;IAE1C,IACE,OAAOrC,IAAI,KAAK,QAAQ,IACxB,OAAO,IAAIA,IAAI,IACf,OAAOA,IAAI,CAACsC,KAAK,KAAK,QAAQ,EAC9B;MACAtC,IAAI,GAAGA,IAAI,CAACsC,KAAK;IACnB;IAEA,IAAI,OAAOtC,IAAI,KAAK,QAAQ,EAAE;MAC5BA,IAAI,GAAGA,IAAI,CAACuC,IAAI,CAAC,CAAC;MAElB,IAAIvC,IAAI,CAACwC,UAAU,CAAC,GAAG,CAAC,EAAE;QACxBxC,IAAI,GAAGkC,UAAU,CAACH,OAAO,GAAG/B,IAAI,CAACyC,KAAK,CAAC,CAAC,CAAC,CAAC;MAC5C;IACF;IAEA,IAAI,CAACzC,IAAI,EAAE,MAAM,IAAImC,KAAK,CAAE,gCAA+BE,QAAS,GAAE,CAAC;IAEvE,IAAIxC,KAAK,CAACuB,OAAO,CAACpB,IAAI,CAAC,EAAE;MACvB,OAAO;QACLc,SAAS,EAAEE,QAAQ;QACnBhB;MACF,CAAC;IACH,CAAC,MAAM,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MACnC,MAAM0C,SAAS,GAAGtD,KAAK,CAAC6C,QAAQ,CAAC;MACjC,IACES,SAAS,IACT,OAAOA,SAAS,KAAK,QAAQ,IAC7B,WAAW,IAAIA,SAAS,EACxB;QACA1C,IAAI,GAAG;UACLc,SAAS,EACP,WAAW,IAAId,IAAI,GAAGA,IAAI,CAACc,SAAS,GAAId,IAAqB;UAC/DM,KAAK,EACH,OAAO,IAAIN,IAAI,GACXV,SAAS,CAACU,IAAI,CAACM,KAAK,EAAEoC,SAAS,EAAE7B,SAAS,IAAI,CAAC,CAAC,CAAC,GACjD6B,SAAS,CAAC7B;QAClB,CAAC;MACH;MAEA,OAAO;QACLC,SAAS,EAAEV,cAAc;QACzBJ;MACF,CAAC;IACH;IAEA,MAAM2C,WAAW,GAAG/C,MAAM,CAACgD,IAAI,CAACV,UAAU,CAACL,IAAI,CAAC,CAACgB,IAAI,CAClDC,OAAO,IAAK,OAAO9C,IAAI,KAAK,QAAQ,IAAIA,IAAI,CAACwC,UAAU,CAAE,GAAEM,OAAQ,GAAE,CACxE,CAAC;IAED,MAAMC,QAAQ,GAAGJ,WAAW,GAAG3C,IAAI,CAACyC,KAAK,CAACE,WAAW,CAACK,MAAM,GAAG,CAAC,CAAC,GAAGhD,IAAI;IACxE,MAAMiD,OAAO,GAAGf,UAAU,CAACL,IAAI,CAACc,WAAW,IAAIT,UAAU,CAACN,UAAU,CAAC;IAErE,IAAI,CAACqB,OAAO,EAAEnC,SAAS,IAAI,OAAOd,IAAI,KAAK,QAAQ,EAAE;MACnD,MAAMkD,IAAI,GAAG,IAAIC,SAAS,CAAC,CAAC,CAACC,eAAe,CAACpD,IAAI,EAAE,UAAU,CAAC;MAC9D,MAAMqD,OAAO,GAAGH,IAAI,CAACI,aAAa,CAAC,KAAK,CAAC;MACzC,IAAID,OAAO,EAAE;QACX,OAAO;UACLvC,SAAS,EAAEV,cAAc;UACzBJ,IAAI,EAAE;YACJuD,OAAOA,CAAA,EAAG;cACRF,OAAO,CAACG,UAAU,CAACC,OAAO,CAAEC,KAAK,IAAK;gBACpC,IAAI,CAACC,GAAG,EAAEC,WAAW,CAACF,KAAK,CAAC;cAC9B,CAAC,CAAC;YACJ,CAAC;YACDG,MAAM,EAAE,SAAAA,CAAA,EAAY;cAClB,MAAM1C,KAAU,GAAG,CAAC,CAAC;cACrB,IAAIkC,OAAO,CAACS,aAAa,CAAC,CAAC,EAAE;gBAC3B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGV,OAAO,CAACW,UAAU,CAAChB,MAAM,EAAEe,CAAC,IAAI,CAAC,EAAE;kBACrD,MAAME,IAAI,GAAGZ,OAAO,CAACW,UAAU,CAACE,IAAI,CAACH,CAAC,CAAC;kBACvC,IAAIE,IAAI,EAAE;oBACR9C,KAAK,CAAE,IAAG8C,IAAI,CAAC5D,IAAK,EAAC,CAAC,GAAG4D,IAAI,CAACE,KAAK;kBACrC;gBACF;cACF;cAEA,MAAMC,IAAI,GAAGnF,CAAC,CAAC,KAAK,EAAE;gBAAE,GAAGkC;cAAM,CAAC,EAAE,EAAE,CAAC;cACvC,OAAOiD,IAAI;YACb;UACF;QACF,CAAC;MACH;IACF;IAEA,OAAO;MACLpE,IAAI,EAAE+C,QAAQ;MACdjC,SAAS,EAAEmC,OAAO,CAACnC;IACrB,CAAC;EACH,CAAC,CAAC;EAEF,OAAO;IACLsB;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"icon.mjs","names":["computed","h","inject","mergeProps","unref","builtSet","mergeDeep","defineComponent","propsFactory","IconPropOption","String","Function","Object","Array","IconValue","pressIconPropsOptions","icon","type","tag","required","YComponentIcon","name","props","setup","_ref","slots","Icon","_createVNode","_Fragment","iconProps","component","default","YSvgIcon","inheritAttrs","_ref2","attrs","isArray","map","path","YUYEON_ICON_KEY","Symbol","for","createIconModule","options","defaultSet","sets","svg","aliases","useIcon","iconProp","iconModule","Error","iconData","iconMeta","alias","trim","startsWith","slice","iconValue","iconSetName","keys","find","setName","iconName","length","iconSet","text","DOMParser","parseFromString","svgNode","querySelector","mounted","childNodes","forEach","child","$el","appendChild","render","hasAttributes","i","attributes","attr","item","value","node"],"sources":["../../src/composables/icon.tsx"],"sourcesContent":["import {\r\n type HTMLAttributes,\r\n type InjectionKey,\r\n type PropType,\r\n type Ref,\r\n type SVGAttributes,\r\n computed,\r\n h,\r\n inject,\r\n mergeProps,\r\n unref,\r\n} from 'vue';\r\n\r\nimport { builtSet } from '@/components/icons';\r\nimport type { JSXComponent } from '@/types';\r\nimport { mergeDeep } from '@/util/common';\r\nimport { defineComponent } from '@/util/component/component';\r\nimport { propsFactory } from '@/util/component/props';\r\n\r\ntype IconComponent =\r\n | JSXComponent<IconProps>\r\n | JSXComponent<SVGAttributes | HTMLAttributes>;\r\n\r\nexport type IconValue =\r\n | string\r\n | (string | [path: string, opacity: number])[]\r\n | IconComponent\r\n | { component: JSXComponent; props?: any }\r\n | { alias: string; iconProps?: any };\r\n\r\nexport const IconPropOption = [\r\n String,\r\n Function,\r\n Object,\r\n Array,\r\n] as PropType<IconValue>;\r\n\r\ntype IconProps = {\r\n tag: string;\r\n icon?: IconValue;\r\n disabled?: Boolean;\r\n};\r\n\r\nexport interface IconSet {\r\n component: IconComponent;\r\n}\r\n\r\nexport const IconValue = [\r\n String,\r\n Object,\r\n Array,\r\n Function,\r\n] as PropType<IconValue>;\r\n\r\nexport type IconModuleOptions = {\r\n defaultSet?: string;\r\n sets?: Record<string, IconSet>;\r\n aliases?: Partial<Record<string, any>>;\r\n};\r\n\r\nexport const pressIconPropsOptions = propsFactory(\r\n {\r\n icon: {\r\n type: IconValue,\r\n },\r\n tag: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n 'icon',\r\n);\r\n\r\nexport const YComponentIcon = defineComponent({\r\n name: 'YComponentIcon',\r\n props: pressIconPropsOptions(),\r\n setup(props, { slots }) {\r\n return () => {\r\n const icon = props.icon as unknown;\r\n let Icon: JSXComponent = () => <></>;\r\n let iconProps: any = {};\r\n if (icon instanceof Object) {\r\n Icon = icon as JSXComponent;\r\n if ('component' in icon) {\r\n Icon = icon.component as JSXComponent;\r\n iconProps = (icon as any)?.props;\r\n }\r\n }\r\n return (\r\n <props.tag>\r\n {props.icon ? <Icon {...mergeProps(iconProps)} /> : slots.default?.()}\r\n </props.tag>\r\n );\r\n };\r\n },\r\n});\r\nexport type YComponentIcon = InstanceType<typeof YComponentIcon>;\r\n\r\nexport const YSvgIcon = defineComponent({\r\n name: 'YSvgIcon',\r\n inheritAttrs: false,\r\n props: pressIconPropsOptions(),\r\n setup(props, { attrs }) {\r\n return () => {\r\n return (\r\n <props.tag {...attrs}>\r\n <svg\r\n class=\"y-icon__svg\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 24 24\"\r\n role=\"img\"\r\n aria-hidden=\"true\"\r\n >\r\n {Array.isArray(props.icon) ? (\r\n props.icon.map((path) =>\r\n Array.isArray(path) ? (\r\n <path d={path[0] as string} fill-opacity={path[1]}></path>\r\n ) : (\r\n <path d={path as string}></path>\r\n ),\r\n )\r\n ) : (\r\n <path d={props.icon as string}></path>\r\n )}\r\n </svg>\r\n </props.tag>\r\n );\r\n };\r\n },\r\n});\r\nexport type YSvgIcon = InstanceType<typeof YSvgIcon>;\r\n\r\nexport const YUYEON_ICON_KEY: InjectionKey<Required<IconModuleOptions>> =\r\n Symbol.for('yuyeon.icon');\r\n\r\nexport function createIconModule(options?: IconModuleOptions) {\r\n return mergeDeep(\r\n {\r\n defaultSet: 'built',\r\n sets: {\r\n svg: {\r\n component: YSvgIcon,\r\n },\r\n },\r\n aliases: {\r\n ...builtSet,\r\n },\r\n },\r\n options,\r\n ) as Required<IconModuleOptions>;\r\n}\r\n\r\ntype IconInstance = {\r\n component: IconComponent;\r\n icon?: IconValue;\r\n};\r\n\r\nexport function useIcon(iconProp: Ref<IconValue | undefined>) {\r\n const iconModule = inject(YUYEON_ICON_KEY);\r\n\r\n if (!iconModule) throw new Error('Not found provided \"IconModule\"');\r\n\r\n const iconData = computed<IconInstance>(() => {\r\n const iconMeta = unref(iconProp);\r\n\r\n if (!iconMeta) return { component: YComponentIcon };\r\n\r\n let icon: IconValue | undefined = iconMeta;\r\n\r\n if (\r\n typeof icon === 'object' &&\r\n 'alias' in icon &&\r\n typeof icon.alias === 'string'\r\n ) {\r\n icon = icon.alias;\r\n }\r\n\r\n if (typeof icon === 'string') {\r\n icon = icon.trim();\r\n\r\n if (icon.startsWith('$')) {\r\n icon = iconModule.aliases?.[icon.slice(1)];\r\n }\r\n }\r\n\r\n if (!icon) throw new Error(`Could not find aliased icon \"${iconMeta}\"`);\r\n\r\n if (Array.isArray(icon)) {\r\n return {\r\n component: YSvgIcon,\r\n icon,\r\n };\r\n } else if (typeof icon !== 'string') {\r\n const iconValue = unref(iconProp);\r\n if (\r\n iconValue &&\r\n typeof iconValue === 'object' &&\r\n 'iconProps' in iconValue\r\n ) {\r\n icon = {\r\n component:\r\n 'component' in icon ? icon.component : (icon as JSXComponent),\r\n props:\r\n 'props' in icon\r\n ? mergeDeep(icon.props, iconValue?.iconProps ?? {})\r\n : iconValue.iconProps,\r\n };\r\n }\r\n\r\n return {\r\n component: YComponentIcon,\r\n icon,\r\n };\r\n }\r\n\r\n const iconSetName = Object.keys(iconModule.sets).find(\r\n (setName) => typeof icon === 'string' && icon.startsWith(`${setName}:`),\r\n );\r\n\r\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;\r\n const iconSet = iconModule.sets[iconSetName ?? iconModule.defaultSet];\r\n\r\n if (!iconSet?.component && typeof icon === 'string') {\r\n const text = new DOMParser().parseFromString(icon, 'text/xml');\r\n const svgNode = text.querySelector('svg');\r\n if (svgNode) {\r\n return {\r\n component: YComponentIcon,\r\n icon: {\r\n mounted() {\r\n svgNode.childNodes.forEach((child) => {\r\n this.$el?.appendChild(child);\r\n });\r\n },\r\n render: function () {\r\n const attrs: any = {};\r\n if (svgNode.hasAttributes()) {\r\n for (let i = 0; i < svgNode.attributes.length; i += 1) {\r\n const attr = svgNode.attributes.item(i);\r\n if (attr) {\r\n attrs[`^${attr.name}`] = attr.value;\r\n }\r\n }\r\n }\r\n\r\n const node = h('svg', { ...attrs }, []);\r\n return node;\r\n },\r\n } as any,\r\n };\r\n }\r\n }\r\n\r\n return {\r\n icon: iconName,\r\n component: iconSet.component,\r\n };\r\n });\r\n\r\n return {\r\n iconData,\r\n };\r\n}\r\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/composables/index.ts"],"sourcesContent":["export * from './communication';\nexport * from './date';\nexport * from './resize-observer';\nexport * from './component';\nexport * from './focus';\nexport * from './scope';\nexport * from './timing';\nexport * from './transition';\nexport * from './vue-router';\nexport * from './theme';\n"],"mappings":""}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/composables/index.ts"],"sourcesContent":["export * from './communication';\r\nexport * from './date';\r\nexport * from './resize-observer';\r\nexport * from './component';\r\nexport * from './focus';\r\nexport * from './scope';\r\nexport * from './timing';\r\nexport * from './transition';\r\nexport * from './vue-router';\r\nexport * from './theme';\r\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"layer-group.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","unref","watch","useYuyeon","Y_LAYER_GROUP_CLASS_NAME","layerGroupState","WeakMap","useLayerGroup","props","vm","yuyeon","layerGroup","targetEl","document","body","rootEl","root","proxy","$el","refTarget","el","querySelector","nodeType","layerEl","createElement","className","appendChild","neo","old","has","get","delete","set","Set","add","immediate","getActiveLayers","activeLayers","currentGroup","value","forEach","ctx","active","isUnmounted","push","unregister"],"sources":["../../src/composables/layer-group.ts"],"sourcesContent":["import {\n type MaybeRef,\n computed,\n getCurrentInstance,\n onBeforeUnmount,\n unref,\n watch,\n} from 'vue';\nimport type { ComponentInternalInstance, Ref } from 'vue';\n\nimport { useYuyeon } from '@/index';\n\nexport const Y_LAYER_GROUP_CLASS_NAME = 'y-layer-group';\n\nconst layerGroupState = new WeakMap<HTMLElement, Set<any>>();\n\nexport function useLayerGroup(props: {\n layerGroup?: MaybeRef<string | Element | undefined>;\n}) {\n const vm = getCurrentInstance()!;\n const yuyeon = useYuyeon();\n\n const layerGroup = computed<HTMLElement>(() => {\n let targetEl: Element = document.body;\n const rootEl = vm.root.proxy?.$el;\n if (rootEl) {\n targetEl = rootEl;\n }\n const refTarget = unref(props.layerGroup);\n if (typeof refTarget === 'string') {\n const el = document.querySelector(refTarget);\n if (el) {\n targetEl = el;\n }\n }\n if (refTarget && (refTarget as Element).nodeType === 1) {\n targetEl = refTarget as Element;\n }\n //\n let layerEl = targetEl.querySelector(\n `:scope > .${Y_LAYER_GROUP_CLASS_NAME}`,\n );\n if (!layerEl) {\n layerEl = document.createElement('div');\n layerEl.className = Y_LAYER_GROUP_CLASS_NAME;\n targetEl.appendChild(layerEl);\n }\n return layerEl as HTMLElement;\n });\n\n watch(\n layerGroup,\n (neo, old) => {\n if (old && layerGroupState.has(old)) {\n layerGroupState.get(old)?.delete(vm);\n }\n if (!(layerGroupState.has(neo) && layerGroupState.get(neo))) {\n layerGroupState.set(neo, new Set());\n }\n layerGroupState.get(neo)?.add(vm);\n },\n { immediate: true },\n );\n\n function getActiveLayers() {\n const activeLayers: ComponentInternalInstance[] = [];\n const currentGroup = layerGroupState.get(layerGroup.value);\n currentGroup?.forEach((value) => {\n if (value?.ctx?.active && !value?.isUnmounted) {\n activeLayers.push(value);\n }\n });\n return activeLayers;\n }\n\n function unregister() {\n layerGroupState.get(layerGroup.value)?.delete(vm);\n }\n\n onBeforeUnmount(() => {\n unregister();\n });\n\n return { layerGroup, layerGroupState, getActiveLayers };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"layer-group.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","unref","watch","useYuyeon","Y_LAYER_GROUP_CLASS_NAME","layerGroupState","WeakMap","useLayerGroup","props","vm","yuyeon","layerGroup","targetEl","document","body","rootEl","root","proxy","$el","refTarget","el","querySelector","nodeType","layerEl","createElement","className","appendChild","neo","old","has","get","delete","set","Set","add","immediate","getActiveLayers","activeLayers","currentGroup","value","forEach","ctx","active","isUnmounted","push","unregister"],"sources":["../../src/composables/layer-group.ts"],"sourcesContent":["import {\r\n type MaybeRef,\r\n computed,\r\n getCurrentInstance,\r\n onBeforeUnmount,\r\n unref,\r\n watch,\r\n} from 'vue';\r\nimport type { ComponentInternalInstance, Ref } from 'vue';\r\n\r\nimport { useYuyeon } from '@/index';\r\n\r\nexport const Y_LAYER_GROUP_CLASS_NAME = 'y-layer-group';\r\n\r\nconst layerGroupState = new WeakMap<HTMLElement, Set<any>>();\r\n\r\nexport function useLayerGroup(props: {\r\n layerGroup?: MaybeRef<string | Element | undefined>;\r\n}) {\r\n const vm = getCurrentInstance()!;\r\n const yuyeon = useYuyeon();\r\n\r\n const layerGroup = computed<HTMLElement>(() => {\r\n let targetEl: Element = document.body;\r\n const rootEl = vm.root.proxy?.$el;\r\n if (rootEl) {\r\n targetEl = rootEl;\r\n }\r\n const refTarget = unref(props.layerGroup);\r\n if (typeof refTarget === 'string') {\r\n const el = document.querySelector(refTarget);\r\n if (el) {\r\n targetEl = el;\r\n }\r\n }\r\n if (refTarget && (refTarget as Element).nodeType === 1) {\r\n targetEl = refTarget as Element;\r\n }\r\n //\r\n let layerEl = targetEl.querySelector(\r\n `:scope > .${Y_LAYER_GROUP_CLASS_NAME}`,\r\n );\r\n if (!layerEl) {\r\n layerEl = document.createElement('div');\r\n layerEl.className = Y_LAYER_GROUP_CLASS_NAME;\r\n targetEl.appendChild(layerEl);\r\n }\r\n return layerEl as HTMLElement;\r\n });\r\n\r\n watch(\r\n layerGroup,\r\n (neo, old) => {\r\n if (old && layerGroupState.has(old)) {\r\n layerGroupState.get(old)?.delete(vm);\r\n }\r\n if (!(layerGroupState.has(neo) && layerGroupState.get(neo))) {\r\n layerGroupState.set(neo, new Set());\r\n }\r\n layerGroupState.get(neo)?.add(vm);\r\n },\r\n { immediate: true },\r\n );\r\n\r\n function getActiveLayers() {\r\n const activeLayers: ComponentInternalInstance[] = [];\r\n const currentGroup = layerGroupState.get(layerGroup.value);\r\n currentGroup?.forEach((value) => {\r\n if (value?.ctx?.active && !value?.isUnmounted) {\r\n activeLayers.push(value);\r\n }\r\n });\r\n return activeLayers;\r\n }\r\n\r\n function unregister() {\r\n layerGroupState.get(layerGroup.value)?.delete(vm);\r\n }\r\n\r\n onBeforeUnmount(() => {\r\n unregister();\r\n });\r\n\r\n return { layerGroup, layerGroupState, getActiveLayers };\r\n}\r\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"layout.mjs","names":["provide","YUYEON_LAYOUT_KEY","Symbol","for","initLayoutSystem","register","unregister"],"sources":["../../src/composables/layout.ts"],"sourcesContent":["import { type InjectionKey, provide } from 'vue';\n\ndeclare function register(): void;\n\ninterface LayoutProvide {\n register: typeof register;\n unregister: (id: string) => void;\n}\n\nexport const YUYEON_LAYOUT_KEY: InjectionKey<LayoutProvide> =\n Symbol.for('yuyeon.layout');\n\nexport function initLayoutSystem() {\n provide(YUYEON_LAYOUT_KEY, {\n register: () => {\n return;\n },\n unregister: () => {\n return;\n },\n });\n}\n"],"mappings":"AAAA,SAA4BA,OAAO,QAAQ,KAAK;AAShD,OAAO,MAAMC,iBAA8C,GACzDC,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;AAE7B,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EACjCJ,OAAO,CAACC,iBAAiB,EAAE;IACzBI,QAAQ,EAAEA,CAAA,KAAM;MACd;IACF,CAAC;IACDC,UAAU,EAAEA,CAAA,KAAM;MAChB;IACF;EACF,CAAC,CAAC;AACJ"}
1
+ {"version":3,"file":"layout.mjs","names":["provide","YUYEON_LAYOUT_KEY","Symbol","for","initLayoutSystem","register","unregister"],"sources":["../../src/composables/layout.ts"],"sourcesContent":["import { type InjectionKey, provide } from 'vue';\r\n\r\ndeclare function register(): void;\r\n\r\ninterface LayoutProvide {\r\n register: typeof register;\r\n unregister: (id: string) => void;\r\n}\r\n\r\nexport const YUYEON_LAYOUT_KEY: InjectionKey<LayoutProvide> =\r\n Symbol.for('yuyeon.layout');\r\n\r\nexport function initLayoutSystem() {\r\n provide(YUYEON_LAYOUT_KEY, {\r\n register: () => {\r\n return;\r\n },\r\n unregister: () => {\r\n return;\r\n },\r\n });\r\n}\r\n"],"mappings":"AAAA,SAA4BA,OAAO,QAAQ,KAAK;AAShD,OAAO,MAAMC,iBAA8C,GACzDC,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;AAE7B,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EACjCJ,OAAO,CAACC,iBAAiB,EAAE;IACzBI,QAAQ,EAAEA,CAAA,KAAM;MACd;IACF,CAAC;IACDC,UAAU,EAAEA,CAAA,KAAM;MAChB;IACF;EACF,CAAC,CAAC;AACJ"}