@ncds/ui-admin 1.8.0 → 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 (448) hide show
  1. package/dist/cjs/src/components/badge/index.js +11 -0
  2. package/dist/cjs/src/components/combo-box/ComboBox.js +1 -0
  3. package/dist/cjs/src/components/date-picker/index.js +11 -0
  4. package/dist/cjs/src/components/image-file-input/components/index.js +16 -0
  5. package/dist/cjs/src/components/image-file-input/index.js +11 -0
  6. package/dist/cjs/src/components/progress-bar/components/index.js +27 -0
  7. package/dist/cjs/src/components/progress-bar/hooks/index.js +16 -0
  8. package/dist/cjs/src/components/progress-bar/index.js +33 -0
  9. package/dist/cjs/src/components/select/Select.js +0 -1
  10. package/dist/cjs/src/components/select-dropdown/index.js +11 -7
  11. package/dist/cjs/src/components/switch/index.js +11 -7
  12. package/dist/cjs/src/components/table/Table.js +128 -16
  13. package/dist/cjs/src/components/tooltip/Tooltip.js +170 -104
  14. package/dist/cjs/src/hooks/dropdown/index.js +61 -37
  15. package/dist/cjs/src/hooks/index.js +31 -25
  16. package/dist/cjs/vitest.config.js +13 -0
  17. package/dist/esm/src/components/badge/index.js +2 -1
  18. package/dist/esm/src/components/combo-box/ComboBox.js +1 -0
  19. package/dist/esm/src/components/date-picker/index.js +1 -0
  20. package/dist/esm/src/components/empty-state/EmptyState.js +2 -3
  21. package/dist/esm/src/components/image-file-input/components/index.js +1 -0
  22. package/dist/esm/src/components/image-file-input/index.js +2 -1
  23. package/dist/esm/src/components/progress-bar/components/index.js +2 -0
  24. package/dist/esm/src/components/progress-bar/hooks/index.js +1 -0
  25. package/dist/esm/src/components/progress-bar/index.js +4 -1
  26. package/dist/esm/src/components/select/Select.js +0 -1
  27. package/dist/esm/src/components/select-dropdown/index.js +1 -1
  28. package/dist/esm/src/components/switch/index.js +1 -1
  29. package/dist/esm/src/components/table/Table.js +129 -17
  30. package/dist/esm/src/components/tag/Tag.js +2 -3
  31. package/dist/esm/src/components/tooltip/Tooltip.js +172 -106
  32. package/dist/esm/src/hooks/dropdown/index.js +6 -6
  33. package/dist/esm/src/hooks/index.js +3 -3
  34. package/dist/esm/src/types/component-meta.js +2 -0
  35. package/dist/esm/vitest.config.js +7 -0
  36. package/dist/temp/src/components/badge/index.d.ts +1 -0
  37. package/dist/temp/src/components/badge/index.js +1 -0
  38. package/dist/temp/src/components/combo-box/ComboBox.js +1 -0
  39. package/dist/temp/src/components/date-picker/index.d.ts +1 -0
  40. package/dist/temp/src/components/date-picker/index.js +1 -0
  41. package/dist/temp/src/components/empty-state/EmptyState.d.ts +3 -5
  42. package/dist/temp/src/components/empty-state/EmptyState.js +1 -2
  43. package/dist/temp/src/components/image-file-input/components/index.d.ts +1 -0
  44. package/dist/temp/src/components/image-file-input/components/index.js +1 -0
  45. package/dist/temp/src/components/image-file-input/index.d.ts +1 -0
  46. package/dist/temp/src/components/image-file-input/index.js +1 -0
  47. package/dist/temp/src/components/progress-bar/components/index.d.ts +2 -0
  48. package/dist/temp/src/components/progress-bar/components/index.js +2 -0
  49. package/dist/temp/src/components/progress-bar/hooks/index.d.ts +1 -0
  50. package/dist/temp/src/components/progress-bar/hooks/index.js +1 -0
  51. package/dist/temp/src/components/progress-bar/index.d.ts +3 -0
  52. package/dist/temp/src/components/progress-bar/index.js +3 -0
  53. package/dist/temp/src/components/select/Select.js +1 -1
  54. package/dist/temp/src/components/select-dropdown/index.d.ts +1 -1
  55. package/dist/temp/src/components/select-dropdown/index.js +1 -1
  56. package/dist/temp/src/components/spinner/Spinner.d.ts +1 -2
  57. package/dist/temp/src/components/switch/index.d.ts +1 -2
  58. package/dist/temp/src/components/switch/index.js +1 -1
  59. package/dist/temp/src/components/table/Table.d.ts +4 -2
  60. package/dist/temp/src/components/table/Table.js +95 -11
  61. package/dist/temp/src/components/table/types.d.ts +3 -1
  62. package/dist/temp/src/components/tag/Tag.d.ts +3 -5
  63. package/dist/temp/src/components/tag/Tag.js +1 -2
  64. package/dist/temp/src/components/tooltip/Tooltip.d.ts +4 -2
  65. package/dist/temp/src/components/tooltip/Tooltip.js +126 -68
  66. package/dist/temp/src/hooks/dropdown/index.d.ts +6 -6
  67. package/dist/temp/src/hooks/dropdown/index.js +6 -6
  68. package/dist/temp/src/hooks/index.d.ts +3 -3
  69. package/dist/temp/src/hooks/index.js +3 -3
  70. package/dist/temp/src/types/component-meta.d.ts +26 -0
  71. package/dist/temp/src/types/component-meta.js +2 -0
  72. package/dist/temp/src/types/dropdown/option.d.ts +2 -4
  73. package/dist/temp/src/types/side-slot.d.ts +9 -1
  74. package/dist/temp/vitest.config.d.ts +2 -0
  75. package/dist/temp/vitest.config.js +7 -0
  76. package/dist/types/src/components/badge/index.d.ts +1 -0
  77. package/dist/types/src/components/date-picker/index.d.ts +1 -0
  78. package/dist/types/src/components/empty-state/EmptyState.d.ts +3 -5
  79. package/dist/types/src/components/image-file-input/components/index.d.ts +1 -0
  80. package/dist/types/src/components/image-file-input/index.d.ts +1 -0
  81. package/dist/types/src/components/progress-bar/components/index.d.ts +2 -0
  82. package/dist/types/src/components/progress-bar/hooks/index.d.ts +1 -0
  83. package/dist/types/src/components/progress-bar/index.d.ts +3 -0
  84. package/dist/types/src/components/select-dropdown/index.d.ts +1 -1
  85. package/dist/types/src/components/spinner/Spinner.d.ts +1 -2
  86. package/dist/types/src/components/switch/index.d.ts +1 -2
  87. package/dist/types/src/components/table/Table.d.ts +4 -2
  88. package/dist/types/src/components/table/types.d.ts +3 -1
  89. package/dist/types/src/components/tag/Tag.d.ts +3 -5
  90. package/dist/types/src/components/tooltip/Tooltip.d.ts +4 -2
  91. package/dist/types/src/hooks/dropdown/index.d.ts +6 -6
  92. package/dist/types/src/hooks/index.d.ts +3 -3
  93. package/dist/types/src/types/component-meta.d.ts +26 -0
  94. package/dist/types/src/types/dropdown/option.d.ts +2 -4
  95. package/dist/types/src/types/side-slot.d.ts +9 -1
  96. package/dist/types/vitest.config.d.ts +2 -0
  97. package/dist/ui-admin/assets/styles/style.css +178 -60
  98. package/package.json +6 -1
  99. package/dist/cjs/assets/scripts/baseBox.js +0 -146
  100. package/dist/cjs/assets/scripts/comboBox.js +0 -137
  101. package/dist/cjs/assets/scripts/datePicker.js +0 -671
  102. package/dist/cjs/assets/scripts/featuredIcon.js +0 -87
  103. package/dist/cjs/assets/scripts/fileInput/const/classNames.js +0 -25
  104. package/dist/cjs/assets/scripts/fileInput/const/index.js +0 -27
  105. package/dist/cjs/assets/scripts/fileInput/const/types.js +0 -13
  106. package/dist/cjs/assets/scripts/fileInput/fileInput.js +0 -78
  107. package/dist/cjs/assets/scripts/fileInput/fileInputModel.js +0 -53
  108. package/dist/cjs/assets/scripts/fileInput/fileInputView.js +0 -152
  109. package/dist/cjs/assets/scripts/fileInput/index.js +0 -44
  110. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInput.js +0 -184
  111. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputModel.js +0 -222
  112. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputView.js +0 -356
  113. package/dist/cjs/assets/scripts/imageFileInput/const/classNames.js +0 -31
  114. package/dist/cjs/assets/scripts/imageFileInput/const/index.js +0 -27
  115. package/dist/cjs/assets/scripts/imageFileInput/const/types.js +0 -13
  116. package/dist/cjs/assets/scripts/imageFileInput/index.js +0 -44
  117. package/dist/cjs/assets/scripts/index.js +0 -32
  118. package/dist/cjs/assets/scripts/modal/Modal.js +0 -104
  119. package/dist/cjs/assets/scripts/modal/ModalActions.js +0 -116
  120. package/dist/cjs/assets/scripts/modal/ModalContent.js +0 -46
  121. package/dist/cjs/assets/scripts/modal/ModalHeader.js +0 -104
  122. package/dist/cjs/assets/scripts/modal/const/classNames.js +0 -33
  123. package/dist/cjs/assets/scripts/modal/const/index.js +0 -27
  124. package/dist/cjs/assets/scripts/modal/index.js +0 -61
  125. package/dist/cjs/assets/scripts/modal/utils/contentUtils.js +0 -35
  126. package/dist/cjs/assets/scripts/notification/FloatingNotification.js +0 -178
  127. package/dist/cjs/assets/scripts/notification/FullWidthNotification.js +0 -132
  128. package/dist/cjs/assets/scripts/notification/MessageNotification.js +0 -159
  129. package/dist/cjs/assets/scripts/notification/Notification.js +0 -101
  130. package/dist/cjs/assets/scripts/notification/const/classNames.js +0 -50
  131. package/dist/cjs/assets/scripts/notification/const/icons.js +0 -31
  132. package/dist/cjs/assets/scripts/notification/const/index.js +0 -87
  133. package/dist/cjs/assets/scripts/notification/const/sizes.js +0 -46
  134. package/dist/cjs/assets/scripts/notification/const/types.js +0 -14
  135. package/dist/cjs/assets/scripts/notification/index.js +0 -92
  136. package/dist/cjs/assets/scripts/notification/utils.js +0 -97
  137. package/dist/cjs/assets/scripts/progress-bar/ProgressBar.js +0 -271
  138. package/dist/cjs/assets/scripts/progress-bar/index.js +0 -12
  139. package/dist/cjs/assets/scripts/selectBox.js +0 -169
  140. package/dist/cjs/assets/scripts/shared/ButtonCloseX.js +0 -45
  141. package/dist/cjs/assets/scripts/tab.js +0 -40
  142. package/dist/cjs/assets/scripts/table/Table.js +0 -377
  143. package/dist/cjs/assets/scripts/table/const/classNames.js +0 -33
  144. package/dist/cjs/assets/scripts/table/const/index.js +0 -27
  145. package/dist/cjs/assets/scripts/table/const/types.js +0 -5
  146. package/dist/cjs/assets/scripts/table/index.js +0 -43
  147. package/dist/cjs/assets/scripts/tag/Tag.js +0 -261
  148. package/dist/cjs/assets/scripts/tag/const/classNames.js +0 -20
  149. package/dist/cjs/assets/scripts/tag/const/index.js +0 -38
  150. package/dist/cjs/assets/scripts/tag/const/sizes.js +0 -13
  151. package/dist/cjs/assets/scripts/tag/const/types.js +0 -5
  152. package/dist/cjs/assets/scripts/tag/index.js +0 -44
  153. package/dist/cjs/assets/scripts/tooltip/Tooltip.js +0 -353
  154. package/dist/cjs/assets/scripts/tooltip/TooltipLayerManager.js +0 -82
  155. package/dist/cjs/assets/scripts/tooltip/const/classNames.js +0 -29
  156. package/dist/cjs/assets/scripts/tooltip/const/constants.js +0 -56
  157. package/dist/cjs/assets/scripts/tooltip/const/icons.js +0 -15
  158. package/dist/cjs/assets/scripts/tooltip/const/index.js +0 -123
  159. package/dist/cjs/assets/scripts/tooltip/const/templates.js +0 -66
  160. package/dist/cjs/assets/scripts/tooltip/const/types.js +0 -5
  161. package/dist/cjs/assets/scripts/tooltip/index.js +0 -57
  162. package/dist/cjs/assets/scripts/tooltip/utils.js +0 -40
  163. package/dist/cjs/assets/scripts/utils/debounce.js +0 -32
  164. package/dist/cjs/assets/scripts/utils/unifiedBox/domRenderer.js +0 -370
  165. package/dist/cjs/assets/scripts/utils/unifiedBox/dropdownModel.js +0 -285
  166. package/dist/cjs/assets/scripts/utils/unifiedBox/unifiedBoxController.js +0 -622
  167. package/dist/cjs/assets/scripts/utils/unifiedBox/unifiedBoxManager.js +0 -473
  168. package/dist/esm/assets/scripts/baseBox.js +0 -139
  169. package/dist/esm/assets/scripts/comboBox.js +0 -130
  170. package/dist/esm/assets/scripts/datePicker.js +0 -663
  171. package/dist/esm/assets/scripts/featuredIcon.js +0 -80
  172. package/dist/esm/assets/scripts/fileInput/const/classNames.js +0 -16
  173. package/dist/esm/assets/scripts/fileInput/const/index.js +0 -2
  174. package/dist/esm/assets/scripts/fileInput/const/types.js +0 -7
  175. package/dist/esm/assets/scripts/fileInput/fileInput.js +0 -71
  176. package/dist/esm/assets/scripts/fileInput/fileInputModel.js +0 -46
  177. package/dist/esm/assets/scripts/fileInput/fileInputView.js +0 -145
  178. package/dist/esm/assets/scripts/fileInput/index.js +0 -9
  179. package/dist/esm/assets/scripts/imageFileInput/ImageFileInput.js +0 -177
  180. package/dist/esm/assets/scripts/imageFileInput/ImageFileInputModel.js +0 -215
  181. package/dist/esm/assets/scripts/imageFileInput/ImageFileInputView.js +0 -349
  182. package/dist/esm/assets/scripts/imageFileInput/const/classNames.js +0 -20
  183. package/dist/esm/assets/scripts/imageFileInput/const/index.js +0 -2
  184. package/dist/esm/assets/scripts/imageFileInput/const/types.js +0 -7
  185. package/dist/esm/assets/scripts/imageFileInput/index.js +0 -9
  186. package/dist/esm/assets/scripts/index.js +0 -30
  187. package/dist/esm/assets/scripts/modal/Modal.js +0 -98
  188. package/dist/esm/assets/scripts/modal/ModalActions.js +0 -109
  189. package/dist/esm/assets/scripts/modal/ModalContent.js +0 -39
  190. package/dist/esm/assets/scripts/modal/ModalHeader.js +0 -97
  191. package/dist/esm/assets/scripts/modal/const/classNames.js +0 -23
  192. package/dist/esm/assets/scripts/modal/const/index.js +0 -2
  193. package/dist/esm/assets/scripts/modal/const/types.js +0 -1
  194. package/dist/esm/assets/scripts/modal/index.js +0 -15
  195. package/dist/esm/assets/scripts/modal/utils/contentUtils.js +0 -28
  196. package/dist/esm/assets/scripts/notification/FloatingNotification.js +0 -172
  197. package/dist/esm/assets/scripts/notification/FullWidthNotification.js +0 -125
  198. package/dist/esm/assets/scripts/notification/MessageNotification.js +0 -152
  199. package/dist/esm/assets/scripts/notification/Notification.js +0 -94
  200. package/dist/esm/assets/scripts/notification/const/classNames.js +0 -44
  201. package/dist/esm/assets/scripts/notification/const/icons.js +0 -25
  202. package/dist/esm/assets/scripts/notification/const/index.js +0 -4
  203. package/dist/esm/assets/scripts/notification/const/sizes.js +0 -40
  204. package/dist/esm/assets/scripts/notification/const/types.js +0 -8
  205. package/dist/esm/assets/scripts/notification/index.js +0 -11
  206. package/dist/esm/assets/scripts/notification/utils.js +0 -84
  207. package/dist/esm/assets/scripts/progress-bar/ProgressBar.js +0 -264
  208. package/dist/esm/assets/scripts/progress-bar/index.js +0 -1
  209. package/dist/esm/assets/scripts/selectBox.js +0 -162
  210. package/dist/esm/assets/scripts/shared/ButtonCloseX.js +0 -37
  211. package/dist/esm/assets/scripts/tab.js +0 -33
  212. package/dist/esm/assets/scripts/table/Table.js +0 -370
  213. package/dist/esm/assets/scripts/table/const/classNames.js +0 -27
  214. package/dist/esm/assets/scripts/table/const/index.js +0 -2
  215. package/dist/esm/assets/scripts/table/const/types.js +0 -1
  216. package/dist/esm/assets/scripts/table/index.js +0 -8
  217. package/dist/esm/assets/scripts/tag/Tag.js +0 -254
  218. package/dist/esm/assets/scripts/tag/const/classNames.js +0 -12
  219. package/dist/esm/assets/scripts/tag/const/index.js +0 -3
  220. package/dist/esm/assets/scripts/tag/const/sizes.js +0 -7
  221. package/dist/esm/assets/scripts/tag/const/types.js +0 -1
  222. package/dist/esm/assets/scripts/tag/index.js +0 -9
  223. package/dist/esm/assets/scripts/tooltip/Tooltip.js +0 -346
  224. package/dist/esm/assets/scripts/tooltip/TooltipLayerManager.js +0 -75
  225. package/dist/esm/assets/scripts/tooltip/const/classNames.js +0 -23
  226. package/dist/esm/assets/scripts/tooltip/const/constants.js +0 -50
  227. package/dist/esm/assets/scripts/tooltip/const/icons.js +0 -9
  228. package/dist/esm/assets/scripts/tooltip/const/index.js +0 -4
  229. package/dist/esm/assets/scripts/tooltip/const/templates.js +0 -59
  230. package/dist/esm/assets/scripts/tooltip/const/types.js +0 -1
  231. package/dist/esm/assets/scripts/tooltip/index.js +0 -10
  232. package/dist/esm/assets/scripts/tooltip/utils.js +0 -34
  233. package/dist/esm/assets/scripts/utils/debounce.js +0 -26
  234. package/dist/esm/assets/scripts/utils/unifiedBox/domRenderer.js +0 -363
  235. package/dist/esm/assets/scripts/utils/unifiedBox/dropdownModel.js +0 -279
  236. package/dist/esm/assets/scripts/utils/unifiedBox/unifiedBoxController.js +0 -615
  237. package/dist/esm/assets/scripts/utils/unifiedBox/unifiedBoxManager.js +0 -466
  238. package/dist/temp/assets/scripts/baseBox.d.ts +0 -55
  239. package/dist/temp/assets/scripts/baseBox.js +0 -140
  240. package/dist/temp/assets/scripts/comboBox.d.ts +0 -60
  241. package/dist/temp/assets/scripts/comboBox.js +0 -132
  242. package/dist/temp/assets/scripts/datePicker.d.ts +0 -86
  243. package/dist/temp/assets/scripts/datePicker.js +0 -699
  244. package/dist/temp/assets/scripts/featuredIcon.d.ts +0 -22
  245. package/dist/temp/assets/scripts/featuredIcon.js +0 -79
  246. package/dist/temp/assets/scripts/fileInput/const/classNames.d.ts +0 -15
  247. package/dist/temp/assets/scripts/fileInput/const/classNames.js +0 -16
  248. package/dist/temp/assets/scripts/fileInput/const/index.d.ts +0 -2
  249. package/dist/temp/assets/scripts/fileInput/const/index.js +0 -2
  250. package/dist/temp/assets/scripts/fileInput/const/types.d.ts +0 -88
  251. package/dist/temp/assets/scripts/fileInput/const/types.js +0 -7
  252. package/dist/temp/assets/scripts/fileInput/fileInput.d.ts +0 -13
  253. package/dist/temp/assets/scripts/fileInput/fileInput.js +0 -71
  254. package/dist/temp/assets/scripts/fileInput/fileInputModel.d.ts +0 -12
  255. package/dist/temp/assets/scripts/fileInput/fileInputModel.js +0 -37
  256. package/dist/temp/assets/scripts/fileInput/fileInputView.d.ts +0 -42
  257. package/dist/temp/assets/scripts/fileInput/fileInputView.js +0 -145
  258. package/dist/temp/assets/scripts/fileInput/index.d.ts +0 -3
  259. package/dist/temp/assets/scripts/fileInput/index.js +0 -9
  260. package/dist/temp/assets/scripts/imageFileInput/ImageFileInput.d.ts +0 -63
  261. package/dist/temp/assets/scripts/imageFileInput/ImageFileInput.js +0 -180
  262. package/dist/temp/assets/scripts/imageFileInput/ImageFileInputModel.d.ts +0 -73
  263. package/dist/temp/assets/scripts/imageFileInput/ImageFileInputModel.js +0 -214
  264. package/dist/temp/assets/scripts/imageFileInput/ImageFileInputView.d.ts +0 -79
  265. package/dist/temp/assets/scripts/imageFileInput/ImageFileInputView.js +0 -350
  266. package/dist/temp/assets/scripts/imageFileInput/const/classNames.d.ts +0 -19
  267. package/dist/temp/assets/scripts/imageFileInput/const/classNames.js +0 -20
  268. package/dist/temp/assets/scripts/imageFileInput/const/index.d.ts +0 -2
  269. package/dist/temp/assets/scripts/imageFileInput/const/index.js +0 -2
  270. package/dist/temp/assets/scripts/imageFileInput/const/types.d.ts +0 -125
  271. package/dist/temp/assets/scripts/imageFileInput/const/types.js +0 -7
  272. package/dist/temp/assets/scripts/imageFileInput/index.d.ts +0 -3
  273. package/dist/temp/assets/scripts/imageFileInput/index.js +0 -9
  274. package/dist/temp/assets/scripts/index.d.ts +0 -34
  275. package/dist/temp/assets/scripts/index.js +0 -30
  276. package/dist/temp/assets/scripts/modal/Modal.d.ts +0 -27
  277. package/dist/temp/assets/scripts/modal/Modal.js +0 -100
  278. package/dist/temp/assets/scripts/modal/ModalActions.d.ts +0 -18
  279. package/dist/temp/assets/scripts/modal/ModalActions.js +0 -117
  280. package/dist/temp/assets/scripts/modal/ModalContent.d.ts +0 -13
  281. package/dist/temp/assets/scripts/modal/ModalContent.js +0 -39
  282. package/dist/temp/assets/scripts/modal/ModalHeader.d.ts +0 -15
  283. package/dist/temp/assets/scripts/modal/ModalHeader.js +0 -96
  284. package/dist/temp/assets/scripts/modal/const/classNames.d.ts +0 -22
  285. package/dist/temp/assets/scripts/modal/const/classNames.js +0 -23
  286. package/dist/temp/assets/scripts/modal/const/index.d.ts +0 -2
  287. package/dist/temp/assets/scripts/modal/const/index.js +0 -2
  288. package/dist/temp/assets/scripts/modal/const/types.d.ts +0 -61
  289. package/dist/temp/assets/scripts/modal/const/types.js +0 -1
  290. package/dist/temp/assets/scripts/modal/index.d.ts +0 -7
  291. package/dist/temp/assets/scripts/modal/index.js +0 -15
  292. package/dist/temp/assets/scripts/modal/utils/contentUtils.d.ts +0 -10
  293. package/dist/temp/assets/scripts/modal/utils/contentUtils.js +0 -29
  294. package/dist/temp/assets/scripts/notification/FloatingNotification.d.ts +0 -24
  295. package/dist/temp/assets/scripts/notification/FloatingNotification.js +0 -157
  296. package/dist/temp/assets/scripts/notification/FullWidthNotification.d.ts +0 -21
  297. package/dist/temp/assets/scripts/notification/FullWidthNotification.js +0 -110
  298. package/dist/temp/assets/scripts/notification/MessageNotification.d.ts +0 -22
  299. package/dist/temp/assets/scripts/notification/MessageNotification.js +0 -140
  300. package/dist/temp/assets/scripts/notification/Notification.d.ts +0 -21
  301. package/dist/temp/assets/scripts/notification/Notification.js +0 -94
  302. package/dist/temp/assets/scripts/notification/const/classNames.d.ts +0 -43
  303. package/dist/temp/assets/scripts/notification/const/classNames.js +0 -44
  304. package/dist/temp/assets/scripts/notification/const/icons.d.ts +0 -25
  305. package/dist/temp/assets/scripts/notification/const/icons.js +0 -25
  306. package/dist/temp/assets/scripts/notification/const/index.d.ts +0 -5
  307. package/dist/temp/assets/scripts/notification/const/index.js +0 -4
  308. package/dist/temp/assets/scripts/notification/const/sizes.d.ts +0 -32
  309. package/dist/temp/assets/scripts/notification/const/sizes.js +0 -40
  310. package/dist/temp/assets/scripts/notification/const/types.d.ts +0 -19
  311. package/dist/temp/assets/scripts/notification/const/types.js +0 -8
  312. package/dist/temp/assets/scripts/notification/index.d.ts +0 -7
  313. package/dist/temp/assets/scripts/notification/index.js +0 -11
  314. package/dist/temp/assets/scripts/notification/utils.d.ts +0 -8
  315. package/dist/temp/assets/scripts/notification/utils.js +0 -89
  316. package/dist/temp/assets/scripts/progress-bar/ProgressBar.d.ts +0 -67
  317. package/dist/temp/assets/scripts/progress-bar/ProgressBar.js +0 -263
  318. package/dist/temp/assets/scripts/progress-bar/index.d.ts +0 -1
  319. package/dist/temp/assets/scripts/progress-bar/index.js +0 -1
  320. package/dist/temp/assets/scripts/selectBox.d.ts +0 -50
  321. package/dist/temp/assets/scripts/selectBox.js +0 -170
  322. package/dist/temp/assets/scripts/shared/ButtonCloseX.d.ts +0 -5
  323. package/dist/temp/assets/scripts/shared/ButtonCloseX.js +0 -33
  324. package/dist/temp/assets/scripts/tab.d.ts +0 -7
  325. package/dist/temp/assets/scripts/tab.js +0 -33
  326. package/dist/temp/assets/scripts/table/Table.d.ts +0 -41
  327. package/dist/temp/assets/scripts/table/Table.js +0 -378
  328. package/dist/temp/assets/scripts/table/const/classNames.d.ts +0 -27
  329. package/dist/temp/assets/scripts/table/const/classNames.js +0 -27
  330. package/dist/temp/assets/scripts/table/const/index.d.ts +0 -2
  331. package/dist/temp/assets/scripts/table/const/index.js +0 -2
  332. package/dist/temp/assets/scripts/table/const/types.d.ts +0 -23
  333. package/dist/temp/assets/scripts/table/const/types.js +0 -1
  334. package/dist/temp/assets/scripts/table/index.d.ts +0 -3
  335. package/dist/temp/assets/scripts/table/index.js +0 -8
  336. package/dist/temp/assets/scripts/tag/Tag.d.ts +0 -27
  337. package/dist/temp/assets/scripts/tag/Tag.js +0 -259
  338. package/dist/temp/assets/scripts/tag/const/classNames.d.ts +0 -11
  339. package/dist/temp/assets/scripts/tag/const/classNames.js +0 -12
  340. package/dist/temp/assets/scripts/tag/const/index.d.ts +0 -3
  341. package/dist/temp/assets/scripts/tag/const/index.js +0 -3
  342. package/dist/temp/assets/scripts/tag/const/sizes.d.ts +0 -7
  343. package/dist/temp/assets/scripts/tag/const/sizes.js +0 -7
  344. package/dist/temp/assets/scripts/tag/const/types.d.ts +0 -33
  345. package/dist/temp/assets/scripts/tag/const/types.js +0 -1
  346. package/dist/temp/assets/scripts/tag/index.d.ts +0 -3
  347. package/dist/temp/assets/scripts/tag/index.js +0 -9
  348. package/dist/temp/assets/scripts/tooltip/Tooltip.d.ts +0 -54
  349. package/dist/temp/assets/scripts/tooltip/Tooltip.js +0 -335
  350. package/dist/temp/assets/scripts/tooltip/TooltipLayerManager.d.ts +0 -21
  351. package/dist/temp/assets/scripts/tooltip/TooltipLayerManager.js +0 -71
  352. package/dist/temp/assets/scripts/tooltip/const/classNames.d.ts +0 -17
  353. package/dist/temp/assets/scripts/tooltip/const/classNames.js +0 -23
  354. package/dist/temp/assets/scripts/tooltip/const/constants.d.ts +0 -33
  355. package/dist/temp/assets/scripts/tooltip/const/constants.js +0 -46
  356. package/dist/temp/assets/scripts/tooltip/const/icons.d.ts +0 -4
  357. package/dist/temp/assets/scripts/tooltip/const/icons.js +0 -9
  358. package/dist/temp/assets/scripts/tooltip/const/index.d.ts +0 -5
  359. package/dist/temp/assets/scripts/tooltip/const/index.js +0 -4
  360. package/dist/temp/assets/scripts/tooltip/const/templates.d.ts +0 -16
  361. package/dist/temp/assets/scripts/tooltip/const/templates.js +0 -59
  362. package/dist/temp/assets/scripts/tooltip/const/types.d.ts +0 -14
  363. package/dist/temp/assets/scripts/tooltip/const/types.js +0 -1
  364. package/dist/temp/assets/scripts/tooltip/index.d.ts +0 -6
  365. package/dist/temp/assets/scripts/tooltip/index.js +0 -10
  366. package/dist/temp/assets/scripts/tooltip/utils.d.ts +0 -2
  367. package/dist/temp/assets/scripts/tooltip/utils.js +0 -33
  368. package/dist/temp/assets/scripts/utils/debounce.d.ts +0 -8
  369. package/dist/temp/assets/scripts/utils/debounce.js +0 -23
  370. package/dist/temp/assets/scripts/utils/unifiedBox/domRenderer.d.ts +0 -107
  371. package/dist/temp/assets/scripts/utils/unifiedBox/domRenderer.js +0 -367
  372. package/dist/temp/assets/scripts/utils/unifiedBox/dropdownModel.d.ts +0 -142
  373. package/dist/temp/assets/scripts/utils/unifiedBox/dropdownModel.js +0 -286
  374. package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxController.d.ts +0 -156
  375. package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxController.js +0 -604
  376. package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxManager.d.ts +0 -95
  377. package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxManager.js +0 -482
  378. package/dist/types/assets/scripts/baseBox.d.ts +0 -55
  379. package/dist/types/assets/scripts/comboBox.d.ts +0 -60
  380. package/dist/types/assets/scripts/datePicker.d.ts +0 -86
  381. package/dist/types/assets/scripts/featuredIcon.d.ts +0 -22
  382. package/dist/types/assets/scripts/fileInput/const/classNames.d.ts +0 -15
  383. package/dist/types/assets/scripts/fileInput/const/index.d.ts +0 -2
  384. package/dist/types/assets/scripts/fileInput/const/types.d.ts +0 -88
  385. package/dist/types/assets/scripts/fileInput/fileInput.d.ts +0 -13
  386. package/dist/types/assets/scripts/fileInput/fileInputModel.d.ts +0 -12
  387. package/dist/types/assets/scripts/fileInput/fileInputView.d.ts +0 -42
  388. package/dist/types/assets/scripts/fileInput/index.d.ts +0 -3
  389. package/dist/types/assets/scripts/imageFileInput/ImageFileInput.d.ts +0 -63
  390. package/dist/types/assets/scripts/imageFileInput/ImageFileInputModel.d.ts +0 -73
  391. package/dist/types/assets/scripts/imageFileInput/ImageFileInputView.d.ts +0 -79
  392. package/dist/types/assets/scripts/imageFileInput/const/classNames.d.ts +0 -19
  393. package/dist/types/assets/scripts/imageFileInput/const/index.d.ts +0 -2
  394. package/dist/types/assets/scripts/imageFileInput/const/types.d.ts +0 -125
  395. package/dist/types/assets/scripts/imageFileInput/index.d.ts +0 -3
  396. package/dist/types/assets/scripts/index.d.ts +0 -34
  397. package/dist/types/assets/scripts/modal/Modal.d.ts +0 -27
  398. package/dist/types/assets/scripts/modal/ModalActions.d.ts +0 -18
  399. package/dist/types/assets/scripts/modal/ModalContent.d.ts +0 -13
  400. package/dist/types/assets/scripts/modal/ModalHeader.d.ts +0 -15
  401. package/dist/types/assets/scripts/modal/const/classNames.d.ts +0 -22
  402. package/dist/types/assets/scripts/modal/const/index.d.ts +0 -2
  403. package/dist/types/assets/scripts/modal/const/types.d.ts +0 -61
  404. package/dist/types/assets/scripts/modal/index.d.ts +0 -7
  405. package/dist/types/assets/scripts/modal/utils/contentUtils.d.ts +0 -10
  406. package/dist/types/assets/scripts/notification/FloatingNotification.d.ts +0 -24
  407. package/dist/types/assets/scripts/notification/FullWidthNotification.d.ts +0 -21
  408. package/dist/types/assets/scripts/notification/MessageNotification.d.ts +0 -22
  409. package/dist/types/assets/scripts/notification/Notification.d.ts +0 -21
  410. package/dist/types/assets/scripts/notification/const/classNames.d.ts +0 -43
  411. package/dist/types/assets/scripts/notification/const/icons.d.ts +0 -25
  412. package/dist/types/assets/scripts/notification/const/index.d.ts +0 -5
  413. package/dist/types/assets/scripts/notification/const/sizes.d.ts +0 -32
  414. package/dist/types/assets/scripts/notification/const/types.d.ts +0 -19
  415. package/dist/types/assets/scripts/notification/index.d.ts +0 -7
  416. package/dist/types/assets/scripts/notification/utils.d.ts +0 -8
  417. package/dist/types/assets/scripts/progress-bar/ProgressBar.d.ts +0 -67
  418. package/dist/types/assets/scripts/progress-bar/index.d.ts +0 -1
  419. package/dist/types/assets/scripts/selectBox.d.ts +0 -50
  420. package/dist/types/assets/scripts/shared/ButtonCloseX.d.ts +0 -5
  421. package/dist/types/assets/scripts/tab.d.ts +0 -7
  422. package/dist/types/assets/scripts/table/Table.d.ts +0 -41
  423. package/dist/types/assets/scripts/table/const/classNames.d.ts +0 -27
  424. package/dist/types/assets/scripts/table/const/index.d.ts +0 -2
  425. package/dist/types/assets/scripts/table/const/types.d.ts +0 -23
  426. package/dist/types/assets/scripts/table/index.d.ts +0 -3
  427. package/dist/types/assets/scripts/tag/Tag.d.ts +0 -27
  428. package/dist/types/assets/scripts/tag/const/classNames.d.ts +0 -11
  429. package/dist/types/assets/scripts/tag/const/index.d.ts +0 -3
  430. package/dist/types/assets/scripts/tag/const/sizes.d.ts +0 -7
  431. package/dist/types/assets/scripts/tag/const/types.d.ts +0 -33
  432. package/dist/types/assets/scripts/tag/index.d.ts +0 -3
  433. package/dist/types/assets/scripts/tooltip/Tooltip.d.ts +0 -54
  434. package/dist/types/assets/scripts/tooltip/TooltipLayerManager.d.ts +0 -21
  435. package/dist/types/assets/scripts/tooltip/const/classNames.d.ts +0 -17
  436. package/dist/types/assets/scripts/tooltip/const/constants.d.ts +0 -33
  437. package/dist/types/assets/scripts/tooltip/const/icons.d.ts +0 -4
  438. package/dist/types/assets/scripts/tooltip/const/index.d.ts +0 -5
  439. package/dist/types/assets/scripts/tooltip/const/templates.d.ts +0 -16
  440. package/dist/types/assets/scripts/tooltip/const/types.d.ts +0 -14
  441. package/dist/types/assets/scripts/tooltip/index.d.ts +0 -6
  442. package/dist/types/assets/scripts/tooltip/utils.d.ts +0 -2
  443. package/dist/types/assets/scripts/utils/debounce.d.ts +0 -8
  444. package/dist/types/assets/scripts/utils/unifiedBox/domRenderer.d.ts +0 -107
  445. package/dist/types/assets/scripts/utils/unifiedBox/dropdownModel.d.ts +0 -142
  446. package/dist/types/assets/scripts/utils/unifiedBox/unifiedBoxController.d.ts +0 -156
  447. package/dist/types/assets/scripts/utils/unifiedBox/unifiedBoxManager.d.ts +0 -95
  448. /package/dist/cjs/{assets/scripts/modal/const/types.js → src/types/component-meta.js} +0 -0
@@ -1,222 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ImageFileInputModel = void 0;
7
- var _types = require("./const/types");
8
- class ImageFileInputModel {
9
- constructor(options) {
10
- this.internalFiles = [];
11
- this.initialFiles = []; // 초기 파일 목록 (렌더링 시점의 파일)
12
- this.newlyAddedFiles = new Set(); // 새로 추가된 파일 추적
13
- this.deletedInitialFiles = new Set(); // 삭제 표시된 초기 파일들 (파일명으로 추적)
14
- this.options = {
15
- size: 'sm',
16
- multiple: false,
17
- buttonLabel: '파일 찾기',
18
- imagePreviewTooltipLabel: '이미지 업로드',
19
- disabled: false,
20
- ...options
21
- };
22
- // 초기 파일 설정
23
- if (this.options.value && this.options.value.length > 0) {
24
- this.internalFiles = [...this.options.value];
25
- // value로 들어온 File[]은 새로 추가된 파일로 처리 (initialFiles는 별도로 setFiles(UploadedFile[])로 설정)
26
- }
27
- }
28
- /**
29
- * 옵션 반환
30
- */
31
- getOptions() {
32
- return this.options;
33
- }
34
- /**
35
- * 현재 파일 목록 반환 (초기 파일 + 새로 추가된 파일, 삭제 표시된 파일 제외)
36
- */
37
- getFiles() {
38
- const newFiles = this.options.value !== undefined ? this.options.value : this.internalFiles;
39
- // UploadedFile을 File 객체로 변환 (삭제 표시되지 않은 것만)
40
- const initialFilesAsFiles = this.initialFiles.filter(uploadedFile => !this.deletedInitialFiles.has(uploadedFile.fileName)).map(uploadedFile => {
41
- // UploadedFile을 File 객체로 변환 (빈 데이터지만 이름과 타입 정보 유지)
42
- const mimeType = this.getMimeTypeFromFileName(uploadedFile.fileName);
43
- return new File([], uploadedFile.fileName, {
44
- type: mimeType
45
- });
46
- });
47
- // 초기 파일 + 새로 추가된 파일 합치기
48
- return [...initialFilesAsFiles, ...newFiles];
49
- }
50
- /**
51
- * 파일명에서 MIME 타입 추론
52
- */
53
- getMimeTypeFromFileName(fileName) {
54
- const extension = fileName.split('.').pop()?.toLowerCase();
55
- const mimeTypes = {
56
- jpg: 'image/jpeg',
57
- jpeg: 'image/jpeg',
58
- png: 'image/png',
59
- gif: 'image/gif',
60
- webp: 'image/webp',
61
- svg: 'image/svg+xml',
62
- bmp: 'image/bmp'
63
- };
64
- return mimeTypes[extension || ''] || 'application/octet-stream';
65
- }
66
- /**
67
- * 초기 업로드된 파일 목록 설정 (UploadedFile[] 타입만 허용)
68
- */
69
- setFiles(uploadedFiles) {
70
- this.initialFiles = [...uploadedFiles];
71
- }
72
- /**
73
- * 파일 추가
74
- */
75
- addFiles(files) {
76
- // maxFileCount가 1이면 기존 파일 교체
77
- if (this.options.maxFileCount === 1) {
78
- // 기존 초기 파일들을 삭제 표시
79
- this.initialFiles.forEach(uploadedFile => {
80
- this.deletedInitialFiles.add(uploadedFile.fileName);
81
- });
82
- // 새로 추가된 파일로 표시
83
- files.forEach(file => this.newlyAddedFiles.add(file));
84
- const isControlled = this.options.value !== undefined;
85
- if (isControlled) {
86
- this.options.value = files;
87
- } else {
88
- this.internalFiles = files;
89
- }
90
- return;
91
- }
92
- // getFiles()를 사용하지 않고 새로 추가된 파일만 관리
93
- const currentNewFiles = this.options.value !== undefined ? this.options.value : this.internalFiles;
94
- const newFiles = [...currentNewFiles, ...files];
95
- // 새로 추가된 파일로 표시
96
- files.forEach(file => this.newlyAddedFiles.add(file));
97
- const isControlled = this.options.value !== undefined;
98
- if (isControlled) {
99
- this.options.value = newFiles;
100
- } else {
101
- this.internalFiles = newFiles;
102
- }
103
- }
104
- /**
105
- * 특정 인덱스의 파일 제거
106
- */
107
- removeFile(index) {
108
- const visibleFiles = this.getFiles(); // 현재 보이는 파일들
109
- const fileToRemove = visibleFiles[index];
110
- if (!fileToRemove) return;
111
- // 초기 파일인지 확인
112
- const isInitialFile = this.isInitialFile(fileToRemove);
113
- if (isInitialFile) {
114
- // 초기 파일: 삭제 표시만 함 (실제 제거하지 않음)
115
- this.deletedInitialFiles.add(fileToRemove.name);
116
- } else {
117
- // 새로 추가된 파일: 실제 제거
118
- const currentFiles = this.options.value !== undefined ? this.options.value : this.internalFiles;
119
- const newFiles = currentFiles.filter(file => file !== fileToRemove);
120
- // newlyAddedFiles Set에서도 제거
121
- this.newlyAddedFiles.delete(fileToRemove);
122
- const isControlled = this.options.value !== undefined;
123
- if (isControlled) {
124
- this.options.value = newFiles;
125
- } else {
126
- this.internalFiles = newFiles;
127
- }
128
- }
129
- }
130
- /**
131
- * 모든 파일 제거
132
- */
133
- clearFiles() {
134
- // 초기 파일들은 모두 삭제 표시
135
- this.initialFiles.forEach(uploadedFile => {
136
- this.deletedInitialFiles.add(uploadedFile.fileName);
137
- });
138
- this.newlyAddedFiles.clear();
139
- const isControlled = this.options.value !== undefined;
140
- if (isControlled) {
141
- this.options.value = [];
142
- } else {
143
- this.internalFiles = [];
144
- }
145
- }
146
- /**
147
- * 파일 유효성 검사
148
- */
149
- validateFiles(fileList) {
150
- const validFiles = [];
151
- const invalidFiles = [];
152
- const currentFiles = this.getFiles();
153
- for (const file of fileList) {
154
- // 파일 크기 체크
155
- if (this.options.maxFileSize && file.size > this.options.maxFileSize) {
156
- invalidFiles.push({
157
- ...file,
158
- errorType: _types.ImageFileInputErrorType.EXCEED_MAX_FILE_SIZE
159
- });
160
- continue;
161
- }
162
- // 파일 개수 체크 (maxFileCount가 1이면 교체 가능하므로 체크하지 않음)
163
- if (this.options.maxFileCount && this.options.maxFileCount !== 1 && currentFiles.length + validFiles.length >= this.options.maxFileCount) {
164
- invalidFiles.push({
165
- ...file,
166
- errorType: _types.ImageFileInputErrorType.EXCEED_MAX_FILE_COUNT
167
- });
168
- continue;
169
- }
170
- validFiles.push(file);
171
- }
172
- return {
173
- validFiles,
174
- invalidFiles
175
- };
176
- }
177
- /**
178
- * disabled 상태 설정
179
- */
180
- setDisabled(disabled) {
181
- this.options.disabled = disabled;
182
- }
183
- /**
184
- * disabled 상태 반환
185
- */
186
- isDisabled() {
187
- return this.options.disabled;
188
- }
189
- /**
190
- * Controlled mode 여부 확인
191
- * onChange가 있으면 Controlled mode로 판단
192
- */
193
- isControlled() {
194
- return this.options.onChange !== undefined;
195
- }
196
- /**
197
- * 파일이 초기 파일인지 확인 (UploadedFile로 설정된 기존 파일)
198
- */
199
- isInitialFile(file) {
200
- return this.initialFiles.some(uploadedFile => uploadedFile.fileName === file.name);
201
- }
202
- /**
203
- * 파일이 새로 추가된 파일인지 확인
204
- */
205
- isNewlyAddedFile(file) {
206
- return this.newlyAddedFiles.has(file);
207
- }
208
- /**
209
- * 파일이 삭제 표시된 초기 파일인지 확인
210
- */
211
- isDeletedInitialFile(file) {
212
- return this.deletedInitialFiles.has(file.name);
213
- }
214
- /**
215
- * 초기 파일의 이미지 URL 반환
216
- */
217
- getInitialFileImageUrl(file) {
218
- const uploadedFile = this.initialFiles.find(f => f.fileName === file.name);
219
- return uploadedFile?.fileImageUrl;
220
- }
221
- }
222
- exports.ImageFileInputModel = ImageFileInputModel;
@@ -1,356 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ImageFileInputView = void 0;
7
- var _classNames = require("./const/classNames");
8
- class ImageFileInputView {
9
- constructor(options, model) {
10
- this.renderedFiles = []; // 이미 렌더링된 파일들 추적
11
- this.previewUrls = new Map(); // 파일 URL 추적
12
- this.options = options;
13
- this.model = model;
14
- this.element = this.createElement();
15
- this.previewsContainer = this.element.querySelector(`.${_classNames.IMAGE_FILE_INPUT_CLASS_NAMES.previews}`);
16
- this.fileInputElement = this.element.querySelector('input[type="file"]');
17
- this.buttonElement = this.element.querySelector('button.ncua-btn');
18
- }
19
- /**
20
- * 메인 DOM 요소 생성
21
- */
22
- createElement() {
23
- const mainContainer = document.createElement('div');
24
- const baseClasses = `${_classNames.IMAGE_FILE_INPUT_CLASS_NAMES.imageFileInput} ${(0, _classNames.getImageFileInputSizeClassName)(this.options.size)}`;
25
- const customClasses = this.options.className ? ` ${this.options.className}` : '';
26
- mainContainer.className = baseClasses + customClasses;
27
- // Image previews container
28
- const previewsContainer = document.createElement('div');
29
- previewsContainer.className = _classNames.IMAGE_FILE_INPUT_CLASS_NAMES.previews;
30
- mainContainer.appendChild(previewsContainer);
31
- // File input container
32
- const fileInputContainer = document.createElement('div');
33
- const fileInputClasses = `${_classNames.IMAGE_FILE_INPUT_CLASS_NAMES.fileInput} ${(0, _classNames.getFileInputSizeClassName)(this.options.size)}`;
34
- fileInputContainer.className = fileInputClasses;
35
- // Hidden file input 생성
36
- fileInputContainer.appendChild(this.createFileInput());
37
- // Input container
38
- fileInputContainer.appendChild(this.createInputContainer());
39
- // Hint list
40
- if (this.options.hintItems && this.options.hintItems.length > 0) {
41
- fileInputContainer.appendChild(this.createHintList());
42
- }
43
- mainContainer.appendChild(fileInputContainer);
44
- return mainContainer;
45
- }
46
- /**
47
- * Hidden file input 생성
48
- */
49
- createFileInput() {
50
- const input = document.createElement('input');
51
- input.type = 'file';
52
- input.hidden = true;
53
- input.tabIndex = -1;
54
- input.setAttribute('aria-hidden', 'true');
55
- input.classList.add('no-filestyle');
56
- if (this.options.accept) {
57
- input.accept = this.options.accept;
58
- }
59
- if (this.options.multiple) {
60
- input.multiple = true;
61
- }
62
- if (this.options.fileInputName) {
63
- input.name = this.options.fileInputName;
64
- }
65
- return input;
66
- }
67
- /**
68
- * Input container 생성
69
- */
70
- createInputContainer() {
71
- const container = document.createElement('div');
72
- container.className = _classNames.IMAGE_FILE_INPUT_CLASS_NAMES.inputContainer;
73
- // Label
74
- if (this.options.label) {
75
- container.appendChild(this.createLabelContainer());
76
- }
77
- // Button
78
- container.appendChild(this.createButton());
79
- // Hint text
80
- if (this.options.hintText) {
81
- container.appendChild(this.createHintText());
82
- }
83
- return container;
84
- }
85
- /**
86
- * Label container 생성
87
- */
88
- createLabelContainer() {
89
- const container = document.createElement('div');
90
- container.className = _classNames.IMAGE_FILE_INPUT_CLASS_NAMES.label;
91
- const label = document.createElement('label');
92
- label.className = (0, _classNames.getLabelClassName)(this.options.isRequired);
93
- label.textContent = this.options.label;
94
- container.appendChild(label);
95
- if (this.options.showHelpIcon) {
96
- container.appendChild(this.createHelpIcon());
97
- }
98
- return container;
99
- }
100
- /**
101
- * Help icon 생성
102
- */
103
- createHelpIcon() {
104
- const iconContainer = document.createElement('span');
105
- iconContainer.className = _classNames.IMAGE_FILE_INPUT_CLASS_NAMES.helpIcon;
106
- const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
107
- svg.setAttribute('width', '16');
108
- svg.setAttribute('height', '16');
109
- svg.setAttribute('viewBox', '0 0 24 24');
110
- svg.setAttribute('fill', 'none');
111
- svg.setAttribute('stroke', 'currentColor');
112
- const circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
113
- circle.setAttribute('cx', '12');
114
- circle.setAttribute('cy', '12');
115
- circle.setAttribute('r', '10');
116
- circle.setAttribute('stroke-width', '2');
117
- const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
118
- path.setAttribute('d', 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3');
119
- path.setAttribute('stroke-width', '2');
120
- path.setAttribute('stroke-linecap', 'round');
121
- path.setAttribute('stroke-linejoin', 'round');
122
- const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');
123
- line.setAttribute('x1', '12');
124
- line.setAttribute('y1', '17');
125
- line.setAttribute('x2', '12.01');
126
- line.setAttribute('y2', '17');
127
- line.setAttribute('stroke-width', '2');
128
- line.setAttribute('stroke-linecap', 'round');
129
- svg.appendChild(circle);
130
- svg.appendChild(path);
131
- svg.appendChild(line);
132
- iconContainer.appendChild(svg);
133
- return iconContainer;
134
- }
135
- /**
136
- * Button 생성 (파일 찾기)
137
- */
138
- createButton() {
139
- const button = document.createElement('button');
140
- button.type = 'button';
141
- button.className = `ncua-btn ncua-btn--xs ncua-btn--secondary-gray`;
142
- button.disabled = this.options.disabled;
143
- const iconSvg = this.createShareIcon();
144
- button.appendChild(iconSvg);
145
- const label = document.createElement('span');
146
- label.className = 'ncua-btn__label';
147
- label.textContent = this.options.buttonLabel;
148
- button.appendChild(label);
149
- return button;
150
- }
151
- /**
152
- * Share icon (업로드 아이콘) 생성
153
- */
154
- createShareIcon() {
155
- const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
156
- svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
157
- svg.setAttribute('width', '14');
158
- svg.setAttribute('height', '14');
159
- svg.setAttribute('viewBox', '0 0 24 24');
160
- svg.setAttribute('fill', 'none');
161
- svg.setAttribute('stroke', 'none');
162
- svg.classList.add('ncua-btn__icon');
163
- const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
164
- path.setAttribute('stroke', 'currentColor');
165
- path.setAttribute('stroke-linecap', 'round');
166
- path.setAttribute('stroke-linejoin', 'round');
167
- path.setAttribute('stroke-width', '2');
168
- path.setAttribute('d', 'M21 12v4.2c0 1.68 0 2.52-.327 3.162a3 3 0 0 1-1.311 1.311C18.72 21 17.88 21 16.2 21H7.8c-1.68 0-2.52 0-3.162-.327a3 3 0 0 1-1.311-1.311C3 18.72 3 17.88 3 16.2V12m13-5-4-4m0 0L8 7m4-4v12');
169
- svg.appendChild(path);
170
- return svg;
171
- }
172
- /**
173
- * Trash icon (삭제 아이콘) 생성
174
- */
175
- createTrashIcon() {
176
- const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
177
- svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
178
- svg.setAttribute('width', '20');
179
- svg.setAttribute('height', '20');
180
- svg.setAttribute('viewBox', '0 0 24 24');
181
- svg.setAttribute('fill', 'none');
182
- svg.setAttribute('stroke', 'currentColor');
183
- svg.classList.add('ncua-btn__icon');
184
- const path1 = document.createElementNS('http://www.w3.org/2000/svg', 'path');
185
- path1.setAttribute('stroke', 'currentColor');
186
- path1.setAttribute('stroke-linecap', 'round');
187
- path1.setAttribute('stroke-linejoin', 'round');
188
- path1.setAttribute('stroke-width', '2');
189
- path1.setAttribute('d', 'M16 6v-.8c0-1.12 0-1.68-.218-2.108a2 2 0 0 0-.874-.874C14.48 2 13.92 2 12.8 2h-1.6c-1.12 0-1.68 0-2.108.218a2 2 0 0 0-.874.874C8 3.52 8 4.08 8 5.2V6m2 5.5v5m4-5v5M3 6h18m-2 0v11.2c0 1.68 0 2.52-.327 3.162a3 3 0 0 1-1.311 1.311C16.72 22 15.88 22 14.2 22H9.8c-1.68 0-2.52 0-3.162-.327a3 3 0 0 1-1.311-1.311C5 19.72 5 18.88 5 17.2V6');
190
- svg.appendChild(path1);
191
- return svg;
192
- }
193
- /**
194
- * Hint text 생성
195
- */
196
- createHintText() {
197
- const hintText = document.createElement('div');
198
- hintText.className = (0, _classNames.getHintTextClassName)(this.options.destructive);
199
- hintText.textContent = this.options.hintText;
200
- return hintText;
201
- }
202
- /**
203
- * Hint list 생성
204
- * Note: 힌트 리스트는 컴포넌트 size와 관계없이 항상 xs 사이즈로 고정됨
205
- */
206
- createHintList() {
207
- const ul = document.createElement('ul');
208
- ul.className = _classNames.IMAGE_FILE_INPUT_CLASS_NAMES.hintList;
209
- this.options.hintItems?.forEach(hint => {
210
- const li = document.createElement('li');
211
- li.className = _classNames.IMAGE_FILE_INPUT_CLASS_NAMES.hintItem;
212
- li.textContent = hint;
213
- ul.appendChild(li);
214
- });
215
- return ul;
216
- }
217
- /**
218
- * 이미지 프리뷰 렌더링
219
- */
220
- renderImagePreviews(files, onRemove, onBrowseClick) {
221
- // 기존 프리뷰 정리
222
- this.cleanupPreviews();
223
- // 새로운 프리뷰 렌더링
224
- files.forEach((file, index) => {
225
- const previewContainer = this.createImagePreview(file, index, onRemove);
226
- this.previewsContainer.appendChild(previewContainer);
227
- this.renderedFiles.push(file);
228
- });
229
- // 빈 슬롯 표시 여부 확인
230
- const showEmptySlot = this.options.maxFileCount ? files.length < this.options.maxFileCount : files.length === 0;
231
- if (showEmptySlot) {
232
- const emptySlot = this.createEmptySlot(onBrowseClick);
233
- this.previewsContainer.appendChild(emptySlot);
234
- }
235
- }
236
- /**
237
- * 이미지 프리뷰 생성
238
- */
239
- createImagePreview(file, index, onRemove) {
240
- const container = document.createElement('div');
241
- container.className = _classNames.IMAGE_FILE_INPUT_CLASS_NAMES.previewContainer;
242
- // 이미지 요소 생성
243
- const img = document.createElement('img');
244
- img.className = _classNames.IMAGE_FILE_INPUT_CLASS_NAMES.previewImage;
245
- img.alt = file.name;
246
- // 이미지 URL 생성
247
- const isInitialFile = this.model.isInitialFile(file);
248
- if (isInitialFile) {
249
- // 초기 파일: fileImageUrl 사용
250
- const imageUrl = this.model.getInitialFileImageUrl(file);
251
- if (imageUrl) {
252
- img.src = imageUrl;
253
- }
254
- } else {
255
- // 새로 추가된 파일: createObjectURL 사용
256
- const url = URL.createObjectURL(file);
257
- img.src = url;
258
- this.previewUrls.set(file, url);
259
- }
260
- container.appendChild(img);
261
- // 삭제 버튼 생성
262
- const removeButton = document.createElement('button');
263
- removeButton.type = 'button';
264
- removeButton.className = `ncua-btn ncua-btn--sm ncua-btn--text ${_classNames.IMAGE_FILE_INPUT_CLASS_NAMES.previewRemoveButton}`;
265
- removeButton.setAttribute('aria-label', 'Remove image');
266
- const trashIcon = this.createTrashIcon();
267
- removeButton.appendChild(trashIcon);
268
- removeButton.addEventListener('click', () => onRemove(index));
269
- container.appendChild(removeButton);
270
- return container;
271
- }
272
- /**
273
- * 빈 슬롯 생성 (파일 찾기 버튼)
274
- */
275
- createEmptySlot(onBrowseClick) {
276
- const wrapper = document.createElement('div');
277
- wrapper.className = 'ncua-image-file-input__empty-slot-wrapper';
278
- const button = document.createElement('button');
279
- button.type = 'button';
280
- button.className = `ncua-btn ncua-btn--${this.options.size} ncua-btn--secondary-gray ${_classNames.IMAGE_FILE_INPUT_CLASS_NAMES.previewContainer}`;
281
- button.disabled = this.options.disabled;
282
- button.setAttribute('aria-label', this.options.imagePreviewTooltipLabel);
283
- button.addEventListener('click', onBrowseClick);
284
- wrapper.addEventListener('click', onBrowseClick);
285
- wrapper.appendChild(button);
286
- // Tooltip 생성 및 추가
287
- const tooltip = this.createTooltip();
288
- wrapper.appendChild(tooltip);
289
- // Hover 이벤트로 tooltip 표시/숨김
290
- wrapper.addEventListener('mouseenter', () => {
291
- if (!this.options.disabled) {
292
- tooltip.style.display = 'block';
293
- }
294
- });
295
- wrapper.addEventListener('mouseleave', () => {
296
- tooltip.style.display = 'none';
297
- });
298
- return wrapper;
299
- }
300
- /**
301
- * Tooltip 생성
302
- */
303
- createTooltip() {
304
- const iconSize = this.options.size === 'xs' ? '48' : '80';
305
- const tooltipHTML = `
306
- <svg width="${iconSize}" height="${iconSize}" viewBox="0 0 24 24" fill="none" stroke="currentColor" style="opacity: 0; cursor: pointer;">
307
- <circle cx="12" cy="12" r="10" stroke-width="2"></circle>
308
- </svg>
309
- <span class="ncua-tooltip__bg ncua-tooltip__bg--black ncua-tooltip__bg--bottom ncua-tooltip__bg--visible">
310
- <span class="ncua-tooltip__content">${this.options.imagePreviewTooltipLabel}</span>
311
- </span>
312
- `;
313
- const tooltip = document.createElement('span');
314
- tooltip.className = 'ncua-tooltip ncua-tooltip--sm ncua-tooltip--short';
315
- tooltip.style.display = 'none';
316
- tooltip.innerHTML = tooltipHTML;
317
- return tooltip;
318
- }
319
- /**
320
- * 기존 프리뷰 정리
321
- */
322
- cleanupPreviews() {
323
- // Blob URL 정리
324
- this.previewUrls.forEach(url => {
325
- URL.revokeObjectURL(url);
326
- });
327
- this.previewUrls.clear();
328
- // DOM 정리
329
- this.previewsContainer.innerHTML = '';
330
- this.renderedFiles = [];
331
- }
332
- setButtonDisabled(disabled) {
333
- this.buttonElement.disabled = disabled;
334
- // 빈 슬롯 wrapper 내부의 버튼도 disabled 설정
335
- const emptySlotWrapper = this.previewsContainer.querySelector('.ncua-image-file-input__empty-slot-wrapper');
336
- if (emptySlotWrapper) {
337
- const emptySlotButton = emptySlotWrapper.querySelector(`.${_classNames.IMAGE_FILE_INPUT_CLASS_NAMES.previewContainer}.ncua-btn`);
338
- if (emptySlotButton) {
339
- emptySlotButton.disabled = disabled;
340
- }
341
- }
342
- }
343
- getElement() {
344
- return this.element;
345
- }
346
- getFileInputElement() {
347
- return this.fileInputElement;
348
- }
349
- getButtonElement() {
350
- return this.buttonElement;
351
- }
352
- destroy() {
353
- this.cleanupPreviews();
354
- }
355
- }
356
- exports.ImageFileInputView = ImageFileInputView;
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getLabelClassName = exports.getImageFileInputSizeClassName = exports.getHintTextClassName = exports.getFileInputSizeClassName = exports.getButtonSizeClassName = exports.IMAGE_FILE_INPUT_CLASS_NAMES = void 0;
7
- // ImageFileInput 관련 CSS 클래스명 상수
8
- const IMAGE_FILE_INPUT_CLASS_NAMES = exports.IMAGE_FILE_INPUT_CLASS_NAMES = {
9
- imageFileInput: 'ncua-image-file-input',
10
- previews: 'ncua-image-file-input__previews',
11
- previewContainer: 'ncua-image-file-input__preview-container',
12
- previewImage: 'ncua-image-file-input__preview-image',
13
- previewRemoveButton: 'ncua-image-file-input__preview-remove-button',
14
- fileInput: 'ncua-file-input',
15
- inputContainer: 'ncua-file-input__input-container',
16
- label: 'ncua-file-input__label',
17
- helpIcon: 'ncua-input__help-icon',
18
- hintText: 'ncua-input__hint-text',
19
- hintList: 'ncua-file-input__hint-list',
20
- hintItem: 'ncua-file-input__hint-item'
21
- };
22
- const getImageFileInputSizeClassName = size => `ncua-image-file-input--${size}`;
23
- exports.getImageFileInputSizeClassName = getImageFileInputSizeClassName;
24
- const getFileInputSizeClassName = size => `ncua-file-input--${size}`;
25
- exports.getFileInputSizeClassName = getFileInputSizeClassName;
26
- const getButtonSizeClassName = size => `ncua-button--${size}`;
27
- exports.getButtonSizeClassName = getButtonSizeClassName;
28
- const getLabelClassName = isRequired => isRequired ? 'ncua-label ncua-label--required' : 'ncua-label';
29
- exports.getLabelClassName = getLabelClassName;
30
- const getHintTextClassName = destructive => destructive ? 'ncua-input__hint-text ncua-input__hint-text--destructive' : 'ncua-input__hint-text';
31
- exports.getHintTextClassName = getHintTextClassName;
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _classNames = require("./classNames");
7
- Object.keys(_classNames).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _classNames[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _classNames[key];
14
- }
15
- });
16
- });
17
- var _types = require("./types");
18
- Object.keys(_types).forEach(function (key) {
19
- if (key === "default" || key === "__esModule") return;
20
- if (key in exports && exports[key] === _types[key]) return;
21
- Object.defineProperty(exports, key, {
22
- enumerable: true,
23
- get: function () {
24
- return _types[key];
25
- }
26
- });
27
- });
@@ -1,13 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ImageFileInputErrorType = void 0;
7
- // ImageFileInput 관련 타입 정의 (React ImageFileInput.tsx와 동일)
8
- var ImageFileInputErrorType;
9
- (function (ImageFileInputErrorType) {
10
- ImageFileInputErrorType["ALREADY_UPLOADED"] = "ALREADY_UPLOADED";
11
- ImageFileInputErrorType["EXCEED_MAX_FILE_SIZE"] = "EXCEED_MAX_FILE_SIZE";
12
- ImageFileInputErrorType["EXCEED_MAX_FILE_COUNT"] = "EXCEED_MAX_FILE_COUNT";
13
- })(ImageFileInputErrorType || (exports.ImageFileInputErrorType = ImageFileInputErrorType = {}));