@axboot-mcp/mcp-server 1.0.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 (78) hide show
  1. package/CLAUDE.md +119 -0
  2. package/MCP_TOOL_PLAN.md +710 -0
  3. package/MCP_USAGE.md +914 -0
  4. package/README.md +168 -0
  5. package/REPOSITORY_CONVENTIONS.md +250 -0
  6. package/SEARCH_PARAMS_MCP_TOOL_COMPLETE_PLAN.md +646 -0
  7. package/SEARCH_PARAMS_PLAN.md +2570 -0
  8. package/STORE_PATTERNS.md +1178 -0
  9. package/debug-dto.js +72 -0
  10. package/generate-banner-store.js +62 -0
  11. package/generation-plan.json +2176 -0
  12. package/generation-results.json +1817 -0
  13. package/package.json +45 -0
  14. package/scripts/batch-generate-all.js +159 -0
  15. package/scripts/batch-generate-mcp.js +329 -0
  16. package/scripts/batch-generate-stores-v2.js +272 -0
  17. package/scripts/batch-generate-stores.js +179 -0
  18. package/scripts/batch-plan.json +3810 -0
  19. package/scripts/batch-process.py +90 -0
  20. package/scripts/batch-regenerate.js +356 -0
  21. package/scripts/direct-generate.js +227 -0
  22. package/scripts/execute-batches.js +1911 -0
  23. package/scripts/generate-all-stores.js +144 -0
  24. package/scripts/generate-stores-mcp.js +161 -0
  25. package/scripts/generate-stores-v2.js +450 -0
  26. package/scripts/generate-stores-v3.js +412 -0
  27. package/scripts/generate-stores-v4.js +521 -0
  28. package/scripts/generate-stores.js +382 -0
  29. package/scripts/repos-to-process.json +1899 -0
  30. package/src/config/nh-layout-patterns.ts +166 -0
  31. package/src/docs/HOOK_GENERATION_PLAN.md +2226 -0
  32. package/src/docs/NH_STORE_PATTERNS.md +297 -0
  33. package/src/docs/README.md +216 -0
  34. package/src/docs/index.ts +28 -0
  35. package/src/docs/loader.ts +568 -0
  36. package/src/docs/patterns.json +419 -0
  37. package/src/docs/practical-examples.md +732 -0
  38. package/src/docs/quick-start.md +257 -0
  39. package/src/docs/requirements-analysis-guide.md +364 -0
  40. package/src/docs/rules.json +321 -0
  41. package/src/docs/store-pattern-analysis.md +664 -0
  42. package/src/docs/store-patterns-rules.md +1168 -0
  43. package/src/docs/store-patterns-usage-guide.md +1835 -0
  44. package/src/docs/troubleshooting.md +544 -0
  45. package/src/docs/type-selection-guide.md +572 -0
  46. package/src/docs//354/202/254/354/232/251/353/262/225/AntD-/354/273/264/355/217/254/353/204/214/355/212/270-/354/202/254/354/232/251/353/262/225.md +1515 -0
  47. package/src/docs//354/202/254/354/232/251/353/262/225/DataGrid-/354/202/254/354/232/251/353/262/225.md +866 -0
  48. package/src/docs//354/202/254/354/232/251/353/262/225/FormItem-/354/202/254/354/232/251/353/262/225.md +903 -0
  49. package/src/docs//354/202/254/354/232/251/353/262/225/FormModal-/354/202/254/354/232/251/353/262/225.md +1155 -0
  50. package/src/docs//354/202/254/354/232/251/353/262/225/MCP-/353/260/224/354/235/264/353/270/214/354/275/224/353/224/251-/352/260/200/354/235/264/353/223/234.md +1133 -0
  51. package/src/docs//354/202/254/354/232/251/353/262/225/MSW-Mock-/353/215/260/354/235/264/355/204/260-/354/202/254/354/232/251/353/262/225.md +579 -0
  52. package/src/docs//354/202/254/354/232/251/353/262/225/Search-/354/273/264/355/217/254/353/204/214/355/212/270-/354/202/254/354/232/251/353/262/225.md +738 -0
  53. package/src/docs//354/202/254/354/232/251/353/262/225/Store-/355/214/250/355/204/264-/354/202/254/354/232/251/353/262/225.md +1135 -0
  54. package/src/docs//354/202/254/354/232/251/353/262/225//355/231/224/353/251/264/352/265/254/354/204/261-/355/203/200/354/236/205/353/263/204-/352/260/234/353/260/234/354/210/234/354/204/234.md +1805 -0
  55. package/src/docs//354/202/254/354/232/251/353/262/225//355/231/224/353/251/264/355/203/200/354/236/205/353/263/204-/352/260/234/353/260/234-/355/224/204/353/241/254/355/224/204/355/212/270-/352/260/200/354/235/264/353/223/234.md +946 -0
  56. package/src/docs//354/202/254/354/232/251/353/262/225//355/231/225/354/236/245/355/231/224/353/251/264/355/203/200/354/236/205/353/263/204-/354/203/201/354/204/270-/355/224/204/353/241/254/355/224/204/355/212/270/352/260/200/354/235/264/353/223/234.md +2422 -0
  57. package/src/features/store-features.ts +232 -0
  58. package/src/handlers/analyze-requirements.ts +403 -0
  59. package/src/handlers/analyze.ts +1373 -0
  60. package/src/handlers/generate-from-requirements.ts +250 -0
  61. package/src/handlers/generate-hook.ts +950 -0
  62. package/src/handlers/generate-interactive.ts +840 -0
  63. package/src/handlers/generate-listdatagrid.ts +521 -0
  64. package/src/handlers/generate-multi-stores.ts +577 -0
  65. package/src/handlers/generate-requirements-from-layout.ts +160 -0
  66. package/src/handlers/generate-search-params.ts +717 -0
  67. package/src/handlers/generate.ts +911 -0
  68. package/src/handlers/list-templates.ts +104 -0
  69. package/src/handlers/scan-metadata.ts +485 -0
  70. package/src/handlers/suggest-layout.ts +326 -0
  71. package/src/index.ts +959 -0
  72. package/src/prompts/search-params.md +793 -0
  73. package/src/templates/index.ts +107 -0
  74. package/src/templates/unified.ts +462 -0
  75. package/store-generation-error-patterns.md +225 -0
  76. package/test/useAgentStore.ts +136 -0
  77. package/test-server.js +78 -0
  78. package/tsconfig.json +20 -0
@@ -0,0 +1,419 @@
1
+ {
2
+ "storeTypes": {
3
+ "1": {
4
+ "name": "Basic List",
5
+ "description": "단순 조회 페이지",
6
+ "examples": ["useDepartmentStore.ts", "useKdhFinancialHighlightsStore.ts"],
7
+ "metadata": {
8
+ "required": ["programFn", "listRequestValue", "listColWidths", "listSortParams"],
9
+ "optional": []
10
+ },
11
+ "states": {
12
+ "required": ["routePath", "listSpinning", "listData", "listPage"],
13
+ "optional": []
14
+ },
15
+ "actions": {
16
+ "required": ["syncMetadata", "onMountApp", "setListRequestValue", "setListColWidths", "setListSpinning", "setListSortParams", "callListApi", "changeListPage"],
17
+ "optional": []
18
+ },
19
+ "subscribePattern": {
20
+ "selector": ["programFn", "listSortParams", "listRequestValue", "listColWidths"]
21
+ }
22
+ },
23
+ "2": {
24
+ "name": "List + Excel",
25
+ "description": "조회 + 엑셀 다운로드",
26
+ "examples": ["useProductReviewStore.ts", "useProductQnaAnswerTemplateStore.ts", "useBenefitMileageHistoryStore.ts"],
27
+ "extends": "1",
28
+ "metadata": {
29
+ "required": ["programFn", "listRequestValue", "listColWidths", "listSortParams"],
30
+ "optional": []
31
+ },
32
+ "states": {
33
+ "required": ["routePath", "listSpinning", "listData", "listPage"],
34
+ "optional": ["excelSpinning"]
35
+ },
36
+ "actions": {
37
+ "required": ["syncMetadata", "onMountApp", "setListRequestValue", "setListColWidths", "setListSpinning", "setListSortParams", "callListApi", "changeListPage"],
38
+ "optional": ["setExcelSpinning", "callExcelDownloadApi"]
39
+ },
40
+ "subscribePattern": {
41
+ "selector": ["programFn", "listSortParams", "listRequestValue", "listColWidths"]
42
+ }
43
+ },
44
+ "3": {
45
+ "name": "List + Detail/Form",
46
+ "description": "조회 + 상세보기/편집",
47
+ "examples": ["useMemberListStore.ts", "useBenefitCouponStore.ts", "useBenefitEventStore.ts"],
48
+ "metadata": {
49
+ "required": ["programFn", "listRequestValue", "listColWidths", "listSortParams", "saveRequestValue"],
50
+ "optional": []
51
+ },
52
+ "states": {
53
+ "required": ["routePath", "listSpinning", "listData", "listPage"],
54
+ "optional": ["selectedItem", "detailLoading", "checkedRowKeys"]
55
+ },
56
+ "actions": {
57
+ "required": ["syncMetadata", "onMountApp", "setListRequestValue", "setListColWidths", "setListSpinning", "setListSortParams", "callListApi", "changeListPage"],
58
+ "optional": ["setSelectedItem", "setSaveRequestValue", "setCheckedRowKeys"]
59
+ },
60
+ "subscribePattern": {
61
+ "selector": ["programFn", "listSortParams", "listRequestValue", "listColWidths", "saveRequestValue"]
62
+ }
63
+ },
64
+ "4": {
65
+ "name": "Master-Detail",
66
+ "description": "마스터 리스트 선택 시 디테일 표시",
67
+ "examples": ["useProductMasterStore.ts", "useOrderPaymentAllStore.ts", "useOrderClaimReturnStore.ts"],
68
+ "metadata": {
69
+ "required": ["programFn", "listRequestValue", "listColWidths", "listSortParams", "listSelectedRowKey"],
70
+ "optional": ["listCheckedIndexes"]
71
+ },
72
+ "states": {
73
+ "required": ["routePath", "listSpinning", "listData", "listPage", "checkedRowKeys"],
74
+ "optional": []
75
+ },
76
+ "actions": {
77
+ "required": ["syncMetadata", "onMountApp", "setListRequestValue", "setListColWidths", "setListSpinning", "setListSortParams", "callListApi", "changeListPage"],
78
+ "optional": ["setListSelectedRowKey", "setCheckedRowKeys", "setListCheckedIndexes"]
79
+ },
80
+ "subscribePattern": {
81
+ "selector": ["programFn", "listSortParams", "listRequestValue", "listColWidths", "listSelectedRowKey", "listCheckedIndexes"]
82
+ }
83
+ },
84
+ "5": {
85
+ "name": "CRUD",
86
+ "description": "전체 기능 (생성, 조회, 수정, 삭제)",
87
+ "examples": ["useSystemBbsStore.ts"],
88
+ "metadata": {
89
+ "required": ["programFn", "listRequestValue", "listColWidths", "listSortParams", "listSelectedRowKey", "flexGrow", "saveRequestValue", "detail", "formActive", "listCheckedKeys"],
90
+ "optional": []
91
+ },
92
+ "states": {
93
+ "required": ["routePath", "listSpinning", "listData", "listPage"],
94
+ "optional": ["saveSpinning", "detailSpinning", "deleteSpinning"]
95
+ },
96
+ "actions": {
97
+ "required": ["syncMetadata", "onMountApp", "setListRequestValue", "setListColWidths", "setListSpinning", "setListSortParams", "callListApi", "changeListPage"],
98
+ "optional": ["setListSelectedRowKey", "setSaveRequestValue", "setSaveSpinning", "callSaveApi", "callDeleteApi", "cancelFormActive", "setFormActive", "setListCheckedKeys", "setFlexGrow"]
99
+ },
100
+ "subscribePattern": {
101
+ "selector": ["programFn", "listSortParams", "listRequestValue", "listColWidths", "listSelectedRowKey", "flexGrow", "saveRequestValue", "detail", "formActive", "listCheckedKeys"]
102
+ }
103
+ },
104
+ "6": {
105
+ "name": "Tree + Form",
106
+ "description": "트리 구조 + 선택된 항목 편집",
107
+ "examples": ["useProductCategoryStore.ts", "useDisplayGnbMenuStore.ts"],
108
+ "metadata": {
109
+ "required": ["programFn", "listRequestValue", "flexGrow", "selectedItem", "saveRequestValues", "expandedKeys"],
110
+ "optional": ["categorySearch"]
111
+ },
112
+ "states": {
113
+ "required": ["routePath", "treeSpinning", "treeData", "saveSpinning", "isDirty", "isFormDirty"],
114
+ "optional": []
115
+ },
116
+ "actions": {
117
+ "required": ["syncMetadata", "onMountApp", "setListRequestValue", "setFlexGrow", "callTreeApi", "setSelectedItem", "setTreeData", "setExpandedKeys", "setSaveRequestValues"],
118
+ "optional": ["setCategorySearch", "callTreeSaveApi", "setIsDirty"]
119
+ },
120
+ "subscribePattern": {
121
+ "selector": ["programFn", "flexGrow", "selectedItem", "saveRequestValues", "expandedKeys", "listRequestValue", "categorySearch"]
122
+ }
123
+ },
124
+ "7": {
125
+ "name": "Dashboard",
126
+ "description": "여러 데이터 요약 + 여러 리스트",
127
+ "examples": ["useMemberDashboardStore.ts", "useBenefitProductStore.ts", "useDisplayMainStore.ts"],
128
+ "metadata": {
129
+ "required": ["programFn", "summaryRequestValue", "listRequest01Value", "listRequest02Value", "activeTabKey", "list01SortParams", "list02SortParams"],
130
+ "optional": []
131
+ },
132
+ "states": {
133
+ "required": ["routePath", "spinning", "summaryData", "list01Data", "list01Page", "list02Data", "list02Page"],
134
+ "optional": ["summarySpinning", "list01Spinning", "list02Spinning"]
135
+ },
136
+ "actions": {
137
+ "required": ["syncMetadata", "onMountApp", "callSummaryApi", "callList01Api", "callList02Api", "setRequestValue", "setRequest01Value", "setRequest02Value", "setActiveTabKey", "setList01SortParams", "setList02SortParams", "changeList01Page", "changeList02Page", "setListSpinning"],
138
+ "optional": []
139
+ },
140
+ "subscribePattern": {
141
+ "selector": ["programFn", "summaryRequestValue", "listRequest01Value", "listRequest02Value", "activeTabKey", "list01SortParams", "list02SortParams"]
142
+ }
143
+ },
144
+ "8": {
145
+ "name": "Modal Based",
146
+ "description": "리스트 + 모달로 상세/작업",
147
+ "examples": ["useB2BProductStore.ts", "useB2BEstimateConsultingStore.ts"],
148
+ "metadata": {
149
+ "required": ["programFn", "listRequestValue", "listColWidths", "listSortParams", "listSelectedRowKey"],
150
+ "optional": ["listCheckedIndexes"]
151
+ },
152
+ "states": {
153
+ "required": ["routePath", "listSpinning", "listData", "listPage", "selectedItem", "detail", "checkedRowKeys", "detailSpinning", "deleteSpinning"],
154
+ "optional": ["modalOpen", "excelSpinning"]
155
+ },
156
+ "actions": {
157
+ "required": ["syncMetadata", "onMountApp", "setListRequestValue", "setListColWidths", "setListSpinning", "setListSortParams", "callListApi", "changeListPage"],
158
+ "optional": ["setDetail", "setModalOpen", "callDeleteApi", "callExcelDownloadApi"]
159
+ },
160
+ "subscribePattern": {
161
+ "selector": ["programFn", "listSortParams", "listRequestValue", "listColWidths", "listSelectedRowKey", "listCheckedIndexes"]
162
+ }
163
+ },
164
+ "9": {
165
+ "name": "Status Change",
166
+ "description": "다중 선택 후 일괄 상태 변경",
167
+ "examples": ["useProductSingleStore.ts", "useProductPackageStore.ts"],
168
+ "metadata": {
169
+ "required": ["programFn", "listRequestValue", "listColWidths", "listSortParams", "listSelectedRowKey"],
170
+ "optional": ["listCheckedIndexes"]
171
+ },
172
+ "states": {
173
+ "required": ["routePath", "listSpinning", "listData", "listPage", "selectedItem", "checkedRowKeys"],
174
+ "optional": ["updateSpinning", "deleteSpinning", "copySpinning"]
175
+ },
176
+ "actions": {
177
+ "required": ["syncMetadata", "onMountApp", "setListRequestValue", "setListColWidths", "setListSpinning", "setListSortParams", "callListApi", "changeListPage"],
178
+ "optional": ["callChangeStatusApi", "callDeleteApi", "callDataCopyApi"]
179
+ },
180
+ "subscribePattern": {
181
+ "selector": ["programFn", "listSortParams", "listRequestValue", "listColWidths", "listSelectedRowKey", "listCheckedIndexes"]
182
+ }
183
+ },
184
+ "10": {
185
+ "name": "Fixed Value Based",
186
+ "description": "bbsNo, cntntsBbsKncd 등 고정값이 필요한 페이지",
187
+ "examples": ["useKdhFinancialHighlightsStore.ts", "useCsManualStore.ts"],
188
+ "metadata": {
189
+ "required": ["programFn", "listRequestValue", "listColWidths", "listSortParams"],
190
+ "optional": []
191
+ },
192
+ "states": {
193
+ "required": ["routePath", "listSpinning", "listData", "listPage"],
194
+ "optional": ["bbsNo", "cntntsBbsKncd", "reprtTpcd", "langKncd"]
195
+ },
196
+ "actions": {
197
+ "required": ["syncMetadata", "onMountApp", "setListRequestValue", "setListColWidths", "setListSpinning", "setListSortParams", "callListApi", "changeListPage"],
198
+ "optional": []
199
+ },
200
+ "subscribePattern": {
201
+ "selector": ["programFn", "listSortParams", "listRequestValue", "listColWidths"]
202
+ }
203
+ },
204
+ "11": {
205
+ "name": "Display Form",
206
+ "description": "메인 전시 관리 등 폼 기반 구성",
207
+ "examples": ["useDisplayMainStore.ts"],
208
+ "metadata": {
209
+ "required": ["programFn", "listColWidths", "listSortParams", "flexGrow", "activeTabId", "mdiaClcd", "formValues", "formValueChanged"],
210
+ "optional": ["selectedSctnTpcd"]
211
+ },
212
+ "states": {
213
+ "required": ["routePath", "spinning"],
214
+ "optional": []
215
+ },
216
+ "actions": {
217
+ "required": ["syncMetadata", "onMountApp", "setListColWidths", "setListSortParams", "setFlexGrow", "setListColWidths", "setListSortParams"],
218
+ "optional": ["callDetailApi", "callConfirmApi", "setFormValues", "setActiveTabId", "setMdiaClcd", "setDspySortArray", "deleteSctnBanner", "setSelectedSctnTpcd"]
219
+ },
220
+ "subscribePattern": {
221
+ "selector": ["programFn", "listColWidths", "listSortParams", "activeTabId", "mdiaClcd", "flexGrow", "formValues", "formValueChanged", "selectedSctnTpcd"]
222
+ }
223
+ },
224
+ "12": {
225
+ "name": "Terms/Policy",
226
+ "description": "약관, 정책 등 상세 내용 저장",
227
+ "examples": ["useSystemTermsConditionsStore.ts"],
228
+ "metadata": {
229
+ "required": ["programFn", "listRequestValue", "listColWidths", "listSortParams", "detail"],
230
+ "optional": []
231
+ },
232
+ "states": {
233
+ "required": ["routePath", "listSpinning", "listData", "listPage"],
234
+ "optional": []
235
+ },
236
+ "actions": {
237
+ "required": ["syncMetadata", "onMountApp", "setListRequestValue", "setListColWidths", "setListSpinning", "setListSortParams", "callListApi", "changeListPage"],
238
+ "optional": []
239
+ },
240
+ "subscribePattern": {
241
+ "selector": ["programFn", "listSortParams", "listRequestValue", "listColWidths", "detail"]
242
+ }
243
+ }
244
+ },
245
+ "fields": {
246
+ "metadata": {
247
+ "programFn": { "type": "ProgramFn | null", "description": "프로그램 함수 참조", "required": true, "position": 1 },
248
+ "listRequestValue": { "type": "ListRequest", "description": "리스트 요청값", "required": true, "group": "list" },
249
+ "listColWidths": { "type": "number[]", "description": "컬럼 너비 배열", "required": true, "group": "list", "defaultValue": "[]" },
250
+ "listSortParams": { "type": "AXDGSortParam[]", "description": "정렬 파라미터", "required": true, "group": "list", "defaultValue": "[]" },
251
+ "saveRequestValue": { "type": "SaveRequest", "description": "저장/상세 요청값", "required": false, "group": "form" },
252
+ "selectedItem": { "type": "DtoItem | null", "description": "선택된 아이템", "required": false, "group": "selection" },
253
+ "listSelectedRowKey": { "type": "React.Key | null", "description": "선택된 행 키", "required": false, "group": "selection", "defaultValue": "\"\"" },
254
+ "listCheckedIndexes": { "type": "number[] | null", "description": "체크된 인덱스 목록", "required": false, "group": "selection" },
255
+ "checkedRowKeys": { "type": "React.Key[]", "description": "체크된 행 키 목록", "required": false, "group": "selection", "defaultValue": "[]" },
256
+ "listCheckedKeys": { "type": "React.Key[]", "description": "체크된 키 목록", "required": false, "group": "selection", "defaultValue": "[]" },
257
+ "flexGrow": { "type": "number", "description": "플렉스 성장 비율", "required": false, "group": "layout", "defaultValue": "400" },
258
+ "detail": { "type": "SaveRequest | null", "description": "상세 데이터", "required": false, "group": "form" },
259
+ "formActive": { "type": "boolean", "description": "폼 활성화 상태", "required": false, "group": "form", "defaultValue": "false" },
260
+ "activeTabKey": { "type": "string", "description": "활성 탭 키", "required": false, "group": "tab" },
261
+ "activeTabId": { "type": "ActiveTabId", "description": "활성 탭 ID", "required": false, "group": "tab" },
262
+ "summaryRequestValue": { "type": "SummaryRequest", "description": "요약 요청값", "required": false, "group": "dashboard" },
263
+ "listRequest01Value": { "type": "ListRequest01", "description": "리스트1 요청값", "required": false, "group": "multi-list" },
264
+ "listRequest02Value": { "type": "ListRequest02", "description": "리스트2 요청값", "required": false, "group": "multi-list" },
265
+ "list01SortParams": { "type": "AXDGSortParam[]", "description": "리스트1 정렬", "required": false, "group": "multi-list" },
266
+ "list02SortParams": { "type": "AXDGSortParam[]", "description": "리스트2 정렬", "required": false, "group": "multi-list" },
267
+ "expandedKeys": { "type": "number[] | string[]", "description": "트리 확장 키", "required": false, "group": "tree", "defaultValue": "[]" },
268
+ "saveRequestValues": { "type": "DtoItem", "description": "저장 요청값 (트리)", "required": false, "group": "tree" },
269
+ "categorySearch": { "type": "boolean", "description": "카테고리 검색 여부", "required": false, "group": "tree", "defaultValue": "false" },
270
+ "mdiaClcd": { "type": "string", "description": "미디어 코드", "required": false, "group": "display", "defaultValue": "\"10\"" },
271
+ "formValues": { "type": "DtoItem", "description": "폼 값", "required": false, "group": "display" },
272
+ "formValueChanged": { "type": "boolean", "description": "폼 변경 여부", "required": false, "group": "display", "defaultValue": "false" },
273
+ "selectedSctnTpcd": { "type": "string", "description": "선택된 섹션 타입", "required": false, "group": "display" }
274
+ },
275
+ "states": {
276
+ "routePath": { "type": "string | null", "description": "경로", "defaultValue": "null", "group": "system" },
277
+ "listSpinning": { "type": "boolean", "description": "리스트 로딩", "defaultValue": "false", "group": "loading" },
278
+ "excelSpinning": { "type": "boolean", "description": "엑셀 로딩", "defaultValue": "false", "group": "loading" },
279
+ "saveSpinning": { "type": "boolean", "description": "저장 로딩", "defaultValue": "false", "group": "loading" },
280
+ "deleteSpinning": { "type": "boolean", "description": "삭제 로딩", "defaultValue": "false", "group": "loading" },
281
+ "detailSpinning": { "type": "boolean", "description": "상세 로딩", "defaultValue": "false", "group": "loading" },
282
+ "detailLoading": { "type": "boolean", "description": "상세 로딩 UI 지연용", "defaultValue": "false", "group": "loading" },
283
+ "updateSpinning": { "type": "boolean", "description": "상태 변경 로딩", "defaultValue": "false", "group": "loading" },
284
+ "copySpinning": { "type": "boolean", "description": "복사 로딩", "defaultValue": "false", "group": "loading" },
285
+ "treeSpinning": { "type": "boolean", "description": "트리 로딩", "defaultValue": "false", "group": "loading" },
286
+ "summarySpinning": { "type": "boolean", "description": "요약 로딩", "defaultValue": "false", "group": "loading" },
287
+ "list01Spinning": { "type": "boolean", "description": "리스트1 로딩", "defaultValue": "false", "group": "loading" },
288
+ "list02Spinning": { "type": "boolean", "description": "리스트2 로딩", "defaultValue": "false", "group": "loading" },
289
+ "spinning": { "type": "boolean", "description": "일반 로딩", "defaultValue": "false", "group": "loading" },
290
+ "listData": { "type": "AXDGDataItem<DtoItem>[]", "description": "리스트 데이터", "defaultValue": "[]", "group": "data" },
291
+ "listPage": { "type": "AXDGPage", "description": "리스트 페이지", "defaultValue": "{ currentPage: 0, totalPages: 0 }", "group": "data" },
292
+ "list01Data": { "type": "AXDGDataItem<DtoItem01>[]", "description": "리스트1 데이터", "defaultValue": "[]", "group": "data" },
293
+ "list01Page": { "type": "AXDGPage", "description": "리스트1 페이지", "defaultValue": "{ currentPage: 0, totalPages: 0 }", "group": "data" },
294
+ "list02Data": { "type": "AXDGDataItem<DtoItem02>[]", "description": "리스트2 데이터", "defaultValue": "[]", "group": "data" },
295
+ "list02Page": { "type": "AXDGPage", "description": "리스트2 페이지", "defaultValue": "{ currentPage: 0, totalPages: 0 }", "group": "data" },
296
+ "treeData": { "type": "DtoItem[]", "description": "트리 데이터", "defaultValue": "[]", "group": "data" },
297
+ "summaryData": { "type": "DtoItem", "description": "요약 데이터", "defaultValue": "{}", "group": "data" },
298
+ "modalOpen": { "type": "boolean", "description": "모달 열림 상태", "defaultValue": "false", "group": "ui" },
299
+ "isDirty": { "type": "boolean", "description": "수정사항 체크", "defaultValue": "false", "group": "ui" },
300
+ "isFormDirty": { "type": "boolean", "description": "폼 수정사항 체크", "defaultValue": "false", "group": "ui" },
301
+ "bbsNo": { "type": "number", "description": "게시판 번호 (고정값)", "group": "fixed" },
302
+ "cntntsBbsKncd": { "type": "string", "description": "콘텐츠 게시판 종류코드 (고정값)", "defaultValue": "\"MAN\"", "group": "fixed" },
303
+ "reprtTpcd": { "type": "string", "description": "보고서 유형코드 (고정값)", "defaultValue": "\"20\"", "group": "fixed" },
304
+ "langKncd": { "type": "string", "description": "언어 코드 (고정값)", "defaultValue": "\"KR\"", "group": "fixed" }
305
+ },
306
+ "actions": {
307
+ "syncMetadata": { "description": "메타데이터 동기화", "required": true },
308
+ "onMountApp": { "description": "앱 마운트 시 실행", "required": true },
309
+ "setListRequestValue": { "description": "리스트 요청값 설정", "required": true, "group": "list" },
310
+ "setListColWidths": { "description": "컬럼 너비 설정", "required": true, "group": "list" },
311
+ "setListSpinning": { "description": "리스트 스피닝 설정", "required": true, "group": "list" },
312
+ "setListSortParams": { "description": "정렬 파라미터 설정", "required": true, "group": "list" },
313
+ "callListApi": { "description": "리스트 API 호출", "required": true, "group": "api" },
314
+ "changeListPage": { "description": "리스트 페이지 변경", "required": true, "group": "page" },
315
+ "setExcelSpinning": { "description": "엑셀 스피닝 설정", "group": "excel" },
316
+ "callExcelDownloadApi": { "description": "엑셀 다운로드 API 호출", "group": "excel" },
317
+ "setSelectedItem": { "description": "선택된 아이템 설정", "group": "selection" },
318
+ "setSaveRequestValue": { "description": "저장 요청값 설정", "group": "form" },
319
+ "setCheckedRowKeys": { "description": "체크된 행 키 설정", "group": "selection" },
320
+ "setListSelectedRowKey": { "description": "선택된 행 키 설정", "group": "selection" },
321
+ "setListCheckedIndexes": { "description": "체크된 인덱스 설정", "group": "selection" },
322
+ "setSaveSpinning": { "description": "저장 스피닝 설정", "group": "form" },
323
+ "callSaveApi": { "description": "저장 API 호출", "group": "api" },
324
+ "callDeleteApi": { "description": "삭제 API 호출", "group": "api" },
325
+ "cancelFormActive": { "description": "폼 활성화 취소", "group": "form" },
326
+ "setFormActive": { "description": "폼 활성화 설정", "group": "form" },
327
+ "setListCheckedKeys": { "description": "체크된 키 설정", "group": "selection" },
328
+ "setFlexGrow": { "description": "플렉스 성장 비율 설정", "group": "layout" },
329
+ "callTreeApi": { "description": "트리 API 호출", "group": "api" },
330
+ "setTreeData": { "description": "트리 데이터 설정", "group": "tree" },
331
+ "setExpandedKeys": { "description": "확장된 키 설정", "group": "tree" },
332
+ "setSaveRequestValues": { "description": "저장 요청값들 설정 (트리)", "group": "tree" },
333
+ "setCategorySearch": { "description": "카테고리 검색 설정", "group": "tree" },
334
+ "callTreeSaveApi": { "description": "트리 저장 API 호출", "group": "api" },
335
+ "setIsDirty": { "description": "수정사항 설정", "group": "tree" },
336
+ "callSummaryApi": { "description": "요약 API 호출", "group": "api" },
337
+ "callList01Api": { "description": "리스트1 API 호출", "group": "api" },
338
+ "callList02Api": { "description": "리스트2 API 호출", "group": "api" },
339
+ "setRequestValue": { "description": "요청값 설정", "group": "dashboard" },
340
+ "setRequest01Value": { "description": "요청값1 설정", "group": "dashboard" },
341
+ "setRequest02Value": { "description": "요청값2 설정", "group": "dashboard" },
342
+ "setActiveTabKey": { "description": "활성 탭 키 설정", "group": "tab" },
343
+ "setList01SortParams": { "description": "리스트1 정렬 파라미터 설정", "group": "multi-list" },
344
+ "setList02SortParams": { "description": "리스트2 정렬 파라미터 설정", "group": "multi-list" },
345
+ "changeList01Page": { "description": "리스트1 페이지 변경", "group": "page" },
346
+ "changeList02Page": { "description": "리스트2 페이지 변경", "group": "page" },
347
+ "setDetail": { "description": "상세 설정", "group": "modal" },
348
+ "setModalOpen": { "description": "모달 열림 설정", "group": "modal" },
349
+ "callChangeStatusApi": { "description": "상태 변경 API 호출", "group": "api" },
350
+ "callDataCopyApi": { "description": "데이터 복사 API 호출", "group": "api" },
351
+ "callDetailApi": { "description": "상세 API 호출", "group": "api" },
352
+ "callConfirmApi": { "description": "확인 API 호출", "group": "api" },
353
+ "setFormValues": { "description": "폼 값 설정", "group": "display" },
354
+ "setActiveTabId": { "description": "활성 탭 ID 설정", "group": "tab" },
355
+ "setMdiaClcd": { "description": "미디어 코드 설정", "group": "display" },
356
+ "setDspySortArray": { "description": "전시 정렬 배열 설정", "group": "display" },
357
+ "deleteSctnBanner": { "description": "섹션 배너 삭제", "group": "display" },
358
+ "setSelectedSctnTpcd": { "description": "선택된 섹션 타입 설정", "group": "display" }
359
+ }
360
+ },
361
+ "fieldCombinations": {
362
+ "required": {
363
+ "basicList": ["listRequestValue", "listColWidths", "listSortParams", "listSpinning", "listData", "listPage"],
364
+ "excel": ["excelSpinning", "setExcelSpinning", "callExcelDownloadApi"],
365
+ "detailForm": ["saveRequestValue", "selectedItem", "setSelectedItem", "setSaveRequestValue"],
366
+ "singleSelection": ["listSelectedRowKey", "setListSelectedRowKey"],
367
+ "multiSelectionCheckbox": ["checkedRowKeys", "setCheckedRowKeys"],
368
+ "multiSelectionIndex": ["listCheckedIndexes", "setListCheckedIndexes"],
369
+ "crudSave": ["saveSpinning", "setSaveSpinning", "saveRequestValue", "callSaveApi"],
370
+ "crudDelete": ["deleteSpinning", "callDeleteApi"],
371
+ "crudForm": ["formActive", "setFormActive", "cancelFormActive"],
372
+ "modal": ["modalOpen", "setModalOpen"],
373
+ "tree": ["treeSpinning", "treeData", "expandedKeys", "callTreeApi"],
374
+ "dashboard": ["summaryRequestValue", "summaryData", "callSummaryApi"]
375
+ }
376
+ },
377
+ "initialValues": {
378
+ "common": {
379
+ "listRequestValue": { "pageNumber": 1, "pageSize": 100 },
380
+ "listColWidths": [],
381
+ "listSpinning": false,
382
+ "listData": [],
383
+ "listPage": { "currentPage": 0, "totalPages": 0 },
384
+ "listSortParams": [],
385
+ "listSelectedRowKey": "",
386
+ "checkedRowKeys": [],
387
+ "listCheckedKeys": []
388
+ },
389
+ "typeSpecific": {
390
+ "type6": {
391
+ "flexGrow": 400,
392
+ "expandedKeys": [],
393
+ "saveRequestValues": null,
394
+ "categorySearch": false,
395
+ "treeData": [],
396
+ "treeSpinning": false,
397
+ "isDirty": false,
398
+ "isFormDirty": false
399
+ },
400
+ "type7": {
401
+ "activeTabKey": "pg1",
402
+ "summaryData": {},
403
+ "list01Data": [],
404
+ "list01Page": { "currentPage": 0, "totalPages": 0 },
405
+ "list02Data": [],
406
+ "list02Page": { "currentPage": 0, "totalPages": 0 },
407
+ "summarySpinning": false,
408
+ "list01Spinning": false,
409
+ "list02Spinning": false
410
+ },
411
+ "type11": {
412
+ "activeTabId": "banner",
413
+ "mdiaClcd": "10",
414
+ "formValueChanged": false,
415
+ "spinning": false
416
+ }
417
+ }
418
+ }
419
+ }