yuyeon 0.0.0 → 0.0.3

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 (386) hide show
  1. package/dist/style.css +1 -0
  2. package/dist/yuyeon.mjs +3607 -0
  3. package/dist/yuyeon.umd.js +1 -0
  4. package/lib/components/app/YApp.mjs +30 -0
  5. package/lib/components/app/YApp.mjs.map +1 -0
  6. package/lib/components/app/YApp.scss +14 -0
  7. package/lib/components/app/index.mjs +2 -0
  8. package/lib/components/app/index.mjs.map +1 -0
  9. package/lib/components/bench/YBench.mjs +44 -0
  10. package/lib/components/bench/YBench.mjs.map +1 -0
  11. package/lib/components/bench/index.mjs +2 -0
  12. package/lib/components/bench/index.mjs.map +1 -0
  13. package/lib/components/button/YButton.mjs +138 -0
  14. package/lib/components/button/YButton.mjs.map +1 -0
  15. package/{src/components/button/y-btn.scss → lib/components/button/YButton.scss} +67 -29
  16. package/lib/components/button/index.mjs +2 -0
  17. package/lib/components/button/index.mjs.map +1 -0
  18. package/lib/components/card/YCard.mjs +18 -0
  19. package/lib/components/card/YCard.mjs.map +1 -0
  20. package/lib/components/card/YCardBody.mjs +10 -0
  21. package/lib/components/card/YCardBody.mjs.map +1 -0
  22. package/lib/components/card/YCardFooter.mjs +10 -0
  23. package/lib/components/card/YCardFooter.mjs.map +1 -0
  24. package/lib/components/card/YCardHeader.mjs +10 -0
  25. package/lib/components/card/YCardHeader.mjs.map +1 -0
  26. package/lib/components/card/index.mjs +6 -0
  27. package/lib/components/card/index.mjs.map +1 -0
  28. package/lib/components/checkbox/YCheckbox.mjs +154 -0
  29. package/lib/components/checkbox/YCheckbox.mjs.map +1 -0
  30. package/lib/components/checkbox/YInputCheckbox.mjs +113 -0
  31. package/lib/components/checkbox/YInputCheckbox.mjs.map +1 -0
  32. package/{src/components/checkbox/y-input-checkbox.scss → lib/components/checkbox/YInputCheckbox.scss} +19 -19
  33. package/lib/components/checkbox/index.mjs +5 -0
  34. package/lib/components/checkbox/index.mjs.map +1 -0
  35. package/{src/components/chip/y-chip.vue → lib/components/chip/YChip.mjs} +26 -27
  36. package/lib/components/chip/YChip.mjs.map +1 -0
  37. package/{src/components/chip/y-chip.scss → lib/components/chip/YChip.scss} +0 -4
  38. package/lib/components/chip/index.mjs +3 -0
  39. package/lib/components/chip/index.mjs.map +1 -0
  40. package/lib/components/dialog/YDialog.mjs +97 -0
  41. package/lib/components/dialog/YDialog.mjs.map +1 -0
  42. package/lib/components/dialog/index.mjs +2 -0
  43. package/lib/components/dialog/index.mjs.map +1 -0
  44. package/lib/components/field-input/YFieldInput.mjs +218 -0
  45. package/lib/components/field-input/YFieldInput.mjs.map +1 -0
  46. package/{src/components/field-input/y-field-input.scss → lib/components/field-input/YFieldInput.scss} +2 -4
  47. package/lib/components/field-input/index.mjs +2 -0
  48. package/lib/components/field-input/index.mjs.map +1 -0
  49. package/lib/components/form/YForm.mjs +79 -0
  50. package/lib/components/form/YForm.mjs.map +1 -0
  51. package/lib/components/form/index.mjs +4 -0
  52. package/lib/components/form/index.mjs.map +1 -0
  53. package/lib/components/icons/YIconCheckbox.mjs +21 -0
  54. package/lib/components/icons/YIconCheckbox.mjs.map +1 -0
  55. package/lib/components/icons/YIconClear.mjs +16 -0
  56. package/lib/components/icons/YIconClear.mjs.map +1 -0
  57. package/lib/components/icons/YIconExpand.mjs +20 -0
  58. package/lib/components/icons/YIconExpand.mjs.map +1 -0
  59. package/lib/components/icons/index.mjs +4 -0
  60. package/lib/components/icons/index.mjs.map +1 -0
  61. package/lib/components/index.mjs +24 -0
  62. package/lib/components/index.mjs.map +1 -0
  63. package/lib/components/input/YInput.mjs +346 -0
  64. package/lib/components/input/YInput.mjs.map +1 -0
  65. package/{src/components/input/y-input.scss → lib/components/input/YInput.scss} +12 -4
  66. package/lib/components/input/index.mjs +2 -0
  67. package/lib/components/input/index.mjs.map +1 -0
  68. package/lib/components/input/index.scss +2 -0
  69. package/lib/components/layer/YLayer.mjs +193 -0
  70. package/lib/components/layer/YLayer.mjs.map +1 -0
  71. package/lib/components/layer/index.mjs +2 -0
  72. package/lib/components/layer/index.mjs.map +1 -0
  73. package/lib/components/layer/scroll-strategies.mjs +132 -0
  74. package/lib/components/layer/scroll-strategies.mjs.map +1 -0
  75. package/lib/components/list/YList.mjs +16 -0
  76. package/lib/components/list/YList.mjs.map +1 -0
  77. package/lib/components/list/YList.scss +3 -0
  78. package/lib/components/list/YListItem.mjs +37 -0
  79. package/lib/components/list/YListItem.mjs.map +1 -0
  80. package/lib/components/list/YListItem.scss +59 -0
  81. package/lib/components/list/index.mjs +3 -0
  82. package/lib/components/list/index.mjs.map +1 -0
  83. package/lib/components/loading/YSpinnerRing.mjs +25 -0
  84. package/lib/components/loading/YSpinnerRing.mjs.map +1 -0
  85. package/{src/components/ring-spinner/y-ring-spinner.scss → lib/components/loading/YSpinnerRing.scss} +3 -3
  86. package/lib/components/loading/index.mjs +2 -0
  87. package/lib/components/loading/index.mjs.map +1 -0
  88. package/lib/components/menu/YMenu.mjs +239 -0
  89. package/lib/components/menu/YMenu.mjs.map +1 -0
  90. package/lib/components/menu/YMenu.scss +7 -0
  91. package/lib/components/menu/index.mjs +2 -0
  92. package/lib/components/menu/index.mjs.map +1 -0
  93. package/lib/components/navigation/YNavigation.mjs +17 -0
  94. package/lib/components/navigation/YNavigation.mjs.map +1 -0
  95. package/lib/components/navigation/index.mjs +2 -0
  96. package/lib/components/navigation/index.mjs.map +1 -0
  97. package/lib/components/pagination/YPagination.mjs +61 -0
  98. package/lib/components/pagination/YPagination.mjs.map +1 -0
  99. package/lib/components/pagination/YPagination.scss +5 -0
  100. package/lib/components/pagination/index.mjs +2 -0
  101. package/lib/components/pagination/index.mjs.map +1 -0
  102. package/lib/components/panel/YDividePanel.mjs +89 -0
  103. package/lib/components/panel/YDividePanel.mjs.map +1 -0
  104. package/lib/components/panel/YDividePanel.scss +43 -0
  105. package/lib/components/panel/index.mjs +2 -0
  106. package/lib/components/panel/index.mjs.map +1 -0
  107. package/lib/components/plate/YPlate.mjs +27 -0
  108. package/lib/components/plate/YPlate.mjs.map +1 -0
  109. package/lib/components/plate/YPlate.scss +9 -0
  110. package/lib/components/plate/index.mjs +2 -0
  111. package/lib/components/plate/index.mjs.map +1 -0
  112. package/lib/components/progress-bar/YProgressBar.mjs +110 -0
  113. package/lib/components/progress-bar/YProgressBar.mjs.map +1 -0
  114. package/lib/components/progress-bar/YProgressBar.scss +40 -0
  115. package/lib/components/progress-bar/index.mjs +2 -0
  116. package/lib/components/progress-bar/index.mjs.map +1 -0
  117. package/lib/components/snackbar/YSnackbar.mjs +187 -0
  118. package/lib/components/snackbar/YSnackbar.mjs.map +1 -0
  119. package/lib/components/snackbar/YSnackbar.scss +38 -0
  120. package/lib/components/snackbar/index.mjs +2 -0
  121. package/lib/components/snackbar/index.mjs.map +1 -0
  122. package/lib/components/switch/YSwitch.mjs +228 -0
  123. package/lib/components/switch/YSwitch.mjs.map +1 -0
  124. package/{src/components/switch/y-switch.scss → lib/components/switch/YSwitch.scss} +18 -26
  125. package/lib/components/switch/index.mjs +2 -0
  126. package/lib/components/switch/index.mjs.map +1 -0
  127. package/lib/components/table/YDataTable.mjs +46 -0
  128. package/lib/components/table/YDataTable.mjs.map +1 -0
  129. package/lib/components/table/YDataTableBody.mjs +12 -0
  130. package/lib/components/table/YDataTableBody.mjs.map +1 -0
  131. package/lib/components/table/YDataTableCell.mjs +55 -0
  132. package/lib/components/table/YDataTableCell.mjs.map +1 -0
  133. package/lib/components/table/YDataTableControl.mjs +37 -0
  134. package/lib/components/table/YDataTableControl.mjs.map +1 -0
  135. package/lib/components/table/YDataTableControl.scss +6 -0
  136. package/lib/components/table/YDataTableHead.mjs +12 -0
  137. package/lib/components/table/YDataTableHead.mjs.map +1 -0
  138. package/lib/components/table/YDataTableLayer.mjs +14 -0
  139. package/lib/components/table/YDataTableLayer.mjs.map +1 -0
  140. package/lib/components/table/YDataTableRow.mjs +12 -0
  141. package/lib/components/table/YDataTableRow.mjs.map +1 -0
  142. package/lib/components/table/YDataTableServer.mjs +54 -0
  143. package/lib/components/table/YDataTableServer.mjs.map +1 -0
  144. package/lib/components/table/YTable.mjs +53 -0
  145. package/lib/components/table/YTable.mjs.map +1 -0
  146. package/lib/components/table/YTable.scss +61 -0
  147. package/lib/components/table/index.mjs +4 -0
  148. package/lib/components/table/index.mjs.map +1 -0
  149. package/lib/components/table/pagination.mjs +21 -0
  150. package/lib/components/table/pagination.mjs.map +1 -0
  151. package/lib/components/text-highlighter/YTextHighlighter.mjs +94 -0
  152. package/lib/components/text-highlighter/YTextHighlighter.mjs.map +1 -0
  153. package/lib/components/text-highlighter/index.mjs +3 -0
  154. package/lib/components/text-highlighter/index.mjs.map +1 -0
  155. package/lib/components/tooltip/YTooltip.mjs +209 -0
  156. package/lib/components/tooltip/YTooltip.mjs.map +1 -0
  157. package/lib/components/tooltip/YTooltip.scss +19 -0
  158. package/lib/components/tooltip/index.mjs +2 -0
  159. package/lib/components/tooltip/index.mjs.map +1 -0
  160. package/lib/components/transitions/expand-transition.mjs +88 -0
  161. package/lib/components/transitions/expand-transition.mjs.map +1 -0
  162. package/lib/components/transitions/index.mjs +4 -0
  163. package/lib/components/transitions/index.mjs.map +1 -0
  164. package/lib/components/tree-view/YTreeView.mjs +92 -0
  165. package/lib/components/tree-view/YTreeView.mjs.map +1 -0
  166. package/lib/components/tree-view/YTreeView.scss +46 -0
  167. package/lib/components/tree-view/YTreeViewNode.mjs +122 -0
  168. package/lib/components/tree-view/YTreeViewNode.mjs.map +1 -0
  169. package/lib/components/tree-view/index.mjs +3 -0
  170. package/lib/components/tree-view/index.mjs.map +1 -0
  171. package/lib/composables/collections.mjs +2 -0
  172. package/lib/composables/collections.mjs.map +1 -0
  173. package/lib/composables/communication.mjs +46 -0
  174. package/lib/composables/communication.mjs.map +1 -0
  175. package/lib/composables/component.mjs +8 -0
  176. package/lib/composables/component.mjs.map +1 -0
  177. package/{src/composables/layer-group.ts → lib/composables/layer-group.mjs} +8 -10
  178. package/lib/composables/layer-group.mjs.map +1 -0
  179. package/lib/composables/layout.mjs +13 -0
  180. package/lib/composables/layout.mjs.map +1 -0
  181. package/lib/composables/levitation.mjs +135 -0
  182. package/lib/composables/levitation.mjs.map +1 -0
  183. package/{src/composables/progress.ts → lib/composables/progress.mjs} +6 -5
  184. package/lib/composables/progress.mjs.map +1 -0
  185. package/lib/composables/resize-observer.mjs +34 -0
  186. package/lib/composables/resize-observer.mjs.map +1 -0
  187. package/lib/composables/scope.mjs +27 -0
  188. package/lib/composables/scope.mjs.map +1 -0
  189. package/lib/composables/theme/index.mjs +49 -0
  190. package/lib/composables/theme/index.mjs.map +1 -0
  191. package/lib/composables/theme/setting.mjs +46 -0
  192. package/lib/composables/theme/setting.mjs.map +1 -0
  193. package/lib/composables/timing.mjs +77 -0
  194. package/lib/composables/timing.mjs.map +1 -0
  195. package/lib/composables/transition.mjs +50 -0
  196. package/lib/composables/transition.mjs.map +1 -0
  197. package/lib/directives/complement-click/index.mjs +78 -0
  198. package/lib/directives/complement-click/index.mjs.map +1 -0
  199. package/{src/directives/plate-wave/index.ts → lib/directives/plate-wave/index.mjs} +25 -42
  200. package/lib/directives/plate-wave/index.mjs.map +1 -0
  201. package/{src → lib}/directives/plate-wave/plate-wave.scss +1 -1
  202. package/lib/directives/theme-class.mjs +24 -0
  203. package/lib/directives/theme-class.mjs.map +1 -0
  204. package/lib/etc/index.mjs +6 -0
  205. package/lib/etc/index.mjs.map +1 -0
  206. package/lib/index.mjs +55 -0
  207. package/lib/index.mjs.map +1 -0
  208. package/{src/mixins/di.ts → lib/mixins/di.mjs} +7 -8
  209. package/lib/mixins/di.mjs.map +1 -0
  210. package/{src/mixins/rebind-attrs.ts → lib/mixins/rebind-attrs.mjs} +9 -8
  211. package/lib/mixins/rebind-attrs.mjs.map +1 -0
  212. package/{src/styles/palette.scss → lib/styles/_palette.scss} +0 -4
  213. package/lib/styles/base.scss +95 -0
  214. package/lib/styles/settings/_variables.scss +14 -0
  215. package/lib/styles/settings/provided.scss +35 -0
  216. package/lib/styles/theme/dark.scss +21 -0
  217. package/{src → lib}/styles/theme/index.scss +0 -3
  218. package/lib/styles/theme/light.scss +21 -0
  219. package/lib/util/FrameScheduler.mjs +29 -0
  220. package/lib/util/FrameScheduler.mjs.map +1 -0
  221. package/lib/util/Rect.mjs +27 -0
  222. package/lib/util/Rect.mjs.map +1 -0
  223. package/lib/util/common.mjs +66 -0
  224. package/lib/util/common.mjs.map +1 -0
  225. package/lib/util/dom.mjs +8 -0
  226. package/lib/util/dom.mjs.map +1 -0
  227. package/lib/util/scroll.mjs +28 -0
  228. package/lib/util/scroll.mjs.map +1 -0
  229. package/lib/util/string.mjs +33 -0
  230. package/lib/util/string.mjs.map +1 -0
  231. package/lib/util/ui.mjs +83 -0
  232. package/lib/util/ui.mjs.map +1 -0
  233. package/lib/util/validation.mjs +5 -0
  234. package/lib/util/validation.mjs.map +1 -0
  235. package/lib/util/vue-component.mjs +64 -0
  236. package/lib/util/vue-component.mjs.map +1 -0
  237. package/package.json +62 -22
  238. package/types/components/app/YApp.d.ts +7 -0
  239. package/types/components/app/index.d.ts +1 -0
  240. package/types/components/button/YButton.d.ts +122 -0
  241. package/types/components/button/index.d.ts +1 -0
  242. package/types/components/card/YCard.d.ts +11 -0
  243. package/types/components/card/YCardBody.d.ts +2 -0
  244. package/types/components/card/YCardFooter.d.ts +2 -0
  245. package/types/components/card/YCardHeader.d.ts +2 -0
  246. package/types/components/card/index.d.ts +5 -0
  247. package/types/components/checkbox/YCheckbox.d.ts +46 -0
  248. package/types/components/checkbox/YInputCheckbox.d.ts +42 -0
  249. package/types/components/checkbox/index.d.ts +4 -0
  250. package/types/components/chip/YChip.d.ts +34 -0
  251. package/types/components/chip/index.d.ts +2 -0
  252. package/types/components/dialog/YDialog.d.ts +120 -0
  253. package/types/components/dialog/index.d.ts +1 -0
  254. package/types/components/field-input/YFieldInput.d.ts +118 -0
  255. package/types/components/field-input/index.d.ts +1 -0
  256. package/types/components/form/YForm.d.ts +32 -0
  257. package/types/components/form/index.d.ts +3 -0
  258. package/types/components/icons/YIconCheckbox.d.ts +1 -0
  259. package/types/components/icons/YIconClear.d.ts +1 -0
  260. package/types/components/icons/YIconExpand.d.ts +1 -0
  261. package/types/components/icons/index.d.ts +3 -0
  262. package/types/components/index.d.ts +23 -0
  263. package/types/components/input/YInput.d.ts +166 -0
  264. package/types/components/input/index.d.ts +1 -0
  265. package/types/components/layer/YLayer.d.ts +99 -0
  266. package/types/components/layer/index.d.ts +1 -0
  267. package/types/components/list/YList.d.ts +2 -0
  268. package/types/components/list/YListItem.d.ts +28 -0
  269. package/types/components/list/index.d.ts +2 -0
  270. package/types/components/loading/YSpinnerRing.d.ts +1 -0
  271. package/types/components/loading/index.d.ts +1 -0
  272. package/types/components/menu/YMenu.d.ts +236 -0
  273. package/types/components/menu/index.d.ts +1 -0
  274. package/types/components/pagination/YPagination.d.ts +106 -0
  275. package/types/components/pagination/index.d.ts +1 -0
  276. package/types/components/panel/YDividePanel.d.ts +3 -0
  277. package/types/components/panel/index.d.ts +1 -0
  278. package/types/components/plate/YPlate.d.ts +10 -0
  279. package/types/components/plate/index.d.ts +1 -0
  280. package/types/components/progress-bar/YProgressBar.d.ts +59 -0
  281. package/types/components/progress-bar/index.d.ts +1 -0
  282. package/types/components/snackbar/YSnackbar.d.ts +77 -0
  283. package/types/components/snackbar/index.d.ts +1 -0
  284. package/types/components/switch/YSwitch.d.ts +106 -0
  285. package/types/components/switch/index.d.ts +1 -0
  286. package/types/components/table/YDataTable.d.ts +63 -0
  287. package/types/components/table/YDataTableBody.d.ts +2 -0
  288. package/types/components/table/YDataTableControl.d.ts +2 -0
  289. package/types/components/table/YDataTableHead.d.ts +2 -0
  290. package/types/components/table/YDataTableLayer.d.ts +2 -0
  291. package/types/components/table/YDataTableServer.d.ts +82 -0
  292. package/types/components/table/YTable.d.ts +32 -0
  293. package/types/components/table/index.d.ts +3 -0
  294. package/types/components/table/pagination.d.ts +38 -0
  295. package/types/components/tooltip/YTooltip.d.ts +188 -0
  296. package/types/components/tooltip/index.d.ts +1 -0
  297. package/types/components/transitions/expand-transition.d.ts +16 -0
  298. package/types/components/transitions/index.d.ts +32 -0
  299. package/types/components/tree-view/YTreeView.d.ts +37 -0
  300. package/types/components/tree-view/YTreeViewNode.d.ts +51 -0
  301. package/types/components/tree-view/index.d.ts +2 -0
  302. package/types/composables/communication.d.ts +1 -0
  303. package/types/composables/component.d.ts +2 -0
  304. package/types/composables/layer-group.d.ts +5 -0
  305. package/types/composables/progress.d.ts +3 -0
  306. package/types/composables/resize-observer.d.ts +14 -0
  307. package/types/composables/scope.d.ts +2 -0
  308. package/types/composables/theme/index.d.ts +15 -0
  309. package/types/composables/theme/setting.d.ts +12 -0
  310. package/types/composables/timing.d.ts +15 -0
  311. package/types/composables/transition.d.ts +21 -0
  312. package/types/directives/complement-click/index.d.ts +25 -0
  313. package/types/directives/plate-wave/index.d.ts +13 -0
  314. package/types/directives/theme-class.d.ts +3 -0
  315. package/types/etc/index.d.ts +1 -0
  316. package/types/globals.d.ts +11 -0
  317. package/types/index.d.ts +9 -0
  318. package/types/mixins/di.d.ts +2 -0
  319. package/types/mixins/rebind-attrs.d.ts +5 -0
  320. package/types/shims.d.ts +71 -0
  321. package/types/util/common.d.ts +8 -0
  322. package/types/util/dom.d.ts +1 -0
  323. package/types/util/string.d.ts +3 -0
  324. package/types/util/ui.d.ts +9 -0
  325. package/types/util/vue-component.d.ts +33 -0
  326. package/types/vite-env.d.ts +1 -0
  327. package/src/components/button/index.ts +0 -3
  328. package/src/components/button/y-btn.ts +0 -104
  329. package/src/components/card/index.ts +0 -6
  330. package/src/components/card/y-card-body.ts +0 -8
  331. package/src/components/card/y-card-footer.ts +0 -8
  332. package/src/components/card/y-card-header.ts +0 -8
  333. package/src/components/card/y-card.ts +0 -16
  334. package/src/components/checkbox/IconCheckbox.vue +0 -24
  335. package/src/components/checkbox/YCheckbox.vue +0 -113
  336. package/src/components/checkbox/YInputCheckbox.vue +0 -108
  337. package/src/components/checkbox/index.ts +0 -8
  338. package/src/components/chip/index.ts +0 -3
  339. package/src/components/dialog/index.ts +0 -3
  340. package/src/components/dialog/y-dialog.vue +0 -46
  341. package/src/components/field-input/index.scss +0 -5
  342. package/src/components/field-input/index.ts +0 -11
  343. package/src/components/field-input/y-field-input.ts +0 -214
  344. package/src/components/form/index.ts +0 -9
  345. package/src/components/form/y-form.ts +0 -93
  346. package/src/components/icons/icon-clearable.ts +0 -6
  347. package/src/components/index.ts +0 -17
  348. package/src/components/input/index.scss +0 -5
  349. package/src/components/input/index.ts +0 -9
  350. package/src/components/input/y-input.ts +0 -368
  351. package/src/components/layer/index.ts +0 -3
  352. package/src/components/layer/y-layer.vue +0 -146
  353. package/src/components/lottie-player.ts +0 -41
  354. package/src/components/progress-bar/index.ts +0 -3
  355. package/src/components/progress-bar/y-progress-bar.vue +0 -144
  356. package/src/components/ring-spinner/y-ring-spinner.vue +0 -31
  357. package/src/components/switch/YSwitch.vue +0 -217
  358. package/src/components/switch/index.scss +0 -5
  359. package/src/components/switch/index.ts +0 -11
  360. package/src/components/text-highlighter/index.scss +0 -5
  361. package/src/components/text-highlighter/index.ts +0 -3
  362. package/src/components/text-highlighter/y-text-highlighter.ts +0 -89
  363. package/src/composables/lazy.ts +0 -30
  364. package/src/composables/theme.ts +0 -25
  365. package/src/directives/complement-click/index.ts +0 -123
  366. package/src/directives/theme-class.ts +0 -14
  367. package/src/file-extension.d.ts +0 -14
  368. package/src/index.ts +0 -21
  369. package/src/styles/base.scss +0 -28
  370. package/src/styles/theme/dark.scss +0 -35
  371. package/src/styles/theme/light.scss +0 -32
  372. package/src/util/common.ts +0 -59
  373. package/src/util/date-time.ts +0 -41
  374. package/src/util/dom.ts +0 -6
  375. package/src/util/string.ts +0 -9
  376. package/src/util/ui.ts +0 -39
  377. package/src/util/validation.ts +0 -9
  378. package/src/util/vue-component.ts +0 -18
  379. /package/{src/components/card/y-card.scss → lib/components/card/YCard.scss} +0 -0
  380. /package/{src/components/checkbox/y-checkbox.scss → lib/components/checkbox/YCheckbox.scss} +0 -0
  381. /package/{src/components/dialog/y-dialog.scss → lib/components/dialog/YDialog.scss} +0 -0
  382. /package/{src/components/layer/y-layer.scss → lib/components/layer/YLayer.scss} +0 -0
  383. /package/{src/components/text-highlighter/y-text-highlighter.scss → lib/components/text-highlighter/YTextHighlighter.scss} +0 -0
  384. /package/{src/styles/variables.scss → lib/styles/_variables.scss} +0 -0
  385. /package/{src → lib}/styles/util/helper.scss +0 -0
  386. /package/{src → lib}/styles/util/theme.scss +0 -0
@@ -0,0 +1,209 @@
1
+ import { createVNode as _createVNode, Fragment as _Fragment } from "vue";
2
+ import { computed, defineComponent, mergeProps, nextTick, ref, watch, watchEffect } from 'vue';
3
+ import { useModelDuplex } from "../../composables/communication.mjs";
4
+ import { useRender } from "../../composables/component.mjs";
5
+ import { polyTransitionPropOptions } from "../../composables/transition.mjs";
6
+ import { toKebabCase } from "../../util/string.mjs";
7
+ import { bindClasses } from "../../util/vue-component.mjs";
8
+ import { YLayer } from "../layer/index.mjs";
9
+ import { YPlate } from "../plate/index.mjs";
10
+ import "./YTooltip.scss";
11
+ const NAME = 'YTooltip';
12
+ const KEBAB_NAME = toKebabCase(NAME);
13
+ const YTooltipPropOptions = {
14
+ modelValue: {
15
+ type: Boolean,
16
+ default: false
17
+ },
18
+ tooltipClasses: {
19
+ type: [Array, String, Object]
20
+ },
21
+ disabled: {
22
+ type: Boolean,
23
+ default: false
24
+ },
25
+ position: {
26
+ type: String,
27
+ default: 'default'
28
+ },
29
+ align: {
30
+ type: String,
31
+ default: 'center'
32
+ },
33
+ openOnHover: {
34
+ type: Boolean,
35
+ default: true
36
+ },
37
+ preventClip: {
38
+ type: Boolean,
39
+ default: true
40
+ }
41
+ };
42
+
43
+ /**
44
+ * # Component
45
+ */
46
+ export const YTooltip = defineComponent({
47
+ name: NAME,
48
+ props: {
49
+ ...YTooltipPropOptions,
50
+ transition: {
51
+ ...polyTransitionPropOptions.transition,
52
+ default: 'fade'
53
+ }
54
+ },
55
+ emits: ['update:modelValue'],
56
+ setup(props, _ref) {
57
+ let {
58
+ slots,
59
+ emit,
60
+ expose
61
+ } = _ref;
62
+ const el$ = ref();
63
+ const base$ = ref();
64
+ const baseSlot = ref();
65
+ const baseEl = ref();
66
+ const contentEl = ref();
67
+ const classes = computed(() => {
68
+ const boundClasses = bindClasses(props.tooltipClasses);
69
+ return {
70
+ ...boundClasses,
71
+ 'y-tooltip': true
72
+ };
73
+ });
74
+ const model = useModelDuplex(props);
75
+ const active = computed({
76
+ get: () => {
77
+ return !!model.value;
78
+ },
79
+ set: v => {
80
+ if (!(v && props.disabled)) model.value = v;
81
+ }
82
+ });
83
+ const coordinatesStyles = computed(() => {
84
+ const $base = baseEl.value;
85
+ if ($base) {
86
+ const {
87
+ position,
88
+ align
89
+ } = props;
90
+ const $content = contentEl.value;
91
+ const rect = $base.getBoundingClientRect();
92
+ let top = rect.top;
93
+ let left = rect.left + rect.width / 2;
94
+ if ($content) {
95
+ if (position === 'top' || position === 'bottom') {
96
+ if (position === 'top') {
97
+ top -= $content.clientHeight;
98
+ top -= 8; // Offset
99
+ }
100
+
101
+ if (position === 'bottom') {
102
+ top += rect.height;
103
+ top += 8; // Offset
104
+ }
105
+
106
+ if (align === 'center') {
107
+ left -= $content.clientWidth / 2;
108
+ } else if (align === 'end') {
109
+ left = rect.right;
110
+ left -= $content.clientWidth;
111
+ }
112
+ }
113
+ }
114
+ return {
115
+ top: `${top}px`,
116
+ left: `${left}px`
117
+ };
118
+ }
119
+ return {};
120
+ });
121
+ const baseFromSlotEl = computed(() => {
122
+ return baseSlot.value?.[0]?.el;
123
+ });
124
+ watchEffect(() => {
125
+ if (!base$.value) {
126
+ if (baseFromSlotEl.value?.nodeType !== 3) {
127
+ baseEl.value = baseFromSlotEl.value;
128
+ }
129
+ return;
130
+ }
131
+ const base = base$.value;
132
+ baseEl.value = base$.value?.$el ? base$.value?.$el : base;
133
+ });
134
+ watch(active, neo => {
135
+ if (neo) {
136
+ nextTick(() => {
137
+ const $content = el$.value?.content$;
138
+ contentEl.value = $content;
139
+ });
140
+ }
141
+ });
142
+ function onMouseenter(e) {
143
+ if (props.openOnHover) {
144
+ active.value = true;
145
+ }
146
+ }
147
+ function onMouseleave(e) {
148
+ if (props.openOnHover) {
149
+ active.value = false;
150
+ }
151
+ }
152
+ function bindHover(el) {
153
+ el.addEventListener('mouseenter', onMouseenter);
154
+ el.addEventListener('mouseleave', onMouseleave);
155
+ }
156
+ function unbindHover(el) {
157
+ el.removeEventListener('mouseenter', onMouseenter);
158
+ el.removeEventListener('mouseleave', onMouseleave);
159
+ }
160
+ watch(baseEl, (neo, old) => {
161
+ if (neo) {
162
+ bindHover(neo);
163
+ } else if (old) {
164
+ unbindHover(old);
165
+ }
166
+ });
167
+ useRender(() => {
168
+ const slotBase = slots.base?.({
169
+ active: active.value,
170
+ props: mergeProps({
171
+ ref: base$
172
+ })
173
+ });
174
+ baseSlot.value = slotBase;
175
+ return _createVNode(_Fragment, null, [slotBase, _createVNode(YLayer, {
176
+ "modelValue": active.value,
177
+ "onUpdate:modelValue": $event => active.value = $event,
178
+ "ref": el$,
179
+ "classes": classes.value,
180
+ "scrim": false,
181
+ "disabled": props.disabled,
182
+ "content-styles": {
183
+ ...coordinatesStyles.value
184
+ },
185
+ "transition": props.transition
186
+ }, {
187
+ default: function () {
188
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
189
+ args[_key] = arguments[_key];
190
+ }
191
+ return _createVNode(_Fragment, null, [_createVNode(YPlate, null, null), _createVNode("div", {
192
+ "class": "y-tooltip__content"
193
+ }, [slots.default?.(...args) ?? ''])]);
194
+ }
195
+ })]);
196
+ });
197
+ if (import.meta.env.DEV) {
198
+ return {
199
+ base$,
200
+ el$,
201
+ baseEl,
202
+ coordinatesStyles,
203
+ baseSlot,
204
+ active
205
+ };
206
+ }
207
+ }
208
+ });
209
+ //# sourceMappingURL=YTooltip.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YTooltip.mjs","names":["computed","defineComponent","mergeProps","nextTick","ref","watch","watchEffect","useModelDuplex","useRender","polyTransitionPropOptions","toKebabCase","bindClasses","YLayer","YPlate","NAME","KEBAB_NAME","YTooltipPropOptions","modelValue","type","Boolean","default","tooltipClasses","Array","String","Object","disabled","position","align","openOnHover","preventClip","YTooltip","name","props","transition","emits","setup","_ref","slots","emit","expose","el$","base$","baseSlot","baseEl","contentEl","classes","boundClasses","model","active","get","value","set","v","coordinatesStyles","$base","$content","rect","getBoundingClientRect","top","left","width","clientHeight","height","clientWidth","right","baseFromSlotEl","el","nodeType","base","$el","neo","content$","onMouseenter","e","onMouseleave","bindHover","addEventListener","unbindHover","removeEventListener","old","slotBase","_createVNode","_Fragment","$event","_len","arguments","length","args","_key","import","meta","env","DEV"],"sources":["../../../src/components/tooltip/YTooltip.tsx"],"sourcesContent":["import type { CSSProperties, PropType } from 'vue';\nimport {\n computed,\n defineComponent,\n mergeProps,\n nextTick,\n ref,\n watch,\n watchEffect,\n} from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { polyTransitionPropOptions } from '../../composables/transition';\nimport { toKebabCase } from '../../util/string';\nimport { bindClasses } from '../../util/vue-component';\nimport { YLayer } from '../layer';\nimport { YPlate } from '../plate';\n\nimport './YTooltip.scss';\n\nconst NAME = 'YTooltip';\nconst KEBAB_NAME = toKebabCase(NAME);\n\nconst YTooltipPropOptions = {\n modelValue: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n tooltipClasses: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n disabled: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n position: {\n type: String as PropType<'default' | 'top' | 'bottom' | 'left' | 'right'>,\n default: 'default',\n },\n align: {\n type: String as PropType<'center' | 'start' | 'end'>,\n default: 'center',\n },\n openOnHover: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n preventClip: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n};\n\n/**\n * # Component\n */\nexport const YTooltip = defineComponent({\n name: NAME,\n props: {\n ...YTooltipPropOptions,\n transition: {\n ...polyTransitionPropOptions.transition,\n default: 'fade',\n },\n },\n emits: ['update:modelValue'],\n setup(props, { slots, emit, expose }) {\n const el$ = ref<typeof YLayer>();\n const base$ = ref();\n const baseSlot = ref();\n const baseEl = ref<HTMLElement>();\n const contentEl = ref<HTMLElement>();\n\n const classes = computed(() => {\n const boundClasses = bindClasses(props.tooltipClasses);\n return {\n ...boundClasses,\n 'y-tooltip': true,\n };\n });\n\n const model = useModelDuplex(props);\n\n const active = computed({\n get: (): boolean => {\n return !!model.value;\n },\n set: (v: boolean) => {\n if (!(v && props.disabled)) model.value = v;\n },\n });\n\n const coordinatesStyles = computed<CSSProperties>(() => {\n const $base = baseEl.value;\n if ($base) {\n const { position, align } = props;\n const $content = contentEl.value;\n const rect = $base.getBoundingClientRect();\n\n let top = rect.top;\n let left = rect.left + rect.width / 2;\n\n if ($content) {\n if (position === 'top' || position === 'bottom') {\n if (position === 'top') {\n top -= $content.clientHeight;\n top -= 8; // Offset\n }\n\n if (position === 'bottom') {\n top += rect.height;\n top += 8; // Offset\n }\n\n if (align === 'center') {\n left -= $content.clientWidth / 2;\n } else if (align === 'end') {\n left = rect.right;\n left -= $content.clientWidth;\n }\n }\n }\n\n return {\n top: `${top}px`,\n left: `${left}px`,\n };\n }\n return {};\n });\n\n const baseFromSlotEl = computed(() => {\n return baseSlot.value?.[0]?.el;\n });\n\n watchEffect(() => {\n if (!base$.value) {\n if (baseFromSlotEl.value?.nodeType !== 3) {\n baseEl.value = baseFromSlotEl.value;\n }\n return;\n }\n const base = base$.value;\n baseEl.value = base$.value?.$el ? base$.value?.$el : base;\n });\n\n watch(active, (neo) => {\n if (neo) {\n nextTick(() => {\n const $content = el$.value?.content$;\n contentEl.value = $content;\n });\n }\n });\n\n function onMouseenter(e: MouseEvent) {\n if (props.openOnHover) {\n active.value = true;\n }\n }\n\n function onMouseleave(e: MouseEvent) {\n if (props.openOnHover) {\n active.value = false;\n }\n }\n\n function bindHover(el: HTMLElement) {\n el.addEventListener('mouseenter', onMouseenter);\n el.addEventListener('mouseleave', onMouseleave);\n }\n\n function unbindHover(el: HTMLElement) {\n el.removeEventListener('mouseenter', onMouseenter);\n el.removeEventListener('mouseleave', onMouseleave);\n }\n\n watch(baseEl, (neo, old) => {\n if (neo) {\n bindHover(neo);\n } else if (old) {\n unbindHover(old);\n }\n });\n\n useRender(() => {\n const slotBase = slots.base?.({\n active: active.value,\n props: mergeProps({\n ref: base$,\n }),\n });\n baseSlot.value = slotBase;\n return (\n <>\n {slotBase}\n <YLayer\n v-model={active.value}\n ref={el$}\n classes={classes.value}\n scrim={false}\n disabled={props.disabled}\n content-styles={{ ...coordinatesStyles.value }}\n transition={props.transition}\n >\n {{\n default: (...args: any) => {\n return (\n <>\n <YPlate></YPlate>\n <div class=\"y-tooltip__content\">\n {slots.default?.(...args) ?? ''}\n </div>\n </>\n );\n },\n }}\n </YLayer>\n </>\n );\n });\n\n if (import.meta.env.DEV) {\n return {\n base$,\n el$,\n baseEl,\n coordinatesStyles,\n baseSlot,\n active,\n };\n }\n },\n});\n"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ .y-tooltip {
2
+ font-size: 0.875rem;
3
+
4
+ .y-layer__content {
5
+ padding: 4px 8px;
6
+
7
+ .y-plate {
8
+ border-radius: 6px;
9
+ background: rgba(0, 0, 0, 0.8);
10
+ position: absolute;
11
+ inset: 0;
12
+ }
13
+ }
14
+
15
+ &__content {
16
+ position: relative;
17
+ color: #fff;
18
+ }
19
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./YTooltip.mjs";
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/components/tooltip/index.ts"],"sourcesContent":["export * from './YTooltip';\r\n"],"mappings":""}
@@ -0,0 +1,88 @@
1
+ import { Transition, defineComponent, h } from 'vue';
2
+ import { kebabToCamel } from "../../util/string.mjs";
3
+ export function createExpandTransition() {
4
+ let isHorizon = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
5
+ const direction = isHorizon ? 'h' : 'v';
6
+ const name = `expand-${direction}-transition`;
7
+ const sizeProperty = isHorizon ? 'width' : 'height';
8
+ const offsetProperty = kebabToCamel(`offset-${sizeProperty}`);
9
+ function getExpandTransitionHooks() {
10
+ function resetStyle(el) {
11
+ if (el._originStyle) {
12
+ el.style.overflow = el._originStyle.overflow;
13
+ const size = el._originStyle[sizeProperty];
14
+ if (size != null) {
15
+ el.style[sizeProperty] = size;
16
+ }
17
+ }
18
+ delete el._originStyle;
19
+ }
20
+ return {
21
+ onBeforeEnter(el) {
22
+ el._parent = el.parentNode;
23
+ el._originStyle = {
24
+ transition: el.style.transition,
25
+ overflow: el.style.overflow,
26
+ [sizeProperty]: el.style[sizeProperty]
27
+ };
28
+ },
29
+ onEnter(el) {
30
+ const originStyle = el._originStyle;
31
+ el.style.setProperty('transition', 'none', 'important');
32
+ el.style.overflow = 'hidden';
33
+ const offsetSize = `${el[offsetProperty]}px`;
34
+ el.style[sizeProperty] = '0';
35
+ el.getBoundingClientRect();
36
+ el.style.transition = originStyle?.transition ?? '';
37
+ requestAnimationFrame(() => {
38
+ el.style[sizeProperty] = offsetSize;
39
+ });
40
+ },
41
+ onAfterEnter(el) {
42
+ resetStyle(el);
43
+ },
44
+ onEnterCancelled(el) {
45
+ resetStyle(el);
46
+ },
47
+ onLeave(el) {
48
+ el._originStyle = {
49
+ transition: '',
50
+ overflow: el.style.overflow,
51
+ [sizeProperty]: el.style[sizeProperty]
52
+ };
53
+ el.style.overflow = 'hidden';
54
+ el.style[sizeProperty] = `${el[offsetProperty]}px`;
55
+ el.getBoundingClientRect();
56
+ requestAnimationFrame(() => {
57
+ el.style[sizeProperty] = '0';
58
+ });
59
+ },
60
+ onAfterLeave(el) {
61
+ resetStyle(el);
62
+ },
63
+ onLeaveCancelled(el) {
64
+ resetStyle(el);
65
+ }
66
+ };
67
+ }
68
+ return defineComponent({
69
+ name,
70
+ props: {
71
+ disabled: {
72
+ type: Boolean,
73
+ default: false
74
+ }
75
+ },
76
+ setup(props, _ref) {
77
+ let {
78
+ slots
79
+ } = _ref;
80
+ return () => h(Transition, {
81
+ name: props.disabled ? '' : name,
82
+ css: !props.disabled,
83
+ ...(props.disabled ? {} : getExpandTransitionHooks())
84
+ }, slots.default);
85
+ }
86
+ });
87
+ }
88
+ //# sourceMappingURL=expand-transition.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expand-transition.mjs","names":["Transition","defineComponent","h","kebabToCamel","createExpandTransition","isHorizon","arguments","length","undefined","direction","name","sizeProperty","offsetProperty","getExpandTransitionHooks","resetStyle","el","_originStyle","style","overflow","size","onBeforeEnter","_parent","parentNode","transition","onEnter","originStyle","setProperty","offsetSize","getBoundingClientRect","requestAnimationFrame","onAfterEnter","onEnterCancelled","onLeave","onAfterLeave","onLeaveCancelled","props","disabled","type","Boolean","default","setup","_ref","slots","css"],"sources":["../../../src/components/transitions/expand-transition.ts"],"sourcesContent":["import { PropType, Transition, defineComponent, h } from 'vue';\n\nimport { kebabToCamel } from '../../util/string';\n\ntype HTMLParentElement = (Node & ParentNode & HTMLElement) | null;\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: HTMLParentElement;\n _originStyle?: {\n transition: string;\n overflow: string;\n height?: string | null;\n width?: string | null;\n };\n}\n\nexport function createExpandTransition(isHorizon = false) {\n const direction = isHorizon ? 'h' : 'v';\n const name = `expand-${direction}-transition`;\n const sizeProperty = isHorizon ? 'width' : 'height';\n const offsetProperty = kebabToCamel(`offset-${sizeProperty}`) as\n | 'offsetWidth'\n | 'offsetHeight';\n\n function getExpandTransitionHooks(): Record<string, any> {\n function resetStyle(el: HTMLExpandElement) {\n if (el._originStyle) {\n el.style.overflow = el._originStyle.overflow;\n const size = el._originStyle[sizeProperty];\n if (size != null) {\n el.style[sizeProperty] = size;\n }\n }\n delete el._originStyle;\n }\n\n return {\n onBeforeEnter(el: HTMLExpandElement) {\n el._parent = el.parentNode as HTMLParentElement;\n el._originStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n };\n },\n onEnter(el: HTMLExpandElement) {\n const originStyle = el._originStyle;\n el.style.setProperty('transition', 'none', 'important');\n el.style.overflow = 'hidden';\n const offsetSize = `${el[offsetProperty]}px`;\n el.style[sizeProperty] = '0';\n el.getBoundingClientRect();\n el.style.transition = originStyle?.transition ?? '';\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offsetSize;\n });\n },\n onAfterEnter(el: HTMLExpandElement) {\n resetStyle(el);\n },\n onEnterCancelled(el: HTMLExpandElement) {\n resetStyle(el);\n },\n onLeave(el: HTMLExpandElement) {\n el._originStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n };\n el.style.overflow = 'hidden';\n el.style[sizeProperty] = `${el[offsetProperty]}px`;\n el.getBoundingClientRect();\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = '0';\n })\n },\n onAfterLeave(el: HTMLExpandElement) {\n resetStyle(el);\n },\n onLeaveCancelled(el: HTMLExpandElement) {\n resetStyle(el);\n },\n };\n }\n\n return defineComponent({\n name,\n props: {\n disabled: {\n type: Boolean as PropType<boolean>,\n default: false,\n },\n },\n setup(props, { slots }) {\n return () =>\n h(\n Transition,\n { name: props.disabled ? '' : name, css: !props.disabled, ...(props.disabled ? {} : getExpandTransitionHooks()) },\n slots.default,\n );\n },\n });\n}\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { createExpandTransition } from "./expand-transition.mjs";
2
+ export const YExpandVTransition = createExpandTransition(false);
3
+ export const YExpandHTransition = createExpandTransition(true);
4
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["createExpandTransition","YExpandVTransition","YExpandHTransition"],"sources":["../../../src/components/transitions/index.ts"],"sourcesContent":["import { createExpandTransition } from './expand-transition';\n\nexport const YExpandVTransition = createExpandTransition(false);\nexport const YExpandHTransition = createExpandTransition(true);\n\nexport type YExpandVTransition = InstanceType<typeof YExpandVTransition>;\nexport type YExpandHTransition = InstanceType<typeof YExpandHTransition>;\n"],"mappings":"SAASA,sBAAsB;AAE/B,OAAO,MAAMC,kBAAkB,GAAGD,sBAAsB,CAAC,KAAK,CAAC;AAC/D,OAAO,MAAME,kBAAkB,GAAGF,sBAAsB,CAAC,IAAI,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { createTextVNode as _createTextVNode, createVNode as _createVNode, resolveDirective as _resolveDirective, Fragment as _Fragment } from "vue";
2
+ import { computed, defineComponent, provide, ref, watch } from 'vue';
3
+ import { useRender } from "../../composables/component.mjs";
4
+ import { getObjectValueByPath, hasOwnProperty } from "../../util/common.mjs";
5
+ import { YTreeViewNode } from "./YTreeViewNode.mjs";
6
+ import "./YTreeView.scss";
7
+ export const YTreeView = defineComponent({
8
+ name: 'YTreeView',
9
+ props: {
10
+ items: {
11
+ type: Array,
12
+ default: () => []
13
+ },
14
+ itemKey: {
15
+ type: String,
16
+ default: 'id'
17
+ },
18
+ childrenKey: {
19
+ type: String,
20
+ default: 'children'
21
+ }
22
+ },
23
+ setup(props, _ref) {
24
+ let {
25
+ slots
26
+ } = _ref;
27
+ const classes = computed(() => {
28
+ return {
29
+ 'y-tree-view': true
30
+ };
31
+ });
32
+ const nodes = ref({});
33
+ const expanded = ref([]);
34
+ function updateNodes(items) {
35
+ let parentKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
36
+ for (const item of items) {
37
+ const key = getObjectValueByPath(item, props.itemKey);
38
+ const children = getObjectValueByPath(item, props.childrenKey) ?? [];
39
+ const exist = hasOwnProperty(nodes.value, key);
40
+ const oldNode = exist ? nodes.value[key] : {
41
+ selected: false,
42
+ indeterminate: false,
43
+ active: false,
44
+ opened: false,
45
+ vnode: null
46
+ };
47
+ const node = {
48
+ vnode: oldNode.vnode,
49
+ item,
50
+ parentKey,
51
+ childKeys: children.map(child => getObjectValueByPath(child, props.itemKey))
52
+ };
53
+ updateNodes(children, key);
54
+ nodes.value[key] = node;
55
+ }
56
+ }
57
+ updateNodes(props.items);
58
+ watch(() => props.items, neo => {
59
+ updateNodes(neo);
60
+ }, {
61
+ deep: true
62
+ });
63
+ function register(key, vnode) {
64
+ if (nodes.value[key]) {
65
+ nodes.value[key].vnode = vnode;
66
+ }
67
+ }
68
+ provide('tree-view', {
69
+ register
70
+ });
71
+ const renderLeaves = computed(() => {
72
+ return props.items;
73
+ });
74
+ useRender(() => {
75
+ return _createVNode(_Fragment, null, [_createVNode("div", {
76
+ "class": classes.value,
77
+ "role": "tree"
78
+ }, [renderLeaves.value.length > 0 ? renderLeaves.value.map(leaf => {
79
+ return _createVNode(YTreeViewNode, {
80
+ "item": leaf,
81
+ "level": 0
82
+ }, slots);
83
+ }) : _createVNode("div", {
84
+ "class": "y-tree-view__no-data"
85
+ }, [slots['no-data'] ? slots['no-data']() : _createVNode("span", null, [_createTextVNode("No Data")])])])]);
86
+ });
87
+ return {
88
+ nodes
89
+ };
90
+ }
91
+ });
92
+ //# sourceMappingURL=YTreeView.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YTreeView.mjs","names":["computed","defineComponent","provide","ref","watch","useRender","getObjectValueByPath","hasOwnProperty","YTreeViewNode","YTreeView","name","props","items","type","Array","default","itemKey","String","childrenKey","setup","_ref","slots","classes","nodes","expanded","updateNodes","parentKey","arguments","length","undefined","item","key","children","exist","value","oldNode","selected","indeterminate","active","opened","vnode","node","childKeys","map","child","neo","deep","register","renderLeaves","_createVNode","_Fragment","leaf","_createTextVNode"],"sources":["../../../src/components/tree-view/YTreeView.tsx"],"sourcesContent":["import {\r\n PropType,\r\n VNode,\r\n computed,\r\n defineComponent,\r\n provide,\r\n ref,\r\n watch,\r\n} from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { getObjectValueByPath, hasOwnProperty } from '../../util/common';\r\nimport { YTreeViewNode } from './YTreeViewNode';\r\n\r\nimport './YTreeView.scss';\r\n\r\ntype NodeKey = string | number;\r\n\r\nexport const YTreeView = defineComponent({\r\n name: 'YTreeView',\r\n props: {\r\n items: {\r\n type: Array as PropType<any[]>,\r\n default: () => [],\r\n },\r\n itemKey: {\r\n type: String as PropType<string>,\r\n default: 'id',\r\n },\r\n childrenKey: {\r\n type: String as PropType<string>,\r\n default: 'children',\r\n },\r\n },\r\n setup(props, { slots }) {\r\n const classes = computed(() => {\r\n return {\r\n 'y-tree-view': true,\r\n };\r\n });\r\n\r\n const nodes = ref<Record<NodeKey, any>>({});\r\n\r\n const expanded = ref<string[]>([]);\r\n\r\n function updateNodes(items: any[], parentKey: NodeKey | null = null) {\r\n for (const item of items) {\r\n const key = getObjectValueByPath(item, props.itemKey);\r\n const children = getObjectValueByPath(item, props.childrenKey) ?? [];\r\n const exist = hasOwnProperty(nodes.value, key);\r\n const oldNode = exist\r\n ? nodes.value[key]\r\n : {\r\n selected: false,\r\n indeterminate: false,\r\n active: false,\r\n opened: false,\r\n vnode: null,\r\n };\r\n const node = {\r\n vnode: oldNode.vnode,\r\n item,\r\n parentKey,\r\n childKeys: children.map((child: any) =>\r\n getObjectValueByPath(child, props.itemKey),\r\n ),\r\n };\r\n\r\n updateNodes(children, key);\r\n\r\n nodes.value[key] = node;\r\n }\r\n }\r\n\r\n updateNodes(props.items);\r\n watch(\r\n () => props.items,\r\n (neo: any[]) => {\r\n updateNodes(neo);\r\n },\r\n { deep: true },\r\n );\r\n\r\n function register(key: string | number, vnode: VNode) {\r\n if (nodes.value[key]) {\r\n nodes.value[key].vnode = vnode;\r\n }\r\n }\r\n\r\n provide('tree-view', { register });\r\n\r\n const renderLeaves = computed(() => {\r\n return props.items;\r\n });\r\n\r\n useRender(() => {\r\n return (\r\n <>\r\n <div class={classes.value} role=\"tree\">\r\n {renderLeaves.value.length > 0 ? (\r\n renderLeaves.value.map((leaf) => {\r\n return (\r\n <YTreeViewNode item={leaf} level={0} v-slots={slots}>\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 };\r\n },\r\n});\r\n\r\nexport type YTreeView = InstanceType<typeof YTreeView>;\r\n"],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ .y-tree-view {
2
+ }
3
+
4
+ .y-tree-view-node {
5
+ &__container {
6
+ display: flex;
7
+ align-items: center;
8
+ padding: 0 8px;
9
+ min-height: 2rem;
10
+ border-radius: 8px;
11
+ transition: all 180ms ease-in, border-radius 300ms 100ms ease-in-out;
12
+
13
+ &:hover {
14
+ background: rgba(124, 124, 124, 0.14);
15
+ border-radius: 4px;
16
+ }
17
+ }
18
+
19
+ &__expand-icon,
20
+ &__no-expand-icon {
21
+ display: inline-flex;
22
+ align-items: center;
23
+ width: 12px;
24
+ margin-right: 8px;
25
+ }
26
+
27
+ &__indents {
28
+ display: flex;
29
+ }
30
+
31
+ &__indent-spacer {
32
+ width: 1rem;
33
+ }
34
+
35
+ &__content {
36
+ font-size: 0.875rem;
37
+ display: flex;
38
+ align-items: center;
39
+ }
40
+
41
+ &__leading {
42
+ margin-right: 8px;
43
+ display: inline-flex;
44
+ align-items: center;
45
+ }
46
+ }
@@ -0,0 +1,122 @@
1
+ import { computed, defineComponent, h, inject } from 'vue';
2
+ import { useRender } from "../../composables/component.mjs";
3
+ import { getObjectValueByPath } from "../../util/common.mjs";
4
+ import { YIconExpand } from "../icons/index.mjs";
5
+ export const YTreeViewNode = defineComponent({
6
+ name: 'YTreeNode',
7
+ props: {
8
+ item: {
9
+ type: Object
10
+ },
11
+ itemKey: {
12
+ type: String,
13
+ default: 'id'
14
+ },
15
+ textKey: {
16
+ type: String,
17
+ default: 'text'
18
+ },
19
+ childrenKey: {
20
+ type: String,
21
+ default: 'children'
22
+ },
23
+ level: {
24
+ type: Number,
25
+ default: 0
26
+ }
27
+ },
28
+ setup(props, _ref) {
29
+ let {
30
+ slots
31
+ } = _ref;
32
+ const treeView = inject('tree-view');
33
+ const children = computed(() => {
34
+ return props.item?.[props.childrenKey] ?? [];
35
+ });
36
+ const imLeaf = computed(() => children.value.length < 1);
37
+ const classes = computed(() => {
38
+ return {
39
+ 'y-tree-view-node': true,
40
+ 'y-tree-view-node--leaf': imLeaf.value
41
+ };
42
+ });
43
+ const styles = computed(() => {
44
+ return {
45
+ '--tree-view-node--level': props.level
46
+ };
47
+ });
48
+ const contentText = computed(() => {
49
+ return getObjectValueByPath(props.item, props.textKey) ?? '';
50
+ });
51
+ const slotProps = computed(() => {
52
+ return {
53
+ level: props.level,
54
+ imLeaf: imLeaf.value
55
+ };
56
+ });
57
+ useRender(() => {
58
+ const leaves = children.value.map(item => {
59
+ return h(YTreeViewNode, {
60
+ ...props,
61
+ level: (props.level ?? 0) + 1,
62
+ item
63
+ }, slots);
64
+ });
65
+ const indentSpacer = [];
66
+ for (let i = 0; i < props.level; i += 1) {
67
+ indentSpacer.push(h('div', {
68
+ class: 'y-tree-view-node__indent-spacer'
69
+ }));
70
+ }
71
+ return h('div', {
72
+ class: classes.value,
73
+ style: styles.value,
74
+ '.role': 'treeitem',
75
+ 'data-level': props.level
76
+ }, [h('div', {
77
+ class: 'y-tree-view-node__container'
78
+ }, [h('div', {
79
+ class: 'y-tree-view-node__indents'
80
+ }, indentSpacer), /* EXPAND */
81
+ !imLeaf.value ? h('i', {
82
+ class: 'y-tree-view-node__expand-icon'
83
+ }, [slots['expand-icon'] ? slots['expand-icon']() : h(YIconExpand, {
84
+ style: {
85
+ width: '12px',
86
+ height: '12px'
87
+ }
88
+ })]) : h('i', {
89
+ class: 'y-tree-view-node__no-expand-icon'
90
+ }), /* CONTENT */
91
+ h('div', {
92
+ class: 'y-tree-view-node__content'
93
+ }, [slots.leading && h('div', {
94
+ class: 'y-tree-view-node__leading'
95
+ }, slots.leading(slotProps.value)), h('div', {
96
+ class: 'y-tree-view-node__text'
97
+ }, slots.default ? slots.default?.({
98
+ text: contentText.value,
99
+ item: props.item
100
+ }) : contentText.value), slots.trailing && h('div', {
101
+ class: 'y-tree-view-node__trailing'
102
+ }, slots.trailing())])]), /* CHILDREN */
103
+ children.value.length > 0 ? h('div', {
104
+ class: {
105
+ 'y-tree-view-node__leaves': true
106
+ },
107
+ role: 'tree'
108
+ }, leaves) : undefined]);
109
+ });
110
+ const myKey = computed(() => {
111
+ return getObjectValueByPath(props.item, props.itemKey);
112
+ });
113
+ return {
114
+ treeView,
115
+ myKey
116
+ };
117
+ },
118
+ created() {
119
+ this.treeView?.register?.(this.myKey, this);
120
+ }
121
+ });
122
+ //# sourceMappingURL=YTreeViewNode.mjs.map