@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.
- package/README.md +71 -0
- package/dist/MozGrid.vue.d.ts +127 -0
- package/dist/bridge/VueRenderer.d.ts +37 -0
- package/dist/bridge/fieldBuilder.d.ts +9 -0
- package/dist/bridge/lifecycle.d.ts +6 -0
- package/dist/bridge/templateRegistry.d.ts +8 -0
- package/dist/chunks/index-BDQ0HlwR.js +3404 -0
- package/dist/chunks/index-D5KJLBGW.cjs +14 -0
- package/dist/chunks/notification.contract-BTOch6ed.js +16 -0
- package/dist/chunks/notification.contract-oFkBaE2U.cjs +1 -0
- package/dist/compat/MozGridVue.vue.d.ts +645 -0
- package/dist/compat/MozPivotVue.vue.d.ts +606 -0
- package/dist/compat/index.d.ts +9 -0
- package/dist/compat/legacyGridAliases.d.ts +8 -0
- package/dist/composables/useGridPreset.d.ts +19 -0
- package/dist/contracts/UserLayoutInstance.d.ts +38 -0
- package/dist/contracts/notification.contract.d.ts +41 -0
- package/dist/contracts/userLayout.contract.d.ts +16 -0
- package/dist/index.cjs +26 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.js +90599 -0
- package/dist/legacy/components/common/Dragging.d.ts +17 -0
- package/dist/legacy/components/common/Dragging.vue.d.ts +49 -0
- package/dist/legacy/components/common/custom-cell/FormulaEngine.d.ts +256 -0
- package/dist/legacy/components/common/custom-cell/FormulaInput.vue.d.ts +33 -0
- package/dist/legacy/components/common/custom-cell/GridCustomCell.vue.d.ts +23 -0
- package/dist/legacy/components/common/custom-cell/useFormulaAutocomplete.d.ts +44 -0
- package/dist/legacy/components/common/excel/ClientExcelUploadPopup.vue.d.ts +201 -0
- package/dist/legacy/components/common/excel/assets/IconDropZone.vue.d.ts +2 -0
- package/dist/legacy/components/common/excel/assets/IconFileUpload.vue.d.ts +2 -0
- package/dist/legacy/components/common/filter/GridFilter.vue.d.ts +23 -0
- package/dist/legacy/components/common/footer/GridFooter.vue.d.ts +29 -0
- package/dist/legacy/components/common/sort/GridSort.vue.d.ts +23 -0
- package/dist/legacy/components/common/toolbar/GridSearchInput.vue.d.ts +33 -0
- package/dist/legacy/components/grid/MozGridVue.vue.d.ts +2041 -0
- package/dist/legacy/components/grid/MozGridVueCore.vue.d.ts +118 -0
- package/dist/legacy/components/grid/bulk-editor/GridBulkEditor.vue.d.ts +10 -0
- package/dist/legacy/components/grid/column-settings/AlignPicker.vue.d.ts +10 -0
- package/dist/legacy/components/grid/column-settings/ColorSwatchPicker.vue.d.ts +11 -0
- package/dist/legacy/components/grid/column-settings/ColumnListItem.vue.d.ts +17 -0
- package/dist/legacy/components/grid/column-settings/ColumnOptionsPanel.vue.d.ts +32 -0
- package/dist/legacy/components/grid/column-settings/FontSizePicker.vue.d.ts +10 -0
- package/dist/legacy/components/grid/column-settings/FontStyleToggles.vue.d.ts +15 -0
- package/dist/legacy/components/grid/column-settings/MaskPresetPicker.vue.d.ts +14 -0
- package/dist/legacy/components/grid/context-menu/GridContextMenu.vue.d.ts +208 -0
- package/dist/legacy/components/grid/group-panel/GroupPanel.vue.d.ts +18 -0
- package/dist/legacy/components/grid/toolbar/ColumnPicker.vue.d.ts +17 -0
- package/dist/legacy/components/grid/toolbar/ColumnSettings.vue.d.ts +30 -0
- package/dist/legacy/components/grid/toolbar/GridOptionModal.vue.d.ts +211 -0
- package/dist/legacy/components/grid/toolbar/GridToolBox.vue.d.ts +69 -0
- package/dist/legacy/components/pivot/MozPivotVue.vue.d.ts +1868 -0
- package/dist/legacy/components/pivot/PivotContextMenu.vue.d.ts +634 -0
- package/dist/legacy/components/pivot/PivotFieldChip.vue.d.ts +16 -0
- package/dist/legacy/components/pivot/PivotFieldDropZone.vue.d.ts +26 -0
- package/dist/legacy/components/pivot/PivotFieldPanel.vue.d.ts +28 -0
- package/dist/legacy/components/pivot/PivotOptionModal.vue.d.ts +534 -0
- package/dist/legacy/components/pivot/PivotToolBox.vue.d.ts +79 -0
- package/dist/legacy/components/pivot/chart/EChart.vue.d.ts +13 -0
- package/dist/legacy/components/pivot/chart/MozPivotChart.types.d.ts +16 -0
- package/dist/legacy/components/pivot/chart/MozPivotChart.vue.d.ts +14 -0
- package/dist/legacy/components/pivot/chart/PivotChartDetail.vue.d.ts +13 -0
- package/dist/legacy/components/pivot/chart/PivotChartMini.vue.d.ts +18 -0
- package/dist/legacy/components/pivot/chart/PivotChartMultiple.vue.d.ts +18 -0
- package/dist/legacy/components/pivot/chart/PivotChartToolbar.vue.d.ts +38 -0
- package/dist/legacy/components/pivot/chart/chartUtils.d.ts +45 -0
- package/dist/legacy/components/pivot/chart/useChartData.d.ts +35 -0
- package/dist/legacy/composables/useCellTooltip.d.ts +8 -0
- package/dist/legacy/composables/useClientExcelExport.d.ts +24 -0
- package/dist/legacy/composables/useClientExcelStore.d.ts +16 -0
- package/dist/legacy/composables/useColumnFormatter.d.ts +45 -0
- package/dist/legacy/composables/useColumnSettings.d.ts +35 -0
- package/dist/legacy/composables/useContextMenu.d.ts +71 -0
- package/dist/legacy/composables/useGridBulkEditor.d.ts +36 -0
- package/dist/legacy/composables/useGridChanges.d.ts +28 -0
- package/dist/legacy/composables/useGridColumns.d.ts +37 -0
- package/dist/legacy/composables/useGridCustomCell.d.ts +34 -0
- package/dist/legacy/composables/useGridEvents.d.ts +14 -0
- package/dist/legacy/composables/useGridFilter.d.ts +38 -0
- package/dist/legacy/composables/useGridInstance.d.ts +16 -0
- package/dist/legacy/composables/useGridSelect.d.ts +18 -0
- package/dist/legacy/composables/useGridSelection.d.ts +18 -0
- package/dist/legacy/composables/useGridSort.d.ts +38 -0
- package/dist/legacy/composables/useGridUndoRedo.d.ts +28 -0
- package/dist/legacy/composables/useGridValidation.d.ts +28 -0
- package/dist/legacy/composables/useMaskPresets.d.ts +38 -0
- package/dist/legacy/composables/useSearchHighlight.d.ts +12 -0
- package/dist/legacy/icons/IconAdd.vue.d.ts +11 -0
- package/dist/legacy/icons/IconArrowDownWithTail.vue.d.ts +11 -0
- package/dist/legacy/icons/IconArrowLeft.vue.d.ts +11 -0
- package/dist/legacy/icons/IconArrowLeftWithTail.vue.d.ts +11 -0
- package/dist/legacy/icons/IconArrowRight.vue.d.ts +11 -0
- package/dist/legacy/icons/IconArrowUpCenter.vue.d.ts +11 -0
- package/dist/legacy/icons/IconArrowUpWithTail.vue.d.ts +11 -0
- package/dist/legacy/icons/IconChart.vue.d.ts +11 -0
- package/dist/legacy/icons/IconClose.vue.d.ts +13 -0
- package/dist/legacy/icons/IconColorPicker.vue.d.ts +11 -0
- package/dist/legacy/icons/IconCustomCell.vue.d.ts +11 -0
- package/dist/legacy/icons/IconDecide.vue.d.ts +11 -0
- package/dist/legacy/icons/IconDownload.vue.d.ts +11 -0
- package/dist/legacy/icons/IconDragHandler.vue.d.ts +11 -0
- package/dist/legacy/icons/IconFilter.vue.d.ts +11 -0
- package/dist/legacy/icons/IconInfoFilled.vue.d.ts +11 -0
- package/dist/legacy/icons/IconRedo.vue.d.ts +9 -0
- package/dist/legacy/icons/IconReset.vue.d.ts +9 -0
- package/dist/legacy/icons/IconResetGridToolbar.vue.d.ts +11 -0
- package/dist/legacy/icons/IconSearch.vue.d.ts +11 -0
- package/dist/legacy/icons/IconSetting.vue.d.ts +11 -0
- package/dist/legacy/icons/IconSettingFilled.vue.d.ts +11 -0
- package/dist/legacy/icons/IconSort.vue.d.ts +11 -0
- package/dist/legacy/icons/IconToastWarning.vue.d.ts +11 -0
- package/dist/legacy/icons/IconUndo.vue.d.ts +9 -0
- package/dist/legacy/icons/index.d.ts +25 -0
- package/dist/legacy/index.d.ts +69 -0
- package/dist/legacy/shared/colorPresets.d.ts +36 -0
- package/dist/legacy/store/UploadRefreshRegistry.d.ts +5 -0
- package/dist/legacy/store/excelStore.d.ts +89 -0
- package/dist/legacy/store/index.d.ts +231 -0
- package/dist/legacy/stores/index.d.ts +2 -0
- package/dist/legacy/stores/projectInfo/projectInfo.contract.d.ts +130 -0
- package/dist/legacy/stories/Autofit.stories.d.ts +9 -0
- package/dist/legacy/stories/CRUD.stories.d.ts +9 -0
- package/dist/legacy/stories/CellAttributes.stories.d.ts +19 -0
- package/dist/legacy/stories/CellMask.stories.d.ts +19 -0
- package/dist/legacy/stories/ClientExcel.stories.d.ts +8 -0
- package/dist/legacy/stories/Clipboard.stories.d.ts +12 -0
- package/dist/legacy/stories/ColumnVisibility.stories.d.ts +12 -0
- package/dist/legacy/stories/ColumnWidths.stories.d.ts +11 -0
- package/dist/legacy/stories/CustomSortFilter.stories.d.ts +7 -0
- package/dist/legacy/stories/DynamicRowHeight.stories.d.ts +13 -0
- package/dist/legacy/stories/Editors.stories.d.ts +9 -0
- package/dist/legacy/stories/EmptyState.stories.d.ts +10 -0
- package/dist/legacy/stories/FormatRow.stories.d.ts +20 -0
- package/dist/legacy/stories/Grouping.stories.d.ts +14 -0
- package/dist/legacy/stories/HeaderGroup.stories.d.ts +11 -0
- package/dist/legacy/stories/LargeData.stories.d.ts +19 -0
- package/dist/legacy/stories/MasterDetail.stories.d.ts +17 -0
- package/dist/legacy/stories/Merge.stories.d.ts +10 -0
- package/dist/legacy/stories/MultiRow.stories.d.ts +12 -0
- package/dist/legacy/stories/MultiRowCrud.stories.d.ts +11 -0
- package/dist/legacy/stories/MultiRowGroup.stories.d.ts +11 -0
- package/dist/legacy/stories/Pinning.stories.d.ts +44 -0
- package/dist/legacy/stories/Pivot.stories.d.ts +23 -0
- package/dist/legacy/stories/PivotAdvanced.stories.d.ts +20 -0
- package/dist/legacy/stories/PivotChart.stories.d.ts +23 -0
- package/dist/legacy/stories/PivotNonNumeric.stories.d.ts +27 -0
- package/dist/legacy/stories/Preset.stories.d.ts +11 -0
- package/dist/legacy/stories/ReactiveAPI.stories.d.ts +8 -0
- package/dist/legacy/stories/ReactiveSafety.stories.d.ts +28 -0
- package/dist/legacy/stories/Repro.stories.d.ts +36 -0
- package/dist/legacy/stories/RowAPI.stories.d.ts +12 -0
- package/dist/legacy/stories/SelectionModes.stories.d.ts +35 -0
- package/dist/legacy/stories/Streaming.stories.d.ts +12 -0
- package/dist/legacy/stories/Tree.stories.d.ts +13 -0
- package/dist/legacy/stories/WorkerMode.stories.d.ts +15 -0
- package/dist/legacy/stories/_helpers/localDataLoader.d.ts +7 -0
- package/dist/legacy/stories/_helpers/sampleData.d.ts +117 -0
- package/dist/legacy/types/FileParameter.d.ts +31 -0
- package/dist/legacy/types/StreamingParameter.d.ts +18 -0
- package/dist/legacy/types/excel.types.d.ts +48 -0
- package/dist/legacy/types/index.d.ts +10 -0
- package/dist/legacy/types/pivot-props.d.ts +140 -0
- package/dist/legacy/types/props.d.ts +176 -0
- package/dist/legacy/types/toolbar.d.ts +225 -0
- package/dist/legacy/utils/async/debounce.d.ts +4 -0
- package/dist/legacy/utils/crypto/crypto.d.ts +7 -0
- package/dist/legacy/utils/dialog/dialog.d.ts +19 -0
- package/dist/legacy/utils/excel/ExcelGuard.d.ts +73 -0
- package/dist/legacy/utils/excel/ExcelImportUtil.d.ts +34 -0
- package/dist/legacy/utils/excel/ExcelQueueManager.d.ts +57 -0
- package/dist/legacy/utils/excel/ExcelTaskRunner.d.ts +17 -0
- package/dist/legacy/utils/excel/ExcelTimeoutManager.d.ts +37 -0
- package/dist/legacy/utils/file.d.ts +34 -0
- package/dist/legacy/utils/http/rest.d.ts +5 -0
- package/dist/legacy/utils/id/generator.d.ts +2 -0
- package/dist/legacy/utils/index.d.ts +10 -0
- package/dist/store.cjs +1 -0
- package/dist/store.js +8 -0
- package/dist/stories/ColumnLockVisible.stories.d.ts +42 -0
- package/dist/stories/DateBooleanFilter.stories.d.ts +42 -0
- package/dist/stories/DisplayedRowApi.stories.d.ts +28 -0
- package/dist/stories/FieldId.stories.d.ts +113 -0
- package/dist/stories/GroupPanelWithoutToolbox.stories.d.ts +28 -0
- package/dist/stories/GroupRowRecycle.stories.d.ts +45 -0
- package/dist/stories/GroupTreeExpandNav.stories.d.ts +41 -0
- package/dist/stories/LargeData.stories.d.ts +20 -0
- package/dist/stories/MozGrid.stories.d.ts +51 -0
- package/dist/stories/PivotBarInitiallyOpen.stories.d.ts +69 -0
- package/dist/stories/PivotBarWithoutToolbox.stories.d.ts +39 -0
- package/dist/stories/SelectionApiPlayground.stories.d.ts +28 -0
- package/dist/stories/SingleSelectionModes.stories.d.ts +47 -0
- package/dist/stories/WideColumns.stories.d.ts +17 -0
- package/dist/style.css +1 -0
- package/dist/templates/CellEditor.d.ts +27 -0
- package/dist/templates/CellTemplate.d.ts +27 -0
- package/dist/templates/DetailTemplate.d.ts +60 -0
- package/dist/templates/GroupTemplate.d.ts +17 -0
- package/dist/templates/HeaderTemplate.d.ts +25 -0
- package/dist/types/injection-keys.d.ts +24 -0
- package/dist/types/slots.d.ts +49 -0
- package/dist/utils/excel/ExcelGuard.cjs +1 -0
- package/dist/utils/excel/ExcelGuard.js +74 -0
- package/dist/utils/excel/ExcelImportUtil.cjs +1 -0
- package/dist/utils/excel/ExcelImportUtil.js +61 -0
- package/dist/utils/excel/ExcelQueueManager.cjs +1 -0
- package/dist/utils/excel/ExcelQueueManager.js +10 -0
- package/dist/utils/excel/ExcelTaskRunner.cjs +1 -0
- package/dist/utils/excel/ExcelTaskRunner.js +12 -0
- package/dist/utils/excel/ExcelTimeoutManager.cjs +1 -0
- package/dist/utils/excel/ExcelTimeoutManager.js +420 -0
- package/docs/manual/examples.md +2385 -0
- package/docs/manual/reference.md +4695 -0
- package/docs/manual/reference_vue.md +709 -0
- 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,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;
|