@ncds/ui-admin 1.3.0 → 1.5.0

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 (391) hide show
  1. package/dist/cjs/assets/scripts/comboBox.js +280 -0
  2. package/dist/cjs/assets/scripts/datePicker.js +231 -60
  3. package/dist/cjs/assets/scripts/featuredIcon.js +95 -0
  4. package/dist/cjs/assets/scripts/fileInput/FileInput.js +183 -0
  5. package/dist/cjs/assets/scripts/fileInput/FileInputModel.js +246 -0
  6. package/dist/cjs/assets/scripts/fileInput/FileInputView.js +455 -0
  7. package/dist/cjs/assets/scripts/fileInput/const/classNames.js +35 -0
  8. package/dist/cjs/assets/scripts/fileInput/const/index.js +27 -0
  9. package/dist/cjs/assets/scripts/fileInput/const/types.js +13 -0
  10. package/dist/cjs/assets/scripts/fileInput/index.js +44 -0
  11. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInput.js +187 -0
  12. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputModel.js +255 -0
  13. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputView.js +354 -0
  14. package/dist/cjs/assets/scripts/imageFileInput/const/classNames.js +41 -0
  15. package/dist/cjs/assets/scripts/imageFileInput/const/index.js +27 -0
  16. package/dist/cjs/assets/scripts/imageFileInput/const/types.js +13 -0
  17. package/dist/cjs/assets/scripts/imageFileInput/index.js +44 -0
  18. package/dist/cjs/assets/scripts/index.js +21 -1
  19. package/dist/cjs/assets/scripts/modal/Modal.js +116 -0
  20. package/dist/cjs/assets/scripts/modal/ModalActions.js +128 -0
  21. package/dist/cjs/assets/scripts/modal/ModalContent.js +46 -0
  22. package/dist/cjs/assets/scripts/modal/ModalHeader.js +115 -0
  23. package/dist/cjs/assets/scripts/modal/const/classNames.js +41 -0
  24. package/dist/cjs/assets/scripts/modal/const/index.js +27 -0
  25. package/dist/cjs/assets/scripts/modal/const/types.js +5 -0
  26. package/dist/cjs/assets/scripts/modal/index.js +61 -0
  27. package/dist/cjs/assets/scripts/modal/utils/contentUtils.js +35 -0
  28. package/dist/cjs/assets/scripts/notification/FloatingNotification.js +180 -0
  29. package/dist/cjs/assets/scripts/notification/FullWidthNotification.js +120 -0
  30. package/dist/cjs/assets/scripts/notification/MessageNotification.js +146 -0
  31. package/dist/cjs/assets/scripts/notification/Notification.js +116 -0
  32. package/dist/cjs/assets/scripts/notification/const/classNames.js +50 -0
  33. package/dist/cjs/assets/scripts/notification/const/icons.js +45 -0
  34. package/dist/cjs/assets/scripts/notification/const/index.js +87 -0
  35. package/dist/cjs/assets/scripts/notification/const/sizes.js +54 -0
  36. package/dist/cjs/assets/scripts/notification/const/types.js +14 -0
  37. package/dist/cjs/assets/scripts/notification/index.js +92 -0
  38. package/dist/cjs/assets/scripts/notification/utils.js +92 -0
  39. package/dist/cjs/assets/scripts/progress-bar/ProgressBar.js +272 -0
  40. package/dist/cjs/assets/scripts/progress-bar/index.js +12 -0
  41. package/dist/cjs/assets/scripts/selectBox.js +319 -0
  42. package/dist/cjs/assets/scripts/shared/ButtonCloseX.js +46 -0
  43. package/dist/cjs/assets/scripts/tag/Tag.js +268 -0
  44. package/dist/cjs/assets/scripts/tag/const/classNames.js +24 -0
  45. package/dist/cjs/assets/scripts/tag/const/index.js +38 -0
  46. package/dist/cjs/assets/scripts/tag/const/sizes.js +13 -0
  47. package/dist/cjs/assets/scripts/tag/const/types.js +5 -0
  48. package/dist/cjs/assets/scripts/tag/index.js +44 -0
  49. package/dist/cjs/assets/scripts/tooltip/Tooltip.js +380 -0
  50. package/dist/cjs/assets/scripts/tooltip/TooltipLayerManager.js +84 -0
  51. package/dist/cjs/assets/scripts/tooltip/const/classNames.js +29 -0
  52. package/dist/cjs/assets/scripts/tooltip/const/constants.js +56 -0
  53. package/dist/cjs/assets/scripts/tooltip/const/icons.js +15 -0
  54. package/dist/cjs/assets/scripts/tooltip/const/index.js +123 -0
  55. package/dist/cjs/assets/scripts/tooltip/const/templates.js +49 -0
  56. package/dist/cjs/assets/scripts/tooltip/const/types.js +5 -0
  57. package/dist/cjs/assets/scripts/tooltip/index.js +57 -0
  58. package/dist/cjs/assets/scripts/tooltip/utils.js +41 -0
  59. package/dist/cjs/assets/scripts/utils/selectbox/DOMRenderer.js +384 -0
  60. package/dist/cjs/assets/scripts/utils/selectbox/DropdownModel.js +368 -0
  61. package/dist/cjs/assets/scripts/utils/selectbox/SelectBoxController.js +681 -0
  62. package/dist/cjs/assets/scripts/utils/selectbox/UnifiedSelectBox.js +711 -0
  63. package/dist/cjs/constant/color.js +2 -0
  64. package/dist/cjs/src/components/button/Button.js +9 -35
  65. package/dist/cjs/src/components/button/ButtonGroup.js +9 -10
  66. package/dist/cjs/src/components/button/ButtonStepper.js +22 -0
  67. package/dist/cjs/src/components/button/index.js +22 -0
  68. package/dist/cjs/src/components/checkbox/Checkbox.js +20 -19
  69. package/dist/cjs/src/components/checkbox/CheckboxInput.js +22 -45
  70. package/dist/cjs/src/components/combobox/ComboBox.js +337 -0
  71. package/dist/cjs/src/components/combobox/index.js +12 -0
  72. package/dist/cjs/src/components/date-picker/CustomInput.js +52 -0
  73. package/dist/cjs/src/components/date-picker/DatePicker.js +126 -24
  74. package/dist/cjs/src/components/date-picker/RangeDatePicker.js +3 -1
  75. package/dist/cjs/src/components/date-picker/RangeDatePickerWithButtons.js +7 -3
  76. package/dist/cjs/src/components/{input → file-upload}/FileInput.js +17 -9
  77. package/dist/cjs/src/components/file-upload/index.js +16 -0
  78. package/dist/cjs/src/components/image-file-input/ImageFileInput.js +263 -0
  79. package/dist/cjs/src/components/image-file-input/components/ImagePreview.js +44 -0
  80. package/dist/cjs/src/components/image-file-input/index.js +16 -0
  81. package/dist/cjs/src/components/index.js +44 -0
  82. package/dist/cjs/src/components/input/InputBase.js +54 -10
  83. package/dist/cjs/src/components/input/NumberInput.js +130 -0
  84. package/dist/cjs/src/components/input/Textarea.js +12 -20
  85. package/dist/cjs/src/components/input/index.js +11 -11
  86. package/dist/cjs/src/components/modal/Modal.js +7 -3
  87. package/dist/cjs/src/components/notification/FloatingNotification.js +34 -3
  88. package/dist/cjs/src/components/notification/FullWidthNotification.js +54 -5
  89. package/dist/cjs/src/components/notification/MessageNotification.js +137 -0
  90. package/dist/cjs/src/components/notification/Notification.js +23 -9
  91. package/dist/cjs/src/components/notification/index.js +11 -0
  92. package/dist/cjs/src/components/pagination/NavButton.js +1 -13
  93. package/dist/cjs/src/components/pagination/Pagination.js +6 -20
  94. package/dist/cjs/src/components/progress-bar/ProgressBar.js +89 -20
  95. package/dist/cjs/src/components/progress-bar/components/SegmentBar.js +25 -0
  96. package/dist/cjs/src/components/progress-bar/components/SegmentLabels.js +74 -0
  97. package/dist/cjs/src/components/progress-bar/hooks/useProgressBar.js +119 -0
  98. package/dist/cjs/src/components/progress-bar/index.js +11 -0
  99. package/dist/cjs/src/components/progress-bar/types.js +5 -0
  100. package/dist/cjs/src/components/progress-bar/utils.js +31 -0
  101. package/dist/cjs/src/components/radio/Radio.js +5 -6
  102. package/dist/cjs/src/components/select/Select.js +7 -4
  103. package/dist/cjs/src/components/select-dropdown/SelectDropdown.js +146 -0
  104. package/dist/cjs/src/components/select-dropdown/index.js +12 -0
  105. package/dist/cjs/src/components/selectbox/SelectBox.js +283 -0
  106. package/dist/cjs/src/components/selectbox/index.js +12 -0
  107. package/dist/cjs/src/components/shared/hintText/HintText.js +1 -1
  108. package/dist/cjs/src/components/switch/Switch.js +123 -0
  109. package/dist/cjs/src/components/switch/index.js +12 -0
  110. package/dist/cjs/src/components/tab/HorizontalTab.js +8 -20
  111. package/dist/cjs/src/components/tab/TabButton.js +33 -16
  112. package/dist/cjs/src/components/tab/VerticalTab.js +15 -30
  113. package/dist/cjs/src/components/tag/Tag.js +92 -3
  114. package/dist/cjs/src/components/tooltip/Tooltip.js +138 -30
  115. package/dist/cjs/src/hooks/dropdown/index.js +47 -0
  116. package/dist/cjs/src/hooks/dropdown/useDropdown.js +109 -0
  117. package/dist/cjs/src/hooks/dropdown/useDropdownKeyboard.js +131 -0
  118. package/dist/cjs/src/hooks/dropdown/useDropdownPosition.js +27 -0
  119. package/dist/cjs/src/hooks/dropdown/useOutsideClick.js +33 -0
  120. package/dist/cjs/src/hooks/dropdown/useScrollLock.js +78 -0
  121. package/dist/cjs/src/hooks/dropdown/useWindowResize.js +52 -0
  122. package/dist/cjs/src/hooks/index.js +18 -1
  123. package/dist/cjs/src/types/dropdown/dropdown.js +5 -0
  124. package/dist/cjs/src/types/dropdown/index.js +27 -0
  125. package/dist/cjs/src/types/dropdown/option.js +5 -0
  126. package/dist/cjs/src/types/index.js +16 -0
  127. package/dist/cjs/src/utils/date-picker.js +37 -1
  128. package/dist/cjs/src/utils/dropdown/dropdownUtils.js +107 -0
  129. package/dist/cjs/src/utils/dropdown/index.js +27 -0
  130. package/dist/cjs/src/utils/dropdown/multiSelect.js +100 -0
  131. package/dist/cjs/src/utils/index.js +27 -0
  132. package/dist/esm/assets/scripts/comboBox.js +275 -0
  133. package/dist/esm/assets/scripts/datePicker.js +228 -59
  134. package/dist/esm/assets/scripts/featuredIcon.js +90 -0
  135. package/dist/esm/assets/scripts/fileInput/FileInput.js +178 -0
  136. package/dist/esm/assets/scripts/fileInput/FileInputModel.js +241 -0
  137. package/dist/esm/assets/scripts/fileInput/FileInputView.js +450 -0
  138. package/dist/esm/assets/scripts/fileInput/const/classNames.js +25 -0
  139. package/dist/esm/assets/scripts/fileInput/const/index.js +2 -0
  140. package/dist/esm/assets/scripts/fileInput/const/types.js +7 -0
  141. package/dist/esm/assets/scripts/fileInput/index.js +9 -0
  142. package/dist/esm/assets/scripts/imageFileInput/ImageFileInput.js +182 -0
  143. package/dist/esm/assets/scripts/imageFileInput/ImageFileInputModel.js +250 -0
  144. package/dist/esm/assets/scripts/imageFileInput/ImageFileInputView.js +349 -0
  145. package/dist/esm/assets/scripts/imageFileInput/const/classNames.js +30 -0
  146. package/dist/esm/assets/scripts/imageFileInput/const/index.js +2 -0
  147. package/dist/esm/assets/scripts/imageFileInput/const/types.js +7 -0
  148. package/dist/esm/assets/scripts/imageFileInput/index.js +9 -0
  149. package/dist/esm/assets/scripts/index.js +21 -1
  150. package/dist/esm/assets/scripts/modal/Modal.js +110 -0
  151. package/dist/esm/assets/scripts/modal/ModalActions.js +123 -0
  152. package/dist/esm/assets/scripts/modal/ModalContent.js +41 -0
  153. package/dist/esm/assets/scripts/modal/ModalHeader.js +110 -0
  154. package/dist/esm/assets/scripts/modal/const/classNames.js +31 -0
  155. package/dist/esm/assets/scripts/modal/const/index.js +2 -0
  156. package/dist/esm/assets/scripts/modal/const/types.js +1 -0
  157. package/dist/esm/assets/scripts/modal/index.js +15 -0
  158. package/dist/esm/assets/scripts/modal/utils/contentUtils.js +28 -0
  159. package/dist/esm/assets/scripts/notification/FloatingNotification.js +176 -0
  160. package/dist/esm/assets/scripts/notification/FullWidthNotification.js +115 -0
  161. package/dist/esm/assets/scripts/notification/MessageNotification.js +141 -0
  162. package/dist/esm/assets/scripts/notification/Notification.js +111 -0
  163. package/dist/esm/assets/scripts/notification/const/classNames.js +44 -0
  164. package/dist/esm/assets/scripts/notification/const/icons.js +39 -0
  165. package/dist/esm/assets/scripts/notification/const/index.js +4 -0
  166. package/dist/esm/assets/scripts/notification/const/sizes.js +48 -0
  167. package/dist/esm/assets/scripts/notification/const/types.js +8 -0
  168. package/dist/esm/assets/scripts/notification/index.js +11 -0
  169. package/dist/esm/assets/scripts/notification/utils.js +79 -0
  170. package/dist/esm/assets/scripts/progress-bar/ProgressBar.js +267 -0
  171. package/dist/esm/assets/scripts/progress-bar/index.js +1 -0
  172. package/dist/esm/assets/scripts/selectBox.js +314 -0
  173. package/dist/esm/assets/scripts/shared/ButtonCloseX.js +38 -0
  174. package/dist/esm/assets/scripts/tag/Tag.js +263 -0
  175. package/dist/esm/assets/scripts/tag/const/classNames.js +16 -0
  176. package/dist/esm/assets/scripts/tag/const/index.js +3 -0
  177. package/dist/esm/assets/scripts/tag/const/sizes.js +7 -0
  178. package/dist/esm/assets/scripts/tag/const/types.js +1 -0
  179. package/dist/esm/assets/scripts/tag/index.js +9 -0
  180. package/dist/esm/assets/scripts/tooltip/Tooltip.js +375 -0
  181. package/dist/esm/assets/scripts/tooltip/TooltipLayerManager.js +79 -0
  182. package/dist/esm/assets/scripts/tooltip/const/classNames.js +23 -0
  183. package/dist/esm/assets/scripts/tooltip/const/constants.js +50 -0
  184. package/dist/esm/assets/scripts/tooltip/const/icons.js +9 -0
  185. package/dist/esm/assets/scripts/tooltip/const/index.js +4 -0
  186. package/dist/esm/assets/scripts/tooltip/const/templates.js +42 -0
  187. package/dist/esm/assets/scripts/tooltip/const/types.js +1 -0
  188. package/dist/esm/assets/scripts/tooltip/index.js +10 -0
  189. package/dist/esm/assets/scripts/tooltip/utils.js +35 -0
  190. package/dist/esm/assets/scripts/utils/selectbox/DOMRenderer.js +379 -0
  191. package/dist/esm/assets/scripts/utils/selectbox/DropdownModel.js +363 -0
  192. package/dist/esm/assets/scripts/utils/selectbox/SelectBoxController.js +676 -0
  193. package/dist/esm/assets/scripts/utils/selectbox/UnifiedSelectBox.js +706 -0
  194. package/dist/esm/constant/color.js +2 -0
  195. package/dist/esm/src/components/button/Button.js +10 -36
  196. package/dist/esm/src/components/button/ButtonGroup.js +9 -10
  197. package/dist/esm/src/components/button/ButtonStepper.js +14 -0
  198. package/dist/esm/src/components/button/index.js +3 -1
  199. package/dist/esm/src/components/checkbox/Checkbox.js +21 -19
  200. package/dist/esm/src/components/checkbox/CheckboxInput.js +24 -47
  201. package/dist/esm/src/components/combobox/ComboBox.js +330 -0
  202. package/dist/esm/src/components/combobox/index.js +1 -0
  203. package/dist/esm/src/components/date-picker/CustomInput.js +45 -0
  204. package/dist/esm/src/components/date-picker/DatePicker.js +127 -25
  205. package/dist/esm/src/components/date-picker/RangeDatePicker.js +3 -1
  206. package/dist/esm/src/components/date-picker/RangeDatePickerWithButtons.js +7 -3
  207. package/dist/esm/src/components/{input → file-upload}/FileInput.js +17 -9
  208. package/dist/esm/src/components/file-upload/index.js +1 -0
  209. package/dist/esm/src/components/image-file-input/ImageFileInput.js +256 -0
  210. package/dist/esm/src/components/image-file-input/components/ImagePreview.js +37 -0
  211. package/dist/esm/src/components/image-file-input/index.js +1 -0
  212. package/dist/esm/src/components/index.js +4 -0
  213. package/dist/esm/src/components/input/InputBase.js +55 -11
  214. package/dist/esm/src/components/input/NumberInput.js +124 -0
  215. package/dist/esm/src/components/input/Textarea.js +12 -20
  216. package/dist/esm/src/components/input/index.js +2 -2
  217. package/dist/esm/src/components/modal/Modal.js +7 -3
  218. package/dist/esm/src/components/notification/FloatingNotification.js +35 -4
  219. package/dist/esm/src/components/notification/FullWidthNotification.js +55 -6
  220. package/dist/esm/src/components/notification/MessageNotification.js +130 -0
  221. package/dist/esm/src/components/notification/Notification.js +23 -9
  222. package/dist/esm/src/components/notification/index.js +2 -1
  223. package/dist/esm/src/components/pagination/NavButton.js +1 -13
  224. package/dist/esm/src/components/pagination/Pagination.js +6 -20
  225. package/dist/esm/src/components/progress-bar/ProgressBar.js +89 -20
  226. package/dist/esm/src/components/progress-bar/components/SegmentBar.js +18 -0
  227. package/dist/esm/src/components/progress-bar/components/SegmentLabels.js +66 -0
  228. package/dist/esm/src/components/progress-bar/hooks/useProgressBar.js +112 -0
  229. package/dist/esm/src/components/progress-bar/index.js +2 -1
  230. package/dist/esm/src/components/progress-bar/types.js +1 -0
  231. package/dist/esm/src/components/progress-bar/utils.js +22 -0
  232. package/dist/esm/src/components/radio/Radio.js +5 -5
  233. package/dist/esm/src/components/select/Select.js +7 -4
  234. package/dist/esm/src/components/select-dropdown/SelectDropdown.js +139 -0
  235. package/dist/esm/src/components/select-dropdown/index.js +1 -0
  236. package/dist/esm/src/components/selectbox/SelectBox.js +276 -0
  237. package/dist/esm/src/components/selectbox/index.js +1 -0
  238. package/dist/esm/src/components/shared/hintText/HintText.js +1 -1
  239. package/dist/esm/src/components/switch/Switch.js +116 -0
  240. package/dist/esm/src/components/switch/index.js +1 -0
  241. package/dist/esm/src/components/tab/HorizontalTab.js +7 -19
  242. package/dist/esm/src/components/tab/TabButton.js +34 -17
  243. package/dist/esm/src/components/tab/VerticalTab.js +15 -30
  244. package/dist/esm/src/components/tag/Tag.js +92 -3
  245. package/dist/esm/src/components/tooltip/Tooltip.js +139 -31
  246. package/dist/esm/src/hooks/dropdown/index.js +6 -0
  247. package/dist/esm/src/hooks/dropdown/useDropdown.js +102 -0
  248. package/dist/esm/src/hooks/dropdown/useDropdownKeyboard.js +124 -0
  249. package/dist/esm/src/hooks/dropdown/useDropdownPosition.js +20 -0
  250. package/dist/esm/src/hooks/dropdown/useOutsideClick.js +26 -0
  251. package/dist/esm/src/hooks/dropdown/useScrollLock.js +71 -0
  252. package/dist/esm/src/hooks/dropdown/useWindowResize.js +45 -0
  253. package/dist/esm/src/hooks/index.js +4 -1
  254. package/dist/esm/src/types/dropdown/dropdown.js +1 -0
  255. package/dist/esm/src/types/dropdown/index.js +2 -0
  256. package/dist/esm/src/types/dropdown/option.js +1 -0
  257. package/dist/esm/src/types/index.js +2 -0
  258. package/dist/esm/src/utils/date-picker.js +33 -1
  259. package/dist/esm/src/utils/dropdown/dropdownUtils.js +97 -0
  260. package/dist/esm/src/utils/dropdown/index.js +2 -0
  261. package/dist/esm/src/utils/dropdown/multiSelect.js +88 -0
  262. package/dist/esm/src/utils/index.js +4 -0
  263. package/dist/types/assets/scripts/comboBox.d.ts +91 -0
  264. package/dist/types/assets/scripts/datePicker.d.ts +17 -13
  265. package/dist/types/assets/scripts/featuredIcon.d.ts +23 -0
  266. package/dist/types/assets/scripts/fileInput/FileInput.d.ts +67 -0
  267. package/dist/types/assets/scripts/fileInput/FileInputModel.d.ts +70 -0
  268. package/dist/types/assets/scripts/fileInput/FileInputView.d.ts +77 -0
  269. package/dist/types/assets/scripts/fileInput/const/classNames.d.ts +17 -0
  270. package/dist/types/assets/scripts/fileInput/const/index.d.ts +3 -0
  271. package/dist/types/assets/scripts/fileInput/const/types.d.ts +132 -0
  272. package/dist/types/assets/scripts/fileInput/index.d.ts +4 -0
  273. package/dist/types/assets/scripts/imageFileInput/ImageFileInput.d.ts +64 -0
  274. package/dist/types/assets/scripts/imageFileInput/ImageFileInputModel.d.ts +74 -0
  275. package/dist/types/assets/scripts/imageFileInput/ImageFileInputView.d.ts +80 -0
  276. package/dist/types/assets/scripts/imageFileInput/const/classNames.d.ts +20 -0
  277. package/dist/types/assets/scripts/imageFileInput/const/index.d.ts +3 -0
  278. package/dist/types/assets/scripts/imageFileInput/const/types.d.ts +126 -0
  279. package/dist/types/assets/scripts/imageFileInput/index.d.ts +4 -0
  280. package/dist/types/assets/scripts/index.d.ts +28 -2
  281. package/dist/types/assets/scripts/modal/Modal.d.ts +28 -0
  282. package/dist/types/assets/scripts/modal/ModalActions.d.ts +19 -0
  283. package/dist/types/assets/scripts/modal/ModalContent.d.ts +14 -0
  284. package/dist/types/assets/scripts/modal/ModalHeader.d.ts +16 -0
  285. package/dist/types/assets/scripts/modal/const/classNames.d.ts +23 -0
  286. package/dist/types/assets/scripts/modal/const/index.d.ts +3 -0
  287. package/dist/types/assets/scripts/modal/const/types.d.ts +62 -0
  288. package/dist/types/assets/scripts/modal/index.d.ts +8 -0
  289. package/dist/types/assets/scripts/modal/utils/contentUtils.d.ts +11 -0
  290. package/dist/types/assets/scripts/notification/FloatingNotification.d.ts +25 -0
  291. package/dist/types/assets/scripts/notification/FullWidthNotification.d.ts +22 -0
  292. package/dist/types/assets/scripts/notification/MessageNotification.d.ts +23 -0
  293. package/dist/types/assets/scripts/notification/Notification.d.ts +22 -0
  294. package/dist/types/assets/scripts/notification/const/classNames.d.ts +44 -0
  295. package/dist/types/assets/scripts/notification/const/icons.d.ts +26 -0
  296. package/dist/types/assets/scripts/notification/const/index.d.ts +6 -0
  297. package/dist/types/assets/scripts/notification/const/sizes.d.ts +33 -0
  298. package/dist/types/assets/scripts/notification/const/types.d.ts +20 -0
  299. package/dist/types/assets/scripts/notification/index.d.ts +8 -0
  300. package/dist/types/assets/scripts/notification/utils.d.ts +9 -0
  301. package/dist/types/assets/scripts/progress-bar/ProgressBar.d.ts +68 -0
  302. package/dist/types/assets/scripts/progress-bar/index.d.ts +2 -0
  303. package/dist/types/assets/scripts/selectBox.d.ts +77 -0
  304. package/dist/types/assets/scripts/shared/ButtonCloseX.d.ts +6 -0
  305. package/dist/types/assets/scripts/tag/Tag.d.ts +28 -0
  306. package/dist/types/assets/scripts/tag/const/classNames.d.ts +12 -0
  307. package/dist/types/assets/scripts/tag/const/index.d.ts +4 -0
  308. package/dist/types/assets/scripts/tag/const/sizes.d.ts +8 -0
  309. package/dist/types/assets/scripts/tag/const/types.d.ts +34 -0
  310. package/dist/types/assets/scripts/tag/index.d.ts +4 -0
  311. package/dist/types/assets/scripts/tooltip/Tooltip.d.ts +55 -0
  312. package/dist/types/assets/scripts/tooltip/TooltipLayerManager.d.ts +22 -0
  313. package/dist/types/assets/scripts/tooltip/const/classNames.d.ts +18 -0
  314. package/dist/types/assets/scripts/tooltip/const/constants.d.ts +34 -0
  315. package/dist/types/assets/scripts/tooltip/const/icons.d.ts +5 -0
  316. package/dist/types/assets/scripts/tooltip/const/index.d.ts +6 -0
  317. package/dist/types/assets/scripts/tooltip/const/templates.d.ts +17 -0
  318. package/dist/types/assets/scripts/tooltip/const/types.d.ts +15 -0
  319. package/dist/types/assets/scripts/tooltip/index.d.ts +7 -0
  320. package/dist/types/assets/scripts/tooltip/utils.d.ts +3 -0
  321. package/dist/types/assets/scripts/utils/selectbox/DOMRenderer.d.ts +108 -0
  322. package/dist/types/assets/scripts/utils/selectbox/DropdownModel.d.ts +158 -0
  323. package/dist/types/assets/scripts/utils/selectbox/SelectBoxController.d.ts +171 -0
  324. package/dist/types/assets/scripts/utils/selectbox/UnifiedSelectBox.d.ts +99 -0
  325. package/dist/types/constant/color.d.ts +3 -1
  326. package/dist/types/src/components/button/Button.d.ts +14 -12
  327. package/dist/types/src/components/button/ButtonGroup.d.ts +4 -289
  328. package/dist/types/src/components/button/ButtonStepper.d.ts +10 -0
  329. package/dist/types/src/components/button/index.d.ts +2 -0
  330. package/dist/types/src/components/checkbox/Checkbox.d.ts +2 -3
  331. package/dist/types/src/components/combobox/ComboBox.d.ts +28 -0
  332. package/dist/types/src/components/combobox/index.d.ts +3 -0
  333. package/dist/types/src/components/date-picker/CustomInput.d.ts +12 -0
  334. package/dist/types/src/components/date-picker/DatePicker.d.ts +3 -0
  335. package/dist/types/src/components/date-picker/RangeDatePickerWithButtons.d.ts +4 -4
  336. package/dist/types/src/components/{input → file-upload}/FileInput.d.ts +1 -1
  337. package/dist/types/src/components/file-upload/index.d.ts +2 -0
  338. package/dist/types/src/components/image-file-input/ImageFileInput.d.ts +78 -0
  339. package/dist/types/src/components/image-file-input/components/ImagePreview.d.ts +6 -0
  340. package/dist/types/src/components/image-file-input/index.d.ts +2 -0
  341. package/dist/types/src/components/index.d.ts +4 -0
  342. package/dist/types/src/components/input/InputBase.d.ts +2 -0
  343. package/dist/types/src/components/input/NumberInput.d.ts +10 -0
  344. package/dist/types/src/components/input/index.d.ts +1 -1
  345. package/dist/types/src/components/modal/Modal.d.ts +3 -2
  346. package/dist/types/src/components/notification/FloatingNotification.d.ts +5 -0
  347. package/dist/types/src/components/notification/FullWidthNotification.d.ts +15 -1
  348. package/dist/types/src/components/notification/MessageNotification.d.ts +40 -0
  349. package/dist/types/src/components/notification/Notification.d.ts +14 -3
  350. package/dist/types/src/components/notification/index.d.ts +1 -0
  351. package/dist/types/src/components/pagination/NavButton.d.ts +1 -4
  352. package/dist/types/src/components/pagination/Pagination.d.ts +2 -13
  353. package/dist/types/src/components/progress-bar/ProgressBar.d.ts +2 -6
  354. package/dist/types/src/components/progress-bar/components/SegmentBar.d.ts +8 -0
  355. package/dist/types/src/components/progress-bar/components/SegmentLabels.d.ts +16 -0
  356. package/dist/types/src/components/progress-bar/hooks/useProgressBar.d.ts +14 -0
  357. package/dist/types/src/components/progress-bar/index.d.ts +1 -0
  358. package/dist/types/src/components/progress-bar/types.d.ts +16 -0
  359. package/dist/types/src/components/progress-bar/utils.d.ts +13 -0
  360. package/dist/types/src/components/radio/Radio.d.ts +2 -3
  361. package/dist/types/src/components/select/Select.d.ts +1 -4
  362. package/dist/types/src/components/select-dropdown/SelectDropdown.d.ts +28 -0
  363. package/dist/types/src/components/select-dropdown/index.d.ts +2 -0
  364. package/dist/types/src/components/selectbox/SelectBox.d.ts +25 -0
  365. package/dist/types/src/components/selectbox/index.d.ts +2 -0
  366. package/dist/types/src/components/switch/Switch.d.ts +22 -0
  367. package/dist/types/src/components/switch/index.d.ts +3 -0
  368. package/dist/types/src/components/tab/HorizontalTab.d.ts +1 -2
  369. package/dist/types/src/components/tab/TabButton.d.ts +9 -12
  370. package/dist/types/src/components/tab/VerticalTab.d.ts +2 -2
  371. package/dist/types/src/components/tag/Tag.d.ts +3 -1
  372. package/dist/types/src/components/tooltip/Tooltip.d.ts +7 -3
  373. package/dist/types/src/hooks/dropdown/index.d.ts +7 -0
  374. package/dist/types/src/hooks/dropdown/useDropdown.d.ts +30 -0
  375. package/dist/types/src/hooks/dropdown/useDropdownKeyboard.d.ts +11 -0
  376. package/dist/types/src/hooks/dropdown/useDropdownPosition.d.ts +10 -0
  377. package/dist/types/src/hooks/dropdown/useOutsideClick.d.ts +6 -0
  378. package/dist/types/src/hooks/dropdown/useScrollLock.d.ts +5 -0
  379. package/dist/types/src/hooks/dropdown/useWindowResize.d.ts +8 -0
  380. package/dist/types/src/hooks/index.d.ts +2 -1
  381. package/dist/types/src/types/dropdown/dropdown.d.ts +40 -0
  382. package/dist/types/src/types/dropdown/index.d.ts +3 -0
  383. package/dist/types/src/types/dropdown/option.d.ts +20 -0
  384. package/dist/types/src/types/index.d.ts +2 -0
  385. package/dist/types/src/utils/date-picker.d.ts +3 -0
  386. package/dist/types/src/utils/dropdown/dropdownUtils.d.ts +18 -0
  387. package/dist/types/src/utils/dropdown/index.d.ts +3 -0
  388. package/dist/types/src/utils/dropdown/multiSelect.d.ts +32 -0
  389. package/dist/types/src/utils/index.d.ts +3 -0
  390. package/dist/ui-admin/assets/styles/style.css +2065 -397
  391. package/package.json +8 -4
@@ -0,0 +1,34 @@
1
+ import { CalculatedPosition } from '../../../../src/components/tag/Tag';
2
+ export type TagSize = 'sm' | 'md';
3
+ export type { CalculatedPosition };
4
+ export interface SideSlotIcon {
5
+ type: 'icon';
6
+ icon: string;
7
+ color?: string;
8
+ }
9
+ export interface SideSlotDot {
10
+ type: 'dot';
11
+ color?: string;
12
+ size?: 'sm' | 'md';
13
+ }
14
+ export interface SideSlotCustom {
15
+ type: 'custom';
16
+ children: HTMLElement;
17
+ }
18
+ export type SideSlotType = SideSlotIcon | SideSlotDot | SideSlotCustom;
19
+ export interface BaseTagOptions {
20
+ size?: TagSize;
21
+ icon?: SideSlotType;
22
+ text: string;
23
+ count?: string;
24
+ close?: boolean;
25
+ onButtonClick?: (event: MouseEvent) => void;
26
+ maxLength?: number;
27
+ }
28
+ export interface RequiredTagProps extends Required<Pick<BaseTagOptions, 'text' | 'size' | 'maxLength'>> {
29
+ icon?: SideSlotType;
30
+ count?: string;
31
+ close?: boolean;
32
+ onButtonClick?: (event: MouseEvent) => void;
33
+ }
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,4 @@
1
+ export { Tag } from './Tag';
2
+ export * from './const/types';
3
+ export * from './const/classNames';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,55 @@
1
+ import { TooltipOptions } from './const';
2
+ /**
3
+ * Tooltip 클래스
4
+ * 툴팁 패널 패턴을 사용하여 툴팁을 생성합니다.
5
+ * 툴팁 패널 패턴은 바깥 컨테이너(항상 pointer-events:none) + 실제 패널(클릭 허용) 패턴을 사용합니다.
6
+ * 레이어 1개 아래에 여러개의 패널과 툴팁이 생성되어 화면에 삽입됩니다.
7
+ * 자동 위치조정 ( 공간이 부족하다면 상하좌우를 조절하는 기능 - 기본값: top )을 사용합니다.
8
+ * Shadow DOM 지원
9
+ */
10
+ export declare class Tooltip {
11
+ private element;
12
+ private iconElement;
13
+ private layerManager;
14
+ private panelId;
15
+ private panel;
16
+ private calculatedPosition;
17
+ private isVisible;
18
+ private isMeasuring;
19
+ private isForceHidden;
20
+ private options;
21
+ private boundMouseEnter;
22
+ private boundMouseLeave;
23
+ private boundResizeScroll;
24
+ private boundPanelClick;
25
+ constructor(options?: TooltipOptions);
26
+ private createElement;
27
+ private buildAnchorClassName;
28
+ private buildPanelClassName;
29
+ private renderContentHTML;
30
+ private renderCloseButtonHTML;
31
+ /** 전역 레이어에 패널 생성 */
32
+ private createLayerAndPanel;
33
+ private setupShadowContent;
34
+ private bindEvents;
35
+ private enableMouseEvents;
36
+ private disableMouseEvents;
37
+ private handleMouseEnter;
38
+ private handleMouseLeave;
39
+ private handleResizeScroll;
40
+ private handlePanelClick;
41
+ showTooltip(): void;
42
+ hideTooltip(): void;
43
+ private updateTooltipPosition;
44
+ private updatePanelClass;
45
+ getElement(): HTMLElement;
46
+ updateOptions(newOptions: Partial<TooltipOptions>): void;
47
+ destroy(): void;
48
+ static create(options?: TooltipOptions): Tooltip;
49
+ static createShort(title: string, content?: string, options?: Partial<TooltipOptions>): Tooltip;
50
+ static createLong(title: string, content?: string, options?: Partial<TooltipOptions>): Tooltip;
51
+ static createAuto(title: string, content?: string, options?: Partial<TooltipOptions>): Tooltip;
52
+ static createAutoLong(title: string, content?: string, options?: Partial<TooltipOptions>): Tooltip;
53
+ static createAutoLongWithShadowDOM(title: string, content: string, options?: Partial<TooltipOptions>): Tooltip;
54
+ }
55
+ //# sourceMappingURL=Tooltip.d.ts.map
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 툴팁 레이어 관리자
3
+ * 전역 레이어 하나를 사용하여 모든 툴팁 패널을 관리합니다.
4
+ */
5
+ export declare class TooltipLayerManager {
6
+ private static instance;
7
+ private layer;
8
+ private panels;
9
+ private nextId;
10
+ private maxZIndex;
11
+ private constructor();
12
+ static getInstance(): TooltipLayerManager;
13
+ private createGlobalLayer;
14
+ createPanel(zIndex?: number): {
15
+ id: string;
16
+ panel: HTMLElement;
17
+ };
18
+ removePanel(id: string): void;
19
+ getPanel(id: string): HTMLElement | null;
20
+ destroy(): void;
21
+ }
22
+ //# sourceMappingURL=TooltipLayerManager.d.ts.map
@@ -0,0 +1,18 @@
1
+ export declare const CLASS_NAMES: {
2
+ TOOLTIP: string;
3
+ TOOLTIP_ICON: string;
4
+ TOOLTIP_BG: string;
5
+ TOOLTIP_TITLE: string;
6
+ TOOLTIP_CONTENT: string;
7
+ TOOLTIP_CLOSE_BUTTON: string;
8
+ TOOLTIP_HIDDEN_ARROW: string;
9
+ TOOLTIP_STROKE: string;
10
+ TOOLTIP_AUTO: string;
11
+ TOOLTIP_BG_VISIBLE: string;
12
+ TOOLTIP_BG_MEASURING: string;
13
+ TOOLTIP_BG_FORCE_HIDDEN: string;
14
+ TOOLTIP_GLOBAL_LAYER: string;
15
+ TOOLTIP_PANEL: string;
16
+ BUTTON_CLOSE_X: string;
17
+ };
18
+ //# sourceMappingURL=classNames.d.ts.map
@@ -0,0 +1,34 @@
1
+ import { TooltipOptions } from './types';
2
+ export declare const MARGIN = 10;
3
+ export declare const DEFAULT_TOOLTIP_WIDTH = 200;
4
+ export declare const DEFAULT_TOOLTIP_HEIGHT = 60;
5
+ export declare const POSITION_PRIORITY: readonly ["bottom", "top", "right", "left"];
6
+ export declare const TOOLTIP_OFFSET = 8;
7
+ export declare const VIEWPORT_MARGIN = 8;
8
+ export declare const ICON_SIZES: {
9
+ readonly sm: 14;
10
+ readonly md: 16;
11
+ };
12
+ export declare const TRANSITION_DURATION = "0.18s";
13
+ export declare const OFFSCREEN_POSITION = "-99999px";
14
+ export declare const OPACITY: {
15
+ readonly HIDDEN: "0";
16
+ readonly VISIBLE: "1";
17
+ };
18
+ export declare const POSITION: {
19
+ readonly INITIAL: "0px";
20
+ readonly OFFSCREEN: "-99999px";
21
+ };
22
+ export declare const Z_INDEX: {
23
+ readonly TOOLTIP_LAYER: 2000;
24
+ };
25
+ export declare const EVENT_OPTIONS: {
26
+ readonly PASSIVE: {
27
+ readonly passive: true;
28
+ };
29
+ readonly ONCE: {
30
+ readonly once: true;
31
+ };
32
+ };
33
+ export declare const TOOLTIP_DEFAULT_VALUE: TooltipOptions;
34
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,5 @@
1
+ export declare const SVG_ICONS: {
2
+ readonly 'help-circle-stroke': (size: number) => string;
3
+ readonly 'help-circle-fill': (size: number) => string;
4
+ };
5
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1,6 @@
1
+ export type { TooltipOptions, CalculatedPosition } from './types';
2
+ export { SVG_ICONS } from './icons';
3
+ export { CLASS_NAMES } from './classNames';
4
+ export { MARGIN, DEFAULT_TOOLTIP_WIDTH, DEFAULT_TOOLTIP_HEIGHT, POSITION_PRIORITY, TOOLTIP_DEFAULT_VALUE, TOOLTIP_OFFSET, VIEWPORT_MARGIN, ICON_SIZES, TRANSITION_DURATION, OFFSCREEN_POSITION, OPACITY, POSITION, Z_INDEX, EVENT_OPTIONS, } from './constants';
5
+ export { CSS_TEMPLATES, HTML_TEMPLATES, FALLBACK_ICON_SVG } from './templates';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 툴팁 관련 CSS 및 HTML 템플릿
3
+ */
4
+ export declare const CSS_TEMPLATES: {
5
+ readonly LAYER_CONTAINER: (zIndex: number) => string;
6
+ readonly TOOLTIP_PANEL: (zIndex: number) => string;
7
+ readonly ANCHOR_WRAPPER: "\n display: inline-flex;\n vertical-align: middle;\n margin: 0 4px;\n ";
8
+ readonly SHADOW_DOM_HOST: "\n :host { \n all: unset; \n display: block; \n font-family: system-ui; \n color: black; \n }\n ";
9
+ };
10
+ export declare const HTML_TEMPLATES: {
11
+ readonly ICON_WRAPPER: (className: string, iconSvg: string) => string;
12
+ readonly TOOLTIP_TITLE: (className: string, title: string) => string;
13
+ readonly TOOLTIP_CONTENT: (className: string, content: string) => string;
14
+ readonly TOOLTIP_CONTENT_SHADOW: (className: string) => string;
15
+ };
16
+ export declare const FALLBACK_ICON_SVG: (size: number) => string;
17
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1,15 @@
1
+ export interface TooltipOptions {
2
+ tooltipType?: 'white' | 'black';
3
+ iconType?: 'stroke' | 'fill';
4
+ position?: 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'auto';
5
+ size?: 'sm' | 'md';
6
+ hideArrow?: boolean;
7
+ title?: string;
8
+ content?: string;
9
+ type?: 'long' | 'short';
10
+ zIndex?: number;
11
+ useShadowDOM?: boolean;
12
+ className?: string;
13
+ }
14
+ export type CalculatedPosition = 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { Tooltip } from './Tooltip';
2
+ export { Tooltip } from './Tooltip';
3
+ export type { TooltipOptions, CalculatedPosition } from './const';
4
+ export { calculateOptimalPosition } from './utils';
5
+ export { SVG_ICONS, MARGIN, DEFAULT_TOOLTIP_WIDTH, DEFAULT_TOOLTIP_HEIGHT, POSITION_PRIORITY } from './const';
6
+ export default Tooltip;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { CalculatedPosition } from './const';
2
+ export declare function calculateOptimalPosition(triggerElement: HTMLElement, tooltipElement: HTMLElement, preferredPosition?: string): CalculatedPosition;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1,108 @@
1
+ export interface RenderableOption {
2
+ id: string | number;
3
+ label: string;
4
+ disabled?: boolean;
5
+ selected?: boolean;
6
+ focused?: boolean;
7
+ }
8
+ export interface DropdownRenderConfig {
9
+ maxHeight: number;
10
+ size: 'xs' | 'sm' | 'md';
11
+ listboxId: string;
12
+ noResultsText?: string;
13
+ }
14
+ export interface OptionElementData {
15
+ element: HTMLLIElement;
16
+ option: RenderableOption;
17
+ index: number;
18
+ }
19
+ export declare class DOMRenderer {
20
+ private optionElementCache;
21
+ /**
22
+ * 드롭다운 컨테이너 생성 (구조만)
23
+ */
24
+ createDropdownStructure(config: DropdownRenderConfig): {
25
+ dropdown: HTMLDivElement;
26
+ content: HTMLDivElement;
27
+ optionsList: HTMLUListElement;
28
+ };
29
+ /**
30
+ * 단일 옵션 엘리먼트 생성 (재사용 가능)
31
+ */
32
+ createOptionElement(option: RenderableOption, index: number, config: DropdownRenderConfig): HTMLLIElement;
33
+ /**
34
+ * 옵션 엘리먼트 상태 업데이트 (DOM 조작 최소화)
35
+ */
36
+ updateOptionElement(element: HTMLLIElement, option: RenderableOption, index: number, config: DropdownRenderConfig): void;
37
+ /**
38
+ * "결과 없음" 엘리먼트 생성
39
+ */
40
+ createNoResultsElement(text?: string): HTMLLIElement;
41
+ /**
42
+ * 옵션 리스트 효율적 업데이트 (Differential Rendering)
43
+ */
44
+ updateOptionsList(container: HTMLUListElement, newOptions: RenderableOption[], config: DropdownRenderConfig, showNoResults?: boolean): HTMLLIElement[];
45
+ /**
46
+ * 컨테이너 자식 엘리먼트 효율적 업데이트
47
+ */
48
+ private updateContainerChildren;
49
+ /**
50
+ * 클래스 토글 (변경이 필요한 경우에만)
51
+ */
52
+ private toggleClass;
53
+ /**
54
+ * 입력 필드 생성 (InputFieldUtils에서 이동)
55
+ */
56
+ createInputField(config: {
57
+ placeholder?: string;
58
+ disabled?: boolean;
59
+ size?: 'xs' | 'sm' | 'md';
60
+ showSearchIcon?: boolean;
61
+ onInput?: (value: string) => void;
62
+ onClick?: () => void;
63
+ onShowAll?: () => void;
64
+ onClear?: () => void;
65
+ }): {
66
+ container: HTMLElement;
67
+ input: HTMLInputElement;
68
+ setValue: (value: string) => void;
69
+ focus: () => void;
70
+ blur: () => void;
71
+ };
72
+ /**
73
+ * 캐시 정리
74
+ */
75
+ clearCache(): void;
76
+ /**
77
+ * 특정 옵션 캐시 제거
78
+ */
79
+ removeCachedOption(optionId: string | number): void;
80
+ /**
81
+ * 공통 DOM 생성 유틸리티
82
+ */
83
+ static createElementWithClass(tagName: string, className: string, textContent?: string): HTMLElement;
84
+ /**
85
+ * 버튼 엘리먼트 생성
86
+ */
87
+ static createButton(className: string, textContent: string, onClick?: (e: Event) => void): HTMLButtonElement;
88
+ /**
89
+ * SVG 아이콘 생성
90
+ */
91
+ static createSvgIcon(iconName: string, size?: number): SVGElement;
92
+ /**
93
+ * 푸터 생성
94
+ */
95
+ createFooter(config: {
96
+ multiple?: boolean;
97
+ showFooterButtons?: boolean;
98
+ onSelectAll?: () => void;
99
+ onEdit?: () => void;
100
+ onComplete?: () => void;
101
+ selectAllButtonText?: string;
102
+ }): HTMLElement;
103
+ /**
104
+ * 전체 선택 버튼 텍스트 업데이트
105
+ */
106
+ updateSelectAllButtonText(footerElement: HTMLElement, text: string): void;
107
+ }
108
+ //# sourceMappingURL=DOMRenderer.d.ts.map
@@ -0,0 +1,158 @@
1
+ export interface DropdownOption {
2
+ id: string | number;
3
+ label: string;
4
+ disabled?: boolean;
5
+ originalValue?: string;
6
+ }
7
+ export interface DropdownState {
8
+ isOpen: boolean;
9
+ focusedIndex: number;
10
+ selectedValues: (string | number)[];
11
+ searchValue: string;
12
+ showAllItems: boolean;
13
+ options: DropdownOption[];
14
+ filteredOptions: DropdownOption[];
15
+ }
16
+ export interface StateChangeListener {
17
+ onStateChange(newState: DropdownState, changedFields: string[]): void;
18
+ }
19
+ /**
20
+ * 드롭다운 상태 관리 모델
21
+ * Observer Pattern을 통한 상태 변경 알림
22
+ */
23
+ export declare class DropdownModel {
24
+ private state;
25
+ private listeners;
26
+ protected multiple: boolean;
27
+ private isComboBox;
28
+ constructor(initialOptions: DropdownOption[], multiple?: boolean);
29
+ /**
30
+ * 상태 변경 리스너 등록
31
+ */
32
+ addListener(listener: StateChangeListener): void;
33
+ /**
34
+ * 상태 변경 리스너 제거
35
+ */
36
+ removeListener(listener: StateChangeListener): void;
37
+ /**
38
+ * 상태 변경 알림
39
+ */
40
+ private notifyListeners;
41
+ /**
42
+ * ComboBox 타입 설정
43
+ */
44
+ setComboBoxMode(isComboBox: boolean): void;
45
+ /**
46
+ * 드롭다운 열기/닫기
47
+ */
48
+ setOpen(isOpen: boolean): void;
49
+ /**
50
+ * 포커스 인덱스 설정
51
+ */
52
+ setFocusedIndex(index: number): void;
53
+ /**
54
+ * 검색어 설정 및 필터링
55
+ */
56
+ setSearchValue(searchValue: string): void;
57
+ /**
58
+ * 전체 보기 토글
59
+ */
60
+ setShowAllItems(showAll: boolean): void;
61
+ /**
62
+ * 선택된 값들을 직접 설정 (protected)
63
+ */
64
+ protected setSelectedValues(values: (string | number)[]): void;
65
+ /**
66
+ * 옵션 선택/해제
67
+ */
68
+ toggleOption(optionId: string | number): void;
69
+ /**
70
+ * 옵션 업데이트
71
+ */
72
+ updateOptions(newOptions: DropdownOption[]): void;
73
+ /**
74
+ * 필터링된 옵션 업데이트
75
+ */
76
+ private updateFilteredOptions;
77
+ /**
78
+ * 현재 상태 반환 (읽기 전용)
79
+ */
80
+ getState(): Readonly<DropdownState>;
81
+ /**
82
+ * 다중 선택 모드 여부 반환
83
+ */
84
+ isMultiple(): boolean;
85
+ /**
86
+ * 선택된 옵션들 반환
87
+ */
88
+ getSelectedOptions(): DropdownOption[];
89
+ /**
90
+ * 옵션이 선택되었는지 확인
91
+ */
92
+ isOptionSelected(optionId: string | number): boolean;
93
+ /**
94
+ * 전체 선택 상태인지 확인 (isAllItemsSelected와 동일)
95
+ */
96
+ isAllSelected(): boolean;
97
+ /**
98
+ * 상태 리셋
99
+ */
100
+ reset(): void;
101
+ /**
102
+ * 전체 선택/해제 토글 (MultiSelectUtils에서 이동)
103
+ */
104
+ toggleSelectAll(): void;
105
+ /**
106
+ * 전체 선택 버튼 텍스트 반환 (MultiSelectUtils에서 이동)
107
+ */
108
+ getSelectAllButtonText(): string;
109
+ /**
110
+ * 모든 항목이 선택되었는지 확인 (MultiSelectUtils에서 이동)
111
+ */
112
+ isAllItemsSelected(): boolean;
113
+ /**
114
+ * 검색 및 필터링 업데이트 (SearchFilterUtils에서 이동)
115
+ */
116
+ updateSearchAndFilter(searchValue: string, showAllItems?: boolean): void;
117
+ /**
118
+ * 검색어만 업데이트 (필터링 없이, API 모드용)
119
+ */
120
+ updateSearchValue(searchValue: string): void;
121
+ /**
122
+ * 드롭다운이 열릴 수 있는지 확인 (ComboBox용)
123
+ */
124
+ canOpenDropdown(): boolean;
125
+ /**
126
+ * 검색 결과가 없는지 확인
127
+ */
128
+ hasNoResults(): boolean;
129
+ /**
130
+ * 상태 동기화를 위한 외부 접근 메서드들 (DropdownUtils에서 이동)
131
+ */
132
+ syncSetIsOpen(isOpen: boolean): void;
133
+ syncSetFocusedIndex(index: number): void;
134
+ syncGetIsOpen(): boolean;
135
+ syncGetFocusedIndex(): number;
136
+ syncGetSelectedValues(): (string | number)[];
137
+ /**
138
+ * 선택값 업데이트 (SelectBoxModel에서 이동)
139
+ */
140
+ updateSelectedValues(values: (string | number)[]): void;
141
+ /**
142
+ * 값 설정 (API 호환성)
143
+ */
144
+ setValue(value: string | number | (string | number)[]): void;
145
+ /**
146
+ * 값 가져오기 (API 호환성)
147
+ */
148
+ getValue(): string | number | (string | number)[];
149
+ /**
150
+ * 입력 초기화 (ComboBox용)
151
+ */
152
+ clearInput(): void;
153
+ /**
154
+ * 디버그 정보 (개발용)
155
+ */
156
+ getDebugInfo(): any;
157
+ }
158
+ //# sourceMappingURL=DropdownModel.d.ts.map
@@ -0,0 +1,171 @@
1
+ import { DOMRenderer, DropdownRenderConfig } from './DOMRenderer';
2
+ import { DropdownModel, DropdownState, StateChangeListener } from './DropdownModel';
3
+ export interface SelectBoxControllerConfig {
4
+ triggerElement: HTMLElement;
5
+ dropdownElement: HTMLElement;
6
+ model: DropdownModel;
7
+ renderer: DOMRenderer;
8
+ renderConfig: DropdownRenderConfig;
9
+ onOpen?: () => void;
10
+ onClose?: () => void;
11
+ onSelectionChange?: (selectedValues: (string | number)[]) => void;
12
+ onSearch?: (searchValue: string) => void;
13
+ onScrollBottom?: () => void;
14
+ disabled?: boolean;
15
+ canToggle?: () => boolean;
16
+ type?: 'selectbox' | 'combobox';
17
+ }
18
+ /**
19
+ * SelectBox 통합 컨트롤러
20
+ * 이벤트 처리, UI 상태 제어, 사용자 인터랙션 담당
21
+ */
22
+ export declare class SelectBoxController implements StateChangeListener {
23
+ private config;
24
+ private isOpen;
25
+ private focusedIndex;
26
+ private isKeyboardNavigation;
27
+ private outsideClickHandler;
28
+ private keyDownHandler;
29
+ private scrollLockHandlers;
30
+ private optionElements;
31
+ private scrollPosition;
32
+ private mouseMoveHandlerAttached;
33
+ private lastFilteredOptionsCount;
34
+ private lastFilteredOptionsHash;
35
+ private scrollBottomHandler?;
36
+ private lastScrollBottomTime;
37
+ constructor(config: SelectBoxControllerConfig);
38
+ /**
39
+ * 상태 변경 리스너 (Observer Pattern)
40
+ */
41
+ onStateChange(newState: DropdownState, changedFields: string[]): void;
42
+ /**
43
+ * 이벤트 핸들러 설정
44
+ */
45
+ private setupEventHandlers;
46
+ /**
47
+ * 드롭다운 열기
48
+ */
49
+ open(): void;
50
+ /**
51
+ * 드롭다운 닫기
52
+ */
53
+ close(): void;
54
+ /**
55
+ * 드롭다운 토글
56
+ */
57
+ toggle(): void;
58
+ /**
59
+ * 키보드 입력 처리
60
+ */
61
+ private handleKeyDown;
62
+ /**
63
+ * 옵션 검색
64
+ */
65
+ private searchOption;
66
+ /**
67
+ * 드롭다운 표시/숨김 업데이트
68
+ */
69
+ private updateDropdownVisibility;
70
+ /**
71
+ * 옵션 표시 업데이트
72
+ */
73
+ private updateOptionsDisplay;
74
+ /**
75
+ * 포커스된 옵션 업데이트
76
+ */
77
+ private updateFocusedOption;
78
+ /**
79
+ * 옵션 클릭 이벤트 핸들러 등록
80
+ */
81
+ private attachOptionEventHandlers;
82
+ /**
83
+ * 옵션 이벤트 핸들러 제거
84
+ */
85
+ private removeOptionEventHandlers;
86
+ /**
87
+ * 옵션 업데이트가 필요한지 판단
88
+ */
89
+ private shouldUpdateOptions;
90
+ /**
91
+ * 외부 클릭 감지 활성화
92
+ */
93
+ private enableOutsideClick;
94
+ /**
95
+ * 외부 클릭 감지 비활성화
96
+ */
97
+ private disableOutsideClick;
98
+ /**
99
+ * 스크롤 잠금 활성화 (드롭다운 내부 스크롤은 허용)
100
+ * ComboBox 또는 multiple 모드에서는 스크롤 잠금 비활성화
101
+ */
102
+ private enableScrollLock;
103
+ /**
104
+ * 스크롤 가능한 부모 요소 찾기
105
+ */
106
+ private findScrollableParent;
107
+ /**
108
+ * 스크롤 잠금 해제
109
+ */
110
+ private disableScrollLock;
111
+ /**
112
+ * 마우스 호버 처리 (외부에서 호출용)
113
+ */
114
+ handleMouseHover(index: number): void;
115
+ /**
116
+ * 옵션 배열 업데이트
117
+ */
118
+ updateOptions(options: any[]): void;
119
+ getIsOpen(): boolean;
120
+ setFocus(index: number): void;
121
+ getFocusedIndex(): number;
122
+ /**
123
+ * DropdownUtils 호환을 위한 정적 팩토리 메서드
124
+ */
125
+ static createFromDropdownConfig(config: {
126
+ triggerElement: HTMLElement;
127
+ dropdownElement: HTMLElement;
128
+ onOpen?: () => void;
129
+ onClose?: () => void;
130
+ disabled?: boolean;
131
+ options?: any[];
132
+ onFocusChange?: (index: number) => void;
133
+ onOptionSelect?: (index: number) => void;
134
+ onKeyboardNavigation?: (isKeyboard: boolean) => void;
135
+ canToggle?: () => boolean;
136
+ }): SelectBoxController;
137
+ /**
138
+ * 드롭다운 위치 조정 (화면 크기에 따라 up/down 방향 결정)
139
+ * 단일 선택 모드에서만 적용
140
+ */
141
+ private adjustDropdownPosition;
142
+ /**
143
+ * 드롭다운 위치 계산 (React dropdownUtils.ts 로직 참고)
144
+ */
145
+ private calculateDropdownPosition;
146
+ /**
147
+ * 드롭다운 예상 높이 계산
148
+ */
149
+ private estimateDropdownHeight;
150
+ /**
151
+ * 드롭다운 세부 위치 조정 (뷰포트 경계 처리)
152
+ */
153
+ private adjustDropdownPositionDetails;
154
+ /**
155
+ * 스크롤 바닥 감지 활성화
156
+ */
157
+ private enableScrollBottomDetection;
158
+ /**
159
+ * 스크롤 바닥 감지 비활성화
160
+ */
161
+ private disableScrollBottomDetection;
162
+ /**
163
+ * disabled 상태 설정
164
+ */
165
+ setDisabled(disabled: boolean): void;
166
+ /**
167
+ * 정리
168
+ */
169
+ destroy(): void;
170
+ }
171
+ //# sourceMappingURL=SelectBoxController.d.ts.map