stz-chart-maker 2.3.3 → 2.3.5

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 CHANGED
@@ -64,7 +64,15 @@ import { setChartConfig } from 'stz-chart-maker';
64
64
  setChartConfig({
65
65
  errorLogging: true,
66
66
  silentMode: false,
67
- defaultColor: ['#FF6B6B', '#4ECDC4', '#45B7D1', '#FFA07A', '#98D8C8', '#F7DC6F']
67
+ defaultColor: ['#FF6B6B', '#4ECDC4', '#45B7D1', '#FFA07A', '#98D8C8', '#F7DC6F'],
68
+ zoom: true,
69
+ loading: true,
70
+ legend: {
71
+ position: 'top'
72
+ },
73
+ tooltip: {
74
+ enabled: true
75
+ }
68
76
  });
69
77
  ```
70
78
 
@@ -86,6 +94,26 @@ module.exports = {
86
94
  | `errorLogging` | `boolean` | `true` | 에러 로그 출력 여부 |
87
95
  | `silentMode` | `boolean` | `true` | 에러 발생 시 예외를 던지지 않고 처리 |
88
96
  | `defaultColor` | `string[]` | 내부 기본 팔레트 | 차트 전역 기본 색상 배열 |
97
+ | `zoom` | `boolean \| object` | `false` | `line`, `bar`, `bubble` 차트에 전역 zoom 기본값 적용 |
98
+ | `loading` | `boolean` | `false` | Cartesian 차트에 전역 loading 기본값 적용 |
99
+ | `legend` | `object` | 차트 기본값 사용 | 차트 전역 legend 기본 옵션 적용 |
100
+ | `tooltip` | `object` | 차트 기본값 사용 | 차트 전역 tooltip 기본 옵션 적용 |
101
+
102
+ ## Export / Empty State
103
+
104
+ ```tsx
105
+ import { ChartWrapper, downloadChartAsImage, setChartConfig } from 'stz-chart-maker';
106
+
107
+ setChartConfig({ loading: true });
108
+
109
+ const chartConfig = ChartWrapper
110
+ .create('bar', [], [{ data: [] }], {
111
+ _noDataText: '데이터 없음',
112
+ })
113
+ .build('sales-chart');
114
+
115
+ downloadChartAsImage('sales-chart');
116
+ ```
89
117
 
90
118
  ### 변경기록
91
119
  [CHANGELOG.md](./CHANGELOG.md) 파일을 참조하세요.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ChartTypeRegistry, ChartType, ChartDataset, GridLineOptions, FontSpec, Tick, PluginOptionsByType, Chart as Chart$1, ChartOptions, ChartEvent, ActiveElement, LegendOptions, Plugin as Plugin$1, TooltipItem } from 'chart.js';
1
+ import { ChartTypeRegistry, ChartType, ChartDataset, GridLineOptions, FontSpec, Tick, PluginOptionsByType, Chart as Chart$1, ChartOptions, ChartEvent, ActiveElement, LegendOptions, TooltipOptions, Plugin as Plugin$1, TooltipItem } from 'chart.js';
2
2
  import { TreemapControllerDatasetOptions } from 'chartjs-chart-treemap';
3
3
  import { ZoomPluginOptions } from 'chartjs-plugin-zoom/types/options';
4
4
 
@@ -448,6 +448,7 @@ type CustomChartOptions<TType extends ChartType = ChartType> = Override<ChartOpt
448
448
  _mounted?: (chart: Chart$1<TType>) => void;
449
449
  _chartId?: string;
450
450
  _loading?: boolean;
451
+ _noDataText?: string;
451
452
  };
452
453
  type CustomArcChartOptions<TType extends ArcChartType = ArcChartType> = CustomChartOptions<TType> & {
453
454
  scales?: never;
@@ -494,6 +495,7 @@ interface ChartBuilder<TType extends ChartType> {
494
495
  }) => void): this;
495
496
  setTitle(titleOptions: CommonCartesianTitleConfig): this;
496
497
  setLegend(legendOptions: DeepPartial<LegendOptions<any>>): this;
498
+ setTooltip(tooltipOptions: DeepPartial<TooltipOptions<any>>): this;
497
499
  mergeOptions(options: DeepPartial<CustomChartOptions<TType>>): this;
498
500
  getChartData(uid: string): CustomChartDatasets<TType>;
499
501
  setChartData(uid: string, data: CustomChartDatasets<TType>): void;
@@ -515,6 +517,7 @@ interface CartesianChartBuilder<TType extends CartesianChartType> extends ChartB
515
517
  color?: string;
516
518
  lineWidth?: number;
517
519
  }): this;
520
+ setZoom(enabled: boolean, zoomOption?: DeepPartialZoomType): this;
518
521
  addZoom(defaultZoom?: boolean, zoomOption?: object): this;
519
522
  addDataLabels(defultDataLabels?: boolean, dataLabelsOptions?: PartialDataLabels): this;
520
523
  setYAxisForDataset(datasetIndex: number, axisId?: string): this;
@@ -731,6 +734,7 @@ declare abstract class Chart<TType extends ChartType, TOptions extends CustomCha
731
734
  static has(type: ChartType): boolean;
732
735
  protected cloneValue<T>(value: T): T;
733
736
  protected clonePlugins<TPlugins>(plugins: TPlugins): TPlugins;
737
+ protected applyGlobalPluginConfig(): void;
734
738
  protected requireDatasets(): CustomChartDatasets<TType>[];
735
739
  protected resolveDatasetIndex(uidOrIndex: string | number): number;
736
740
  protected getDatasetByTarget(uidOrIndex: string | number): CustomChartDatasets<TType>;
@@ -826,6 +830,20 @@ declare abstract class Chart<TType extends ChartType, TOptions extends CustomCha
826
830
  * });
827
831
  */
828
832
  setLegend(legendOptions: DeepPartial<LegendOptions<TType>>): this;
833
+ /**
834
+ * @description 차트의 툴팁을 설정합니다.
835
+ * 전역 `setChartConfig({ tooltip: ... })` 설정이 있으면 이를 기본값으로 사용하고, 이 메서드 호출값으로 병합합니다.
836
+ * @param {DeepPartial<TooltipOptions<TType>>} tooltipOptions
837
+ * @returns {this}
838
+ * @Since 2.4.0
839
+ * @category options
840
+ * @example
841
+ * chart.setTooltip({
842
+ * enabled: true,
843
+ * backgroundColor: 'rgba(8, 26, 61, 0.95)'
844
+ * });
845
+ */
846
+ setTooltip(tooltipOptions: DeepPartial<TooltipOptions<TType>>): this;
829
847
  /**
830
848
  * @description 기존 옵션에 부분 옵션을 병합합니다.
831
849
  * @param {DeepPartial<TOptions>} options
@@ -1054,9 +1072,13 @@ declare abstract class CartesianChart<TType extends CartesianChartType> extends
1054
1072
  _hideTooltip(chart: any): void;
1055
1073
  afterDestroy(chart: any): void;
1056
1074
  })[];
1075
+ protected resolveMustHavePlugins(options?: CustomChartOptions<TType>): any[];
1057
1076
  protected isLine(): boolean;
1058
1077
  protected isScatter(): boolean;
1059
1078
  protected isBar(): boolean;
1079
+ protected applyGlobalZoomConfig(): void;
1080
+ protected ensureZoomResetPlugin(): void;
1081
+ protected removeZoomResetPlugin(): void;
1060
1082
  protected normalize(): void;
1061
1083
  protected configAop(config: any): any;
1062
1084
  /**
@@ -1187,14 +1209,31 @@ declare abstract class CartesianChart<TType extends CartesianChartType> extends
1187
1209
  lineWidth?: number;
1188
1210
  }): this;
1189
1211
  /**
1190
- * @description 줌 기능을 추가합니다. 해당 기능은 플러그인 설치가 필요합니다.
1191
- * @param defaultZoom
1192
- * @param zoomOption
1212
+ * @description 줌 기능을 설정합니다. `false`를 전달하면 현재 차트의 줌 설정을 제거합니다.
1213
+ * 전역 `setChartConfig({ zoom: true })` 설정이 있더라도 이 메서드로 차트별 비활성화가 가능합니다.
1214
+ * @param {boolean} enabled
1215
+ * @param {CustomZoomType<TType>} zoomOption
1216
+ * @returns {this}
1217
+ * @since 2.4.0
1218
+ * @category Plugins
1219
+ */
1220
+ setZoom(enabled: boolean, zoomOption?: DeepPartialZoomType): this;
1221
+ /**
1222
+ * @deprecated `setZoom(enabled, zoomOption)`을 사용하세요.
1223
+ * @description 레거시 줌 설정 메서드입니다. 내부적으로 `setZoom(true, ...)`를 호출합니다.
1224
+ * @param defaultZoom - `true`이면 기본 줌 옵션을 적용합니다.
1225
+ * @param zoomOption - 사용자 정의 줌 옵션입니다.
1193
1226
  * @returns {this}
1194
1227
  * @since 1.0.0
1195
1228
  * @category Plugins
1196
1229
  * @defaultValue defaultZoom = false
1230
+ * @example
1231
+ * // 기존 방식
1232
+ * chart.addZoom(true);
1197
1233
  *
1234
+ * @example
1235
+ * // 권장 방식
1236
+ * chart.setZoom(true);
1198
1237
  */
1199
1238
  addZoom(defaultZoom?: boolean, zoomOption?: object): this;
1200
1239
  /**
@@ -1997,6 +2036,7 @@ declare abstract class ArcChart<TType extends ArcChartType> extends Chart<TType>
1997
2036
  afterDraw(chart: any, args: any, options: any): void;
1998
2037
  afterDestroy(chart: any): void;
1999
2038
  }[];
2039
+ protected resolveMustHavePlugins(options?: CustomArcChartOptions<TType>): any[];
2000
2040
  protected normalize(): void;
2001
2041
  protected configAop(config: any): any;
2002
2042
  /**
@@ -2441,6 +2481,7 @@ declare class TreemapChart extends Chart<'treemap', CustomTreemapChartOptions> i
2441
2481
  afterDraw(chart: any, args: any, options: any): void;
2442
2482
  afterDestroy(chart: any): void;
2443
2483
  }[];
2484
+ protected resolveMustHavePlugins(options?: CustomTreemapChartOptions): any[];
2444
2485
  protected configAop(config: any): any;
2445
2486
  /**
2446
2487
  * @Description 차트 설정 객체를 생성합니다.
@@ -3098,6 +3139,10 @@ interface StzConfig {
3098
3139
  errorLogging?: boolean;
3099
3140
  silentMode?: boolean;
3100
3141
  defaultColor?: string[];
3142
+ zoom?: boolean | DeepPartialZoomType;
3143
+ loading?: boolean;
3144
+ legend?: DeepPartial<LegendOptions<any>>;
3145
+ tooltip?: DeepPartial<TooltipOptions<any>>;
3101
3146
  /** @deprecated no-op. Built-in chart types are bootstrapped at package load time. */
3102
3147
  autoRegister?: boolean;
3103
3148
  /** @deprecated no-op. Built-in chart types are bootstrapped at package load time. */
@@ -3114,7 +3159,15 @@ interface StzConfig {
3114
3159
  * setChartConfig({
3115
3160
  * errorLogging: true,
3116
3161
  * silentMode: false,
3117
- * defaultColor: ['#111111', '#22c55e', '#3b82f6']
3162
+ * defaultColor: ['#111111', '#22c55e', '#3b82f6'],
3163
+ * zoom: true,
3164
+ * loading: true,
3165
+ * legend: {
3166
+ * position: 'top'
3167
+ * },
3168
+ * tooltip: {
3169
+ * enabled: true
3170
+ * }
3118
3171
  * });
3119
3172
  * ```
3120
3173
  *
@@ -3139,6 +3192,19 @@ interface ChartImageExportOptions {
3139
3192
  filename?: string;
3140
3193
  scale?: number;
3141
3194
  }
3195
+ type ChartTarget = string | Chart$1;
3196
+ declare function getChartInstance(chart: Chart$1): Chart$1;
3197
+ declare function getChartInstance(chartId: string): Chart$1;
3198
+ declare function resetChartZoom(chart: Chart$1): void;
3199
+ declare function resetChartZoom(chartId: string): void;
3200
+ declare function updateChart(chart: Chart$1, mode?: Parameters<Chart$1['update']>[0]): void;
3201
+ declare function updateChart(chartId: string, mode?: Parameters<Chart$1['update']>[0]): void;
3202
+ declare function resizeChart(chart: Chart$1): void;
3203
+ declare function resizeChart(chartId: string): void;
3204
+ declare function setChartActiveElements(chart: Chart$1, activeElements: ActiveElement[]): void;
3205
+ declare function setChartActiveElements(chartId: string, activeElements: ActiveElement[]): void;
3206
+ declare function getChartDatasetMeta(chart: Chart$1, datasetIndex: number): ReturnType<Chart$1['getDatasetMeta']>;
3207
+ declare function getChartDatasetMeta(chartId: string, datasetIndex: number): ReturnType<Chart$1['getDatasetMeta']>;
3142
3208
  /**
3143
3209
  * @description 차트를 이미지로 다운로드합니다.
3144
3210
  * @param chartId 차트 ID
@@ -3146,6 +3212,7 @@ interface ChartImageExportOptions {
3146
3212
  * @since 1.5.0
3147
3213
  * @category util
3148
3214
  */
3215
+ declare function downloadChartAsImage(chart: Chart$1, options?: ChartImageExportOptions): void;
3149
3216
  declare function downloadChartAsImage(chartId: string, options?: ChartImageExportOptions): void;
3150
3217
  /**
3151
3218
  * @description Chart 인스턴스를 이미지로 다운로드합니다.
@@ -3163,6 +3230,7 @@ declare function downloadChartAsImageByInstance(chart: Chart$1, options?: ChartI
3163
3230
  * @since 1.5.0
3164
3231
  * @category util
3165
3232
  */
3233
+ declare function getChartAsBase64(chart: Chart$1, options?: Omit<ChartImageExportOptions, 'filename'>): string;
3166
3234
  declare function getChartAsBase64(chartId: string, options?: Omit<ChartImageExportOptions, 'filename'>): string;
3167
3235
  /**
3168
3236
  * @description Chart 인스턴스를 Base64 문자열로 반환합니다.
@@ -3181,6 +3249,7 @@ declare function getChartAsBase64ByInstance(chart: Chart$1, options?: Omit<Chart
3181
3249
  * @since 1.5.0
3182
3250
  * @category util
3183
3251
  */
3252
+ declare function getChartAsBlob(chart: Chart$1, options?: Omit<ChartImageExportOptions, 'filename'>): Promise<Blob>;
3184
3253
  declare function getChartAsBlob(chartId: string, options?: Omit<ChartImageExportOptions, 'filename'>): Promise<Blob>;
3185
3254
  /**
3186
3255
  * @description Chart 인스턴스를 Blob 객체로 반환합니다.
@@ -3225,5 +3294,5 @@ declare const T$: {
3225
3294
  };
3226
3295
  };
3227
3296
 
3228
- export { ArcChart, ArcChart as ArcChartWrapper, BarChart, BarChart as BarChartWrapper, BubbleChart, BubbleChart as BubbleChartWrapper, CartesianChart, CartesianChart as CartesianChartWrapper, Chart, ChartFactory, ChartInstance, ChartToolBox, ChartTypes, Chart as ChartWrapper, CreateZoomRangeSlider, DefaultArcRadius, DefaultDataLabelsOptions, DefaultHiddenLegendTopOptions, DefaultHiddenSparkScales, DefaultResponsiveChartOptions, DefaultSparkPluginOptions, DefaultTimeScaleOptions, DefaultTopLegendOptions, DefaultZoomOptions, DoughnutChart, DoughnutChart as DoughnutChartWrapper, LineChart, LineChart as LineChartWrapper, PieChart, PieChart as PieChartWrapper, T$, TreemapChart, TreemapChart as TreemapChartWrapper, barScaleImgPlugin, blinkPlugin, changeSetting, chartMountPlugin, createAssignedTasksPlugin, createDefaultBarOptions, createDefaultBubbleOptions, createDefaultCartesianScales, createDefaultDoughnutOptions, createDefaultLineOptions, createDefaultPieOptions, createDefaultTreemapOptions, createStatusPlugin, createTodayLinePlugin, createWeekendPlugin, customDatasetPlugins, customLegend, T$ as default, defaultBarScales, defaultBarTooltipCallback, defaultBubbleScales, defaultBubbleTooltipCallback, defaultDoughnutTooltipCallback, defaultLineScales, defaultLineTooltipCallback, defaultPieTooltipCallback, defaultTreemapTooltipCallback, doughnutCenterTextPlugin, downloadChartAsImage, downloadChartAsImageByInstance, getChartAsBase64, getChartAsBase64ByInstance, getChartAsBlob, getChartAsBlobByInstance, loadingPlugin, makeCenterHtml, noDataPlugin, segmentImagePlugin, setChartConfig, sparkBarOptions, sparkBubbleOptions, sparkLineOptions, zoomRangeSlider, zoomResetPlugin };
3229
- export type { Align, AllChartTypes, ArcChartBuilder, ArcChartType, ArcDataset, AxisColors, BarChartBuilder, BubbleChartBuilder, CartesianChartBuilder, CartesianChartType, CartesianDataset, ChartBuilder, ChartImageExportOptions, ChartWithFocus, Color, CommonAxes, CommonAxesSacels, CommonCartesian, CommonCartesianAxes, CommonCartesianLegendConfig, CommonCartesianTicks, CommonCartesianTitleConfig, CommonTicks, Constructor, CustomArcChartOptions, CustomBarChartOptions, CustomBubbleChartOptions, CustomCartesianDataset, CustomChartDatasets, CustomChartOptions, CustomDoughnutChartOptions, CustomLineChartOptions, CustomOptionPlugins, CustomPieChartOptions, CustomTreemapChartOptions, CustomTreemapDataset, CustomZoomType, DataLabels, DataLabelsContext, DatasetWithPrevColors, DeepPartial, DeepPartialCartesianAxes, DeepPartialPluginOptions, DeepPartialZoomType, DoughnutChartBuilder, FocusCallback, HierarchicalChartType, HtmlLegendOptions, LineChartBuilder, Mode, OriginalColors, Override, PartialDataLabels, PieChartBuilder, Position, RadarChartBuilder, RadialChartType, ScaleWithOriginalColors, SegmentImageConfig, SettingOptions, StzConfig, TimeScaleConfig, TimeScaleType, TimeUnit, TreemapChartBuilder, UidImageMapping, ZoomRangeSliderColors, ZoomRangeSliderPlugin, ZoomRangeSliderVar };
3297
+ export { ArcChart, ArcChart as ArcChartWrapper, BarChart, BarChart as BarChartWrapper, BubbleChart, BubbleChart as BubbleChartWrapper, CartesianChart, CartesianChart as CartesianChartWrapper, Chart, ChartFactory, ChartInstance, ChartToolBox, ChartTypes, Chart as ChartWrapper, CreateZoomRangeSlider, DefaultArcRadius, DefaultDataLabelsOptions, DefaultHiddenLegendTopOptions, DefaultHiddenSparkScales, DefaultResponsiveChartOptions, DefaultSparkPluginOptions, DefaultTimeScaleOptions, DefaultTopLegendOptions, DefaultZoomOptions, DoughnutChart, DoughnutChart as DoughnutChartWrapper, LineChart, LineChart as LineChartWrapper, PieChart, PieChart as PieChartWrapper, T$, TreemapChart, TreemapChart as TreemapChartWrapper, barScaleImgPlugin, blinkPlugin, changeSetting, chartMountPlugin, createAssignedTasksPlugin, createDefaultBarOptions, createDefaultBubbleOptions, createDefaultCartesianScales, createDefaultDoughnutOptions, createDefaultLineOptions, createDefaultPieOptions, createDefaultTreemapOptions, createStatusPlugin, createTodayLinePlugin, createWeekendPlugin, customDatasetPlugins, customLegend, T$ as default, defaultBarScales, defaultBarTooltipCallback, defaultBubbleScales, defaultBubbleTooltipCallback, defaultDoughnutTooltipCallback, defaultLineScales, defaultLineTooltipCallback, defaultPieTooltipCallback, defaultTreemapTooltipCallback, doughnutCenterTextPlugin, downloadChartAsImage, downloadChartAsImageByInstance, getChartAsBase64, getChartAsBase64ByInstance, getChartAsBlob, getChartAsBlobByInstance, getChartDatasetMeta, getChartInstance, loadingPlugin, makeCenterHtml, noDataPlugin, resetChartZoom, resizeChart, segmentImagePlugin, setChartActiveElements, setChartConfig, sparkBarOptions, sparkBubbleOptions, sparkLineOptions, updateChart, zoomRangeSlider, zoomResetPlugin };
3298
+ export type { Align, AllChartTypes, ArcChartBuilder, ArcChartType, ArcDataset, AxisColors, BarChartBuilder, BubbleChartBuilder, CartesianChartBuilder, CartesianChartType, CartesianDataset, ChartBuilder, ChartImageExportOptions, ChartTarget, ChartWithFocus, Color, CommonAxes, CommonAxesSacels, CommonCartesian, CommonCartesianAxes, CommonCartesianLegendConfig, CommonCartesianTicks, CommonCartesianTitleConfig, CommonTicks, Constructor, CustomArcChartOptions, CustomBarChartOptions, CustomBubbleChartOptions, CustomCartesianDataset, CustomChartDatasets, CustomChartOptions, CustomDoughnutChartOptions, CustomLineChartOptions, CustomOptionPlugins, CustomPieChartOptions, CustomTreemapChartOptions, CustomTreemapDataset, CustomZoomType, DataLabels, DataLabelsContext, DatasetWithPrevColors, DeepPartial, DeepPartialCartesianAxes, DeepPartialPluginOptions, DeepPartialZoomType, DoughnutChartBuilder, FocusCallback, HierarchicalChartType, HtmlLegendOptions, LineChartBuilder, Mode, OriginalColors, Override, PartialDataLabels, PieChartBuilder, Position, RadarChartBuilder, RadialChartType, ScaleWithOriginalColors, SegmentImageConfig, SettingOptions, StzConfig, TimeScaleConfig, TimeScaleType, TimeUnit, TreemapChartBuilder, UidImageMapping, ZoomRangeSliderColors, ZoomRangeSliderPlugin, ZoomRangeSliderVar };