@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,11 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
|
|
3
|
+
/**
|
|
4
|
+
* 헤더 그룹 — 다단 헤더 구성
|
|
5
|
+
*
|
|
6
|
+
* MozGridVue의 columnGroups prop을 사용합니다.
|
|
7
|
+
*/
|
|
8
|
+
declare const meta: Meta<typeof MozGridVue>;
|
|
9
|
+
export default meta;
|
|
10
|
+
type Story = StoryObj<typeof MozGridVue>;
|
|
11
|
+
export declare const TwoLevel: 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
|
+
* 100만~500만 건 데이터를 로딩하여 가상 스크롤 성능을 검증합니다.
|
|
7
|
+
* 데이터 생성은 Web Worker가 아닌 메인 스레드에서 수행되므로
|
|
8
|
+
* 초기 로딩 시 잠시 멈출 수 있습니다.
|
|
9
|
+
*/
|
|
10
|
+
declare const meta: Meta<typeof MozGridVue>;
|
|
11
|
+
export default meta;
|
|
12
|
+
type Story = StoryObj<typeof MozGridVue>;
|
|
13
|
+
export declare const Configurable: Story;
|
|
14
|
+
export declare const OneMillionRows: Story;
|
|
15
|
+
export declare const FiveMillionRows: Story;
|
|
16
|
+
/** 빈 데이터 — EmptyState 컴포넌트 표시 */
|
|
17
|
+
export declare const EmptyData: Story;
|
|
18
|
+
/** 로딩 시뮬레이션 — 3초 후 데이터 로드 */
|
|
19
|
+
export declare const LoadingState: Story;
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
+
export declare const BasicDetail: Story;
|
|
14
|
+
/** 단일 확장 모드: 한 번에 하나의 디테일만 열림 */
|
|
15
|
+
export declare const SingleExpand: Story;
|
|
16
|
+
/** HTML 디테일: 서브 그리드 대신 커스텀 HTML 렌더링 */
|
|
17
|
+
export declare const HtmlDetail: Story;
|
|
@@ -0,0 +1,10 @@
|
|
|
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 ContentMerge: Story;
|
|
10
|
+
export declare const HierarchicalMerge: Story;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
|
|
3
|
+
/**
|
|
4
|
+
* Multi-Row 레이아웃: 하나의 데이터 행을 여러 줄로 표시
|
|
5
|
+
*
|
|
6
|
+
* MozGridVue의 rowTemplate prop을 사용합니다.
|
|
7
|
+
*/
|
|
8
|
+
declare const meta: Meta<typeof MozGridVue>;
|
|
9
|
+
export default meta;
|
|
10
|
+
type Story = StoryObj<typeof MozGridVue>;
|
|
11
|
+
export declare const TwoRowLayout: Story;
|
|
12
|
+
export declare const ThreeRowLayout: Story;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
|
|
3
|
+
/**
|
|
4
|
+
* Multi-Row + CRUD: Multi-Row 레이아웃에서 행 추가/수정/삭제 및 Undo/Redo
|
|
5
|
+
*
|
|
6
|
+
* MozGridVue의 rowTemplate prop을 사용합니다.
|
|
7
|
+
*/
|
|
8
|
+
declare const meta: Meta<typeof MozGridVue>;
|
|
9
|
+
export default meta;
|
|
10
|
+
type Story = StoryObj<typeof MozGridVue>;
|
|
11
|
+
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
|
+
* Multi-Row + 그룹화: 데이터 행은 Multi-Row, 그룹 헤더는 단일 행으로 표시
|
|
5
|
+
*
|
|
6
|
+
* MozGridVue의 rowTemplate + group prop을 사용합니다.
|
|
7
|
+
*/
|
|
8
|
+
declare const meta: Meta<typeof MozGridVue>;
|
|
9
|
+
export default meta;
|
|
10
|
+
type Story = StoryObj<typeof MozGridVue>;
|
|
11
|
+
export declare const Default: Story;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
|
|
3
|
+
/**
|
|
4
|
+
* 컬럼 고정 (Pinning) — 왼쪽/오른쪽 고정 컬럼 및 상단/하단 고정 행
|
|
5
|
+
*
|
|
6
|
+
* 필드 정의의 pinned 속성으로 컬럼을 왼쪽 또는 오른쪽에 고정합니다.
|
|
7
|
+
* rows API를 통해 행을 상단 또는 하단에 고정합니다.
|
|
8
|
+
* 스크롤 시에도 고정 요소는 항상 화면에 표시됩니다.
|
|
9
|
+
*/
|
|
10
|
+
declare const meta: Meta<typeof MozGridVue>;
|
|
11
|
+
export default meta;
|
|
12
|
+
type Story = StoryObj<typeof MozGridVue>;
|
|
13
|
+
/**
|
|
14
|
+
* 왼쪽 고정: ID와 이름 컬럼이 좌측에 고정됩니다
|
|
15
|
+
*/
|
|
16
|
+
export declare const LeftPinned: Story;
|
|
17
|
+
/**
|
|
18
|
+
* 오른쪽 고정: 급여 컬럼이 우측에 고정됩니다
|
|
19
|
+
*/
|
|
20
|
+
export declare const RightPinned: Story;
|
|
21
|
+
/**
|
|
22
|
+
* 양쪽 고정: 왼쪽에 ID/이름, 오른쪽에 급여/등급 고정
|
|
23
|
+
*/
|
|
24
|
+
export declare const BothSides: Story;
|
|
25
|
+
/**
|
|
26
|
+
* 동적 고정: API를 통해 런타임에 컬럼 고정 위치를 변경합니다
|
|
27
|
+
*/
|
|
28
|
+
export declare const DynamicPinning: Story;
|
|
29
|
+
/**
|
|
30
|
+
* 상단 고정 행: 특정 행을 그리드 상단에 고정하여 스크롤해도 항상 표시
|
|
31
|
+
*/
|
|
32
|
+
export declare const TopPinnedRow: Story;
|
|
33
|
+
/**
|
|
34
|
+
* 데이터 행 고정: 선택된 행을 버튼으로 상단/하단에 고정하거나 해제
|
|
35
|
+
*/
|
|
36
|
+
export declare const PinByRowClick: Story;
|
|
37
|
+
/**
|
|
38
|
+
* 하단 고정 행: Grand Total 등 요약 행을 하단에 고정
|
|
39
|
+
*/
|
|
40
|
+
export declare const BottomPinnedRow: Story;
|
|
41
|
+
/**
|
|
42
|
+
* 상하단 고정 행: 상단에 필터/커스텀 행, 하단에 합계 행
|
|
43
|
+
*/
|
|
44
|
+
export declare const TopAndBottomPinned: Story;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { default as MozPivotVue } from '../components/pivot/MozPivotVue.vue';
|
|
3
|
+
/**
|
|
4
|
+
* 피벗 그리드 — 다차원 데이터 집계 및 크로스탭 분석
|
|
5
|
+
*
|
|
6
|
+
* MozPivotVue 컴포넌트를 사용하여 행 축, 열 축, 값 축을 설정합니다.
|
|
7
|
+
* 소계/총계, 접기/펼치기, 값 변환(showValueAs) 등을 지원합니다.
|
|
8
|
+
*/
|
|
9
|
+
declare const meta: Meta<typeof MozPivotVue>;
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof MozPivotVue>;
|
|
12
|
+
/** 기본 피벗: 지역×분기별 매출 합계 */
|
|
13
|
+
export declare const Default: Story;
|
|
14
|
+
/** 다중 값 필드: 매출 + 비용 + 수량 */
|
|
15
|
+
export declare const MultipleValues: Story;
|
|
16
|
+
/** 다중 행 축: 지역 > 제품별 계층 구조 */
|
|
17
|
+
export declare const MultiRowFields: Story;
|
|
18
|
+
/** 다중 열 축: 연도 > 분기 계층 헤더 */
|
|
19
|
+
export declare const MultiColumnFields: Story;
|
|
20
|
+
/** 소계/총계 위치 및 옵션 */
|
|
21
|
+
export declare const SubTotals: Story;
|
|
22
|
+
/** 집계 함수: sum, avg, count, min, max */
|
|
23
|
+
export declare const AggregateFunctions: Story;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { default as MozPivotVue } from '../components/pivot/MozPivotVue.vue';
|
|
3
|
+
/**
|
|
4
|
+
* 피벗 고급 기능 — 값 변환(showValueAs), 서식, 접기/펼치기 제어
|
|
5
|
+
*/
|
|
6
|
+
declare const meta: Meta<typeof MozPivotVue>;
|
|
7
|
+
export default meta;
|
|
8
|
+
type Story = StoryObj<typeof MozPivotVue>;
|
|
9
|
+
/** 값 변환: 총합계 대비 비율 (%) */
|
|
10
|
+
export declare const PercentOfGrandTotal: Story;
|
|
11
|
+
/** 값 변환: 행 합계 대비 비율 */
|
|
12
|
+
export declare const PercentOfRowTotal: Story;
|
|
13
|
+
/** 숫자 서식: 천 단위 구분 + 소수점 */
|
|
14
|
+
export declare const NumberFormatting: Story;
|
|
15
|
+
/** 접기/펼치기 제어 + 레벨별 확장 */
|
|
16
|
+
export declare const CollapseExpand: Story;
|
|
17
|
+
/** 피벗 설정 동적 변경 */
|
|
18
|
+
export declare const DynamicConfig: Story;
|
|
19
|
+
/** 원본 값 + 변환 값 동시 표시 */
|
|
20
|
+
export declare const ShowOriginalValue: Story;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { default as MozPivotVue } from '../components/pivot/MozPivotVue.vue';
|
|
3
|
+
/**
|
|
4
|
+
* 피벗 차트 — ECharts 기반 피벗 데이터 시각화
|
|
5
|
+
*
|
|
6
|
+
* 툴바의 차트 버튼을 클릭하면 피벗 결과를 Bar/Line/Area 차트로 표시합니다.
|
|
7
|
+
* Y축(행 필드) / X축(열 필드) / 값 필드를 선택하여 차트를 커스터마이징합니다.
|
|
8
|
+
*/
|
|
9
|
+
declare const meta: Meta<typeof MozPivotVue>;
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof MozPivotVue>;
|
|
12
|
+
/** 기본 차트: 지역×분기별 매출 — 툴바 차트 아이콘 클릭으로 토글 */
|
|
13
|
+
export declare const Default: Story;
|
|
14
|
+
/** 차트 자동 열림 + 다중 행 필드 (Y축 셀렉터 표시) */
|
|
15
|
+
export declare const RowFieldSelector: Story;
|
|
16
|
+
/** 다중 열 필드 (X축 셀렉터 표시) — 연도 > 분기 */
|
|
17
|
+
export declare const ColumnFieldSelector: Story;
|
|
18
|
+
/** 다중 값 필드 차트: 매출 + 비용 + 수량 시리즈 선택 */
|
|
19
|
+
export declare const MultipleValueFields: Story;
|
|
20
|
+
/** 전체 옵션: 다중 행/열/값 필드 + Grand Total */
|
|
21
|
+
export declare const FullOptions: Story;
|
|
22
|
+
/** 차트 토글 제어: 외부 버튼으로 열기/닫기 */
|
|
23
|
+
export declare const ChartToggleControl: Story;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { default as MozPivotVue } from '../components/pivot/MozPivotVue.vue';
|
|
3
|
+
/**
|
|
4
|
+
* 피벗 — 비숫자 값필드 (string · date · boolean · array)
|
|
5
|
+
*
|
|
6
|
+
* 피벗 값필드는 보통 숫자(sum/avg 등)지만, 비숫자 타입에도 의미 있는 집계가 가능합니다:
|
|
7
|
+
* - **string**: `count, countAll, min, max, first, last`
|
|
8
|
+
* - **date**: `min, max, count, countAll, first, last`
|
|
9
|
+
* - **boolean**: `count, countAll, first, last`
|
|
10
|
+
* - **array**: `count, countAll, first, last`
|
|
11
|
+
*
|
|
12
|
+
* 각 값필드 카드에서 집계 함수를 바꾸면 즉시 다시 피벗됩니다.
|
|
13
|
+
*/
|
|
14
|
+
declare const meta: Meta<typeof MozPivotVue>;
|
|
15
|
+
export default meta;
|
|
16
|
+
type Story = StoryObj<typeof MozPivotVue>;
|
|
17
|
+
export declare const Interactive: Story;
|
|
18
|
+
/** string: first (각 그룹 내 첫 제품명) */
|
|
19
|
+
export declare const StringFirst: Story;
|
|
20
|
+
/** date: max (각 그룹 내 최근 주문일) */
|
|
21
|
+
export declare const DateMax: Story;
|
|
22
|
+
/** boolean: count (true 개수) */
|
|
23
|
+
export declare const BooleanCount: Story;
|
|
24
|
+
/** array: first (각 그룹 내 첫 태그 배열) */
|
|
25
|
+
export declare const ArrayFirst: Story;
|
|
26
|
+
/** count vs countAll: null 포함 여부 차이 시각화 */
|
|
27
|
+
export declare const CountVsCountAll: Story;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
/**
|
|
3
|
+
* 프리셋 데모 래퍼 — localStorage 기반 저장/복원 UI 제공
|
|
4
|
+
*/
|
|
5
|
+
declare const PresetDemoWrapper: import('vue').DefineComponent<{}, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
}>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
8
|
+
declare const meta: Meta;
|
|
9
|
+
export default meta;
|
|
10
|
+
type Story = StoryObj<typeof PresetDemoWrapper>;
|
|
11
|
+
export declare const Default: Story;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
|
|
3
|
+
/** Reactive API: select() 구독으로 그리드 상태 변화를 실시간 관찰, batch() 알림 최적화 */
|
|
4
|
+
declare const meta: Meta<typeof MozGridVue>;
|
|
5
|
+
export default meta;
|
|
6
|
+
type Story = StoryObj<typeof MozGridVue>;
|
|
7
|
+
/** select() 구독으로 대시보드 자동 갱신 */
|
|
8
|
+
export declare const Dashboard: Story;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
|
|
3
|
+
/**
|
|
4
|
+
* Reactive Safety — Vue reactive 시스템과 grid 인스턴스의 호환성 검증.
|
|
5
|
+
*
|
|
6
|
+
* **배경**: 사용자가 `ref(grid)` / `reactive(grid)` 같이 grid 를 deep reactive 안에
|
|
7
|
+
* 보관하면 BodyRenderer 의 internal Map / 피벗 lazy proxy 가 Vue reactive proxy 로
|
|
8
|
+
* wrap 되어 row 객체가 손상되는 silent bug 가 있었음. 코어/wrapper 는
|
|
9
|
+
* `MozGridVueCore.initGrid` 에서 `markRaw(grid)` 를 적용하여 방어함.
|
|
10
|
+
*
|
|
11
|
+
* 이 story 는:
|
|
12
|
+
* 1. markRaw 가 정상 적용됐는지 검증
|
|
13
|
+
* 2. 사용자가 `reactive(grid)` 강제 시도해도 Vue 가 wrap 안 함을 검증
|
|
14
|
+
* 3. 자체 reactivity (store.select) 가 Vue 안에서 의도치 않은 효과 일으키지 않음을 검증
|
|
15
|
+
*
|
|
16
|
+
* **수동 검증**: 각 패널의 색상이 모두 ✅ 녹색이면 안전. 한 곳이라도 ❌ 빨강이면 fragility 발현.
|
|
17
|
+
*/
|
|
18
|
+
declare const meta: Meta<typeof MozGridVue>;
|
|
19
|
+
export default meta;
|
|
20
|
+
type Story = StoryObj<typeof MozGridVue>;
|
|
21
|
+
/**
|
|
22
|
+
* Vue reactive system 과 grid 의 호환성 검증.
|
|
23
|
+
*
|
|
24
|
+
* - Check 1: `markRaw` 가 grid 에 적용됐는가? (`__v_skip` flag)
|
|
25
|
+
* - Check 2: `reactive(grid)` 호출 시 Vue 가 wrap 거부하는가?
|
|
26
|
+
* - Check 3: 자체 store.select() subscribe 가 Vue effect 무한 루프 일으키지 않는가?
|
|
27
|
+
*/
|
|
28
|
+
export declare const Diagnostics: Story;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
/**
|
|
3
|
+
* 버그 재현용 스토리 모음 — 디버깅 전용.
|
|
4
|
+
*
|
|
5
|
+
* 1. PivotColumnFieldToggle — 피벗에서 columnFields 비우고 다시 채울 때 body 셀이 비어 보이는 이슈
|
|
6
|
+
* 2. GridDataSwap — flat 그리드에서 data를 여러 번 갈아끼울 때 처음 데이터만 보이는 이슈 (smart-report와 유사 시나리오)
|
|
7
|
+
*/
|
|
8
|
+
declare const meta: Meta;
|
|
9
|
+
export default meta;
|
|
10
|
+
/**
|
|
11
|
+
* 시나리오:
|
|
12
|
+
* - 초기에 row+value만 채워서 columnFields가 빈 상태로 시작
|
|
13
|
+
* - 버튼으로 columnFields=[quarter] / [year, quarter] / [] 토글
|
|
14
|
+
* - 콘솔에서 진단 출력 (result.columns vs row.values 키 일치 여부)
|
|
15
|
+
*/
|
|
16
|
+
export declare const PivotColumnFieldToggle: StoryObj;
|
|
17
|
+
/**
|
|
18
|
+
* 시나리오 변형: row+value만 가지고 시작 (필드 패널을 통해 column을 동적으로 추가하는 경험)
|
|
19
|
+
* - 초기에는 hasFields=false (rowFields=[])로 시작 → EmptyState 표시
|
|
20
|
+
* - 버튼으로 row 추가 → value 추가 → 마지막에 column 추가 순서로 채움
|
|
21
|
+
*/
|
|
22
|
+
export declare const PivotIncrementalFill: StoryObj;
|
|
23
|
+
/**
|
|
24
|
+
* 시나리오: 같은 MozGridVue 인스턴스에서 data + fields를 교체할 때 처음 데이터만 보이는 이슈 재현
|
|
25
|
+
* - 데이터셋 A (직원), B (제품), C (매출)
|
|
26
|
+
* - 버튼으로 교체 → 콘솔에서 totalRowCount 확인
|
|
27
|
+
* - smart-report와 유사하게 fields/data 동시 갱신
|
|
28
|
+
*/
|
|
29
|
+
export declare const GridDataSwap: StoryObj;
|
|
30
|
+
/**
|
|
31
|
+
* smart-report 스타일 wrapper 시나리오 — :key 변경 + 외부 watch + safeLoadData 가드
|
|
32
|
+
*
|
|
33
|
+
* smart-report의 SmartReportComponentMozGrid.vue 로직을 미니 재현해서
|
|
34
|
+
* :key="name" 변경이 있을 때 / 없을 때의 거동 차이를 확인.
|
|
35
|
+
*/
|
|
36
|
+
export declare const GridDataSwapSmartReportStyle: StoryObj;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
|
|
3
|
+
/**
|
|
4
|
+
* Row API 기능 시연
|
|
5
|
+
*
|
|
6
|
+
* rows.selected()로 선택된 행에 접근하여
|
|
7
|
+
* 읽기 전용, 표시/숨김, CSS 클래스 등을 설정합니다.
|
|
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,35 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
|
|
3
|
+
/**
|
|
4
|
+
* 선택 모드별 동작 비교
|
|
5
|
+
*
|
|
6
|
+
* 새 API: `rowSelection` + `cellSelection` 분리.
|
|
7
|
+
* 두 옵션 모두 미지정 시 기본은 셀 전용 (`cellSelection: { mode: 'range' }`, Excel 스타일).
|
|
8
|
+
*/
|
|
9
|
+
declare const meta: Meta<typeof MozGridVue>;
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof MozGridVue>;
|
|
12
|
+
/**
|
|
13
|
+
* 분리: rowHeader 트리거 (권장 기본).
|
|
14
|
+
* 셀 클릭은 셀만, 행 헤더 클릭은 행만 — 정합성 보호. `_rowHeader` 컬럼 자동 추가.
|
|
15
|
+
*/
|
|
16
|
+
export declare const SeparatedRowHeader: Story;
|
|
17
|
+
/**
|
|
18
|
+
* 분리: 체크박스 트리거.
|
|
19
|
+
* 행 헤더 영역에 체크박스가 자동 렌더링됨 (CSS).
|
|
20
|
+
*/
|
|
21
|
+
export declare const SeparatedCheckbox: Story;
|
|
22
|
+
/**
|
|
23
|
+
* 행 전용 (단순 list).
|
|
24
|
+
* 셀 선택 없이 행만 — 셀 클릭이 행 선택을 트리거.
|
|
25
|
+
*/
|
|
26
|
+
export declare const RowOnly: Story;
|
|
27
|
+
/**
|
|
28
|
+
* 셀 전용 (Excel 스타일, 기본).
|
|
29
|
+
* 행 선택 없이 셀만 — 드래그 범위 선택 가능.
|
|
30
|
+
*/
|
|
31
|
+
export declare const CellOnly: Story;
|
|
32
|
+
/**
|
|
33
|
+
* none — 선택 기능 비활성화 (읽기 전용 그리드).
|
|
34
|
+
*/
|
|
35
|
+
export declare const None: 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
|
+
* 주식 시세 데이터를 주기적으로 업데이트하여
|
|
7
|
+
* applyTransactionAsync를 통한 실시간 갱신을 시연합니다.
|
|
8
|
+
*/
|
|
9
|
+
declare const meta: Meta<typeof MozGridVue>;
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof MozGridVue>;
|
|
12
|
+
export declare const StockTicker: 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
|
+
* Flat 데이터(parentId 방식)는 loadData() 후 tree.setConfig()로 트리 설정.
|
|
7
|
+
* tree.loadData()는 nested(children) 데이터 전용입니다.
|
|
8
|
+
*/
|
|
9
|
+
declare const meta: Meta<typeof MozGridVue>;
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof MozGridVue>;
|
|
12
|
+
export declare const OrgChart: Story;
|
|
13
|
+
export declare const CollapsedByDefault: Story;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import { default as MozGridVue } from '../components/grid/MozGridVue.vue';
|
|
3
|
+
/**
|
|
4
|
+
* Worker 모드 (useWorker: true + loader)
|
|
5
|
+
*
|
|
6
|
+
* 모든 데이터 처리(필터/정렬/집계)가 Web Worker에서 실행됩니다.
|
|
7
|
+
* loader를 통해 Worker에서 직접 데이터를 생성/로드합니다.
|
|
8
|
+
*/
|
|
9
|
+
declare const meta: Meta<typeof MozGridVue>;
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof MozGridVue>;
|
|
12
|
+
export declare const Flat: Story;
|
|
13
|
+
export declare const Grouping: Story;
|
|
14
|
+
export declare const Tree: Story;
|
|
15
|
+
export declare const CRUD: Story;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DataLoader } from '../../../../../moz-ui-grid-core/src/index.ts';
|
|
2
|
+
/** DataLoader.fetchData()가 반환하는 데이터 행 타입 */
|
|
3
|
+
type DataRow = Record<string, any>;
|
|
4
|
+
export default class LocalDataLoader extends DataLoader {
|
|
5
|
+
fetchData(): Promise<DataRow[]>;
|
|
6
|
+
}
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 스토리북 공통 샘플 데이터 생성 유틸리티
|
|
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
|
+
skills: string;
|
|
16
|
+
memo: string;
|
|
17
|
+
priority: number;
|
|
18
|
+
}[];
|
|
19
|
+
export declare function generateProductData(count: number): {
|
|
20
|
+
id: number;
|
|
21
|
+
name: string;
|
|
22
|
+
category: string;
|
|
23
|
+
status: string;
|
|
24
|
+
price: number;
|
|
25
|
+
stock: number;
|
|
26
|
+
profit: number;
|
|
27
|
+
rating: string;
|
|
28
|
+
}[];
|
|
29
|
+
export declare function generateTreeData(): ({
|
|
30
|
+
id: number;
|
|
31
|
+
parentId: null;
|
|
32
|
+
name: string;
|
|
33
|
+
role: string;
|
|
34
|
+
department: string;
|
|
35
|
+
salary: number;
|
|
36
|
+
} | {
|
|
37
|
+
id: number;
|
|
38
|
+
parentId: number;
|
|
39
|
+
name: string;
|
|
40
|
+
role: string;
|
|
41
|
+
department: string;
|
|
42
|
+
salary: number;
|
|
43
|
+
})[];
|
|
44
|
+
/** 피벗 스토리용 사용 가능한 필드 정의 */
|
|
45
|
+
export declare const salesAvailableFields: ({
|
|
46
|
+
field: string;
|
|
47
|
+
header: string;
|
|
48
|
+
dataType: "number";
|
|
49
|
+
aggregate?: undefined;
|
|
50
|
+
width?: undefined;
|
|
51
|
+
} | {
|
|
52
|
+
field: string;
|
|
53
|
+
header: string;
|
|
54
|
+
dataType: "string";
|
|
55
|
+
aggregate?: undefined;
|
|
56
|
+
width?: undefined;
|
|
57
|
+
} | {
|
|
58
|
+
field: string;
|
|
59
|
+
aggregate: string;
|
|
60
|
+
header: string;
|
|
61
|
+
width: number;
|
|
62
|
+
dataType: "number";
|
|
63
|
+
})[];
|
|
64
|
+
export declare function generateSalesData(count?: number): {
|
|
65
|
+
id: number;
|
|
66
|
+
region: string;
|
|
67
|
+
product: string;
|
|
68
|
+
quarter: string;
|
|
69
|
+
year: string;
|
|
70
|
+
sales: number;
|
|
71
|
+
cost: number;
|
|
72
|
+
quantity: number;
|
|
73
|
+
profit: number;
|
|
74
|
+
}[];
|
|
75
|
+
export declare const basicFields: ({
|
|
76
|
+
id: string;
|
|
77
|
+
header: string;
|
|
78
|
+
dataType: "number";
|
|
79
|
+
width: number;
|
|
80
|
+
readonly: boolean;
|
|
81
|
+
} | {
|
|
82
|
+
id: string;
|
|
83
|
+
header: string;
|
|
84
|
+
dataType: "string";
|
|
85
|
+
width: number;
|
|
86
|
+
readonly?: undefined;
|
|
87
|
+
} | {
|
|
88
|
+
id: string;
|
|
89
|
+
header: string;
|
|
90
|
+
dataType: "number";
|
|
91
|
+
width: number;
|
|
92
|
+
readonly?: undefined;
|
|
93
|
+
})[];
|
|
94
|
+
export declare const extendedFields: ({
|
|
95
|
+
id: string;
|
|
96
|
+
header: string;
|
|
97
|
+
dataType: "number";
|
|
98
|
+
width: number;
|
|
99
|
+
readonly: boolean;
|
|
100
|
+
} | {
|
|
101
|
+
id: string;
|
|
102
|
+
header: string;
|
|
103
|
+
dataType: "string";
|
|
104
|
+
width: number;
|
|
105
|
+
readonly?: undefined;
|
|
106
|
+
} | {
|
|
107
|
+
id: string;
|
|
108
|
+
header: string;
|
|
109
|
+
dataType: "number";
|
|
110
|
+
width: number;
|
|
111
|
+
readonly?: undefined;
|
|
112
|
+
} | {
|
|
113
|
+
id: string;
|
|
114
|
+
header: string;
|
|
115
|
+
dataType: "boolean";
|
|
116
|
+
width: number;
|
|
117
|
+
})[];
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export default class FileParameter {
|
|
2
|
+
sessionId: string;
|
|
3
|
+
name: string;
|
|
4
|
+
path: string;
|
|
5
|
+
saveDir: string;
|
|
6
|
+
size: number;
|
|
7
|
+
file?: File;
|
|
8
|
+
info?: any;
|
|
9
|
+
type: 'Upload' | 'Download';
|
|
10
|
+
offset: number;
|
|
11
|
+
isComplete: boolean;
|
|
12
|
+
isCancelable: boolean;
|
|
13
|
+
isCanceled: boolean;
|
|
14
|
+
blobInfo?: {
|
|
15
|
+
fileName: string;
|
|
16
|
+
blob: Blob;
|
|
17
|
+
};
|
|
18
|
+
onCompleted?: (param: FileParameter) => void;
|
|
19
|
+
onCancelClick?: (param: FileParameter) => void;
|
|
20
|
+
constructor(type: 'Upload' | 'Download', id: string);
|
|
21
|
+
get ipcObject(): object;
|
|
22
|
+
get totalSize(): number;
|
|
23
|
+
get percent(): number;
|
|
24
|
+
get progressValue(): number;
|
|
25
|
+
get status(): string;
|
|
26
|
+
completed(param?: {
|
|
27
|
+
fileName: string;
|
|
28
|
+
blob: Blob;
|
|
29
|
+
}): void;
|
|
30
|
+
private formatSizeUnits;
|
|
31
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export default class StreamingParameter {
|
|
2
|
+
params: Record<string, any>;
|
|
3
|
+
loading: boolean;
|
|
4
|
+
size: number;
|
|
5
|
+
offset: number;
|
|
6
|
+
onReceived?: (param: Record<string, any>) => void;
|
|
7
|
+
onClosed?: () => void;
|
|
8
|
+
onHandleError?: (error: any) => void;
|
|
9
|
+
onCancelClick?: () => void;
|
|
10
|
+
private _complete;
|
|
11
|
+
constructor(params: Record<string, any>);
|
|
12
|
+
get ipcObject(): Record<string, any>;
|
|
13
|
+
get percent(): number;
|
|
14
|
+
get complete(): boolean;
|
|
15
|
+
received(param: Record<string, any>): void;
|
|
16
|
+
closed(complete?: boolean): void;
|
|
17
|
+
handleError(error: any, complete?: boolean): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AxiosResponse } from 'axios';
|
|
2
|
+
/**
|
|
3
|
+
* Wijmo의 `DataType` enum을 대체하는 경량 상수.
|
|
4
|
+
* - moz-ui-grid-vue는 Wijmo에 의존하지 않으므로 자체 정의합니다.
|
|
5
|
+
*/
|
|
6
|
+
export declare const DataType: {
|
|
7
|
+
readonly String: 1;
|
|
8
|
+
readonly Number: 2;
|
|
9
|
+
readonly Boolean: 3;
|
|
10
|
+
readonly Date: 4;
|
|
11
|
+
};
|
|
12
|
+
export type DataType = (typeof DataType)[keyof typeof DataType];
|
|
13
|
+
export type AdditionalColumn = Record<string, string | number | boolean | null>;
|
|
14
|
+
/**
|
|
15
|
+
* Excel Popup을 사용하기 위한 정보
|
|
16
|
+
*/
|
|
17
|
+
export interface IExcelInfo {
|
|
18
|
+
columnLayout?: string;
|
|
19
|
+
keyColumns?: string[];
|
|
20
|
+
columnMap?: Record<string, {
|
|
21
|
+
column_name: string;
|
|
22
|
+
column_type: string;
|
|
23
|
+
is_key?: boolean;
|
|
24
|
+
is_required?: boolean;
|
|
25
|
+
column_format?: string;
|
|
26
|
+
}>;
|
|
27
|
+
targetTable?: string;
|
|
28
|
+
refreshKey?: string;
|
|
29
|
+
useDataPreclear?: boolean;
|
|
30
|
+
additionalColumns?: AdditionalColumn;
|
|
31
|
+
additionalClearConditions?: AdditionalColumn;
|
|
32
|
+
disableMasterProperty?: boolean;
|
|
33
|
+
targetStorage?: 'iceberg' | 'postgresql';
|
|
34
|
+
/** Smart Upload 방식 사용 여부 (3단계 업로드: URL 생성 → 파일 업로드 → 서버 처리) */
|
|
35
|
+
useNewUpload?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Excel API 요청 Key
|
|
39
|
+
*/
|
|
40
|
+
export interface IExcelAPI {
|
|
41
|
+
onUpload?: (formData: FormData) => Promise<AxiosResponse<any, any>> | void;
|
|
42
|
+
onAdd?: (data: any) => Promise<AxiosResponse<any, any>> | void;
|
|
43
|
+
onTruncate?: () => Promise<AxiosResponse<any, any>> | void;
|
|
44
|
+
onValidation?: (binding: string, value: string, dataItem: any) => Promise<string> | void;
|
|
45
|
+
onRefresh?: () => void;
|
|
46
|
+
onDownload?: () => void;
|
|
47
|
+
onNotify?: (e: any) => void;
|
|
48
|
+
}
|