yuyeon 0.2.1-rc.1 → 0.2.1-rc.2

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 (380) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +5789 -7457
  3. package/dist/yuyeon.umd.cjs +4 -26
  4. package/lib/components/alert/YAlert.mjs +2 -2
  5. package/lib/components/alert/YAlert.mjs.map +1 -1
  6. package/lib/components/alert/YAlert.scss +75 -76
  7. package/lib/components/alert/index.mjs.map +1 -1
  8. package/lib/components/app/YApp.mjs +3 -2
  9. package/lib/components/app/YApp.mjs.map +1 -1
  10. package/lib/components/app/YApp.scss +14 -14
  11. package/lib/components/app/index.mjs.map +1 -1
  12. package/lib/components/badge/YBadge.mjs +2 -2
  13. package/lib/components/badge/YBadge.mjs.map +1 -1
  14. package/lib/components/badge/YBadge.scss +76 -76
  15. package/lib/components/badge/index.mjs.map +1 -1
  16. package/lib/components/bench/YBench.mjs +2 -3
  17. package/lib/components/bench/YBench.mjs.map +1 -1
  18. package/lib/components/bench/index.mjs.map +1 -1
  19. package/lib/components/button/YButton.mjs +4 -4
  20. package/lib/components/button/YButton.mjs.map +1 -1
  21. package/lib/components/button/YButton.scss +128 -129
  22. package/lib/components/button/index.mjs.map +1 -1
  23. package/lib/components/card/YCard.mjs +3 -2
  24. package/lib/components/card/YCard.mjs.map +1 -1
  25. package/lib/components/card/YCard.scss +45 -43
  26. package/lib/components/card/YCardBody.mjs +2 -1
  27. package/lib/components/card/YCardBody.mjs.map +1 -1
  28. package/lib/components/card/YCardFooter.mjs +2 -1
  29. package/lib/components/card/YCardFooter.mjs.map +1 -1
  30. package/lib/components/card/YCardHeader.mjs +2 -1
  31. package/lib/components/card/YCardHeader.mjs.map +1 -1
  32. package/lib/components/checkbox/YCheckbox.mjs +2 -2
  33. package/lib/components/checkbox/YCheckbox.mjs.map +1 -1
  34. package/lib/components/checkbox/YCheckbox.scss +48 -48
  35. package/lib/components/checkbox/YInputCheckbox.mjs +2 -1
  36. package/lib/components/checkbox/YInputCheckbox.mjs.map +1 -1
  37. package/lib/components/checkbox/YInputCheckbox.scss +84 -86
  38. package/lib/components/checkbox/index.mjs +1 -1
  39. package/lib/components/checkbox/index.mjs.map +1 -1
  40. package/lib/components/chip/YChip.mjs +2 -2
  41. package/lib/components/chip/YChip.mjs.map +1 -1
  42. package/lib/components/date-picker/YDateCalendar.mjs +3 -3
  43. package/lib/components/date-picker/YDateCalendar.mjs.map +1 -1
  44. package/lib/components/date-picker/YDateCalendar.scss +84 -82
  45. package/lib/components/date-picker/YDatePicker.mjs +2 -2
  46. package/lib/components/date-picker/YDatePicker.mjs.map +1 -1
  47. package/lib/components/date-picker/YDatePicker.scss +3 -3
  48. package/lib/components/date-picker/YDatePickerControl.mjs +2 -2
  49. package/lib/components/date-picker/YDatePickerControl.mjs.map +1 -1
  50. package/lib/components/date-picker/YDatePickerControl.scss +35 -35
  51. package/lib/components/date-picker/YMonthPicker.mjs +3 -3
  52. package/lib/components/date-picker/YMonthPicker.mjs.map +1 -1
  53. package/lib/components/date-picker/YMonthPicker.scss +25 -25
  54. package/lib/components/date-picker/YYearPicker.mjs +3 -2
  55. package/lib/components/date-picker/YYearPicker.mjs.map +1 -1
  56. package/lib/components/date-picker/YYearPicker.scss +23 -23
  57. package/lib/components/date-picker/index.mjs.map +1 -1
  58. package/lib/components/dialog/YDialog.mjs +3 -3
  59. package/lib/components/dialog/YDialog.mjs.map +1 -1
  60. package/lib/components/dialog/YDialog.scss +50 -50
  61. package/lib/components/dialog/index.mjs.map +1 -1
  62. package/lib/components/divider/YDivider.mjs +1 -2
  63. package/lib/components/divider/YDivider.mjs.map +1 -1
  64. package/lib/components/divider/YDivider.scss +2 -3
  65. package/lib/components/divider/index.mjs.map +1 -1
  66. package/lib/components/dropdown/YDropdown.mjs +2 -2
  67. package/lib/components/dropdown/YDropdown.mjs.map +1 -1
  68. package/lib/components/dropdown/YDropdown.scss +27 -28
  69. package/lib/components/dropdown/index.mjs.map +1 -1
  70. package/lib/components/field-input/YFieldInput.mjs +2 -2
  71. package/lib/components/field-input/YFieldInput.mjs.map +1 -1
  72. package/lib/components/field-input/YFieldInput.scss +66 -66
  73. package/lib/components/field-input/index.mjs.map +1 -1
  74. package/lib/components/form/YForm.mjs +3 -2
  75. package/lib/components/form/YForm.mjs.map +1 -1
  76. package/lib/components/hover/YHover.mjs +2 -2
  77. package/lib/components/hover/YHover.mjs.map +1 -1
  78. package/lib/components/hover/index.mjs.map +1 -1
  79. package/lib/components/icon/YIcon.mjs +3 -2
  80. package/lib/components/icon/YIcon.mjs.map +1 -1
  81. package/lib/components/icon/YIcon.scss +18 -18
  82. package/lib/components/icon/index.mjs.map +1 -1
  83. package/lib/components/icons/YIconCheckbox.mjs +1 -1
  84. package/lib/components/icons/YIconCheckbox.mjs.map +1 -1
  85. package/lib/components/icons/YIconCheckbox.scss +60 -60
  86. package/lib/components/icons/YIconClear.mjs +1 -1
  87. package/lib/components/icons/YIconClear.mjs.map +1 -1
  88. package/lib/components/icons/YIconDropdown.mjs +1 -1
  89. package/lib/components/icons/YIconDropdown.mjs.map +1 -1
  90. package/lib/components/icons/YIconExpand.mjs +1 -1
  91. package/lib/components/icons/YIconExpand.mjs.map +1 -1
  92. package/lib/components/icons/YIconPageControl.mjs +1 -1
  93. package/lib/components/icons/YIconPageControl.mjs.map +1 -1
  94. package/lib/components/icons/YIconSort.mjs +1 -1
  95. package/lib/components/icons/YIconSort.mjs.map +1 -1
  96. package/lib/components/icons/YIconSort.scss +24 -23
  97. package/lib/components/icons/index.mjs +1 -1
  98. package/lib/components/icons/index.mjs.map +1 -1
  99. package/lib/components/img/YImg.mjs +6 -7
  100. package/lib/components/img/YImg.mjs.map +1 -1
  101. package/lib/components/input/YInput.mjs +3 -4
  102. package/lib/components/input/YInput.mjs.map +1 -1
  103. package/lib/components/input/YInput.scss +258 -254
  104. package/lib/components/input/index.mjs.map +1 -1
  105. package/lib/components/ip-field/YIpField.scss +74 -74
  106. package/lib/components/ip-field/YIpv4Field.mjs +2 -2
  107. package/lib/components/ip-field/YIpv4Field.mjs.map +1 -1
  108. package/lib/components/ip-field/index.mjs.map +1 -1
  109. package/lib/components/layer/YLayer.mjs +2 -2
  110. package/lib/components/layer/YLayer.mjs.map +1 -1
  111. package/lib/components/layer/YLayer.scss +38 -38
  112. package/lib/components/layer/active-delay.mjs.map +1 -1
  113. package/lib/components/layer/active-stack.mjs.map +1 -1
  114. package/lib/components/layer/base.mjs.map +1 -1
  115. package/lib/components/layer/content.mjs.map +1 -1
  116. package/lib/components/layer/scroll-strategies.mjs +1 -1
  117. package/lib/components/layer/scroll-strategies.mjs.map +1 -1
  118. package/lib/components/list/YList.mjs +2 -2
  119. package/lib/components/list/YList.mjs.map +1 -1
  120. package/lib/components/list/YList.scss +3 -3
  121. package/lib/components/list/YListItem.mjs +2 -2
  122. package/lib/components/list/YListItem.mjs.map +1 -1
  123. package/lib/components/list/YListItem.scss +62 -62
  124. package/lib/components/list/index.mjs.map +1 -1
  125. package/lib/components/loading/YSpinnerRing.mjs +1 -1
  126. package/lib/components/loading/YSpinnerRing.mjs.map +1 -1
  127. package/lib/components/menu/YMenu.mjs +5 -4
  128. package/lib/components/menu/YMenu.mjs.map +1 -1
  129. package/lib/components/menu/YMenu.scss +25 -22
  130. package/lib/components/menu/index.mjs.map +1 -1
  131. package/lib/components/navigation/YNavigation.mjs +2 -1
  132. package/lib/components/navigation/YNavigation.mjs.map +1 -1
  133. package/lib/components/pagination/YPagination.mjs +2 -2
  134. package/lib/components/pagination/YPagination.mjs.map +1 -1
  135. package/lib/components/pagination/YPagination.scss +52 -51
  136. package/lib/components/pagination/index.mjs.map +1 -1
  137. package/lib/components/panel/YDividePanel.mjs.map +1 -1
  138. package/lib/components/panel/YDividePanel.scss +43 -43
  139. package/lib/components/panel/index.mjs.map +1 -1
  140. package/lib/components/plate/YPlate.mjs +2 -1
  141. package/lib/components/plate/YPlate.mjs.map +1 -1
  142. package/lib/components/plate/YPlate.scss +9 -9
  143. package/lib/components/progress-bar/YProgressBar.mjs +2 -2
  144. package/lib/components/progress-bar/YProgressBar.mjs.map +1 -1
  145. package/lib/components/progress-bar/YProgressBar.scss +6 -4
  146. package/lib/components/select/YSelect.mjs +3 -5
  147. package/lib/components/select/YSelect.mjs.map +1 -1
  148. package/lib/components/select/YSelect.scss +43 -43
  149. package/lib/components/select/index.mjs.map +1 -1
  150. package/lib/components/snackbar/YSnackbar.mjs +8 -9
  151. package/lib/components/snackbar/YSnackbar.mjs.map +1 -1
  152. package/lib/components/snackbar/YSnackbar.scss +38 -38
  153. package/lib/components/switch/YSwitch.mjs +2 -1
  154. package/lib/components/switch/YSwitch.mjs.map +1 -1
  155. package/lib/components/switch/YSwitch.scss +204 -198
  156. package/lib/components/tab/YTab.mjs +2 -3
  157. package/lib/components/tab/YTab.mjs.map +1 -1
  158. package/lib/components/tab/YTab.scss +6 -3
  159. package/lib/components/tab/YTabs.mjs +2 -2
  160. package/lib/components/tab/YTabs.mjs.map +1 -1
  161. package/lib/components/tab/YTabs.scss +8 -10
  162. package/lib/components/tab/index.mjs.map +1 -1
  163. package/lib/components/tab/types.mjs.map +1 -1
  164. package/lib/components/table/YDataTable.mjs +5 -5
  165. package/lib/components/table/YDataTable.mjs.map +1 -1
  166. package/lib/components/table/YDataTableBody.mjs +2 -2
  167. package/lib/components/table/YDataTableBody.mjs.map +1 -1
  168. package/lib/components/table/YDataTableCell.mjs +2 -1
  169. package/lib/components/table/YDataTableCell.mjs.map +1 -1
  170. package/lib/components/table/YDataTableControl.mjs +1 -1
  171. package/lib/components/table/YDataTableControl.mjs.map +1 -1
  172. package/lib/components/table/YDataTableControl.scss +7 -7
  173. package/lib/components/table/YDataTableHead.mjs +2 -3
  174. package/lib/components/table/YDataTableHead.mjs.map +1 -1
  175. package/lib/components/table/YDataTableLayer.mjs +2 -1
  176. package/lib/components/table/YDataTableLayer.mjs.map +1 -1
  177. package/lib/components/table/YDataTableRow.mjs +2 -1
  178. package/lib/components/table/YDataTableRow.mjs.map +1 -1
  179. package/lib/components/table/YDataTableServer.mjs +3 -4
  180. package/lib/components/table/YDataTableServer.mjs.map +1 -1
  181. package/lib/components/table/YTable.mjs +2 -2
  182. package/lib/components/table/YTable.mjs.map +1 -1
  183. package/lib/components/table/YTable.scss +157 -152
  184. package/lib/components/table/composibles/header.mjs.map +1 -1
  185. package/lib/components/table/composibles/items.mjs.map +1 -1
  186. package/lib/components/table/composibles/options.mjs.map +1 -1
  187. package/lib/components/table/composibles/pagination.mjs.map +1 -1
  188. package/lib/components/table/composibles/selection.mjs +1 -1
  189. package/lib/components/table/composibles/selection.mjs.map +1 -1
  190. package/lib/components/table/composibles/sorted-items.mjs +1 -1
  191. package/lib/components/table/composibles/sorted-items.mjs.map +1 -1
  192. package/lib/components/table/composibles/sorting.mjs +1 -2
  193. package/lib/components/table/composibles/sorting.mjs.map +1 -1
  194. package/lib/components/table/index.mjs.map +1 -1
  195. package/lib/components/table/types/common.mjs.map +1 -1
  196. package/lib/components/table/types/header.mjs.map +1 -1
  197. package/lib/components/table/types/index.mjs.map +1 -1
  198. package/lib/components/table/types/row.mjs.map +1 -1
  199. package/lib/components/text-ellipsis/YTextEllipsis.mjs +4 -2
  200. package/lib/components/text-ellipsis/YTextEllipsis.mjs.map +1 -1
  201. package/lib/components/text-ellipsis/YTextEllipsis.scss +43 -43
  202. package/lib/components/text-ellipsis/index.mjs.map +1 -1
  203. package/lib/components/text-highlighter/YTextHighlighter.mjs +2 -1
  204. package/lib/components/text-highlighter/YTextHighlighter.mjs.map +1 -1
  205. package/lib/components/text-interpolation/YTi.mjs +2 -1
  206. package/lib/components/text-interpolation/YTi.mjs.map +1 -1
  207. package/lib/components/text-interpolation/index.mjs.map +1 -1
  208. package/lib/components/textarea/YTextarea.mjs +2 -2
  209. package/lib/components/textarea/YTextarea.mjs.map +1 -1
  210. package/lib/components/textarea/YTextarea.scss +25 -25
  211. package/lib/components/textarea/index.mjs.map +1 -1
  212. package/lib/components/toggle-button/YToggleButton.mjs.map +1 -1
  213. package/lib/components/toggle-button/index.mjs.map +1 -1
  214. package/lib/components/tooltip/YTooltip.mjs +3 -3
  215. package/lib/components/tooltip/YTooltip.mjs.map +1 -1
  216. package/lib/components/tooltip/YTooltip.scss +19 -19
  217. package/lib/components/tooltip/index.mjs.map +1 -1
  218. package/lib/components/transitions/expand-transition.mjs.map +1 -1
  219. package/lib/components/tree-view/YTreeView.mjs +1 -1
  220. package/lib/components/tree-view/YTreeView.mjs.map +1 -1
  221. package/lib/components/tree-view/YTreeView.scss +81 -79
  222. package/lib/components/tree-view/YTreeViewNode.mjs +2 -1
  223. package/lib/components/tree-view/YTreeViewNode.mjs.map +1 -1
  224. package/lib/components/tree-view/index.mjs.map +1 -1
  225. package/lib/components/tree-view/types.mjs.map +1 -1
  226. package/lib/components/tree-view/util.mjs.map +1 -1
  227. package/lib/composables/choice.mjs.map +1 -1
  228. package/lib/composables/communication.mjs.map +1 -1
  229. package/lib/composables/component.mjs.map +1 -1
  230. package/lib/composables/coordinate/arrangement.mjs.map +1 -1
  231. package/lib/composables/coordinate/levitation.mjs.map +1 -1
  232. package/lib/composables/coordinate/utils/point.mjs.map +1 -1
  233. package/lib/composables/date/factory.mjs.map +1 -1
  234. package/lib/composables/date/index.mjs +1 -1
  235. package/lib/composables/date/index.mjs.map +1 -1
  236. package/lib/composables/date/setting.mjs.map +1 -1
  237. package/lib/composables/date/types.mjs.map +1 -1
  238. package/lib/composables/defaults/index.mjs +3 -3
  239. package/lib/composables/defaults/index.mjs.map +1 -1
  240. package/lib/composables/defaults/types.mjs.map +1 -1
  241. package/lib/composables/dimension.mjs +1 -1
  242. package/lib/composables/dimension.mjs.map +1 -1
  243. package/lib/composables/focus.mjs +1 -1
  244. package/lib/composables/focus.mjs.map +1 -1
  245. package/lib/composables/form.mjs.map +1 -1
  246. package/lib/composables/i18n/index.mjs.map +1 -1
  247. package/lib/composables/icon.mjs +5 -4
  248. package/lib/composables/icon.mjs.map +1 -1
  249. package/lib/composables/layer-group.mjs +1 -1
  250. package/lib/composables/layer-group.mjs.map +1 -1
  251. package/lib/composables/layout.mjs +1 -1
  252. package/lib/composables/layout.mjs.map +1 -1
  253. package/lib/composables/list-items.mjs.map +1 -1
  254. package/lib/composables/ref.mjs +1 -1
  255. package/lib/composables/ref.mjs.map +1 -1
  256. package/lib/composables/resize-observer.mjs +1 -3
  257. package/lib/composables/resize-observer.mjs.map +1 -1
  258. package/lib/composables/scope.mjs +1 -2
  259. package/lib/composables/scope.mjs.map +1 -1
  260. package/lib/composables/theme/factory.mjs.map +1 -1
  261. package/lib/composables/theme/index.mjs +1 -1
  262. package/lib/composables/theme/index.mjs.map +1 -1
  263. package/lib/composables/theme/setting.mjs.map +1 -1
  264. package/lib/composables/theme/types.mjs.map +1 -1
  265. package/lib/composables/timing.mjs +1 -1
  266. package/lib/composables/timing.mjs.map +1 -1
  267. package/lib/composables/transition.mjs +1 -1
  268. package/lib/composables/transition.mjs.map +1 -1
  269. package/lib/composables/validation.mjs +1 -1
  270. package/lib/composables/validation.mjs.map +1 -1
  271. package/lib/composables/vue-router.mjs +1 -1
  272. package/lib/composables/vue-router.mjs.map +1 -1
  273. package/lib/index.mjs +3 -3
  274. package/lib/index.mjs.map +1 -1
  275. package/lib/util/anchor.mjs.map +1 -1
  276. package/lib/util/array.mjs.map +1 -1
  277. package/lib/util/component/component.mjs +2 -1
  278. package/lib/util/component/component.mjs.map +1 -1
  279. package/lib/util/component/index.mjs +2 -1
  280. package/lib/util/component/index.mjs.map +1 -1
  281. package/lib/util/component/inject-self.mjs.map +1 -1
  282. package/lib/util/component/props.mjs +1 -1
  283. package/lib/util/component/props.mjs.map +1 -1
  284. package/lib/util/date/index.mjs.map +1 -1
  285. package/lib/util/dom.mjs.map +1 -1
  286. package/lib/util/reactivity.mjs +3 -3
  287. package/lib/util/reactivity.mjs.map +1 -1
  288. package/lib/util/rect.mjs.map +1 -1
  289. package/lib/util/ui.mjs.map +1 -1
  290. package/lib/util/validation.mjs.map +1 -1
  291. package/package.json +1 -1
  292. package/types/abstract/items.d.ts +4 -4
  293. package/types/components/app/YApp.d.ts +1 -1
  294. package/types/components/badge/YBadge.d.ts +5 -39
  295. package/types/components/bench/YBench.d.ts +1 -1
  296. package/types/components/button/YButton.d.ts +10 -69
  297. package/types/components/card/YCard.d.ts +1 -6
  298. package/types/components/card/YCardBody.d.ts +1 -1
  299. package/types/components/card/YCardFooter.d.ts +1 -1
  300. package/types/components/card/YCardHeader.d.ts +1 -1
  301. package/types/components/checkbox/YCheckbox.d.ts +1 -26
  302. package/types/components/checkbox/YInputCheckbox.d.ts +2 -26
  303. package/types/components/checkbox/index.d.ts +1 -0
  304. package/types/components/chip/YChip.d.ts +2 -13
  305. package/types/components/date-picker/YDateCalendar.d.ts +3 -31
  306. package/types/components/date-picker/YDatePicker.d.ts +13 -42
  307. package/types/components/date-picker/YDatePickerControl.d.ts +12 -44
  308. package/types/components/date-picker/YMonthPicker.d.ts +1 -5
  309. package/types/components/date-picker/YYearPicker.d.ts +1 -7
  310. package/types/components/dialog/YDialog.d.ts +134 -377
  311. package/types/components/divider/YDivider.d.ts +1 -3
  312. package/types/components/dropdown/YDropdown.d.ts +104 -277
  313. package/types/components/field-input/YFieldInput.d.ts +14 -120
  314. package/types/components/form/YForm.d.ts +2 -24
  315. package/types/components/hover/YHover.d.ts +4 -26
  316. package/types/components/icon/YIcon.d.ts +3 -18
  317. package/types/components/icons/YIconCheckbox.d.ts +1 -9
  318. package/types/components/icons/YIconClear.d.ts +1 -1
  319. package/types/components/icons/YIconDropdown.d.ts +1 -1
  320. package/types/components/icons/YIconExpand.d.ts +1 -1
  321. package/types/components/icons/YIconPageControl.d.ts +1 -8
  322. package/types/components/icons/YIconSort.d.ts +1 -10
  323. package/types/components/icons/index.d.ts +8 -46
  324. package/types/components/img/YImg.d.ts +7 -47
  325. package/types/components/input/YInput.d.ts +11 -99
  326. package/types/components/ip-field/YIpv4Field.d.ts +2 -70
  327. package/types/components/layer/YLayer.d.ts +45 -162
  328. package/types/components/layer/content.d.ts +1 -1
  329. package/types/components/layer/scroll-strategies.d.ts +1 -1
  330. package/types/components/list/YList.d.ts +1 -6
  331. package/types/components/list/YListItem.d.ts +3 -21
  332. package/types/components/loading/YSpinnerRing.d.ts +1 -1
  333. package/types/components/menu/YMenu.d.ts +23 -288
  334. package/types/components/navigation/YNavigation.d.ts +1 -1
  335. package/types/components/pagination/YPagination.d.ts +12 -52
  336. package/types/components/plate/YPlate.d.ts +1 -3
  337. package/types/components/progress-bar/YProgressBar.d.ts +1 -36
  338. package/types/components/select/YSelect.d.ts +468 -1092
  339. package/types/components/snackbar/YSnackbar.d.ts +51 -196
  340. package/types/components/switch/YSwitch.d.ts +1 -43
  341. package/types/components/tab/YTab.d.ts +14 -80
  342. package/types/components/tab/YTabs.d.ts +6 -39
  343. package/types/components/table/YDataTable.d.ts +24 -173
  344. package/types/components/table/YDataTableBody.d.ts +3 -26
  345. package/types/components/table/YDataTableCell.d.ts +2 -31
  346. package/types/components/table/YDataTableControl.d.ts +3 -18
  347. package/types/components/table/YDataTableHead.d.ts +3 -21
  348. package/types/components/table/YDataTableLayer.d.ts +1 -3
  349. package/types/components/table/YDataTableRow.d.ts +1 -9
  350. package/types/components/table/YDataTableServer.d.ts +27 -179
  351. package/types/components/table/YTable.d.ts +5 -24
  352. package/types/components/table/composibles/header.d.ts +9 -9
  353. package/types/components/table/composibles/items.d.ts +3 -3
  354. package/types/components/table/composibles/pagination.d.ts +3 -3
  355. package/types/components/table/composibles/selection.d.ts +4 -4
  356. package/types/components/table/composibles/sorting.d.ts +1 -1
  357. package/types/components/table/types/index.d.ts +1 -1
  358. package/types/components/text-ellipsis/YTextEllipsis.d.ts +1 -8
  359. package/types/components/text-highlighter/YTextHighlighter.d.ts +2 -17
  360. package/types/components/text-interpolation/YTi.d.ts +1 -10
  361. package/types/components/textarea/YTextarea.d.ts +15 -111
  362. package/types/components/tooltip/YTooltip.d.ts +41 -275
  363. package/types/components/tree-view/YTreeView.d.ts +2 -2
  364. package/types/components/tree-view/YTreeViewNode.d.ts +10 -67
  365. package/types/composables/choice.d.ts +1 -1
  366. package/types/composables/coordinate/index.d.ts +14 -14
  367. package/types/composables/coordinate/utils/point.d.ts +1 -1
  368. package/types/composables/form.d.ts +2 -2
  369. package/types/composables/icon.d.ts +5 -22
  370. package/types/composables/layer-group.d.ts +1 -1
  371. package/types/composables/list-items.d.ts +10 -10
  372. package/types/composables/timing.d.ts +1 -1
  373. package/types/composables/transition.d.ts +1 -1
  374. package/types/composables/validation.d.ts +3 -3
  375. package/types/composables/vue-router.d.ts +1 -1
  376. package/types/util/Rect.d.ts +1 -1
  377. package/types/util/anchor.d.ts +1 -1
  378. package/types/util/component/component.d.ts +2 -1
  379. package/types/util/component/index.d.ts +4 -4
  380. package/types/util/component/inject-self.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"YTreeView.mjs","names":["computed","defineComponent","onMounted","provide","ref","shallowRef","watch","watchEffect","useModelDuplex","useRender","differenceBetween","isColorValue","deepEqual","getObjectValueByPath","hasOwnProperty","debounce","chooseProps","YProgressBar","YTreeViewNode","pressYTreeViewNodeProps","filterTreeItem","filterTreeItems","getKeys","treeViewNodeProps","YTreeView","name","props","expanded","type","Array","default","active","multipleActive","Boolean","activeStrategy","String","selected","selectStrategy","returnItem","defaultExpand","Number","filter","Function","searchDebounceWait","emits","setup","_ref","slots","emit","expose","nodes","expandedSet","Set","selectedSet","activeSet","excludedSet","filterItemsFn","excludeItem","expandedCache","searchLoading","items","search","arguments","length","undefined","excluded","value","diff","forEach","key","updateExpanded","item","itemKey","itemText","itemChildren","expand","getDescendants","descendants","childKeys","push","remains","slice","childKey","splice","getNodeKey","itemOrKey","updateNodes","parentKey","level","children","exist","existNode","vnode","indeterminate","node","map","child","add","issueVnodeState","to","isArray","delete","neo","deep","until","Object","entries","_ref2","emitExpanded","updateActive","event","inactiveKey","requiredActive","size","activeSingleModifier","getModifierState","descendant","updateSelected","arr","emitActive","emitSelected","stateWatcher","stateSet","updater","emitter","valuesOfKey","v","old","oldKeys","keys","nodeKey","neoKeys","k","oldSelected","oldActive","clear","flush","isExcluded","has","register","renderLeaves","leaf","classes","styles","color","activeColor","activeValue","selectedValue","_createVNode","_Fragment","_mergeProps","_createTextVNode"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import {\r\n PropType,\r\n Ref,\r\n VNode,\r\n computed,\r\n defineComponent,\r\n onMounted,\r\n provide,\r\n ref,\r\n shallowRef,\r\n watch,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { useModelDuplex } from '../../composables/communication';\r\nimport { useRender } from '../../composables/component';\r\nimport { CandidateKey } from '../../types';\r\nimport { differenceBetween } from '../../util/array';\r\nimport { isColorValue } from '../../util/color';\r\nimport {\r\n deepEqual,\r\n getObjectValueByPath,\r\n hasOwnProperty,\r\n} from '../../util/common';\r\nimport { debounce } from '../../util/debounce';\r\nimport { chooseProps } from '../../util/component';\r\nimport { YProgressBar } from '../progress-bar';\r\nimport { YTreeViewNode, pressYTreeViewNodeProps } from './YTreeViewNode';\r\nimport { NodeState, TreeviewFilterFn } from './types';\r\nimport { filterTreeItem, filterTreeItems, getKeys } from './util';\r\n\r\nimport './YTreeView.scss';\r\n\r\nconst treeViewNodeProps = pressYTreeViewNodeProps();\r\n\r\nexport const YTreeView = defineComponent({\r\n name: 'YTreeView',\r\n props: {\r\n expanded: {\r\n type: [Array] as PropType<CandidateKey[]>,\r\n default: () => [],\r\n },\r\n active: {\r\n type: [Array] as PropType<CandidateKey[]>,\r\n default: () => [],\r\n },\r\n multipleActive: Boolean,\r\n activeStrategy: {\r\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\r\n default: 'independent',\r\n },\r\n selected: {\r\n type: [Array] as PropType<CandidateKey[]>,\r\n default: () => [],\r\n },\r\n selectStrategy: {\r\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\r\n default: 'leaf',\r\n },\r\n returnItem: Boolean,\r\n defaultExpand: [Boolean, String, Number],\r\n filter: Function as PropType<TreeviewFilterFn>,\r\n searchDebounceWait: {\r\n type: Number as PropType<number>,\r\n default: 700,\r\n },\r\n ...treeViewNodeProps,\r\n },\r\n emits: ['update:expanded', 'update:active', 'update:selected'],\r\n setup(props, { slots, emit, expose }) {\r\n const nodes = ref<Record<CandidateKey, any>>({});\r\n\r\n const expanded = useModelDuplex(props, 'expanded');\r\n const active = useModelDuplex(props, 'active');\r\n const selected = useModelDuplex(props, 'selected');\r\n\r\n const expandedSet = ref(new Set<CandidateKey>());\r\n const selectedSet = ref(new Set<CandidateKey>());\r\n const activeSet = ref(new Set<CandidateKey>());\r\n const excludedSet = ref(new Set<CandidateKey>());\r\n const filterItemsFn = shallowRef(\r\n debounce(excludeItem, props.searchDebounceWait),\r\n );\r\n const expandedCache = ref<CandidateKey[]>([]);\r\n const searchLoading = shallowRef(false);\r\n\r\n function excludeItem(items: any[], search = '', filter = filterTreeItem) {\r\n const excluded = new Set<CandidateKey>();\r\n if (!search) {\r\n searchLoading.value = false;\r\n excludedSet.value = excluded;\r\n const diff = differenceBetween(expandedCache.value, [\r\n ...expandedSet.value,\r\n ]);\r\n diff.forEach((key) => {\r\n updateExpanded(key, false);\r\n });\r\n expandedCache.value.forEach((key) => {\r\n updateExpanded(key, true);\r\n });\r\n return;\r\n }\r\n for (const item of items) {\r\n filterTreeItems(\r\n filter,\r\n item,\r\n search ?? '',\r\n props.itemKey,\r\n props.itemText,\r\n props.itemChildren as string,\r\n excluded,\r\n );\r\n }\r\n excludedSet.value = excluded;\r\n searchLoading.value = false;\r\n expand();\r\n }\r\n\r\n watchEffect(() => {\r\n searchLoading.value = true;\r\n filterItemsFn.value(props.items, props.search, props.filter);\r\n });\r\n\r\n // Util Methods\r\n function getDescendants(\r\n key: CandidateKey\r\n ) {\r\n const descendants: CandidateKey[] = [];\r\n const { childKeys } = nodes.value[key];\r\n descendants.push(...childKeys);\r\n const remains: CandidateKey[] = childKeys.slice();\r\n\r\n while(remains.length > 0) {\r\n const childKey: CandidateKey = remains.splice(0, 1)[0];\r\n const item = nodes.value[childKey];\r\n if (item) {\r\n descendants.push(...item.childKeys);\r\n remains.push(...item.childKeys);\r\n }\r\n }\r\n\r\n return descendants;\r\n }\r\n\r\n function getNodeKey(itemOrKey: any) {\r\n return props.returnItem\r\n ? getObjectValueByPath(itemOrKey, props.itemKey)\r\n : itemOrKey;\r\n }\r\n\r\n // State Methods\r\n function updateNodes(\r\n items: any[],\r\n parentKey: CandidateKey | null = null,\r\n level = 0,\r\n ) {\r\n for (const item of items) {\r\n const key = getObjectValueByPath(item, props.itemKey);\r\n const children =\r\n getObjectValueByPath(item, props.itemChildren as string) ?? [];\r\n const exist = hasOwnProperty(nodes.value, key);\r\n const existNode = exist\r\n ? nodes.value[key]\r\n : {\r\n vnode: null,\r\n selected: false,\r\n indeterminate: false,\r\n active: false,\r\n expanded: false,\r\n };\r\n const node: NodeState = {\r\n vnode: existNode.vnode,\r\n item,\r\n level,\r\n parentKey,\r\n childKeys: children.map((child: any) =>\r\n getObjectValueByPath(child, props.itemKey),\r\n ),\r\n expanded: children.length > 0 && existNode.expanded,\r\n active: existNode.active,\r\n indeterminate: existNode.indeterminate,\r\n selected: existNode.selected,\r\n };\r\n\r\n updateNodes(children, key, level + 1);\r\n\r\n nodes.value[key] = node;\r\n if (nodes.value[key].expanded) {\r\n expandedSet.value.add(key);\r\n }\r\n if (nodes.value[key].selected) {\r\n expandedSet.value.add(key);\r\n }\r\n if (nodes.value[key].active) {\r\n activeSet.value.add(key);\r\n }\r\n\r\n issueVnodeState(key);\r\n }\r\n }\r\n\r\n function updateExpanded(key: CandidateKey, to: boolean) {\r\n if (!(key in nodes.value)) return;\r\n const node = nodes.value[key];\r\n const children = getObjectValueByPath(\r\n node.item,\r\n props.itemChildren as string,\r\n );\r\n if (Array.isArray(children) && children.length > 0) {\r\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\r\n node.expanded = to;\r\n issueVnodeState(key);\r\n }\r\n }\r\n\r\n watch(\r\n expandedSet,\r\n (neo) => {\r\n if (!props.search) {\r\n expandedCache.value = [...neo];\r\n }\r\n },\r\n { deep: true },\r\n );\r\n\r\n function expand(until: boolean | string | number = true) {\r\n Object.entries(nodes.value).forEach(([key, node]) => {\r\n if (until === true || until >= node.level) {\r\n updateExpanded(key, true);\r\n }\r\n });\r\n emitExpanded();\r\n return expandedSet.value;\r\n }\r\n\r\n function updateActive(key: CandidateKey, to: boolean, event?: MouseEvent) {\r\n if (!(key in nodes.value)) return;\r\n const node = nodes.value[key];\r\n let inactiveKey = !to ? key : '';\r\n if (!props.multipleActive) {\r\n [inactiveKey] = [...activeSet.value];\r\n }\r\n if (to) {\r\n activeSet.value.add(key);\r\n node.active = true;\r\n issueVnodeState(key);\r\n } else {\r\n if (\r\n props.requiredActive &&\r\n activeSet.value.size === 1 &&\r\n key === inactiveKey\r\n ) {\r\n issueVnodeState(key);\r\n return;\r\n }\r\n }\r\n if (inactiveKey && inactiveKey in nodes.value) {\r\n activeSet.value.delete(inactiveKey);\r\n nodes.value[inactiveKey].active = false;\r\n issueVnodeState(inactiveKey);\r\n }\r\n\r\n if (\r\n props.activeSingleModifier &&\r\n event?.getModifierState(props.activeSingleModifier)\r\n ) {\r\n return;\r\n }\r\n\r\n if (props.multipleActive && props.activeStrategy === 'cascade') {\r\n for (const descendant of getDescendants(key)) {\r\n if (descendant in nodes.value) {\r\n to\r\n ? activeSet.value.add(descendant)\r\n : activeSet.value.delete(descendant);\r\n nodes.value[descendant].active = to;\r\n issueVnodeState(descendant);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function updateSelected(key: CandidateKey, to: boolean) {\r\n if (!(key in nodes.value)) return;\r\n const node = nodes.value[key];\r\n\r\n if (to) {\r\n selectedSet.value.add(key);\r\n node.selected = true;\r\n }\r\n\r\n if (!to && key in nodes.value) {\r\n selectedSet.value.delete(key);\r\n nodes.value[key].selected = false;\r\n issueVnodeState(key);\r\n }\r\n\r\n if (props.selectStrategy === 'cascade') {\r\n for (const descendant of getDescendants(key)) {\r\n if (descendant in nodes.value) {\r\n to\r\n ? selectedSet.value.add(descendant)\r\n : selectedSet.value.delete(descendant);\r\n nodes.value[descendant].selected = to;\r\n issueVnodeState(descendant);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function emitExpanded() {\r\n const arr = [...expandedSet.value];\r\n expanded.value = props.returnItem\r\n ? arr.map((key) => nodes.value[key].item)\r\n : arr;\r\n }\r\n\r\n function emitActive() {\r\n const arr = [...activeSet.value];\r\n active.value = props.returnItem\r\n ? arr.map((key) => nodes.value[key].item)\r\n : arr;\r\n }\r\n\r\n function emitSelected() {\r\n const arr = [...selectedSet.value];\r\n selected.value = props.returnItem\r\n ? arr.map((key) => nodes.value[key].item)\r\n : arr;\r\n }\r\n\r\n function stateWatcher(\r\n value: any[],\r\n stateSet: Ref<Set<CandidateKey>>,\r\n updater: (key: CandidateKey, to: boolean) => void,\r\n emitter: () => void,\r\n ) {\r\n const valuesOfKey = props.returnItem\r\n ? value.map((v) => getObjectValueByPath(v, props.itemKey))\r\n : value;\r\n const old = [...stateSet.value];\r\n if (deepEqual(old, valuesOfKey)) {\r\n return;\r\n }\r\n old.forEach((key) => updater(key, false));\r\n valuesOfKey.forEach((key) => updater(key, true));\r\n emitter();\r\n }\r\n\r\n watch(expanded, (neo) => {\r\n stateWatcher(neo, expandedSet, updateExpanded, emitExpanded);\r\n });\r\n\r\n watch(active, (neo) => {\r\n stateWatcher(neo, activeSet, updateActive, emitActive);\r\n });\r\n\r\n watch(selected, (neo) => {\r\n stateWatcher(neo, selectedSet, updateSelected, emitSelected);\r\n });\r\n\r\n watch(\r\n () => props.items,\r\n (neo: any[]) => {\r\n const oldKeys = Object.keys(nodes.value).map((nodeKey) =>\r\n getObjectValueByPath(nodes.value[nodeKey].item, props.itemKey),\r\n );\r\n const neoKeys = getKeys(\r\n neo,\r\n props.itemKey,\r\n props.itemChildren as string,\r\n );\r\n const diff = differenceBetween(oldKeys, neoKeys);\r\n if (diff.length < 1 && neoKeys.length < oldKeys.length) {\r\n return;\r\n }\r\n diff.forEach((k) => delete nodes.value[k]);\r\n\r\n // init\r\n const oldSelected = [...selectedSet.value];\r\n const oldActive = [...activeSet.value];\r\n selectedSet.value.clear();\r\n expandedSet.value.clear();\r\n activeSet.value.clear();\r\n updateNodes(neo);\r\n if (!deepEqual(oldSelected, [...selectedSet.value])) {\r\n emitSelected();\r\n }\r\n if (!deepEqual(oldActive, [...activeSet.value])) {\r\n emitActive();\r\n }\r\n },\r\n { deep: true, flush: 'sync' },\r\n );\r\n\r\n // Search\r\n function isExcluded(key: CandidateKey) {\r\n return !!props.search && excludedSet.value.has(key);\r\n }\r\n\r\n // Provide & Issue\r\n function issueVnodeState(key: CandidateKey) {\r\n const node = nodes.value[key];\r\n if (node && node.vnode) {\r\n node.vnode.active = node.active;\r\n node.vnode.selected = node.selected;\r\n node.vnode.indeterminate = node.indeterminate;\r\n node.vnode.expanded = node.expanded;\r\n }\r\n }\r\n\r\n function register(key: CandidateKey, vnode: VNode) {\r\n if (nodes.value[key]) {\r\n nodes.value[key].vnode = vnode;\r\n }\r\n\r\n issueVnodeState(key);\r\n }\r\n\r\n updateNodes(props.items);\r\n\r\n provide('tree-view', {\r\n register,\r\n updateExpanded,\r\n updateActive,\r\n updateSelected,\r\n emitExpanded,\r\n emitActive,\r\n emitSelected,\r\n isExcluded,\r\n searchLoading,\r\n });\r\n\r\n const renderLeaves = computed(() => {\r\n return props.items.slice().filter((leaf) => {\r\n return !isExcluded(getObjectValueByPath(leaf, props.itemKey));\r\n });\r\n });\r\n\r\n const classes = computed(() => {\r\n return {\r\n 'y-tree-view': true,\r\n };\r\n });\r\n\r\n const styles = computed(() => {\r\n let color = props.activeColor;\r\n if (props.activeColor && !isColorValue(props.activeColor)) {\r\n color = `var(--y-theme-${props.activeColor})`;\r\n }\r\n return {\r\n [`--y-tree-view__active-color`]: color,\r\n };\r\n });\r\n\r\n onMounted(() => {\r\n if (props.defaultExpand != null && props.defaultExpand !== false) {\r\n expandedCache.value = [...expand(props.defaultExpand)];\r\n } else {\r\n expanded.value.forEach((v: any) => updateExpanded(getNodeKey(v), true));\r\n emitExpanded();\r\n }\r\n\r\n for (const activeValue of props.active.map(getNodeKey)) {\r\n updateActive(activeValue, true);\r\n }\r\n\r\n for (const selectedValue of props.selected.map(getNodeKey)) {\r\n updateSelected(selectedValue, true);\r\n }\r\n });\r\n\r\n expose({\r\n expand,\r\n });\r\n\r\n useRender(() => {\r\n return (\r\n <>\r\n <div class={classes.value} style={styles.value} role=\"tree\">\r\n {searchLoading.value && <YProgressBar indeterminate />}\r\n {renderLeaves.value.length > 0 ? (\r\n renderLeaves.value.slice().map((leaf) => {\r\n return (\r\n <YTreeViewNode\r\n v-slots={slots}\r\n key={getObjectValueByPath(leaf, props.itemKey)}\r\n {...{\r\n ...chooseProps(props, treeViewNodeProps),\r\n item: leaf,\r\n level: 0,\r\n }}\r\n ></YTreeViewNode>\r\n );\r\n })\r\n ) : (\r\n <div class=\"y-tree-view__no-data\">\r\n {slots['no-data'] ? slots['no-data']() : <span>No Data</span>}\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n nodes,\r\n expandedSet,\r\n selectedSet,\r\n activeSet,\r\n excludedSet,\r\n searchLoading,\r\n expandedCache,\r\n };\r\n },\r\n});\r\n\r\nexport type YTreeView = InstanceType<typeof YTreeView>;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"YTreeView.mjs","names":["computed","defineComponent","onMounted","provide","ref","shallowRef","watch","watchEffect","useModelDuplex","useRender","differenceBetween","isColorValue","deepEqual","getObjectValueByPath","hasOwnProperty","chooseProps","debounce","YProgressBar","YTreeViewNode","pressYTreeViewNodeProps","filterTreeItem","filterTreeItems","getKeys","treeViewNodeProps","YTreeView","name","props","expanded","type","Array","default","active","multipleActive","Boolean","activeStrategy","String","selected","selectStrategy","returnItem","defaultExpand","Number","filter","Function","searchDebounceWait","emits","setup","_ref","slots","emit","expose","nodes","expandedSet","Set","selectedSet","activeSet","excludedSet","filterItemsFn","excludeItem","expandedCache","searchLoading","items","search","arguments","length","undefined","excluded","value","diff","forEach","key","updateExpanded","item","itemKey","itemText","itemChildren","expand","getDescendants","descendants","childKeys","push","remains","slice","childKey","splice","getNodeKey","itemOrKey","updateNodes","parentKey","level","children","exist","existNode","vnode","indeterminate","node","map","child","add","issueVnodeState","to","isArray","delete","neo","deep","until","Object","entries","_ref2","emitExpanded","updateActive","event","inactiveKey","requiredActive","size","activeSingleModifier","getModifierState","descendant","updateSelected","arr","emitActive","emitSelected","stateWatcher","stateSet","updater","emitter","valuesOfKey","v","old","oldKeys","keys","nodeKey","neoKeys","k","oldSelected","oldActive","clear","flush","isExcluded","has","register","renderLeaves","leaf","classes","styles","color","activeColor","activeValue","selectedValue","_createVNode","_Fragment","_mergeProps","_createTextVNode"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import {\n type PropType,\n type Ref,\n type VNode,\n computed,\n defineComponent,\n onMounted,\n provide,\n ref,\n shallowRef,\n watch,\n watchEffect,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { CandidateKey } from '@/types';\nimport { differenceBetween } from '@/util/array';\nimport { isColorValue } from '@/util/color';\nimport { deepEqual, getObjectValueByPath, hasOwnProperty } from '@/util/common';\nimport { chooseProps } from '@/util/component';\nimport { debounce } from '@/util/debounce';\n\nimport { YProgressBar } from '../progress-bar';\nimport { YTreeViewNode, pressYTreeViewNodeProps } from './YTreeViewNode';\nimport { NodeState, TreeviewFilterFn } from './types';\nimport { filterTreeItem, filterTreeItems, getKeys } from './util';\n\nimport './YTreeView.scss';\n\nconst treeViewNodeProps = pressYTreeViewNodeProps();\n\nexport const YTreeView = defineComponent({\n name: 'YTreeView',\n props: {\n expanded: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n active: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n multipleActive: Boolean,\n activeStrategy: {\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\n default: 'independent',\n },\n selected: {\n type: [Array] as PropType<CandidateKey[]>,\n default: () => [],\n },\n selectStrategy: {\n type: String as PropType<'independent' | 'cascade'>, // TODO: 'leaf'\n default: 'leaf',\n },\n returnItem: Boolean,\n defaultExpand: [Boolean, String, Number],\n filter: Function as PropType<TreeviewFilterFn>,\n searchDebounceWait: {\n type: Number as PropType<number>,\n default: 700,\n },\n ...treeViewNodeProps,\n },\n emits: ['update:expanded', 'update:active', 'update:selected'],\n setup(props, { slots, emit, expose }) {\n const nodes = ref<Record<CandidateKey, any>>({});\n\n const expanded = useModelDuplex(props, 'expanded');\n const active = useModelDuplex(props, 'active');\n const selected = useModelDuplex(props, 'selected');\n\n const expandedSet = ref(new Set<CandidateKey>());\n const selectedSet = ref(new Set<CandidateKey>());\n const activeSet = ref(new Set<CandidateKey>());\n const excludedSet = ref(new Set<CandidateKey>());\n const filterItemsFn = shallowRef(\n debounce(excludeItem, props.searchDebounceWait),\n );\n const expandedCache = ref<CandidateKey[]>([]);\n const searchLoading = shallowRef(false);\n\n function excludeItem(items: any[], search = '', filter = filterTreeItem) {\n const excluded = new Set<CandidateKey>();\n if (!search) {\n searchLoading.value = false;\n excludedSet.value = excluded;\n const diff = differenceBetween(expandedCache.value, [\n ...expandedSet.value,\n ]);\n diff.forEach((key) => {\n updateExpanded(key, false);\n });\n expandedCache.value.forEach((key) => {\n updateExpanded(key, true);\n });\n return;\n }\n for (const item of items) {\n filterTreeItems(\n filter,\n item,\n search ?? '',\n props.itemKey,\n props.itemText,\n props.itemChildren as string,\n excluded,\n );\n }\n excludedSet.value = excluded;\n searchLoading.value = false;\n expand();\n }\n\n watchEffect(() => {\n searchLoading.value = true;\n filterItemsFn.value(props.items, props.search, props.filter);\n });\n\n // Util Methods\n function getDescendants(key: CandidateKey) {\n const descendants: CandidateKey[] = [];\n const { childKeys } = nodes.value[key];\n descendants.push(...childKeys);\n const remains: CandidateKey[] = childKeys.slice();\n\n while (remains.length > 0) {\n const childKey: CandidateKey = remains.splice(0, 1)[0];\n const item = nodes.value[childKey];\n if (item) {\n descendants.push(...item.childKeys);\n remains.push(...item.childKeys);\n }\n }\n\n return descendants;\n }\n\n function getNodeKey(itemOrKey: any) {\n return props.returnItem\n ? getObjectValueByPath(itemOrKey, props.itemKey)\n : itemOrKey;\n }\n\n // State Methods\n function updateNodes(\n items: any[],\n parentKey: CandidateKey | null = null,\n level = 0,\n ) {\n for (const item of items) {\n const key = getObjectValueByPath(item, props.itemKey);\n const children =\n getObjectValueByPath(item, props.itemChildren as string) ?? [];\n const exist = hasOwnProperty(nodes.value, key);\n const existNode = exist\n ? nodes.value[key]\n : {\n vnode: null,\n selected: false,\n indeterminate: false,\n active: false,\n expanded: false,\n };\n const node: NodeState = {\n vnode: existNode.vnode,\n item,\n level,\n parentKey,\n childKeys: children.map((child: any) =>\n getObjectValueByPath(child, props.itemKey),\n ),\n expanded: children.length > 0 && existNode.expanded,\n active: existNode.active,\n indeterminate: existNode.indeterminate,\n selected: existNode.selected,\n };\n\n updateNodes(children, key, level + 1);\n\n nodes.value[key] = node;\n if (nodes.value[key].expanded) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].selected) {\n expandedSet.value.add(key);\n }\n if (nodes.value[key].active) {\n activeSet.value.add(key);\n }\n\n issueVnodeState(key);\n }\n }\n\n function updateExpanded(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n const children = getObjectValueByPath(\n node.item,\n props.itemChildren as string,\n );\n if (Array.isArray(children) && children.length > 0) {\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\n node.expanded = to;\n issueVnodeState(key);\n }\n }\n\n watch(\n expandedSet,\n (neo) => {\n if (!props.search) {\n expandedCache.value = [...neo];\n }\n },\n { deep: true },\n );\n\n function expand(until: boolean | string | number = true) {\n Object.entries(nodes.value).forEach(([key, node]) => {\n if (until === true || until >= node.level) {\n updateExpanded(key, true);\n }\n });\n emitExpanded();\n return expandedSet.value;\n }\n\n function updateActive(key: CandidateKey, to: boolean, event?: MouseEvent) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n let inactiveKey = !to ? key : '';\n if (!props.multipleActive) {\n [inactiveKey] = [...activeSet.value];\n }\n if (to) {\n activeSet.value.add(key);\n node.active = true;\n issueVnodeState(key);\n } else {\n if (\n props.requiredActive &&\n activeSet.value.size === 1 &&\n key === inactiveKey\n ) {\n issueVnodeState(key);\n return;\n }\n }\n if (inactiveKey && inactiveKey in nodes.value) {\n activeSet.value.delete(inactiveKey);\n nodes.value[inactiveKey].active = false;\n issueVnodeState(inactiveKey);\n }\n\n if (\n props.activeSingleModifier &&\n event?.getModifierState(props.activeSingleModifier)\n ) {\n return;\n }\n\n if (props.multipleActive && props.activeStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? activeSet.value.add(descendant)\n : activeSet.value.delete(descendant);\n nodes.value[descendant].active = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function updateSelected(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n\n if (to) {\n selectedSet.value.add(key);\n node.selected = true;\n }\n\n if (!to && key in nodes.value) {\n selectedSet.value.delete(key);\n nodes.value[key].selected = false;\n issueVnodeState(key);\n }\n\n if (props.selectStrategy === 'cascade') {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n to\n ? selectedSet.value.add(descendant)\n : selectedSet.value.delete(descendant);\n nodes.value[descendant].selected = to;\n issueVnodeState(descendant);\n }\n }\n }\n }\n\n function emitExpanded() {\n const arr = [...expandedSet.value];\n expanded.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitActive() {\n const arr = [...activeSet.value];\n active.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitSelected() {\n const arr = [...selectedSet.value];\n selected.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function stateWatcher(\n value: any[],\n stateSet: Ref<Set<CandidateKey>>,\n updater: (key: CandidateKey, to: boolean) => void,\n emitter: () => void,\n ) {\n const valuesOfKey = props.returnItem\n ? value.map((v) => getObjectValueByPath(v, props.itemKey))\n : value;\n const old = [...stateSet.value];\n if (deepEqual(old, valuesOfKey)) {\n return;\n }\n old.forEach((key) => updater(key, false));\n valuesOfKey.forEach((key) => updater(key, true));\n emitter();\n }\n\n watch(expanded, (neo) => {\n stateWatcher(neo, expandedSet, updateExpanded, emitExpanded);\n });\n\n watch(active, (neo) => {\n stateWatcher(neo, activeSet, updateActive, emitActive);\n });\n\n watch(selected, (neo) => {\n stateWatcher(neo, selectedSet, updateSelected, emitSelected);\n });\n\n watch(\n () => props.items,\n (neo: any[]) => {\n const oldKeys = Object.keys(nodes.value).map((nodeKey) =>\n getObjectValueByPath(nodes.value[nodeKey].item, props.itemKey),\n );\n const neoKeys = getKeys(\n neo,\n props.itemKey,\n props.itemChildren as string,\n );\n const diff = differenceBetween(oldKeys, neoKeys);\n if (diff.length < 1 && neoKeys.length < oldKeys.length) {\n return;\n }\n diff.forEach((k) => delete nodes.value[k]);\n\n // init\n const oldSelected = [...selectedSet.value];\n const oldActive = [...activeSet.value];\n selectedSet.value.clear();\n expandedSet.value.clear();\n activeSet.value.clear();\n updateNodes(neo);\n if (!deepEqual(oldSelected, [...selectedSet.value])) {\n emitSelected();\n }\n if (!deepEqual(oldActive, [...activeSet.value])) {\n emitActive();\n }\n },\n { deep: true, flush: 'sync' },\n );\n\n // Search\n function isExcluded(key: CandidateKey) {\n return !!props.search && excludedSet.value.has(key);\n }\n\n // Provide & Issue\n function issueVnodeState(key: CandidateKey) {\n const node = nodes.value[key];\n if (node && node.vnode) {\n node.vnode.active = node.active;\n node.vnode.selected = node.selected;\n node.vnode.indeterminate = node.indeterminate;\n node.vnode.expanded = node.expanded;\n }\n }\n\n function register(key: CandidateKey, vnode: VNode) {\n if (nodes.value[key]) {\n nodes.value[key].vnode = vnode;\n }\n\n issueVnodeState(key);\n }\n\n updateNodes(props.items);\n\n provide('tree-view', {\n register,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n isExcluded,\n searchLoading,\n });\n\n const renderLeaves = computed(() => {\n return props.items.slice().filter((leaf) => {\n return !isExcluded(getObjectValueByPath(leaf, props.itemKey));\n });\n });\n\n const classes = computed(() => {\n return {\n 'y-tree-view': true,\n };\n });\n\n const styles = computed(() => {\n let color = props.activeColor;\n if (props.activeColor && !isColorValue(props.activeColor)) {\n color = `var(--y-theme-${props.activeColor})`;\n }\n return {\n [`--y-tree-view__active-color`]: color,\n };\n });\n\n onMounted(() => {\n if (props.defaultExpand != null && props.defaultExpand !== false) {\n expandedCache.value = [...expand(props.defaultExpand)];\n } else {\n expanded.value.forEach((v: any) => updateExpanded(getNodeKey(v), true));\n emitExpanded();\n }\n\n for (const activeValue of props.active.map(getNodeKey)) {\n updateActive(activeValue, true);\n }\n\n for (const selectedValue of props.selected.map(getNodeKey)) {\n updateSelected(selectedValue, true);\n }\n });\n\n expose({\n expand,\n });\n\n useRender(() => {\n return (\n <>\n <div class={classes.value} style={styles.value} role=\"tree\">\n {searchLoading.value && <YProgressBar indeterminate />}\n {renderLeaves.value.length > 0 ? (\n renderLeaves.value.slice().map((leaf) => {\n return (\n <YTreeViewNode\n v-slots={slots}\n key={getObjectValueByPath(leaf, props.itemKey)}\n {...{\n ...chooseProps(props, treeViewNodeProps),\n item: leaf,\n level: 0,\n }}\n ></YTreeViewNode>\n );\n })\n ) : (\n <div class=\"y-tree-view__no-data\">\n {slots['no-data'] ? slots['no-data']() : <span>No Data</span>}\n </div>\n )}\n </div>\n </>\n );\n });\n\n return {\n nodes,\n expandedSet,\n selectedSet,\n activeSet,\n excludedSet,\n searchLoading,\n expandedCache,\n };\n },\n});\n\nexport type YTreeView = InstanceType<typeof YTreeView>;\n"],"mappings":"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"}
@@ -1,79 +1,81 @@
1
- .y-tree-view {
2
- }
3
-
4
- .y-tree-view-node {
5
- &__container {
6
- position: relative;
7
- display: flex;
8
- align-items: center;
9
- padding: 0 8px;
10
- min-height: 2rem;
11
- border-radius: 8px;
12
- transition: all 180ms ease-in, border-radius 300ms 100ms ease-in-out;
13
-
14
- &:hover {
15
- background: rgba(124, 124, 124, 0.14);
16
- border-radius: 4px;
17
- }
18
- }
19
-
20
- &__expand-icon,
21
- &__no-expand-icon {
22
- display: inline-flex;
23
- align-items: center;
24
- width: 20px;
25
- height: 20px;
26
- margin-right: 8px;
27
- }
28
-
29
- &__expand-icon svg {
30
- width: 10px;
31
- height: 10px;
32
- }
33
-
34
- &--expanded > &__container > &__expand-icon svg {
35
- transform: rotate(90deg);
36
- }
37
-
38
- &__indents {
39
- display: flex;
40
- }
41
-
42
- &__indent-spacer {
43
- width: 1rem;
44
- }
45
-
46
- &__select {
47
- display: inline-flex;
48
- align-items: center;
49
- margin-right: 4px;
50
- cursor: pointer;
51
-
52
- > * {
53
- width: 20px;
54
- height: 20px;
55
- }
56
- }
57
-
58
- &__content {
59
- font-size: 0.875rem;
60
- display: flex;
61
- align-items: center;
62
- }
63
-
64
- &__leading {
65
- margin-right: 8px;
66
- display: inline-flex;
67
- align-items: center;
68
- }
69
-
70
- &--active > &__container {
71
- color: var(--y-tree-view__active-color);
72
-
73
- > .y-plate {
74
- background: currentColor;
75
- opacity: 0.08;
76
- border-radius: unset;
77
- }
78
- }
79
- }
1
+ .y-tree-view {
2
+ }
3
+
4
+ .y-tree-view-node {
5
+ &__container {
6
+ position: relative;
7
+ display: flex;
8
+ align-items: center;
9
+ padding: 0 8px;
10
+ min-height: 2rem;
11
+ border-radius: 8px;
12
+ transition:
13
+ all 180ms ease-in,
14
+ border-radius 300ms 100ms ease-in-out;
15
+
16
+ &:hover {
17
+ background: rgba(124, 124, 124, 0.14);
18
+ border-radius: 4px;
19
+ }
20
+ }
21
+
22
+ &__expand-icon,
23
+ &__no-expand-icon {
24
+ display: inline-flex;
25
+ align-items: center;
26
+ width: 20px;
27
+ height: 20px;
28
+ margin-right: 8px;
29
+ }
30
+
31
+ &__expand-icon svg {
32
+ width: 10px;
33
+ height: 10px;
34
+ }
35
+
36
+ &--expanded > &__container > &__expand-icon svg {
37
+ transform: rotate(90deg);
38
+ }
39
+
40
+ &__indents {
41
+ display: flex;
42
+ }
43
+
44
+ &__indent-spacer {
45
+ width: 1rem;
46
+ }
47
+
48
+ &__select {
49
+ display: inline-flex;
50
+ align-items: center;
51
+ margin-right: 4px;
52
+ cursor: pointer;
53
+
54
+ > * {
55
+ width: 20px;
56
+ height: 20px;
57
+ }
58
+ }
59
+
60
+ &__content {
61
+ font-size: 0.875rem;
62
+ display: flex;
63
+ align-items: center;
64
+ }
65
+
66
+ &__leading {
67
+ margin-right: 8px;
68
+ display: inline-flex;
69
+ align-items: center;
70
+ }
71
+
72
+ &--active > &__container {
73
+ color: var(--y-tree-view__active-color);
74
+
75
+ > .y-plate {
76
+ background: currentColor;
77
+ opacity: 0.08;
78
+ border-radius: unset;
79
+ }
80
+ }
81
+ }
@@ -1,8 +1,9 @@
1
1
  import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
2
- import { computed, defineComponent, getCurrentInstance, inject, mergeProps, onBeforeMount, ref, resolveComponent } from 'vue';
2
+ import { computed, getCurrentInstance, inject, mergeProps, onBeforeMount, ref, resolveComponent } from 'vue';
3
3
  import { pressItemsPropsOptions } from "../../abstract/items.mjs";
4
4
  import { useRender } from "../../composables/component.mjs";
5
5
  import { getObjectValueByPath } from "../../util/common.mjs";
6
+ import { defineComponent } from "../../util/component/index.mjs";
6
7
  import { propsFactory } from "../../util/component/index.mjs";
7
8
  import { YButton } from "../button/index.mjs";
8
9
  import { YIconCheckbox, YIconExpand } from "../icons/index.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"YTreeViewNode.mjs","names":["computed","defineComponent","getCurrentInstance","inject","mergeProps","onBeforeMount","ref","resolveComponent","pressItemsPropsOptions","useRender","getObjectValueByPath","propsFactory","YButton","YIconCheckbox","YIconExpand","YPlate","YTextHighlighter","YExpandVTransition","pressYTreeViewNodeProps","search","String","disableTransition","Boolean","enableActive","activeClass","Array","activeSingleModifier","requiredActive","activeColor","type","default","enableSelect","onMouseenterContainer","Function","onMouseleaveContainer","onMousemoveContainer","itemKey","YTreeViewNode","name","components","props","item","Object","level","Number","slots","setup","_ref","expose","YTreeNode","vm","treeView","container$","expanded","active","selected","immediate","children","itemChildren","slice","imLeaf","value","length","classes","styles","contentText","itemText","slotProps","searchLoading","leaves","filter","leaf","isExcluded","onClick","e","to","updateActive","myKey","emitActive","onClickExpand","stopPropagation","updateExpanded","emitExpanded","onClickSelect","updateSelected","emitSelected","indentSpacer","i","push","_createVNode","leading","text","trailing","map","_mergeProps","_len","arguments","args","_key","_len2","_key2","_len3","_key3","_len4","_key4","register","exposed"],"sources":["../../../src/components/tree-view/YTreeViewNode.tsx"],"sourcesContent":["import {\r\n PropType,\r\n SlotsType,\r\n VNodeArrayChildren,\r\n computed,\r\n defineComponent,\r\n getCurrentInstance,\r\n h,\r\n inject,\r\n mergeProps,\r\n onBeforeMount,\r\n ref, resolveComponent,\r\n} from 'vue';\r\n\r\nimport { pressItemsPropsOptions } from '../../abstract/items';\r\nimport { useRender } from '../../composables/component';\r\nimport { getObjectValueByPath } from '../../util/common';\r\nimport { propsFactory } from '../../util/component';\r\nimport { YButton } from '../button';\r\nimport { YIconCheckbox, YIconExpand } from '../icons';\r\nimport { YPlate } from '../plate';\r\nimport { YTextHighlighter } from '../text-highlighter/YTextHighlighter';\r\nimport { YExpandVTransition } from '../transitions';\r\n\r\nexport const pressYTreeViewNodeProps = propsFactory(\r\n {\r\n search: String,\r\n disableTransition: Boolean,\r\n enableActive: Boolean,\r\n activeClass: [String, Array],\r\n activeSingleModifier: String,\r\n requiredActive: Boolean,\r\n activeColor: {\r\n type: String,\r\n default: 'primary',\r\n },\r\n enableSelect: Boolean,\r\n onMouseenterContainer: Function,\r\n onMouseleaveContainer: Function,\r\n onMousemoveContainer: Function,\r\n ...pressItemsPropsOptions({\r\n itemKey: 'id',\r\n }),\r\n },\r\n 'YTreeViewNode',\r\n);\r\n\r\nexport const YTreeViewNode = defineComponent({\r\n name: 'YTreeNode',\r\n components: {\r\n YButton,\r\n YIconExpand,\r\n YPlate,\r\n YIconCheckbox,\r\n },\r\n props: {\r\n item: {\r\n type: Object as PropType<any>,\r\n },\r\n level: {\r\n type: Number as PropType<number>,\r\n default: 0,\r\n },\r\n ...pressYTreeViewNodeProps(),\r\n },\r\n slots: Object as SlotsType<{\r\n default: any;\r\n 'expand-icon': any;\r\n leading: any;\r\n trailing: any;\r\n }>,\r\n setup(props, { slots, expose }) {\r\n const YTreeNode = resolveComponent('YTreeViewNode', true) as any;\r\n const vm = getCurrentInstance();\r\n const treeView = inject<any>('tree-view');\r\n const container$ = ref<HTMLElement>();\r\n\r\n const expanded = ref(false);\r\n const active = ref(false);\r\n const selected = ref(false);\r\n const immediate = ref(false);\r\n\r\n const children = computed(() => {\r\n return (getObjectValueByPath(props.item, props.itemChildren as string) ?? []).slice();\r\n });\r\n\r\n const imLeaf = computed(() => children.value.length < 1);\r\n\r\n const classes = computed(() => {\r\n return {\r\n 'y-tree-view-node': true,\r\n 'y-tree-view-node--leaf': imLeaf.value,\r\n 'y-tree-view-node--expanded': expanded.value,\r\n 'y-tree-view-node--active': active.value,\r\n };\r\n });\r\n\r\n const styles = computed(() => {\r\n return {\r\n '--tree-view-node--level': props.level,\r\n };\r\n });\r\n\r\n const contentText = computed(() => {\r\n return getObjectValueByPath(props.item, props.itemText) ?? '';\r\n });\r\n\r\n const slotProps = computed(() => {\r\n return {\r\n level: props.level,\r\n imLeaf: imLeaf.value,\r\n };\r\n });\r\n\r\n const searchLoading = computed(() => {\r\n return treeView.searchLoading.value;\r\n });\r\n\r\n const leaves = computed(() => {\r\n return children.value.filter((leaf: any) => {\r\n return !treeView.isExcluded(getObjectValueByPath(leaf, props.itemKey));\r\n });\r\n });\r\n\r\n function onClick(e: MouseEvent) {\r\n const to = !active.value;\r\n active.value = to;\r\n treeView.updateActive(myKey.value, to, e);\r\n treeView.emitActive();\r\n }\r\n\r\n function onClickExpand(e: MouseEvent) {\r\n e.stopPropagation();\r\n const to = !expanded.value;\r\n expanded.value = to;\r\n treeView.updateExpanded(myKey.value, to);\r\n treeView.emitExpanded();\r\n }\r\n\r\n function onClickSelect(e: MouseEvent) {\r\n e.stopPropagation();\r\n const to = !selected.value;\r\n selected.value = to;\r\n treeView.updateSelected(myKey.value, to);\r\n treeView.emitSelected();\r\n }\r\n\r\n function onMouseenterContainer(e: MouseEvent) {\r\n props.onMouseenterContainer?.(e, { ...slotProps.value, item: props.item });\r\n }\r\n\r\n function onMouseleaveContainer(e: MouseEvent) {\r\n props.onMouseleaveContainer?.(e, { ...slotProps.value, item: props.item });\r\n }\r\n\r\n function onMousemoveContainer(e: MouseEvent) {\r\n props.onMousemoveContainer?.(e, { ...slotProps.value, item: props.item });\r\n }\r\n\r\n useRender(() => {\r\n const indentSpacer: VNodeArrayChildren = [];\r\n for (let i = 0; i < props.level; i += 1) {\r\n indentSpacer.push(\r\n <div class={'y-tree-view-node__indent-spacer'}></div>,\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n class={classes.value}\r\n style={styles.value}\r\n role=\"treeitem\"\r\n data-level={props.level}\r\n >\r\n <div\r\n ref={container$}\r\n class={'y-tree-view-node__container'}\r\n onClick={(e: MouseEvent) =>\r\n props.enableActive ? onClick(e) : void 0\r\n }\r\n onMouseenter={props.onMouseenterContainer && onMouseenterContainer}\r\n onMouseleave={props.onMouseleaveContainer && onMouseleaveContainer}\r\n onMousemove={props.onMousemoveContainer && onMousemoveContainer}\r\n >\r\n <YPlate />\r\n <div class={'y-tree-view-node__indents'}>{indentSpacer}</div>\r\n {/* EXPAND */}\r\n {!imLeaf.value && leaves.value.length > 0 ? (\r\n <YButton\r\n class={'y-tree-view-node__expand-icon'}\r\n variation={'icon'}\r\n onClick={onClickExpand}\r\n >\r\n {slots['expand-icon'] ? (\r\n slots['expand-icon']()\r\n ) : (\r\n <YIconExpand></YIconExpand>\r\n )}\r\n </YButton>\r\n ) : (\r\n <i class={'y-tree-view-node__no-expand-icon'}></i>\r\n )}\r\n {/* SELECT */}\r\n {props.enableSelect && (\r\n <div class={'y-tree-view-node__select'} onClick={onClickSelect}>\r\n <YIconCheckbox checked={selected.value}></YIconCheckbox>\r\n </div>\r\n )}\r\n {/* CONTENT */}\r\n <div class={'y-tree-view-node__content'}>\r\n {slots.leading && (\r\n <div class={'y-tree-view-node__leading'}>\r\n {slots.leading(slotProps.value)}\r\n </div>\r\n )}\r\n <div class={'y-tree-view-node__text'}>\r\n {slots.default ? (\r\n slots.default?.({\r\n text: contentText.value,\r\n item: props.item,\r\n ...slotProps.value,\r\n })\r\n ) : props.search && !searchLoading.value ? (\r\n <YTextHighlighter\r\n text={contentText.value}\r\n keyword={props.search}\r\n ></YTextHighlighter>\r\n ) : (\r\n contentText.value\r\n )}\r\n </div>\r\n {slots.trailing && (\r\n <div class={'y-tree-view-node__trailing'}>\r\n {slots.trailing(slotProps.value)}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {/* CHILDREN */}\r\n {children.value.length > 0 && (\r\n <YExpandVTransition disabled={props.disableTransition}>\r\n {expanded.value && (\r\n <div class={['y-tree-view-node__leaves']} role=\"tree\">\r\n {leaves.value.map((item: any) => {\r\n return (\r\n <YTreeNode\r\n {...mergeProps(props)}\r\n key={getObjectValueByPath(item, props.itemKey)}\r\n level={(props.level ?? 0) + 1}\r\n item={item}\r\n >\r\n {{\r\n default:\r\n slots.default &&\r\n ((...args: any[]) => slots.default?.(...args)),\r\n 'expand-icon':\r\n slots['expand-icon'] &&\r\n ((...args: any[]) =>\r\n slots['expand-icon']?.(...args)),\r\n leading:\r\n slots.leading &&\r\n ((...args: any[]) => slots.leading?.(...args)),\r\n trailing:\r\n slots.trailing &&\r\n ((...args: any[]) => slots.trailing?.(...args)),\r\n }}\r\n </YTreeNode>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </YExpandVTransition>\r\n )}\r\n </div>\r\n );\r\n });\r\n\r\n const myKey = computed(() => {\r\n return getObjectValueByPath(props.item, props.itemKey);\r\n });\r\n\r\n expose({\r\n myKey,\r\n expanded,\r\n active,\r\n selected,\r\n immediate,\r\n });\r\n\r\n onBeforeMount(() => {\r\n treeView?.register?.(myKey.value, vm!.exposed);\r\n });\r\n\r\n return {\r\n treeView,\r\n myKey,\r\n expanded,\r\n active,\r\n selected,\r\n immediate,\r\n };\r\n },\r\n});\r\n\r\nexport type YTreeNode = InstanceType<typeof YTreeViewNode>;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"YTreeViewNode.mjs","names":["computed","getCurrentInstance","inject","mergeProps","onBeforeMount","ref","resolveComponent","pressItemsPropsOptions","useRender","getObjectValueByPath","defineComponent","propsFactory","YButton","YIconCheckbox","YIconExpand","YPlate","YTextHighlighter","YExpandVTransition","pressYTreeViewNodeProps","search","String","disableTransition","Boolean","enableActive","activeClass","Array","activeSingleModifier","requiredActive","activeColor","type","default","enableSelect","onMouseenterContainer","Function","onMouseleaveContainer","onMousemoveContainer","itemKey","YTreeViewNode","name","components","props","item","Object","level","Number","slots","setup","_ref","expose","YTreeNode","vm","treeView","container$","expanded","active","selected","immediate","children","itemChildren","slice","imLeaf","value","length","classes","styles","contentText","itemText","slotProps","searchLoading","leaves","filter","leaf","isExcluded","onClick","e","to","updateActive","myKey","emitActive","onClickExpand","stopPropagation","updateExpanded","emitExpanded","onClickSelect","updateSelected","emitSelected","indentSpacer","i","push","_createVNode","leading","text","trailing","map","_mergeProps","_len","arguments","args","_key","_len2","_key2","_len3","_key3","_len4","_key4","register","exposed"],"sources":["../../../src/components/tree-view/YTreeViewNode.tsx"],"sourcesContent":["import {\n type PropType,\n type SlotsType,\n type VNodeArrayChildren,\n computed,\n getCurrentInstance,\n inject,\n mergeProps,\n onBeforeMount,\n ref,\n resolveComponent,\n} from 'vue';\n\nimport { pressItemsPropsOptions } from '@/abstract/items';\nimport { useRender } from '@/composables/component';\nimport { getObjectValueByPath } from '@/util/common';\nimport { defineComponent } from '@/util/component';\nimport { propsFactory } from '@/util/component';\n\nimport { YButton } from '../button';\nimport { YIconCheckbox, YIconExpand } from '../icons';\nimport { YPlate } from '../plate';\nimport { YTextHighlighter } from '../text-highlighter/YTextHighlighter';\nimport { YExpandVTransition } from '../transitions';\n\nexport const pressYTreeViewNodeProps = propsFactory(\n {\n search: String,\n disableTransition: Boolean,\n enableActive: Boolean,\n activeClass: [String, Array],\n activeSingleModifier: String,\n requiredActive: Boolean,\n activeColor: {\n type: String,\n default: 'primary',\n },\n enableSelect: Boolean,\n onMouseenterContainer: Function,\n onMouseleaveContainer: Function,\n onMousemoveContainer: Function,\n ...pressItemsPropsOptions({\n itemKey: 'id',\n }),\n },\n 'YTreeViewNode',\n);\n\nexport const YTreeViewNode = defineComponent({\n name: 'YTreeNode',\n components: {\n YButton,\n YIconExpand,\n YPlate,\n YIconCheckbox,\n },\n props: {\n item: {\n type: Object as PropType<any>,\n },\n level: {\n type: Number as PropType<number>,\n default: 0,\n },\n ...pressYTreeViewNodeProps(),\n },\n slots: Object as SlotsType<{\n default: any;\n 'expand-icon': any;\n leading: any;\n trailing: any;\n }>,\n setup(props, { slots, expose }) {\n const YTreeNode = resolveComponent('YTreeViewNode', true) as any;\n const vm = getCurrentInstance();\n const treeView = inject<any>('tree-view');\n const container$ = ref<HTMLElement>();\n\n const expanded = ref(false);\n const active = ref(false);\n const selected = ref(false);\n const immediate = ref(false);\n\n const children = computed(() => {\n return (\n getObjectValueByPath(props.item, props.itemChildren as string) ?? []\n ).slice();\n });\n\n const imLeaf = computed(() => children.value.length < 1);\n\n const classes = computed(() => {\n return {\n 'y-tree-view-node': true,\n 'y-tree-view-node--leaf': imLeaf.value,\n 'y-tree-view-node--expanded': expanded.value,\n 'y-tree-view-node--active': active.value,\n };\n });\n\n const styles = computed(() => {\n return {\n '--tree-view-node--level': props.level,\n };\n });\n\n const contentText = computed(() => {\n return getObjectValueByPath(props.item, props.itemText) ?? '';\n });\n\n const slotProps = computed(() => {\n return {\n level: props.level,\n imLeaf: imLeaf.value,\n };\n });\n\n const searchLoading = computed(() => {\n return treeView.searchLoading.value;\n });\n\n const leaves = computed(() => {\n return children.value.filter((leaf: any) => {\n return !treeView.isExcluded(getObjectValueByPath(leaf, props.itemKey));\n });\n });\n\n function onClick(e: MouseEvent) {\n const to = !active.value;\n active.value = to;\n treeView.updateActive(myKey.value, to, e);\n treeView.emitActive();\n }\n\n function onClickExpand(e: MouseEvent) {\n e.stopPropagation();\n const to = !expanded.value;\n expanded.value = to;\n treeView.updateExpanded(myKey.value, to);\n treeView.emitExpanded();\n }\n\n function onClickSelect(e: MouseEvent) {\n e.stopPropagation();\n const to = !selected.value;\n selected.value = to;\n treeView.updateSelected(myKey.value, to);\n treeView.emitSelected();\n }\n\n function onMouseenterContainer(e: MouseEvent) {\n props.onMouseenterContainer?.(e, {\n ...slotProps.value,\n item: props.item,\n });\n }\n\n function onMouseleaveContainer(e: MouseEvent) {\n props.onMouseleaveContainer?.(e, {\n ...slotProps.value,\n item: props.item,\n });\n }\n\n function onMousemoveContainer(e: MouseEvent) {\n props.onMousemoveContainer?.(e, { ...slotProps.value, item: props.item });\n }\n\n useRender(() => {\n const indentSpacer: VNodeArrayChildren = [];\n for (let i = 0; i < props.level; i += 1) {\n indentSpacer.push(\n <div class={'y-tree-view-node__indent-spacer'}></div>,\n );\n }\n\n return (\n <div\n class={classes.value}\n style={styles.value}\n role=\"treeitem\"\n data-level={props.level}\n >\n <div\n ref={container$}\n class={'y-tree-view-node__container'}\n onClick={(e: MouseEvent) =>\n props.enableActive ? onClick(e) : void 0\n }\n onMouseenter={props.onMouseenterContainer && onMouseenterContainer}\n onMouseleave={props.onMouseleaveContainer && onMouseleaveContainer}\n onMousemove={props.onMousemoveContainer && onMousemoveContainer}\n >\n <YPlate />\n <div class={'y-tree-view-node__indents'}>{indentSpacer}</div>\n {/* EXPAND */}\n {!imLeaf.value && leaves.value.length > 0 ? (\n <YButton\n class={'y-tree-view-node__expand-icon'}\n variation={'icon'}\n onClick={onClickExpand}\n >\n {slots['expand-icon'] ? (\n slots['expand-icon']()\n ) : (\n <YIconExpand></YIconExpand>\n )}\n </YButton>\n ) : (\n <i class={'y-tree-view-node__no-expand-icon'}></i>\n )}\n {/* SELECT */}\n {props.enableSelect && (\n <div class={'y-tree-view-node__select'} onClick={onClickSelect}>\n <YIconCheckbox checked={selected.value}></YIconCheckbox>\n </div>\n )}\n {/* CONTENT */}\n <div class={'y-tree-view-node__content'}>\n {slots.leading && (\n <div class={'y-tree-view-node__leading'}>\n {slots.leading(slotProps.value)}\n </div>\n )}\n <div class={'y-tree-view-node__text'}>\n {slots.default ? (\n slots.default?.({\n text: contentText.value,\n item: props.item,\n ...slotProps.value,\n })\n ) : props.search && !searchLoading.value ? (\n <YTextHighlighter\n text={contentText.value}\n keyword={props.search}\n ></YTextHighlighter>\n ) : (\n contentText.value\n )}\n </div>\n {slots.trailing && (\n <div class={'y-tree-view-node__trailing'}>\n {slots.trailing(slotProps.value)}\n </div>\n )}\n </div>\n </div>\n {/* CHILDREN */}\n {children.value.length > 0 && (\n <YExpandVTransition disabled={props.disableTransition}>\n {expanded.value && (\n <div class={['y-tree-view-node__leaves']} role=\"tree\">\n {leaves.value.map((item: any) => {\n return (\n <YTreeNode\n {...mergeProps(props)}\n key={getObjectValueByPath(item, props.itemKey)}\n level={(props.level ?? 0) + 1}\n item={item}\n >\n {{\n default:\n slots.default &&\n ((...args: any[]) => slots.default?.(...args)),\n 'expand-icon':\n slots['expand-icon'] &&\n ((...args: any[]) =>\n slots['expand-icon']?.(...args)),\n leading:\n slots.leading &&\n ((...args: any[]) => slots.leading?.(...args)),\n trailing:\n slots.trailing &&\n ((...args: any[]) => slots.trailing?.(...args)),\n }}\n </YTreeNode>\n );\n })}\n </div>\n )}\n </YExpandVTransition>\n )}\n </div>\n );\n });\n\n const myKey = computed(() => {\n return getObjectValueByPath(props.item, props.itemKey);\n });\n\n expose({\n myKey,\n expanded,\n active,\n selected,\n immediate,\n });\n\n onBeforeMount(() => {\n treeView?.register?.(myKey.value, vm!.exposed);\n });\n\n return {\n treeView,\n myKey,\n expanded,\n active,\n selected,\n immediate,\n };\n },\n});\n\nexport type YTreeNode = InstanceType<typeof YTreeViewNode>;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/components/tree-view/index.ts"],"sourcesContent":["export * from './YTreeViewNode';\r\nexport * from './YTreeView';\r\n"],"mappings":""}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/components/tree-view/index.ts"],"sourcesContent":["export * from './YTreeViewNode';\nexport * from './YTreeView';\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/components/tree-view/types.ts"],"sourcesContent":["import { ComponentPublicInstance } from 'vue';\nimport { CandidateKey } from \"../../types\";\n\nexport interface NodeState {\n childKeys: CandidateKey[];\n item: any;\n parentKey: null | CandidateKey;\n vnode: null | ComponentPublicInstance;\n level: number;\n //\n selected: false;\n indeterminate: false;\n active: false;\n expanded: false;\n}\n\nexport type TreeviewFilterFn = (item: any, search: string, itemText: string) => boolean;\n"],"mappings":""}
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/components/tree-view/types.ts"],"sourcesContent":["import { type ComponentPublicInstance } from 'vue';\n\nimport type { CandidateKey } from '@/types';\n\nexport interface NodeState {\n childKeys: CandidateKey[];\n item: any;\n parentKey: null | CandidateKey;\n vnode: null | ComponentPublicInstance;\n level: number;\n //\n selected: false;\n indeterminate: false;\n active: false;\n expanded: false;\n}\n\nexport type TreeviewFilterFn = (\n item: any,\n search: string,\n itemText: string,\n) => boolean;\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"util.mjs","names":["getObjectValueByPath","getKeys","items","itemKey","childrenKey","keys","remains","slice","length","item","splice","key","push","children","Array","isArray","filterTreeItem","search","textKey","text","toLocaleLowerCase","indexOf","filterTreeItems","filter","idKey","excluded","match","i","add"],"sources":["../../../src/components/tree-view/util.ts"],"sourcesContent":["import { getObjectValueByPath } from '../../util/common';\r\n\r\nimport { CandidateKey } from '../../types';\r\nimport { TreeviewFilterFn } from './types';\r\n\r\nexport function getKeys(items: any[], itemKey: string, childrenKey: string) {\r\n const keys: CandidateKey[] = [];\r\n const remains: any[] = items.slice();\r\n\r\n while(remains.length > 0) {\r\n const item = remains.splice(0, 1);\r\n const key = getObjectValueByPath(item, itemKey);\r\n keys.push(key);\r\n const children = getObjectValueByPath(item, childrenKey);\r\n if (Array.isArray(children)) {\r\n remains.push(...children);\r\n }\r\n }\r\n\r\n return keys;\r\n}\r\n\r\nexport function filterTreeItem(\r\n item: object,\r\n search: string,\r\n textKey: string,\r\n): boolean {\r\n const text = getObjectValueByPath(item, textKey);\r\n\r\n return text?.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;\r\n}\r\n\r\nexport function filterTreeItems(\r\n filter: TreeviewFilterFn,\r\n item: any,\r\n search: string,\r\n idKey: string,\r\n textKey: string,\r\n childrenKey: string,\r\n excluded: Set<CandidateKey>,\r\n): boolean {\r\n const children = getObjectValueByPath(item, childrenKey);\r\n\r\n if (children) {\r\n let match = false;\r\n for (let i = 0; i < children.length; i++) {\r\n if (\r\n filterTreeItems(\r\n filter,\r\n children[i],\r\n search,\r\n idKey,\r\n textKey,\r\n childrenKey,\r\n excluded,\r\n )\r\n ) {\r\n match = true;\r\n }\r\n }\r\n\r\n if (match) {\r\n return true;\r\n } else if (filter(item, search, textKey)) {\r\n return true;\r\n }\r\n } else if (filter(item, search, textKey)) {\r\n return true;\r\n }\r\n\r\n excluded.add(getObjectValueByPath(item, idKey));\r\n\r\n return false;\r\n}\r\n"],"mappings":"SAASA,oBAAoB;AAK7B,OAAO,SAASC,OAAOA,CAACC,KAAY,EAAEC,OAAe,EAAEC,WAAmB,EAAE;EAC1E,MAAMC,IAAoB,GAAG,EAAE;EAC/B,MAAMC,OAAc,GAAGJ,KAAK,CAACK,KAAK,CAAC,CAAC;EAEpC,OAAMD,OAAO,CAACE,MAAM,GAAG,CAAC,EAAE;IACxB,MAAMC,IAAI,GAAGH,OAAO,CAACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACjC,MAAMC,GAAG,GAAGX,oBAAoB,CAACS,IAAI,EAAEN,OAAO,CAAC;IAC/CE,IAAI,CAACO,IAAI,CAACD,GAAG,CAAC;IACd,MAAME,QAAQ,GAAGb,oBAAoB,CAACS,IAAI,EAAEL,WAAW,CAAC;IACxD,IAAIU,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;MAC3BP,OAAO,CAACM,IAAI,CAAC,GAAGC,QAAQ,CAAC;IAC3B;EACF;EAEA,OAAOR,IAAI;AACb;AAEA,OAAO,SAASW,cAAcA,CAC5BP,IAAY,EACZQ,MAAc,EACdC,OAAe,EACN;EACT,MAAMC,IAAI,GAAGnB,oBAAoB,CAACS,IAAI,EAAES,OAAO,CAAC;EAEhD,OAAOC,IAAI,EAAEC,iBAAiB,CAAC,CAAC,CAACC,OAAO,CAACJ,MAAM,CAACG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3E;AAEA,OAAO,SAASE,eAAeA,CAC7BC,MAAwB,EACxBd,IAAS,EACTQ,MAAc,EACdO,KAAa,EACbN,OAAe,EACfd,WAAmB,EACnBqB,QAA2B,EAClB;EACT,MAAMZ,QAAQ,GAAGb,oBAAoB,CAACS,IAAI,EAAEL,WAAW,CAAC;EAExD,IAAIS,QAAQ,EAAE;IACZ,IAAIa,KAAK,GAAG,KAAK;IACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGd,QAAQ,CAACL,MAAM,EAAEmB,CAAC,EAAE,EAAE;MACxC,IACEL,eAAe,CACbC,MAAM,EACNV,QAAQ,CAACc,CAAC,CAAC,EACXV,MAAM,EACNO,KAAK,EACLN,OAAO,EACPd,WAAW,EACXqB,QACF,CAAC,EACD;QACAC,KAAK,GAAG,IAAI;MACd;IACF;IAEA,IAAIA,KAAK,EAAE;MACT,OAAO,IAAI;IACb,CAAC,MAAM,IAAIH,MAAM,CAACd,IAAI,EAAEQ,MAAM,EAAEC,OAAO,CAAC,EAAE;MACxC,OAAO,IAAI;IACb;EACF,CAAC,MAAM,IAAIK,MAAM,CAACd,IAAI,EAAEQ,MAAM,EAAEC,OAAO,CAAC,EAAE;IACxC,OAAO,IAAI;EACb;EAEAO,QAAQ,CAACG,GAAG,CAAC5B,oBAAoB,CAACS,IAAI,EAAEe,KAAK,CAAC,CAAC;EAE/C,OAAO,KAAK;AACd"}
1
+ {"version":3,"file":"util.mjs","names":["getObjectValueByPath","getKeys","items","itemKey","childrenKey","keys","remains","slice","length","item","splice","key","push","children","Array","isArray","filterTreeItem","search","textKey","text","toLocaleLowerCase","indexOf","filterTreeItems","filter","idKey","excluded","match","i","add"],"sources":["../../../src/components/tree-view/util.ts"],"sourcesContent":["import { CandidateKey } from '../../types';\nimport { getObjectValueByPath } from '../../util/common';\nimport { TreeviewFilterFn } from './types';\n\nexport function getKeys(items: any[], itemKey: string, childrenKey: string) {\n const keys: CandidateKey[] = [];\n const remains: any[] = items.slice();\n\n while (remains.length > 0) {\n const item = remains.splice(0, 1);\n const key = getObjectValueByPath(item, itemKey);\n keys.push(key);\n const children = getObjectValueByPath(item, childrenKey);\n if (Array.isArray(children)) {\n remains.push(...children);\n }\n }\n\n return keys;\n}\n\nexport function filterTreeItem(\n item: object,\n search: string,\n textKey: string,\n): boolean {\n const text = getObjectValueByPath(item, textKey);\n\n return text?.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;\n}\n\nexport function filterTreeItems(\n filter: TreeviewFilterFn,\n item: any,\n search: string,\n idKey: string,\n textKey: string,\n childrenKey: string,\n excluded: Set<CandidateKey>,\n): boolean {\n const children = getObjectValueByPath(item, childrenKey);\n\n if (children) {\n let match = false;\n for (let i = 0; i < children.length; i++) {\n if (\n filterTreeItems(\n filter,\n children[i],\n search,\n idKey,\n textKey,\n childrenKey,\n excluded,\n )\n ) {\n match = true;\n }\n }\n\n if (match) {\n return true;\n } else if (filter(item, search, textKey)) {\n return true;\n }\n } else if (filter(item, search, textKey)) {\n return true;\n }\n\n excluded.add(getObjectValueByPath(item, idKey));\n\n return false;\n}\n"],"mappings":"SACSA,oBAAoB;AAG7B,OAAO,SAASC,OAAOA,CAACC,KAAY,EAAEC,OAAe,EAAEC,WAAmB,EAAE;EAC1E,MAAMC,IAAoB,GAAG,EAAE;EAC/B,MAAMC,OAAc,GAAGJ,KAAK,CAACK,KAAK,CAAC,CAAC;EAEpC,OAAOD,OAAO,CAACE,MAAM,GAAG,CAAC,EAAE;IACzB,MAAMC,IAAI,GAAGH,OAAO,CAACI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACjC,MAAMC,GAAG,GAAGX,oBAAoB,CAACS,IAAI,EAAEN,OAAO,CAAC;IAC/CE,IAAI,CAACO,IAAI,CAACD,GAAG,CAAC;IACd,MAAME,QAAQ,GAAGb,oBAAoB,CAACS,IAAI,EAAEL,WAAW,CAAC;IACxD,IAAIU,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;MAC3BP,OAAO,CAACM,IAAI,CAAC,GAAGC,QAAQ,CAAC;IAC3B;EACF;EAEA,OAAOR,IAAI;AACb;AAEA,OAAO,SAASW,cAAcA,CAC5BP,IAAY,EACZQ,MAAc,EACdC,OAAe,EACN;EACT,MAAMC,IAAI,GAAGnB,oBAAoB,CAACS,IAAI,EAAES,OAAO,CAAC;EAEhD,OAAOC,IAAI,EAAEC,iBAAiB,CAAC,CAAC,CAACC,OAAO,CAACJ,MAAM,CAACG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3E;AAEA,OAAO,SAASE,eAAeA,CAC7BC,MAAwB,EACxBd,IAAS,EACTQ,MAAc,EACdO,KAAa,EACbN,OAAe,EACfd,WAAmB,EACnBqB,QAA2B,EAClB;EACT,MAAMZ,QAAQ,GAAGb,oBAAoB,CAACS,IAAI,EAAEL,WAAW,CAAC;EAExD,IAAIS,QAAQ,EAAE;IACZ,IAAIa,KAAK,GAAG,KAAK;IACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGd,QAAQ,CAACL,MAAM,EAAEmB,CAAC,EAAE,EAAE;MACxC,IACEL,eAAe,CACbC,MAAM,EACNV,QAAQ,CAACc,CAAC,CAAC,EACXV,MAAM,EACNO,KAAK,EACLN,OAAO,EACPd,WAAW,EACXqB,QACF,CAAC,EACD;QACAC,KAAK,GAAG,IAAI;MACd;IACF;IAEA,IAAIA,KAAK,EAAE;MACT,OAAO,IAAI;IACb,CAAC,MAAM,IAAIH,MAAM,CAACd,IAAI,EAAEQ,MAAM,EAAEC,OAAO,CAAC,EAAE;MACxC,OAAO,IAAI;IACb;EACF,CAAC,MAAM,IAAIK,MAAM,CAACd,IAAI,EAAEQ,MAAM,EAAEC,OAAO,CAAC,EAAE;IACxC,OAAO,IAAI;EACb;EAEAO,QAAQ,CAACG,GAAG,CAAC5B,oBAAoB,CAACS,IAAI,EAAEe,KAAK,CAAC,CAAC;EAE/C,OAAO,KAAK;AACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"choice.mjs","names":["computed","getCurrentInstance","inject","onBeforeUnmount","onMounted","provide","reactive","toRef","watch","wrapInArray","deepEqual","findChildrenWithProvide","getUid","propsFactory","useModelDuplex","pressChoicePropsOptions","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","returnItem","pressChoiceItemPropsOptions","value","useChoiceItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","choiceProvider","register","unregister","isSelected","emit","toggle","select","provider","useChoice","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","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/choice.ts"],"sourcesContent":["import type {\r\n ComponentInternalInstance,\r\n ComputedRef,\r\n ExtractPropTypes,\r\n InjectionKey,\r\n PropType,\r\n Ref,\r\n UnwrapRef,\r\n} from 'vue';\r\nimport {\r\n computed,\r\n getCurrentInstance,\r\n inject,\r\n onBeforeUnmount,\r\n onMounted,\r\n provide,\r\n reactive,\r\n toRef,\r\n watch,\r\n} from 'vue';\r\n\r\nimport { wrapInArray } from '../util/array';\r\nimport { deepEqual } from '../util/common';\r\nimport {\r\n findChildrenWithProvide,\r\n getUid,\r\n propsFactory,\r\n} from '../util/component';\r\nimport { useModelDuplex } from './communication';\r\n\r\nexport interface ChoiceItem {\r\n id: number;\r\n value: Ref<unknown>;\r\n disabled: Ref<boolean | undefined>;\r\n}\r\n\r\nexport interface ChoiceProps {\r\n disabled: boolean;\r\n modelValue: unknown;\r\n multiple?: boolean;\r\n mandatory?: boolean | 'force' | undefined;\r\n max?: number | undefined;\r\n selectedClass?: string | undefined;\r\n 'onUpdate:modelValue': ((value: unknown) => void) | undefined;\r\n}\r\n\r\nexport interface ChoiceProvide {\r\n register: (item: ChoiceItem, instance: ComponentInternalInstance) => void;\r\n unregister: (id: number) => void;\r\n select: (id: number, value: boolean) => void;\r\n selected: Ref<Readonly<number[]>>;\r\n selectedClass: Ref<string | undefined>;\r\n isSelected: (id: number) => boolean;\r\n disabled: Ref<boolean | undefined>;\r\n getItemIndex: (value: unknown) => number;\r\n prev: () => void;\r\n next: () => void;\r\n items: ComputedRef<\r\n { id: number; value: unknown; disabled: boolean | undefined }[]\r\n >;\r\n}\r\n\r\nexport interface ChoiceItemProvide {\r\n id: number;\r\n isSelected: Ref<boolean>;\r\n toggle: () => void;\r\n select: (value: boolean) => void;\r\n selectedClass: Ref<(string | undefined)[] | false>;\r\n value: Ref<unknown>;\r\n disabled: Ref<boolean | undefined>;\r\n provider: ChoiceProvide;\r\n}\r\n\r\nexport const pressChoicePropsOptions = propsFactory(\r\n {\r\n modelValue: {\r\n type: null,\r\n default: undefined,\r\n },\r\n multiple: Boolean,\r\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\r\n max: Number,\r\n selectedClass: String as PropType<string>,\r\n disabled: Boolean,\r\n returnItem: Boolean as PropType<boolean>,\r\n },\r\n 'choice',\r\n);\r\n\r\nexport const pressChoiceItemPropsOptions = propsFactory(\r\n {\r\n value: null,\r\n disabled: Boolean,\r\n selectedClass: String,\r\n },\r\n 'choice-item',\r\n);\r\n\r\nexport interface ChoiceItemProps\r\n extends ExtractPropTypes<ReturnType<typeof pressChoiceItemPropsOptions>> {\r\n 'onChoice:selected': ((val: { value: boolean }) => void) | undefined;\r\n}\r\n\r\nexport function useChoiceItem(\r\n props: ChoiceItemProps,\r\n injectKey: InjectionKey<ChoiceProvide>,\r\n required?: true,\r\n): ChoiceItemProvide;\r\nexport function useChoiceItem(\r\n props: ChoiceItemProps,\r\n injectKey: InjectionKey<ChoiceProvide>,\r\n required: false,\r\n): ChoiceItemProvide | null;\r\nexport function useChoiceItem(\r\n props: ChoiceItemProps,\r\n injectKey: InjectionKey<ChoiceProvide>,\r\n required = true,\r\n): ChoiceItemProvide | null {\r\n const vm = getCurrentInstance();\r\n\r\n if (!vm) {\r\n throw new Error(\r\n '\"useChoiceItem\" must be used inside a component setup function',\r\n );\r\n }\r\n\r\n const id = getUid() as number;\r\n\r\n provide(Symbol.for(`${injectKey.description}:id`), id);\r\n\r\n const choiceProvider = inject(injectKey, null);\r\n\r\n if (!choiceProvider) {\r\n if (!required) return choiceProvider as null;\r\n\r\n throw new Error(`Not found provider`);\r\n }\r\n\r\n const value = toRef(props, 'value');\r\n const disabled = computed(\r\n () => !!(choiceProvider.disabled.value || props.disabled),\r\n );\r\n\r\n choiceProvider.register(\r\n {\r\n id,\r\n value,\r\n disabled,\r\n },\r\n vm,\r\n );\r\n\r\n onBeforeUnmount(() => {\r\n choiceProvider.unregister(id);\r\n });\r\n\r\n const isSelected = computed(() => {\r\n return choiceProvider.isSelected(id);\r\n });\r\n\r\n const selectedClass = computed(\r\n () =>\r\n isSelected.value && [\r\n choiceProvider.selectedClass.value,\r\n props.selectedClass,\r\n ],\r\n );\r\n\r\n watch(isSelected, (value) => {\r\n vm.emit('choice:selected', { value });\r\n });\r\n\r\n return {\r\n id,\r\n isSelected,\r\n toggle: () => choiceProvider.select(id, !isSelected.value),\r\n select: (value: boolean) => choiceProvider.select(id, value),\r\n selectedClass,\r\n value,\r\n disabled,\r\n provider: choiceProvider,\r\n };\r\n}\r\n\r\nexport function useChoice(\r\n props: ChoiceProps,\r\n injectKey: InjectionKey<ChoiceProvide>,\r\n) {\r\n let isUnmounted = false;\r\n const items = reactive<ChoiceItem[]>([]);\r\n const selected = useModelDuplex(\r\n props,\r\n 'modelValue',\r\n [],\r\n (v) => {\r\n if (v == null) return [];\r\n\r\n return getIds(items, wrapInArray(v));\r\n },\r\n (v) => {\r\n const arr = getValues(items, v);\r\n\r\n return props.multiple ? arr : arr[0];\r\n },\r\n );\r\n\r\n const groupVm = getCurrentInstance();\r\n\r\n function register(item: ChoiceItem, vm: ComponentInternalInstance) {\r\n const unwrapped = item as unknown as UnwrapRef<ChoiceItem>;\r\n\r\n const key = Symbol.for(`${injectKey.description}:id`);\r\n const children = findChildrenWithProvide(key, groupVm?.vnode);\r\n const index = children.indexOf(vm);\r\n\r\n if (index > -1) {\r\n items.splice(index, 0, unwrapped);\r\n } else {\r\n items.push(unwrapped);\r\n }\r\n }\r\n\r\n function unregister(id: number) {\r\n if (isUnmounted) return;\r\n forceMandatoryValue();\r\n const index = items.findIndex((item) => item.id === id);\r\n items.splice(index, 1);\r\n }\r\n\r\n function forceMandatoryValue() {\r\n const item = items.find((item) => !item.disabled);\r\n if (item && props.mandatory === 'force' && !selected.value.length) {\r\n selected.value = [item.id];\r\n }\r\n }\r\n\r\n onMounted(() => {\r\n forceMandatoryValue();\r\n });\r\n\r\n onBeforeUnmount(() => {\r\n isUnmounted = true;\r\n });\r\n\r\n function select(id: number, value?: boolean) {\r\n const item = items.find((item) => item.id === id);\r\n if (value && item?.disabled) return;\r\n\r\n if (props.multiple) {\r\n const internalValue = selected.value.slice();\r\n const index = internalValue.findIndex((v: any) => v === id);\r\n const isSelected = ~index;\r\n value = value ?? !isSelected;\r\n if (isSelected && props.mandatory && internalValue.length <= 1) return;\r\n if (\r\n !isSelected &&\r\n props.max != null &&\r\n internalValue.length + 1 > props.max\r\n )\r\n return;\r\n\r\n if (index < 0 && value) internalValue.push(id);\r\n else if (index >= 0 && !value) internalValue.splice(index, 1);\r\n\r\n selected.value = internalValue;\r\n } else {\r\n const isSelected = selected.value.includes(id);\r\n if (props.mandatory && isSelected) return;\r\n selected.value = value ?? !isSelected ? [id] : [];\r\n }\r\n }\r\n\r\n function step(offset: number) {\r\n if (props.multiple) {\r\n }\r\n\r\n if (!selected.value.length) {\r\n const item = items.find((item) => !item.disabled);\r\n item && (selected.value = [item.id]);\r\n } else {\r\n const currentId = selected.value[0];\r\n const currentIndex = items.findIndex((i) => i.id === currentId);\r\n\r\n let newIndex = (currentIndex + offset) % items.length;\r\n let newItem = items[newIndex];\r\n\r\n while (newItem.disabled && newIndex !== currentIndex) {\r\n newIndex = (newIndex + offset) % items.length;\r\n newItem = items[newIndex];\r\n }\r\n\r\n if (newItem.disabled) return;\r\n\r\n selected.value = [items[newIndex].id];\r\n }\r\n }\r\n\r\n const state: ChoiceProvide = {\r\n register,\r\n unregister,\r\n selected,\r\n select,\r\n disabled: toRef(props, 'disabled'),\r\n prev: () => step(items.length - 1),\r\n next: () => step(1),\r\n isSelected: (id: number) => selected.value.includes(id),\r\n selectedClass: computed(() => props.selectedClass),\r\n items: computed(() => items),\r\n getItemIndex: (value: unknown) => getItemIndex(items, value),\r\n };\r\n\r\n provide(injectKey, state);\r\n\r\n return state;\r\n}\r\n\r\nfunction getItemIndex(items: UnwrapRef<ChoiceItem[]>, value: unknown) {\r\n const ids = getIds(items, [value]);\r\n\r\n if (!ids.length) return -1;\r\n\r\n return items.findIndex((item) => item.id === ids[0]);\r\n}\r\n\r\nfunction getIds(items: UnwrapRef<ChoiceItem[]>, modelValue: any[]) {\r\n const ids: number[] = [];\r\n\r\n modelValue.forEach((value) => {\r\n const item = items.find((item) => deepEqual(value, item.value));\r\n const itemByIndex = items[value];\r\n\r\n if (item?.value != null) {\r\n ids.push(item.id);\r\n } else if (itemByIndex != null) {\r\n ids.push(itemByIndex.id);\r\n }\r\n });\r\n\r\n return ids;\r\n}\r\n\r\nfunction getValues(items: UnwrapRef<ChoiceItem[]>, ids: any[]) {\r\n const values: unknown[] = [];\r\n ids.forEach((id) => {\r\n const itemIndex = items.findIndex((item) => item.id === id);\r\n if (~itemIndex) {\r\n const item = items[itemIndex];\r\n values.push(item.value != null ? item.value : itemIndex);\r\n }\r\n });\r\n\r\n return values;\r\n}\r\n"],"mappings":"AASA,SACEA,QAAQ,EACRC,kBAAkB,EAClBC,MAAM,EACNC,eAAe,EACfC,SAAS,EACTC,OAAO,EACPC,QAAQ,EACRC,KAAK,EACLC,KAAK,QACA,KAAK;AAAC,SAEJC,WAAW;AAAA,SACXC,SAAS;AAAA,SAEhBC,uBAAuB,EACvBC,MAAM,EACNC,YAAY;AAAA,SAELC,cAAc;AA6CvB,OAAO,MAAMC,uBAAuB,GAAGF,YAAY,CACjD;EACEG,UAAU,EAAE;IACVC,IAAI,EAAE,IAAI;IACVC,OAAO,EAAEC;EACX,CAAC;EACDC,QAAQ,EAAEC,OAAO;EACjBC,SAAS,EAAE,CAACD,OAAO,EAAEE,MAAM,CAAgC;EAC3DC,GAAG,EAAEC,MAAM;EACXC,aAAa,EAAEH,MAA0B;EACzCI,QAAQ,EAAEN,OAAO;EACjBO,UAAU,EAAEP;AACd,CAAC,EACD,QACF,CAAC;AAED,OAAO,MAAMQ,2BAA2B,GAAGhB,YAAY,CACrD;EACEiB,KAAK,EAAE,IAAI;EACXH,QAAQ,EAAEN,OAAO;EACjBK,aAAa,EAAEH;AACjB,CAAC,EACD,aACF,CAAC;AAiBD,OAAO,SAASQ,aAAaA,CAC3BC,KAAsB,EACtBC,SAAsC,EAEZ;EAAA,IAD1BC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAhB,SAAA,GAAAgB,SAAA,MAAG,IAAI;EAEf,MAAME,EAAE,GAAGpC,kBAAkB,CAAC,CAAC;EAE/B,IAAI,CAACoC,EAAE,EAAE;IACP,MAAM,IAAIC,KAAK,CACb,gEACF,CAAC;EACH;EAEA,MAAMC,EAAE,GAAG3B,MAAM,CAAC,CAAW;EAE7BP,OAAO,CAACmC,MAAM,CAACC,GAAG,CAAE,GAAER,SAAS,CAACS,WAAY,KAAI,CAAC,EAAEH,EAAE,CAAC;EAEtD,MAAMI,cAAc,GAAGzC,MAAM,CAAC+B,SAAS,EAAE,IAAI,CAAC;EAE9C,IAAI,CAACU,cAAc,EAAE;IACnB,IAAI,CAACT,QAAQ,EAAE,OAAOS,cAAc;IAEpC,MAAM,IAAIL,KAAK,CAAE,oBAAmB,CAAC;EACvC;EAEA,MAAMR,KAAK,GAAGvB,KAAK,CAACyB,KAAK,EAAE,OAAO,CAAC;EACnC,MAAML,QAAQ,GAAG3B,QAAQ,CACvB,MAAM,CAAC,EAAE2C,cAAc,CAAChB,QAAQ,CAACG,KAAK,IAAIE,KAAK,CAACL,QAAQ,CAC1D,CAAC;EAEDgB,cAAc,CAACC,QAAQ,CACrB;IACEL,EAAE;IACFT,KAAK;IACLH;EACF,CAAC,EACDU,EACF,CAAC;EAEDlC,eAAe,CAAC,MAAM;IACpBwC,cAAc,CAACE,UAAU,CAACN,EAAE,CAAC;EAC/B,CAAC,CAAC;EAEF,MAAMO,UAAU,GAAG9C,QAAQ,CAAC,MAAM;IAChC,OAAO2C,cAAc,CAACG,UAAU,CAACP,EAAE,CAAC;EACtC,CAAC,CAAC;EAEF,MAAMb,aAAa,GAAG1B,QAAQ,CAC5B,MACE8C,UAAU,CAAChB,KAAK,IAAI,CAClBa,cAAc,CAACjB,aAAa,CAACI,KAAK,EAClCE,KAAK,CAACN,aAAa,CAEzB,CAAC;EAEDlB,KAAK,CAACsC,UAAU,EAAGhB,KAAK,IAAK;IAC3BO,EAAE,CAACU,IAAI,CAAC,iBAAiB,EAAE;MAAEjB;IAAM,CAAC,CAAC;EACvC,CAAC,CAAC;EAEF,OAAO;IACLS,EAAE;IACFO,UAAU;IACVE,MAAM,EAAEA,CAAA,KAAML,cAAc,CAACM,MAAM,CAACV,EAAE,EAAE,CAACO,UAAU,CAAChB,KAAK,CAAC;IAC1DmB,MAAM,EAAGnB,KAAc,IAAKa,cAAc,CAACM,MAAM,CAACV,EAAE,EAAET,KAAK,CAAC;IAC5DJ,aAAa;IACbI,KAAK;IACLH,QAAQ;IACRuB,QAAQ,EAAEP;EACZ,CAAC;AACH;AAEA,OAAO,SAASQ,SAASA,CACvBnB,KAAkB,EAClBC,SAAsC,EACtC;EACA,IAAImB,WAAW,GAAG,KAAK;EACvB,MAAMC,KAAK,GAAG/C,QAAQ,CAAe,EAAE,CAAC;EACxC,MAAMgD,QAAQ,GAAGxC,cAAc,CAC7BkB,KAAK,EACL,YAAY,EACZ,EAAE,EACDuB,CAAC,IAAK;IACL,IAAIA,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE;IAExB,OAAOC,MAAM,CAACH,KAAK,EAAE5C,WAAW,CAAC8C,CAAC,CAAC,CAAC;EACtC,CAAC,EACAA,CAAC,IAAK;IACL,MAAME,GAAG,GAAGC,SAAS,CAACL,KAAK,EAAEE,CAAC,CAAC;IAE/B,OAAOvB,KAAK,CAACZ,QAAQ,GAAGqC,GAAG,GAAGA,GAAG,CAAC,CAAC,CAAC;EACtC,CACF,CAAC;EAED,MAAME,OAAO,GAAG1D,kBAAkB,CAAC,CAAC;EAEpC,SAAS2C,QAAQA,CAACgB,IAAgB,EAAEvB,EAA6B,EAAE;IACjE,MAAMwB,SAAS,GAAGD,IAAwC;IAE1D,MAAME,GAAG,GAAGtB,MAAM,CAACC,GAAG,CAAE,GAAER,SAAS,CAACS,WAAY,KAAI,CAAC;IACrD,MAAMqB,QAAQ,GAAGpD,uBAAuB,CAACmD,GAAG,EAAEH,OAAO,EAAEK,KAAK,CAAC;IAC7D,MAAMC,KAAK,GAAGF,QAAQ,CAACG,OAAO,CAAC7B,EAAE,CAAC;IAElC,IAAI4B,KAAK,GAAG,CAAC,CAAC,EAAE;MACdZ,KAAK,CAACc,MAAM,CAACF,KAAK,EAAE,CAAC,EAAEJ,SAAS,CAAC;IACnC,CAAC,MAAM;MACLR,KAAK,CAACe,IAAI,CAACP,SAAS,CAAC;IACvB;EACF;EAEA,SAAShB,UAAUA,CAACN,EAAU,EAAE;IAC9B,IAAIa,WAAW,EAAE;IACjBiB,mBAAmB,CAAC,CAAC;IACrB,MAAMJ,KAAK,GAAGZ,KAAK,CAACiB,SAAS,CAAEV,IAAI,IAAKA,IAAI,CAACrB,EAAE,KAAKA,EAAE,CAAC;IACvDc,KAAK,CAACc,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;EACxB;EAEA,SAASI,mBAAmBA,CAAA,EAAG;IAC7B,MAAMT,IAAI,GAAGP,KAAK,CAACkB,IAAI,CAAEX,IAAI,IAAK,CAACA,IAAI,CAACjC,QAAQ,CAAC;IACjD,IAAIiC,IAAI,IAAI5B,KAAK,CAACV,SAAS,KAAK,OAAO,IAAI,CAACgC,QAAQ,CAACxB,KAAK,CAACM,MAAM,EAAE;MACjEkB,QAAQ,CAACxB,KAAK,GAAG,CAAC8B,IAAI,CAACrB,EAAE,CAAC;IAC5B;EACF;EAEAnC,SAAS,CAAC,MAAM;IACdiE,mBAAmB,CAAC,CAAC;EACvB,CAAC,CAAC;EAEFlE,eAAe,CAAC,MAAM;IACpBiD,WAAW,GAAG,IAAI;EACpB,CAAC,CAAC;EAEF,SAASH,MAAMA,CAACV,EAAU,EAAET,KAAe,EAAE;IAC3C,MAAM8B,IAAI,GAAGP,KAAK,CAACkB,IAAI,CAAEX,IAAI,IAAKA,IAAI,CAACrB,EAAE,KAAKA,EAAE,CAAC;IACjD,IAAIT,KAAK,IAAI8B,IAAI,EAAEjC,QAAQ,EAAE;IAE7B,IAAIK,KAAK,CAACZ,QAAQ,EAAE;MAClB,MAAMoD,aAAa,GAAGlB,QAAQ,CAACxB,KAAK,CAAC2C,KAAK,CAAC,CAAC;MAC5C,MAAMR,KAAK,GAAGO,aAAa,CAACF,SAAS,CAAEf,CAAM,IAAKA,CAAC,KAAKhB,EAAE,CAAC;MAC3D,MAAMO,UAAU,GAAG,CAACmB,KAAK;MACzBnC,KAAK,GAAGA,KAAK,IAAI,CAACgB,UAAU;MAC5B,IAAIA,UAAU,IAAId,KAAK,CAACV,SAAS,IAAIkD,aAAa,CAACpC,MAAM,IAAI,CAAC,EAAE;MAChE,IACE,CAACU,UAAU,IACXd,KAAK,CAACR,GAAG,IAAI,IAAI,IACjBgD,aAAa,CAACpC,MAAM,GAAG,CAAC,GAAGJ,KAAK,CAACR,GAAG,EAEpC;MAEF,IAAIyC,KAAK,GAAG,CAAC,IAAInC,KAAK,EAAE0C,aAAa,CAACJ,IAAI,CAAC7B,EAAE,CAAC,CAAC,KAC1C,IAAI0B,KAAK,IAAI,CAAC,IAAI,CAACnC,KAAK,EAAE0C,aAAa,CAACL,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;MAE7DX,QAAQ,CAACxB,KAAK,GAAG0C,aAAa;IAChC,CAAC,MAAM;MACL,MAAM1B,UAAU,GAAGQ,QAAQ,CAACxB,KAAK,CAAC4C,QAAQ,CAACnC,EAAE,CAAC;MAC9C,IAAIP,KAAK,CAACV,SAAS,IAAIwB,UAAU,EAAE;MACnCQ,QAAQ,CAACxB,KAAK,GAAGA,KAAK,IAAI,CAACgB,UAAU,GAAG,CAACP,EAAE,CAAC,GAAG,EAAE;IACnD;EACF;EAEA,SAASoC,IAAIA,CAACC,MAAc,EAAE;IAC5B,IAAI5C,KAAK,CAACZ,QAAQ,EAAE,CACpB;IAEA,IAAI,CAACkC,QAAQ,CAACxB,KAAK,CAACM,MAAM,EAAE;MAC1B,MAAMwB,IAAI,GAAGP,KAAK,CAACkB,IAAI,CAAEX,IAAI,IAAK,CAACA,IAAI,CAACjC,QAAQ,CAAC;MACjDiC,IAAI,KAAKN,QAAQ,CAACxB,KAAK,GAAG,CAAC8B,IAAI,CAACrB,EAAE,CAAC,CAAC;IACtC,CAAC,MAAM;MACL,MAAMsC,SAAS,GAAGvB,QAAQ,CAACxB,KAAK,CAAC,CAAC,CAAC;MACnC,MAAMgD,YAAY,GAAGzB,KAAK,CAACiB,SAAS,CAAES,CAAC,IAAKA,CAAC,CAACxC,EAAE,KAAKsC,SAAS,CAAC;MAE/D,IAAIG,QAAQ,GAAG,CAACF,YAAY,GAAGF,MAAM,IAAIvB,KAAK,CAACjB,MAAM;MACrD,IAAI6C,OAAO,GAAG5B,KAAK,CAAC2B,QAAQ,CAAC;MAE7B,OAAOC,OAAO,CAACtD,QAAQ,IAAIqD,QAAQ,KAAKF,YAAY,EAAE;QACpDE,QAAQ,GAAG,CAACA,QAAQ,GAAGJ,MAAM,IAAIvB,KAAK,CAACjB,MAAM;QAC7C6C,OAAO,GAAG5B,KAAK,CAAC2B,QAAQ,CAAC;MAC3B;MAEA,IAAIC,OAAO,CAACtD,QAAQ,EAAE;MAEtB2B,QAAQ,CAACxB,KAAK,GAAG,CAACuB,KAAK,CAAC2B,QAAQ,CAAC,CAACzC,EAAE,CAAC;IACvC;EACF;EAEA,MAAM2C,KAAoB,GAAG;IAC3BtC,QAAQ;IACRC,UAAU;IACVS,QAAQ;IACRL,MAAM;IACNtB,QAAQ,EAAEpB,KAAK,CAACyB,KAAK,EAAE,UAAU,CAAC;IAClCmD,IAAI,EAAEA,CAAA,KAAMR,IAAI,CAACtB,KAAK,CAACjB,MAAM,GAAG,CAAC,CAAC;IAClCgD,IAAI,EAAEA,CAAA,KAAMT,IAAI,CAAC,CAAC,CAAC;IACnB7B,UAAU,EAAGP,EAAU,IAAKe,QAAQ,CAACxB,KAAK,CAAC4C,QAAQ,CAACnC,EAAE,CAAC;IACvDb,aAAa,EAAE1B,QAAQ,CAAC,MAAMgC,KAAK,CAACN,aAAa,CAAC;IAClD2B,KAAK,EAAErD,QAAQ,CAAC,MAAMqD,KAAK,CAAC;IAC5BgC,YAAY,EAAGvD,KAAc,IAAKuD,YAAY,CAAChC,KAAK,EAAEvB,KAAK;EAC7D,CAAC;EAEDzB,OAAO,CAAC4B,SAAS,EAAEiD,KAAK,CAAC;EAEzB,OAAOA,KAAK;AACd;AAEA,SAASG,YAAYA,CAAChC,KAA8B,EAAEvB,KAAc,EAAE;EACpE,MAAMwD,GAAG,GAAG9B,MAAM,CAACH,KAAK,EAAE,CAACvB,KAAK,CAAC,CAAC;EAElC,IAAI,CAACwD,GAAG,CAAClD,MAAM,EAAE,OAAO,CAAC,CAAC;EAE1B,OAAOiB,KAAK,CAACiB,SAAS,CAAEV,IAAI,IAAKA,IAAI,CAACrB,EAAE,KAAK+C,GAAG,CAAC,CAAC,CAAC,CAAC;AACtD;AAEA,SAAS9B,MAAMA,CAACH,KAA8B,EAAErC,UAAiB,EAAE;EACjE,MAAMsE,GAAa,GAAG,EAAE;EAExBtE,UAAU,CAACuE,OAAO,CAAEzD,KAAK,IAAK;IAC5B,MAAM8B,IAAI,GAAGP,KAAK,CAACkB,IAAI,CAAEX,IAAI,IAAKlD,SAAS,CAACoB,KAAK,EAAE8B,IAAI,CAAC9B,KAAK,CAAC,CAAC;IAC/D,MAAM0D,WAAW,GAAGnC,KAAK,CAACvB,KAAK,CAAC;IAEhC,IAAI8B,IAAI,EAAE9B,KAAK,IAAI,IAAI,EAAE;MACvBwD,GAAG,CAAClB,IAAI,CAACR,IAAI,CAACrB,EAAE,CAAC;IACnB,CAAC,MAAM,IAAIiD,WAAW,IAAI,IAAI,EAAE;MAC9BF,GAAG,CAAClB,IAAI,CAACoB,WAAW,CAACjD,EAAE,CAAC;IAC1B;EACF,CAAC,CAAC;EAEF,OAAO+C,GAAG;AACZ;AAEA,SAAS5B,SAASA,CAACL,KAA8B,EAAEiC,GAAU,EAAE;EAC7D,MAAMG,MAAiB,GAAG,EAAE;EAC5BH,GAAG,CAACC,OAAO,CAAEhD,EAAE,IAAK;IAClB,MAAMmD,SAAS,GAAGrC,KAAK,CAACiB,SAAS,CAAEV,IAAI,IAAKA,IAAI,CAACrB,EAAE,KAAKA,EAAE,CAAC;IAC3D,IAAI,CAACmD,SAAS,EAAE;MACd,MAAM9B,IAAI,GAAGP,KAAK,CAACqC,SAAS,CAAC;MAC7BD,MAAM,CAACrB,IAAI,CAACR,IAAI,CAAC9B,KAAK,IAAI,IAAI,GAAG8B,IAAI,CAAC9B,KAAK,GAAG4D,SAAS,CAAC;IAC1D;EACF,CAAC,CAAC;EAEF,OAAOD,MAAM;AACf"}
1
+ {"version":3,"file":"choice.mjs","names":["computed","getCurrentInstance","inject","onBeforeUnmount","onMounted","provide","reactive","toRef","watch","wrapInArray","deepEqual","findChildrenWithProvide","getUid","propsFactory","useModelDuplex","pressChoicePropsOptions","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","returnItem","pressChoiceItemPropsOptions","value","useChoiceItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","choiceProvider","register","unregister","isSelected","emit","toggle","select","provider","useChoice","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","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/choice.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 {\n findChildrenWithProvide,\n getUid,\n propsFactory,\n} from '@/util/component';\n\nimport { useModelDuplex } from './communication';\n\nexport interface ChoiceItem {\n id: number;\n value: Ref<unknown>;\n disabled: Ref<boolean | undefined>;\n}\n\nexport interface ChoiceProps {\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 ChoiceProvide {\n register: (item: ChoiceItem, 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 ChoiceItemProvide {\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 provider: ChoiceProvide;\n}\n\nexport const pressChoicePropsOptions = 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 as PropType<string>,\n disabled: Boolean,\n returnItem: Boolean as PropType<boolean>,\n },\n 'choice',\n);\n\nexport const pressChoiceItemPropsOptions = propsFactory(\n {\n value: null,\n disabled: Boolean,\n selectedClass: String,\n },\n 'choice-item',\n);\n\nexport interface ChoiceItemProps\n extends ExtractPropTypes<ReturnType<typeof pressChoiceItemPropsOptions>> {\n 'onChoice:selected': ((val: { value: boolean }) => void) | undefined;\n}\n\nexport function useChoiceItem(\n props: ChoiceItemProps,\n injectKey: InjectionKey<ChoiceProvide>,\n required?: true,\n): ChoiceItemProvide;\nexport function useChoiceItem(\n props: ChoiceItemProps,\n injectKey: InjectionKey<ChoiceProvide>,\n required: false,\n): ChoiceItemProvide | null;\nexport function useChoiceItem(\n props: ChoiceItemProps,\n injectKey: InjectionKey<ChoiceProvide>,\n required = true,\n): ChoiceItemProvide | null {\n const vm = getCurrentInstance();\n\n if (!vm) {\n throw new Error(\n '\"useChoiceItem\" must be used inside a component setup function',\n );\n }\n\n const id = getUid() as number;\n\n provide(Symbol.for(`${injectKey.description}:id`), id);\n\n const choiceProvider = inject(injectKey, null);\n\n if (!choiceProvider) {\n if (!required) return choiceProvider as null;\n\n throw new Error(`Not found provider`);\n }\n\n const value = toRef(props, 'value');\n const disabled = computed(\n () => !!(choiceProvider.disabled.value || props.disabled),\n );\n\n choiceProvider.register(\n {\n id,\n value,\n disabled,\n },\n vm,\n );\n\n onBeforeUnmount(() => {\n choiceProvider.unregister(id);\n });\n\n const isSelected = computed(() => {\n return choiceProvider.isSelected(id);\n });\n\n const selectedClass = computed(\n () =>\n isSelected.value && [\n choiceProvider.selectedClass.value,\n props.selectedClass,\n ],\n );\n\n watch(isSelected, (value) => {\n vm.emit('choice:selected', { value });\n });\n\n return {\n id,\n isSelected,\n toggle: () => choiceProvider.select(id, !isSelected.value),\n select: (value: boolean) => choiceProvider.select(id, value),\n selectedClass,\n value,\n disabled,\n provider: choiceProvider,\n };\n}\n\nexport function useChoice(\n props: ChoiceProps,\n injectKey: InjectionKey<ChoiceProvide>,\n) {\n let isUnmounted = false;\n const items = reactive<ChoiceItem[]>([]);\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: ChoiceItem, vm: ComponentInternalInstance) {\n const unwrapped = item as unknown as UnwrapRef<ChoiceItem>;\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: any) => v === id);\n const isSelected = ~index;\n value = value ?? !isSelected;\n if (isSelected && props.mandatory && internalValue.length <= 1) return;\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 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: ChoiceProvide = {\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<ChoiceItem[]>, 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<ChoiceItem[]>, 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<ChoiceItem[]>, ids: any[]) {\n const values: unknown[] = [];\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":"communication.mjs","names":["computed","getCurrentInstance","ref","toRaw","watch","hasOwnProperty","kebabToCamel","toKebabCase","useToggleScope","useModelDuplex","props","prop","arguments","length","undefined","defaultValue","getIn","v","setOut","vm","kebabProp","property","txValue","getProp","isDefinedProp","registeredProps","vnode","value","model","get","set","neo","current","emit","Object","defineProperty","useProvided","provided","internal"],"sources":["../../src/composables/communication.ts"],"sourcesContent":["import { WritableComputedRef } from '@vue/runtime-core';\nimport { computed, getCurrentInstance, ref, toRaw, watch } from 'vue';\nimport type { Ref } from 'vue';\n\nimport { hasOwnProperty } from '../util/common';\nimport { kebabToCamel, toKebabCase } from '../util/string';\nimport { useToggleScope } from './scope';\n\nexport function useModelDuplex(\n props: any,\n prop: string = 'modelValue',\n defaultValue?: any,\n getIn: (value?: any) => any = (v: any) => v,\n setOut: (value: any) => any = (v: any) => v,\n) {\n const vm = getCurrentInstance()!;\n const kebabProp = toKebabCase(prop);\n const property = kebabProp === prop ? kebabToCamel(prop) : prop;\n const txValue = ref(\n props[property] !== undefined ? props[property] : defaultValue,\n );\n\n function getProp() {\n return props[property];\n }\n\n const isDefinedProp = computed(() => {\n getProp();\n const registeredProps = vm.vnode.props;\n return (\n (hasOwnProperty(registeredProps, kebabProp) ||\n hasOwnProperty(registeredProps, property)) &&\n (hasOwnProperty(registeredProps, `onUpdate:${kebabProp}`) ||\n hasOwnProperty(registeredProps, `onUpdate:${property}`))\n );\n });\n\n useToggleScope(\n () => !isDefinedProp.value,\n () => {\n watch(\n () => getProp(),\n (value) => {\n txValue.value = value;\n },\n );\n },\n );\n\n const model = computed({\n get(): any {\n return getIn(isDefinedProp.value ? getProp() : txValue.value);\n },\n set(value) {\n const neo = setOut(value);\n const current = toRaw(isDefinedProp.value ? getProp() : txValue.value);\n if (current === neo || getIn(current) === value) {\n return;\n }\n txValue.value = neo;\n vm?.emit(`update:${property}`, neo);\n },\n }) as any as Ref<any> & { readonly rxValue: any };\n\n Object.defineProperty(model, 'rxValue', {\n get: () => (isDefinedProp.value ? getProp() : txValue.value),\n });\n\n return model;\n}\n\nexport function useProvided<T>(props: any, prop: string, provided: Ref<T>) {\n const internal = useModelDuplex(props, prop, props[prop] ?? provided.value);\n\n watch(provided, (value) => {\n if (props[prop] == null) {\n internal.value = value;\n }\n });\n return internal;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"communication.mjs","names":["computed","getCurrentInstance","ref","toRaw","watch","hasOwnProperty","kebabToCamel","toKebabCase","useToggleScope","useModelDuplex","props","prop","arguments","length","undefined","defaultValue","getIn","v","setOut","vm","kebabProp","property","txValue","getProp","isDefinedProp","registeredProps","vnode","value","model","get","set","neo","current","emit","Object","defineProperty","useProvided","provided","internal"],"sources":["../../src/composables/communication.ts"],"sourcesContent":["import { type Ref, computed, getCurrentInstance, ref, toRaw, watch } from 'vue';\n\nimport { hasOwnProperty } from '@/util/common';\nimport { kebabToCamel, toKebabCase } from '@/util/string';\n\nimport { useToggleScope } from './scope';\n\nexport function useModelDuplex(\n props: any,\n prop: string = 'modelValue',\n defaultValue?: any,\n getIn: (value?: any) => any = (v: any) => v,\n setOut: (value: any) => any = (v: any) => v,\n) {\n const vm = getCurrentInstance()!;\n const kebabProp = toKebabCase(prop);\n const property = kebabProp === prop ? kebabToCamel(prop) : prop;\n const txValue = ref(\n props[property] !== undefined ? props[property] : defaultValue,\n );\n\n function getProp() {\n return props[property];\n }\n\n const isDefinedProp = computed(() => {\n getProp();\n const registeredProps = vm.vnode.props;\n return (\n (hasOwnProperty(registeredProps, kebabProp) ||\n hasOwnProperty(registeredProps, property)) &&\n (hasOwnProperty(registeredProps, `onUpdate:${kebabProp}`) ||\n hasOwnProperty(registeredProps, `onUpdate:${property}`))\n );\n });\n\n useToggleScope(\n () => !isDefinedProp.value,\n () => {\n watch(\n () => getProp(),\n (value) => {\n txValue.value = value;\n },\n );\n },\n );\n\n const model = computed({\n get(): any {\n return getIn(isDefinedProp.value ? getProp() : txValue.value);\n },\n set(value) {\n const neo = setOut(value);\n const current = toRaw(isDefinedProp.value ? getProp() : txValue.value);\n if (current === neo || getIn(current) === value) {\n return;\n }\n txValue.value = neo;\n vm?.emit(`update:${property}`, neo);\n },\n }) as any as Ref<any> & { readonly rxValue: any };\n\n Object.defineProperty(model, 'rxValue', {\n get: () => (isDefinedProp.value ? getProp() : txValue.value),\n });\n\n return model;\n}\n\nexport function useProvided<T>(props: any, prop: string, provided: Ref<T>) {\n const internal = useModelDuplex(props, prop, props[prop] ?? provided.value);\n\n watch(provided, (value) => {\n if (props[prop] == null) {\n internal.value = value;\n }\n });\n return internal;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.mjs","names":["getCurrentInstance","useRender","render","vm"],"sources":["../../src/composables/component.ts"],"sourcesContent":["import { ComponentInternalInstance } from '@vue/runtime-core';\nimport { ComponentPublicInstance, VNode, getCurrentInstance } from 'vue';\n\ninterface RedefinedComponentInternalInstance extends ComponentInternalInstance {\n render: () => VNode;\n}\n\nexport function useRender(render: () => VNode) {\n const vm = getCurrentInstance() as RedefinedComponentInternalInstance | null;\n if (vm) {\n vm.render = render;\n }\n}\n"],"mappings":"AACA,SAAyCA,kBAAkB,QAAQ,KAAK;AAMxE,OAAO,SAASC,SAASA,CAACC,MAAmB,EAAE;EAC7C,MAAMC,EAAE,GAAGH,kBAAkB,CAAC,CAA8C;EAC5E,IAAIG,EAAE,EAAE;IACNA,EAAE,CAACD,MAAM,GAAGA,MAAM;EACpB;AACF"}
1
+ {"version":3,"file":"component.mjs","names":["getCurrentInstance","useRender","render","vm"],"sources":["../../src/composables/component.ts"],"sourcesContent":["import {\n type ComponentInternalInstance,\n type VNode,\n getCurrentInstance,\n} from 'vue';\n\ninterface RedefinedComponentInternalInstance extends ComponentInternalInstance {\n render: () => VNode;\n}\n\nexport function useRender(render: () => VNode) {\n const vm = getCurrentInstance() as RedefinedComponentInternalInstance | null;\n if (vm) {\n vm.render = render;\n }\n}\n"],"mappings":"AAAA,SAGEA,kBAAkB,QACb,KAAK;AAMZ,OAAO,SAASC,SAASA,CAACC,MAAmB,EAAE;EAC7C,MAAMC,EAAE,GAAGH,kBAAkB,CAAC,CAA8C;EAC5E,IAAIG,EAAE,EAAE;IACNA,EAAE,CAACD,MAAM,GAAGA,MAAM;EACpB;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"arrangement.mjs","names":["applyArrangement","props","state","coordinate","coordinateStyles","contentEl","base","active","updateCoordinate"],"sources":["../../../src/composables/coordinate/arrangement.ts"],"sourcesContent":["import type { CSSProperties, Ref } from 'vue';\n\nimport { Rect } from '../../util/rect';\n\nimport { CoordinateState } from './types';\n\nexport function applyArrangement(\n props: any,\n state: CoordinateState,\n coordinate: Ref<Rect | undefined>,\n coordinateStyles: Ref<CSSProperties>,\n) {\n const { contentEl, base, active } = state;\n\n function updateCoordinate(): any {\n //\n }\n\n return {\n updateCoordinate,\n };\n}\n"],"mappings":"AAMA,OAAO,SAASA,gBAAgBA,CAC9BC,KAAU,EACVC,KAAsB,EACtBC,UAAiC,EACjCC,gBAAoC,EACpC;EACA,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAGL,KAAK;EAEzC,SAASM,gBAAgBA,CAAA,EAAQ;IAC/B;EAAA;EAGF,OAAO;IACLA;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"arrangement.mjs","names":["applyArrangement","props","state","coordinate","coordinateStyles","contentEl","base","active","updateCoordinate"],"sources":["../../../src/composables/coordinate/arrangement.ts"],"sourcesContent":["import { type CSSProperties, type Ref } from 'vue';\n\nimport { type Rect } from '@/util/rect';\n\nimport type { CoordinateState } from './types';\n\nexport function applyArrangement(\n props: any,\n state: CoordinateState,\n coordinate: Ref<Rect | undefined>,\n coordinateStyles: Ref<CSSProperties>,\n) {\n const { contentEl, base, active } = state;\n\n function updateCoordinate(): any {\n //\n }\n\n return {\n updateCoordinate,\n };\n}\n"],"mappings":"AAMA,OAAO,SAASA,gBAAgBA,CAC9BC,KAAU,EACVC,KAAsB,EACtBC,UAAiC,EACjCC,gBAAoC,EACpC;EACA,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAGL,KAAK;EAEzC,SAASM,gBAAgBA,CAAA,EAAQ;IAC/B;EAAA;EAGF,OAAO;IACLA;EACF,CAAC;AACH"}