@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,699 +0,0 @@
1
- import { formatDateInput, formatHourInput, formatMinuteInput } from '../../src/utils/date-picker';
2
- import flatpickr from 'flatpickr';
3
- import { Korean } from 'flatpickr/dist/l10n/ko';
4
- import moment from 'moment';
5
- // Constants
6
- const CONSTANTS = {
7
- ICON_SIZES: {
8
- xs: '14',
9
- sm: '16',
10
- },
11
- CLASS_NAMES: {
12
- RANGE_WRAPPER: 'ncua-range-date-picker',
13
- RANGE_WITH_BUTTONS: 'ncua-range-date-picker-with-buttons',
14
- DATE_PICKER: 'ncua-date-picker',
15
- DATE_PICKER_INPUT: 'ncua-date-picker__input',
16
- DATE_PICKER_ICO: 'ncua-date-picker__ico',
17
- BUTTON_GROUP: 'ncua-button-group',
18
- BUTTON_GROUP_HAS_BORDER: 'has-border',
19
- BUTTON: 'ncua-button-group__item',
20
- HAS_TIME: 'ncua-date-picker--has-time',
21
- },
22
- FORMATS: {
23
- DATE: 'YYYY-MM-DD',
24
- DATE_TIME: 'YYYY-MM-DD HH:mm',
25
- },
26
- ERROR_MESSAGES: {
27
- FLATPICKR_NOT_LOADED: 'flatpickr 라이브러리가 로드되지 않았습니다.',
28
- MOMENT_NOT_LOADED: 'moment 라이브러리가 로드되지 않았습니다.',
29
- },
30
- };
31
- class DatePicker {
32
- constructor(wrapper, options) {
33
- this.flatpickrInstances = [];
34
- this.currentButton = null;
35
- const { buttons = [], size, autoComplete = 'off', datePickerOptions, onValidationError } = options;
36
- this.validateWrapper(wrapper);
37
- this.validationDependencies(buttons?.length > 0);
38
- this.instanceId = DatePicker.instanceCounter++;
39
- this.contentWrapper = wrapper;
40
- this.datePickerOptions = datePickerOptions;
41
- this.buttons = buttons;
42
- this.size = size;
43
- this.separator = '~';
44
- this.autoComplete = autoComplete;
45
- this.dateFormat = datePickerOptions[0].options.enableTime ? CONSTANTS.FORMATS.DATE_TIME : CONSTANTS.FORMATS.DATE;
46
- this.onValidationError = onValidationError;
47
- this.init();
48
- }
49
- validateWrapper(wrapper) {
50
- if (DatePicker.usedWrappers.has(wrapper)) {
51
- throw new Error(`이미 사용 중인 DOM 요소입니다. ` +
52
- `같은 DOM 요소에는 하나의 DatePicker 인스턴스만 생성할 수 있습니다. ` +
53
- `다른 DOM 요소를 사용하거나 기존 인스턴스를 먼저 제거해주세요.`);
54
- }
55
- DatePicker.usedWrappers.add(wrapper);
56
- }
57
- init() {
58
- this.contentWrapper.innerHTML = '';
59
- this.initializeWrapper();
60
- this.initButtonGroup();
61
- this.initDatePicker();
62
- }
63
- validationDependencies(hasButtons) {
64
- if (typeof flatpickr === 'undefined') {
65
- throw new Error(CONSTANTS.ERROR_MESSAGES.FLATPICKR_NOT_LOADED);
66
- }
67
- if (hasButtons && typeof moment === 'undefined') {
68
- throw new Error(CONSTANTS.ERROR_MESSAGES.MOMENT_NOT_LOADED);
69
- }
70
- }
71
- initializeWrapper() {
72
- if (this.datePickerOptions.length < 2)
73
- return;
74
- this.contentWrapper.classList.add(CONSTANTS.CLASS_NAMES.RANGE_WRAPPER);
75
- }
76
- initButtonGroup() {
77
- if (this.buttons.length === 0)
78
- return;
79
- if (this.contentWrapper.classList.contains(CONSTANTS.CLASS_NAMES.RANGE_WRAPPER)) {
80
- this.contentWrapper.classList.replace(CONSTANTS.CLASS_NAMES.RANGE_WRAPPER, CONSTANTS.CLASS_NAMES.RANGE_WITH_BUTTONS);
81
- }
82
- this.contentWrapper.classList.add(CONSTANTS.CLASS_NAMES.RANGE_WITH_BUTTONS);
83
- const createButtonWrapperElement = () => {
84
- const wrapper = document.createElement('div');
85
- wrapper.className = `${CONSTANTS.CLASS_NAMES.BUTTON_GROUP} ${CONSTANTS.CLASS_NAMES.BUTTON_GROUP_HAS_BORDER} ${CONSTANTS.CLASS_NAMES.BUTTON_GROUP}--${this.size}`;
86
- return wrapper;
87
- };
88
- const appendButtons = (wrapper) => {
89
- this.buttons.forEach((button) => {
90
- const buttonElement = this.createButtonElement(button);
91
- wrapper.appendChild(buttonElement);
92
- });
93
- };
94
- const wrapper = createButtonWrapperElement();
95
- appendButtons(wrapper);
96
- wrapper.addEventListener('click', this.updateDateWithButton.bind(this));
97
- this.contentWrapper.appendChild(wrapper);
98
- }
99
- createButtonElement(button) {
100
- if (button.isCurrent) {
101
- this.currentButton = button;
102
- }
103
- const buttonElement = document.createElement('button');
104
- buttonElement.className = `${CONSTANTS.CLASS_NAMES.BUTTON} ${button.isCurrent ? 'is-current' : ''}`;
105
- buttonElement.textContent = button.text;
106
- buttonElement.type = 'button';
107
- return buttonElement;
108
- }
109
- reRenderButtonGroup(buttons) {
110
- const buttonGroup = this.contentWrapper.querySelector(`.${CONSTANTS.CLASS_NAMES.BUTTON_GROUP}`);
111
- if (!buttonGroup)
112
- return;
113
- buttonGroup.innerHTML = '';
114
- buttons.forEach((button) => {
115
- if (button.isCurrent) {
116
- this.currentButton = button;
117
- }
118
- buttonGroup.appendChild(this.createButtonElement(button));
119
- });
120
- this.buttons = buttons;
121
- }
122
- initDatePicker() {
123
- const datePickerOptions = this.datePickerOptions;
124
- const createInputWrapperElement = (size) => {
125
- const wrapper = document.createElement('div');
126
- wrapper.className = `${CONSTANTS.CLASS_NAMES.DATE_PICKER} ${CONSTANTS.CLASS_NAMES.DATE_PICKER}--${size} ${this.datePickerOptions.some((option) => option.options.enableTime) ? CONSTANTS.CLASS_NAMES.HAS_TIME : ''}`;
127
- return wrapper;
128
- };
129
- const createInput = (datePickerOption, index) => {
130
- const defaultPlaceHolder = datePickerOption.options.enableTime
131
- ? CONSTANTS.FORMATS.DATE_TIME
132
- : CONSTANTS.FORMATS.DATE;
133
- const input = document.createElement('input');
134
- input.type = 'text';
135
- input.placeholder = datePickerOption.placeholder ?? defaultPlaceHolder;
136
- input.name = datePickerOption.attrName ?? '';
137
- input.id = `datepicker-${this.instanceId}-${datePickerOption.element}-${index}`;
138
- input.className = CONSTANTS.CLASS_NAMES.DATE_PICKER_INPUT;
139
- input.autocomplete = this.autoComplete;
140
- return input;
141
- };
142
- const createIcon = (size, elementId, index) => {
143
- const getCalendarIconSvg = (size) => {
144
- return `
145
- <svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 16 16" fill="none">
146
- <path
147
- d="M14 6.66671H2M10.6667 1.33337V4.00004M5.33333 1.33337V4.00004M5.2 14.6667H10.8C11.9201 14.6667 12.4802 14.6667 12.908 14.4487C13.2843 14.257 13.5903 13.951 13.782 13.5747C14 13.1469 14 12.5868 14 11.4667V5.86671C14 4.7466 14 4.18655 13.782 3.75873C13.5903 3.3824 13.2843 3.07644 12.908 2.88469C12.4802 2.66671 11.9201 2.66671 10.8 2.66671H5.2C4.0799 2.66671 3.51984 2.66671 3.09202 2.88469C2.71569 3.07644 2.40973 3.3824 2.21799 3.75873C2 4.18655 2 4.7466 2 5.86671V11.4667C2 12.5868 2 13.1469 2.21799 13.5747C2.40973 13.951 2.71569 14.257 3.09202 14.4487C3.51984 14.6667 4.0799 14.6667 5.2 14.6667Z"
148
- stroke="black"
149
- stroke-width="1.33333"
150
- stroke-linecap="round"
151
- stroke-linejoin="round"
152
- ></path>
153
- </svg>`;
154
- };
155
- const ico = document.createElement('label');
156
- ico.htmlFor = `datepicker-${this.instanceId}-${elementId}-${index}`;
157
- ico.className = CONSTANTS.CLASS_NAMES.DATE_PICKER_ICO;
158
- ico.innerHTML = getCalendarIconSvg(CONSTANTS.ICON_SIZES[size]);
159
- return ico;
160
- };
161
- const insertSeparator = () => {
162
- const span = document.createElement('span');
163
- span.textContent = this.separator;
164
- this.contentWrapper.insertBefore(span, this.contentWrapper.querySelectorAll(`.${CONSTANTS.CLASS_NAMES.DATE_PICKER}`)[1]);
165
- };
166
- const createDatePickerElement = (datePickerOption, index) => {
167
- const inputWrapper = createInputWrapperElement(this.size);
168
- const input = createInput(datePickerOption, index);
169
- inputWrapper.appendChild(input);
170
- inputWrapper.appendChild(createIcon(this.size, datePickerOption.element, index));
171
- inputWrapper.addEventListener('click', () => {
172
- // biome-ignore lint/suspicious/noAssignInExpressions: <explanation>
173
- // biome-ignore lint/suspicious/useIterableCallbackReturn: <explanation>
174
- this.buttons.forEach((button) => (button.isCurrent = false));
175
- this.currentButton = null;
176
- this.reRenderButtonGroup(this.buttons);
177
- });
178
- this.contentWrapper.appendChild(inputWrapper);
179
- if (index > 0) {
180
- insertSeparator();
181
- }
182
- return this.initializeFlatpickr(input, datePickerOption.options, inputWrapper);
183
- };
184
- const createFlatpickrInstances = (datePickerOptions) => {
185
- return datePickerOptions.map((datePickerOption, index) => createDatePickerElement(datePickerOption, index));
186
- };
187
- const calcInitDates = (datePickerOptions) => {
188
- if (this.buttons.length > 0) {
189
- const currentButton = this.buttons.find((button) => button.isCurrent);
190
- if (!currentButton) {
191
- return datePickerOptions.map(() => '');
192
- }
193
- return this.calculateDatesFromButton(currentButton);
194
- }
195
- return datePickerOptions.map((datePickerOption) => {
196
- if (datePickerOption.options?.defaultDate) {
197
- return moment(datePickerOption.options.defaultDate.toString()).format(this.dateFormat);
198
- }
199
- return '';
200
- });
201
- };
202
- this.flatpickrInstances = createFlatpickrInstances(this.datePickerOptions);
203
- const dates = calcInitDates(datePickerOptions);
204
- this.setMultipleDates(dates);
205
- }
206
- initializeFlatpickr(input, options, wrapper) {
207
- // flatpickr locale 설정 확인
208
- const locale = typeof options.locale === 'string' ? options.locale : 'ko';
209
- this.setupFlatpickrLocale(locale, options);
210
- const onInputHandler = this.createInputHandler();
211
- const onHourInputHandler = this.createHourInputHandler();
212
- const onMinuteInputHandler = this.createMinuteInputHandler();
213
- const onMouseDown = this.createMouseDownHandler(wrapper);
214
- // onBlur 핸들러 추가하여 입력 전 날짜 저장
215
- const onBlurHandler = this.createBlurHandler();
216
- document.addEventListener('mousedown', onMouseDown, true);
217
- return flatpickr(input, {
218
- ...options,
219
- allowInput: options.allowInput ?? true,
220
- appendTo: wrapper,
221
- time_24hr: true,
222
- defaultHour: options.defaultHour || 0,
223
- defaultMinute: options.defaultMinute || 0,
224
- locale,
225
- formatDate: (date, format, locale) => {
226
- try {
227
- // 유효한 날짜인지 확인
228
- if (!date || !(date instanceof Date) || isNaN(date.getTime())) {
229
- return '';
230
- }
231
- // moment로 포맷팅
232
- const momentDate = moment(date);
233
- if (!momentDate.isValid()) {
234
- return '';
235
- }
236
- // format을 moment 형식으로 변환
237
- const momentFormat = this.convertFlatpickrFormatToMoment(format);
238
- return momentDate.format(momentFormat);
239
- }
240
- catch (error) {
241
- // 오류 발생 시 빈 문자열 반환 (232-23 같은 잘못된 날짜 처리)
242
- return '';
243
- }
244
- },
245
- onChange: this.createOnChangeHandler(options),
246
- onReady: this.createOnReadyHandler(onInputHandler, onHourInputHandler, onMinuteInputHandler, onBlurHandler),
247
- onDestroy: this.createOnDestroyHandler(onInputHandler, onHourInputHandler, onMinuteInputHandler, onMouseDown, onBlurHandler),
248
- });
249
- }
250
- createBlurHandler() {
251
- return (e) => {
252
- const target = e.target;
253
- const inputIndex = this.findFlatpickrInstanceIndexByInput(target);
254
- if (inputIndex < 0)
255
- return;
256
- // blur 시점에 현재 selectedDates를 저장 (입력 전 상태)
257
- const instance = this.flatpickrInstances[inputIndex];
258
- if (instance && instance.selectedDates.length > 0) {
259
- // 이전 날짜를 별도로 저장 (onChange에서 사용)
260
- instance._previousDateBeforeInput = instance.selectedDates[0];
261
- }
262
- };
263
- }
264
- setupFlatpickrLocale(locale, options) {
265
- if (flatpickr?.l10ns?.[locale]) {
266
- return;
267
- }
268
- console.warn(`flatpickr locale '${locale}' is not loaded. Available locales:`, Object.keys(flatpickr?.l10ns || {}));
269
- if (locale === 'ko') {
270
- flatpickr.l10ns.ko = Korean;
271
- }
272
- else {
273
- options.locale = undefined;
274
- }
275
- }
276
- createInputHandler() {
277
- return (e) => {
278
- const target = e.target;
279
- const input = target.value;
280
- const instance = this.findFlatpickrInstanceByInput(target);
281
- if (!instance)
282
- return;
283
- // 빈 입력 처리
284
- if (!input || input.trim() === '') {
285
- this.clearInputValue(target, instance);
286
- return;
287
- }
288
- // 숫자나 하이픈이 없는 경우 처리
289
- if (!/[0-9]/.test(input)) {
290
- this.restorePreviousDate(target, instance);
291
- return;
292
- }
293
- const formattedInput = formatDateInput(input);
294
- // 포맷팅만 수행
295
- if (formattedInput !== input) {
296
- target.value = formattedInput;
297
- return;
298
- }
299
- // 완전한 날짜 형식이지만 유효하지 않은 경우 처리
300
- if (formattedInput && formattedInput.length >= 10) {
301
- const parsedDate = moment(formattedInput);
302
- if (!parsedDate.isValid()) {
303
- this.restorePreviousDate(target, instance);
304
- }
305
- }
306
- };
307
- }
308
- findFlatpickrInstanceByInput(input) {
309
- const index = this.findFlatpickrInstanceIndexByInput(input);
310
- return index >= 0 ? this.flatpickrInstances[index] : null;
311
- }
312
- clearInputValue(target, instance) {
313
- target.value = '';
314
- instance.setDate('', false);
315
- }
316
- restorePreviousDate(target, instance) {
317
- const hasPreviousDate = instance.selectedDates.length > 0;
318
- if (!hasPreviousDate) {
319
- this.clearInputValue(target, instance);
320
- return;
321
- }
322
- const previousDate = instance.selectedDates[0];
323
- const isValidDate = previousDate instanceof Date && !isNaN(previousDate.getTime());
324
- if (isValidDate) {
325
- target.value = moment(previousDate).format(this.dateFormat);
326
- instance.setDate(previousDate, false);
327
- }
328
- else {
329
- this.clearInputValue(target, instance);
330
- }
331
- }
332
- createHourInputHandler() {
333
- return (e) => {
334
- const target = e.target;
335
- const input = target.value;
336
- const formattedInput = formatHourInput(input);
337
- if (formattedInput === input)
338
- return;
339
- target.value = formattedInput;
340
- };
341
- }
342
- createMinuteInputHandler() {
343
- return (e) => {
344
- const target = e.target;
345
- const input = target.value;
346
- const formattedInput = formatMinuteInput(input);
347
- if (formattedInput === input)
348
- return;
349
- target.value = formattedInput;
350
- };
351
- }
352
- createMouseDownHandler(wrapper) {
353
- return (e) => {
354
- const flatpickrCalendar = wrapper.querySelector('.flatpickr-calendar.open');
355
- if (!flatpickrCalendar)
356
- return;
357
- if (flatpickrCalendar.contains(e.target))
358
- return;
359
- const timeInputs = flatpickrCalendar.querySelectorAll('.flatpickr-time input');
360
- timeInputs.forEach((input) => {
361
- if (document.activeElement === input) {
362
- input.blur();
363
- }
364
- });
365
- };
366
- }
367
- createOnChangeHandler(options) {
368
- return (selectedDates, dateStr, instance) => {
369
- try {
370
- const inputIndex = this.findFlatpickrInstanceIndexByInput(instance.input);
371
- if (inputIndex < 0)
372
- return;
373
- // blur 시 저장한 이전 날짜 사용
374
- const previousDate = instance._previousDateBeforeInput;
375
- // selectedDates가 비어있거나 첫 번째 날짜가 유효하지 않은 경우 처리
376
- if (!selectedDates ||
377
- selectedDates.length === 0 ||
378
- !selectedDates[0] ||
379
- !(selectedDates[0] instanceof Date) ||
380
- !this.isValidDate(selectedDates[0])) {
381
- // 유효하지 않은 날짜는 이전 값으로 복원하거나 빈 값으로 처리
382
- if (previousDate && this.isValidDate(previousDate)) {
383
- // 이전 값이 있으면 이전 값으로 복원
384
- instance.selectedDates = [previousDate];
385
- instance.setDate(previousDate, false);
386
- }
387
- else {
388
- // 이전 값이 없으면 빈 값으로 처리
389
- instance.selectedDates = [];
390
- instance.setDate('', false);
391
- }
392
- // 원본 onChange는 호출하지 않음
393
- return;
394
- }
395
- // 유효한 날짜인 경우에만 원본 onChange 호출
396
- this.invokeOriginalOnChange(options.onChange, selectedDates, dateStr, instance);
397
- const selectedDate = selectedDates[0];
398
- // minDate/maxDate 검증
399
- this.validateAndRestoreIfNeeded(selectedDate, instance, inputIndex, previousDate);
400
- // 검증 후 현재 날짜를 이전 날짜로 업데이트
401
- if (this.isValidDate(selectedDate)) {
402
- instance._previousDateBeforeInput = selectedDate;
403
- this.flatpickrInstances[inputIndex].selectedDates = [selectedDate];
404
- }
405
- }
406
- catch (error) {
407
- // 오류 발생 시 이전 값으로 복원
408
- const previousDate = instance._previousDateBeforeInput;
409
- if (previousDate && this.isValidDate(previousDate)) {
410
- instance.selectedDates = [previousDate];
411
- }
412
- else {
413
- instance.selectedDates = [];
414
- }
415
- this.restoreDateToInstance(instance, previousDate);
416
- }
417
- };
418
- }
419
- invokeOriginalOnChange(onChange, selectedDates, dateStr, instance) {
420
- if (!onChange)
421
- return;
422
- if (Array.isArray(onChange)) {
423
- onChange.forEach((hook) => {
424
- void hook(selectedDates, dateStr, instance);
425
- });
426
- }
427
- else {
428
- onChange(selectedDates, dateStr, instance);
429
- }
430
- }
431
- isValidDate(date) {
432
- return date instanceof Date && !isNaN(date.getTime());
433
- }
434
- validateAndRestoreIfNeeded(selectedDate, instance, inputIndex, previousDate) {
435
- try {
436
- const isValid = this.validateDate(selectedDate, inputIndex, previousDate);
437
- if (!isValid) {
438
- this.restoreDateToInstance(instance, previousDate);
439
- }
440
- else {
441
- // 유효한 경우에만 업데이트
442
- instance._previousDateBeforeInput = selectedDate;
443
- this.flatpickrInstances[inputIndex].selectedDates = [selectedDate];
444
- }
445
- }
446
- catch (error) {
447
- // 오류 발생 시 이전 값으로 복원
448
- this.restoreDateToInstance(instance, previousDate);
449
- }
450
- }
451
- findFlatpickrInstanceIndexByInput(input) {
452
- return this.flatpickrInstances.findIndex((inst) => inst.input === input);
453
- }
454
- restoreDateToInstance(instance, previousDate) {
455
- try {
456
- // setDate 호출 전에 날짜 유효성 확인
457
- if (previousDate && this.isValidDate(previousDate)) {
458
- // selectedDates 배열을 정리하여 formatting.js에서 오류가 발생하지 않도록 함
459
- instance.selectedDates = [previousDate];
460
- instance.setDate(previousDate, false);
461
- }
462
- else {
463
- // 빈 값으로 설정할 때도 selectedDates를 정리
464
- instance.selectedDates = [];
465
- instance.setDate('', false);
466
- }
467
- }
468
- catch (error) {
469
- // setDate에서 오류 발생 시 selectedDates를 빈 배열로 설정
470
- try {
471
- instance.selectedDates = [];
472
- instance.setDate('', false);
473
- }
474
- catch {
475
- // 최종 실패 시 무시
476
- }
477
- }
478
- }
479
- createOnReadyHandler(onInputHandler, onHourInputHandler, onMinuteInputHandler, onBlurHandler) {
480
- return (selectedDates, dateStr, instance) => {
481
- const input = instance.input;
482
- if (!input)
483
- return;
484
- input.addEventListener('input', onInputHandler);
485
- input.addEventListener('blur', onBlurHandler);
486
- const timeInputWrapper = input.parentElement?.querySelector('.flatpickr-time');
487
- if (!timeInputWrapper)
488
- return;
489
- const hourInput = timeInputWrapper.querySelector('.flatpickr-hour');
490
- const minuteInput = timeInputWrapper.querySelector('.flatpickr-minute');
491
- if (!hourInput || !minuteInput)
492
- return;
493
- hourInput.addEventListener('input', onHourInputHandler);
494
- minuteInput.addEventListener('input', onMinuteInputHandler);
495
- };
496
- }
497
- createOnDestroyHandler(onInputHandler, onHourInputHandler, onMinuteInputHandler, onMouseDown, onBlurHandler) {
498
- return (selectedDates, dateStr, instance) => {
499
- const input = instance.input;
500
- if (!input)
501
- return;
502
- input.removeEventListener('input', onInputHandler);
503
- input.removeEventListener('blur', onBlurHandler);
504
- // hourInput과 minuteInput에서 이벤트 리스너 제거 (input이 아님)
505
- const timeInputWrapper = input.parentElement?.querySelector('.flatpickr-time');
506
- if (timeInputWrapper) {
507
- const hourInput = timeInputWrapper.querySelector('.flatpickr-hour');
508
- const minuteInput = timeInputWrapper.querySelector('.flatpickr-minute');
509
- if (hourInput) {
510
- hourInput.removeEventListener('input', onHourInputHandler);
511
- }
512
- if (minuteInput) {
513
- minuteInput.removeEventListener('input', onMinuteInputHandler);
514
- }
515
- }
516
- document.removeEventListener('mousedown', onMouseDown, true);
517
- };
518
- }
519
- convertDateOption(dateOption) {
520
- if (!dateOption)
521
- return undefined;
522
- if (typeof dateOption === 'string' || dateOption instanceof Date) {
523
- return dateOption;
524
- }
525
- if (typeof dateOption === 'number') {
526
- return new Date(dateOption);
527
- }
528
- if (Array.isArray(dateOption) && dateOption.length > 0) {
529
- return dateOption[0] instanceof Date ? dateOption[0] : new Date(dateOption[0]);
530
- }
531
- return undefined;
532
- }
533
- validateDate(date, index, previousDate) {
534
- const option = this.datePickerOptions[index];
535
- if (!option)
536
- return true;
537
- const { minDate, maxDate } = option.options;
538
- if (!minDate && !maxDate)
539
- return true;
540
- const inputDate = moment(date);
541
- if (!inputDate.isValid())
542
- return true;
543
- const violations = this.checkDateViolations(inputDate, minDate, maxDate);
544
- if (violations.length === 0)
545
- return true;
546
- if (this.onValidationError) {
547
- const error = {
548
- index,
549
- date,
550
- minDate: this.convertDateOption(minDate),
551
- maxDate: this.convertDateOption(maxDate),
552
- violations,
553
- previousDate,
554
- };
555
- this.onValidationError(error);
556
- }
557
- return false;
558
- }
559
- checkDateViolations(inputDate, minDate, maxDate) {
560
- const violations = [];
561
- if (minDate) {
562
- const min = moment(minDate);
563
- if (min.isValid() && inputDate.isBefore(min, 'day')) {
564
- violations.push('minDate');
565
- }
566
- }
567
- if (maxDate) {
568
- const max = moment(maxDate);
569
- if (max.isValid() && inputDate.isAfter(max, 'day')) {
570
- violations.push('maxDate');
571
- }
572
- }
573
- return violations;
574
- }
575
- setDate(dates) {
576
- const [startDate, endDate] = dates;
577
- const datesToSet = this.datePickerOptions.map((option, index) => {
578
- const date = index === 0 ? startDate : endDate;
579
- return this.formatDateForOption(date, option, index);
580
- });
581
- const period = this.calculatePeriod(datesToSet);
582
- this.updateButtonsByPeriod(period);
583
- this.setMultipleDates(datesToSet);
584
- }
585
- formatDateForOption(date, option, index) {
586
- if (!date || date === '0000-00-00')
587
- return '';
588
- const hasTime = option.options?.enableTime;
589
- const flatpickrFormat = option.options?.dateFormat || (hasTime ? 'Y-m-d H:i' : 'Y-m-d');
590
- const momentFormat = this.convertFlatpickrFormatToMoment(flatpickrFormat);
591
- const momentDate = this.parseDateWithMultipleFormats(date, hasTime, momentFormat);
592
- if (!momentDate || !momentDate.isValid())
593
- return '';
594
- const isValid = this.validateDate(momentDate.toDate(), index);
595
- if (!isValid)
596
- return '';
597
- return this.formatMomentDate(momentDate, date, hasTime, index, momentFormat);
598
- }
599
- parseDateWithMultipleFormats(date, hasTime, momentFormat) {
600
- // hasTime이 true인 경우 (시간 포함 여부와 무관하게 moment로 파싱)
601
- if (hasTime) {
602
- const momentDate = moment(date);
603
- return momentDate.isValid() ? momentDate : null;
604
- }
605
- // hasTime이 false인 경우 - 여러 형식으로 시도
606
- let momentDate = moment(date);
607
- if (momentDate.isValid()) {
608
- return momentDate;
609
- }
610
- momentDate = moment(date, momentFormat, true);
611
- if (momentDate.isValid()) {
612
- return momentDate;
613
- }
614
- momentDate = moment(date, [momentFormat, 'YYYY-MM-DD', 'YYYY/MM/DD', 'MM/DD/YYYY'], true);
615
- return momentDate.isValid() ? momentDate : null;
616
- }
617
- formatMomentDate(momentDate, originalDate, hasTime, index, momentFormat) {
618
- // hasTime이 true이고 원본 날짜에 시간이 없는 경우
619
- if (hasTime && !originalDate.includes(':')) {
620
- return index === 0
621
- ? momentDate.startOf('day').format(momentFormat)
622
- : momentDate.endOf('day').format(momentFormat);
623
- }
624
- return momentDate.format(momentFormat);
625
- }
626
- calculatePeriod(datesToSet) {
627
- if (!datesToSet[0] || !datesToSet[1])
628
- return null;
629
- return moment(datesToSet[1]).diff(moment(datesToSet[0]), 'days');
630
- }
631
- updateDateWithButton(e) {
632
- const target = e.target;
633
- if (!target.classList.contains(CONSTANTS.CLASS_NAMES.BUTTON))
634
- return;
635
- const clickedButton = this.buttons.find((button) => button.text === target.textContent);
636
- if (!clickedButton || clickedButton === this.currentButton)
637
- return;
638
- const updateButtonState = () => {
639
- return this.buttons.map((button) => ({
640
- ...button,
641
- isCurrent: button.text === clickedButton?.text,
642
- }));
643
- };
644
- this.currentButton = clickedButton;
645
- this.reRenderButtonGroup(updateButtonState());
646
- this.setMultipleDates(this.calculateDatesFromButton(clickedButton));
647
- }
648
- setMultipleDates(dates) {
649
- dates.forEach((date, index) => {
650
- const shouldTriggerChange = index === dates.length - 1;
651
- this.flatpickrInstances[index]?.setDate(date, shouldTriggerChange);
652
- this.flatpickrInstances[index]?.redraw();
653
- });
654
- }
655
- updateButtonsByPeriod(period) {
656
- const newButtons = this.buttons.map((button) => ({
657
- ...button,
658
- isCurrent: period !== null && button.period === period,
659
- }));
660
- this.reRenderButtonGroup(newButtons);
661
- }
662
- calculateDatesFromButton(button) {
663
- const { period, unit } = button;
664
- return this.datePickerOptions.map((option, index) => {
665
- const hasTime = option.options?.enableTime;
666
- if (index === 0) {
667
- const startMoment = period ? moment().subtract(period, unit) : moment();
668
- return hasTime ? startMoment.startOf('day').format(this.dateFormat) : startMoment.format(this.dateFormat);
669
- }
670
- return hasTime ? moment().endOf('day').format(this.dateFormat) : moment().format(this.dateFormat);
671
- });
672
- }
673
- // flatpickr 형식을 moment 형식으로 변환하는 헬퍼 메서드
674
- convertFlatpickrFormatToMoment(flatpickrFormat) {
675
- const map = {
676
- Y: 'YYYY',
677
- y: 'YY',
678
- m: 'MM',
679
- d: 'DD',
680
- H: 'HH',
681
- i: 'mm',
682
- S: 'ss',
683
- };
684
- return flatpickrFormat.replace(/[YymdHiS]/g, (matched) => map[matched] || matched);
685
- }
686
- getDates() {
687
- return this.flatpickrInstances.map((instance) => {
688
- const selectedDates = instance.selectedDates;
689
- if (selectedDates.length > 0) {
690
- return moment(selectedDates[0]).format(this.dateFormat);
691
- }
692
- return '';
693
- });
694
- }
695
- }
696
- DatePicker.instanceCounter = 0;
697
- DatePicker.usedWrappers = new Set(); // 사용된 wrapper 요소 추적용
698
- export { DatePicker };
699
- window.DatePicker = DatePicker;