@vmscloud/moz-ui-chart-vue 0.1.1

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 ADDED
@@ -0,0 +1,68 @@
1
+ # @vmscloud/moz-ui-chart-vue
2
+
3
+ `@vmscloud/moz-ui-chart-core` 의 Vue 3 어댑터. 레거시 `@vmscloud/moz-ui-chart` 와 같은 이름의 export(`EChart`, `EChartPopup`,
4
+ `ViewDefinitionPanel`, `MozEChart`, `DataType`, `Aggregate`, `IEChartExposed` …)와 같은 props / v-model / slot / expose 계약을 제공합니다.
5
+ import 경로만 바꾸면 됩니다.
6
+
7
+ ## 설치
8
+
9
+ ```bash
10
+ pnpm add @vmscloud/moz-ui-chart-vue vue vue-router
11
+ ```
12
+
13
+ npmjs 공개 패키지라 레지스트리 설정이나 토큰 없이 설치됩니다. 레거시 `@vmscloud/moz-ui-components` peer 가 없습니다.
14
+
15
+ ```ts
16
+ // main.ts
17
+ import '@vmscloud/moz-ui-chart-vue/style.css'; // primitives + 크롬 스타일 한 파일
18
+ ```
19
+
20
+ ## 사용
21
+
22
+ ```vue
23
+ <EChart
24
+ id="sales"
25
+ :itemsSource="rows"
26
+ v-model:chartDef="chartDef"
27
+ v-model:viewDef="viewDef"
28
+ v-model:filterDef="filterDef"
29
+ :isFetching="loading"
30
+ ref="chart"
31
+ >
32
+ <template #tool-left>매출 차트</template>
33
+ </EChart>
34
+ ```
35
+
36
+ ```ts
37
+ const chart = ref<IEChartExposed>();
38
+ chart.value!.chartOptionModal = true; // 설정 모달 열기
39
+ ```
40
+
41
+ ### 팝업 창
42
+
43
+ 툴바의 팝업 버튼(`useChartPopupIcon`)은 vue-router 로 `/chartPopup/<key>` 를 새 창에 엽니다. 라우트에 `EChartPopup` 을 등록하세요.
44
+
45
+ ```ts
46
+ { path: '/chartPopup/:chartId', component: () => import('@vmscloud/moz-ui-chart-vue').then((m) => m.EChartPopup) }
47
+ ```
48
+
49
+ ### 로케일
50
+
51
+ 기본 ko. 앱 전체에 적용하려면 `MOZ_CHART_LOCALE_KEY` 로 `Ref<ChartLocaleMessages>` 를 provide 하거나 `ChartLocaleProvider` 로 감쌉니다.
52
+ 레거시·components-core 의 전체 메시지 객체도 그대로 넘길 수 있습니다(구조적 부분집합).
53
+
54
+ ```ts
55
+ app.provide(MOZ_CHART_LOCALE_KEY, computed(() => (lang.value === 'en' ? enUS : koKR)));
56
+ ```
57
+
58
+ ### 사용자 레이아웃(UserLayout)
59
+
60
+ 호스트가 `'user-layout-module'` 을 provide 하면 정의 저장/복원에 등록됩니다(레거시 계약 동일).
61
+
62
+ ## 레거시와 다른 점
63
+
64
+ - `v-loading` / `v-tooltip` 디렉티브가 필요 없습니다(코어가 로딩 오버레이·`title` 툴팁을 직접 그림).
65
+ - expose 의 `chartRef` 는 레거시에서 vue-echarts 컴포넌트(`chartRef.chart` 로 echarts 접근)였지만, 이제 echarts 인스턴스 자체입니다. 새 코드는 `chart.value.chrome.echarts` 또는 `mozEChart.chart` 를 쓰세요.
66
+ - 필터의 Boolean 옵션에서 FALSE 항목의 key 가 레거시에서는 `true`(버그)였던 것을 `false` 로 고쳤습니다.
67
+ - `ViewDefinitionPanel` 단독 컴포넌트는 `columnLabel/rowLabel/valueLabel` 슬롯을 지원하지 않습니다(로케일 기본 라벨).
68
+ - Storybook 은 이 패키지에 없습니다.
@@ -0,0 +1,70 @@
1
+ import { ChartChrome, FilterDef, MozEChartOptions, ViewDef, MozEChart as MozEChartType, MozEChartOptions as MozEChartOptionsType, MozEChartTemplateOptions as MozEChartTemplateOptionsType } from '@vmscloud/moz-ui-chart-core';
2
+ /** EChart props — 레거시 moz-ui-chart EChart.vue 의 Props 1:1 (d.ts 에 노출되도록 별도 script 블록에서 export) */
3
+ export interface EChartProps {
4
+ id: string;
5
+ itemsSource?: Record<string, any>[];
6
+ isFetching?: boolean;
7
+ chartDef?: MozEChartOptionsType;
8
+ /** 개발자 측에서 항상 유지되었으면 하는 설정값 — chartDef 와 deepMerge 된다 */
9
+ chartDefTemplate?: MozEChartTemplateOptionsType;
10
+ useToolBox?: boolean;
11
+ useChartPopupIcon?: boolean;
12
+ useChartSetting?: boolean;
13
+ chartPopupTitle?: string;
14
+ /** stack bar hover 시 합계 label 표시 여부 (기본 true) */
15
+ useStackBarHover?: boolean;
16
+ onInitialized?: (mozEChart: MozEChartType) => void;
17
+ }
18
+ declare const _default: import('vue').DefineComponent<{
19
+ viewDef?: ViewDef;
20
+ filterDef?: FilterDef[];
21
+ } & EChartProps, {
22
+ chartCategorySource: MozEChartType["chartCategorySource"] | undefined;
23
+ chartTypeSource: MozEChartType["chartTypeSource"] | undefined;
24
+ mozEChart: MozEChartType | undefined;
25
+ chartRef: unknown;
26
+ state: import('@vmscloud/moz-ui-chart-core').ChartDefinition | undefined;
27
+ chartCategory: import('@vmscloud/moz-ui-chart-core').ChartCategory | undefined;
28
+ chartType: import('@vmscloud/moz-ui-chart-core').ChartType | undefined;
29
+ useZoomX: boolean;
30
+ useZoomY: boolean;
31
+ chartOptionModal: boolean;
32
+ chartFilterModel: boolean;
33
+ initializeDefinition: (initial
34
+ /**
35
+ * EChart — chart-core `ChartChrome` 을 얇게 감싸는 Vue 어댑터.
36
+ *
37
+ * 레거시 moz-ui-chart/src/EChart.vue 의 공개 계약(props / v-model:viewDef·filterDef / update:chartDef /
38
+ * slot tool-left·tool-items·tool-items-after / 'user-layout-module' inject / expose) 을 그대로 유지하고,
39
+ * 툴바·모달·필터·캔버스는 모두 코어가 그린다. 이 파일은 (1) 생명주기, (2) props → chrome.update 매핑,
40
+ * (3) 코어 이벤트 → emit/v-model, (4) Vue 슬롯 → 코어 outlet 마운트(VueRenderer), (5) expose 만 담당한다.
41
+ */
42
+ ?: boolean) => void;
43
+ chartKey: string | undefined;
44
+ customYAxisForSeriesType: string[];
45
+ clickChartPopup: () => void;
46
+ useChartPopupIcon: boolean | undefined;
47
+ onClickLegend: (params: any) => void;
48
+ chrome: ChartChrome | null;
49
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
50
+ "update:viewDef": (value: ViewDef) => any;
51
+ "update:filterDef": (value: FilterDef[]) => any;
52
+ "update:chartDef": (definition: MozEChartOptions) => any;
53
+ }, string, import('vue').PublicProps, Readonly<{
54
+ viewDef?: ViewDef;
55
+ filterDef?: FilterDef[];
56
+ } & EChartProps> & Readonly<{
57
+ "onUpdate:viewDef"?: ((value: ViewDef) => any) | undefined;
58
+ "onUpdate:filterDef"?: ((value: FilterDef[]) => any) | undefined;
59
+ "onUpdate:chartDef"?: ((definition: MozEChartOptions) => any) | undefined;
60
+ }>, {
61
+ itemsSource: Record<string, any>[];
62
+ chartDef: MozEChartOptionsType;
63
+ useToolBox: boolean;
64
+ useChartSetting: boolean;
65
+ useChartPopupIcon: boolean;
66
+ useStackBarHover: boolean;
67
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
68
+ hostRef: HTMLDivElement;
69
+ }, HTMLDivElement>;
70
+ export default _default;
@@ -0,0 +1,65 @@
1
+ import { ChartPopupPayload, ViewDef } from '@vmscloud/moz-ui-chart-core';
2
+ export type { ChartPopupPayload as EChartPopupData } from '@vmscloud/moz-ui-chart-core';
3
+ export declare function useEChartPopup(): {
4
+ openChartPopup: (data: ChartPopupPayload, chartKey: string, title?: string) => Promise<void>;
5
+ closePopup: () => void;
6
+ chartPopupTitle: import('vue').Ref<string, string>;
7
+ };
8
+ export declare function useEChartPopupView(): {
9
+ itemsSource: import('vue').Ref<any[], any[]>;
10
+ chartDef: import('vue').Ref<Record<string, any>, Record<string, any>>;
11
+ viewDef: import('vue').Ref<{
12
+ fields: {
13
+ binding: string;
14
+ header: string;
15
+ dataType: import('@vmscloud/moz-ui-chart-core').DataType;
16
+ aggregate?: import('@vmscloud/moz-ui-chart-core').Aggregate | undefined;
17
+ }[];
18
+ rowFields: {
19
+ binding: string;
20
+ header: string;
21
+ dataType: import('@vmscloud/moz-ui-chart-core').DataType;
22
+ aggregate?: import('@vmscloud/moz-ui-chart-core').Aggregate | undefined;
23
+ }[];
24
+ columnFields: {
25
+ binding: string;
26
+ header: string;
27
+ dataType: import('@vmscloud/moz-ui-chart-core').DataType;
28
+ aggregate?: import('@vmscloud/moz-ui-chart-core').Aggregate | undefined;
29
+ }[];
30
+ valueFields: {
31
+ binding: string;
32
+ header: string;
33
+ dataType: import('@vmscloud/moz-ui-chart-core').DataType;
34
+ aggregate?: import('@vmscloud/moz-ui-chart-core').Aggregate | undefined;
35
+ }[];
36
+ }, ViewDef | {
37
+ fields: {
38
+ binding: string;
39
+ header: string;
40
+ dataType: import('@vmscloud/moz-ui-chart-core').DataType;
41
+ aggregate?: import('@vmscloud/moz-ui-chart-core').Aggregate | undefined;
42
+ }[];
43
+ rowFields: {
44
+ binding: string;
45
+ header: string;
46
+ dataType: import('@vmscloud/moz-ui-chart-core').DataType;
47
+ aggregate?: import('@vmscloud/moz-ui-chart-core').Aggregate | undefined;
48
+ }[];
49
+ columnFields: {
50
+ binding: string;
51
+ header: string;
52
+ dataType: import('@vmscloud/moz-ui-chart-core').DataType;
53
+ aggregate?: import('@vmscloud/moz-ui-chart-core').Aggregate | undefined;
54
+ }[];
55
+ valueFields: {
56
+ binding: string;
57
+ header: string;
58
+ dataType: import('@vmscloud/moz-ui-chart-core').DataType;
59
+ aggregate?: import('@vmscloud/moz-ui-chart-core').Aggregate | undefined;
60
+ }[];
61
+ }>;
62
+ filterDef: import('vue').Ref<any[], any[]>;
63
+ chartPopupTitle: import('vue').Ref<string, string>;
64
+ chartDefTemplate: import('vue').Ref<Record<string, any>, Record<string, any>>;
65
+ };
@@ -0,0 +1,94 @@
1
+ import { MozEChart } from '@vmscloud/moz-ui-chart-core';
2
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
3
+ chartPopupRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
4
+ viewDef?: import('@vmscloud/moz-ui-chart-core').ViewDef;
5
+ filterDef?: import('@vmscloud/moz-ui-chart-core').FilterDef[];
6
+ } & import('./EChart.vue').EChartProps> & Readonly<{
7
+ "onUpdate:viewDef"?: ((value: import('@vmscloud/moz-ui-chart-core').ViewDef) => any) | undefined;
8
+ "onUpdate:filterDef"?: ((value: import('@vmscloud/moz-ui-chart-core').FilterDef[]) => any) | undefined;
9
+ "onUpdate:chartDef"?: ((definition: import('@vmscloud/moz-ui-chart-core').MozEChartOptions) => any) | undefined;
10
+ }>, {
11
+ chartCategorySource: MozEChart["chartCategorySource"] | undefined;
12
+ chartTypeSource: MozEChart["chartTypeSource"] | undefined;
13
+ mozEChart: MozEChart | undefined;
14
+ chartRef: unknown;
15
+ state: import('@vmscloud/moz-ui-chart-core').ChartDefinition | undefined;
16
+ chartCategory: import('@vmscloud/moz-ui-chart-core').ChartCategory | undefined;
17
+ chartType: import('@vmscloud/moz-ui-chart-core').ChartType | undefined;
18
+ useZoomX: boolean;
19
+ useZoomY: boolean;
20
+ chartOptionModal: boolean;
21
+ chartFilterModel: boolean;
22
+ initializeDefinition: (initial
23
+ /**
24
+ * MOVED — 원본: components/frontend/moz-ui-chart/src/components/EChartPopup.vue (2026-09-14)
25
+ * 팝업 창(/chartPopup/:key) 페이지 컴포넌트. opener 가 보낸 payload 로 차트를 그린다.
26
+ */
27
+ ?: boolean) => void;
28
+ chartKey: string | undefined;
29
+ customYAxisForSeriesType: string[];
30
+ clickChartPopup: () => void;
31
+ useChartPopupIcon: boolean | undefined;
32
+ onClickLegend: (params: any) => void;
33
+ chrome: import('@vmscloud/moz-ui-chart-core').ChartChrome | null;
34
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
35
+ "update:viewDef": (value: import('@vmscloud/moz-ui-chart-core').ViewDef) => any;
36
+ "update:filterDef": (value: import('@vmscloud/moz-ui-chart-core').FilterDef[]) => any;
37
+ "update:chartDef": (definition: import('@vmscloud/moz-ui-chart-core').MozEChartOptions) => any;
38
+ }, import('vue').PublicProps, {
39
+ itemsSource: Record<string, any>[];
40
+ chartDef: import('@vmscloud/moz-ui-chart-core').MozEChartOptions;
41
+ useToolBox: boolean;
42
+ useChartSetting: boolean;
43
+ useChartPopupIcon: boolean;
44
+ useStackBarHover: boolean;
45
+ }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
46
+ hostRef: HTMLDivElement;
47
+ }, HTMLDivElement, import('vue').ComponentProvideOptions, {
48
+ P: {};
49
+ B: {};
50
+ D: {};
51
+ C: {};
52
+ M: {};
53
+ Defaults: {};
54
+ }, Readonly<{
55
+ viewDef?: import('@vmscloud/moz-ui-chart-core').ViewDef;
56
+ filterDef?: import('@vmscloud/moz-ui-chart-core').FilterDef[];
57
+ } & import('./EChart.vue').EChartProps> & Readonly<{
58
+ "onUpdate:viewDef"?: ((value: import('@vmscloud/moz-ui-chart-core').ViewDef) => any) | undefined;
59
+ "onUpdate:filterDef"?: ((value: import('@vmscloud/moz-ui-chart-core').FilterDef[]) => any) | undefined;
60
+ "onUpdate:chartDef"?: ((definition: import('@vmscloud/moz-ui-chart-core').MozEChartOptions) => any) | undefined;
61
+ }>, {
62
+ chartCategorySource: MozEChart["chartCategorySource"] | undefined;
63
+ chartTypeSource: MozEChart["chartTypeSource"] | undefined;
64
+ mozEChart: MozEChart | undefined;
65
+ chartRef: unknown;
66
+ state: import('@vmscloud/moz-ui-chart-core').ChartDefinition | undefined;
67
+ chartCategory: import('@vmscloud/moz-ui-chart-core').ChartCategory | undefined;
68
+ chartType: import('@vmscloud/moz-ui-chart-core').ChartType | undefined;
69
+ useZoomX: boolean;
70
+ useZoomY: boolean;
71
+ chartOptionModal: boolean;
72
+ chartFilterModel: boolean;
73
+ initializeDefinition: (initial
74
+ /**
75
+ * MOVED — 원본: components/frontend/moz-ui-chart/src/components/EChartPopup.vue (2026-09-14)
76
+ * 팝업 창(/chartPopup/:key) 페이지 컴포넌트. opener 가 보낸 payload 로 차트를 그린다.
77
+ */
78
+ ?: boolean) => void;
79
+ chartKey: string | undefined;
80
+ customYAxisForSeriesType: string[];
81
+ clickChartPopup: () => void;
82
+ useChartPopupIcon: boolean | undefined;
83
+ onClickLegend: (params: any) => void;
84
+ chrome: import('@vmscloud/moz-ui-chart-core').ChartChrome | null;
85
+ }, {}, {}, {}, {
86
+ itemsSource: Record<string, any>[];
87
+ chartDef: import('@vmscloud/moz-ui-chart-core').MozEChartOptions;
88
+ useToolBox: boolean;
89
+ useChartSetting: boolean;
90
+ useChartPopupIcon: boolean;
91
+ useStackBarHover: boolean;
92
+ }> | null;
93
+ }, HTMLDivElement>;
94
+ export default _default;
@@ -0,0 +1,26 @@
1
+ import { ChartField, ViewDef, ChartField as ChartFieldType } from '@vmscloud/moz-ui-chart-core';
2
+ /** ViewDefinitionPanel props — 레거시 1:1 */
3
+ export interface ViewDefinitionPanelProps {
4
+ customRule?: (type: 'column' | 'row' | 'value' | 'source', fieldsArray: ChartFieldType[], field: ChartFieldType) => boolean;
5
+ disableSourceField?: boolean;
6
+ disableColumnField?: boolean;
7
+ disableRowField?: boolean;
8
+ disableValueField?: boolean;
9
+ disableAggregate?: boolean;
10
+ }
11
+ declare const _default: import('vue').DefineComponent<{
12
+ definition: ViewDef;
13
+ } & ViewDefinitionPanelProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
14
+ change: (field: ChartField) => any;
15
+ "update:definition": (value: ViewDef) => any;
16
+ }, string, import('vue').PublicProps, Readonly<{
17
+ definition: ViewDef;
18
+ } & ViewDefinitionPanelProps> & Readonly<{
19
+ onChange?: ((field: ChartField) => any) | undefined;
20
+ "onUpdate:definition"?: ((value: ViewDef) => any) | undefined;
21
+ }>, {
22
+ customRule: (type: "column" | "row" | "value" | "source", fieldsArray: ChartFieldType[], field: ChartFieldType) => boolean;
23
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
24
+ hostRef: HTMLDivElement;
25
+ }, HTMLDivElement>;
26
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import { AppContext } from 'vue';
2
+ export declare class VueRenderer {
3
+ private appContext;
4
+ private apps;
5
+ setAppContext(ctx: AppContext): void;
6
+ mountInstance(container: HTMLElement, slot: (props: Record<string, unknown>) => unknown, initialProps: Record<string, unknown>): {
7
+ update: (props: Record<string, unknown>) => void;
8
+ destroy: () => void;
9
+ };
10
+ unmountAll(): void;
11
+ get size(): number;
12
+ }
@@ -0,0 +1,38 @@
1
+ import { Ref } from 'vue';
2
+ interface IUserLayout {
3
+ id: string;
4
+ type: string;
5
+ importDef: (value: any) => void;
6
+ exportDef: () => any;
7
+ strict?: boolean;
8
+ dependencies?: Ref<any>;
9
+ manualLifeCycle?: boolean;
10
+ }
11
+ /**
12
+ * 해당 인스턴스는 반드시 Vue Setup 내에서 선언되어야 함. 그래야만 페이지 이동시 onBeforeUnmount내의 onDispose가 호출되어 인스턴스를 정리할 수 있음.
13
+ */
14
+ export declare class UserLayoutInstance {
15
+ uniqueId: string;
16
+ private _id;
17
+ private _type;
18
+ private _default;
19
+ private _importDef;
20
+ private _exportDef;
21
+ private _pendingDef;
22
+ private _pending;
23
+ dispose: () => void;
24
+ setApplied: (value: boolean) => void;
25
+ strict: boolean;
26
+ dependencies: Ref<any> | null;
27
+ get pending(): boolean;
28
+ set pending(value: boolean);
29
+ get id(): string;
30
+ get type(): string;
31
+ get default(): any;
32
+ set default(value: any);
33
+ get current(): any;
34
+ set current(value: any);
35
+ setDefaultToCurrent(): void;
36
+ constructor({ id, type, exportDef, importDef, strict, dependencies, manualLifeCycle }: IUserLayout);
37
+ }
38
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './userLayout.contract';
2
+ export * from './UserLayoutInstance';
@@ -0,0 +1,15 @@
1
+ import { UserLayoutInstance } from './UserLayoutInstance';
2
+ /**
3
+ * 호스트 앱이 provide 하는 userLayout 모듈 계약
4
+ * - register: 레이아웃 인스턴스 등록
5
+ * - currentPreset: 현재 선택된 프리셋
6
+ */
7
+ export interface UserLayoutModuleContract {
8
+ register(instance: UserLayoutInstance): void;
9
+ currentPreset: any;
10
+ }
11
+ /**
12
+ * userLayout 모듈을 주입받아 사용합니다. 모듈이 제공되지 않으면 기본 구현(no-op)을 반환합니다.
13
+ */
14
+ export declare const useUserLayoutModule: () => UserLayoutModuleContract;
15
+ export { UserLayoutInstance };
@@ -0,0 +1 @@
1
+ "use strict";const t=require("@vmscloud/moz-ui-chart-core/echarts-stat");module.exports=t;
@@ -0,0 +1 @@
1
+ export { default } from "@vmscloud/moz-ui-chart-core/echarts-stat";
@@ -0,0 +1,4 @@
1
+ import { default as default2 } from "@vmscloud/moz-ui-chart-core/echarts-stat";
2
+ export {
3
+ default2 as default
4
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vmscloud/moz-ui-chart-core/echarts/charts");Object.keys(e).forEach(t=>{"default"===t||Object.prototype.hasOwnProperty.call(exports,t)||Object.defineProperty(exports,t,{enumerable:!0,get:()=>e[t]})});
@@ -0,0 +1 @@
1
+ export * from "@vmscloud/moz-ui-chart-core/echarts/charts";
@@ -0,0 +1 @@
1
+ export * from "@vmscloud/moz-ui-chart-core/echarts/charts";
@@ -0,0 +1 @@
1
+ "use strict";function e(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const r in e)if("default"!==r){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}return t.default=e,Object.freeze(t)}const t=e(require("@vmscloud/moz-ui-chart-core/echarts"));module.exports=t;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vmscloud/moz-ui-chart-core/echarts/components");Object.keys(e).forEach(t=>{"default"===t||Object.prototype.hasOwnProperty.call(exports,t)||Object.defineProperty(exports,t,{enumerable:!0,get:()=>e[t]})});
@@ -0,0 +1 @@
1
+ export * from "@vmscloud/moz-ui-chart-core/echarts/components";
@@ -0,0 +1 @@
1
+ export * from "@vmscloud/moz-ui-chart-core/echarts/components";
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vmscloud/moz-ui-chart-core/echarts/core");Object.keys(e).forEach(t=>{"default"===t||Object.prototype.hasOwnProperty.call(exports,t)||Object.defineProperty(exports,t,{enumerable:!0,get:()=>e[t]})});
@@ -0,0 +1 @@
1
+ export * from "@vmscloud/moz-ui-chart-core/echarts/core";
@@ -0,0 +1 @@
1
+ export * from "@vmscloud/moz-ui-chart-core/echarts/core";
@@ -0,0 +1,2 @@
1
+ import * as echarts from "@vmscloud/moz-ui-chart-core/echarts";
2
+ export default echarts;
@@ -0,0 +1,4 @@
1
+ import * as echarts from "@vmscloud/moz-ui-chart-core/echarts";
2
+ export {
3
+ echarts as default
4
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vmscloud/moz-ui-chart-core/echarts/renderers");Object.keys(e).forEach(r=>{"default"===r||Object.prototype.hasOwnProperty.call(exports,r)||Object.defineProperty(exports,r,{enumerable:!0,get:()=>e[r]})});
@@ -0,0 +1 @@
1
+ export * from "@vmscloud/moz-ui-chart-core/echarts/renderers";
@@ -0,0 +1 @@
1
+ export * from "@vmscloud/moz-ui-chart-core/echarts/renderers";
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";var e=Object.defineProperty,t=(t,o,r)=>((t,o,r)=>o in t?e(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r)(t,"symbol"!=typeof o?o+"":o,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),r=require("@vmscloud/moz-ui-chart-core"),i=require("vue-router");class l{constructor(){t(this,"appContext",null),t(this,"apps",new Set)}setAppContext(e){this.appContext=e}mountInstance(e,t,r){const i=o.reactive({...r}),l=o.createApp({render:()=>t(i)});return this.appContext&&(l._context.provides={...this.appContext.provides},l._context.components={...this.appContext.components},l._context.directives={...this.appContext.directives},l._context.config.globalProperties={...this.appContext.config.globalProperties}),l.mount(e),this.apps.add(l),{update:e=>{Object.assign(i,e)},destroy:()=>{this.apps.delete(l),l.unmount()}}}unmountAll(){for(const e of this.apps)try{e.unmount()}catch{}this.apps.clear()}get size(){return this.apps.size}}class n{constructor({id:e,type:i,exportDef:l,importDef:n,strict:a,dependencies:u,manualLifeCycle:s}){t(this,"uniqueId"),t(this,"_id"),t(this,"_type"),t(this,"_default"),t(this,"_importDef"),t(this,"_exportDef"),t(this,"_pendingDef"),t(this,"_pending"),t(this,"dispose",()=>{}),t(this,"setApplied",()=>{}),t(this,"strict"),t(this,"dependencies"),this.uniqueId=r.generateUUID(),this._id=e,this._type=i,this._importDef=n,this._exportDef=l,this._default=l(),this._pending=!1,this._pendingDef=null,this.strict=a??!1,this.dependencies=u??null,s||o.onBeforeUnmount(()=>{this.dispose()})}get pending(){return this._pending}set pending(e){if(this._pending=e,!e&&this._pendingDef)try{this._importDef(this._pendingDef),this.setApplied(!0)}catch(t){}finally{this._pendingDef=null}}get id(){return this._id}get type(){return this._type}get default(){return this._default}set default(e){this._default=e}get current(){return this._exportDef()}set current(e){this.pending?this._pendingDef=e:(this._importDef(e),this.setApplied(!0))}setDefaultToCurrent(){this._default=this._exportDef()}}const a=()=>o.inject("user-layout-module",{register:()=>{},currentPreset:o.ref(null)}),u=Symbol("MozChartLocale");function s(){const e=o.inject(u,null);return e||o.computed(()=>r.koKR)}const p=o.defineComponent({name:"ChartLocaleProvider",props:{locale:{type:Object,default:()=>r.koKR}},setup:(e,{slots:t})=>(o.provide(u,o.computed(()=>e.locale)),()=>{var e;return null==(e=t.default)?void 0:e.call(t)})});function d(){const e=s(),t=i.useRouter(),l=o.ref("");let n=null;const a=()=>{null==n||n.close(),n=null};return o.onUnmounted(()=>a()),{openChartPopup:async(o,i,a)=>{l.value=a??e.value.Chart.chartPopup,null==n||n.close();const u=t.resolve({path:`/chartPopup/${i}`,query:{}}).href;n=r.openChartPopupWindow({href:u,name:i,payload:o,title:l.value,onBlocked:()=>r.showMessage(e.value.Chart.errorMessage,!1)})},closePopup:a,chartPopupTitle:l}}function c(){const e=o.ref([]),t=o.ref({}),i=o.ref({fields:[],columnFields:[],rowFields:[],valueFields:[]}),l=o.ref([]),n=o.ref(""),a=o.ref({});let u=null;return o.onMounted(()=>{u=r.listenChartPopupPayload(o=>{e.value=o.itemsSource,t.value=o.chartDef,i.value=o.viewDef,l.value=o.filterDef,a.value=o.chartDefTemplate??{},o.title&&(n.value=o.title)})}),o.onUnmounted(()=>null==u?void 0:u()),{itemsSource:e,chartDef:t,viewDef:i,filterDef:l,chartPopupTitle:n,chartDefTemplate:a}}const h=["data-chart-id"],f=o.defineComponent({__name:"EChart",props:o.mergeModels({id:{},itemsSource:{default:()=>[]},isFetching:{type:Boolean},chartDef:{default:()=>({})},chartDefTemplate:{},useToolBox:{type:Boolean,default:!0},useChartPopupIcon:{type:Boolean,default:!1},useChartSetting:{type:Boolean,default:!0},chartPopupTitle:{},useStackBarHover:{type:Boolean,default:!0},onInitialized:{}},{viewDef:{default:()=>({fields:[],rowFields:[],columnFields:[],valueFields:[]})},viewDefModifiers:{},filterDef:{default:()=>[]},filterDefModifiers:{}}),emits:o.mergeModels(["update:chartDef"],["update:viewDef","update:filterDef"]),setup(e,{expose:t,emit:i}){const u=e,p=i,c=o.useModel(e,"viewDef"),f=o.useModel(e,"filterDef"),m=o.ref(),g=o.useSlots(),v=s(),{register:C}=a(),{openChartPopup:D}=d(),y=new l,b=o.getCurrentInstance();b&&y.setAppContext(b.appContext);let P=null,x=null;const w=["tool-left","tool-items","tool-items-after"];function _(e){return(t,o)=>{const r=y.mountInstance(t,t=>{var o;return null==(o=g[e])?void 0:o.call(g,t)},o??{});return{update:e=>r.update(e??{}),dispose:()=>r.destroy()}}}o.onMounted(()=>{const e={};for(const o of w)g[o]&&(e[o]=_(o));const t=new r.ChartChrome(m.value,{id:u.id,itemsSource:u.itemsSource,chartDef:u.chartDef,viewDef:c.value,filterDef:f.value,chartDefTemplate:u.chartDefTemplate,isFetching:u.isFetching,useToolBox:u.useToolBox,useChartSetting:u.useChartSetting,useChartPopupIcon:u.useChartPopupIcon,chartPopupTitle:u.chartPopupTitle,useStackBarHover:u.useStackBarHover,onInitialized:u.onInitialized},{locale:v.value,slots:e,onOpenPopup:(e,t,o)=>D(e,t,o)});t.on("chartDef:change",e=>p("update:chartDef",e)),t.on("viewDef:change",e=>{o.toRaw(c.value)!==o.toRaw(e)&&(c.value=e)}),t.on("filterDef:change",e=>{o.toRaw(f.value)!==o.toRaw(e)?f.value=e:null==b||b.emit("update:filterDef",e)}),P=t,t.mount(),x=new n({id:u.id,type:"chart",importDef:e=>null==P?void 0:P.importDefinition(e),exportDef:()=>P?P.getDefinitionWithoutData():{}}),C(x)}),o.watch(()=>u.itemsSource,e=>null==P?void 0:P.update({itemsSource:e})),o.watch(()=>u.chartDef,e=>null==P?void 0:P.update({chartDef:e})),o.watch(()=>u.chartDefTemplate,e=>null==P?void 0:P.update({chartDefTemplate:e}),{deep:!0}),o.watch(c,e=>null==P?void 0:P.update({viewDef:e}),{deep:!0}),o.watch(f,e=>null==P?void 0:P.update({filterDef:e}),{deep:!0}),o.watch(()=>[u.isFetching,u.useToolBox,u.useChartSetting,u.useChartPopupIcon,u.chartPopupTitle,u.useStackBarHover,u.onInitialized,u.id],()=>null==P?void 0:P.update({id:u.id,isFetching:u.isFetching,useToolBox:u.useToolBox,useChartSetting:u.useChartSetting,useChartPopupIcon:u.useChartPopupIcon,chartPopupTitle:u.chartPopupTitle,useStackBarHover:u.useStackBarHover,onInitialized:u.onInitialized})),o.watch(v,e=>null==P?void 0:P.setLocale(e)),o.onBeforeUnmount(()=>{null==P||P.destroy(),P=null,y.unmountAll()});return t({get chartCategorySource(){return null==P?void 0:P.mozEChart.chartCategorySource},get chartTypeSource(){return null==P?void 0:P.mozEChart.chartTypeSource},get mozEChart(){return null==P?void 0:P.mozEChart},get chartRef(){return(null==P?void 0:P.echarts)??null},get state(){return null==P?void 0:P.state},get chartCategory(){return null==P?void 0:P.chartCategory},get chartType(){return null==P?void 0:P.chartType},get useZoomX(){return!!(null==P?void 0:P.mozEChart.dataZoomComputedProperty("x").get())},set useZoomX(e){null==P||P.mozEChart.dataZoomComputedProperty("x").set(e),null==P||P.syncOption()},get useZoomY(){return!!(null==P?void 0:P.mozEChart.dataZoomComputedProperty("y").get())},set useZoomY(e){null==P||P.mozEChart.dataZoomComputedProperty("y").set(e),null==P||P.syncOption()},get chartOptionModal(){return!!(null==P?void 0:P.optionModalOpen)},set chartOptionModal(e){P&&(P.optionModalOpen=e)},get chartFilterModel(){return!!(null==P?void 0:P.filterModalOpen)},set chartFilterModel(e){P&&(P.filterModalOpen=e)},initializeDefinition:e=>null==P?void 0:P.initializeDefinition(e),get chartKey(){return null==P?void 0:P.chartKey},get customYAxisForSeriesType(){var e;return(null==(e=null==P?void 0:P.mozEChart.chartModule.series)?void 0:e.customYAxisComputedProperty().get())??[]},set customYAxisForSeriesType(e){var t;null==(t=null==P?void 0:P.mozEChart.chartModule.series)||t.customYAxisComputedProperty().set(e),null==P||P.syncOption()},clickChartPopup:()=>null==P?void 0:P.clickChartPopup(),get useChartPopupIcon(){return u.useChartPopupIcon},onClickLegend:e=>null==P?void 0:P.onClickLegend(e),get chrome(){return P}}),(t,r)=>(o.openBlock(),o.createElementBlock("div",{ref_key:"hostRef",ref:m,class:"mzch-vue-echart-host","data-chart-id":e.id},null,8,h))}}),m={class:"chart-popup-wrapper"},g=((e,t)=>{const o=e.__vccOpts||e;for(const[r,i]of t)o[r]=i;return o})(o.defineComponent({__name:"EChartPopup",setup(e){const{itemsSource:t,chartDef:r,viewDef:i,filterDef:l,chartDefTemplate:n}=c(),a=e=>{e.dataZoomComputedProperty("X").set(!0),e.dataZoomComputedProperty("Y").set(!0)};return(e,u)=>(o.openBlock(),o.createElementBlock("div",m,[o.createVNode(f,{id:"chart_popup",onInitialized:a,itemsSource:o.unref(t),chartDef:o.unref(r),"onUpdate:chartDef":u[0]||(u[0]=e=>o.isRef(r)?r.value=e:null),viewDef:o.unref(i),"onUpdate:viewDef":u[1]||(u[1]=e=>o.isRef(i)?i.value=e:null),filterDef:o.unref(l),"onUpdate:filterDef":u[2]||(u[2]=e=>o.isRef(l)?l.value=e:null),chartDefTemplate:o.unref(n),ref:"chartPopupRef","use-tool-box":!1},null,8,["itemsSource","chartDef","viewDef","filterDef","chartDefTemplate"])]))}}),[["__scopeId","data-v-8e21a7ac"]]),v=o.defineComponent({__name:"ViewDefinitionPanel",props:o.mergeModels({customRule:{type:Function,default:()=>!0},disableSourceField:{type:Boolean},disableColumnField:{type:Boolean},disableRowField:{type:Boolean},disableValueField:{type:Boolean},disableAggregate:{type:Boolean}},{definition:{required:!0},definitionModifiers:{}}),emits:o.mergeModels(["change"],["update:definition"]),setup(e,{emit:t}){const i=e,l=t,n=o.useModel(e,"definition"),a=o.ref(),u=s();let p=null;return o.onMounted(()=>{p=new r.ViewDefinitionPanelHost(a.value,{definition:n.value,customRule:i.customRule,disableSourceField:i.disableSourceField,disableColumnField:i.disableColumnField,disableRowField:i.disableRowField,disableValueField:i.disableValueField,disableAggregate:i.disableAggregate,onChange:e=>l("change",e)},{locale:u.value}).mount()}),o.watch(()=>[i.disableSourceField,i.disableColumnField,i.disableRowField,i.disableValueField,i.disableAggregate],()=>null==p?void 0:p.update({disableSourceField:i.disableSourceField,disableColumnField:i.disableColumnField,disableRowField:i.disableRowField,disableValueField:i.disableValueField,disableAggregate:i.disableAggregate})),o.watch(n,e=>null==p?void 0:p.update({definition:e}),{deep:!0}),o.watch(u,e=>null==p?void 0:p.setLocale(e)),o.onBeforeUnmount(()=>{null==p||p.destroy(),p=null}),(e,t)=>(o.openBlock(),o.createElementBlock("div",{ref_key:"hostRef",ref:a,class:"mzch-vue-view-def-host"},null,512))}});Object.defineProperty(exports,"Aggregate",{enumerable:!0,get:()=>r.Aggregate}),Object.defineProperty(exports,"ChartChrome",{enumerable:!0,get:()=>r.ChartChrome}),Object.defineProperty(exports,"DataType",{enumerable:!0,get:()=>r.DataType}),Object.defineProperty(exports,"MozEChart",{enumerable:!0,get:()=>r.MozEChart}),Object.defineProperty(exports,"RENDER_LIMIT",{enumerable:!0,get:()=>r.RENDER_LIMIT}),Object.defineProperty(exports,"enUS",{enumerable:!0,get:()=>r.enUS}),Object.defineProperty(exports,"jaJP",{enumerable:!0,get:()=>r.jaJP}),Object.defineProperty(exports,"koKR",{enumerable:!0,get:()=>r.koKR}),Object.defineProperty(exports,"showConfirm",{enumerable:!0,get:()=>r.showConfirm}),Object.defineProperty(exports,"showDialog",{enumerable:!0,get:()=>r.showDialog}),Object.defineProperty(exports,"showMessage",{enumerable:!0,get:()=>r.showMessage}),Object.defineProperty(exports,"zhCN",{enumerable:!0,get:()=>r.zhCN}),exports.ChartLocaleProvider=p,exports.EChart=f,exports.EChartPopup=g,exports.MOZ_CHART_LOCALE_KEY=u,exports.UserLayoutInstance=n,exports.ViewDefinitionPanel=v,exports.useChartLocale=s,exports.useEChartPopup=d,exports.useEChartPopupView=c,exports.useUserLayoutModule=a;
@@ -0,0 +1,10 @@
1
+ export { default as EChart } from './EChart.vue';
2
+ export { default as EChartPopup } from './EChartPopup.vue';
3
+ export { default as ViewDefinitionPanel } from './ViewDefinitionPanel.vue';
4
+ export { useEChartPopup, useEChartPopupView } from './EChartPopup';
5
+ export type { EChartPopupData } from './EChartPopup';
6
+ export type { IEChartExposed } from './types';
7
+ export * from './contracts';
8
+ export * from './locale';
9
+ export { MozEChart, DataType, Aggregate, ChartChrome, showConfirm, showDialog, showMessage, RENDER_LIMIT } from '@vmscloud/moz-ui-chart-core';
10
+ export type { ChartCategory, ChartType, MozEChartOptions, MozEChartTemplateOptions, ChartField, ViewDef, ChartDefinition, FilterDef, ChartPopupPayload, ChartChromeProps, ChartDefinitionWithoutData, } from '@vmscloud/moz-ui-chart-core';