@ncds/ui-admin 1.6.3 → 1.6.4-alpha.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 (260) hide show
  1. package/mcp/bin/server.d.ts +1 -0
  2. package/mcp/bin/server.js +62 -0
  3. package/mcp/bin/server.mjs +14 -0
  4. package/mcp/bin/tools/getComponentHtml.d.ts +3 -0
  5. package/mcp/bin/tools/getComponentHtml.js +30 -0
  6. package/mcp/bin/tools/getComponentProps.d.ts +3 -0
  7. package/mcp/bin/tools/getComponentProps.js +16 -0
  8. package/mcp/bin/tools/listComponents.d.ts +3 -0
  9. package/mcp/bin/tools/listComponents.js +15 -0
  10. package/mcp/bin/tools/searchComponent.d.ts +3 -0
  11. package/mcp/bin/tools/searchComponent.js +20 -0
  12. package/mcp/bin/tools/validateHtml.d.ts +10 -0
  13. package/mcp/bin/tools/validateHtml.js +142 -0
  14. package/mcp/bin/types.d.ts +28 -0
  15. package/mcp/bin/types.js +5 -0
  16. package/mcp/bin/utils/dataLoader.d.ts +11 -0
  17. package/mcp/bin/utils/dataLoader.js +68 -0
  18. package/mcp/bin/utils/logger.d.ts +18 -0
  19. package/mcp/bin/utils/logger.js +27 -0
  20. package/mcp/bin/utils/response.d.ts +23 -0
  21. package/mcp/bin/utils/response.js +31 -0
  22. package/mcp/bin/version.d.ts +1 -0
  23. package/mcp/bin/version.js +4 -0
  24. package/mcp/data/.gitkeep +0 -0
  25. package/mcp/data/_meta.json +7 -0
  26. package/mcp/data/badge-group.json +73 -0
  27. package/mcp/data/badge.json +86 -0
  28. package/mcp/data/bread-crumb.json +22 -0
  29. package/mcp/data/breadcrumb.json +31 -0
  30. package/mcp/data/button-group.json +65 -0
  31. package/mcp/data/button.json +114 -0
  32. package/mcp/data/carousel-arrow.json +59 -0
  33. package/mcp/data/carousel-number-group.json +57 -0
  34. package/mcp/data/carousel.json +22 -0
  35. package/mcp/data/checkbox.json +31 -0
  36. package/mcp/data/combobox.json +114 -0
  37. package/mcp/data/date-picker.json +77 -0
  38. package/mcp/data/divider.json +56 -0
  39. package/mcp/data/dot.json +55 -0
  40. package/mcp/data/dropdown.json +81 -0
  41. package/mcp/data/empty-state.json +34 -0
  42. package/mcp/data/featured-icon.json +83 -0
  43. package/mcp/data/file-input.json +76 -0
  44. package/mcp/data/horizontal-tab.json +71 -0
  45. package/mcp/data/image-file-input.json +97 -0
  46. package/mcp/data/input.json +104 -0
  47. package/mcp/data/modal.json +85 -0
  48. package/mcp/data/notification.json +116 -0
  49. package/mcp/data/number-input.json +128 -0
  50. package/mcp/data/pagination.json +65 -0
  51. package/mcp/data/password-input.json +47 -0
  52. package/mcp/data/progress-bar.json +51 -0
  53. package/mcp/data/progress-circle.json +54 -0
  54. package/mcp/data/radio.json +31 -0
  55. package/mcp/data/range-date-picker-with-buttons.json +64 -0
  56. package/mcp/data/range-date-picker.json +55 -0
  57. package/mcp/data/select-dropdown.json +32 -0
  58. package/mcp/data/select.json +64 -0
  59. package/mcp/data/selectbox.json +129 -0
  60. package/mcp/data/slider.json +57 -0
  61. package/mcp/data/spinner.json +54 -0
  62. package/mcp/data/switch.json +71 -0
  63. package/mcp/data/tab.json +122 -0
  64. package/mcp/data/tag.json +66 -0
  65. package/mcp/data/textarea.json +88 -0
  66. package/mcp/data/toggle.json +59 -0
  67. package/mcp/data/tooltip.json +123 -0
  68. package/mcp/data/vertical-tab.json +64 -0
  69. package/mcp/templates/.mcp.json.example +8 -0
  70. package/mcp/templates/README.md +31 -0
  71. package/package.json +24 -3
  72. package/dist/cjs/assets/scripts/comboBox.js +0 -280
  73. package/dist/cjs/assets/scripts/datePicker.js +0 -706
  74. package/dist/cjs/assets/scripts/featuredIcon.js +0 -95
  75. package/dist/cjs/assets/scripts/fileInput/FileInput.js +0 -183
  76. package/dist/cjs/assets/scripts/fileInput/FileInputModel.js +0 -246
  77. package/dist/cjs/assets/scripts/fileInput/FileInputView.js +0 -455
  78. package/dist/cjs/assets/scripts/fileInput/const/classNames.js +0 -35
  79. package/dist/cjs/assets/scripts/fileInput/const/index.js +0 -27
  80. package/dist/cjs/assets/scripts/fileInput/const/types.js +0 -13
  81. package/dist/cjs/assets/scripts/fileInput/index.js +0 -44
  82. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInput.js +0 -187
  83. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputModel.js +0 -255
  84. package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputView.js +0 -354
  85. package/dist/cjs/assets/scripts/imageFileInput/const/classNames.js +0 -41
  86. package/dist/cjs/assets/scripts/imageFileInput/const/index.js +0 -27
  87. package/dist/cjs/assets/scripts/imageFileInput/const/types.js +0 -13
  88. package/dist/cjs/assets/scripts/imageFileInput/index.js +0 -44
  89. package/dist/cjs/assets/scripts/index.js +0 -30
  90. package/dist/cjs/assets/scripts/modal/Modal.js +0 -116
  91. package/dist/cjs/assets/scripts/modal/ModalActions.js +0 -128
  92. package/dist/cjs/assets/scripts/modal/ModalContent.js +0 -46
  93. package/dist/cjs/assets/scripts/modal/ModalHeader.js +0 -115
  94. package/dist/cjs/assets/scripts/modal/const/classNames.js +0 -41
  95. package/dist/cjs/assets/scripts/modal/const/index.js +0 -27
  96. package/dist/cjs/assets/scripts/modal/const/types.js +0 -5
  97. package/dist/cjs/assets/scripts/modal/index.js +0 -61
  98. package/dist/cjs/assets/scripts/modal/utils/contentUtils.js +0 -35
  99. package/dist/cjs/assets/scripts/notification/FloatingNotification.js +0 -180
  100. package/dist/cjs/assets/scripts/notification/FullWidthNotification.js +0 -120
  101. package/dist/cjs/assets/scripts/notification/MessageNotification.js +0 -146
  102. package/dist/cjs/assets/scripts/notification/Notification.js +0 -116
  103. package/dist/cjs/assets/scripts/notification/const/classNames.js +0 -50
  104. package/dist/cjs/assets/scripts/notification/const/icons.js +0 -45
  105. package/dist/cjs/assets/scripts/notification/const/index.js +0 -87
  106. package/dist/cjs/assets/scripts/notification/const/sizes.js +0 -54
  107. package/dist/cjs/assets/scripts/notification/const/types.js +0 -14
  108. package/dist/cjs/assets/scripts/notification/index.js +0 -92
  109. package/dist/cjs/assets/scripts/notification/utils.js +0 -92
  110. package/dist/cjs/assets/scripts/progress-bar/ProgressBar.js +0 -272
  111. package/dist/cjs/assets/scripts/progress-bar/index.js +0 -12
  112. package/dist/cjs/assets/scripts/selectBox.js +0 -319
  113. package/dist/cjs/assets/scripts/shared/ButtonCloseX.js +0 -46
  114. package/dist/cjs/assets/scripts/tab.js +0 -40
  115. package/dist/cjs/assets/scripts/tag/Tag.js +0 -268
  116. package/dist/cjs/assets/scripts/tag/const/classNames.js +0 -24
  117. package/dist/cjs/assets/scripts/tag/const/index.js +0 -38
  118. package/dist/cjs/assets/scripts/tag/const/sizes.js +0 -13
  119. package/dist/cjs/assets/scripts/tag/const/types.js +0 -5
  120. package/dist/cjs/assets/scripts/tag/index.js +0 -44
  121. package/dist/cjs/assets/scripts/tooltip/Tooltip.js +0 -380
  122. package/dist/cjs/assets/scripts/tooltip/TooltipLayerManager.js +0 -84
  123. package/dist/cjs/assets/scripts/tooltip/const/classNames.js +0 -29
  124. package/dist/cjs/assets/scripts/tooltip/const/constants.js +0 -56
  125. package/dist/cjs/assets/scripts/tooltip/const/icons.js +0 -15
  126. package/dist/cjs/assets/scripts/tooltip/const/index.js +0 -123
  127. package/dist/cjs/assets/scripts/tooltip/const/templates.js +0 -49
  128. package/dist/cjs/assets/scripts/tooltip/const/types.js +0 -5
  129. package/dist/cjs/assets/scripts/tooltip/index.js +0 -57
  130. package/dist/cjs/assets/scripts/tooltip/utils.js +0 -41
  131. package/dist/cjs/assets/scripts/utils/unifiedBox/DOMRenderer.js +0 -384
  132. package/dist/cjs/assets/scripts/utils/unifiedBox/DropdownModel.js +0 -368
  133. package/dist/cjs/assets/scripts/utils/unifiedBox/UnifiedBoxController.js +0 -681
  134. package/dist/cjs/assets/scripts/utils/unifiedBox/UnifiedBoxManager.js +0 -711
  135. package/dist/esm/assets/scripts/comboBox.js +0 -275
  136. package/dist/esm/assets/scripts/datePicker.js +0 -699
  137. package/dist/esm/assets/scripts/featuredIcon.js +0 -90
  138. package/dist/esm/assets/scripts/fileInput/FileInput.js +0 -178
  139. package/dist/esm/assets/scripts/fileInput/FileInputModel.js +0 -241
  140. package/dist/esm/assets/scripts/fileInput/FileInputView.js +0 -450
  141. package/dist/esm/assets/scripts/fileInput/const/classNames.js +0 -25
  142. package/dist/esm/assets/scripts/fileInput/const/index.js +0 -2
  143. package/dist/esm/assets/scripts/fileInput/const/types.js +0 -7
  144. package/dist/esm/assets/scripts/fileInput/index.js +0 -9
  145. package/dist/esm/assets/scripts/imageFileInput/ImageFileInput.js +0 -182
  146. package/dist/esm/assets/scripts/imageFileInput/ImageFileInputModel.js +0 -250
  147. package/dist/esm/assets/scripts/imageFileInput/ImageFileInputView.js +0 -349
  148. package/dist/esm/assets/scripts/imageFileInput/const/classNames.js +0 -30
  149. package/dist/esm/assets/scripts/imageFileInput/const/index.js +0 -2
  150. package/dist/esm/assets/scripts/imageFileInput/const/types.js +0 -7
  151. package/dist/esm/assets/scripts/imageFileInput/index.js +0 -9
  152. package/dist/esm/assets/scripts/index.js +0 -28
  153. package/dist/esm/assets/scripts/modal/Modal.js +0 -110
  154. package/dist/esm/assets/scripts/modal/ModalActions.js +0 -123
  155. package/dist/esm/assets/scripts/modal/ModalContent.js +0 -41
  156. package/dist/esm/assets/scripts/modal/ModalHeader.js +0 -110
  157. package/dist/esm/assets/scripts/modal/const/classNames.js +0 -31
  158. package/dist/esm/assets/scripts/modal/const/index.js +0 -2
  159. package/dist/esm/assets/scripts/modal/const/types.js +0 -1
  160. package/dist/esm/assets/scripts/modal/index.js +0 -15
  161. package/dist/esm/assets/scripts/modal/utils/contentUtils.js +0 -28
  162. package/dist/esm/assets/scripts/notification/FloatingNotification.js +0 -176
  163. package/dist/esm/assets/scripts/notification/FullWidthNotification.js +0 -115
  164. package/dist/esm/assets/scripts/notification/MessageNotification.js +0 -141
  165. package/dist/esm/assets/scripts/notification/Notification.js +0 -111
  166. package/dist/esm/assets/scripts/notification/const/classNames.js +0 -44
  167. package/dist/esm/assets/scripts/notification/const/icons.js +0 -39
  168. package/dist/esm/assets/scripts/notification/const/index.js +0 -4
  169. package/dist/esm/assets/scripts/notification/const/sizes.js +0 -48
  170. package/dist/esm/assets/scripts/notification/const/types.js +0 -8
  171. package/dist/esm/assets/scripts/notification/index.js +0 -11
  172. package/dist/esm/assets/scripts/notification/utils.js +0 -79
  173. package/dist/esm/assets/scripts/progress-bar/ProgressBar.js +0 -267
  174. package/dist/esm/assets/scripts/progress-bar/index.js +0 -1
  175. package/dist/esm/assets/scripts/selectBox.js +0 -314
  176. package/dist/esm/assets/scripts/shared/ButtonCloseX.js +0 -38
  177. package/dist/esm/assets/scripts/tab.js +0 -35
  178. package/dist/esm/assets/scripts/tag/Tag.js +0 -263
  179. package/dist/esm/assets/scripts/tag/const/classNames.js +0 -16
  180. package/dist/esm/assets/scripts/tag/const/index.js +0 -3
  181. package/dist/esm/assets/scripts/tag/const/sizes.js +0 -7
  182. package/dist/esm/assets/scripts/tag/const/types.js +0 -1
  183. package/dist/esm/assets/scripts/tag/index.js +0 -9
  184. package/dist/esm/assets/scripts/tooltip/Tooltip.js +0 -375
  185. package/dist/esm/assets/scripts/tooltip/TooltipLayerManager.js +0 -79
  186. package/dist/esm/assets/scripts/tooltip/const/classNames.js +0 -23
  187. package/dist/esm/assets/scripts/tooltip/const/constants.js +0 -50
  188. package/dist/esm/assets/scripts/tooltip/const/icons.js +0 -9
  189. package/dist/esm/assets/scripts/tooltip/const/index.js +0 -4
  190. package/dist/esm/assets/scripts/tooltip/const/templates.js +0 -42
  191. package/dist/esm/assets/scripts/tooltip/const/types.js +0 -1
  192. package/dist/esm/assets/scripts/tooltip/index.js +0 -10
  193. package/dist/esm/assets/scripts/tooltip/utils.js +0 -35
  194. package/dist/esm/assets/scripts/utils/unifiedBox/DOMRenderer.js +0 -379
  195. package/dist/esm/assets/scripts/utils/unifiedBox/DropdownModel.js +0 -363
  196. package/dist/esm/assets/scripts/utils/unifiedBox/UnifiedBoxController.js +0 -676
  197. package/dist/esm/assets/scripts/utils/unifiedBox/UnifiedBoxManager.js +0 -706
  198. package/dist/types/assets/scripts/comboBox.d.ts +0 -91
  199. package/dist/types/assets/scripts/datePicker.d.ts +0 -87
  200. package/dist/types/assets/scripts/featuredIcon.d.ts +0 -23
  201. package/dist/types/assets/scripts/fileInput/FileInput.d.ts +0 -67
  202. package/dist/types/assets/scripts/fileInput/FileInputModel.d.ts +0 -70
  203. package/dist/types/assets/scripts/fileInput/FileInputView.d.ts +0 -77
  204. package/dist/types/assets/scripts/fileInput/const/classNames.d.ts +0 -17
  205. package/dist/types/assets/scripts/fileInput/const/index.d.ts +0 -3
  206. package/dist/types/assets/scripts/fileInput/const/types.d.ts +0 -132
  207. package/dist/types/assets/scripts/fileInput/index.d.ts +0 -4
  208. package/dist/types/assets/scripts/imageFileInput/ImageFileInput.d.ts +0 -64
  209. package/dist/types/assets/scripts/imageFileInput/ImageFileInputModel.d.ts +0 -74
  210. package/dist/types/assets/scripts/imageFileInput/ImageFileInputView.d.ts +0 -80
  211. package/dist/types/assets/scripts/imageFileInput/const/classNames.d.ts +0 -20
  212. package/dist/types/assets/scripts/imageFileInput/const/index.d.ts +0 -3
  213. package/dist/types/assets/scripts/imageFileInput/const/types.d.ts +0 -126
  214. package/dist/types/assets/scripts/imageFileInput/index.d.ts +0 -4
  215. package/dist/types/assets/scripts/index.d.ts +0 -33
  216. package/dist/types/assets/scripts/modal/Modal.d.ts +0 -28
  217. package/dist/types/assets/scripts/modal/ModalActions.d.ts +0 -19
  218. package/dist/types/assets/scripts/modal/ModalContent.d.ts +0 -14
  219. package/dist/types/assets/scripts/modal/ModalHeader.d.ts +0 -16
  220. package/dist/types/assets/scripts/modal/const/classNames.d.ts +0 -23
  221. package/dist/types/assets/scripts/modal/const/index.d.ts +0 -3
  222. package/dist/types/assets/scripts/modal/const/types.d.ts +0 -62
  223. package/dist/types/assets/scripts/modal/index.d.ts +0 -8
  224. package/dist/types/assets/scripts/modal/utils/contentUtils.d.ts +0 -11
  225. package/dist/types/assets/scripts/notification/FloatingNotification.d.ts +0 -25
  226. package/dist/types/assets/scripts/notification/FullWidthNotification.d.ts +0 -22
  227. package/dist/types/assets/scripts/notification/MessageNotification.d.ts +0 -23
  228. package/dist/types/assets/scripts/notification/Notification.d.ts +0 -22
  229. package/dist/types/assets/scripts/notification/const/classNames.d.ts +0 -44
  230. package/dist/types/assets/scripts/notification/const/icons.d.ts +0 -26
  231. package/dist/types/assets/scripts/notification/const/index.d.ts +0 -6
  232. package/dist/types/assets/scripts/notification/const/sizes.d.ts +0 -33
  233. package/dist/types/assets/scripts/notification/const/types.d.ts +0 -20
  234. package/dist/types/assets/scripts/notification/index.d.ts +0 -8
  235. package/dist/types/assets/scripts/notification/utils.d.ts +0 -9
  236. package/dist/types/assets/scripts/progress-bar/ProgressBar.d.ts +0 -68
  237. package/dist/types/assets/scripts/progress-bar/index.d.ts +0 -2
  238. package/dist/types/assets/scripts/selectBox.d.ts +0 -77
  239. package/dist/types/assets/scripts/shared/ButtonCloseX.d.ts +0 -6
  240. package/dist/types/assets/scripts/tab.d.ts +0 -8
  241. package/dist/types/assets/scripts/tag/Tag.d.ts +0 -28
  242. package/dist/types/assets/scripts/tag/const/classNames.d.ts +0 -12
  243. package/dist/types/assets/scripts/tag/const/index.d.ts +0 -4
  244. package/dist/types/assets/scripts/tag/const/sizes.d.ts +0 -8
  245. package/dist/types/assets/scripts/tag/const/types.d.ts +0 -34
  246. package/dist/types/assets/scripts/tag/index.d.ts +0 -4
  247. package/dist/types/assets/scripts/tooltip/Tooltip.d.ts +0 -55
  248. package/dist/types/assets/scripts/tooltip/TooltipLayerManager.d.ts +0 -22
  249. package/dist/types/assets/scripts/tooltip/const/classNames.d.ts +0 -18
  250. package/dist/types/assets/scripts/tooltip/const/constants.d.ts +0 -34
  251. package/dist/types/assets/scripts/tooltip/const/icons.d.ts +0 -5
  252. package/dist/types/assets/scripts/tooltip/const/index.d.ts +0 -6
  253. package/dist/types/assets/scripts/tooltip/const/templates.d.ts +0 -17
  254. package/dist/types/assets/scripts/tooltip/const/types.d.ts +0 -15
  255. package/dist/types/assets/scripts/tooltip/index.d.ts +0 -7
  256. package/dist/types/assets/scripts/tooltip/utils.d.ts +0 -3
  257. package/dist/types/assets/scripts/utils/unifiedBox/DOMRenderer.d.ts +0 -108
  258. package/dist/types/assets/scripts/utils/unifiedBox/DropdownModel.d.ts +0 -158
  259. package/dist/types/assets/scripts/utils/unifiedBox/UnifiedBoxController.d.ts +0 -171
  260. package/dist/types/assets/scripts/utils/unifiedBox/UnifiedBoxManager.d.ts +0 -99
@@ -1,108 +0,0 @@
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
@@ -1,158 +0,0 @@
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
@@ -1,171 +0,0 @@
1
- import { DOMRenderer, DropdownRenderConfig } from './DOMRenderer';
2
- import { DropdownModel, DropdownState, StateChangeListener } from './DropdownModel';
3
- export interface UnifiedBoxControllerConfig {
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 UnifiedBoxController 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: UnifiedBoxControllerConfig);
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
- }): UnifiedBoxController;
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=UnifiedBoxController.d.ts.map
@@ -1,99 +0,0 @@
1
- import { OptionValue } from '../../../../src/types';
2
- import { DropdownOption } from './DropdownModel';
3
- export interface UnifiedBoxManagerConfig {
4
- options?: DropdownOption[];
5
- placeholder?: string;
6
- value?: OptionValue;
7
- onChange?: (value: OptionValue) => void;
8
- onSearch?: (searchValue: string) => void | Promise<void>;
9
- onEdit?: () => void;
10
- onSelectAll?: () => void;
11
- onSearchAll?: () => void;
12
- onComplete?: () => void;
13
- onScrollBottom?: () => void;
14
- searchDebounceMs?: number;
15
- maxHeight?: number;
16
- disabled?: boolean;
17
- size?: 'xs' | 'sm' | 'md';
18
- multiple?: boolean;
19
- showFooterButtons?: boolean;
20
- label?: string;
21
- required?: boolean;
22
- type?: 'selectbox' | 'combobox';
23
- }
24
- /**
25
- * 통합된 UnifiedBox 클래스
26
- * SelectBox와 ComboBox의 기능을 모두 포함
27
- */
28
- export declare class UnifiedBoxManager {
29
- private element;
30
- private config;
31
- private model;
32
- private renderer;
33
- private controller;
34
- private inputField?;
35
- private searchDebounceTimer?;
36
- private currentDebounceTimerId?;
37
- private lastSearchValue;
38
- private hasInitialOptions;
39
- private dropdownElement?;
40
- private triggerElement?;
41
- private footerElement?;
42
- private arrowElement?;
43
- constructor(element: HTMLElement, config?: UnifiedBoxManagerConfig);
44
- private initialize;
45
- private setupElementClasses;
46
- private createUI;
47
- private createComboBoxUI;
48
- private createSelectBoxUI;
49
- private createDropdown;
50
- private setupController;
51
- /**
52
- * 디바운싱 타이머 취소
53
- */
54
- private cancelDebounceTimer;
55
- private handleInput;
56
- private handleInputClick;
57
- private handleClearInput;
58
- private handleShowAll;
59
- private handleSelectionChange;
60
- private updateSelectBoxValue;
61
- private canToggleDropdown;
62
- private handleSelectAll;
63
- private handleComplete;
64
- private updateSelectAllButtonText;
65
- getValues(): DropdownOption[];
66
- getOptions(): DropdownOption[];
67
- setValues(value: DropdownOption[]): void;
68
- updateOptions(newOptions: DropdownOption[]): void;
69
- setDisabled(disabled: boolean): void;
70
- open(): void;
71
- close(): void;
72
- focus(): void;
73
- destroy(): void;
74
- selectAll(): void;
75
- deselectAll(): void;
76
- isMultiple(): boolean;
77
- toggleSelectAll(): void;
78
- getDebugInfo(): {
79
- config: UnifiedBoxManagerConfig;
80
- modelState: any;
81
- isOpen: boolean;
82
- };
83
- /**
84
- * 드롭다운을 스크롤의 바닥으로 이동
85
- * 전체 선택 시 추가 데이터 로드를 트리거하기 위해 사용
86
- */
87
- scrollToBottom(): void;
88
- /**
89
- * 전체 선택 버튼의 텍스트를 외부에서 변경
90
- * @param text 버튼에 표시할 텍스트
91
- */
92
- setSelectAllButtonText(text: string): void;
93
- /**
94
- * 특정 인덱스의 옵션으로 포커스 이동
95
- * @param index 포커스를 이동할 옵션의 인덱스
96
- */
97
- setFocusIndex(index: number): void;
98
- }
99
- //# sourceMappingURL=UnifiedBoxManager.d.ts.map