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