@vmscloud/moz-ui-grid-vue 0.1.41

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 (213) hide show
  1. package/README.md +71 -0
  2. package/dist/MozGrid.vue.d.ts +127 -0
  3. package/dist/bridge/VueRenderer.d.ts +37 -0
  4. package/dist/bridge/fieldBuilder.d.ts +9 -0
  5. package/dist/bridge/lifecycle.d.ts +6 -0
  6. package/dist/bridge/templateRegistry.d.ts +8 -0
  7. package/dist/chunks/index-BDQ0HlwR.js +3404 -0
  8. package/dist/chunks/index-D5KJLBGW.cjs +14 -0
  9. package/dist/chunks/notification.contract-BTOch6ed.js +16 -0
  10. package/dist/chunks/notification.contract-oFkBaE2U.cjs +1 -0
  11. package/dist/compat/MozGridVue.vue.d.ts +645 -0
  12. package/dist/compat/MozPivotVue.vue.d.ts +606 -0
  13. package/dist/compat/index.d.ts +9 -0
  14. package/dist/compat/legacyGridAliases.d.ts +8 -0
  15. package/dist/composables/useGridPreset.d.ts +19 -0
  16. package/dist/contracts/UserLayoutInstance.d.ts +38 -0
  17. package/dist/contracts/notification.contract.d.ts +41 -0
  18. package/dist/contracts/userLayout.contract.d.ts +16 -0
  19. package/dist/index.cjs +26 -0
  20. package/dist/index.d.ts +24 -0
  21. package/dist/index.js +90599 -0
  22. package/dist/legacy/components/common/Dragging.d.ts +17 -0
  23. package/dist/legacy/components/common/Dragging.vue.d.ts +49 -0
  24. package/dist/legacy/components/common/custom-cell/FormulaEngine.d.ts +256 -0
  25. package/dist/legacy/components/common/custom-cell/FormulaInput.vue.d.ts +33 -0
  26. package/dist/legacy/components/common/custom-cell/GridCustomCell.vue.d.ts +23 -0
  27. package/dist/legacy/components/common/custom-cell/useFormulaAutocomplete.d.ts +44 -0
  28. package/dist/legacy/components/common/excel/ClientExcelUploadPopup.vue.d.ts +201 -0
  29. package/dist/legacy/components/common/excel/assets/IconDropZone.vue.d.ts +2 -0
  30. package/dist/legacy/components/common/excel/assets/IconFileUpload.vue.d.ts +2 -0
  31. package/dist/legacy/components/common/filter/GridFilter.vue.d.ts +23 -0
  32. package/dist/legacy/components/common/footer/GridFooter.vue.d.ts +29 -0
  33. package/dist/legacy/components/common/sort/GridSort.vue.d.ts +23 -0
  34. package/dist/legacy/components/common/toolbar/GridSearchInput.vue.d.ts +33 -0
  35. package/dist/legacy/components/grid/MozGridVue.vue.d.ts +2041 -0
  36. package/dist/legacy/components/grid/MozGridVueCore.vue.d.ts +118 -0
  37. package/dist/legacy/components/grid/bulk-editor/GridBulkEditor.vue.d.ts +10 -0
  38. package/dist/legacy/components/grid/column-settings/AlignPicker.vue.d.ts +10 -0
  39. package/dist/legacy/components/grid/column-settings/ColorSwatchPicker.vue.d.ts +11 -0
  40. package/dist/legacy/components/grid/column-settings/ColumnListItem.vue.d.ts +17 -0
  41. package/dist/legacy/components/grid/column-settings/ColumnOptionsPanel.vue.d.ts +32 -0
  42. package/dist/legacy/components/grid/column-settings/FontSizePicker.vue.d.ts +10 -0
  43. package/dist/legacy/components/grid/column-settings/FontStyleToggles.vue.d.ts +15 -0
  44. package/dist/legacy/components/grid/column-settings/MaskPresetPicker.vue.d.ts +14 -0
  45. package/dist/legacy/components/grid/context-menu/GridContextMenu.vue.d.ts +208 -0
  46. package/dist/legacy/components/grid/group-panel/GroupPanel.vue.d.ts +18 -0
  47. package/dist/legacy/components/grid/toolbar/ColumnPicker.vue.d.ts +17 -0
  48. package/dist/legacy/components/grid/toolbar/ColumnSettings.vue.d.ts +30 -0
  49. package/dist/legacy/components/grid/toolbar/GridOptionModal.vue.d.ts +211 -0
  50. package/dist/legacy/components/grid/toolbar/GridToolBox.vue.d.ts +69 -0
  51. package/dist/legacy/components/pivot/MozPivotVue.vue.d.ts +1868 -0
  52. package/dist/legacy/components/pivot/PivotContextMenu.vue.d.ts +634 -0
  53. package/dist/legacy/components/pivot/PivotFieldChip.vue.d.ts +16 -0
  54. package/dist/legacy/components/pivot/PivotFieldDropZone.vue.d.ts +26 -0
  55. package/dist/legacy/components/pivot/PivotFieldPanel.vue.d.ts +28 -0
  56. package/dist/legacy/components/pivot/PivotOptionModal.vue.d.ts +534 -0
  57. package/dist/legacy/components/pivot/PivotToolBox.vue.d.ts +79 -0
  58. package/dist/legacy/components/pivot/chart/EChart.vue.d.ts +13 -0
  59. package/dist/legacy/components/pivot/chart/MozPivotChart.types.d.ts +16 -0
  60. package/dist/legacy/components/pivot/chart/MozPivotChart.vue.d.ts +14 -0
  61. package/dist/legacy/components/pivot/chart/PivotChartDetail.vue.d.ts +13 -0
  62. package/dist/legacy/components/pivot/chart/PivotChartMini.vue.d.ts +18 -0
  63. package/dist/legacy/components/pivot/chart/PivotChartMultiple.vue.d.ts +18 -0
  64. package/dist/legacy/components/pivot/chart/PivotChartToolbar.vue.d.ts +38 -0
  65. package/dist/legacy/components/pivot/chart/chartUtils.d.ts +45 -0
  66. package/dist/legacy/components/pivot/chart/useChartData.d.ts +35 -0
  67. package/dist/legacy/composables/useCellTooltip.d.ts +8 -0
  68. package/dist/legacy/composables/useClientExcelExport.d.ts +24 -0
  69. package/dist/legacy/composables/useClientExcelStore.d.ts +16 -0
  70. package/dist/legacy/composables/useColumnFormatter.d.ts +45 -0
  71. package/dist/legacy/composables/useColumnSettings.d.ts +35 -0
  72. package/dist/legacy/composables/useContextMenu.d.ts +71 -0
  73. package/dist/legacy/composables/useGridBulkEditor.d.ts +36 -0
  74. package/dist/legacy/composables/useGridChanges.d.ts +28 -0
  75. package/dist/legacy/composables/useGridColumns.d.ts +37 -0
  76. package/dist/legacy/composables/useGridCustomCell.d.ts +34 -0
  77. package/dist/legacy/composables/useGridEvents.d.ts +14 -0
  78. package/dist/legacy/composables/useGridFilter.d.ts +38 -0
  79. package/dist/legacy/composables/useGridInstance.d.ts +16 -0
  80. package/dist/legacy/composables/useGridSelect.d.ts +18 -0
  81. package/dist/legacy/composables/useGridSelection.d.ts +18 -0
  82. package/dist/legacy/composables/useGridSort.d.ts +38 -0
  83. package/dist/legacy/composables/useGridUndoRedo.d.ts +28 -0
  84. package/dist/legacy/composables/useGridValidation.d.ts +28 -0
  85. package/dist/legacy/composables/useMaskPresets.d.ts +38 -0
  86. package/dist/legacy/composables/useSearchHighlight.d.ts +12 -0
  87. package/dist/legacy/icons/IconAdd.vue.d.ts +11 -0
  88. package/dist/legacy/icons/IconArrowDownWithTail.vue.d.ts +11 -0
  89. package/dist/legacy/icons/IconArrowLeft.vue.d.ts +11 -0
  90. package/dist/legacy/icons/IconArrowLeftWithTail.vue.d.ts +11 -0
  91. package/dist/legacy/icons/IconArrowRight.vue.d.ts +11 -0
  92. package/dist/legacy/icons/IconArrowUpCenter.vue.d.ts +11 -0
  93. package/dist/legacy/icons/IconArrowUpWithTail.vue.d.ts +11 -0
  94. package/dist/legacy/icons/IconChart.vue.d.ts +11 -0
  95. package/dist/legacy/icons/IconClose.vue.d.ts +13 -0
  96. package/dist/legacy/icons/IconColorPicker.vue.d.ts +11 -0
  97. package/dist/legacy/icons/IconCustomCell.vue.d.ts +11 -0
  98. package/dist/legacy/icons/IconDecide.vue.d.ts +11 -0
  99. package/dist/legacy/icons/IconDownload.vue.d.ts +11 -0
  100. package/dist/legacy/icons/IconDragHandler.vue.d.ts +11 -0
  101. package/dist/legacy/icons/IconFilter.vue.d.ts +11 -0
  102. package/dist/legacy/icons/IconInfoFilled.vue.d.ts +11 -0
  103. package/dist/legacy/icons/IconRedo.vue.d.ts +9 -0
  104. package/dist/legacy/icons/IconReset.vue.d.ts +9 -0
  105. package/dist/legacy/icons/IconResetGridToolbar.vue.d.ts +11 -0
  106. package/dist/legacy/icons/IconSearch.vue.d.ts +11 -0
  107. package/dist/legacy/icons/IconSetting.vue.d.ts +11 -0
  108. package/dist/legacy/icons/IconSettingFilled.vue.d.ts +11 -0
  109. package/dist/legacy/icons/IconSort.vue.d.ts +11 -0
  110. package/dist/legacy/icons/IconToastWarning.vue.d.ts +11 -0
  111. package/dist/legacy/icons/IconUndo.vue.d.ts +9 -0
  112. package/dist/legacy/icons/index.d.ts +25 -0
  113. package/dist/legacy/index.d.ts +69 -0
  114. package/dist/legacy/shared/colorPresets.d.ts +36 -0
  115. package/dist/legacy/store/UploadRefreshRegistry.d.ts +5 -0
  116. package/dist/legacy/store/excelStore.d.ts +89 -0
  117. package/dist/legacy/store/index.d.ts +231 -0
  118. package/dist/legacy/stores/index.d.ts +2 -0
  119. package/dist/legacy/stores/projectInfo/projectInfo.contract.d.ts +130 -0
  120. package/dist/legacy/stories/Autofit.stories.d.ts +9 -0
  121. package/dist/legacy/stories/CRUD.stories.d.ts +9 -0
  122. package/dist/legacy/stories/CellAttributes.stories.d.ts +19 -0
  123. package/dist/legacy/stories/CellMask.stories.d.ts +19 -0
  124. package/dist/legacy/stories/ClientExcel.stories.d.ts +8 -0
  125. package/dist/legacy/stories/Clipboard.stories.d.ts +12 -0
  126. package/dist/legacy/stories/ColumnVisibility.stories.d.ts +12 -0
  127. package/dist/legacy/stories/ColumnWidths.stories.d.ts +11 -0
  128. package/dist/legacy/stories/CustomSortFilter.stories.d.ts +7 -0
  129. package/dist/legacy/stories/DynamicRowHeight.stories.d.ts +13 -0
  130. package/dist/legacy/stories/Editors.stories.d.ts +9 -0
  131. package/dist/legacy/stories/EmptyState.stories.d.ts +10 -0
  132. package/dist/legacy/stories/FormatRow.stories.d.ts +20 -0
  133. package/dist/legacy/stories/Grouping.stories.d.ts +14 -0
  134. package/dist/legacy/stories/HeaderGroup.stories.d.ts +11 -0
  135. package/dist/legacy/stories/LargeData.stories.d.ts +19 -0
  136. package/dist/legacy/stories/MasterDetail.stories.d.ts +17 -0
  137. package/dist/legacy/stories/Merge.stories.d.ts +10 -0
  138. package/dist/legacy/stories/MultiRow.stories.d.ts +12 -0
  139. package/dist/legacy/stories/MultiRowCrud.stories.d.ts +11 -0
  140. package/dist/legacy/stories/MultiRowGroup.stories.d.ts +11 -0
  141. package/dist/legacy/stories/Pinning.stories.d.ts +44 -0
  142. package/dist/legacy/stories/Pivot.stories.d.ts +23 -0
  143. package/dist/legacy/stories/PivotAdvanced.stories.d.ts +20 -0
  144. package/dist/legacy/stories/PivotChart.stories.d.ts +23 -0
  145. package/dist/legacy/stories/PivotNonNumeric.stories.d.ts +27 -0
  146. package/dist/legacy/stories/Preset.stories.d.ts +11 -0
  147. package/dist/legacy/stories/ReactiveAPI.stories.d.ts +8 -0
  148. package/dist/legacy/stories/ReactiveSafety.stories.d.ts +28 -0
  149. package/dist/legacy/stories/Repro.stories.d.ts +36 -0
  150. package/dist/legacy/stories/RowAPI.stories.d.ts +12 -0
  151. package/dist/legacy/stories/SelectionModes.stories.d.ts +35 -0
  152. package/dist/legacy/stories/Streaming.stories.d.ts +12 -0
  153. package/dist/legacy/stories/Tree.stories.d.ts +13 -0
  154. package/dist/legacy/stories/WorkerMode.stories.d.ts +15 -0
  155. package/dist/legacy/stories/_helpers/localDataLoader.d.ts +7 -0
  156. package/dist/legacy/stories/_helpers/sampleData.d.ts +117 -0
  157. package/dist/legacy/types/FileParameter.d.ts +31 -0
  158. package/dist/legacy/types/StreamingParameter.d.ts +18 -0
  159. package/dist/legacy/types/excel.types.d.ts +48 -0
  160. package/dist/legacy/types/index.d.ts +10 -0
  161. package/dist/legacy/types/pivot-props.d.ts +140 -0
  162. package/dist/legacy/types/props.d.ts +176 -0
  163. package/dist/legacy/types/toolbar.d.ts +225 -0
  164. package/dist/legacy/utils/async/debounce.d.ts +4 -0
  165. package/dist/legacy/utils/crypto/crypto.d.ts +7 -0
  166. package/dist/legacy/utils/dialog/dialog.d.ts +19 -0
  167. package/dist/legacy/utils/excel/ExcelGuard.d.ts +73 -0
  168. package/dist/legacy/utils/excel/ExcelImportUtil.d.ts +34 -0
  169. package/dist/legacy/utils/excel/ExcelQueueManager.d.ts +57 -0
  170. package/dist/legacy/utils/excel/ExcelTaskRunner.d.ts +17 -0
  171. package/dist/legacy/utils/excel/ExcelTimeoutManager.d.ts +37 -0
  172. package/dist/legacy/utils/file.d.ts +34 -0
  173. package/dist/legacy/utils/http/rest.d.ts +5 -0
  174. package/dist/legacy/utils/id/generator.d.ts +2 -0
  175. package/dist/legacy/utils/index.d.ts +10 -0
  176. package/dist/store.cjs +1 -0
  177. package/dist/store.js +8 -0
  178. package/dist/stories/ColumnLockVisible.stories.d.ts +42 -0
  179. package/dist/stories/DateBooleanFilter.stories.d.ts +42 -0
  180. package/dist/stories/DisplayedRowApi.stories.d.ts +28 -0
  181. package/dist/stories/FieldId.stories.d.ts +113 -0
  182. package/dist/stories/GroupPanelWithoutToolbox.stories.d.ts +28 -0
  183. package/dist/stories/GroupRowRecycle.stories.d.ts +45 -0
  184. package/dist/stories/GroupTreeExpandNav.stories.d.ts +41 -0
  185. package/dist/stories/LargeData.stories.d.ts +20 -0
  186. package/dist/stories/MozGrid.stories.d.ts +51 -0
  187. package/dist/stories/PivotBarInitiallyOpen.stories.d.ts +69 -0
  188. package/dist/stories/PivotBarWithoutToolbox.stories.d.ts +39 -0
  189. package/dist/stories/SelectionApiPlayground.stories.d.ts +28 -0
  190. package/dist/stories/SingleSelectionModes.stories.d.ts +47 -0
  191. package/dist/stories/WideColumns.stories.d.ts +17 -0
  192. package/dist/style.css +1 -0
  193. package/dist/templates/CellEditor.d.ts +27 -0
  194. package/dist/templates/CellTemplate.d.ts +27 -0
  195. package/dist/templates/DetailTemplate.d.ts +60 -0
  196. package/dist/templates/GroupTemplate.d.ts +17 -0
  197. package/dist/templates/HeaderTemplate.d.ts +25 -0
  198. package/dist/types/injection-keys.d.ts +24 -0
  199. package/dist/types/slots.d.ts +49 -0
  200. package/dist/utils/excel/ExcelGuard.cjs +1 -0
  201. package/dist/utils/excel/ExcelGuard.js +74 -0
  202. package/dist/utils/excel/ExcelImportUtil.cjs +1 -0
  203. package/dist/utils/excel/ExcelImportUtil.js +61 -0
  204. package/dist/utils/excel/ExcelQueueManager.cjs +1 -0
  205. package/dist/utils/excel/ExcelQueueManager.js +10 -0
  206. package/dist/utils/excel/ExcelTaskRunner.cjs +1 -0
  207. package/dist/utils/excel/ExcelTaskRunner.js +12 -0
  208. package/dist/utils/excel/ExcelTimeoutManager.cjs +1 -0
  209. package/dist/utils/excel/ExcelTimeoutManager.js +420 -0
  210. package/docs/manual/examples.md +2385 -0
  211. package/docs/manual/reference.md +4695 -0
  212. package/docs/manual/reference_vue.md +709 -0
  213. package/package.json +129 -0
@@ -0,0 +1,89 @@
1
+ import { DataType, IExcelAPI, IExcelInfo } from '../types/excel.types';
2
+ import { FileParameter } from '../types';
3
+ import { AxiosRequestConfig } from 'axios';
4
+ import { Ref } from 'vue';
5
+ /**
6
+ * Excel export 포맷 (원본 core/types.d.ts에서 inline)
7
+ */
8
+ export type ExcelFormat = 'excel' | 'csv';
9
+ export declare const excelProgressStoreSetup: () => {
10
+ currentValue: Ref<number, number>;
11
+ totalValue: Ref<number, number>;
12
+ progressTime: Ref<number, number>;
13
+ remainTime: Ref<number, number>;
14
+ };
15
+ export type ExcelDownload = {
16
+ current?: number;
17
+ total?: number;
18
+ remainTime?: number;
19
+ sessionID?: string;
20
+ isDone?: boolean;
21
+ fileName?: string;
22
+ notiDatetime?: string;
23
+ };
24
+ export declare const excelStoreSetup: () => {
25
+ showPopup: Ref<boolean, boolean>;
26
+ isOverwrite: Ref<boolean, boolean>;
27
+ exportFormat: Ref<ExcelFormat, ExcelFormat>;
28
+ excelInfo: Ref<IExcelInfo, IExcelInfo>;
29
+ excelAPI: Ref<IExcelAPI, IExcelAPI>;
30
+ file: Ref<FileParameter | null, FileParameter | null>;
31
+ excelFileMap: Map<string, string>;
32
+ downloadInfo: Ref<{
33
+ current?: number | undefined;
34
+ total?: number | undefined;
35
+ remainTime?: number | undefined;
36
+ sessionID?: string | undefined;
37
+ isDone?: boolean | undefined;
38
+ fileName?: string | undefined;
39
+ notiDatetime?: string | undefined;
40
+ } | null, ExcelDownload | {
41
+ current?: number | undefined;
42
+ total?: number | undefined;
43
+ remainTime?: number | undefined;
44
+ sessionID?: string | undefined;
45
+ isDone?: boolean | undefined;
46
+ fileName?: string | undefined;
47
+ notiDatetime?: string | undefined;
48
+ } | null>;
49
+ initialize: (info?: IExcelInfo, api?: IExcelAPI) => void;
50
+ setInfo: (info: IExcelInfo) => void;
51
+ newExcelInfo: (gridKeys: string[], flexGrid: any) => {
52
+ keyColumns: IExcelInfo["keyColumns"];
53
+ columnLayout: IExcelInfo["columnLayout"];
54
+ columnMap: IExcelInfo["columnMap"];
55
+ };
56
+ setAPI: (api: IExcelAPI) => void;
57
+ newExcelApi: (apiKey: string, flexGrid: any, sampleData: Record<string, string>[], fileName: string, refreshCB: () => void, excelUpload: (param?: any, method?: "post") => Promise<any>, autoTransaction: (config: {
58
+ url: string;
59
+ param?: any;
60
+ method?: "POST" | "DELETE";
61
+ }) => Promise<any>) => {
62
+ onUpload: (formData: FormData) => Promise<any>;
63
+ onAdd: (data: any) => Promise<any>;
64
+ onTruncate: () => Promise<any>;
65
+ onDownload: () => Promise<void>;
66
+ onRefresh: () => void;
67
+ onNotify: (e: any) => void;
68
+ };
69
+ setExportFormat: (format: ExcelFormat) => void;
70
+ setUploadSuccess: (status: "success" | "error" | "init") => void;
71
+ show: (_isOverwrite?: boolean) => void;
72
+ hide: () => void;
73
+ download: (param?: any) => Promise<void>;
74
+ createColumnMapForImport: (flexGrid?: any, keyColumns?: string[]) => any;
75
+ createColumnMapForExport: (flexGrid?: any, options?: {
76
+ visibleOnly?: boolean;
77
+ }) => any;
78
+ createFieldMapForExport: (pivotGrid?: any) => any;
79
+ updateDownloadStatus: (newData: ExcelDownload) => void;
80
+ downloadFromS3: (presignedUrl?: string) => void;
81
+ requestGenerateExcel: (param?: any, requestOptions?: AxiosRequestConfig) => Promise<import('axios').AxiosResponse<any, any, {}>>;
82
+ targetTable: Ref<string | undefined, string | undefined>;
83
+ registerUploadOwner: (sessionId: string, apiKey: string) => void;
84
+ clearUploadOwner: (sessionId: string) => void;
85
+ registerRefresh: (apiKey: string, cb: () => void) => void;
86
+ unregisterRefresh: (apiKey: string) => void;
87
+ triggerRefreshBySession: (sessionId: string) => boolean;
88
+ };
89
+ export declare const dataTypeToString: (type: DataType) => "System.String" | "System.Decimal" | "System.Boolean" | "System.DateTime";
@@ -0,0 +1,231 @@
1
+ import { dataTypeToString } from './excelStore';
2
+ /**
3
+ * 원본: libraries/moz-wijmo-grid/src/store/index.ts
4
+ * - bulkEditorStore / saveLayoutStore는 엑셀 모듈과 무관하므로 제외
5
+ */
6
+ export { dataTypeToString };
7
+ export declare const useExcelStore: import('pinia').StoreDefinition<"excelPopup", Pick<{
8
+ showPopup: import('vue').Ref<boolean, boolean>;
9
+ isOverwrite: import('vue').Ref<boolean, boolean>;
10
+ exportFormat: import('vue').Ref<import('./excelStore').ExcelFormat, import('./excelStore').ExcelFormat>;
11
+ excelInfo: import('vue').Ref<import('../types').IExcelInfo, import('../types').IExcelInfo>;
12
+ excelAPI: import('vue').Ref<import('../types').IExcelAPI, import('../types').IExcelAPI>;
13
+ file: import('vue').Ref<import('../types').FileParameter | null, import('../types').FileParameter | null>;
14
+ excelFileMap: Map<string, string>;
15
+ downloadInfo: import('vue').Ref<{
16
+ current?: number | undefined;
17
+ total?: number | undefined;
18
+ remainTime?: number | undefined;
19
+ sessionID?: string | undefined;
20
+ isDone?: boolean | undefined;
21
+ fileName?: string | undefined;
22
+ notiDatetime?: string | undefined;
23
+ } | null, import('./excelStore').ExcelDownload | {
24
+ current?: number | undefined;
25
+ total?: number | undefined;
26
+ remainTime?: number | undefined;
27
+ sessionID?: string | undefined;
28
+ isDone?: boolean | undefined;
29
+ fileName?: string | undefined;
30
+ notiDatetime?: string | undefined;
31
+ } | null>;
32
+ initialize: (info?: import('../types').IExcelInfo, api?: import('../types').IExcelAPI) => void;
33
+ setInfo: (info: import('../types').IExcelInfo) => void;
34
+ newExcelInfo: (gridKeys: string[], flexGrid: any) => {
35
+ keyColumns: import('../types').IExcelInfo["keyColumns"];
36
+ columnLayout: import('../types').IExcelInfo["columnLayout"];
37
+ columnMap: import('../types').IExcelInfo["columnMap"];
38
+ };
39
+ setAPI: (api: import('../types').IExcelAPI) => void;
40
+ newExcelApi: (apiKey: string, flexGrid: any, sampleData: Record<string, string>[], fileName: string, refreshCB: () => void, excelUpload: (param?: any, method?: "post") => Promise<any>, autoTransaction: (config: {
41
+ url: string;
42
+ param?: any;
43
+ method?: "POST" | "DELETE";
44
+ }) => Promise<any>) => {
45
+ onUpload: (formData: FormData) => Promise<any>;
46
+ onAdd: (data: any) => Promise<any>;
47
+ onTruncate: () => Promise<any>;
48
+ onDownload: () => Promise<void>;
49
+ onRefresh: () => void;
50
+ onNotify: (e: any) => void;
51
+ };
52
+ setExportFormat: (format: import('./excelStore').ExcelFormat) => void;
53
+ setUploadSuccess: (status: "success" | "error" | "init") => void;
54
+ show: (_isOverwrite?: boolean) => void;
55
+ hide: () => void;
56
+ download: (param?: any) => Promise<void>;
57
+ createColumnMapForImport: (flexGrid?: any, keyColumns?: string[]) => any;
58
+ createColumnMapForExport: (flexGrid?: any, options?: {
59
+ visibleOnly?: boolean;
60
+ }) => any;
61
+ createFieldMapForExport: (pivotGrid?: any) => any;
62
+ updateDownloadStatus: (newData: import('./excelStore').ExcelDownload) => void;
63
+ downloadFromS3: (presignedUrl?: string) => void;
64
+ requestGenerateExcel: (param?: any, requestOptions?: import('axios').AxiosRequestConfig) => Promise<import('axios').AxiosResponse<any, any, {}>>;
65
+ targetTable: import('vue').Ref<string | undefined, string | undefined>;
66
+ registerUploadOwner: (sessionId: string, apiKey: string) => void;
67
+ clearUploadOwner: (sessionId: string) => void;
68
+ registerRefresh: (apiKey: string, cb: () => void) => void;
69
+ unregisterRefresh: (apiKey: string) => void;
70
+ triggerRefreshBySession: (sessionId: string) => boolean;
71
+ }, "file" | "showPopup" | "isOverwrite" | "targetTable" | "exportFormat" | "excelInfo" | "excelAPI" | "excelFileMap" | "downloadInfo">, Pick<{
72
+ showPopup: import('vue').Ref<boolean, boolean>;
73
+ isOverwrite: import('vue').Ref<boolean, boolean>;
74
+ exportFormat: import('vue').Ref<import('./excelStore').ExcelFormat, import('./excelStore').ExcelFormat>;
75
+ excelInfo: import('vue').Ref<import('../types').IExcelInfo, import('../types').IExcelInfo>;
76
+ excelAPI: import('vue').Ref<import('../types').IExcelAPI, import('../types').IExcelAPI>;
77
+ file: import('vue').Ref<import('../types').FileParameter | null, import('../types').FileParameter | null>;
78
+ excelFileMap: Map<string, string>;
79
+ downloadInfo: import('vue').Ref<{
80
+ current?: number | undefined;
81
+ total?: number | undefined;
82
+ remainTime?: number | undefined;
83
+ sessionID?: string | undefined;
84
+ isDone?: boolean | undefined;
85
+ fileName?: string | undefined;
86
+ notiDatetime?: string | undefined;
87
+ } | null, import('./excelStore').ExcelDownload | {
88
+ current?: number | undefined;
89
+ total?: number | undefined;
90
+ remainTime?: number | undefined;
91
+ sessionID?: string | undefined;
92
+ isDone?: boolean | undefined;
93
+ fileName?: string | undefined;
94
+ notiDatetime?: string | undefined;
95
+ } | null>;
96
+ initialize: (info?: import('../types').IExcelInfo, api?: import('../types').IExcelAPI) => void;
97
+ setInfo: (info: import('../types').IExcelInfo) => void;
98
+ newExcelInfo: (gridKeys: string[], flexGrid: any) => {
99
+ keyColumns: import('../types').IExcelInfo["keyColumns"];
100
+ columnLayout: import('../types').IExcelInfo["columnLayout"];
101
+ columnMap: import('../types').IExcelInfo["columnMap"];
102
+ };
103
+ setAPI: (api: import('../types').IExcelAPI) => void;
104
+ newExcelApi: (apiKey: string, flexGrid: any, sampleData: Record<string, string>[], fileName: string, refreshCB: () => void, excelUpload: (param?: any, method?: "post") => Promise<any>, autoTransaction: (config: {
105
+ url: string;
106
+ param?: any;
107
+ method?: "POST" | "DELETE";
108
+ }) => Promise<any>) => {
109
+ onUpload: (formData: FormData) => Promise<any>;
110
+ onAdd: (data: any) => Promise<any>;
111
+ onTruncate: () => Promise<any>;
112
+ onDownload: () => Promise<void>;
113
+ onRefresh: () => void;
114
+ onNotify: (e: any) => void;
115
+ };
116
+ setExportFormat: (format: import('./excelStore').ExcelFormat) => void;
117
+ setUploadSuccess: (status: "success" | "error" | "init") => void;
118
+ show: (_isOverwrite?: boolean) => void;
119
+ hide: () => void;
120
+ download: (param?: any) => Promise<void>;
121
+ createColumnMapForImport: (flexGrid?: any, keyColumns?: string[]) => any;
122
+ createColumnMapForExport: (flexGrid?: any, options?: {
123
+ visibleOnly?: boolean;
124
+ }) => any;
125
+ createFieldMapForExport: (pivotGrid?: any) => any;
126
+ updateDownloadStatus: (newData: import('./excelStore').ExcelDownload) => void;
127
+ downloadFromS3: (presignedUrl?: string) => void;
128
+ requestGenerateExcel: (param?: any, requestOptions?: import('axios').AxiosRequestConfig) => Promise<import('axios').AxiosResponse<any, any, {}>>;
129
+ targetTable: import('vue').Ref<string | undefined, string | undefined>;
130
+ registerUploadOwner: (sessionId: string, apiKey: string) => void;
131
+ clearUploadOwner: (sessionId: string) => void;
132
+ registerRefresh: (apiKey: string, cb: () => void) => void;
133
+ unregisterRefresh: (apiKey: string) => void;
134
+ triggerRefreshBySession: (sessionId: string) => boolean;
135
+ }, never>, Pick<{
136
+ showPopup: import('vue').Ref<boolean, boolean>;
137
+ isOverwrite: import('vue').Ref<boolean, boolean>;
138
+ exportFormat: import('vue').Ref<import('./excelStore').ExcelFormat, import('./excelStore').ExcelFormat>;
139
+ excelInfo: import('vue').Ref<import('../types').IExcelInfo, import('../types').IExcelInfo>;
140
+ excelAPI: import('vue').Ref<import('../types').IExcelAPI, import('../types').IExcelAPI>;
141
+ file: import('vue').Ref<import('../types').FileParameter | null, import('../types').FileParameter | null>;
142
+ excelFileMap: Map<string, string>;
143
+ downloadInfo: import('vue').Ref<{
144
+ current?: number | undefined;
145
+ total?: number | undefined;
146
+ remainTime?: number | undefined;
147
+ sessionID?: string | undefined;
148
+ isDone?: boolean | undefined;
149
+ fileName?: string | undefined;
150
+ notiDatetime?: string | undefined;
151
+ } | null, import('./excelStore').ExcelDownload | {
152
+ current?: number | undefined;
153
+ total?: number | undefined;
154
+ remainTime?: number | undefined;
155
+ sessionID?: string | undefined;
156
+ isDone?: boolean | undefined;
157
+ fileName?: string | undefined;
158
+ notiDatetime?: string | undefined;
159
+ } | null>;
160
+ initialize: (info?: import('../types').IExcelInfo, api?: import('../types').IExcelAPI) => void;
161
+ setInfo: (info: import('../types').IExcelInfo) => void;
162
+ newExcelInfo: (gridKeys: string[], flexGrid: any) => {
163
+ keyColumns: import('../types').IExcelInfo["keyColumns"];
164
+ columnLayout: import('../types').IExcelInfo["columnLayout"];
165
+ columnMap: import('../types').IExcelInfo["columnMap"];
166
+ };
167
+ setAPI: (api: import('../types').IExcelAPI) => void;
168
+ newExcelApi: (apiKey: string, flexGrid: any, sampleData: Record<string, string>[], fileName: string, refreshCB: () => void, excelUpload: (param?: any, method?: "post") => Promise<any>, autoTransaction: (config: {
169
+ url: string;
170
+ param?: any;
171
+ method?: "POST" | "DELETE";
172
+ }) => Promise<any>) => {
173
+ onUpload: (formData: FormData) => Promise<any>;
174
+ onAdd: (data: any) => Promise<any>;
175
+ onTruncate: () => Promise<any>;
176
+ onDownload: () => Promise<void>;
177
+ onRefresh: () => void;
178
+ onNotify: (e: any) => void;
179
+ };
180
+ setExportFormat: (format: import('./excelStore').ExcelFormat) => void;
181
+ setUploadSuccess: (status: "success" | "error" | "init") => void;
182
+ show: (_isOverwrite?: boolean) => void;
183
+ hide: () => void;
184
+ download: (param?: any) => Promise<void>;
185
+ createColumnMapForImport: (flexGrid?: any, keyColumns?: string[]) => any;
186
+ createColumnMapForExport: (flexGrid?: any, options?: {
187
+ visibleOnly?: boolean;
188
+ }) => any;
189
+ createFieldMapForExport: (pivotGrid?: any) => any;
190
+ updateDownloadStatus: (newData: import('./excelStore').ExcelDownload) => void;
191
+ downloadFromS3: (presignedUrl?: string) => void;
192
+ requestGenerateExcel: (param?: any, requestOptions?: import('axios').AxiosRequestConfig) => Promise<import('axios').AxiosResponse<any, any, {}>>;
193
+ targetTable: import('vue').Ref<string | undefined, string | undefined>;
194
+ registerUploadOwner: (sessionId: string, apiKey: string) => void;
195
+ clearUploadOwner: (sessionId: string) => void;
196
+ registerRefresh: (apiKey: string, cb: () => void) => void;
197
+ unregisterRefresh: (apiKey: string) => void;
198
+ triggerRefreshBySession: (sessionId: string) => boolean;
199
+ }, "hide" | "initialize" | "download" | "show" | "setInfo" | "newExcelInfo" | "setAPI" | "newExcelApi" | "setExportFormat" | "setUploadSuccess" | "createColumnMapForImport" | "createColumnMapForExport" | "createFieldMapForExport" | "updateDownloadStatus" | "downloadFromS3" | "requestGenerateExcel" | "registerUploadOwner" | "clearUploadOwner" | "registerRefresh" | "unregisterRefresh" | "triggerRefreshBySession">>;
200
+ export declare const useExcelDownloadStore: import('pinia').StoreDefinition<"excelDownload", Pick<{
201
+ currentValue: import('vue').Ref<number, number>;
202
+ totalValue: import('vue').Ref<number, number>;
203
+ progressTime: import('vue').Ref<number, number>;
204
+ remainTime: import('vue').Ref<number, number>;
205
+ }, "remainTime" | "currentValue" | "totalValue" | "progressTime">, Pick<{
206
+ currentValue: import('vue').Ref<number, number>;
207
+ totalValue: import('vue').Ref<number, number>;
208
+ progressTime: import('vue').Ref<number, number>;
209
+ remainTime: import('vue').Ref<number, number>;
210
+ }, never>, Pick<{
211
+ currentValue: import('vue').Ref<number, number>;
212
+ totalValue: import('vue').Ref<number, number>;
213
+ progressTime: import('vue').Ref<number, number>;
214
+ remainTime: import('vue').Ref<number, number>;
215
+ }, never>>;
216
+ export declare const useExcelUploadStore: import('pinia').StoreDefinition<"excelUpload", Pick<{
217
+ currentValue: import('vue').Ref<number, number>;
218
+ totalValue: import('vue').Ref<number, number>;
219
+ progressTime: import('vue').Ref<number, number>;
220
+ remainTime: import('vue').Ref<number, number>;
221
+ }, "remainTime" | "currentValue" | "totalValue" | "progressTime">, Pick<{
222
+ currentValue: import('vue').Ref<number, number>;
223
+ totalValue: import('vue').Ref<number, number>;
224
+ progressTime: import('vue').Ref<number, number>;
225
+ remainTime: import('vue').Ref<number, number>;
226
+ }, never>, Pick<{
227
+ currentValue: import('vue').Ref<number, number>;
228
+ totalValue: import('vue').Ref<number, number>;
229
+ progressTime: import('vue').Ref<number, number>;
230
+ remainTime: import('vue').Ref<number, number>;
231
+ }, never>>;
@@ -0,0 +1,2 @@
1
+ export { useProjectInfo as useProjectInfoStore } from './projectInfo/projectInfo.contract';
2
+ export type { ProjectInfoContract, ProjectInfoStoreContract } from './projectInfo/projectInfo.contract';
@@ -0,0 +1,130 @@
1
+ import { ComputedRef, InjectionKey, Ref } from 'vue';
2
+ import { SystemType } from '../../types/core';
3
+ export type Lang = 'ko' | 'en' | 'zh' | 'jp' | 'sy';
4
+ export type FormatType = 'qty' | 'priority' | 'ratio' | 'aggregate' | 'date' | 'dateTime' | 'dateWeek' | 'dateMonth' | 'dateDay';
5
+ export interface ProjectInfo {
6
+ projectID: string;
7
+ projectName: string;
8
+ systemID: string;
9
+ systemName: string;
10
+ description?: string;
11
+ isAdmin: boolean;
12
+ isValid: boolean;
13
+ tenantID: string;
14
+ initMenuPath?: string;
15
+ projectStatus?: string;
16
+ projectLogo?: string;
17
+ roleList?: any[];
18
+ manualUrl?: string;
19
+ priority?: number;
20
+ groupID?: string;
21
+ }
22
+ export interface AuthenticatedUser {
23
+ id: string;
24
+ name: string;
25
+ email: string;
26
+ language?: Lang;
27
+ defaultProject?: string;
28
+ adminYN?: string;
29
+ department?: string;
30
+ }
31
+ export interface TenantInfo {
32
+ tenantID: string;
33
+ tenantName: string;
34
+ }
35
+ export interface ProjectDetail {
36
+ projectID: string;
37
+ projectNM: string;
38
+ systemID: SystemType;
39
+ systemName: string;
40
+ tenantID: string;
41
+ tenantNM: string;
42
+ expireDate?: string;
43
+ isAdmin: boolean;
44
+ isValid: boolean;
45
+ logoDir?: string;
46
+ descriptions?: string;
47
+ roleList?: Array<{
48
+ projectID: string;
49
+ roleID: string;
50
+ userID: string;
51
+ }>;
52
+ initMenuPath?: string;
53
+ manualUrl?: string;
54
+ }
55
+ export type DateResult = {
56
+ date: {
57
+ year: string;
58
+ month: string;
59
+ day: string;
60
+ };
61
+ dateTime: {
62
+ year: string;
63
+ month: string;
64
+ day: string;
65
+ time: string;
66
+ };
67
+ dateWeek: {
68
+ year: string;
69
+ week: string;
70
+ };
71
+ dateMonth: {
72
+ year: string;
73
+ month: string;
74
+ };
75
+ };
76
+ /**
77
+ * suite:projectInfo localStorage에 저장되는 전체 데이터 구조
78
+ * 여러 패키지/컴포넌트에서 공유하여 사용합니다.
79
+ */
80
+ export interface ProjectInfoStorageData {
81
+ defaultProjectID: string;
82
+ currentProjectID: string;
83
+ projectList: ProjectInfo[];
84
+ tenantInfo: TenantInfo | null;
85
+ userInfo: AuthenticatedUser | null;
86
+ }
87
+ export interface ProjectInfoState {
88
+ userInfo: AuthenticatedUser | null;
89
+ tenantInfo: TenantInfo | null;
90
+ projectList: ProjectInfo[];
91
+ defaultProjectID: string;
92
+ currentProjectID: string;
93
+ currentProject: ProjectDetail | null;
94
+ formatDate: {
95
+ wijmo: string;
96
+ dayjs: string;
97
+ };
98
+ formatWidth: number;
99
+ isAdmin: boolean;
100
+ }
101
+ export interface ProjectInfoMethods {
102
+ setProjectList(projectData: any): void;
103
+ updateProjectListSettings(updates: {
104
+ projectID: string;
105
+ priority?: number;
106
+ groupID?: string;
107
+ }[]): void;
108
+ setTenantInfo(tenantData: any): void;
109
+ setUserInfo(userData: any): void;
110
+ setCurrentProject(projectID: string): void;
111
+ setLanguage(value: Lang): void;
112
+ setDateFormat(dateFormat: string): void;
113
+ setDefaultProjectID(projectID: string): void;
114
+ formatGrid(formatType: FormatType): string;
115
+ convertToFormat(formatType: FormatType, value: any): string;
116
+ restoreDate<T extends 'date' | 'dateTime' | 'dateWeek' | 'dateMonth'>(dateType: T, date: string): DateResult[T] | null;
117
+ resetStore(): void;
118
+ }
119
+ type StateToRefs<T> = {
120
+ [K in keyof T]: Ref<T[K]> | ComputedRef<T[K]>;
121
+ };
122
+ export type ProjectInfoContract = StateToRefs<ProjectInfoState> & ProjectInfoMethods;
123
+ export type ProjectInfoStoreContract = ProjectInfoState & ProjectInfoMethods;
124
+ export declare const ProjectInfoKey: InjectionKey<ProjectInfoStoreContract>;
125
+ export declare function provideProjectInfo(store: ProjectInfoStoreContract): void;
126
+ /**
127
+ * 라이브러리 내에서 반드시 store가 있어야 하는 상황에서 사용하는 훅.
128
+ */
129
+ export declare function useProjectInfo(): ProjectInfoStoreContract;
130
+ export {};
@@ -0,0 +1,9 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
3
+ /**
4
+ * 컬럼 자동 맞춤 (autofit)
5
+ */
6
+ declare const meta: Meta<typeof MozGridVue>;
7
+ export default meta;
8
+ type Story = StoryObj<typeof MozGridVue>;
9
+ export declare const Default: Story;
@@ -0,0 +1,9 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
3
+ /**
4
+ * 행 추가/수정/삭제 및 Undo/Redo
5
+ */
6
+ declare const meta: Meta<typeof MozGridVue>;
7
+ export default meta;
8
+ type Story = StoryObj<typeof MozGridVue>;
9
+ export declare const Default: Story;
@@ -0,0 +1,19 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
3
+ /**
4
+ * 셀 속성 (cellAttributes) — 정적/동적 셀 스타일링
5
+ *
6
+ * cellAttributes로 셀의 style, class, data-* 등 HTML 속성을 직접 지정합니다.
7
+ * headerAttributes로 헤더 셀에만 속성을 적용할 수 있습니다.
8
+ */
9
+ declare const meta: Meta<typeof MozGridVue>;
10
+ export default meta;
11
+ type Story = StoryObj<typeof MozGridVue>;
12
+ /**
13
+ * 정적 속성: 급여 컬럼에 우측 정렬, 모노스페이스 폰트 적용
14
+ */
15
+ export declare const StaticAttributes: Story;
16
+ /**
17
+ * 동적 속성: 상태/급여/등급 값에 따라 색상 및 배경 변경
18
+ */
19
+ export declare const DynamicAttributes: Story;
@@ -0,0 +1,19 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
3
+ /**
4
+ * 셀 마스킹 — 숫자, 문자열, 날짜, 보안 마스크
5
+ *
6
+ * 원본 데이터를 유지하면서 표시 형식만 변경합니다.
7
+ * 정렬은 원본 데이터 기준, 필터는 마스킹된 형식으로 검색 가능합니다.
8
+ */
9
+ declare const meta: Meta<typeof MozGridVue>;
10
+ export default meta;
11
+ type Story = StoryObj<typeof MozGridVue>;
12
+ /**
13
+ * 숫자/문자열 마스크: 천단위 구분, 전화번호 패턴
14
+ */
15
+ export declare const NumericAndString: Story;
16
+ /**
17
+ * 보안 마스크: 주민번호, 카드번호 등 민감 정보 가림 처리
18
+ */
19
+ export declare const SecureMask: Story;
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ declare const ClientExcelDemoWrapper: import('vue').DefineComponent<{}, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
3
+ [key: string]: any;
4
+ }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
5
+ declare const meta: Meta;
6
+ export default meta;
7
+ type Story = StoryObj<typeof ClientExcelDemoWrapper>;
8
+ export declare const Default: Story;
@@ -0,0 +1,12 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
3
+ /**
4
+ * 클립보드 복사/붙여넣기 및 Undo/Redo
5
+ *
6
+ * 셀 범위를 선택한 후 버튼 또는 키보드 단축키(Ctrl+C, Ctrl+V)로
7
+ * 복사/붙여넣기를 수행할 수 있습니다.
8
+ */
9
+ declare const meta: Meta<typeof MozGridVue>;
10
+ export default meta;
11
+ type Story = StoryObj<typeof MozGridVue>;
12
+ export declare const Default: Story;
@@ -0,0 +1,12 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
3
+ /**
4
+ * 컬럼 표시/숨김 제어
5
+ *
6
+ * onReady 콜백에서 grid.columns API를 사용하여
7
+ * 특정 컬럼을 초기 상태에서 숨길 수 있습니다.
8
+ */
9
+ declare const meta: Meta<typeof MozGridVue>;
10
+ export default meta;
11
+ type Story = StoryObj<typeof MozGridVue>;
12
+ export declare const Default: Story;
@@ -0,0 +1,11 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
3
+ /**
4
+ * 컬럼 너비 설정 — 고정, 유연(flex), 최소/최대 제약
5
+ */
6
+ declare const meta: Meta<typeof MozGridVue>;
7
+ export default meta;
8
+ type Story = StoryObj<typeof MozGridVue>;
9
+ export declare const FixedWidth: Story;
10
+ export declare const FlexLayout: Story;
11
+ export declare const MinMaxWidth: Story;
@@ -0,0 +1,7 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
3
+ /** 커스텀 정렬/필터: sortKey와 predicate를 활용한 고급 정렬/필터 */
4
+ declare const meta: Meta<typeof MozGridVue>;
5
+ export default meta;
6
+ type Story = StoryObj<typeof MozGridVue>;
7
+ export declare const Default: Story;
@@ -0,0 +1,13 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
3
+ /**
4
+ * 동적 행 높이 — 셀 내용에 따라 행 높이가 자동 조절
5
+ *
6
+ * dynamicRowHeights: true와 함께
7
+ * cellAttributes에 white-space: pre-wrap을 설정하여
8
+ * 여러 줄 텍스트가 올바르게 표시되도록 합니다.
9
+ */
10
+ declare const meta: Meta<typeof MozGridVue>;
11
+ export default meta;
12
+ type Story = StoryObj<typeof MozGridVue>;
13
+ export declare const Default: Story;
@@ -0,0 +1,9 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
3
+ /**
4
+ * 다양한 셀 에디터 타입
5
+ */
6
+ declare const meta: Meta<typeof MozGridVue>;
7
+ export default meta;
8
+ type Story = StoryObj<typeof MozGridVue>;
9
+ export declare const AllEditors: Story;
@@ -0,0 +1,10 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
3
+ /**
4
+ * 데이터가 비어 있을 때 EmptyState가 표시되는지 확인하는 스토리.
5
+ * fields는 정의되어 있지만 data가 빈 배열이라 행 0개 → EmptyState 노출.
6
+ */
7
+ declare const meta: Meta<typeof MozGridVue>;
8
+ export default meta;
9
+ type Story = StoryObj<typeof MozGridVue>;
10
+ export declare const NoData: Story;
@@ -0,0 +1,20 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
3
+ /**
4
+ * 행 포맷팅 (formatRow) — 조건부 행/셀 스타일링
5
+ *
6
+ * formatRow는 행 렌더링 시 호출되는 콜백으로,
7
+ * 행 전체 또는 개별 셀에 조건부 스타일을 적용합니다.
8
+ * Wijmo formatItem보다 20배 효율적인 행 단위 호출 방식입니다.
9
+ */
10
+ declare const meta: Meta<typeof MozGridVue>;
11
+ export default meta;
12
+ type Story = StoryObj<typeof MozGridVue>;
13
+ /**
14
+ * 조건부 스타일링: 가격/재고/수익 조건에 따른 행/셀 포맷팅
15
+ */
16
+ export declare const ConditionalStyling: Story;
17
+ /**
18
+ * 상태 배지: 상태 값에 따른 셀 텍스트 스타일링
19
+ */
20
+ export declare const StatusBadge: Story;
@@ -0,0 +1,14 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3';
2
+ import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
3
+ /**
4
+ * 행 그룹화 및 집계
5
+ *
6
+ * group.setConfig()로 그룹핑 기준 컬럼과 소계 컬럼을 설정합니다.
7
+ * 필드에 aggregate 속성이 있으면 소계에 집계값이 표시됩니다.
8
+ */
9
+ declare const meta: Meta<typeof MozGridVue>;
10
+ export default meta;
11
+ type Story = StoryObj<typeof MozGridVue>;
12
+ export declare const SingleGroup: Story;
13
+ export declare const MultiGroup: Story;
14
+ export declare const WithAggregates: Story;