@ncds/ui-admin 1.8.1 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/dist/cjs/src/components/badge/index.js +11 -0
  2. package/dist/cjs/src/components/date-picker/index.js +11 -0
  3. package/dist/cjs/src/components/image-file-input/components/index.js +16 -0
  4. package/dist/cjs/src/components/image-file-input/index.js +11 -0
  5. package/dist/cjs/src/components/progress-bar/components/index.js +27 -0
  6. package/dist/cjs/src/components/progress-bar/hooks/index.js +16 -0
  7. package/dist/cjs/src/components/progress-bar/index.js +33 -0
  8. package/dist/cjs/src/components/select/Select.js +0 -1
  9. package/dist/cjs/src/components/select-dropdown/index.js +11 -7
  10. package/dist/cjs/src/components/switch/index.js +11 -7
  11. package/dist/cjs/src/components/tooltip/Tooltip.js +170 -104
  12. package/dist/cjs/src/hooks/dropdown/index.js +61 -37
  13. package/dist/cjs/src/hooks/index.js +31 -25
  14. package/dist/cjs/vitest.config.js +13 -0
  15. package/dist/esm/src/components/badge/index.js +2 -1
  16. package/dist/esm/src/components/date-picker/index.js +1 -0
  17. package/dist/esm/src/components/empty-state/EmptyState.js +2 -3
  18. package/dist/esm/src/components/image-file-input/components/index.js +1 -0
  19. package/dist/esm/src/components/image-file-input/index.js +2 -1
  20. package/dist/esm/src/components/progress-bar/components/index.js +2 -0
  21. package/dist/esm/src/components/progress-bar/hooks/index.js +1 -0
  22. package/dist/esm/src/components/progress-bar/index.js +4 -1
  23. package/dist/esm/src/components/select/Select.js +0 -1
  24. package/dist/esm/src/components/select-dropdown/index.js +1 -1
  25. package/dist/esm/src/components/switch/index.js +1 -1
  26. package/dist/esm/src/components/tag/Tag.js +2 -3
  27. package/dist/esm/src/components/tooltip/Tooltip.js +172 -106
  28. package/dist/esm/src/hooks/dropdown/index.js +6 -6
  29. package/dist/esm/src/hooks/index.js +3 -3
  30. package/dist/esm/src/types/component-meta.js +2 -0
  31. package/dist/esm/vitest.config.js +7 -0
  32. package/dist/temp/src/components/badge/index.d.ts +1 -0
  33. package/dist/temp/src/components/badge/index.js +1 -0
  34. package/dist/temp/src/components/date-picker/index.d.ts +1 -0
  35. package/dist/temp/src/components/date-picker/index.js +1 -0
  36. package/dist/temp/src/components/empty-state/EmptyState.d.ts +3 -5
  37. package/dist/temp/src/components/empty-state/EmptyState.js +1 -2
  38. package/dist/temp/src/components/image-file-input/components/index.d.ts +1 -0
  39. package/dist/temp/src/components/image-file-input/components/index.js +1 -0
  40. package/dist/temp/src/components/image-file-input/index.d.ts +1 -0
  41. package/dist/temp/src/components/image-file-input/index.js +1 -0
  42. package/dist/temp/src/components/progress-bar/components/index.d.ts +2 -0
  43. package/dist/temp/src/components/progress-bar/components/index.js +2 -0
  44. package/dist/temp/src/components/progress-bar/hooks/index.d.ts +1 -0
  45. package/dist/temp/src/components/progress-bar/hooks/index.js +1 -0
  46. package/dist/temp/src/components/progress-bar/index.d.ts +3 -0
  47. package/dist/temp/src/components/progress-bar/index.js +3 -0
  48. package/dist/temp/src/components/select/Select.js +1 -1
  49. package/dist/temp/src/components/select-dropdown/index.d.ts +1 -1
  50. package/dist/temp/src/components/select-dropdown/index.js +1 -1
  51. package/dist/temp/src/components/spinner/Spinner.d.ts +1 -2
  52. package/dist/temp/src/components/switch/index.d.ts +1 -2
  53. package/dist/temp/src/components/switch/index.js +1 -1
  54. package/dist/temp/src/components/tag/Tag.d.ts +3 -5
  55. package/dist/temp/src/components/tag/Tag.js +1 -2
  56. package/dist/temp/src/components/tooltip/Tooltip.d.ts +4 -2
  57. package/dist/temp/src/components/tooltip/Tooltip.js +126 -68
  58. package/dist/temp/src/hooks/dropdown/index.d.ts +6 -6
  59. package/dist/temp/src/hooks/dropdown/index.js +6 -6
  60. package/dist/temp/src/hooks/index.d.ts +3 -3
  61. package/dist/temp/src/hooks/index.js +3 -3
  62. package/dist/temp/src/types/component-meta.d.ts +26 -0
  63. package/dist/temp/src/types/component-meta.js +2 -0
  64. package/dist/temp/src/types/dropdown/option.d.ts +2 -4
  65. package/dist/temp/src/types/side-slot.d.ts +9 -1
  66. package/dist/temp/vitest.config.d.ts +2 -0
  67. package/dist/temp/vitest.config.js +7 -0
  68. package/dist/types/src/components/badge/index.d.ts +1 -0
  69. package/dist/types/src/components/date-picker/index.d.ts +1 -0
  70. package/dist/types/src/components/empty-state/EmptyState.d.ts +3 -5
  71. package/dist/types/src/components/image-file-input/components/index.d.ts +1 -0
  72. package/dist/types/src/components/image-file-input/index.d.ts +1 -0
  73. package/dist/types/src/components/progress-bar/components/index.d.ts +2 -0
  74. package/dist/types/src/components/progress-bar/hooks/index.d.ts +1 -0
  75. package/dist/types/src/components/progress-bar/index.d.ts +3 -0
  76. package/dist/types/src/components/select-dropdown/index.d.ts +1 -1
  77. package/dist/types/src/components/spinner/Spinner.d.ts +1 -2
  78. package/dist/types/src/components/switch/index.d.ts +1 -2
  79. package/dist/types/src/components/tag/Tag.d.ts +3 -5
  80. package/dist/types/src/components/tooltip/Tooltip.d.ts +4 -2
  81. package/dist/types/src/hooks/dropdown/index.d.ts +6 -6
  82. package/dist/types/src/hooks/index.d.ts +3 -3
  83. package/dist/types/src/types/component-meta.d.ts +26 -0
  84. package/dist/types/src/types/dropdown/option.d.ts +2 -4
  85. package/dist/types/src/types/side-slot.d.ts +9 -1
  86. package/dist/types/vitest.config.d.ts +2 -0
  87. package/dist/ui-admin/assets/styles/style.css +18 -7
  88. package/package.json +6 -1
  89. package/dist/cjs/assets/scripts/baseBox.js +0 -146
  90. package/dist/cjs/assets/scripts/comboBox.js +0 -137
  91. package/dist/cjs/assets/scripts/datePicker.js +0 -671
  92. package/dist/cjs/assets/scripts/featuredIcon.js +0 -87
  93. package/dist/cjs/assets/scripts/fileInput/const/classNames.js +0 -25
  94. package/dist/cjs/assets/scripts/fileInput/const/index.js +0 -27
  95. package/dist/cjs/assets/scripts/fileInput/const/types.js +0 -13
  96. package/dist/cjs/assets/scripts/fileInput/fileInput.js +0 -78
  97. package/dist/cjs/assets/scripts/fileInput/fileInputModel.js +0 -53
  98. package/dist/cjs/assets/scripts/fileInput/fileInputView.js +0 -152
  99. package/dist/cjs/assets/scripts/fileInput/index.js +0 -44
  100. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInput.js +0 -184
  101. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputModel.js +0 -222
  102. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputView.js +0 -356
  103. package/dist/cjs/assets/scripts/imageFileInput/const/classNames.js +0 -31
  104. package/dist/cjs/assets/scripts/imageFileInput/const/index.js +0 -27
  105. package/dist/cjs/assets/scripts/imageFileInput/const/types.js +0 -13
  106. package/dist/cjs/assets/scripts/imageFileInput/index.js +0 -44
  107. package/dist/cjs/assets/scripts/index.js +0 -32
  108. package/dist/cjs/assets/scripts/modal/Modal.js +0 -104
  109. package/dist/cjs/assets/scripts/modal/ModalActions.js +0 -116
  110. package/dist/cjs/assets/scripts/modal/ModalContent.js +0 -46
  111. package/dist/cjs/assets/scripts/modal/ModalHeader.js +0 -104
  112. package/dist/cjs/assets/scripts/modal/const/classNames.js +0 -33
  113. package/dist/cjs/assets/scripts/modal/const/index.js +0 -27
  114. package/dist/cjs/assets/scripts/modal/index.js +0 -61
  115. package/dist/cjs/assets/scripts/modal/utils/contentUtils.js +0 -35
  116. package/dist/cjs/assets/scripts/notification/FloatingNotification.js +0 -178
  117. package/dist/cjs/assets/scripts/notification/FullWidthNotification.js +0 -132
  118. package/dist/cjs/assets/scripts/notification/MessageNotification.js +0 -159
  119. package/dist/cjs/assets/scripts/notification/Notification.js +0 -101
  120. package/dist/cjs/assets/scripts/notification/const/classNames.js +0 -50
  121. package/dist/cjs/assets/scripts/notification/const/icons.js +0 -31
  122. package/dist/cjs/assets/scripts/notification/const/index.js +0 -87
  123. package/dist/cjs/assets/scripts/notification/const/sizes.js +0 -46
  124. package/dist/cjs/assets/scripts/notification/const/types.js +0 -14
  125. package/dist/cjs/assets/scripts/notification/index.js +0 -92
  126. package/dist/cjs/assets/scripts/notification/utils.js +0 -97
  127. package/dist/cjs/assets/scripts/progress-bar/ProgressBar.js +0 -271
  128. package/dist/cjs/assets/scripts/progress-bar/index.js +0 -12
  129. package/dist/cjs/assets/scripts/selectBox.js +0 -169
  130. package/dist/cjs/assets/scripts/shared/ButtonCloseX.js +0 -45
  131. package/dist/cjs/assets/scripts/tab.js +0 -40
  132. package/dist/cjs/assets/scripts/table/Table.js +0 -377
  133. package/dist/cjs/assets/scripts/table/const/classNames.js +0 -33
  134. package/dist/cjs/assets/scripts/table/const/index.js +0 -27
  135. package/dist/cjs/assets/scripts/table/const/types.js +0 -5
  136. package/dist/cjs/assets/scripts/table/index.js +0 -43
  137. package/dist/cjs/assets/scripts/tag/Tag.js +0 -261
  138. package/dist/cjs/assets/scripts/tag/const/classNames.js +0 -20
  139. package/dist/cjs/assets/scripts/tag/const/index.js +0 -38
  140. package/dist/cjs/assets/scripts/tag/const/sizes.js +0 -13
  141. package/dist/cjs/assets/scripts/tag/const/types.js +0 -5
  142. package/dist/cjs/assets/scripts/tag/index.js +0 -44
  143. package/dist/cjs/assets/scripts/tooltip/Tooltip.js +0 -353
  144. package/dist/cjs/assets/scripts/tooltip/TooltipLayerManager.js +0 -82
  145. package/dist/cjs/assets/scripts/tooltip/const/classNames.js +0 -29
  146. package/dist/cjs/assets/scripts/tooltip/const/constants.js +0 -56
  147. package/dist/cjs/assets/scripts/tooltip/const/icons.js +0 -15
  148. package/dist/cjs/assets/scripts/tooltip/const/index.js +0 -123
  149. package/dist/cjs/assets/scripts/tooltip/const/templates.js +0 -66
  150. package/dist/cjs/assets/scripts/tooltip/const/types.js +0 -5
  151. package/dist/cjs/assets/scripts/tooltip/index.js +0 -57
  152. package/dist/cjs/assets/scripts/tooltip/utils.js +0 -40
  153. package/dist/cjs/assets/scripts/utils/debounce.js +0 -32
  154. package/dist/cjs/assets/scripts/utils/unifiedBox/domRenderer.js +0 -370
  155. package/dist/cjs/assets/scripts/utils/unifiedBox/dropdownModel.js +0 -285
  156. package/dist/cjs/assets/scripts/utils/unifiedBox/unifiedBoxController.js +0 -622
  157. package/dist/cjs/assets/scripts/utils/unifiedBox/unifiedBoxManager.js +0 -473
  158. package/dist/esm/assets/scripts/baseBox.js +0 -139
  159. package/dist/esm/assets/scripts/comboBox.js +0 -130
  160. package/dist/esm/assets/scripts/datePicker.js +0 -663
  161. package/dist/esm/assets/scripts/featuredIcon.js +0 -80
  162. package/dist/esm/assets/scripts/fileInput/const/classNames.js +0 -16
  163. package/dist/esm/assets/scripts/fileInput/const/index.js +0 -2
  164. package/dist/esm/assets/scripts/fileInput/const/types.js +0 -7
  165. package/dist/esm/assets/scripts/fileInput/fileInput.js +0 -71
  166. package/dist/esm/assets/scripts/fileInput/fileInputModel.js +0 -46
  167. package/dist/esm/assets/scripts/fileInput/fileInputView.js +0 -145
  168. package/dist/esm/assets/scripts/fileInput/index.js +0 -9
  169. package/dist/esm/assets/scripts/imageFileInput/ImageFileInput.js +0 -177
  170. package/dist/esm/assets/scripts/imageFileInput/ImageFileInputModel.js +0 -215
  171. package/dist/esm/assets/scripts/imageFileInput/ImageFileInputView.js +0 -349
  172. package/dist/esm/assets/scripts/imageFileInput/const/classNames.js +0 -20
  173. package/dist/esm/assets/scripts/imageFileInput/const/index.js +0 -2
  174. package/dist/esm/assets/scripts/imageFileInput/const/types.js +0 -7
  175. package/dist/esm/assets/scripts/imageFileInput/index.js +0 -9
  176. package/dist/esm/assets/scripts/index.js +0 -30
  177. package/dist/esm/assets/scripts/modal/Modal.js +0 -98
  178. package/dist/esm/assets/scripts/modal/ModalActions.js +0 -109
  179. package/dist/esm/assets/scripts/modal/ModalContent.js +0 -39
  180. package/dist/esm/assets/scripts/modal/ModalHeader.js +0 -97
  181. package/dist/esm/assets/scripts/modal/const/classNames.js +0 -23
  182. package/dist/esm/assets/scripts/modal/const/index.js +0 -2
  183. package/dist/esm/assets/scripts/modal/const/types.js +0 -1
  184. package/dist/esm/assets/scripts/modal/index.js +0 -15
  185. package/dist/esm/assets/scripts/modal/utils/contentUtils.js +0 -28
  186. package/dist/esm/assets/scripts/notification/FloatingNotification.js +0 -172
  187. package/dist/esm/assets/scripts/notification/FullWidthNotification.js +0 -125
  188. package/dist/esm/assets/scripts/notification/MessageNotification.js +0 -152
  189. package/dist/esm/assets/scripts/notification/Notification.js +0 -94
  190. package/dist/esm/assets/scripts/notification/const/classNames.js +0 -44
  191. package/dist/esm/assets/scripts/notification/const/icons.js +0 -25
  192. package/dist/esm/assets/scripts/notification/const/index.js +0 -4
  193. package/dist/esm/assets/scripts/notification/const/sizes.js +0 -40
  194. package/dist/esm/assets/scripts/notification/const/types.js +0 -8
  195. package/dist/esm/assets/scripts/notification/index.js +0 -11
  196. package/dist/esm/assets/scripts/notification/utils.js +0 -84
  197. package/dist/esm/assets/scripts/progress-bar/ProgressBar.js +0 -264
  198. package/dist/esm/assets/scripts/progress-bar/index.js +0 -1
  199. package/dist/esm/assets/scripts/selectBox.js +0 -162
  200. package/dist/esm/assets/scripts/shared/ButtonCloseX.js +0 -37
  201. package/dist/esm/assets/scripts/tab.js +0 -33
  202. package/dist/esm/assets/scripts/table/Table.js +0 -370
  203. package/dist/esm/assets/scripts/table/const/classNames.js +0 -27
  204. package/dist/esm/assets/scripts/table/const/index.js +0 -2
  205. package/dist/esm/assets/scripts/table/const/types.js +0 -1
  206. package/dist/esm/assets/scripts/table/index.js +0 -8
  207. package/dist/esm/assets/scripts/tag/Tag.js +0 -254
  208. package/dist/esm/assets/scripts/tag/const/classNames.js +0 -12
  209. package/dist/esm/assets/scripts/tag/const/index.js +0 -3
  210. package/dist/esm/assets/scripts/tag/const/sizes.js +0 -7
  211. package/dist/esm/assets/scripts/tag/const/types.js +0 -1
  212. package/dist/esm/assets/scripts/tag/index.js +0 -9
  213. package/dist/esm/assets/scripts/tooltip/Tooltip.js +0 -346
  214. package/dist/esm/assets/scripts/tooltip/TooltipLayerManager.js +0 -75
  215. package/dist/esm/assets/scripts/tooltip/const/classNames.js +0 -23
  216. package/dist/esm/assets/scripts/tooltip/const/constants.js +0 -50
  217. package/dist/esm/assets/scripts/tooltip/const/icons.js +0 -9
  218. package/dist/esm/assets/scripts/tooltip/const/index.js +0 -4
  219. package/dist/esm/assets/scripts/tooltip/const/templates.js +0 -59
  220. package/dist/esm/assets/scripts/tooltip/const/types.js +0 -1
  221. package/dist/esm/assets/scripts/tooltip/index.js +0 -10
  222. package/dist/esm/assets/scripts/tooltip/utils.js +0 -34
  223. package/dist/esm/assets/scripts/utils/debounce.js +0 -26
  224. package/dist/esm/assets/scripts/utils/unifiedBox/domRenderer.js +0 -363
  225. package/dist/esm/assets/scripts/utils/unifiedBox/dropdownModel.js +0 -279
  226. package/dist/esm/assets/scripts/utils/unifiedBox/unifiedBoxController.js +0 -615
  227. package/dist/esm/assets/scripts/utils/unifiedBox/unifiedBoxManager.js +0 -466
  228. package/dist/temp/assets/scripts/baseBox.d.ts +0 -55
  229. package/dist/temp/assets/scripts/baseBox.js +0 -140
  230. package/dist/temp/assets/scripts/comboBox.d.ts +0 -60
  231. package/dist/temp/assets/scripts/comboBox.js +0 -132
  232. package/dist/temp/assets/scripts/datePicker.d.ts +0 -86
  233. package/dist/temp/assets/scripts/datePicker.js +0 -699
  234. package/dist/temp/assets/scripts/featuredIcon.d.ts +0 -22
  235. package/dist/temp/assets/scripts/featuredIcon.js +0 -79
  236. package/dist/temp/assets/scripts/fileInput/const/classNames.d.ts +0 -15
  237. package/dist/temp/assets/scripts/fileInput/const/classNames.js +0 -16
  238. package/dist/temp/assets/scripts/fileInput/const/index.d.ts +0 -2
  239. package/dist/temp/assets/scripts/fileInput/const/index.js +0 -2
  240. package/dist/temp/assets/scripts/fileInput/const/types.d.ts +0 -88
  241. package/dist/temp/assets/scripts/fileInput/const/types.js +0 -7
  242. package/dist/temp/assets/scripts/fileInput/fileInput.d.ts +0 -13
  243. package/dist/temp/assets/scripts/fileInput/fileInput.js +0 -71
  244. package/dist/temp/assets/scripts/fileInput/fileInputModel.d.ts +0 -12
  245. package/dist/temp/assets/scripts/fileInput/fileInputModel.js +0 -37
  246. package/dist/temp/assets/scripts/fileInput/fileInputView.d.ts +0 -42
  247. package/dist/temp/assets/scripts/fileInput/fileInputView.js +0 -145
  248. package/dist/temp/assets/scripts/fileInput/index.d.ts +0 -3
  249. package/dist/temp/assets/scripts/fileInput/index.js +0 -9
  250. package/dist/temp/assets/scripts/imageFileInput/ImageFileInput.d.ts +0 -63
  251. package/dist/temp/assets/scripts/imageFileInput/ImageFileInput.js +0 -180
  252. package/dist/temp/assets/scripts/imageFileInput/ImageFileInputModel.d.ts +0 -73
  253. package/dist/temp/assets/scripts/imageFileInput/ImageFileInputModel.js +0 -214
  254. package/dist/temp/assets/scripts/imageFileInput/ImageFileInputView.d.ts +0 -79
  255. package/dist/temp/assets/scripts/imageFileInput/ImageFileInputView.js +0 -350
  256. package/dist/temp/assets/scripts/imageFileInput/const/classNames.d.ts +0 -19
  257. package/dist/temp/assets/scripts/imageFileInput/const/classNames.js +0 -20
  258. package/dist/temp/assets/scripts/imageFileInput/const/index.d.ts +0 -2
  259. package/dist/temp/assets/scripts/imageFileInput/const/index.js +0 -2
  260. package/dist/temp/assets/scripts/imageFileInput/const/types.d.ts +0 -125
  261. package/dist/temp/assets/scripts/imageFileInput/const/types.js +0 -7
  262. package/dist/temp/assets/scripts/imageFileInput/index.d.ts +0 -3
  263. package/dist/temp/assets/scripts/imageFileInput/index.js +0 -9
  264. package/dist/temp/assets/scripts/index.d.ts +0 -34
  265. package/dist/temp/assets/scripts/index.js +0 -30
  266. package/dist/temp/assets/scripts/modal/Modal.d.ts +0 -27
  267. package/dist/temp/assets/scripts/modal/Modal.js +0 -100
  268. package/dist/temp/assets/scripts/modal/ModalActions.d.ts +0 -18
  269. package/dist/temp/assets/scripts/modal/ModalActions.js +0 -117
  270. package/dist/temp/assets/scripts/modal/ModalContent.d.ts +0 -13
  271. package/dist/temp/assets/scripts/modal/ModalContent.js +0 -39
  272. package/dist/temp/assets/scripts/modal/ModalHeader.d.ts +0 -15
  273. package/dist/temp/assets/scripts/modal/ModalHeader.js +0 -96
  274. package/dist/temp/assets/scripts/modal/const/classNames.d.ts +0 -22
  275. package/dist/temp/assets/scripts/modal/const/classNames.js +0 -23
  276. package/dist/temp/assets/scripts/modal/const/index.d.ts +0 -2
  277. package/dist/temp/assets/scripts/modal/const/index.js +0 -2
  278. package/dist/temp/assets/scripts/modal/const/types.d.ts +0 -61
  279. package/dist/temp/assets/scripts/modal/const/types.js +0 -1
  280. package/dist/temp/assets/scripts/modal/index.d.ts +0 -7
  281. package/dist/temp/assets/scripts/modal/index.js +0 -15
  282. package/dist/temp/assets/scripts/modal/utils/contentUtils.d.ts +0 -10
  283. package/dist/temp/assets/scripts/modal/utils/contentUtils.js +0 -29
  284. package/dist/temp/assets/scripts/notification/FloatingNotification.d.ts +0 -24
  285. package/dist/temp/assets/scripts/notification/FloatingNotification.js +0 -157
  286. package/dist/temp/assets/scripts/notification/FullWidthNotification.d.ts +0 -21
  287. package/dist/temp/assets/scripts/notification/FullWidthNotification.js +0 -110
  288. package/dist/temp/assets/scripts/notification/MessageNotification.d.ts +0 -22
  289. package/dist/temp/assets/scripts/notification/MessageNotification.js +0 -140
  290. package/dist/temp/assets/scripts/notification/Notification.d.ts +0 -21
  291. package/dist/temp/assets/scripts/notification/Notification.js +0 -94
  292. package/dist/temp/assets/scripts/notification/const/classNames.d.ts +0 -43
  293. package/dist/temp/assets/scripts/notification/const/classNames.js +0 -44
  294. package/dist/temp/assets/scripts/notification/const/icons.d.ts +0 -25
  295. package/dist/temp/assets/scripts/notification/const/icons.js +0 -25
  296. package/dist/temp/assets/scripts/notification/const/index.d.ts +0 -5
  297. package/dist/temp/assets/scripts/notification/const/index.js +0 -4
  298. package/dist/temp/assets/scripts/notification/const/sizes.d.ts +0 -32
  299. package/dist/temp/assets/scripts/notification/const/sizes.js +0 -40
  300. package/dist/temp/assets/scripts/notification/const/types.d.ts +0 -19
  301. package/dist/temp/assets/scripts/notification/const/types.js +0 -8
  302. package/dist/temp/assets/scripts/notification/index.d.ts +0 -7
  303. package/dist/temp/assets/scripts/notification/index.js +0 -11
  304. package/dist/temp/assets/scripts/notification/utils.d.ts +0 -8
  305. package/dist/temp/assets/scripts/notification/utils.js +0 -89
  306. package/dist/temp/assets/scripts/progress-bar/ProgressBar.d.ts +0 -67
  307. package/dist/temp/assets/scripts/progress-bar/ProgressBar.js +0 -263
  308. package/dist/temp/assets/scripts/progress-bar/index.d.ts +0 -1
  309. package/dist/temp/assets/scripts/progress-bar/index.js +0 -1
  310. package/dist/temp/assets/scripts/selectBox.d.ts +0 -50
  311. package/dist/temp/assets/scripts/selectBox.js +0 -170
  312. package/dist/temp/assets/scripts/shared/ButtonCloseX.d.ts +0 -5
  313. package/dist/temp/assets/scripts/shared/ButtonCloseX.js +0 -33
  314. package/dist/temp/assets/scripts/tab.d.ts +0 -7
  315. package/dist/temp/assets/scripts/tab.js +0 -33
  316. package/dist/temp/assets/scripts/table/Table.d.ts +0 -41
  317. package/dist/temp/assets/scripts/table/Table.js +0 -378
  318. package/dist/temp/assets/scripts/table/const/classNames.d.ts +0 -27
  319. package/dist/temp/assets/scripts/table/const/classNames.js +0 -27
  320. package/dist/temp/assets/scripts/table/const/index.d.ts +0 -2
  321. package/dist/temp/assets/scripts/table/const/index.js +0 -2
  322. package/dist/temp/assets/scripts/table/const/types.d.ts +0 -23
  323. package/dist/temp/assets/scripts/table/const/types.js +0 -1
  324. package/dist/temp/assets/scripts/table/index.d.ts +0 -3
  325. package/dist/temp/assets/scripts/table/index.js +0 -8
  326. package/dist/temp/assets/scripts/tag/Tag.d.ts +0 -27
  327. package/dist/temp/assets/scripts/tag/Tag.js +0 -259
  328. package/dist/temp/assets/scripts/tag/const/classNames.d.ts +0 -11
  329. package/dist/temp/assets/scripts/tag/const/classNames.js +0 -12
  330. package/dist/temp/assets/scripts/tag/const/index.d.ts +0 -3
  331. package/dist/temp/assets/scripts/tag/const/index.js +0 -3
  332. package/dist/temp/assets/scripts/tag/const/sizes.d.ts +0 -7
  333. package/dist/temp/assets/scripts/tag/const/sizes.js +0 -7
  334. package/dist/temp/assets/scripts/tag/const/types.d.ts +0 -33
  335. package/dist/temp/assets/scripts/tag/const/types.js +0 -1
  336. package/dist/temp/assets/scripts/tag/index.d.ts +0 -3
  337. package/dist/temp/assets/scripts/tag/index.js +0 -9
  338. package/dist/temp/assets/scripts/tooltip/Tooltip.d.ts +0 -54
  339. package/dist/temp/assets/scripts/tooltip/Tooltip.js +0 -335
  340. package/dist/temp/assets/scripts/tooltip/TooltipLayerManager.d.ts +0 -21
  341. package/dist/temp/assets/scripts/tooltip/TooltipLayerManager.js +0 -71
  342. package/dist/temp/assets/scripts/tooltip/const/classNames.d.ts +0 -17
  343. package/dist/temp/assets/scripts/tooltip/const/classNames.js +0 -23
  344. package/dist/temp/assets/scripts/tooltip/const/constants.d.ts +0 -33
  345. package/dist/temp/assets/scripts/tooltip/const/constants.js +0 -46
  346. package/dist/temp/assets/scripts/tooltip/const/icons.d.ts +0 -4
  347. package/dist/temp/assets/scripts/tooltip/const/icons.js +0 -9
  348. package/dist/temp/assets/scripts/tooltip/const/index.d.ts +0 -5
  349. package/dist/temp/assets/scripts/tooltip/const/index.js +0 -4
  350. package/dist/temp/assets/scripts/tooltip/const/templates.d.ts +0 -16
  351. package/dist/temp/assets/scripts/tooltip/const/templates.js +0 -59
  352. package/dist/temp/assets/scripts/tooltip/const/types.d.ts +0 -14
  353. package/dist/temp/assets/scripts/tooltip/const/types.js +0 -1
  354. package/dist/temp/assets/scripts/tooltip/index.d.ts +0 -6
  355. package/dist/temp/assets/scripts/tooltip/index.js +0 -10
  356. package/dist/temp/assets/scripts/tooltip/utils.d.ts +0 -2
  357. package/dist/temp/assets/scripts/tooltip/utils.js +0 -33
  358. package/dist/temp/assets/scripts/utils/debounce.d.ts +0 -8
  359. package/dist/temp/assets/scripts/utils/debounce.js +0 -23
  360. package/dist/temp/assets/scripts/utils/unifiedBox/domRenderer.d.ts +0 -107
  361. package/dist/temp/assets/scripts/utils/unifiedBox/domRenderer.js +0 -367
  362. package/dist/temp/assets/scripts/utils/unifiedBox/dropdownModel.d.ts +0 -142
  363. package/dist/temp/assets/scripts/utils/unifiedBox/dropdownModel.js +0 -286
  364. package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxController.d.ts +0 -156
  365. package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxController.js +0 -604
  366. package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxManager.d.ts +0 -95
  367. package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxManager.js +0 -482
  368. package/dist/types/assets/scripts/baseBox.d.ts +0 -55
  369. package/dist/types/assets/scripts/comboBox.d.ts +0 -60
  370. package/dist/types/assets/scripts/datePicker.d.ts +0 -86
  371. package/dist/types/assets/scripts/featuredIcon.d.ts +0 -22
  372. package/dist/types/assets/scripts/fileInput/const/classNames.d.ts +0 -15
  373. package/dist/types/assets/scripts/fileInput/const/index.d.ts +0 -2
  374. package/dist/types/assets/scripts/fileInput/const/types.d.ts +0 -88
  375. package/dist/types/assets/scripts/fileInput/fileInput.d.ts +0 -13
  376. package/dist/types/assets/scripts/fileInput/fileInputModel.d.ts +0 -12
  377. package/dist/types/assets/scripts/fileInput/fileInputView.d.ts +0 -42
  378. package/dist/types/assets/scripts/fileInput/index.d.ts +0 -3
  379. package/dist/types/assets/scripts/imageFileInput/ImageFileInput.d.ts +0 -63
  380. package/dist/types/assets/scripts/imageFileInput/ImageFileInputModel.d.ts +0 -73
  381. package/dist/types/assets/scripts/imageFileInput/ImageFileInputView.d.ts +0 -79
  382. package/dist/types/assets/scripts/imageFileInput/const/classNames.d.ts +0 -19
  383. package/dist/types/assets/scripts/imageFileInput/const/index.d.ts +0 -2
  384. package/dist/types/assets/scripts/imageFileInput/const/types.d.ts +0 -125
  385. package/dist/types/assets/scripts/imageFileInput/index.d.ts +0 -3
  386. package/dist/types/assets/scripts/index.d.ts +0 -34
  387. package/dist/types/assets/scripts/modal/Modal.d.ts +0 -27
  388. package/dist/types/assets/scripts/modal/ModalActions.d.ts +0 -18
  389. package/dist/types/assets/scripts/modal/ModalContent.d.ts +0 -13
  390. package/dist/types/assets/scripts/modal/ModalHeader.d.ts +0 -15
  391. package/dist/types/assets/scripts/modal/const/classNames.d.ts +0 -22
  392. package/dist/types/assets/scripts/modal/const/index.d.ts +0 -2
  393. package/dist/types/assets/scripts/modal/const/types.d.ts +0 -61
  394. package/dist/types/assets/scripts/modal/index.d.ts +0 -7
  395. package/dist/types/assets/scripts/modal/utils/contentUtils.d.ts +0 -10
  396. package/dist/types/assets/scripts/notification/FloatingNotification.d.ts +0 -24
  397. package/dist/types/assets/scripts/notification/FullWidthNotification.d.ts +0 -21
  398. package/dist/types/assets/scripts/notification/MessageNotification.d.ts +0 -22
  399. package/dist/types/assets/scripts/notification/Notification.d.ts +0 -21
  400. package/dist/types/assets/scripts/notification/const/classNames.d.ts +0 -43
  401. package/dist/types/assets/scripts/notification/const/icons.d.ts +0 -25
  402. package/dist/types/assets/scripts/notification/const/index.d.ts +0 -5
  403. package/dist/types/assets/scripts/notification/const/sizes.d.ts +0 -32
  404. package/dist/types/assets/scripts/notification/const/types.d.ts +0 -19
  405. package/dist/types/assets/scripts/notification/index.d.ts +0 -7
  406. package/dist/types/assets/scripts/notification/utils.d.ts +0 -8
  407. package/dist/types/assets/scripts/progress-bar/ProgressBar.d.ts +0 -67
  408. package/dist/types/assets/scripts/progress-bar/index.d.ts +0 -1
  409. package/dist/types/assets/scripts/selectBox.d.ts +0 -50
  410. package/dist/types/assets/scripts/shared/ButtonCloseX.d.ts +0 -5
  411. package/dist/types/assets/scripts/tab.d.ts +0 -7
  412. package/dist/types/assets/scripts/table/Table.d.ts +0 -41
  413. package/dist/types/assets/scripts/table/const/classNames.d.ts +0 -27
  414. package/dist/types/assets/scripts/table/const/index.d.ts +0 -2
  415. package/dist/types/assets/scripts/table/const/types.d.ts +0 -23
  416. package/dist/types/assets/scripts/table/index.d.ts +0 -3
  417. package/dist/types/assets/scripts/tag/Tag.d.ts +0 -27
  418. package/dist/types/assets/scripts/tag/const/classNames.d.ts +0 -11
  419. package/dist/types/assets/scripts/tag/const/index.d.ts +0 -3
  420. package/dist/types/assets/scripts/tag/const/sizes.d.ts +0 -7
  421. package/dist/types/assets/scripts/tag/const/types.d.ts +0 -33
  422. package/dist/types/assets/scripts/tag/index.d.ts +0 -3
  423. package/dist/types/assets/scripts/tooltip/Tooltip.d.ts +0 -54
  424. package/dist/types/assets/scripts/tooltip/TooltipLayerManager.d.ts +0 -21
  425. package/dist/types/assets/scripts/tooltip/const/classNames.d.ts +0 -17
  426. package/dist/types/assets/scripts/tooltip/const/constants.d.ts +0 -33
  427. package/dist/types/assets/scripts/tooltip/const/icons.d.ts +0 -4
  428. package/dist/types/assets/scripts/tooltip/const/index.d.ts +0 -5
  429. package/dist/types/assets/scripts/tooltip/const/templates.d.ts +0 -16
  430. package/dist/types/assets/scripts/tooltip/const/types.d.ts +0 -14
  431. package/dist/types/assets/scripts/tooltip/index.d.ts +0 -6
  432. package/dist/types/assets/scripts/tooltip/utils.d.ts +0 -2
  433. package/dist/types/assets/scripts/utils/debounce.d.ts +0 -8
  434. package/dist/types/assets/scripts/utils/unifiedBox/domRenderer.d.ts +0 -107
  435. package/dist/types/assets/scripts/utils/unifiedBox/dropdownModel.d.ts +0 -142
  436. package/dist/types/assets/scripts/utils/unifiedBox/unifiedBoxController.d.ts +0 -156
  437. package/dist/types/assets/scripts/utils/unifiedBox/unifiedBoxManager.d.ts +0 -95
  438. /package/dist/cjs/{assets/scripts/modal/const/types.js → src/types/component-meta.js} +0 -0
@@ -1,264 +0,0 @@
1
- /**
2
- * ProgressBar 클래스
3
- * 프로그레스 바를 생성하고 관리하는 역할을 합니다.
4
- */
5
- /**
6
- * 값을 0-100 범위로 제한
7
- */
8
- function clampValue(value) {
9
- return Math.min(Math.max(0, value), 100);
10
- }
11
- /**
12
- * 색상 이름을 fill 색상 클래스명으로 변환
13
- */
14
- function getFillColorClass(color) {
15
- if (!color) return '';
16
- const normalizedColor = color.toLowerCase().trim();
17
- return `ncua-progress-bar__fill--color-${normalizedColor}`;
18
- }
19
- /**
20
- * 색상 이름을 label 색상 클래스명으로 변환
21
- */
22
- function getLabelColorClass(color) {
23
- if (!color) return '';
24
- const normalizedColor = color.toLowerCase().trim();
25
- return `ncua-progress-bar__label--color-${normalizedColor}`;
26
- }
27
- /**
28
- * ProgressBar 클래스
29
- */
30
- export class ProgressBar {
31
- constructor() {
32
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
33
- this.element = null;
34
- this.options = {
35
- showZeroLabel: false,
36
- valueToPercent: true,
37
- ...options
38
- };
39
- }
40
- /**
41
- * segments 처리 로직
42
- */
43
- processSegments() {
44
- const {
45
- segments,
46
- label,
47
- valueToPercent
48
- } = this.options;
49
- const hasSegments = Boolean(segments && segments.length > 0);
50
- const segmentCount = segments?.length ?? 0;
51
- if (hasSegments) {
52
- // segment가 2개 이상일 때만 valueToPercent 적용 (기본값: true)
53
- const shouldApplyValueToPercent = segmentCount >= 2 && valueToPercent !== false;
54
- let segmentsToProcess = segments;
55
- // valueToPercent 적용: segments의 합계를 100%로 규정하고 비율로 계산
56
- if (shouldApplyValueToPercent) {
57
- // 원본 값들의 합계 계산
58
- const originalTotal = segmentsToProcess.reduce((sum, seg) => sum + seg.value, 0);
59
- if (originalTotal > 0) {
60
- // 각 segment를 합계 대비 비율로 변환 (합계를 100%로 규정)
61
- segmentsToProcess = segmentsToProcess.map(segment => ({
62
- value: segment.value / originalTotal * 100,
63
- color: segment.color
64
- }));
65
- }
66
- }
67
- // 각 값 제한 (0-100 범위)
68
- const limitedSegments = segmentsToProcess.map(segment => ({
69
- value: clampValue(segment.value),
70
- color: segment.color
71
- }));
72
- // 전체 합계 계산
73
- const actualTotal = limitedSegments.reduce((sum, seg) => sum + seg.value, 0);
74
- const total = Math.min(actualTotal, 100);
75
- // 모든 segments를 좌측에서부터 연속적으로 배치 (비율로 계산)
76
- const processed = limitedSegments.map(segment => ({
77
- ...segment,
78
- width: actualTotal > 0 ? segment.value / actualTotal * total : 0
79
- }));
80
- // segment의 개수가 2이상일때는 bottom 라벨로 고정
81
- const effectiveLabel = segmentCount >= 2 ? 'bottom' : label;
82
- // floating label 스타일
83
- const progressValueStyle = effectiveLabel === 'top-float' || effectiveLabel === 'bottom-float' ? {
84
- '--progress-value': `${total}%`
85
- } : undefined;
86
- return {
87
- totalValue: total,
88
- displayValue: `${total.toFixed(0)}%`,
89
- processedSegments: processed,
90
- effectiveLabel,
91
- progressValueStyle
92
- };
93
- }
94
- // value만 있을 때는 valueToPercent 무시 (이미 퍼센트로 간주)
95
- if (this.options.value !== undefined) {
96
- const clamped = clampValue(this.options.value);
97
- const effectiveLabel = label;
98
- const progressValueStyle = effectiveLabel === 'top-float' || effectiveLabel === 'bottom-float' ? {
99
- '--progress-value': `${clamped}%`
100
- } : undefined;
101
- return {
102
- totalValue: clamped,
103
- displayValue: `${clamped.toFixed(0)}%`,
104
- processedSegments: [],
105
- effectiveLabel,
106
- progressValueStyle
107
- };
108
- }
109
- return {
110
- totalValue: 0,
111
- displayValue: '0%',
112
- processedSegments: [],
113
- effectiveLabel: label,
114
- progressValueStyle: undefined
115
- };
116
- }
117
- /**
118
- * 단일 라벨 HTML 생성
119
- */
120
- renderSingleLabel(labelType, displayValue, totalValue) {
121
- // 0%이고 showZeroLabel이 false면 라벨 표시하지 않음
122
- if (totalValue === 0 && !this.options.showZeroLabel) {
123
- return '';
124
- }
125
- return `<span class="ncua-progress-bar__label ncua-progress-bar__label-${labelType}">${displayValue}</span>`;
126
- }
127
- /**
128
- * segments 라벨 HTML 생성
129
- */
130
- renderSegmentLabels(segments, segmentCount) {
131
- if (segmentCount < 2) return '';
132
- const labels = [];
133
- segments.forEach((segment, index) => {
134
- // 0%이고 showZeroLabel이 false면 라벨 표시하지 않음
135
- if (segment.value === 0 && !this.options.showZeroLabel) {
136
- return;
137
- }
138
- let leftPosition = 0;
139
- for (let i = 0; i < index; i++) {
140
- leftPosition += segments[i].width;
141
- }
142
- // 0%일 때는 segment 시작 위치에 맞추되, 라벨이 게이지 바를 넘어가지 않도록 조정
143
- // 그 외에는 중앙에 정렬
144
- const isZero = segment.value === 0;
145
- // 0%일 때는 약간의 오프셋을 주어 자연스럽게 보이도록 함 (라벨 너비의 절반 정도)
146
- const labelPosition = isZero ? Math.max(0, leftPosition - 1) : leftPosition + segment.width / 2;
147
- const transform = isZero ? 'translateX(0)' : 'translateX(-50%)';
148
- const colorClass = getLabelColorClass(segment.color);
149
- labels.push(`<span class="ncua-progress-bar__label ncua-progress-bar__label--segment ${colorClass}" style="left: ${labelPosition}%; transform: ${transform};">${segment.value.toFixed(0)}%</span>`);
150
- });
151
- return labels.length > 0 ? `<div class="ncua-progress-bar__labels--multiple">${labels.join('')}</div>` : '';
152
- }
153
- /**
154
- * segment bar HTML 생성
155
- */
156
- renderSegmentBar(segments) {
157
- const fills = [];
158
- segments.forEach((segment, index) => {
159
- const classes = ['ncua-progress-bar__fill', index === 0 ? 'ncua-progress-bar__fill--first' : '', index === segments.length - 1 ? 'ncua-progress-bar__fill--last' : '', getFillColorClass(segment.color)].filter(Boolean).join(' ');
160
- fills.push(`<div class="${classes}" style="width: ${segment.width}%;"></div>`);
161
- });
162
- return fills.join('');
163
- }
164
- /**
165
- * HTML 문자열 생성
166
- */
167
- toHTML() {
168
- const {
169
- totalValue,
170
- displayValue,
171
- processedSegments,
172
- effectiveLabel,
173
- progressValueStyle
174
- } = this.processSegments();
175
- const hasSegments = Boolean(this.options.segments && this.options.segments.length > 0);
176
- const segmentCount = this.options.segments?.length ?? 0;
177
- const isFloatingLabel = effectiveLabel === 'top-float' || effectiveLabel === 'bottom-float';
178
- // 스타일 문자열 생성
179
- const styleString = progressValueStyle ? `style="${Object.entries(progressValueStyle).map(_ref => {
180
- let [key, value] = _ref;
181
- return `${key.replace(/([A-Z])/g, '-$1').toLowerCase()}: ${value}`;
182
- }).join('; ')}"` : '';
183
- // segment가 1개이거나 value만 있을 때는 동일하게 처리 (단일 progress bar)
184
- const isSingleBar = segmentCount < 2; // segment가 0개 또는 1개일 때
185
- if (isSingleBar) {
186
- const fillColorClass = hasSegments && segmentCount === 1 ? getFillColorClass(processedSegments[0].color) : '';
187
- const floatingLabel = isFloatingLabel ? this.renderSingleLabel(effectiveLabel, displayValue, totalValue) : '';
188
- const rightLabel = effectiveLabel === 'right' ? this.renderSingleLabel('right', displayValue, totalValue) : '';
189
- const bottomLabel = effectiveLabel === 'bottom' ? this.renderSingleLabel('bottom', displayValue, totalValue) : '';
190
- // 단일 progress bar일 때는 text-align: left를 위한 클래스 추가
191
- const singleSegmentClass = 'ncua-progress-bar--single-segment';
192
- return `<div class="ncua-progress-bar ncua-progress-bar-${effectiveLabel || ''} ${singleSegmentClass}" ${styleString}>
193
- ${floatingLabel}
194
- <div class="ncua-progress-bar__content">
195
- <div class="ncua-progress-bar__bar">
196
- <div class="ncua-progress-bar__fill ${fillColorClass}" style="width: ${totalValue}%;" aria-valuenow="${totalValue}" aria-valuemin="0" aria-valuemax="100"></div>
197
- </div>
198
- ${rightLabel}
199
- </div>
200
- ${bottomLabel}
201
- </div>`;
202
- }
203
- // 일반 케이스
204
- const floatingLabel = isFloatingLabel ? this.renderSingleLabel(effectiveLabel, displayValue, totalValue) : '';
205
- const rightLabel = effectiveLabel === 'right' ? this.renderSingleLabel('right', displayValue, totalValue) : '';
206
- const bottomLabel = effectiveLabel === 'bottom' ? this.renderSingleLabel('bottom', displayValue, totalValue) : '';
207
- const segmentLabels = hasSegments && segmentCount >= 2 ? this.renderSegmentLabels(processedSegments, segmentCount) : '';
208
- const segmentBar = hasSegments ? this.renderSegmentBar(processedSegments) : `<div class="ncua-progress-bar__fill" style="width: ${totalValue}%;" aria-valuenow="${totalValue}" aria-valuemin="0" aria-valuemax="100"></div>`;
209
- const segmentsClass = hasSegments ? 'ncua-progress-bar__bar--segments' : '';
210
- return `<div class="ncua-progress-bar ncua-progress-bar-${effectiveLabel || ''}" ${styleString}>
211
- ${floatingLabel}
212
- <div class="ncua-progress-bar__content">
213
- <div class="ncua-progress-bar__bar ${segmentsClass}">
214
- ${segmentBar}
215
- </div>
216
- ${rightLabel}
217
- </div>
218
- ${hasSegments && segmentCount >= 2 ? segmentLabels : bottomLabel}
219
- </div>`;
220
- }
221
- /**
222
- * DOM 요소 생성
223
- */
224
- toElement() {
225
- const div = document.createElement('div');
226
- div.innerHTML = this.toHTML();
227
- this.element = div.firstElementChild;
228
- return this.element;
229
- }
230
- /**
231
- * 요소 반환
232
- */
233
- getElement() {
234
- return this.toElement();
235
- }
236
- /**
237
- * 옵션 업데이트
238
- */
239
- updateOptions(newOptions) {
240
- this.options = {
241
- ...this.options,
242
- ...newOptions
243
- };
244
- if (this.element) {
245
- const newElement = this.toElement();
246
- if (this.element.parentNode) {
247
- this.element.parentNode.replaceChild(newElement, this.element);
248
- }
249
- this.element = newElement;
250
- }
251
- }
252
- /**
253
- * Static factory method
254
- */
255
- static create(options) {
256
- return new ProgressBar(options);
257
- }
258
- /**
259
- * Static method: HTML 문자열 생성
260
- */
261
- static toHTML(options) {
262
- return new ProgressBar(options).toHTML();
263
- }
264
- }
@@ -1 +0,0 @@
1
- export { ProgressBar } from './ProgressBar';
@@ -1,162 +0,0 @@
1
- import { BaseBox } from './baseBox';
2
- import { UnifiedBoxManager } from './utils/unifiedBox/unifiedBoxManager';
3
- export class SelectBox extends BaseBox {
4
- get defaultPlaceholder() {
5
- return '선택하세요';
6
- }
7
- constructor(element) {
8
- let config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
9
- super(element);
10
- // HTML에서 옵션 파싱 (config.options가 없을 경우)
11
- const htmlOptions = this.parseOptionsFromHTML();
12
- // JavaScript 옵션을 DropdownOption 형식으로 변환
13
- const normalizedOptions = config.options ? this.normalizeOptions(config.options) : htmlOptions;
14
- const finalOptions = normalizedOptions;
15
- // HTML에서 속성 파싱
16
- const htmlAttributes = this.parseAttributesFromHTML();
17
- // 기존 API를 새 API로 변환
18
- const unifiedConfig = {
19
- ...config,
20
- type: 'selectbox',
21
- multiple: config.multiple ?? false,
22
- showFooterButtons: config.showFooterButtons ?? false,
23
- onEdit: config.onEdit,
24
- onSelectAll: config.onSelectAll,
25
- onComplete: config.onComplete,
26
- options: finalOptions,
27
- placeholder: config.placeholder || htmlAttributes.placeholder || this.defaultPlaceholder,
28
- value: config.value ?? htmlAttributes.value ?? (config.multiple ? [] : ''),
29
- disabled: config.disabled ?? htmlAttributes.disabled ?? false,
30
- size: config.size || htmlAttributes.size || 'md',
31
- onChange: value => {
32
- // 초기화 중에는 동기화하지 않음 (무한 루프 방지)
33
- if (this.isInitializing) {
34
- this.lastValue = value; // 초기값 저장
35
- return;
36
- }
37
- // 값이 실제로 변경되지 않았으면 동기화 생략 (무한 루프 방지)
38
- if (JSON.stringify(this.lastValue) === JSON.stringify(value)) {
39
- return;
40
- }
41
- this.lastValue = value; // 새 값 저장
42
- // 타겟 select와 동기화
43
- if (config.multiple) {
44
- this.syncWithTargetSelectMultiple(value);
45
- } else {
46
- this.syncWithTargetSelect(value);
47
- }
48
- // onChange 콜백에는 실제 value를 전달
49
- const realValue = config.multiple ? value.map(v => this.getRealValueFromId(v)) : this.getRealValueFromId(value);
50
- config.onChange?.(realValue);
51
- }
52
- };
53
- this.unifiedSelectBox = new UnifiedBoxManager(element, unifiedConfig);
54
- this.completeInitialization();
55
- }
56
- /**
57
- * JavaScript 옵션을 DropdownOption 형식으로 변환
58
- */
59
- normalizeOptions(options) {
60
- return options.map(option => {
61
- // 이미 DropdownOption 형식인 경우
62
- if ('label' in option) {
63
- return option;
64
- }
65
- // SelectBoxOptionType 형식인 경우 (text -> label 변환)
66
- const selectBoxOption = option;
67
- return {
68
- id: selectBoxOption.id,
69
- label: selectBoxOption.text,
70
- disabled: selectBoxOption.disabled
71
- };
72
- });
73
- }
74
- /**
75
- * HTML select에서 옵션 파싱
76
- */
77
- parseOptionsFromHTML() {
78
- if (!this.targetSelect) return [];
79
- const options = [];
80
- const optionElements = this.targetSelect.querySelectorAll('option');
81
- // 빈 값 옵션 개수 확인 (최적화를 위해)
82
- const emptyValueCount = Array.from(optionElements).filter(opt => opt.value === '').length;
83
- optionElements.forEach((optionElement, index) => {
84
- const optionValue = optionElement.value;
85
- // 빈 값 옵션이 1개뿐이면 단순 처리, 여러 개면 고유 ID 생성
86
- let optionId;
87
- if (optionValue !== '') {
88
- optionId = optionValue;
89
- } else if (emptyValueCount === 1) {
90
- // 빈 값 옵션이 하나뿐이면 그냥 빈 문자열 사용 (단순화)
91
- optionId = '';
92
- } else {
93
- // 빈 값 옵션이 여러 개면 고유 ID 생성 (구분 필요)
94
- optionId = `__empty_option_${index}`;
95
- }
96
- options.push({
97
- id: optionId,
98
- label: optionElement.textContent || optionElement.value || this.defaultPlaceholder,
99
- disabled: optionElement.disabled,
100
- // 원본 value 저장 (동기화를 위해)
101
- originalValue: optionValue
102
- });
103
- });
104
- return options;
105
- }
106
- /**
107
- * 값 변환 - originalValue 매핑
108
- */
109
- resolveValue(value) {
110
- return this.getRealValueFromId(value);
111
- }
112
- /**
113
- * ID로부터 실제 HTML select의 value 값을 가져오기
114
- */
115
- getRealValueFromId(id) {
116
- const options = this.unifiedSelectBox.getOptions();
117
- const option = options.find(opt => opt.id === id);
118
- // originalValue가 있으면 그것을 사용, 없으면 id를 문자열로 변환
119
- return option?.originalValue !== undefined ? option.originalValue : String(id);
120
- }
121
- /**
122
- * 실제 HTML select의 value 값으로부터 내부 ID를 가져오기
123
- */
124
- getIdFromRealValue(value) {
125
- const options = this.unifiedSelectBox.getOptions();
126
- const option = options.find(opt => opt.originalValue === String(value));
127
- // originalValue가 일치하는 옵션을 찾으면 그 ID를 반환, 없으면 value 그대로 반환
128
- return option ? option.id : value;
129
- }
130
- // SelectBox 고유 API
131
- getValues() {
132
- const internalValue = this.unifiedSelectBox.getValues();
133
- return internalValue.map(option => ({
134
- ...option,
135
- id: this.getRealValueFromId(option.id)
136
- }));
137
- }
138
- setValues(value) {
139
- const internalValue = value.map(v => this.getIdFromRealValue(v.id));
140
- if (JSON.stringify(this.lastValue) === JSON.stringify(internalValue)) {
141
- return;
142
- }
143
- this.lastValue = internalValue;
144
- // id 배열을 옵션 객체 배열로 변환
145
- const allOptions = this.unifiedSelectBox.getOptions();
146
- const optionArray = internalValue.map(id => allOptions.find(opt => opt.id === id)).filter(opt => opt !== undefined);
147
- this.unifiedSelectBox.setValues(optionArray);
148
- // setValues 호출 시에도 타겟 select와 동기화
149
- if (this.targetSelect) {
150
- if (this.unifiedSelectBox.isMultiple()) {
151
- this.syncWithTargetSelectMultiple(internalValue);
152
- } else {
153
- // 단일 선택 모드인 경우 첫 번째 값만 사용
154
- this.syncWithTargetSelect(internalValue[0] || '');
155
- }
156
- }
157
- }
158
- getSelectedCount() {
159
- const values = this.getValues();
160
- return values.length;
161
- }
162
- }
@@ -1,37 +0,0 @@
1
- // 공통 X버튼 로직 (React ButtonCloseX 컴포넌트와 동일한 구조)
2
- // React ButtonCloseX와 동일한 SVG 사이즈 매핑
3
- export const SVG_SIZE = {
4
- xs: 16,
5
- sm: 20,
6
- md: 20,
7
- lg: 24
8
- };
9
- // X버튼 SVG 아이콘
10
- export const X_CLOSE_SVG = size => `<svg width="${size}" height="${size}" fill="none" viewBox="0 0 24 24" stroke="currentColor">
11
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
12
- </svg>`;
13
- // X버튼 렌더링 유틸리티 (React ButtonCloseX와 동일한 인터페이스)
14
- export function ButtonCloseX(size) {
15
- let theme = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'light';
16
- let additionalClasses = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
17
- let ariaLabel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '닫기';
18
- let onClick = arguments.length > 4 ? arguments[4] : undefined;
19
- const svgSize = SVG_SIZE[size];
20
- const buttonId = `close-btn-${Math.random().toString(36).substr(2, 9)}`;
21
- const buttonHTML = `
22
- <button type="button" id="${buttonId}" class="ncua-button-close-x ncua-button-close-x--${size} ncua-button-close-x--${theme} ${additionalClasses}" aria-label="${ariaLabel}">
23
- ${X_CLOSE_SVG(svgSize.toString())}
24
- </button>
25
- `;
26
- // onClick이 제공된 경우 이벤트 바인딩
27
- if (onClick) {
28
- // DOM에 추가된 후 이벤트 바인딩을 위해 setTimeout 사용
29
- setTimeout(() => {
30
- const button = document.getElementById(buttonId);
31
- if (button) {
32
- button.addEventListener('click', onClick);
33
- }
34
- }, 0);
35
- }
36
- return buttonHTML;
37
- }
@@ -1,33 +0,0 @@
1
- import { Swiper } from 'swiper';
2
- export class Tab {
3
- constructor(element) {
4
- this.swiper = null;
5
- if (!element) {
6
- throw new Error('Tab element is required');
7
- }
8
- if (!(element instanceof HTMLElement)) {
9
- throw new Error('Invalid element type provided to Tab');
10
- }
11
- this.element = element;
12
- this.init();
13
- }
14
- init() {
15
- this.swiper = new Swiper(this.element, {
16
- slidesPerView: 'auto',
17
- spaceBetween: 8,
18
- grabCursor: true,
19
- loop: false,
20
- freeMode: {
21
- enabled: true,
22
- sticky: false
23
- },
24
- mousewheel: true
25
- });
26
- }
27
- destroy() {
28
- if (this.swiper) {
29
- this.swiper.destroy();
30
- this.swiper = null;
31
- }
32
- }
33
- }