@vmscloud/moz-ui-grid-react 0.1.19

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 (119) hide show
  1. package/README.md +148 -0
  2. package/dist/MozGrid.d.ts +136 -0
  3. package/dist/bridge/ReactRenderer.d.ts +45 -0
  4. package/dist/bridge/fieldBuilder.d.ts +9 -0
  5. package/dist/bridge/templateRegistry.d.ts +11 -0
  6. package/dist/index.cjs +25 -0
  7. package/dist/index.d.ts +10 -0
  8. package/dist/index.js +96086 -0
  9. package/dist/legacy/components/common/Dragging.d.ts +30 -0
  10. package/dist/legacy/components/common/custom-cell/FormulaEngine.d.ts +256 -0
  11. package/dist/legacy/components/common/custom-cell/FormulaInput.d.ts +25 -0
  12. package/dist/legacy/components/common/custom-cell/GridCustomCell.d.ts +17 -0
  13. package/dist/legacy/components/common/custom-cell/useFormulaAutocomplete.d.ts +54 -0
  14. package/dist/legacy/components/common/excel/ClientExcelUploadPopup.d.ts +6 -0
  15. package/dist/legacy/components/common/filter/GridFilter.d.ts +13 -0
  16. package/dist/legacy/components/common/footer/GridFooter.d.ts +17 -0
  17. package/dist/legacy/components/common/sort/GridSort.d.ts +12 -0
  18. package/dist/legacy/components/common/toolbar/GridSearchInput.d.ts +26 -0
  19. package/dist/legacy/components/grid/CellEditor.d.ts +9 -0
  20. package/dist/legacy/components/grid/CellTemplate.d.ts +21 -0
  21. package/dist/legacy/components/grid/DetailTemplate.d.ts +8 -0
  22. package/dist/legacy/components/grid/GroupTemplate.d.ts +8 -0
  23. package/dist/legacy/components/grid/HeaderTemplate.d.ts +9 -0
  24. package/dist/legacy/components/grid/MozGridReact.d.ts +12 -0
  25. package/dist/legacy/components/grid/MozGridReactCore.d.ts +28 -0
  26. package/dist/legacy/components/grid/bulk-editor/GridBulkEditor.d.ts +11 -0
  27. package/dist/legacy/components/grid/context-menu/GridContextMenu.d.ts +22 -0
  28. package/dist/legacy/components/grid/group-panel/GroupPanel.d.ts +5 -0
  29. package/dist/legacy/components/grid/toolbar/ColumnPicker.d.ts +18 -0
  30. package/dist/legacy/components/grid/toolbar/GridOptionModal.d.ts +30 -0
  31. package/dist/legacy/components/grid/toolbar/GridSetupPopover.d.ts +25 -0
  32. package/dist/legacy/components/grid/toolbar/GridToolBox.d.ts +49 -0
  33. package/dist/legacy/components/pivot/MozPivotReact.d.ts +47 -0
  34. package/dist/legacy/components/pivot/PivotContextMenu.d.ts +23 -0
  35. package/dist/legacy/components/pivot/PivotFieldChip.d.ts +17 -0
  36. package/dist/legacy/components/pivot/PivotFieldDropZone.d.ts +30 -0
  37. package/dist/legacy/components/pivot/PivotFieldPanel.d.ts +26 -0
  38. package/dist/legacy/components/pivot/PivotOptionModal.d.ts +36 -0
  39. package/dist/legacy/components/pivot/PivotToolBox.d.ts +56 -0
  40. package/dist/legacy/components/pivot/chart/EChart.d.ts +18 -0
  41. package/dist/legacy/components/pivot/chart/MozPivotChart.d.ts +23 -0
  42. package/dist/legacy/components/pivot/chart/PivotChartDetail.d.ts +17 -0
  43. package/dist/legacy/components/pivot/chart/PivotChartMini.d.ts +19 -0
  44. package/dist/legacy/components/pivot/chart/PivotChartMultiple.d.ts +16 -0
  45. package/dist/legacy/components/pivot/chart/PivotChartToolbar.d.ts +32 -0
  46. package/dist/legacy/components/pivot/chart/chartUtils.d.ts +45 -0
  47. package/dist/legacy/contexts/index.d.ts +31 -0
  48. package/dist/legacy/contracts/notification.contract.d.ts +34 -0
  49. package/dist/legacy/hooks/index.d.ts +16 -0
  50. package/dist/legacy/hooks/useCellTooltip.d.ts +8 -0
  51. package/dist/legacy/hooks/useClientExcelExport.d.ts +27 -0
  52. package/dist/legacy/hooks/useClientExcelStore.d.ts +18 -0
  53. package/dist/legacy/hooks/useContextMenu.d.ts +62 -0
  54. package/dist/legacy/hooks/useGridBulkEditor.d.ts +16 -0
  55. package/dist/legacy/hooks/useGridChanges.d.ts +10 -0
  56. package/dist/legacy/hooks/useGridColumns.d.ts +11 -0
  57. package/dist/legacy/hooks/useGridCustomCell.d.ts +32 -0
  58. package/dist/legacy/hooks/useGridCustomCellModule.d.ts +9 -0
  59. package/dist/legacy/hooks/useGridEvents.d.ts +13 -0
  60. package/dist/legacy/hooks/useGridFilter.d.ts +19 -0
  61. package/dist/legacy/hooks/useGridInstance.d.ts +9 -0
  62. package/dist/legacy/hooks/useGridSelect.d.ts +10 -0
  63. package/dist/legacy/hooks/useGridSelection.d.ts +6 -0
  64. package/dist/legacy/hooks/useGridSort.d.ts +16 -0
  65. package/dist/legacy/hooks/useGridUndoRedo.d.ts +10 -0
  66. package/dist/legacy/hooks/useGridValidation.d.ts +9 -0
  67. package/dist/legacy/hooks/useSearchHighlight.d.ts +9 -0
  68. package/dist/legacy/icons/index.d.ts +36 -0
  69. package/dist/legacy/index.d.ts +71 -0
  70. package/dist/legacy/locale/MozConfigProvider.d.ts +31 -0
  71. package/dist/legacy/locale/contextWrapper.d.ts +19 -0
  72. package/dist/legacy/locale/en.d.ts +2 -0
  73. package/dist/legacy/locale/index.d.ts +8 -0
  74. package/dist/legacy/locale/ja.d.ts +2 -0
  75. package/dist/legacy/locale/ko.d.ts +2 -0
  76. package/dist/legacy/locale/types.d.ts +328 -0
  77. package/dist/legacy/locale/useMozLocale.d.ts +15 -0
  78. package/dist/legacy/locale/zh.d.ts +2 -0
  79. package/dist/legacy/stories/MozGridReact.stories.d.ts +7 -0
  80. package/dist/legacy/stories/MozPivotReact.stories.d.ts +44 -0
  81. package/dist/legacy/stories/_helpers/sampleData.d.ts +54 -0
  82. package/dist/legacy/types/pivot-props.d.ts +62 -0
  83. package/dist/legacy/types/props.d.ts +118 -0
  84. package/dist/legacy/types/toolbar.d.ts +117 -0
  85. package/dist/legacy/ui/button/Button.d.ts +18 -0
  86. package/dist/legacy/ui/button/index.d.ts +1 -0
  87. package/dist/legacy/ui/checkbox/CheckBox.d.ts +17 -0
  88. package/dist/legacy/ui/checkbox/icons.d.ts +9 -0
  89. package/dist/legacy/ui/checkbox/index.d.ts +1 -0
  90. package/dist/legacy/ui/context-menu/ContextMenu.d.ts +36 -0
  91. package/dist/legacy/ui/context-menu/index.d.ts +2 -0
  92. package/dist/legacy/ui/context-menu/types.d.ts +26 -0
  93. package/dist/legacy/ui/date-input/DateInput.d.ts +25 -0
  94. package/dist/legacy/ui/date-input/index.d.ts +1 -0
  95. package/dist/legacy/ui/empty-state/EmptyState.d.ts +28 -0
  96. package/dist/legacy/ui/empty-state/index.d.ts +1 -0
  97. package/dist/legacy/ui/input/Input.d.ts +27 -0
  98. package/dist/legacy/ui/input/index.d.ts +1 -0
  99. package/dist/legacy/ui/multi-select/MultiSelect.d.ts +43 -0
  100. package/dist/legacy/ui/multi-select/index.d.ts +1 -0
  101. package/dist/legacy/ui/number-input/NumberInput.d.ts +22 -0
  102. package/dist/legacy/ui/number-input/index.d.ts +1 -0
  103. package/dist/legacy/ui/popup/Popup.d.ts +50 -0
  104. package/dist/legacy/ui/popup/index.d.ts +1 -0
  105. package/dist/legacy/ui/select/Select.d.ts +56 -0
  106. package/dist/legacy/ui/select/index.d.ts +1 -0
  107. package/dist/legacy/ui/toggle/Toggle.d.ts +21 -0
  108. package/dist/legacy/ui/toggle/index.d.ts +1 -0
  109. package/dist/legacy/utils/cn.d.ts +5 -0
  110. package/dist/legacy/utils/file.d.ts +17 -0
  111. package/dist/legacy/utils/index.d.ts +2 -0
  112. package/dist/legacy/utils/misc.d.ts +17 -0
  113. package/dist/stories/MozGrid.stories.d.ts +18 -0
  114. package/dist/style.css +1 -0
  115. package/dist/types/slots.d.ts +49 -0
  116. package/docs/manual/examples.md +2385 -0
  117. package/docs/manual/reference.md +4695 -0
  118. package/docs/manual/reference_react.md +720 -0
  119. package/package.json +104 -0
@@ -0,0 +1,328 @@
1
+ export interface MozLocaleMessages {
2
+ Popup: {
3
+ title: string;
4
+ save: string;
5
+ cancel: string;
6
+ ok: string;
7
+ close: string;
8
+ };
9
+ Select: {
10
+ searchPlaceholder: string;
11
+ emptyText: string;
12
+ requiredMessage: string;
13
+ };
14
+ MultiSelect: {
15
+ search: string;
16
+ selectAll: string;
17
+ selectFiltered: string;
18
+ specificResults: string;
19
+ specificSelect: string;
20
+ noData: string;
21
+ required: string;
22
+ headerFormat: string;
23
+ };
24
+ TreeSelect: {
25
+ search: string;
26
+ selectAll: string;
27
+ selectFiltered: string;
28
+ specificResults: string;
29
+ noData: string;
30
+ showSelectedOnly: string;
31
+ expandAll: string;
32
+ collapseAll: string;
33
+ required: string;
34
+ headerFormat: string;
35
+ };
36
+ TagInput: {
37
+ add: string;
38
+ };
39
+ TimePicker: {
40
+ hour: string;
41
+ minute: string;
42
+ currentTime: string;
43
+ };
44
+ EmptyState: {
45
+ customEmptyHeader: string;
46
+ customEmptyContent: string;
47
+ dataEmptyHeader: string;
48
+ dataEmptyContent: string;
49
+ resultEmptyHeader: string;
50
+ resultEmptyContent: string;
51
+ searchEmptyHeader: string;
52
+ searchEmptyContent: string;
53
+ };
54
+ TableSelect: {
55
+ searchPlaceholder: string;
56
+ emptyText: string;
57
+ requiredMessage: string;
58
+ footerSelect: string;
59
+ footerNavigate: string;
60
+ footerClose: string;
61
+ };
62
+ Common: {
63
+ requiredMessage: string;
64
+ };
65
+ Grid: {
66
+ layoutSetting: string;
67
+ filter: string;
68
+ sort: string;
69
+ customCellStyle: string;
70
+ reset: string;
71
+ searchFilter: string;
72
+ newView: string;
73
+ selectAll: string;
74
+ columnPicker: string;
75
+ viewToolbar: string;
76
+ viewFooter: string;
77
+ viewGroupPanel: string;
78
+ resetFilterAndSort: string;
79
+ defaultView: string;
80
+ filterPopup: string;
81
+ resetFilter: string;
82
+ addFilter: string;
83
+ sortingPopup: string;
84
+ ascending: string;
85
+ descending: string;
86
+ resetSort: string;
87
+ addSort: string;
88
+ symbolEqual: string;
89
+ symbolNotEqual: string;
90
+ symbolContains: string;
91
+ symbolNotContains: string;
92
+ symbolLessThan: string;
93
+ symbolGreaterThan: string;
94
+ symbolLessOrEqual: string;
95
+ symbolGreaterOrEqual: string;
96
+ symbolEmpty: string;
97
+ symbolNotEmpty: string;
98
+ customCellRuleNamePlaceholder: string;
99
+ addFormulaCondition: string;
100
+ applicationColumn: string;
101
+ backgroundColor: string;
102
+ fontColor: string;
103
+ resetCustomCell: string;
104
+ addFormulaConditionSet: string;
105
+ customColor: string;
106
+ formulaConditionSet: string;
107
+ contextFilterAndSort: string;
108
+ contextAddFilter: string;
109
+ contextSelectFilter: string;
110
+ contextResetColumnFilter: string;
111
+ contextResetColumnSort: string;
112
+ contextResetColumnAll: string;
113
+ contextDataCopy: string;
114
+ contextDataExcelCopy: string;
115
+ contextDataWithHeaderCopy: string;
116
+ contextPin: string;
117
+ contextColumnPicker: string;
118
+ contextMoveColumnFirst: string;
119
+ contextAutoSizeColumns: string;
120
+ contextGroupPanel: string;
121
+ contextGroupToggle: string;
122
+ contextGroupCollapseAll: string;
123
+ contextGroupExpandAll: string;
124
+ groupPanelPlaceholder: string;
125
+ contextBulkEdit: string;
126
+ contextImport: string;
127
+ contextImportExcel: string;
128
+ contextImportExcelAppend: string;
129
+ contextExport: string;
130
+ contextExportXlsx: string;
131
+ contextExportCsv: string;
132
+ contextSum: string;
133
+ check: string;
134
+ cancel: string;
135
+ save: string;
136
+ remove: string;
137
+ close: string;
138
+ pause: string;
139
+ add: string;
140
+ immediateApply: string;
141
+ warning: string;
142
+ mozWarning: string;
143
+ confirmCancel: string;
144
+ alreadyExcelProgress: string;
145
+ downloadFail: string;
146
+ addDataWithFilterSort: string;
147
+ resetAndAdd: string;
148
+ confirmDeleteGeneral: string;
149
+ toastCopySuccess: string;
150
+ toastSaveSuccess: string;
151
+ toastSaveError: string;
152
+ toastResetSuccess: string;
153
+ toastRequiredVal: string;
154
+ excelInvalidExcel: string;
155
+ excelInvalidUpload: string;
156
+ downloadFormat: string;
157
+ click: string;
158
+ drag: string;
159
+ overwriteSelected: string;
160
+ fileOverwrite: string;
161
+ dropHere: string;
162
+ dropHerePrefix: string;
163
+ dropHereMiddle: string;
164
+ dropHereSuffix: string;
165
+ withFormatting: string;
166
+ requestTimedOut: string;
167
+ serverError: string;
168
+ total: string;
169
+ correct: string;
170
+ error: string;
171
+ success: string;
172
+ fail: string;
173
+ excelExportConfirmLargeData: string;
174
+ footerTotalRowCount: string;
175
+ footerFilteredRowCount: string;
176
+ aggregateAverage: string;
177
+ aggregateCount: string;
178
+ aggregateMin: string;
179
+ aggregateMax: string;
180
+ aggregateSum: string;
181
+ };
182
+ GridPivot: {
183
+ setting: string;
184
+ gridSetting: string;
185
+ fieldSetting: string;
186
+ showRowTotals: string;
187
+ showColumnTotals: string;
188
+ subtotalCriteria: string;
189
+ subtotalAggregateField: string;
190
+ totalsBeforeData: string;
191
+ showZeros: string;
192
+ showOutlineMode: string;
193
+ collapsibleSubtotal: string;
194
+ fieldName: string;
195
+ fieldAggregate: string;
196
+ fieldShowAs: string;
197
+ fieldFormat: string;
198
+ openChart: string;
199
+ selectValueField: string;
200
+ none: string;
201
+ sum: string;
202
+ count: string;
203
+ average: string;
204
+ max: string;
205
+ min: string;
206
+ range: string;
207
+ std: string;
208
+ var: string;
209
+ stdPop: string;
210
+ varPop: string;
211
+ cntAll: string;
212
+ showFirstValue: string;
213
+ showLastValue: string;
214
+ noCalculation: string;
215
+ diffRow: string;
216
+ diffRowPct: string;
217
+ diffCol: string;
218
+ diffColPct: string;
219
+ grandtotalPct: string;
220
+ rowTotalPct: string;
221
+ colTotalPct: string;
222
+ prevRowPct: string;
223
+ prevColPct: string;
224
+ runTot: string;
225
+ runTotPct: string;
226
+ generalFormat: string;
227
+ int: string;
228
+ float: string;
229
+ currency: string;
230
+ percentage: string;
231
+ percentageDot2: string;
232
+ thousands: string;
233
+ millions: string;
234
+ billions: string;
235
+ subtotal: string;
236
+ grandtotal: string;
237
+ grandtotalValue: string;
238
+ category: string;
239
+ chartType: string;
240
+ chartXAxis: string;
241
+ chartYAxis: string;
242
+ categoryName: string;
243
+ barChart: string;
244
+ lineChart: string;
245
+ lineSymbolChart: string;
246
+ areaChart: string;
247
+ chartRenderingErrorHeader: string;
248
+ chartRenderingErrorContent: string;
249
+ contextPivotExportXlsx: string;
250
+ contextPivotExportOriginXlsx: string;
251
+ contextPivotExportOriginCsv: string;
252
+ row: string;
253
+ column: string;
254
+ value: string;
255
+ filter: string;
256
+ searchFieldPlaceholder: string;
257
+ dropZoneRowPlaceholder: string;
258
+ dropZoneColumnPlaceholder: string;
259
+ dropZoneValuePlaceholder: string;
260
+ dropZoneFilterPlaceholder: string;
261
+ update: string;
262
+ selectFieldForReport: string;
263
+ dragFieldsBetweenAreas: string;
264
+ valueSummaryCriteria: string;
265
+ };
266
+ Gantt: {
267
+ searchPlaceholder: string;
268
+ columnSize: string;
269
+ rowSize: string;
270
+ };
271
+ Chart: {
272
+ filterPopup: string;
273
+ resetFilter: string;
274
+ addFilter: string;
275
+ symbolEqual: string;
276
+ symbolNotEqual: string;
277
+ symbolContains: string;
278
+ symbolNotContains: string;
279
+ symbolLessThan: string;
280
+ symbolGreaterThan: string;
281
+ symbolLessOrEqual: string;
282
+ symbolGreaterOrEqual: string;
283
+ symbolEmpty: string;
284
+ symbolNotEmpty: string;
285
+ chartSetting: string;
286
+ chartCategory: string;
287
+ chartType: string;
288
+ chartUseZoom: string;
289
+ multiYAxisSetting: string;
290
+ notUsed: string;
291
+ chartPopup: string;
292
+ errorMessage: string;
293
+ valueFieldSetting: string;
294
+ valueSummaryCriteria: string;
295
+ selectFieldForReport: string;
296
+ column: string;
297
+ row: string;
298
+ value: string;
299
+ sumValue: string;
300
+ count: string;
301
+ sum: string;
302
+ average: string;
303
+ min: string;
304
+ max: string;
305
+ seriesCategory: string;
306
+ pieCategory: string;
307
+ scatterCategory: string;
308
+ treemapCategory: string;
309
+ boxplotCategory: string;
310
+ candlestickCategory: string;
311
+ barChart: string;
312
+ stackBarChart: string;
313
+ horizontalStackBarChart: string;
314
+ lineChart: string;
315
+ lineSymbolChart: string;
316
+ areaChart: string;
317
+ general: string;
318
+ custom: string;
319
+ axisCategoryLabel: string;
320
+ legendSeriesLabel: string;
321
+ legendSingleLabel: string;
322
+ legendMultiLabel: string;
323
+ valueSingleLabel: string;
324
+ xAxisSingleLabel: string;
325
+ yAxisMultiLabel: string;
326
+ notSet: string;
327
+ };
328
+ }
@@ -0,0 +1,15 @@
1
+ import { MozLocaleMessages } from './types';
2
+ /**
3
+ * MozLocale React Context
4
+ *
5
+ * Vue 측 `provide(MOZ_LOCALE_KEY, ...)`의 React 대응.
6
+ * Provider 없이도 koKR 기본값으로 동작합니다.
7
+ */
8
+ export declare const MozLocaleContext: import('react').Context<MozLocaleMessages>;
9
+ /**
10
+ * 다국어 메시지 훅
11
+ *
12
+ * Vue의 `useMozLocale()`이 `Ref<MozLocaleMessages>`를 반환하는 반면,
13
+ * React 버전은 객체 자체를 반환합니다 (React 리렌더로 자동 갱신).
14
+ */
15
+ export declare function useMozLocale(): MozLocaleMessages;
@@ -0,0 +1,2 @@
1
+ import { MozLocaleMessages } from './types';
2
+ export declare const zhCN: MozLocaleMessages;
@@ -0,0 +1,7 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { MozGridReact } from '..';
3
+ declare const meta: Meta<typeof MozGridReact>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof MozGridReact>;
6
+ /** 기본 Flat 그리드 — 직원 데이터 100건 */
7
+ export declare const Basic: Story;
@@ -0,0 +1,44 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { MozPivotReact } from '..';
3
+ declare const meta: Meta<typeof MozPivotReact>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof MozPivotReact>;
6
+ /**
7
+ * 기본 Pivot — 지역×제품 × 연도×분기 매출/이익. 툴바 차트 아이콘 클릭으로 차트 열기.
8
+ *
9
+ * 행 필드가 2개 이상이면 차트의 default categoryField(첫 번째 row field)가 non-leaf라
10
+ * `getSeriesData`가 해당 depth의 subtotal 행을 요구한다 → pivotSettings에 subtotal 활성화.
11
+ */
12
+ export declare const Basic: Story;
13
+ /** 기본 차트: 지역×분기별 매출 — 툴바 차트 아이콘 클릭으로 토글 */
14
+ export declare const ChartDefault: Story;
15
+ /**
16
+ * 차트가 처음부터 열려 있는 상태로 시작. `chartActive`/`onClickChart`로 외부 제어.
17
+ *
18
+ * Y축(행 필드) 2개 → 차트 툴바에 Y축 카테고리 선택 UI 노출.
19
+ */
20
+ export declare const RowFieldSelector: Story;
21
+ /**
22
+ * 다중 열 필드(연도 > 분기) — 차트 툴바에 X축 카테고리 선택 UI 노출.
23
+ */
24
+ export declare const ColumnFieldSelector: Story;
25
+ /**
26
+ * 다중 값 필드(매출/비용/수량) — 차트 툴바에서 시리즈 체크박스로 선택/해제.
27
+ */
28
+ export declare const MultipleValueFields: Story;
29
+ /**
30
+ * 전체 옵션: 다중 행/열/값 필드 + Grand Total 포함.
31
+ */
32
+ export declare const FullOptions: Story;
33
+ /**
34
+ * 차트 토글 제어: 외부 버튼으로 열기/닫기.
35
+ */
36
+ export declare const ChartToggleControl: Story;
37
+ /**
38
+ * 일별 날짜 컬럼(90일) — zoom bar / X축 라벨 회전 / hideOverlap / 적응형 초기 윈도우 데모.
39
+ *
40
+ * 컬럼 cardinality가 높아 xLabels > 10 → Detail 차트에 dataZoom 슬라이더가 표시됨.
41
+ * `useMultipleChart={false}`로 처음부터 Detail(단일 차트) 모드로 시작.
42
+ * 슬라이더 드래그 / shift+wheel 좌우 스크롤 동작 확인 가능.
43
+ */
44
+ export declare const ChartManyColumns: Story;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * 스토리북 공통 샘플 데이터. Vue 측 stories/_helpers/sampleData.ts와 동일.
3
+ */
4
+ export declare function generateEmployeeData(count: number): {
5
+ id: number;
6
+ name: string;
7
+ department: string;
8
+ team: string;
9
+ status: string;
10
+ grade: string;
11
+ salary: number;
12
+ joinDate: string;
13
+ email: string;
14
+ active: boolean;
15
+ }[];
16
+ export declare function generateSalesData(count?: number): {
17
+ id: number;
18
+ region: string;
19
+ product: string;
20
+ quarter: string;
21
+ year: string;
22
+ sales: number;
23
+ cost: number;
24
+ quantity: number;
25
+ profit: number;
26
+ }[];
27
+ export declare const basicFields: ({
28
+ id: string;
29
+ header: string;
30
+ dataType: "number";
31
+ width: number;
32
+ readonly: boolean;
33
+ } | {
34
+ id: string;
35
+ header: string;
36
+ dataType: "string";
37
+ width: number;
38
+ readonly?: undefined;
39
+ } | {
40
+ id: string;
41
+ header: string;
42
+ dataType: "number";
43
+ width: number;
44
+ readonly?: undefined;
45
+ })[];
46
+ export declare const salesAvailableFields: ({
47
+ field: string;
48
+ header: string;
49
+ dataType: "number";
50
+ } | {
51
+ field: string;
52
+ header: string;
53
+ dataType: "string";
54
+ })[];
@@ -0,0 +1,62 @@
1
+ import { PivotRowField, PivotColumnField, PivotValueField, PivotFilterField } from '@vmscloud/moz-ui-grid-core';
2
+ /**
3
+ * Vue 측 src/types/pivot-props.ts의 React 대응.
4
+ */
5
+ export interface PivotFieldItem {
6
+ id: string;
7
+ header: string;
8
+ area: 'row' | 'column' | 'value' | 'filter' | null;
9
+ aggregate?: string;
10
+ }
11
+ /** PivotFieldPanel 왼쪽 목록에 표시되는 사용 가능 필드 */
12
+ export interface AvailableField {
13
+ /** 필드 키 */
14
+ field: string;
15
+ /** 표시 헤더 */
16
+ header: string;
17
+ /** 데이터 타입 */
18
+ dataType: 'string' | 'number' | 'date' | 'boolean';
19
+ }
20
+ /**
21
+ * PivotFieldPanel의 `update:config` event payload.
22
+ * 사용자가 패널에서 행/열/값/필터 필드를 재배치한 결과.
23
+ */
24
+ export interface PivotFieldPanelConfig {
25
+ rowFields: PivotRowField[];
26
+ columnFields: PivotColumnField[];
27
+ valueFields: PivotValueField[];
28
+ filterFields: PivotFilterField[];
29
+ }
30
+ /** PivotFieldPanel UI 옵션 (영역 표시 여부 / 검색 사용 여부) */
31
+ export interface PivotFieldPanelOptions {
32
+ /** 사용 가능한 영역 (기본: row, column, value) */
33
+ areas?: Array<'row' | 'column' | 'value' | 'filter'>;
34
+ /** 필드 검색 활성화 */
35
+ useSearch?: boolean;
36
+ }
37
+ export interface PivotGridProps {
38
+ pivotRowFields: PivotRowField[];
39
+ pivotColumnFields: PivotColumnField[];
40
+ pivotValueFields: PivotValueField[];
41
+ fieldPanelOptions?: PivotFieldPanelOptions;
42
+ availableFields?: AvailableField[];
43
+ }
44
+ export interface PivotGridSettings {
45
+ /** 행 부분합 표시 */
46
+ showRowSubTotals?: boolean;
47
+ /** 행 총합 표시 */
48
+ showRowGrandTotals?: boolean;
49
+ /** 열 부분합 표시 */
50
+ showColumnSubTotals?: boolean;
51
+ /** 열 총합 표시 */
52
+ showColumnGrandTotals?: boolean;
53
+ /** 행 부분합 기준 필드 (undefined면 모든 필드) */
54
+ rowSubTotalFields?: string[];
55
+ /** 열 부분합 기준 필드 (undefined면 모든 필드) */
56
+ columnSubTotalFields?: string[];
57
+ /** 합계를 데이터 앞에 표시 */
58
+ totalsBeforeData?: boolean;
59
+ /** 0 값을 채워 표시 */
60
+ showZeros?: boolean;
61
+ }
62
+ export type { PivotRowField, PivotColumnField, PivotValueField, PivotFilterField };
@@ -0,0 +1,118 @@
1
+ import { FieldDef, PureSheetEventType, PivotRowField, PivotColumnField, PivotValueField, FormatRowCallback, PartialTranslationMap, GroupConfig, ColumnGroupDef, RowHeaderConfig, FieldRowTemplate, LoaderConfig, RowSelectionConfig, CellSelectionConfig, ScrollEndReachedPayload, ScrollPayload, UndoStack } from '@vmscloud/moz-ui-grid-core';
2
+ import { IContextMenuConfig } from './toolbar';
3
+ /**
4
+ * MozGridReactCore Props
5
+ *
6
+ * Vue 버전(MozGridVueCoreProps)과 동일 시그니처. 이벤트는 별도 onXxx 콜백 prop으로 제공.
7
+ */
8
+ export interface MozGridReactCoreProps {
9
+ fields: FieldDef[];
10
+ data?: Record<string, unknown>[];
11
+ mode?: 'flat' | 'pivot';
12
+ pivotRowFields?: PivotRowField[];
13
+ pivotColumnFields?: PivotColumnField[];
14
+ pivotValueFields?: PivotValueField[];
15
+ height?: string | number;
16
+ keyFields?: string[];
17
+ theme?: 'light' | 'dark' | 'auto';
18
+ rowHeight?: number;
19
+ headerHeight?: number;
20
+ showHeader?: boolean;
21
+ resizableColumns?: boolean;
22
+ reorderableColumns?: boolean;
23
+ /** @deprecated `rowHeader`를 사용하세요 (core가 warn 후 자동 매핑) */
24
+ showRowHeader?: boolean | {
25
+ width?: number;
26
+ };
27
+ /** 행 헤더 (구 showRowHeader) — 객체형으로 width/cellRenderer/headerRenderer 지정 */
28
+ rowHeader?: boolean | RowHeaderConfig;
29
+ rowSelection?: RowSelectionConfig;
30
+ cellSelection?: CellSelectionConfig;
31
+ cellSelectionImpliesRows?: boolean;
32
+ rowModel?: 'client' | 'server';
33
+ endReachedThresholdRows?: number;
34
+ editable?: boolean;
35
+ tooltipMode?: 'none' | 'overflow' | 'always';
36
+ alternatingRows?: boolean;
37
+ autoFitColumns?: boolean;
38
+ dynamicRowHeights?: boolean;
39
+ reorderableRows?: boolean;
40
+ locale?: string;
41
+ engine?: 'aq' | 'native';
42
+ useWorker?: boolean;
43
+ loader?: LoaderConfig;
44
+ preventKeyEdit?: boolean;
45
+ showStatusBar?: boolean;
46
+ showDragHandleColumn?: boolean;
47
+ undoStack?: InstanceType<typeof UndoStack>;
48
+ formatRow?: FormatRowCallback;
49
+ translations?: PartialTranslationMap;
50
+ rowStyle?: string;
51
+ headerStyle?: string;
52
+ rowHeightChangeThreshold?: number;
53
+ group?: GroupConfig;
54
+ columnGroups?: ColumnGroupDef[];
55
+ rowTemplate?: FieldRowTemplate;
56
+ /** PureSheet 인스턴스가 준비됐을 때 */
57
+ onReady?: (grid: unknown) => void;
58
+ onDataLoaded?: () => void;
59
+ onRowClick?: (payload: unknown) => void;
60
+ onRowDblclick?: (payload: unknown) => void;
61
+ onRowPinned?: (payload: unknown) => void;
62
+ onRowUnpinned?: (payload: unknown) => void;
63
+ onRowReordered?: (payload: unknown) => void;
64
+ onCellClick?: (payload: unknown) => void;
65
+ onCellDblclick?: (payload: unknown) => void;
66
+ onCellChange?: (payload: unknown) => void;
67
+ onCellBeforeEdit?: (payload: unknown) => void;
68
+ onCellEditCommitting?: (payload: unknown) => void;
69
+ onCellEditCommitted?: (payload: unknown) => void;
70
+ onCellTooltip?: (payload: unknown) => void;
71
+ onSelectionChanged?: (payload: unknown) => void;
72
+ onColumnResize?: (payload: unknown) => void;
73
+ onColumnReorder?: (payload: unknown) => void;
74
+ onColumnPin?: (payload: unknown) => void;
75
+ onColumnVisibility?: (payload: unknown) => void;
76
+ onSortChanged?: (payload: unknown) => void;
77
+ onFilterChanged?: (payload: unknown) => void;
78
+ onScroll?: (payload: ScrollPayload) => void;
79
+ onEndReached?: (payload: ScrollEndReachedPayload) => void;
80
+ onUndoStateChange?: (payload: unknown) => void;
81
+ onClipboardCopy?: (payload: unknown) => void;
82
+ onClipboardPaste?: (payload: unknown) => void;
83
+ onValidationChanged?: (payload: unknown) => void;
84
+ onColumnGroupToggle?: (payload: unknown) => void;
85
+ onGroupToggle?: (payload: unknown) => void;
86
+ onGroupBatchToggle?: (payload: unknown) => void;
87
+ onContextMenu?: (payload: unknown) => void;
88
+ /** 자식: 템플릿 등록 컴포넌트들 */
89
+ children?: React.ReactNode;
90
+ }
91
+ /**
92
+ * MozGridReact Props (toolbar/footer 등 UI 포함).
93
+ */
94
+ export interface MozGridReactProps extends MozGridReactCoreProps {
95
+ name?: string;
96
+ useToolBox?: boolean;
97
+ useToolBoxSetting?: boolean;
98
+ useExtendFooter?: boolean;
99
+ useSummaryFooter?: boolean;
100
+ useSort?: boolean;
101
+ useCustomCell?: boolean;
102
+ contextMenuConfig?: IContextMenuConfig;
103
+ useContextMenu?: boolean;
104
+ loading?: boolean;
105
+ emptyState?: {
106
+ isCustomState?: boolean;
107
+ headerMsg?: string;
108
+ contentMsg?: string;
109
+ useImg?: boolean;
110
+ selectImg?: 'Custom' | 'Result' | 'Data' | 'Search';
111
+ };
112
+ }
113
+ /** Props → PureSheetConfig 변환에 사용하는 키 목록 (Vue와 동일) */
114
+ export declare const CONFIG_PROP_KEYS: readonly ["keyFields", "theme", "rowHeight", "headerHeight", "showHeader", "resizableColumns", "reorderableColumns", "showRowHeader", "rowHeader", "rowSelection", "cellSelection", "cellSelectionImpliesRows", "rowModel", "endReachedThresholdRows", "editable", "tooltipMode", "alternatingRows", "autoFitColumns", "dynamicRowHeights", "reorderableRows", "locale", "engine", "useWorker", "loader", "preventKeyEdit", "showStatusBar", "showDragHandleColumn", "undoStack", "formatRow", "translations", "rowStyle", "headerStyle", "rowHeightChangeThreshold"];
115
+ export declare const FLAT_ONLY_PROP_KEYS: readonly ["group", "columnGroups", "rowTemplate"];
116
+ export declare const BRIDGED_EVENTS: PureSheetEventType[];
117
+ /** PureSheet 이벤트 → onXxx prop 이름 매핑 */
118
+ export declare const EVENT_TO_PROP: Record<PureSheetEventType, keyof MozGridReactCoreProps>;