@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,482 +0,0 @@
1
- import { debounce } from '../debounce';
2
- import { DOMRenderer } from './domRenderer';
3
- import { DropdownModel } from './dropdownModel';
4
- import { UnifiedBoxController } from './unifiedBoxController';
5
- /**
6
- * 통합된 UnifiedBox 클래스
7
- * SelectBox와 ComboBox의 기능을 모두 포함
8
- */
9
- export class UnifiedBoxManager {
10
- constructor(element, config = {}) {
11
- this.lastSearchValue = ''; // 이전 검색어 추적 (API 모드에서 옵션 교체를 위해)
12
- this.hasInitialOptions = false; // 초기 옵션이 있는지 여부 (select 태그 등)
13
- this.element = element;
14
- this.isComboBox = config.type === 'combobox';
15
- this.baseClass = this.isComboBox ? 'ncua-combobox' : 'ncua-selectbox';
16
- this.config = {
17
- options: [],
18
- placeholder: this.isComboBox ? '검색하세요' : '선택하세요',
19
- maxHeight: 275,
20
- disabled: false,
21
- size: 'md',
22
- multiple: false,
23
- showFooterButtons: false,
24
- required: false,
25
- type: 'selectbox',
26
- ...config,
27
- searchDebounceMs: config.searchDebounceMs ?? 500,
28
- };
29
- this.debouncedSearch = debounce((value, isApiMode) => {
30
- if (isApiMode) {
31
- this.model.updateSearchValue(value);
32
- }
33
- else {
34
- this.model.updateSearchAndFilter(value);
35
- }
36
- this.config.onSearch?.(value);
37
- if (value.trim()) {
38
- this.controller.open();
39
- }
40
- else if (!this.model.getState().showAllItems) {
41
- this.controller.close();
42
- }
43
- }, this.config.searchDebounceMs);
44
- this.initialize();
45
- }
46
- initialize() {
47
- this.element.innerHTML = '';
48
- this.setupElementClasses();
49
- // 초기 옵션이 있는지 확인 (select 태그 등에서 파싱된 옵션이 있는 경우)
50
- this.hasInitialOptions = (this.config.options && this.config.options.length > 0) || false;
51
- const filterStrategy = this.isComboBox ? DropdownModel.comboBoxFilterStrategy : DropdownModel.defaultFilterStrategy;
52
- this.model = new DropdownModel(this.config.options || [], this.config.multiple || false, filterStrategy);
53
- this.renderer = new DOMRenderer();
54
- this.createUI();
55
- this.setupController();
56
- if (this.config.value) {
57
- this.model.setValue(this.config.value);
58
- }
59
- }
60
- setupElementClasses() {
61
- this.element.className = `${this.baseClass} ${this.baseClass}--${this.config.size}`;
62
- if (this.config.disabled) {
63
- this.element.classList.add(`${this.baseClass}--disabled`);
64
- }
65
- if (this.config.multiple) {
66
- this.element.classList.add(`${this.baseClass}--multiple`);
67
- }
68
- }
69
- createUI() {
70
- if (this.isComboBox) {
71
- this.createComboBoxUI();
72
- }
73
- else {
74
- this.createSelectBoxUI();
75
- }
76
- }
77
- createComboBoxUI() {
78
- // 컨텐츠 컨테이너
79
- const content = DOMRenderer.createElementWithClass('div', 'ncua-combobox__content');
80
- this.element.appendChild(content);
81
- // 입력 필드 생성
82
- this.inputField = this.renderer.createInputField({
83
- placeholder: this.config.placeholder || '검색하세요',
84
- disabled: this.config.disabled || false,
85
- size: this.config.size || 'md',
86
- showSearchIcon: true,
87
- onInput: (value) => this.handleInput(value),
88
- onClick: () => this.handleInputClick(),
89
- onClear: () => this.handleClearInput(),
90
- onShowAll: () => this.handleShowAll(),
91
- });
92
- content.appendChild(this.inputField.container);
93
- this.triggerElement = this.inputField.input;
94
- // 드롭다운 생성
95
- this.createDropdown(content);
96
- }
97
- createSelectBoxUI() {
98
- // 트리거 생성
99
- const trigger = DOMRenderer.createElementWithClass('div', 'ncua-selectbox__content');
100
- trigger.setAttribute('tabindex', this.config.disabled ? '-1' : '0');
101
- trigger.setAttribute('role', 'combobox');
102
- trigger.setAttribute('aria-expanded', 'false');
103
- trigger.setAttribute('aria-haspopup', 'listbox');
104
- const valueSpan = DOMRenderer.createElementWithClass('span', 'ncua-selectbox__value', this.config.placeholder);
105
- const arrow = DOMRenderer.createSvgIcon('chevron-down', this.config.size === 'xs' ? 14 : 16);
106
- arrow.classList.add('ncua-selectbox__arrow');
107
- trigger.appendChild(valueSpan);
108
- trigger.appendChild(arrow);
109
- this.element.appendChild(trigger);
110
- this.triggerElement = trigger;
111
- this.arrowElement = arrow;
112
- // 드롭다운 생성
113
- this.createDropdown(this.element);
114
- }
115
- createDropdown(parent) {
116
- const dropdownStructure = this.renderer.createDropdownStructure({
117
- maxHeight: this.config.maxHeight || 275,
118
- size: this.config.size || 'md',
119
- listboxId: `selectbox-${Date.now()}`,
120
- noResultsText: '일치하는 결과가 없습니다.',
121
- });
122
- this.dropdownElement = dropdownStructure.dropdown;
123
- // SelectBox 단일 선택 모드일 때 특별한 클래스 추가
124
- if (!this.isComboBox && !this.config.multiple) {
125
- this.dropdownElement.classList.add('ncua-select-dropdown--selectbox-single');
126
- }
127
- // 다중 선택 모드일 때 클래스 추가
128
- if (this.config.multiple) {
129
- this.dropdownElement.classList.add('ncua-select-dropdown--multiple');
130
- }
131
- parent.appendChild(this.dropdownElement);
132
- // 푸터 버튼 추가 (필요한 경우)
133
- if (this.config.multiple || this.config.showFooterButtons) {
134
- this.footerElement = this.renderer.createFooter({
135
- multiple: this.config.multiple,
136
- showFooterButtons: this.config.showFooterButtons,
137
- selectAllButtonText: this.model.getSelectAllButtonText(),
138
- onSelectAll: () => this.handleSelectAll(),
139
- onEdit: this.config.onEdit ? () => this.config.onEdit?.() : undefined,
140
- onComplete: () => this.handleComplete(),
141
- });
142
- this.dropdownElement.appendChild(this.footerElement);
143
- }
144
- }
145
- setupController() {
146
- if (!this.triggerElement || !this.dropdownElement) {
147
- throw new Error('Trigger or dropdown element not found');
148
- }
149
- const controllerConfig = {
150
- triggerElement: this.triggerElement,
151
- dropdownElement: this.dropdownElement,
152
- model: this.model,
153
- renderer: this.renderer,
154
- renderConfig: {
155
- maxHeight: this.config.maxHeight || 275,
156
- size: this.config.size || 'md',
157
- listboxId: `selectbox-${Date.now()}`,
158
- noResultsText: '일치하는 결과가 없습니다.',
159
- },
160
- onOpen: () => {
161
- this.element.classList.add(`${this.baseClass}--open`);
162
- if (this.triggerElement) {
163
- this.triggerElement.setAttribute('aria-expanded', 'true');
164
- }
165
- // 화살표 아이콘 회전 (selectbox 타입일 때만)
166
- if (!this.isComboBox && this.arrowElement) {
167
- this.arrowElement.classList.add('ncua-selectbox__arrow--up');
168
- }
169
- },
170
- onClose: () => {
171
- this.element.classList.remove(`${this.baseClass}--open`);
172
- if (this.triggerElement) {
173
- this.triggerElement.setAttribute('aria-expanded', 'false');
174
- }
175
- // 화살표 아이콘 원래대로 (selectbox 타입일 때만)
176
- if (!this.isComboBox && this.arrowElement) {
177
- this.arrowElement.classList.remove('ncua-selectbox__arrow--up');
178
- }
179
- },
180
- onSelectionChange: (selectedValues) => {
181
- this.handleSelectionChange(selectedValues);
182
- },
183
- onSearch: (searchValue) => {
184
- this.config.onSearch?.(searchValue);
185
- },
186
- onScrollBottom: this.config.onScrollBottom,
187
- disabled: this.config.disabled || false,
188
- canToggle: () => this.canToggleDropdown(),
189
- type: this.config.type, // 타입 정보 전달
190
- };
191
- this.controller = new UnifiedBoxController(controllerConfig);
192
- }
193
- // 이벤트 핸들러들
194
- handleInput(value) {
195
- this.debouncedSearch.cancel();
196
- const isApiMode = this.isComboBox && !this.hasInitialOptions;
197
- // API 모드에서는 검색어 변경 추적
198
- if (isApiMode && this.lastSearchValue !== value) {
199
- this.lastSearchValue = value;
200
- }
201
- // 디바운싱이 설정되어 있으면 디바운스 유틸리티 사용
202
- if (this.config.searchDebounceMs > 0) {
203
- this.debouncedSearch(value, isApiMode);
204
- }
205
- else {
206
- // 디바운싱이 0이면 즉시 실행
207
- this.model.updateSearchAndFilter(value);
208
- const hasOptions = this.model.getState().options.length > 0 || this.model.getState().filteredOptions.length > 0;
209
- if (value.trim() || hasOptions) {
210
- this.controller.open();
211
- }
212
- else if (!this.model.getState().showAllItems) {
213
- this.controller.close();
214
- }
215
- this.config.onSearch?.(value);
216
- }
217
- }
218
- handleInputClick() {
219
- if (!this.config.disabled) {
220
- this.inputField?.focus();
221
- if (this.isComboBox) {
222
- const currentInputValue = this.inputField?.input.value || '';
223
- if (currentInputValue.trim().length > 0 || this.model.getState().showAllItems) {
224
- this.controller.open();
225
- }
226
- }
227
- }
228
- }
229
- handleClearInput() {
230
- this.debouncedSearch.cancel();
231
- // input 필드 텍스트 지우기
232
- if (this.inputField) {
233
- this.inputField.setValue('');
234
- }
235
- // 모델의 검색값도 초기화
236
- this.model.clearInput();
237
- // ComboBox 타입이고 초기 옵션이 없는 경우 (API 모드)
238
- // Clear 버튼 클릭 시 옵션도 완전히 비우기
239
- const isApiMode = this.isComboBox && !this.hasInitialOptions;
240
- if (isApiMode) {
241
- this.model.updateOptions([]);
242
- this.lastSearchValue = '';
243
- }
244
- this.controller.close();
245
- }
246
- async handleShowAll() {
247
- if (!this.config.disabled) {
248
- this.inputField?.focus();
249
- this.inputField?.setValue('');
250
- this.model.updateSearchAndFilter('', true);
251
- // onSearchAll 콜백 호출 (async 함수일 경우를 대비해 Promise.resolve로 감싸서 처리)
252
- await Promise.resolve(this.config.onSearchAll?.());
253
- const hasOptions = this.model.getState().options.length > 0 || this.model.getState().filteredOptions.length > 0;
254
- if (hasOptions) {
255
- this.controller.open();
256
- }
257
- }
258
- }
259
- handleSelectionChange(selectedValues) {
260
- this.debouncedSearch.cancel();
261
- const result = this.config.multiple ? selectedValues : selectedValues[0] || '';
262
- this.config.onChange?.(result);
263
- // UI 업데이트
264
- if (!this.isComboBox) {
265
- this.updateSelectBoxValue();
266
- }
267
- // 다중 선택인 경우 전체 선택 버튼 텍스트 업데이트
268
- if (this.config.multiple) {
269
- this.updateSelectAllButtonText();
270
- }
271
- // 단일 선택 시 드롭다운 닫기
272
- if (!this.config.multiple && !this.config.showFooterButtons) {
273
- this.controller.close();
274
- }
275
- }
276
- updateSelectBoxValue() {
277
- const valueSpan = this.element.querySelector('.ncua-selectbox__value');
278
- if (valueSpan) {
279
- if (this.config.multiple) {
280
- // Multiple 모드일 때는 항상 placeholder 표시
281
- valueSpan.textContent = this.config.placeholder || '';
282
- }
283
- else {
284
- // Single 모드일 때는 선택된 옵션 또는 placeholder 표시
285
- const selectedOptions = this.model.getSelectedOptions();
286
- const selectedOption = selectedOptions[0];
287
- valueSpan.textContent = selectedOption ? selectedOption.label : this.config.placeholder || '';
288
- }
289
- }
290
- }
291
- canToggleDropdown() {
292
- if (this.isComboBox) {
293
- // ComboBox의 경우: 인풋에 텍스트가 있으면 항상 토글 가능
294
- const currentInputValue = this.inputField?.input.value || '';
295
- return currentInputValue.trim().length > 0 || this.model.getState().showAllItems;
296
- }
297
- return true; // SelectBox는 항상 토글 가능
298
- }
299
- // 푸터 버튼 핸들러들
300
- handleSelectAll() {
301
- if (this.config.multiple) {
302
- this.model.toggleSelectAll();
303
- this.updateSelectAllButtonText();
304
- // 외부 콜백 호출
305
- this.config.onSelectAll?.();
306
- }
307
- }
308
- handleComplete() {
309
- if (this.config.multiple || this.isComboBox) {
310
- const currentValues = this.model.getValue();
311
- // SelectBox 타입이고 multiple 모드일 때만 onChange 콜백으로 현재 선택된 값들 전달
312
- if (!this.isComboBox && this.config.multiple && Array.isArray(currentValues)) {
313
- this.config.onChange?.(currentValues);
314
- }
315
- this.config.onComplete?.();
316
- // ComboBox 타입인 경우에만 값 초기화 및 검색어 초기화
317
- if (this.isComboBox) {
318
- this.model.setValue([]);
319
- if (this.inputField) {
320
- this.inputField.setValue('');
321
- }
322
- this.model.clearInput();
323
- const isApiMode = !this.hasInitialOptions;
324
- if (isApiMode) {
325
- this.model.updateOptions([]);
326
- this.lastSearchValue = '';
327
- }
328
- }
329
- this.controller.close();
330
- }
331
- }
332
- updateSelectAllButtonText() {
333
- if (!this.config.multiple || !this.footerElement)
334
- return;
335
- this.renderer.updateSelectAllButtonText(this.footerElement, this.model.getSelectAllButtonText());
336
- }
337
- // Public API
338
- getValues() {
339
- const selectedIds = this.model.getValue();
340
- const allOptions = this.getOptions();
341
- // selectedIds가 배열이 아닌 경우 배열로 변환
342
- const ids = Array.isArray(selectedIds) ? selectedIds : selectedIds ? [selectedIds] : [];
343
- // 선택된 id에 해당하는 옵션 객체들을 찾아서 반환
344
- return ids
345
- .map((id) => allOptions.find((opt) => opt.id === id))
346
- .filter((opt) => opt !== undefined);
347
- }
348
- getOptions() {
349
- return this.config.options || [];
350
- }
351
- setValues(value) {
352
- // 옵션 객체 배열에서 id 배열로 변환
353
- const ids = value.map((option) => option.id);
354
- // 단일 선택 모드인 경우 첫 번째 값만 사용
355
- const finalIds = this.config.multiple ? ids : ids[0] || '';
356
- this.model.setValue(finalIds);
357
- if (!this.isComboBox) {
358
- this.updateSelectBoxValue();
359
- }
360
- else {
361
- // ComboBox의 경우 input 필드도 업데이트
362
- if (this.inputField) {
363
- const isEmpty = value.length === 0;
364
- if (isEmpty) {
365
- // 빈 값으로 설정할 때 input 필드와 검색값 모두 비우기
366
- this.inputField.setValue('');
367
- this.model.updateSearchAndFilter('');
368
- }
369
- }
370
- }
371
- }
372
- updateOptions(newOptions) {
373
- // config.options도 업데이트 (getOptions()가 이를 반환하므로)
374
- this.config.options = [...newOptions];
375
- this.model.updateOptions(newOptions);
376
- this.controller.updateOptions(newOptions);
377
- }
378
- setDisabled(disabled) {
379
- this.config.disabled = disabled;
380
- const disabledClass = `${this.baseClass}--disabled`;
381
- this.element.classList.toggle(disabledClass, disabled);
382
- if (this.controller) {
383
- this.controller.setDisabled(disabled);
384
- }
385
- if (this.isComboBox) {
386
- // 입력 필드 비활성화
387
- if (this.inputField?.input) {
388
- this.inputField.input.disabled = disabled;
389
- this.inputField.container?.classList.toggle('is-disabled', disabled);
390
- }
391
- }
392
- else if (this.triggerElement) {
393
- this.triggerElement.setAttribute('tabindex', disabled ? '-1' : '0');
394
- }
395
- }
396
- open() {
397
- this.controller.open();
398
- }
399
- close() {
400
- this.controller.close();
401
- }
402
- focus() {
403
- if (this.isComboBox) {
404
- this.inputField?.focus();
405
- }
406
- else {
407
- this.triggerElement?.focus();
408
- }
409
- }
410
- destroy() {
411
- this.debouncedSearch.cancel();
412
- this.controller.destroy();
413
- this.renderer.clearCache();
414
- this.inputField = undefined;
415
- }
416
- // Multiple 모드 전용 메서드들
417
- selectAll() {
418
- if (this.config.multiple) {
419
- const allOptionIds = this.config.options?.map((option) => option.id) || [];
420
- this.model.setValue(allOptionIds);
421
- }
422
- }
423
- deselectAll() {
424
- if (this.config.multiple) {
425
- this.model.setValue([]);
426
- }
427
- }
428
- isMultiple() {
429
- return this.config.multiple || false;
430
- }
431
- toggleSelectAll() {
432
- if (!this.config.multiple)
433
- return;
434
- const currentValues = this.model.getValue();
435
- const allOptionIds = this.config.options?.map((option) => option.id) || [];
436
- if (Array.isArray(currentValues) && currentValues.length === allOptionIds.length) {
437
- // 모든 옵션이 선택되어 있으면 전체 해제
438
- this.deselectAll();
439
- }
440
- else {
441
- // 일부만 선택되어 있거나 아무것도 선택되지 않았으면 전체 선택
442
- this.selectAll();
443
- }
444
- }
445
- // 디버깅용
446
- getDebugInfo() {
447
- return {
448
- config: this.config,
449
- modelState: this.model.getDebugInfo(),
450
- isOpen: this.model.getState().isOpen,
451
- };
452
- }
453
- /**
454
- * 드롭다운을 스크롤의 바닥으로 이동
455
- * 전체 선택 시 추가 데이터 로드를 트리거하기 위해 사용
456
- */
457
- scrollToBottom() {
458
- if (!this.dropdownElement)
459
- return;
460
- const optionsList = this.dropdownElement.querySelector('.ncua-select-dropdown__options');
461
- if (!optionsList)
462
- return;
463
- // 스크롤을 바닥으로 이동
464
- optionsList.scrollTop = optionsList.scrollHeight;
465
- }
466
- /**
467
- * 전체 선택 버튼의 텍스트를 외부에서 변경
468
- * @param text 버튼에 표시할 텍스트
469
- */
470
- setSelectAllButtonText(text) {
471
- if (!this.config.multiple || !this.footerElement)
472
- return;
473
- this.renderer.updateSelectAllButtonText(this.footerElement, text);
474
- }
475
- /**
476
- * 특정 인덱스의 옵션으로 포커스 이동
477
- * @param index 포커스를 이동할 옵션의 인덱스
478
- */
479
- setFocusIndex(index) {
480
- this.controller.setFocus(index);
481
- }
482
- }
@@ -1,55 +0,0 @@
1
- import { OptionValue } from '../../src/types';
2
- import { DropdownOption } from './utils/unifiedBox/dropdownModel';
3
- import { UnifiedBoxManager } from './utils/unifiedBox/unifiedBoxManager';
4
- /**
5
- * SelectBox와 ComboBox의 공통 기능을 담는 베이스 클래스
6
- */
7
- export declare abstract class BaseBox {
8
- protected element: HTMLElement;
9
- protected unifiedSelectBox: UnifiedBoxManager;
10
- protected targetSelect: HTMLSelectElement | null;
11
- protected isInitializing: boolean;
12
- protected lastValue: OptionValue;
13
- /** 서브클래스에서 기본 placeholder를 지정 */
14
- protected abstract get defaultPlaceholder(): string;
15
- constructor(element: HTMLElement);
16
- /** 초기화 완료 처리 (서브클래스 생성자 마지막에 호출) */
17
- protected completeInitialization(): void;
18
- /**
19
- * 타겟 select 요소 찾기
20
- */
21
- protected findTargetSelect(element: HTMLElement): HTMLSelectElement | null;
22
- /**
23
- * HTML에서 속성 파싱
24
- */
25
- protected parseAttributesFromHTML(): {
26
- placeholder?: string;
27
- value?: string;
28
- disabled?: boolean;
29
- size?: 'xs' | 'sm' | 'md';
30
- };
31
- /**
32
- * 값 변환 훅 - SelectBox에서 originalValue 매핑을 위해 오버라이드
33
- * 기본 동작: 그대로 문자열 변환
34
- */
35
- protected resolveValue(value: string | number): string;
36
- /**
37
- * 타겟 select와 동기화 (Single 모드)
38
- */
39
- protected syncWithTargetSelect(value: string | number): void;
40
- /**
41
- * 타겟 select와 동기화 (Multiple 모드)
42
- */
43
- protected syncWithTargetSelectMultiple(values: (string | number)[]): void;
44
- getOptions(): DropdownOption[];
45
- updateOptions(newOptions: DropdownOption[]): void;
46
- setDisabled(disabled: boolean): void;
47
- open(): void;
48
- close(): void;
49
- focus(): void;
50
- destroy(): void;
51
- selectAll(): void;
52
- deselectAll(): void;
53
- isMultiple(): boolean;
54
- toggleSelectAll(): void;
55
- }
@@ -1,60 +0,0 @@
1
- import type { Size } from '../../constant/size';
2
- import type { OptionValue } from '../../src/types';
3
- import { BaseBox } from './baseBox';
4
- import type { DropdownOption } from './utils/unifiedBox/dropdownModel';
5
- import { type UnifiedBoxManagerConfig } from './utils/unifiedBox/unifiedBoxManager';
6
- export interface ComboBoxOptionType {
7
- id: string | number;
8
- label: string;
9
- disabled?: boolean;
10
- }
11
- export interface ComboBoxConfig {
12
- options?: ComboBoxOptionType[];
13
- placeholder?: string;
14
- value?: OptionValue;
15
- onChange?: (value: OptionValue) => void;
16
- onSearch?: (searchValue: string) => void;
17
- onEdit?: () => void;
18
- onSelectAll?: () => void;
19
- onSearchAll?: () => void;
20
- onComplete?: () => void;
21
- onTagRemove?: (tagId: string | number) => void;
22
- onScrollBottom?: () => void;
23
- searchDebounceMs?: number;
24
- maxHeight?: number;
25
- disabled?: boolean;
26
- size?: Extract<Size, 'xs' | 'sm'>;
27
- multiple?: boolean;
28
- showFooterButtons?: boolean;
29
- label?: string;
30
- required?: boolean;
31
- }
32
- export declare class ComboBox extends BaseBox {
33
- protected get defaultPlaceholder(): string;
34
- constructor(element: HTMLElement, config?: ComboBoxConfig);
35
- /**
36
- * HTML select에서 옵션 파싱
37
- */
38
- private parseOptionsFromHTML;
39
- getValues(): DropdownOption[];
40
- setValues(value: DropdownOption[]): void;
41
- clearInput(): void;
42
- getDebugInfo(): {
43
- config: UnifiedBoxManagerConfig;
44
- modelState: any;
45
- isOpen: boolean;
46
- };
47
- getSelectedCount(): number;
48
- /**
49
- * 드롭다운을 스크롤의 바닥으로 이동
50
- */
51
- scrollToBottom(): void;
52
- /**
53
- * 전체 선택 버튼의 텍스트를 외부에서 변경
54
- */
55
- setSelectAllButtonText(text: string): void;
56
- /**
57
- * 특정 인덱스의 옵션으로 포커스 이동
58
- */
59
- setFocusIndex(index: number): void;
60
- }
@@ -1,86 +0,0 @@
1
- import { Options as FlatpickrOptions } from 'flatpickr/dist/types/options';
2
- export type DatePickerSize = 'xs' | 'sm';
3
- export interface ValidationError {
4
- index: number;
5
- date: string | Date;
6
- minDate?: string | Date;
7
- maxDate?: string | Date;
8
- violations: Array<'minDate' | 'maxDate'>;
9
- previousDate?: string | Date;
10
- }
11
- interface Options {
12
- buttons?: DatePickerButton[];
13
- size: DatePickerSize;
14
- autoComplete?: 'on' | 'off';
15
- datePickerOptions: DatePickerOptionWrapper[];
16
- onValidationError?: (error: ValidationError) => void;
17
- }
18
- interface DatePickerOptionWrapper {
19
- element: string;
20
- attrName?: string;
21
- placeholder?: string;
22
- options: FlatpickrOptions;
23
- }
24
- interface DatePickerButton {
25
- text: string;
26
- period: number;
27
- unit: 'days' | 'weeks' | 'months' | 'years';
28
- isCurrent: boolean;
29
- }
30
- export declare class DatePicker {
31
- private static instanceCounter;
32
- private static usedWrappers;
33
- private readonly contentWrapper;
34
- private readonly datePickerOptions;
35
- private readonly size;
36
- private readonly instanceId;
37
- private separator;
38
- private autoComplete;
39
- private buttons;
40
- private flatpickrInstances;
41
- private currentButton;
42
- private dateFormat;
43
- private onValidationError?;
44
- constructor(wrapper: HTMLElement, options: Options);
45
- private validateWrapper;
46
- private init;
47
- private validationDependencies;
48
- private initializeWrapper;
49
- private initButtonGroup;
50
- private createButtonElement;
51
- private reRenderButtonGroup;
52
- private initDatePicker;
53
- private initializeFlatpickr;
54
- private createBlurHandler;
55
- private setupFlatpickrLocale;
56
- private createInputHandler;
57
- private findFlatpickrInstanceByInput;
58
- private clearInputValue;
59
- private restorePreviousDate;
60
- private createHourInputHandler;
61
- private createMinuteInputHandler;
62
- private createMouseDownHandler;
63
- private createOnChangeHandler;
64
- private invokeOriginalOnChange;
65
- private isValidDate;
66
- private validateAndRestoreIfNeeded;
67
- private findFlatpickrInstanceIndexByInput;
68
- private restoreDateToInstance;
69
- private createOnReadyHandler;
70
- private createOnDestroyHandler;
71
- private convertDateOption;
72
- private validateDate;
73
- private checkDateViolations;
74
- setDate(dates: string[]): void;
75
- private formatDateForOption;
76
- private parseDateWithMultipleFormats;
77
- private formatMomentDate;
78
- private calculatePeriod;
79
- private updateDateWithButton;
80
- private setMultipleDates;
81
- private updateButtonsByPeriod;
82
- private calculateDatesFromButton;
83
- private convertFlatpickrFormatToMoment;
84
- getDates(): string[];
85
- }
86
- export {};