yuyeon 0.2.1-rc.1 → 0.2.1-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +5262 -6924
  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 +50 -42
  41. package/lib/components/chip/YChip.mjs.map +1 -1
  42. package/lib/components/chip/YChip.scss +6 -1
  43. package/lib/components/date-picker/YDateCalendar.mjs +3 -3
  44. package/lib/components/date-picker/YDateCalendar.mjs.map +1 -1
  45. package/lib/components/date-picker/YDateCalendar.scss +84 -82
  46. package/lib/components/date-picker/YDatePicker.mjs +2 -2
  47. package/lib/components/date-picker/YDatePicker.mjs.map +1 -1
  48. package/lib/components/date-picker/YDatePicker.scss +3 -3
  49. package/lib/components/date-picker/YDatePickerControl.mjs +2 -2
  50. package/lib/components/date-picker/YDatePickerControl.mjs.map +1 -1
  51. package/lib/components/date-picker/YDatePickerControl.scss +35 -35
  52. package/lib/components/date-picker/YMonthPicker.mjs +3 -3
  53. package/lib/components/date-picker/YMonthPicker.mjs.map +1 -1
  54. package/lib/components/date-picker/YMonthPicker.scss +25 -25
  55. package/lib/components/date-picker/YYearPicker.mjs +3 -2
  56. package/lib/components/date-picker/YYearPicker.mjs.map +1 -1
  57. package/lib/components/date-picker/YYearPicker.scss +23 -23
  58. package/lib/components/date-picker/index.mjs.map +1 -1
  59. package/lib/components/dialog/YDialog.mjs +3 -3
  60. package/lib/components/dialog/YDialog.mjs.map +1 -1
  61. package/lib/components/dialog/YDialog.scss +50 -50
  62. package/lib/components/dialog/index.mjs.map +1 -1
  63. package/lib/components/divider/YDivider.mjs +1 -2
  64. package/lib/components/divider/YDivider.mjs.map +1 -1
  65. package/lib/components/divider/YDivider.scss +2 -3
  66. package/lib/components/divider/index.mjs.map +1 -1
  67. package/lib/components/dropdown/YDropdown.mjs +2 -2
  68. package/lib/components/dropdown/YDropdown.mjs.map +1 -1
  69. package/lib/components/dropdown/YDropdown.scss +27 -28
  70. package/lib/components/dropdown/index.mjs.map +1 -1
  71. package/lib/components/field-input/YFieldInput.mjs +2 -2
  72. package/lib/components/field-input/YFieldInput.mjs.map +1 -1
  73. package/lib/components/field-input/YFieldInput.scss +66 -66
  74. package/lib/components/field-input/index.mjs.map +1 -1
  75. package/lib/components/form/YForm.mjs +3 -2
  76. package/lib/components/form/YForm.mjs.map +1 -1
  77. package/lib/components/hover/YHover.mjs +2 -2
  78. package/lib/components/hover/YHover.mjs.map +1 -1
  79. package/lib/components/hover/index.mjs.map +1 -1
  80. package/lib/components/icon/YIcon.mjs +3 -2
  81. package/lib/components/icon/YIcon.mjs.map +1 -1
  82. package/lib/components/icon/YIcon.scss +18 -18
  83. package/lib/components/icon/index.mjs.map +1 -1
  84. package/lib/components/icons/YIconCheckbox.mjs +1 -1
  85. package/lib/components/icons/YIconCheckbox.mjs.map +1 -1
  86. package/lib/components/icons/YIconCheckbox.scss +60 -60
  87. package/lib/components/icons/YIconClear.mjs +1 -1
  88. package/lib/components/icons/YIconClear.mjs.map +1 -1
  89. package/lib/components/icons/YIconDropdown.mjs +1 -1
  90. package/lib/components/icons/YIconDropdown.mjs.map +1 -1
  91. package/lib/components/icons/YIconExpand.mjs +1 -1
  92. package/lib/components/icons/YIconExpand.mjs.map +1 -1
  93. package/lib/components/icons/YIconPageControl.mjs +1 -1
  94. package/lib/components/icons/YIconPageControl.mjs.map +1 -1
  95. package/lib/components/icons/YIconSort.mjs +1 -1
  96. package/lib/components/icons/YIconSort.mjs.map +1 -1
  97. package/lib/components/icons/YIconSort.scss +24 -23
  98. package/lib/components/icons/index.mjs +1 -1
  99. package/lib/components/icons/index.mjs.map +1 -1
  100. package/lib/components/img/YImg.mjs +6 -7
  101. package/lib/components/img/YImg.mjs.map +1 -1
  102. package/lib/components/input/YInput.mjs +3 -4
  103. package/lib/components/input/YInput.mjs.map +1 -1
  104. package/lib/components/input/YInput.scss +258 -254
  105. package/lib/components/input/index.mjs.map +1 -1
  106. package/lib/components/ip-field/YIpField.scss +74 -74
  107. package/lib/components/ip-field/YIpv4Field.mjs +2 -2
  108. package/lib/components/ip-field/YIpv4Field.mjs.map +1 -1
  109. package/lib/components/ip-field/index.mjs.map +1 -1
  110. package/lib/components/layer/YLayer.mjs +2 -2
  111. package/lib/components/layer/YLayer.mjs.map +1 -1
  112. package/lib/components/layer/YLayer.scss +38 -38
  113. package/lib/components/layer/active-delay.mjs.map +1 -1
  114. package/lib/components/layer/active-stack.mjs.map +1 -1
  115. package/lib/components/layer/base.mjs.map +1 -1
  116. package/lib/components/layer/content.mjs.map +1 -1
  117. package/lib/components/layer/scroll-strategies.mjs +1 -1
  118. package/lib/components/layer/scroll-strategies.mjs.map +1 -1
  119. package/lib/components/list/YList.mjs +2 -2
  120. package/lib/components/list/YList.mjs.map +1 -1
  121. package/lib/components/list/YList.scss +3 -3
  122. package/lib/components/list/YListItem.mjs +2 -2
  123. package/lib/components/list/YListItem.mjs.map +1 -1
  124. package/lib/components/list/YListItem.scss +62 -62
  125. package/lib/components/list/index.mjs.map +1 -1
  126. package/lib/components/loading/YSpinnerRing.mjs +1 -1
  127. package/lib/components/loading/YSpinnerRing.mjs.map +1 -1
  128. package/lib/components/menu/YMenu.mjs +5 -4
  129. package/lib/components/menu/YMenu.mjs.map +1 -1
  130. package/lib/components/menu/YMenu.scss +25 -22
  131. package/lib/components/menu/index.mjs.map +1 -1
  132. package/lib/components/navigation/YNavigation.mjs +2 -1
  133. package/lib/components/navigation/YNavigation.mjs.map +1 -1
  134. package/lib/components/pagination/YPagination.mjs +2 -2
  135. package/lib/components/pagination/YPagination.mjs.map +1 -1
  136. package/lib/components/pagination/YPagination.scss +52 -51
  137. package/lib/components/pagination/index.mjs.map +1 -1
  138. package/lib/components/panel/YDividePanel.mjs.map +1 -1
  139. package/lib/components/panel/YDividePanel.scss +43 -43
  140. package/lib/components/panel/index.mjs.map +1 -1
  141. package/lib/components/plate/YPlate.mjs +2 -1
  142. package/lib/components/plate/YPlate.mjs.map +1 -1
  143. package/lib/components/plate/YPlate.scss +9 -9
  144. package/lib/components/progress-bar/YProgressBar.mjs +40 -52
  145. package/lib/components/progress-bar/YProgressBar.mjs.map +1 -1
  146. package/lib/components/progress-bar/YProgressBar.scss +10 -4
  147. package/lib/components/select/YSelect.mjs +6 -15
  148. package/lib/components/select/YSelect.mjs.map +1 -1
  149. package/lib/components/select/YSelect.scss +43 -43
  150. package/lib/components/select/index.mjs.map +1 -1
  151. package/lib/components/slider/YSlider.mjs +26 -0
  152. package/lib/components/slider/YSlider.mjs.map +1 -0
  153. package/lib/components/slider/index.mjs +2 -0
  154. package/lib/components/slider/index.mjs.map +1 -0
  155. package/lib/components/snackbar/YSnackbar.mjs +8 -9
  156. package/lib/components/snackbar/YSnackbar.mjs.map +1 -1
  157. package/lib/components/snackbar/YSnackbar.scss +38 -38
  158. package/lib/components/switch/YSwitch.mjs +2 -1
  159. package/lib/components/switch/YSwitch.mjs.map +1 -1
  160. package/lib/components/switch/YSwitch.scss +204 -198
  161. package/lib/components/tab/YTab.mjs +2 -3
  162. package/lib/components/tab/YTab.mjs.map +1 -1
  163. package/lib/components/tab/YTab.scss +6 -3
  164. package/lib/components/tab/YTabs.mjs +2 -2
  165. package/lib/components/tab/YTabs.mjs.map +1 -1
  166. package/lib/components/tab/YTabs.scss +8 -10
  167. package/lib/components/tab/index.mjs.map +1 -1
  168. package/lib/components/tab/types.mjs.map +1 -1
  169. package/lib/components/table/YDataTable.mjs +5 -5
  170. package/lib/components/table/YDataTable.mjs.map +1 -1
  171. package/lib/components/table/YDataTableBody.mjs +2 -2
  172. package/lib/components/table/YDataTableBody.mjs.map +1 -1
  173. package/lib/components/table/YDataTableCell.mjs +2 -1
  174. package/lib/components/table/YDataTableCell.mjs.map +1 -1
  175. package/lib/components/table/YDataTableControl.mjs +1 -1
  176. package/lib/components/table/YDataTableControl.mjs.map +1 -1
  177. package/lib/components/table/YDataTableControl.scss +7 -7
  178. package/lib/components/table/YDataTableHead.mjs +2 -3
  179. package/lib/components/table/YDataTableHead.mjs.map +1 -1
  180. package/lib/components/table/YDataTableLayer.mjs +2 -1
  181. package/lib/components/table/YDataTableLayer.mjs.map +1 -1
  182. package/lib/components/table/YDataTableRow.mjs +2 -1
  183. package/lib/components/table/YDataTableRow.mjs.map +1 -1
  184. package/lib/components/table/YDataTableServer.mjs +8 -7
  185. package/lib/components/table/YDataTableServer.mjs.map +1 -1
  186. package/lib/components/table/YTable.mjs +14 -19
  187. package/lib/components/table/YTable.mjs.map +1 -1
  188. package/lib/components/table/YTable.scss +157 -152
  189. package/lib/components/table/composibles/header.mjs +10 -3
  190. package/lib/components/table/composibles/header.mjs.map +1 -1
  191. package/lib/components/table/composibles/items.mjs.map +1 -1
  192. package/lib/components/table/composibles/measure.mjs +37 -0
  193. package/lib/components/table/composibles/measure.mjs.map +1 -0
  194. package/lib/components/table/composibles/options.mjs.map +1 -1
  195. package/lib/components/table/composibles/pagination.mjs.map +1 -1
  196. package/lib/components/table/composibles/selection.mjs +13 -5
  197. package/lib/components/table/composibles/selection.mjs.map +1 -1
  198. package/lib/components/table/composibles/sorted-items.mjs +1 -1
  199. package/lib/components/table/composibles/sorted-items.mjs.map +1 -1
  200. package/lib/components/table/composibles/sorting.mjs +1 -2
  201. package/lib/components/table/composibles/sorting.mjs.map +1 -1
  202. package/lib/components/table/index.mjs.map +1 -1
  203. package/lib/components/table/types/common.mjs.map +1 -1
  204. package/lib/components/table/types/header.mjs.map +1 -1
  205. package/lib/components/table/types/index.mjs.map +1 -1
  206. package/lib/components/table/types/row.mjs.map +1 -1
  207. package/lib/components/text-ellipsis/YTextEllipsis.mjs +4 -2
  208. package/lib/components/text-ellipsis/YTextEllipsis.mjs.map +1 -1
  209. package/lib/components/text-ellipsis/YTextEllipsis.scss +43 -43
  210. package/lib/components/text-ellipsis/index.mjs.map +1 -1
  211. package/lib/components/text-highlighter/YTextHighlighter.mjs +2 -1
  212. package/lib/components/text-highlighter/YTextHighlighter.mjs.map +1 -1
  213. package/lib/components/text-interpolation/YTi.mjs +2 -1
  214. package/lib/components/text-interpolation/YTi.mjs.map +1 -1
  215. package/lib/components/text-interpolation/index.mjs.map +1 -1
  216. package/lib/components/textarea/YTextarea.mjs +2 -2
  217. package/lib/components/textarea/YTextarea.mjs.map +1 -1
  218. package/lib/components/textarea/YTextarea.scss +25 -25
  219. package/lib/components/textarea/index.mjs.map +1 -1
  220. package/lib/components/toggle-button/YToggleButton.mjs.map +1 -1
  221. package/lib/components/toggle-button/index.mjs.map +1 -1
  222. package/lib/components/tooltip/YTooltip.mjs +3 -3
  223. package/lib/components/tooltip/YTooltip.mjs.map +1 -1
  224. package/lib/components/tooltip/YTooltip.scss +19 -19
  225. package/lib/components/tooltip/index.mjs.map +1 -1
  226. package/lib/components/transitions/expand-transition.mjs.map +1 -1
  227. package/lib/components/tree-view/YTreeView.mjs +1 -1
  228. package/lib/components/tree-view/YTreeView.mjs.map +1 -1
  229. package/lib/components/tree-view/YTreeView.scss +81 -79
  230. package/lib/components/tree-view/YTreeViewNode.mjs +2 -1
  231. package/lib/components/tree-view/YTreeViewNode.mjs.map +1 -1
  232. package/lib/components/tree-view/index.mjs.map +1 -1
  233. package/lib/components/tree-view/types.mjs.map +1 -1
  234. package/lib/components/tree-view/util.mjs.map +1 -1
  235. package/lib/composables/choice.mjs.map +1 -1
  236. package/lib/composables/communication.mjs.map +1 -1
  237. package/lib/composables/component.mjs.map +1 -1
  238. package/lib/composables/coordinate/arrangement.mjs.map +1 -1
  239. package/lib/composables/coordinate/levitation.mjs.map +1 -1
  240. package/lib/composables/coordinate/utils/point.mjs.map +1 -1
  241. package/lib/composables/date/factory.mjs.map +1 -1
  242. package/lib/composables/date/index.mjs +1 -1
  243. package/lib/composables/date/index.mjs.map +1 -1
  244. package/lib/composables/date/setting.mjs.map +1 -1
  245. package/lib/composables/date/types.mjs.map +1 -1
  246. package/lib/composables/defaults/index.mjs +3 -3
  247. package/lib/composables/defaults/index.mjs.map +1 -1
  248. package/lib/composables/defaults/types.mjs.map +1 -1
  249. package/lib/composables/dimension.mjs +1 -1
  250. package/lib/composables/dimension.mjs.map +1 -1
  251. package/lib/composables/focus.mjs +1 -1
  252. package/lib/composables/focus.mjs.map +1 -1
  253. package/lib/composables/form.mjs.map +1 -1
  254. package/lib/composables/i18n/index.mjs.map +1 -1
  255. package/lib/composables/icon.mjs +5 -4
  256. package/lib/composables/icon.mjs.map +1 -1
  257. package/lib/composables/layer-group.mjs +1 -1
  258. package/lib/composables/layer-group.mjs.map +1 -1
  259. package/lib/composables/layout.mjs +1 -1
  260. package/lib/composables/layout.mjs.map +1 -1
  261. package/lib/composables/list-items.mjs.map +1 -1
  262. package/lib/composables/progress.mjs +7 -2
  263. package/lib/composables/progress.mjs.map +1 -1
  264. package/lib/composables/ref.mjs +1 -1
  265. package/lib/composables/ref.mjs.map +1 -1
  266. package/lib/composables/resize-observer.mjs +1 -3
  267. package/lib/composables/resize-observer.mjs.map +1 -1
  268. package/lib/composables/scope.mjs +1 -2
  269. package/lib/composables/scope.mjs.map +1 -1
  270. package/lib/composables/theme/factory.mjs.map +1 -1
  271. package/lib/composables/theme/index.mjs +1 -1
  272. package/lib/composables/theme/index.mjs.map +1 -1
  273. package/lib/composables/theme/setting.mjs.map +1 -1
  274. package/lib/composables/theme/types.mjs.map +1 -1
  275. package/lib/composables/timing.mjs +1 -1
  276. package/lib/composables/timing.mjs.map +1 -1
  277. package/lib/composables/transition.mjs +1 -1
  278. package/lib/composables/transition.mjs.map +1 -1
  279. package/lib/composables/validation.mjs +1 -1
  280. package/lib/composables/validation.mjs.map +1 -1
  281. package/lib/composables/vue-router.mjs +1 -1
  282. package/lib/composables/vue-router.mjs.map +1 -1
  283. package/lib/index.mjs +4 -4
  284. package/lib/index.mjs.map +1 -1
  285. package/lib/util/anchor.mjs.map +1 -1
  286. package/lib/util/array.mjs.map +1 -1
  287. package/lib/util/color/const.mjs +1 -1
  288. package/lib/util/color/const.mjs.map +1 -1
  289. package/lib/util/component/component.mjs +2 -1
  290. package/lib/util/component/component.mjs.map +1 -1
  291. package/lib/util/component/index.mjs +2 -1
  292. package/lib/util/component/index.mjs.map +1 -1
  293. package/lib/util/component/inject-self.mjs.map +1 -1
  294. package/lib/util/component/props.mjs +1 -1
  295. package/lib/util/component/props.mjs.map +1 -1
  296. package/lib/util/date/index.mjs.map +1 -1
  297. package/lib/util/dom.mjs.map +1 -1
  298. package/lib/util/reactivity.mjs +3 -3
  299. package/lib/util/reactivity.mjs.map +1 -1
  300. package/lib/util/rect.mjs.map +1 -1
  301. package/lib/util/ui.mjs.map +1 -1
  302. package/lib/util/validation.mjs.map +1 -1
  303. package/package.json +1 -1
  304. package/types/abstract/items.d.ts +4 -4
  305. package/types/components/app/YApp.d.ts +1 -1
  306. package/types/components/badge/YBadge.d.ts +5 -39
  307. package/types/components/bench/YBench.d.ts +1 -1
  308. package/types/components/button/YButton.d.ts +10 -69
  309. package/types/components/card/YCard.d.ts +1 -6
  310. package/types/components/card/YCardBody.d.ts +1 -1
  311. package/types/components/card/YCardFooter.d.ts +1 -1
  312. package/types/components/card/YCardHeader.d.ts +1 -1
  313. package/types/components/checkbox/YCheckbox.d.ts +1 -26
  314. package/types/components/checkbox/YInputCheckbox.d.ts +2 -26
  315. package/types/components/checkbox/index.d.ts +1 -0
  316. package/types/components/chip/YChip.d.ts +29 -25
  317. package/types/components/date-picker/YDateCalendar.d.ts +3 -31
  318. package/types/components/date-picker/YDatePicker.d.ts +13 -42
  319. package/types/components/date-picker/YDatePickerControl.d.ts +12 -44
  320. package/types/components/date-picker/YMonthPicker.d.ts +1 -5
  321. package/types/components/date-picker/YYearPicker.d.ts +1 -7
  322. package/types/components/dialog/YDialog.d.ts +72 -315
  323. package/types/components/divider/YDivider.d.ts +1 -3
  324. package/types/components/dropdown/YDropdown.d.ts +70 -243
  325. package/types/components/field-input/YFieldInput.d.ts +14 -120
  326. package/types/components/form/YForm.d.ts +2 -24
  327. package/types/components/hover/YHover.d.ts +4 -26
  328. package/types/components/icon/YIcon.d.ts +3 -18
  329. package/types/components/icons/YIconCheckbox.d.ts +1 -9
  330. package/types/components/icons/YIconClear.d.ts +1 -1
  331. package/types/components/icons/YIconDropdown.d.ts +1 -1
  332. package/types/components/icons/YIconExpand.d.ts +1 -1
  333. package/types/components/icons/YIconPageControl.d.ts +1 -8
  334. package/types/components/icons/YIconSort.d.ts +1 -10
  335. package/types/components/icons/index.d.ts +8 -46
  336. package/types/components/img/YImg.d.ts +7 -47
  337. package/types/components/input/YInput.d.ts +11 -99
  338. package/types/components/ip-field/YIpv4Field.d.ts +2 -70
  339. package/types/components/layer/YLayer.d.ts +35 -152
  340. package/types/components/layer/content.d.ts +1 -1
  341. package/types/components/layer/scroll-strategies.d.ts +1 -1
  342. package/types/components/list/YList.d.ts +1 -6
  343. package/types/components/list/YListItem.d.ts +3 -21
  344. package/types/components/loading/YSpinnerRing.d.ts +1 -1
  345. package/types/components/menu/YMenu.d.ts +17 -282
  346. package/types/components/navigation/YNavigation.d.ts +1 -1
  347. package/types/components/pagination/YPagination.d.ts +7 -47
  348. package/types/components/plate/YPlate.d.ts +1 -3
  349. package/types/components/progress-bar/YProgressBar.d.ts +3 -43
  350. package/types/components/select/YSelect.d.ts +263 -899
  351. package/types/components/slider/YSlider.d.ts +16 -0
  352. package/types/components/slider/index.d.ts +0 -0
  353. package/types/components/snackbar/YSnackbar.d.ts +43 -188
  354. package/types/components/switch/YSwitch.d.ts +1 -43
  355. package/types/components/tab/YTab.d.ts +14 -80
  356. package/types/components/tab/YTabs.d.ts +6 -39
  357. package/types/components/table/YDataTable.d.ts +28 -177
  358. package/types/components/table/YDataTableBody.d.ts +3 -26
  359. package/types/components/table/YDataTableCell.d.ts +1 -30
  360. package/types/components/table/YDataTableControl.d.ts +3 -18
  361. package/types/components/table/YDataTableHead.d.ts +3 -21
  362. package/types/components/table/YDataTableLayer.d.ts +1 -3
  363. package/types/components/table/YDataTableRow.d.ts +1 -9
  364. package/types/components/table/YDataTableServer.d.ts +31 -183
  365. package/types/components/table/YTable.d.ts +5 -24
  366. package/types/components/table/composibles/header.d.ts +1 -1
  367. package/types/components/table/composibles/items.d.ts +3 -3
  368. package/types/components/table/composibles/measure.d.ts +8 -0
  369. package/types/components/table/composibles/pagination.d.ts +3 -3
  370. package/types/components/table/composibles/selection.d.ts +13 -13
  371. package/types/components/table/composibles/sorting.d.ts +1 -1
  372. package/types/components/table/types/index.d.ts +1 -1
  373. package/types/components/text-ellipsis/YTextEllipsis.d.ts +1 -8
  374. package/types/components/text-highlighter/YTextHighlighter.d.ts +2 -17
  375. package/types/components/text-interpolation/YTi.d.ts +1 -10
  376. package/types/components/textarea/YTextarea.d.ts +15 -111
  377. package/types/components/tooltip/YTooltip.d.ts +27 -261
  378. package/types/components/tree-view/YTreeView.d.ts +2 -2
  379. package/types/components/tree-view/YTreeViewNode.d.ts +10 -67
  380. package/types/composables/choice.d.ts +1 -1
  381. package/types/composables/coordinate/index.d.ts +6 -6
  382. package/types/composables/coordinate/utils/point.d.ts +1 -1
  383. package/types/composables/form.d.ts +2 -2
  384. package/types/composables/icon.d.ts +5 -22
  385. package/types/composables/layer-group.d.ts +1 -1
  386. package/types/composables/list-items.d.ts +10 -10
  387. package/types/composables/progress.d.ts +1 -0
  388. package/types/composables/timing.d.ts +1 -1
  389. package/types/composables/transition.d.ts +1 -1
  390. package/types/composables/validation.d.ts +3 -3
  391. package/types/composables/vue-router.d.ts +1 -1
  392. package/types/index.d.ts +1 -1
  393. package/types/util/Rect.d.ts +1 -1
  394. package/types/util/component/component.d.ts +2 -1
  395. package/types/util/component/index.d.ts +4 -4
  396. package/types/util/component/inject-self.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"YTable.mjs","names":["defineComponent","provide","useRender","useResizeObserver","toStyleSizeValue","propsFactory","pressYTableProps","tag","type","String","default","fixedHead","Boolean","height","Number","flexHeight","onScroll","Function","YTable","name","props","emits","setup","_ref","slots","emit","resizeObservedRef","contentRect","wrapperRef","wrapperRect","tableRef","tableRect","containerRect","e","ElTag","containerHeight","value","_createVNode","width","top","leading","trailing","container","bottom"],"sources":["../../../src/components/table/YTable.tsx"],"sourcesContent":["import { PropType, defineComponent, provide } from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { useResizeObserver } from '../../composables/resize-observer';\r\nimport { toStyleSizeValue } from '../../util/ui';\r\nimport { propsFactory } from '../../util/component';\r\n\r\nimport './YTable.scss';\r\n\r\nexport const pressYTableProps = propsFactory(\r\n {\r\n tag: {\r\n type: String as PropType<string>,\r\n default: 'div',\r\n },\r\n fixedHead: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n height: {\r\n type: [Number, String] as PropType<number | string>,\r\n },\r\n flexHeight: {\r\n type: Boolean as PropType<boolean>,\r\n },\r\n onScroll: Function as PropType<(e: Event) => void>,\r\n },\r\n 'YTable',\r\n);\r\n\r\nexport const YTable = defineComponent({\r\n name: 'YTable',\r\n props: {\r\n ...pressYTableProps(),\r\n },\r\n emits: ['scroll'],\r\n setup(props, { slots, emit }) {\r\n const { resizeObservedRef, contentRect } = useResizeObserver();\r\n const { resizeObservedRef: wrapperRef, contentRect: wrapperRect } =\r\n useResizeObserver();\r\n const { resizeObservedRef: tableRef, contentRect: tableRect } =\r\n useResizeObserver();\r\n provide('YTable', { containerRect: contentRect });\r\n\r\n function onScroll(e: Event) {\r\n emit('scroll', e);\r\n }\r\n\r\n useRender(() => {\r\n const ElTag = (props.tag as keyof HTMLElementTagNameMap) ?? 'div';\r\n const containerHeight = props.flexHeight\r\n ? contentRect.value?.height ?? props.height\r\n : props.height;\r\n return (\r\n <ElTag\r\n class={[\r\n 'y-table',\r\n {\r\n 'y-table--fixed-head': props.fixedHead,\r\n 'y-table--fixed-height': props.flexHeight || props.height,\r\n 'y-table--flex-height': props.flexHeight,\r\n },\r\n ]}\r\n style={{\r\n '--y-table-container-width': toStyleSizeValue(\r\n contentRect.value?.width,\r\n ),\r\n '--y-table-wrapper-width': toStyleSizeValue(\r\n wrapperRect.value?.width,\r\n ),\r\n }}\r\n >\r\n {slots.top?.()}\r\n {slots.default ? (\r\n <div ref={resizeObservedRef} class={['y-table__container']} >\r\n {slots.leading?.()}\r\n <div\r\n ref={wrapperRef}\r\n class={['y-table__wrapper']}\r\n style={{\r\n height: toStyleSizeValue(containerHeight),\r\n }}\r\n onScroll={onScroll}\r\n >\r\n <table ref={tableRef}>{slots.default()}</table>\r\n </div>\r\n {slots.trailing?.()}\r\n </div>\r\n ) : (\r\n slots.container?.(resizeObservedRef, contentRect)\r\n )}\r\n {slots.bottom?.()}\r\n </ElTag>\r\n );\r\n });\r\n },\r\n});\r\n\r\nexport type YTable = InstanceType<typeof YTable>;\r\n"],"mappings":";AAAA,SAAmBA,eAAe,EAAEC,OAAO,QAAQ,KAAK;AAAC,SAEhDC,SAAS;AAAA,SACTC,iBAAiB;AAAA,SACjBC,gBAAgB;AAAA,SAChBC,YAAY;AAErB;AAEA,OAAO,MAAMC,gBAAgB,GAAGD,YAAY,CAC1C;EACEE,GAAG,EAAE;IACHC,IAAI,EAAEC,MAA0B;IAChCC,OAAO,EAAE;EACX,CAAC;EACDC,SAAS,EAAE;IACTH,IAAI,EAAEI;EACR,CAAC;EACDC,MAAM,EAAE;IACNL,IAAI,EAAE,CAACM,MAAM,EAAEL,MAAM;EACvB,CAAC;EACDM,UAAU,EAAE;IACVP,IAAI,EAAEI;EACR,CAAC;EACDI,QAAQ,EAAEC;AACZ,CAAC,EACD,QACF,CAAC;AAED,OAAO,MAAMC,MAAM,GAAGlB,eAAe,CAAC;EACpCmB,IAAI,EAAE,QAAQ;EACdC,KAAK,EAAE;IACL,GAAGd,gBAAgB,CAAC;EACtB,CAAC;EACDe,KAAK,EAAE,CAAC,QAAQ,CAAC;EACjBC,KAAKA,CAACF,KAAK,EAAAG,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC1B,MAAM;MAAEG,iBAAiB;MAAEC;IAAY,CAAC,GAAGxB,iBAAiB,CAAC,CAAC;IAC9D,MAAM;MAAEuB,iBAAiB,EAAEE,UAAU;MAAED,WAAW,EAAEE;IAAY,CAAC,GAC/D1B,iBAAiB,CAAC,CAAC;IACrB,MAAM;MAAEuB,iBAAiB,EAAEI,QAAQ;MAAEH,WAAW,EAAEI;IAAU,CAAC,GAC3D5B,iBAAiB,CAAC,CAAC;IACrBF,OAAO,CAAC,QAAQ,EAAE;MAAE+B,aAAa,EAAEL;IAAY,CAAC,CAAC;IAEjD,SAASX,QAAQA,CAACiB,CAAQ,EAAE;MAC1BR,IAAI,CAAC,QAAQ,EAAEQ,CAAC,CAAC;IACnB;IAEA/B,SAAS,CAAC,MAAM;MACd,MAAMgC,KAAK,GAAId,KAAK,CAACb,GAAG,IAAoC,KAAK;MACjE,MAAM4B,eAAe,GAAGf,KAAK,CAACL,UAAU,GACpCY,WAAW,CAACS,KAAK,EAAEvB,MAAM,IAAIO,KAAK,CAACP,MAAM,GACzCO,KAAK,CAACP,MAAM;MAChB,OAAAwB,YAAA,CAAAH,KAAA;QAAA,SAEW,CACL,SAAS,EACT;UACE,qBAAqB,EAAEd,KAAK,CAACT,SAAS;UACtC,uBAAuB,EAAES,KAAK,CAACL,UAAU,IAAIK,KAAK,CAACP,MAAM;UACzD,sBAAsB,EAAEO,KAAK,CAACL;QAChC,CAAC,CACF;QAAA,SACM;UACL,2BAA2B,EAAEX,gBAAgB,CAC3CuB,WAAW,CAACS,KAAK,EAAEE,KACrB,CAAC;UACD,yBAAyB,EAAElC,gBAAgB,CACzCyB,WAAW,CAACO,KAAK,EAAEE,KACrB;QACF;MAAC;QAAA5B,OAAA,EAAAA,CAAA,MAEAc,KAAK,CAACe,GAAG,GAAG,CAAC,EACbf,KAAK,CAACd,OAAO,GAAA2B,YAAA;UAAA,OACFX,iBAAiB;UAAA,SAAS,CAAC,oBAAoB;QAAC,IACvDF,KAAK,CAACgB,OAAO,GAAG,CAAC,EAAAH,YAAA;UAAA,OAEXT,UAAU;UAAA,SACR,CAAC,kBAAkB,CAAC;UAAA,SACpB;YACLf,MAAM,EAAET,gBAAgB,CAAC+B,eAAe;UAC1C,CAAC;UAAA,YACSnB;QAAQ,IAAAqB,YAAA;UAAA,OAENP;QAAQ,IAAGN,KAAK,CAACd,OAAO,CAAC,CAAC,MAEvCc,KAAK,CAACiB,QAAQ,GAAG,CAAC,KAGrBjB,KAAK,CAACkB,SAAS,GAAGhB,iBAAiB,EAAEC,WAAW,CACjD,EACAH,KAAK,CAACmB,MAAM,GAAG,CAAC;MAAA;IAGvB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YTable.mjs","names":["provide","useRectMeasure","useRender","defineComponent","propsFactory","toStyleSizeValue","pressYTableProps","tag","type","String","default","fixedHead","Boolean","height","Number","flexHeight","onScroll","Function","YTable","name","props","emits","setup","_ref","slots","emit","containerRef","wrapperRef","tableRef","containerRect","wrapperRect","e","ElTag","containerHeight","value","_createVNode","width","top","leading","trailing","container","bottom"],"sources":["../../../src/components/table/YTable.tsx"],"sourcesContent":["import { type PropType, provide } from 'vue';\n\nimport { useRectMeasure } from '@/components/table/composibles/measure';\nimport { useRender } from '@/composables/component';\nimport { defineComponent, propsFactory } from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport './YTable.scss';\n\nexport const pressYTableProps = propsFactory(\n {\n tag: {\n type: String as PropType<string>,\n default: 'div',\n },\n fixedHead: {\n type: Boolean as PropType<boolean>,\n },\n height: {\n type: [Number, String] as PropType<number | string>,\n },\n flexHeight: {\n type: Boolean as PropType<boolean>,\n },\n onScroll: Function as PropType<(e: Event) => void>,\n },\n 'YTable',\n);\n\nexport const YTable = defineComponent({\n name: 'YTable',\n props: {\n ...pressYTableProps(),\n },\n emits: ['scroll'],\n setup(props, { slots, emit }) {\n const { containerRef, wrapperRef, tableRef, containerRect, wrapperRect } =\n useRectMeasure();\n\n provide('YTable', { containerRect });\n\n function onScroll(e: Event) {\n emit('scroll', e);\n }\n\n useRender(() => {\n const ElTag = (props.tag as keyof HTMLElementTagNameMap) ?? 'div';\n const containerHeight = props.flexHeight\n ? containerRect.value?.height ?? props.height\n : props.height;\n return (\n <ElTag\n class={[\n 'y-table',\n {\n 'y-table--fixed-head': props.fixedHead,\n 'y-table--fixed-height': props.flexHeight || props.height,\n 'y-table--flex-height': props.flexHeight,\n },\n ]}\n style={{\n '--y-table-container-width': toStyleSizeValue(\n containerRect.value?.width,\n ),\n '--y-table-wrapper-width': toStyleSizeValue(\n wrapperRect.value?.width,\n ),\n }}\n >\n {slots.top?.()}\n {slots.default ? (\n <div ref={containerRef} class={['y-table__container']}>\n {slots.leading?.()}\n <div\n ref={wrapperRef}\n class={['y-table__wrapper']}\n style={{\n height: toStyleSizeValue(containerHeight),\n }}\n onScroll={onScroll}\n >\n <table ref={tableRef}>{slots.default()}</table>\n </div>\n {slots.trailing?.()}\n </div>\n ) : (\n slots.container?.(containerRef, containerRect)\n )}\n {slots.bottom?.()}\n </ElTag>\n );\n });\n },\n});\n\nexport type YTable = InstanceType<typeof YTable>;\n"],"mappings":";AAAA,SAAwBA,OAAO,QAAQ,KAAK;AAAC,SAEpCC,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,eAAe,EAAEC,YAAY;AAAA,SAC7BC,gBAAgB;AAEzB;AAEA,OAAO,MAAMC,gBAAgB,GAAGF,YAAY,CAC1C;EACEG,GAAG,EAAE;IACHC,IAAI,EAAEC,MAA0B;IAChCC,OAAO,EAAE;EACX,CAAC;EACDC,SAAS,EAAE;IACTH,IAAI,EAAEI;EACR,CAAC;EACDC,MAAM,EAAE;IACNL,IAAI,EAAE,CAACM,MAAM,EAAEL,MAAM;EACvB,CAAC;EACDM,UAAU,EAAE;IACVP,IAAI,EAAEI;EACR,CAAC;EACDI,QAAQ,EAAEC;AACZ,CAAC,EACD,QACF,CAAC;AAED,OAAO,MAAMC,MAAM,GAAGf,eAAe,CAAC;EACpCgB,IAAI,EAAE,QAAQ;EACdC,KAAK,EAAE;IACL,GAAGd,gBAAgB,CAAC;EACtB,CAAC;EACDe,KAAK,EAAE,CAAC,QAAQ,CAAC;EACjBC,KAAKA,CAACF,KAAK,EAAAG,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC1B,MAAM;MAAEG,YAAY;MAAEC,UAAU;MAAEC,QAAQ;MAAEC,aAAa;MAAEC;IAAY,CAAC,GACtE7B,cAAc,CAAC,CAAC;IAElBD,OAAO,CAAC,QAAQ,EAAE;MAAE6B;IAAc,CAAC,CAAC;IAEpC,SAASb,QAAQA,CAACe,CAAQ,EAAE;MAC1BN,IAAI,CAAC,QAAQ,EAAEM,CAAC,CAAC;IACnB;IAEA7B,SAAS,CAAC,MAAM;MACd,MAAM8B,KAAK,GAAIZ,KAAK,CAACb,GAAG,IAAoC,KAAK;MACjE,MAAM0B,eAAe,GAAGb,KAAK,CAACL,UAAU,GACpCc,aAAa,CAACK,KAAK,EAAErB,MAAM,IAAIO,KAAK,CAACP,MAAM,GAC3CO,KAAK,CAACP,MAAM;MAChB,OAAAsB,YAAA,CAAAH,KAAA;QAAA,SAEW,CACL,SAAS,EACT;UACE,qBAAqB,EAAEZ,KAAK,CAACT,SAAS;UACtC,uBAAuB,EAAES,KAAK,CAACL,UAAU,IAAIK,KAAK,CAACP,MAAM;UACzD,sBAAsB,EAAEO,KAAK,CAACL;QAChC,CAAC,CACF;QAAA,SACM;UACL,2BAA2B,EAAEV,gBAAgB,CAC3CwB,aAAa,CAACK,KAAK,EAAEE,KACvB,CAAC;UACD,yBAAyB,EAAE/B,gBAAgB,CACzCyB,WAAW,CAACI,KAAK,EAAEE,KACrB;QACF;MAAC;QAAA1B,OAAA,EAAAA,CAAA,MAEAc,KAAK,CAACa,GAAG,GAAG,CAAC,EACbb,KAAK,CAACd,OAAO,GAAAyB,YAAA;UAAA,OACFT,YAAY;UAAA,SAAS,CAAC,oBAAoB;QAAC,IAClDF,KAAK,CAACc,OAAO,GAAG,CAAC,EAAAH,YAAA;UAAA,OAEXR,UAAU;UAAA,SACR,CAAC,kBAAkB,CAAC;UAAA,SACpB;YACLd,MAAM,EAAER,gBAAgB,CAAC4B,eAAe;UAC1C,CAAC;UAAA,YACSjB;QAAQ,IAAAmB,YAAA;UAAA,OAENP;QAAQ,IAAGJ,KAAK,CAACd,OAAO,CAAC,CAAC,MAEvCc,KAAK,CAACe,QAAQ,GAAG,CAAC,KAGrBf,KAAK,CAACgB,SAAS,GAAGd,YAAY,EAAEG,aAAa,CAC9C,EACAL,KAAK,CAACiB,MAAM,GAAG,CAAC;MAAA;IAGvB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
@@ -1,152 +1,157 @@
1
- $table-cell-padding: 0 16px !default;
2
- $table-head-background: var(--y-theme-surface-variant, #dfe3eb) !default;
3
- $table-cell-border-bottom-color: rgba(var(--y-theme-outline-rgb), var(--y-theme-outline-opacity)) !default;
4
-
5
- .y-table {
6
- --y-table-border-bottom-color: #{$table-cell-border-bottom-color};
7
-
8
- display: flex;
9
- flex-direction: column;
10
-
11
- &--fixed-height &__container > &__wrapper {
12
- overflow-y: auto;
13
- }
14
-
15
- &--flex-height {
16
- //flex-grow: 1;
17
- min-height: 0;
18
- }
19
-
20
- &--flex-height > &__container {
21
- flex: 1 1;
22
- min-height: 0;
23
- position: relative;
24
- }
25
-
26
- &__wrapper > table {
27
- width: 100%;
28
- border-spacing: 0;
29
- }
30
-
31
- &--fixed-head &__container > &__wrapper > table > thead > tr > th {
32
- position: sticky;
33
- top: 0;
34
- }
35
-
36
- &--fixed-head.y-table &__container &__wrapper > table > thead {
37
- background: $table-head-background;
38
-
39
- > tr > th {
40
- z-index: 1;
41
- background: $table-head-background;
42
- }
43
- }
44
-
45
- .y-table__wrapper {
46
- > table {
47
- font-size: 0.875rem;
48
-
49
- > thead,
50
- > tbody,
51
- > tfoot {
52
- > tr {
53
- > th, > td {
54
- padding: $table-cell-padding;
55
- }
56
- }
57
- }
58
-
59
- > thead > tr {
60
- > th {
61
- height: 56px;
62
- text-align: left;
63
- border-bottom: thin solid var(--y-table-border-bottom-color);
64
- user-select: none;
65
- }
66
- }
67
-
68
- > tbody > tr {
69
- &:not(:last-child) {
70
- > td {
71
- border-bottom: thin solid var(--y-table-border-bottom-color);
72
- }
73
- }
74
- > td {
75
- height: 54px;
76
- }
77
- }
78
- }
79
- }
80
- }
81
-
82
- .y-data-table-cell {
83
- &--align-end {
84
- text-align: end;
85
-
86
- .y-data-table-header__content {
87
- justify-content: flex-end;
88
- }
89
- }
90
- }
91
-
92
- .y-data-table-header {
93
- &__content {
94
- display: flex;
95
- align-items: center;
96
- }
97
-
98
- &__sorting-icon {
99
- display: inline-flex;
100
- width: 1em;
101
- height: 1em;
102
- margin-left: 4px;
103
- cursor: pointer;
104
-
105
- svg {
106
- width: 1em;
107
- height: 1em;
108
- }
109
-
110
- &--disabled {
111
- opacity: 0.08;
112
- cursor: default;
113
- }
114
- }
115
- }
116
-
117
- .y-data-table-header--select, .y-data-table-data--select {
118
- > .y-icon-checkbox {
119
- &:not(&--disabled) {
120
- cursor: pointer;
121
- }
122
- }
123
- }
124
-
125
- .y-data-table-layer {
126
- position: absolute;
127
- top: 0;
128
- right: 0;
129
- bottom: 0;
130
- left: 0;
131
- pointer-events: none;
132
- overflow-y: clip;
133
- overflow-x: visible;
134
- z-index: 50;
135
- margin-right: calc(100% - var(--y-table-wrapper-width, 100%));
136
-
137
- &__head {
138
- position: absolute;
139
- top: 0;
140
- right: 0;
141
- left: 0;
142
- height: var(--y-table-head-height, 48px);
143
- }
144
-
145
- &__body {
146
- position: absolute;
147
- top: var(--y-table-head-height, 48px);
148
- right: 0;
149
- left: 0;
150
- bottom: 0;
151
- }
152
- }
1
+ $table-cell-padding: 0 16px !default;
2
+ $table-head-background: var(--y-theme-surface-variant, #dfe3eb) !default;
3
+ $table-cell-border-bottom-color: rgba(
4
+ var(--y-theme-outline-rgb),
5
+ var(--y-theme-outline-opacity)
6
+ ) !default;
7
+
8
+ .y-table {
9
+ --y-table-border-bottom-color: #{$table-cell-border-bottom-color};
10
+
11
+ display: flex;
12
+ flex-direction: column;
13
+
14
+ &--fixed-height &__container > &__wrapper {
15
+ overflow-y: auto;
16
+ }
17
+
18
+ &--flex-height {
19
+ //flex-grow: 1;
20
+ min-height: 0;
21
+ }
22
+
23
+ &--flex-height > &__container {
24
+ flex: 1 1;
25
+ min-height: 0;
26
+ position: relative;
27
+ }
28
+
29
+ &__wrapper > table {
30
+ width: 100%;
31
+ border-spacing: 0;
32
+ }
33
+
34
+ &--fixed-head &__container > &__wrapper > table > thead > tr > th {
35
+ position: sticky;
36
+ top: 0;
37
+ }
38
+
39
+ &--fixed-head.y-table &__container &__wrapper > table > thead {
40
+ background: $table-head-background;
41
+
42
+ > tr > th {
43
+ z-index: 1;
44
+ background: $table-head-background;
45
+ }
46
+ }
47
+
48
+ .y-table__wrapper {
49
+ > table {
50
+ font-size: 0.875rem;
51
+
52
+ > thead,
53
+ > tbody,
54
+ > tfoot {
55
+ > tr {
56
+ > th,
57
+ > td {
58
+ padding: $table-cell-padding;
59
+ }
60
+ }
61
+ }
62
+
63
+ > thead > tr {
64
+ > th {
65
+ height: 56px;
66
+ text-align: left;
67
+ border-bottom: thin solid var(--y-table-border-bottom-color);
68
+ user-select: none;
69
+ }
70
+ }
71
+
72
+ > tbody > tr {
73
+ &:not(:last-child) {
74
+ > td {
75
+ border-bottom: thin solid var(--y-table-border-bottom-color);
76
+ }
77
+ }
78
+ > td {
79
+ height: 54px;
80
+ }
81
+ }
82
+ }
83
+ }
84
+ }
85
+
86
+ .y-data-table-cell {
87
+ &--align-end {
88
+ text-align: end;
89
+
90
+ .y-data-table-header__content {
91
+ justify-content: flex-end;
92
+ }
93
+ }
94
+ }
95
+
96
+ .y-data-table-header {
97
+ &__content {
98
+ display: flex;
99
+ align-items: center;
100
+ }
101
+
102
+ &__sorting-icon {
103
+ display: inline-flex;
104
+ width: 1em;
105
+ height: 1em;
106
+ margin-left: 4px;
107
+ cursor: pointer;
108
+
109
+ svg {
110
+ width: 1em;
111
+ height: 1em;
112
+ }
113
+
114
+ &--disabled {
115
+ opacity: 0.08;
116
+ cursor: default;
117
+ }
118
+ }
119
+ }
120
+
121
+ .y-data-table-header--select,
122
+ .y-data-table-data--select {
123
+ > .y-icon-checkbox {
124
+ &:not(&--disabled) {
125
+ cursor: pointer;
126
+ }
127
+ }
128
+ }
129
+
130
+ .y-data-table-layer {
131
+ position: absolute;
132
+ top: 0;
133
+ right: 0;
134
+ bottom: 0;
135
+ left: 0;
136
+ pointer-events: none;
137
+ overflow-y: clip;
138
+ overflow-x: visible;
139
+ z-index: 50;
140
+ margin-right: calc(100% - var(--y-table-wrapper-width, 100%));
141
+
142
+ &__head {
143
+ position: absolute;
144
+ top: 0;
145
+ right: 0;
146
+ left: 0;
147
+ height: var(--y-table-head-height, 48px);
148
+ }
149
+
150
+ &__body {
151
+ position: absolute;
152
+ top: var(--y-table-head-height, 48px);
153
+ right: 0;
154
+ left: 0;
155
+ bottom: 0;
156
+ }
157
+ }
@@ -34,11 +34,18 @@ export function createHeader(props, options) {
34
34
  return column.key === 'data-table-select';
35
35
  });
36
36
  if (foundIndex < 0) {
37
+ const fixed = flat.some(_ref2 => {
38
+ let {
39
+ column
40
+ } = _ref2;
41
+ return !!column?.fixed;
42
+ });
37
43
  flat.unshift({
38
44
  column: {
39
45
  ...defaultActionHeader,
40
46
  key: 'data-table-select',
41
- rowspan: rowCount
47
+ rowspan: rowCount,
48
+ fixed
42
49
  },
43
50
  rowIndex: 0
44
51
  });
@@ -54,11 +61,11 @@ export function createHeader(props, options) {
54
61
  }
55
62
  const fixedRows = getRangeArr(rowCount).map(() => []);
56
63
  const fixedOffsets = getRangeArr(rowCount).fill(0);
57
- flat.forEach(_ref2 => {
64
+ flat.forEach(_ref3 => {
58
65
  let {
59
66
  column,
60
67
  rowIndex
61
- } = _ref2;
68
+ } = _ref3;
62
69
  const {
63
70
  key
64
71
  } = column;
@@ -1 +1 @@
1
- {"version":3,"file":"header.mjs","names":["inject","provide","ref","watchEffect","getRangeArr","propsFactory","pressDataTableHeader","headers","type","Array","default","Y_DATA_TABLE_HEADER_KEY","Symbol","for","createHeader","props","options","columns","rows","length","flat","flatMap","row","index","map","column","rowIndex","rowCount","defaultHeader","text","sortable","defaultActionHeader","width","enableSelect","value","foundIndex","findIndex","_ref","key","unshift","rowspan","splice","fixedRows","fixedOffsets","fill","forEach","_ref2","i","push","fixedOffset","Number","fixed","lastFixed","seen","Set","filtered","has","add","at","data","useHeader","Error","description"],"sources":["../../../../src/components/table/composibles/header.ts"],"sourcesContent":["import {\r\n type DeepReadonly,\r\n type InjectionKey,\r\n type PropType,\r\n type Ref,\r\n inject,\r\n provide,\r\n ref,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { getRangeArr } from '../../../util/common';\r\nimport { propsFactory } from '../../../util/component';\r\nimport { type DataTableHeader, type InternalDataTableHeader } from '../types';\r\n\r\nexport const pressDataTableHeader = propsFactory(\r\n {\r\n headers: {\r\n type: Array as PropType<DeepReadonly<DataTableHeader[]>>,\r\n default: () => [],\r\n },\r\n },\r\n 'YDataTable--header',\r\n);\r\n\r\nexport const Y_DATA_TABLE_HEADER_KEY: InjectionKey<{\r\n headers: Ref<InternalDataTableHeader[][]>;\r\n columns: Ref<InternalDataTableHeader[]>;\r\n}> = Symbol.for('yuyeon.data-table.header');\r\n\r\ntype HeaderProps = {\r\n headers: DeepReadonly<DataTableHeader[]> | undefined;\r\n};\r\n\r\nexport function createHeader(\r\n props: HeaderProps,\r\n options?: {\r\n enableSelect?: Ref<boolean>;\r\n },\r\n) {\r\n const headers = ref<InternalDataTableHeader[][]>([]);\r\n const columns = ref<InternalDataTableHeader[]>([]);\r\n\r\n watchEffect(() => {\r\n const rows = props.headers?.length\r\n ? [props.headers as DataTableHeader[]]\r\n : [];\r\n const flat = rows.flatMap((row, index) =>\r\n row.map((column) => ({ column, rowIndex: index })),\r\n );\r\n const rowCount = rows.length;\r\n const defaultHeader = { text: '', sortable: false };\r\n const defaultActionHeader = { ...defaultHeader, width: 48 };\r\n\r\n if (options?.enableSelect?.value) {\r\n const foundIndex = flat.findIndex(\r\n ({ column }) => column.key === 'data-table-select',\r\n );\r\n if (foundIndex < 0) {\r\n flat.unshift({\r\n column: {\r\n ...defaultActionHeader,\r\n key: 'data-table-select',\r\n rowspan: rowCount,\r\n },\r\n rowIndex: 0,\r\n });\r\n } else {\r\n flat.splice(foundIndex, 1, {\r\n column: {\r\n ...defaultActionHeader,\r\n ...flat[foundIndex].column,\r\n },\r\n rowIndex: flat[foundIndex].rowIndex,\r\n });\r\n }\r\n }\r\n\r\n const fixedRows: InternalDataTableHeader[][] = getRangeArr(rowCount).map(\r\n () => [],\r\n );\r\n const fixedOffsets = getRangeArr(rowCount).fill(0);\r\n\r\n flat.forEach(({ column, rowIndex }) => {\r\n const { key } = column;\r\n for (\r\n let i = rowIndex;\r\n i <= rowIndex + (column.rowspan ?? 1) - 1;\r\n i += 1\r\n ) {\r\n fixedRows[i].push({\r\n ...column,\r\n key,\r\n fixedOffset: fixedOffsets[i],\r\n sortable: column.sortable ?? !!key,\r\n });\r\n fixedOffsets[i] += Number(column.width ?? 0);\r\n }\r\n });\r\n\r\n fixedRows.forEach((row) => {\r\n for (let i = row.length; (i -= 1); i >= 0) {\r\n if (row[i].fixed) {\r\n row[i].lastFixed = true;\r\n return;\r\n }\r\n }\r\n });\r\n\r\n const seen = new Set();\r\n headers.value = fixedRows.map((row) => {\r\n const filtered = [];\r\n for (const column of row) {\r\n if (!seen.has(column.key)) {\r\n seen.add(column.key);\r\n filtered.push(column);\r\n }\r\n }\r\n return filtered;\r\n });\r\n\r\n columns.value = fixedRows.at(-1) ?? [];\r\n });\r\n\r\n const data = { headers, columns };\r\n\r\n provide(Y_DATA_TABLE_HEADER_KEY, data);\r\n\r\n return data;\r\n}\r\n\r\nexport function useHeader() {\r\n const data = inject(Y_DATA_TABLE_HEADER_KEY);\r\n if (!data) {\r\n throw new Error(`Not provided: ${Y_DATA_TABLE_HEADER_KEY.description}`);\r\n }\r\n return data;\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"header.mjs","names":["inject","provide","ref","watchEffect","getRangeArr","propsFactory","pressDataTableHeader","headers","type","Array","default","Y_DATA_TABLE_HEADER_KEY","Symbol","for","createHeader","props","options","columns","rows","length","flat","flatMap","row","index","map","column","rowIndex","rowCount","defaultHeader","text","sortable","defaultActionHeader","width","enableSelect","value","foundIndex","findIndex","_ref","key","fixed","some","_ref2","unshift","rowspan","splice","fixedRows","fixedOffsets","fill","forEach","_ref3","i","push","fixedOffset","Number","lastFixed","seen","Set","filtered","has","add","at","data","useHeader","Error","description"],"sources":["../../../../src/components/table/composibles/header.ts"],"sourcesContent":["import { type DeepReadonly, type InjectionKey, type PropType, type Ref, inject, provide, ref, watchEffect } from 'vue';\n\n\n\nimport { getRangeArr } from '@/util/common';\nimport { propsFactory } from '@/util/component';\n\n\n\nimport { type DataTableHeader, type InternalDataTableHeader } from '../types';\n\n\nexport const pressDataTableHeader = propsFactory(\n {\n headers: {\n type: Array as PropType<DeepReadonly<DataTableHeader[]>>,\n default: () => [],\n },\n },\n 'YDataTable--header',\n);\n\nexport const Y_DATA_TABLE_HEADER_KEY: InjectionKey<{\n headers: Ref<InternalDataTableHeader[][]>;\n columns: Ref<InternalDataTableHeader[]>;\n}> = Symbol.for('yuyeon.data-table.header');\n\ntype HeaderProps = {\n headers: DeepReadonly<DataTableHeader[]> | undefined;\n};\n\nexport function createHeader(\n props: HeaderProps,\n options?: {\n enableSelect?: Ref<boolean>;\n },\n) {\n const headers = ref<InternalDataTableHeader[][]>([]);\n const columns = ref<InternalDataTableHeader[]>([]);\n\n watchEffect(() => {\n const rows = props.headers?.length\n ? [props.headers as DataTableHeader[]]\n : [];\n const flat = rows.flatMap((row, index) =>\n row.map((column) => ({ column, rowIndex: index })),\n );\n const rowCount = rows.length;\n const defaultHeader = { text: '', sortable: false };\n const defaultActionHeader = { ...defaultHeader, width: 48 };\n\n if (options?.enableSelect?.value) {\n const foundIndex = flat.findIndex(\n ({ column }) => column.key === 'data-table-select',\n );\n if (foundIndex < 0) {\n const fixed = flat.some(({ column }) => !!column?.fixed);\n flat.unshift({\n column: {\n ...defaultActionHeader,\n key: 'data-table-select',\n rowspan: rowCount,\n fixed,\n },\n rowIndex: 0,\n });\n } else {\n flat.splice(foundIndex, 1, {\n column: {\n ...defaultActionHeader,\n ...flat[foundIndex].column,\n },\n rowIndex: flat[foundIndex].rowIndex,\n });\n }\n }\n\n const fixedRows: InternalDataTableHeader[][] = getRangeArr(rowCount).map(\n () => [],\n );\n const fixedOffsets = getRangeArr(rowCount).fill(0);\n\n flat.forEach(({ column, rowIndex }) => {\n const { key } = column;\n for (\n let i = rowIndex;\n i <= rowIndex + (column.rowspan ?? 1) - 1;\n i += 1\n ) {\n fixedRows[i].push({\n ...column,\n key,\n fixedOffset: fixedOffsets[i],\n sortable: column.sortable ?? !!key,\n });\n fixedOffsets[i] += Number(column.width ?? 0);\n }\n });\n\n fixedRows.forEach((row) => {\n for (let i = row.length; (i -= 1); i >= 0) {\n if (row[i].fixed) {\n row[i].lastFixed = true;\n return;\n }\n }\n });\n\n const seen = new Set();\n headers.value = fixedRows.map((row) => {\n const filtered = [];\n for (const column of row) {\n if (!seen.has(column.key)) {\n seen.add(column.key);\n filtered.push(column);\n }\n }\n return filtered;\n });\n\n columns.value = fixedRows.at(-1) ?? [];\n });\n\n const data = { headers, columns };\n\n provide(Y_DATA_TABLE_HEADER_KEY, data);\n\n return data;\n}\n\nexport function useHeader() {\n const data = inject(Y_DATA_TABLE_HEADER_KEY);\n if (!data) {\n throw new Error(`Not provided: ${Y_DATA_TABLE_HEADER_KEY.description}`);\n }\n return data;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"items.mjs","names":["computed","getPropertyFromItem","propsFactory","pressDataTableItemsProps","items","type","Array","default","itemKey","String","Function","itemSelectable","returnItem","Boolean","updateItem","props","item","index","columns","key","value","selectable","itemColumns","reduce","acc","column","raw","updateItems","map","useItems"],"sources":["../../../../src/components/table/composibles/items.ts"],"sourcesContent":["import { PropType, Ref, computed } from 'vue';\r\n\r\nimport { getPropertyFromItem } from '../../../util/common';\r\nimport { propsFactory } from '../../../util/component';\r\n\r\nimport { CandidateKey } from '../../../types';\r\nimport { DataTableItem, InternalDataTableHeader } from '../types';\r\n\r\nexport type DataTableItemsProps = {\r\n items: any[];\r\n itemKey: any;\r\n itemSelectable: any;\r\n returnItem: boolean;\r\n};\r\n\r\nexport const pressDataTableItemsProps = propsFactory(\r\n {\r\n items: {\r\n type: Array as PropType<DataTableItemsProps['items']>,\r\n default: () => [],\r\n },\r\n itemKey: {\r\n type: [String, Array, Function] as PropType<any>,\r\n default: 'id',\r\n },\r\n itemSelectable: {\r\n type: [String, Array, Function] as PropType<any>,\r\n default: null,\r\n },\r\n returnItem: Boolean,\r\n },\r\n 'YDataTable--items',\r\n);\r\n\r\nexport function updateItem(\r\n props: Omit<DataTableItemsProps, 'items'>,\r\n item: any,\r\n index: number,\r\n columns: InternalDataTableHeader[],\r\n): DataTableItem {\r\n const key = getPropertyFromItem(item, props.itemKey);\r\n const value = props.returnItem\r\n ? item\r\n : key;\r\n const selectable = getPropertyFromItem(item, props.itemSelectable, true);\r\n const itemColumns = columns.reduce((acc, column) => {\r\n acc[column.key] = getPropertyFromItem(item, column.value ?? column.key);\r\n return acc;\r\n }, {} as Record<string, unknown>);\r\n\r\n return {\r\n index,\r\n key,\r\n value,\r\n selectable,\r\n columns: itemColumns,\r\n raw: item,\r\n };\r\n}\r\n\r\nexport function updateItems(\r\n props: Omit<DataTableItemsProps, 'items'>,\r\n items: DataTableItemsProps['items'],\r\n columns: InternalDataTableHeader[],\r\n): DataTableItem[] {\r\n return items.map((item, index) => updateItem(props, item, index, columns));\r\n}\r\n\r\nexport function useItems(\r\n props: DataTableItemsProps,\r\n columns: Ref<InternalDataTableHeader[]>,\r\n) {\r\n const items = computed(() => {\r\n return updateItems(props, props.items, columns.value);\r\n });\r\n return { items };\r\n}\r\n"],"mappings":"AAAA,SAAwBA,QAAQ,QAAQ,KAAK;AAAC,SAErCC,mBAAmB;AAAA,SACnBC,YAAY;AAYrB,OAAO,MAAMC,wBAAwB,GAAGD,YAAY,CAClD;EACEE,KAAK,EAAE;IACLC,IAAI,EAAEC,KAA+C;IACrDC,OAAO,EAAEA,CAAA,KAAM;EACjB,CAAC;EACDC,OAAO,EAAE;IACPH,IAAI,EAAE,CAACI,MAAM,EAAEH,KAAK,EAAEI,QAAQ,CAAkB;IAChDH,OAAO,EAAE;EACX,CAAC;EACDI,cAAc,EAAE;IACdN,IAAI,EAAE,CAACI,MAAM,EAAEH,KAAK,EAAEI,QAAQ,CAAkB;IAChDH,OAAO,EAAE;EACX,CAAC;EACDK,UAAU,EAAEC;AACd,CAAC,EACD,mBACF,CAAC;AAED,OAAO,SAASC,UAAUA,CACxBC,KAAyC,EACzCC,IAAS,EACTC,KAAa,EACbC,OAAkC,EACnB;EACf,MAAMC,GAAG,GAAGlB,mBAAmB,CAACe,IAAI,EAAED,KAAK,CAACP,OAAO,CAAC;EACpD,MAAMY,KAAK,GAAGL,KAAK,CAACH,UAAU,GAC1BI,IAAI,GACJG,GAAG;EACP,MAAME,UAAU,GAAGpB,mBAAmB,CAACe,IAAI,EAAED,KAAK,CAACJ,cAAc,EAAE,IAAI,CAAC;EACxE,MAAMW,WAAW,GAAGJ,OAAO,CAACK,MAAM,CAAC,CAACC,GAAG,EAAEC,MAAM,KAAK;IAClDD,GAAG,CAACC,MAAM,CAACN,GAAG,CAAC,GAAGlB,mBAAmB,CAACe,IAAI,EAAES,MAAM,CAACL,KAAK,IAAIK,MAAM,CAACN,GAAG,CAAC;IACvE,OAAOK,GAAG;EACZ,CAAC,EAAE,CAAC,CAA4B,CAAC;EAEjC,OAAO;IACLP,KAAK;IACLE,GAAG;IACHC,KAAK;IACLC,UAAU;IACVH,OAAO,EAAEI,WAAW;IACpBI,GAAG,EAAEV;EACP,CAAC;AACH;AAEA,OAAO,SAASW,WAAWA,CACzBZ,KAAyC,EACzCX,KAAmC,EACnCc,OAAkC,EACjB;EACjB,OAAOd,KAAK,CAACwB,GAAG,CAAC,CAACZ,IAAI,EAAEC,KAAK,KAAKH,UAAU,CAACC,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAEC,OAAO,CAAC,CAAC;AAC5E;AAEA,OAAO,SAASW,QAAQA,CACtBd,KAA0B,EAC1BG,OAAuC,EACvC;EACA,MAAMd,KAAK,GAAGJ,QAAQ,CAAC,MAAM;IAC3B,OAAO2B,WAAW,CAACZ,KAAK,EAAEA,KAAK,CAACX,KAAK,EAAEc,OAAO,CAACE,KAAK,CAAC;EACvD,CAAC,CAAC;EACF,OAAO;IAAEhB;EAAM,CAAC;AAClB"}
1
+ {"version":3,"file":"items.mjs","names":["computed","getPropertyFromItem","propsFactory","pressDataTableItemsProps","items","type","Array","default","itemKey","String","Function","itemSelectable","returnItem","Boolean","updateItem","props","item","index","columns","key","value","selectable","itemColumns","reduce","acc","column","raw","updateItems","map","useItems"],"sources":["../../../../src/components/table/composibles/items.ts"],"sourcesContent":["import { type PropType, type Ref, computed } from 'vue';\n\nimport { getPropertyFromItem } from '@/util/common';\nimport { propsFactory } from '@/util/component';\n\nimport { DataTableItem, InternalDataTableHeader } from '../types';\n\nexport type DataTableItemsProps = {\n items: any[];\n itemKey: any;\n itemSelectable: any;\n returnItem: boolean;\n};\n\nexport const pressDataTableItemsProps = propsFactory(\n {\n items: {\n type: Array as PropType<DataTableItemsProps['items']>,\n default: () => [],\n },\n itemKey: {\n type: [String, Array, Function] as PropType<any>,\n default: 'id',\n },\n itemSelectable: {\n type: [String, Array, Function] as PropType<any>,\n default: null,\n },\n returnItem: Boolean,\n },\n 'YDataTable--items',\n);\n\nexport function updateItem(\n props: Omit<DataTableItemsProps, 'items'>,\n item: any,\n index: number,\n columns: InternalDataTableHeader[],\n): DataTableItem {\n const key = getPropertyFromItem(item, props.itemKey);\n const value = props.returnItem ? item : key;\n const selectable = getPropertyFromItem(item, props.itemSelectable, true);\n const itemColumns = columns.reduce(\n (acc, column) => {\n acc[column.key] = getPropertyFromItem(item, column.value ?? column.key);\n return acc;\n },\n {} as Record<string, unknown>,\n );\n\n return {\n index,\n key,\n value,\n selectable,\n columns: itemColumns,\n raw: item,\n };\n}\n\nexport function updateItems(\n props: Omit<DataTableItemsProps, 'items'>,\n items: DataTableItemsProps['items'],\n columns: InternalDataTableHeader[],\n): DataTableItem[] {\n return items.map((item, index) => updateItem(props, item, index, columns));\n}\n\nexport function useItems(\n props: DataTableItemsProps,\n columns: Ref<InternalDataTableHeader[]>,\n) {\n const items = computed(() => {\n return updateItems(props, props.items, columns.value);\n });\n return { items };\n}\n"],"mappings":"AAAA,SAAkCA,QAAQ,QAAQ,KAAK;AAAC,SAE/CC,mBAAmB;AAAA,SACnBC,YAAY;AAWrB,OAAO,MAAMC,wBAAwB,GAAGD,YAAY,CAClD;EACEE,KAAK,EAAE;IACLC,IAAI,EAAEC,KAA+C;IACrDC,OAAO,EAAEA,CAAA,KAAM;EACjB,CAAC;EACDC,OAAO,EAAE;IACPH,IAAI,EAAE,CAACI,MAAM,EAAEH,KAAK,EAAEI,QAAQ,CAAkB;IAChDH,OAAO,EAAE;EACX,CAAC;EACDI,cAAc,EAAE;IACdN,IAAI,EAAE,CAACI,MAAM,EAAEH,KAAK,EAAEI,QAAQ,CAAkB;IAChDH,OAAO,EAAE;EACX,CAAC;EACDK,UAAU,EAAEC;AACd,CAAC,EACD,mBACF,CAAC;AAED,OAAO,SAASC,UAAUA,CACxBC,KAAyC,EACzCC,IAAS,EACTC,KAAa,EACbC,OAAkC,EACnB;EACf,MAAMC,GAAG,GAAGlB,mBAAmB,CAACe,IAAI,EAAED,KAAK,CAACP,OAAO,CAAC;EACpD,MAAMY,KAAK,GAAGL,KAAK,CAACH,UAAU,GAAGI,IAAI,GAAGG,GAAG;EAC3C,MAAME,UAAU,GAAGpB,mBAAmB,CAACe,IAAI,EAAED,KAAK,CAACJ,cAAc,EAAE,IAAI,CAAC;EACxE,MAAMW,WAAW,GAAGJ,OAAO,CAACK,MAAM,CAChC,CAACC,GAAG,EAAEC,MAAM,KAAK;IACfD,GAAG,CAACC,MAAM,CAACN,GAAG,CAAC,GAAGlB,mBAAmB,CAACe,IAAI,EAAES,MAAM,CAACL,KAAK,IAAIK,MAAM,CAACN,GAAG,CAAC;IACvE,OAAOK,GAAG;EACZ,CAAC,EACD,CAAC,CACH,CAAC;EAED,OAAO;IACLP,KAAK;IACLE,GAAG;IACHC,KAAK;IACLC,UAAU;IACVH,OAAO,EAAEI,WAAW;IACpBI,GAAG,EAAEV;EACP,CAAC;AACH;AAEA,OAAO,SAASW,WAAWA,CACzBZ,KAAyC,EACzCX,KAAmC,EACnCc,OAAkC,EACjB;EACjB,OAAOd,KAAK,CAACwB,GAAG,CAAC,CAACZ,IAAI,EAAEC,KAAK,KAAKH,UAAU,CAACC,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAEC,OAAO,CAAC,CAAC;AAC5E;AAEA,OAAO,SAASW,QAAQA,CACtBd,KAA0B,EAC1BG,OAAuC,EACvC;EACA,MAAMd,KAAK,GAAGJ,QAAQ,CAAC,MAAM;IAC3B,OAAO2B,WAAW,CAACZ,KAAK,EAAEA,KAAK,CAACX,KAAK,EAAEc,OAAO,CAACE,KAAK,CAAC;EACvD,CAAC,CAAC;EACF,OAAO;IAAEhB;EAAM,CAAC;AAClB"}
@@ -0,0 +1,37 @@
1
+ import { ref } from 'vue';
2
+ import { useResizeObserver } from "../../../composables/index.mjs";
3
+ export function useRectMeasure() {
4
+ const containerRect = ref();
5
+ const wrapperRect = ref();
6
+ const tableRect = ref();
7
+ const {
8
+ resizeObservedRef: containerRef
9
+ } = useResizeObserver(entries => {
10
+ requestAnimationFrame(() => {
11
+ containerRect.value = entries?.[0]?.contentRect;
12
+ });
13
+ });
14
+ const {
15
+ resizeObservedRef: wrapperRef
16
+ } = useResizeObserver(entries => {
17
+ requestAnimationFrame(() => {
18
+ wrapperRect.value = entries?.[0]?.contentRect;
19
+ });
20
+ });
21
+ const {
22
+ resizeObservedRef: tableRef
23
+ } = useResizeObserver(entries => {
24
+ requestAnimationFrame(() => {
25
+ tableRect.value = entries?.[0]?.contentRect;
26
+ });
27
+ });
28
+ return {
29
+ containerRef,
30
+ wrapperRef,
31
+ tableRef,
32
+ containerRect,
33
+ wrapperRect,
34
+ tableRect
35
+ };
36
+ }
37
+ //# sourceMappingURL=measure.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measure.mjs","names":["ref","useResizeObserver","useRectMeasure","containerRect","wrapperRect","tableRect","resizeObservedRef","containerRef","entries","requestAnimationFrame","value","contentRect","wrapperRef","tableRef"],"sources":["../../../../src/components/table/composibles/measure.ts"],"sourcesContent":["import { ref } from 'vue';\r\nimport { useResizeObserver } from '@/composables';\r\n\r\nexport function useRectMeasure() {\r\n const containerRect = ref<DOMRectReadOnly>();\r\n const wrapperRect = ref<DOMRectReadOnly>();\r\n const tableRect = ref<DOMRectReadOnly>();\r\n\r\n const { resizeObservedRef: containerRef } = useResizeObserver((entries) => {\r\n requestAnimationFrame(() => {\r\n containerRect.value = entries?.[0]?.contentRect;\r\n })\r\n });\r\n\r\n const { resizeObservedRef: wrapperRef } = useResizeObserver((entries) => {\r\n requestAnimationFrame(() => {\r\n wrapperRect.value = entries?.[0]?.contentRect;\r\n })\r\n });\r\n\r\n const { resizeObservedRef: tableRef } = useResizeObserver((entries) => {\r\n requestAnimationFrame(() => {\r\n tableRect.value = entries?.[0]?.contentRect;\r\n })\r\n });\r\n\r\n return {\r\n containerRef,\r\n wrapperRef,\r\n tableRef,\r\n containerRect,\r\n wrapperRect,\r\n tableRect,\r\n }\r\n}\r\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,KAAK;AAAC,SACjBC,iBAAiB;AAE1B,OAAO,SAASC,cAAcA,CAAA,EAAG;EAC/B,MAAMC,aAAa,GAAGH,GAAG,CAAkB,CAAC;EAC5C,MAAMI,WAAW,GAAGJ,GAAG,CAAkB,CAAC;EAC1C,MAAMK,SAAS,GAAGL,GAAG,CAAkB,CAAC;EAExC,MAAM;IAAEM,iBAAiB,EAAEC;EAAa,CAAC,GAAGN,iBAAiB,CAAEO,OAAO,IAAK;IACzEC,qBAAqB,CAAC,MAAM;MAC1BN,aAAa,CAACO,KAAK,GAAGF,OAAO,GAAG,CAAC,CAAC,EAAEG,WAAW;IACjD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAM;IAAEL,iBAAiB,EAAEM;EAAW,CAAC,GAAGX,iBAAiB,CAAEO,OAAO,IAAK;IACvEC,qBAAqB,CAAC,MAAM;MAC1BL,WAAW,CAACM,KAAK,GAAGF,OAAO,GAAG,CAAC,CAAC,EAAEG,WAAW;IAC/C,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAM;IAAEL,iBAAiB,EAAEO;EAAS,CAAC,GAAGZ,iBAAiB,CAAEO,OAAO,IAAK;IACrEC,qBAAqB,CAAC,MAAM;MAC1BJ,SAAS,CAACK,KAAK,GAAGF,OAAO,GAAG,CAAC,CAAC,EAAEG,WAAW;IAC7C,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAO;IACLJ,YAAY;IACZK,UAAU;IACVC,QAAQ;IACRV,aAAa;IACbC,WAAW;IACXC;EACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"options.mjs","names":["computed","watch","deepEqual","useOptions","_ref","emit","page","pageSize","sortBy","search","options","value","optionsCache","deep","immediate"],"sources":["../../../../src/components/table/composibles/options.ts"],"sourcesContent":["import { Ref, computed, watch } from 'vue';\n\nimport { deepEqual } from '../../../util/common';\nimport { SortOption } from \"../types\";\n\ntype DataTableOptionsState = {\n page: Ref<number>;\n pageSize: Ref<number>;\n sortBy: Ref<readonly SortOption[]>;\n search: Ref<string | undefined>;\n};\n\nexport function useOptions(\n { page, pageSize, sortBy, search }: DataTableOptionsState,\n emit: Function,\n) {\n const options = computed(() => {\n return {\n page: page.value,\n pageSize: pageSize.value,\n sortBy: sortBy.value,\n search: search.value,\n };\n });\n\n watch(\n () => search?.value,\n () => {\n page.value = 1;\n },\n );\n\n let optionsCache = null as unknown;\n\n watch(\n options,\n () => {\n if (deepEqual(optionsCache, options.value)) {\n return;\n }\n emit('update:options', options.value);\n optionsCache = options.value;\n },\n { deep: true, immediate: true },\n );\n}\n"],"mappings":"AAAA,SAAcA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAC,SAElCC,SAAS;AAUlB,OAAO,SAASC,UAAUA,CAAAC,IAAA,EAExBC,IAAc,EACd;EAAA,IAFA;IAAEC,IAAI;IAAEC,QAAQ;IAAEC,MAAM;IAAEC;EAA8B,CAAC,GAAAL,IAAA;EAGzD,MAAMM,OAAO,GAAGV,QAAQ,CAAC,MAAM;IAC7B,OAAO;MACLM,IAAI,EAAEA,IAAI,CAACK,KAAK;MAChBJ,QAAQ,EAAEA,QAAQ,CAACI,KAAK;MACxBH,MAAM,EAAEA,MAAM,CAACG,KAAK;MACpBF,MAAM,EAAEA,MAAM,CAACE;IACjB,CAAC;EACH,CAAC,CAAC;EAEFV,KAAK,CACH,MAAMQ,MAAM,EAAEE,KAAK,EACnB,MAAM;IACJL,IAAI,CAACK,KAAK,GAAG,CAAC;EAChB,CACF,CAAC;EAED,IAAIC,YAAY,GAAG,IAAe;EAElCX,KAAK,CACHS,OAAO,EACP,MAAM;IACJ,IAAIR,SAAS,CAACU,YAAY,EAAEF,OAAO,CAACC,KAAK,CAAC,EAAE;MAC1C;IACF;IACAN,IAAI,CAAC,gBAAgB,EAAEK,OAAO,CAACC,KAAK,CAAC;IACrCC,YAAY,GAAGF,OAAO,CAACC,KAAK;EAC9B,CAAC,EACD;IAAEE,IAAI,EAAE,IAAI;IAAEC,SAAS,EAAE;EAAK,CAChC,CAAC;AACH"}
1
+ {"version":3,"file":"options.mjs","names":["computed","watch","deepEqual","useOptions","_ref","emit","page","pageSize","sortBy","search","options","value","optionsCache","deep","immediate"],"sources":["../../../../src/components/table/composibles/options.ts"],"sourcesContent":["import { type Ref, computed, watch } from 'vue';\n\nimport { deepEqual } from '@/util/common';\n\nimport { SortOption } from '../types';\n\ntype DataTableOptionsState = {\n page: Ref<number>;\n pageSize: Ref<number>;\n sortBy: Ref<readonly SortOption[]>;\n search: Ref<string | undefined>;\n};\n\nexport function useOptions(\n { page, pageSize, sortBy, search }: DataTableOptionsState,\n emit: Function,\n) {\n const options = computed(() => {\n return {\n page: page.value,\n pageSize: pageSize.value,\n sortBy: sortBy.value,\n search: search.value,\n };\n });\n\n watch(\n () => search?.value,\n () => {\n page.value = 1;\n },\n );\n\n let optionsCache = null as unknown;\n\n watch(\n options,\n () => {\n if (deepEqual(optionsCache, options.value)) {\n return;\n }\n emit('update:options', options.value);\n optionsCache = options.value;\n },\n { deep: true, immediate: true },\n );\n}\n"],"mappings":"AAAA,SAAmBA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAC,SAEvCC,SAAS;AAWlB,OAAO,SAASC,UAAUA,CAAAC,IAAA,EAExBC,IAAc,EACd;EAAA,IAFA;IAAEC,IAAI;IAAEC,QAAQ;IAAEC,MAAM;IAAEC;EAA8B,CAAC,GAAAL,IAAA;EAGzD,MAAMM,OAAO,GAAGV,QAAQ,CAAC,MAAM;IAC7B,OAAO;MACLM,IAAI,EAAEA,IAAI,CAACK,KAAK;MAChBJ,QAAQ,EAAEA,QAAQ,CAACI,KAAK;MACxBH,MAAM,EAAEA,MAAM,CAACG,KAAK;MACpBF,MAAM,EAAEA,MAAM,CAACE;IACjB,CAAC;EACH,CAAC,CAAC;EAEFV,KAAK,CACH,MAAMQ,MAAM,EAAEE,KAAK,EACnB,MAAM;IACJL,IAAI,CAACK,KAAK,GAAG,CAAC;EAChB,CACF,CAAC;EAED,IAAIC,YAAY,GAAG,IAAe;EAElCX,KAAK,CACHS,OAAO,EACP,MAAM;IACJ,IAAIR,SAAS,CAACU,YAAY,EAAEF,OAAO,CAACC,KAAK,CAAC,EAAE;MAC1C;IACF;IACAN,IAAI,CAAC,gBAAgB,EAAEK,OAAO,CAACC,KAAK,CAAC;IACrCC,YAAY,GAAGF,OAAO,CAACC,KAAK;EAC9B,CAAC,EACD;IAAEE,IAAI,EAAE,IAAI;IAAEC,SAAS,EAAE;EAAK,CAChC,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.mjs","names":["computed","inject","provide","watchEffect","useModelDuplex","clamp","propsFactory","Y_DATA_TABLE_PAGINATION_KEY","Symbol","for","pressDataTablePaginationProps","page","type","Number","String","default","pageSize","createPagination","props","undefined","value","providePagination","options","total","startIndex","endIndex","Math","min","pageLength","ceil","setPageSize","nextPage","prevPage","setPage","data","usePagination","Error","description","usePaginatedItems","items","paginatedItems","slice"],"sources":["../../../../src/components/table/composibles/pagination.ts"],"sourcesContent":["import type { InjectionKey, PropType, Ref } from 'vue';\r\nimport { computed, inject, provide, watchEffect } from 'vue';\r\n\r\nimport { useModelDuplex } from '../../../composables/communication';\r\nimport { clamp } from '../../../util/common';\r\nimport { propsFactory } from '../../../util/component';\r\nimport { DataTableProvidePaginationData } from \"../types\";\r\n\r\nexport const Y_DATA_TABLE_PAGINATION_KEY: InjectionKey<{\r\n page: Ref<number>;\r\n pageSize: Ref<number>;\r\n startIndex: Ref<number>;\r\n endIndex: Ref<number>;\r\n pageLength: Ref<number>;\r\n total: Ref<number>;\r\n prevPage: () => void;\r\n nextPage: () => void;\r\n setPage: (page: number) => void;\r\n setPageSize: (size: number) => void;\r\n}> = Symbol.for('yuyeon.data-table.pagination');\r\n\r\nexport const pressDataTablePaginationProps = propsFactory(\r\n {\r\n page: {\r\n type: [Number, String] as PropType<number | string>,\r\n default: 1,\r\n },\r\n pageSize: {\r\n type: [Number, String] as PropType<number | string>,\r\n default: 10,\r\n },\r\n },\r\n 'YDataTable--pagination',\r\n);\r\n\r\ntype PaginationProps = {\r\n page: number | string;\r\n 'onUpdate:page': ((v: any) => void) | undefined;\r\n pageSize: number | string;\r\n 'onUpdate:pageSize': ((v: any) => void) | undefined;\r\n total?: number | string;\r\n};\r\n\r\nexport function createPagination(props: PaginationProps) {\r\n const page = useModelDuplex(\r\n props,\r\n 'page',\r\n undefined,\r\n (value) => +(value ?? 1),\r\n );\r\n const pageSize = useModelDuplex(\r\n props,\r\n 'pageSize',\r\n undefined,\r\n (value) => +(value ?? 10),\r\n );\r\n return { page, pageSize };\r\n}\r\n\r\nexport function providePagination(options: {\r\n page: Ref<number>;\r\n pageSize: Ref<number>;\r\n total: Ref<number>;\r\n}) {\r\n const { page, pageSize, total } = options;\r\n const startIndex = computed(() => {\r\n if (pageSize.value === -1) return 0;\r\n\r\n return pageSize.value * (page.value - 1);\r\n });\r\n const endIndex = computed(() => {\r\n if (pageSize.value === -1) return total.value;\r\n\r\n return Math.min(total.value, startIndex.value + pageSize.value);\r\n });\r\n\r\n const pageLength = computed(() => {\r\n if (pageSize.value === -1 || total.value === 0) return 1;\r\n\r\n return Math.ceil(total.value / pageSize.value);\r\n });\r\n\r\n watchEffect(() => {\r\n if (page.value > pageLength.value) {\r\n page.value = pageLength.value;\r\n }\r\n });\r\n\r\n function setPageSize(value: number) {\r\n pageSize.value = value;\r\n page.value = 1;\r\n }\r\n\r\n function nextPage() {\r\n page.value = clamp(page.value + 1, 1, pageLength.value);\r\n }\r\n\r\n function prevPage() {\r\n page.value = clamp(page.value - 1, 1, pageLength.value);\r\n }\r\n\r\n function setPage(value: number) {\r\n page.value = clamp(value, 1, pageLength.value);\r\n }\r\n\r\n const data: DataTableProvidePaginationData = {\r\n page,\r\n pageSize,\r\n startIndex,\r\n endIndex,\r\n pageLength,\r\n total,\r\n nextPage,\r\n prevPage,\r\n setPage,\r\n setPageSize,\r\n };\r\n\r\n provide(Y_DATA_TABLE_PAGINATION_KEY, data);\r\n\r\n return data;\r\n}\r\n\r\nexport function usePagination() {\r\n const data = inject(Y_DATA_TABLE_PAGINATION_KEY);\r\n if (!data) {\r\n throw new Error(`Not provided: ${Y_DATA_TABLE_PAGINATION_KEY.description}`);\r\n }\r\n return data;\r\n}\r\n\r\nexport function usePaginatedItems <T> (options: {\r\n items: Ref<readonly (T)[]>\r\n startIndex: Ref<number>\r\n endIndex: Ref<number>\r\n pageSize: Ref<number>\r\n}) {\r\n const { items, startIndex, endIndex, pageSize } = options\r\n const paginatedItems = computed(() => {\r\n if (pageSize.value <= 0) return items.value\r\n\r\n return items.value.slice(startIndex.value, endIndex.value)\r\n })\r\n\r\n return { paginatedItems }\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"pagination.mjs","names":["computed","inject","provide","watchEffect","useModelDuplex","clamp","propsFactory","Y_DATA_TABLE_PAGINATION_KEY","Symbol","for","pressDataTablePaginationProps","page","type","Number","String","default","pageSize","createPagination","props","undefined","value","providePagination","options","total","startIndex","endIndex","Math","min","pageLength","ceil","setPageSize","nextPage","prevPage","setPage","data","usePagination","Error","description","usePaginatedItems","items","paginatedItems","slice"],"sources":["../../../../src/components/table/composibles/pagination.ts"],"sourcesContent":["import type { InjectionKey, PropType, Ref } from 'vue';\nimport { computed, inject, provide, watchEffect } from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { clamp } from '@/util/common';\nimport { propsFactory } from '@/util/component';\n\nimport { DataTableProvidePaginationData } from '../types';\n\nexport const Y_DATA_TABLE_PAGINATION_KEY: InjectionKey<{\n page: Ref<number>;\n pageSize: Ref<number>;\n startIndex: Ref<number>;\n endIndex: Ref<number>;\n pageLength: Ref<number>;\n total: Ref<number>;\n prevPage: () => void;\n nextPage: () => void;\n setPage: (page: number) => void;\n setPageSize: (size: number) => void;\n}> = Symbol.for('yuyeon.data-table.pagination');\n\nexport const pressDataTablePaginationProps = propsFactory(\n {\n page: {\n type: [Number, String] as PropType<number | string>,\n default: 1,\n },\n pageSize: {\n type: [Number, String] as PropType<number | string>,\n default: 10,\n },\n },\n 'YDataTable--pagination',\n);\n\ntype PaginationProps = {\n page: number | string;\n 'onUpdate:page': ((v: any) => void) | undefined;\n pageSize: number | string;\n 'onUpdate:pageSize': ((v: any) => void) | undefined;\n total?: number | string;\n};\n\nexport function createPagination(props: PaginationProps) {\n const page = useModelDuplex(\n props,\n 'page',\n undefined,\n (value) => +(value ?? 1),\n );\n const pageSize = useModelDuplex(\n props,\n 'pageSize',\n undefined,\n (value) => +(value ?? 10),\n );\n return { page, pageSize };\n}\n\nexport function providePagination(options: {\n page: Ref<number>;\n pageSize: Ref<number>;\n total: Ref<number>;\n}) {\n const { page, pageSize, total } = options;\n const startIndex = computed(() => {\n if (pageSize.value === -1) return 0;\n\n return pageSize.value * (page.value - 1);\n });\n const endIndex = computed(() => {\n if (pageSize.value === -1) return total.value;\n\n return Math.min(total.value, startIndex.value + pageSize.value);\n });\n\n const pageLength = computed(() => {\n if (pageSize.value === -1 || total.value === 0) return 1;\n\n return Math.ceil(total.value / pageSize.value);\n });\n\n watchEffect(() => {\n if (page.value > pageLength.value) {\n page.value = pageLength.value;\n }\n });\n\n function setPageSize(value: number) {\n pageSize.value = value;\n page.value = 1;\n }\n\n function nextPage() {\n page.value = clamp(page.value + 1, 1, pageLength.value);\n }\n\n function prevPage() {\n page.value = clamp(page.value - 1, 1, pageLength.value);\n }\n\n function setPage(value: number) {\n page.value = clamp(value, 1, pageLength.value);\n }\n\n const data: DataTableProvidePaginationData = {\n page,\n pageSize,\n startIndex,\n endIndex,\n pageLength,\n total,\n nextPage,\n prevPage,\n setPage,\n setPageSize,\n };\n\n provide(Y_DATA_TABLE_PAGINATION_KEY, data);\n\n return data;\n}\n\nexport function usePagination() {\n const data = inject(Y_DATA_TABLE_PAGINATION_KEY);\n if (!data) {\n throw new Error(`Not provided: ${Y_DATA_TABLE_PAGINATION_KEY.description}`);\n }\n return data;\n}\n\nexport function usePaginatedItems<T>(options: {\n items: Ref<readonly T[]>;\n startIndex: Ref<number>;\n endIndex: Ref<number>;\n pageSize: Ref<number>;\n}) {\n const { items, startIndex, endIndex, pageSize } = options;\n const paginatedItems = computed(() => {\n if (pageSize.value <= 0) return items.value;\n\n return items.value.slice(startIndex.value, endIndex.value);\n });\n\n return { paginatedItems };\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { computed, inject, provide } from 'vue';
2
2
  import { useModelDuplex } from "../../../composables/communication.mjs";
3
- import { deepEqual } from "../../../util/index.mjs";
4
3
  import { wrapInArray } from "../../../util/array.mjs";
4
+ import { deepEqual, getPropertyFromItem } from "../../../util/common.mjs";
5
5
  import { propsFactory } from "../../../util/component/index.mjs";
6
6
  export const pressDataTableSelectionProps = propsFactory({
7
7
  enableSelect: Boolean,
@@ -13,9 +13,9 @@ export const pressDataTableSelectionProps = propsFactory({
13
13
  type: Array,
14
14
  default: () => []
15
15
  },
16
- valueEqual: {
17
- type: Function,
18
- default: deepEqual
16
+ itemComparator: {
17
+ type: [Function, String],
18
+ default: () => deepEqual
19
19
  }
20
20
  }, 'YDataTable--selection');
21
21
  const singleSelectStrategy = {
@@ -107,7 +107,15 @@ export function provideSelection(props, _ref9) {
107
107
  } = _ref9;
108
108
  const selected = useModelDuplex(props, 'modelValue', props.modelValue, v => {
109
109
  return new Set(wrapInArray(v).map(v => {
110
- return allItems.value.find(item => props.valueEqual(v, item.value))?.value ?? v;
110
+ return allItems.value.find(item => {
111
+ const {
112
+ itemComparator
113
+ } = props;
114
+ if (typeof itemComparator === 'function') {
115
+ itemComparator(v, item.value);
116
+ }
117
+ return getPropertyFromItem(v, props.itemKey) === item.key;
118
+ })?.value ?? v;
111
119
  }));
112
120
  }, v => {
113
121
  return [...v.values()];