stz-chart-maker 1.4.5 → 1.5.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.
Files changed (3) hide show
  1. package/dist/index.d.ts +292 -2
  2. package/dist/index.js +2341 -2051
  3. package/package.json +30 -3
package/dist/index.d.ts CHANGED
@@ -462,6 +462,17 @@ interface ArcChartBuilder<TType extends ArcChartType> extends ChartBuilder<TType
462
462
  setAllBorderColor(borderColor: string | string[]): this;
463
463
  }
464
464
  interface PieChartBuilder extends ArcChartBuilder<'pie'> {
465
+ setSegmentColors(colors: string[]): this;
466
+ setSegmentOffset(dataIndex: number, offset: number): this;
467
+ setHalfPieTop(): this;
468
+ setHalfPieBottom(): this;
469
+ setHalfPieLeft(): this;
470
+ setHalfPieRight(): this;
471
+ highlightMaxSegment(offset?: number): this;
472
+ highlightMinSegment(offset?: number): this;
473
+ setAllSegmentOffsets(offsets: number[] | number): this;
474
+ setGradientColors(startColor: string, endColor: string): this;
475
+ setSegmentColorWhere(filterFn: (value: number, index: number) => boolean, color: string): this;
465
476
  }
466
477
  interface DoughnutChartBuilder extends ArcChartBuilder<'doughnut'> {
467
478
  convertToPie(): this;
@@ -1769,6 +1780,187 @@ declare class DoughnutChartWrapper extends ArcChartWrapper<'doughnut'> implement
1769
1780
  }): this;
1770
1781
  }
1771
1782
 
1783
+ declare class PieChartWrapper extends ArcChartWrapper<'pie'> implements PieChartBuilder {
1784
+ constructor(type: 'pie', labels: (string | number)[], datasets: ChartDataset<'pie', (number | null)[]>[], options?: CustomPieChartOptions, plugins?: any);
1785
+ protected requireLabels(): boolean;
1786
+ /**
1787
+ * @description 레거시 지원용 차트 설정 객체를 생성합니다.
1788
+ * @param {string} id
1789
+ * @returns {ChartConfig}
1790
+ * @Since 1.0.0
1791
+ * @category config
1792
+ * @beta
1793
+ */
1794
+ makeConfig(id?: string): ChartConfig;
1795
+ /**
1796
+ * @description 모든 세그먼트의 색상을 설정합니다.
1797
+ * @param colors - 색상 배열
1798
+ * @returns {this}
1799
+ * @since 1.0.0
1800
+ * @category Dataset
1801
+ * @beta
1802
+ */
1803
+ setSegmentColors(colors: string[]): this;
1804
+ /**
1805
+ * @description 특정 세그먼트만 분리해서 표시합니다.
1806
+ * @param dataIndex - 분리할 데이터 인덱스
1807
+ * @param offset - 분리 거리 (픽셀)
1808
+ * @returns {this}
1809
+ * @since 1.0.0
1810
+ * @category Dataset
1811
+ * @beta
1812
+ */
1813
+ setSegmentOffset(dataIndex: number, offset: number): this;
1814
+ /**
1815
+ * @description 차트의 시작 각도를 설정합니다.
1816
+ * @param rotation - 회전 각도 (도 단위)
1817
+ * @returns {this}
1818
+ * @since 1.0.0
1819
+ * @category Options
1820
+ * @beta
1821
+ */
1822
+ setRotation(rotation: number): this;
1823
+ /**
1824
+ * @description 차트의 원주각을 설정합니다.
1825
+ * @param circumference - 원주각 (도 단위, 360 = 완전한 원)
1826
+ * @returns {this}
1827
+ * @since 1.0.0
1828
+ * @category Options
1829
+ * @beta
1830
+ */
1831
+ setCircumference(circumference: number): this;
1832
+ /**
1833
+ * @description 차트의 반지름을 설정합니다.
1834
+ * @param radius - 반지름 ('90%', '100%' 또는 픽셀값)
1835
+ * @returns {this}
1836
+ * @since 1.0.0
1837
+ * @category Options
1838
+ * @beta
1839
+ */
1840
+ setRadius(radius: string | number): this;
1841
+ /**
1842
+ * @description 모든 데이터셋의 경계선 너비를 설정합니다.
1843
+ * @param borderWidth - 경계선 너비
1844
+ * @returns {this}
1845
+ * @since 1.0.0
1846
+ * @category Dataset
1847
+ * @beta
1848
+ */
1849
+ setAllBorderWidth(borderWidth: number): this;
1850
+ /**
1851
+ * @description 모든 데이터셋의 경계선 색상을 설정합니다.
1852
+ * @param borderColor - 경계선 색상
1853
+ * @returns {this}
1854
+ * @since 1.0.0
1855
+ * @category Dataset
1856
+ * @beta
1857
+ */
1858
+ setAllBorderColor(borderColor: string | string[]): this;
1859
+ /**
1860
+ * @description 상단 반원형 파이 차트를 생성합니다.
1861
+ * @returns {this}
1862
+ * @since 1.0.0
1863
+ * @category Options
1864
+ * @beta
1865
+ */
1866
+ setHalfPieTop(): this;
1867
+ /**
1868
+ * @description 하단 반원형 파이 차트를 생성합니다.
1869
+ * @returns {this}
1870
+ * @since 1.0.0
1871
+ * @category Options
1872
+ * @beta
1873
+ */
1874
+ setHalfPieBottom(): this;
1875
+ /**
1876
+ * @description 좌측 반원형 파이 차트를 생성합니다.
1877
+ * @returns {this}
1878
+ * @since 1.0.0
1879
+ * @category Options
1880
+ * @beta
1881
+ */
1882
+ setHalfPieLeft(): this;
1883
+ /**
1884
+ * @description 우측 반원형 파이 차트를 생성합니다.
1885
+ * @returns {this}
1886
+ * @since 1.0.0
1887
+ * @category Options
1888
+ * @beta
1889
+ */
1890
+ setHalfPieRight(): this;
1891
+ /**
1892
+ * @description 가장 큰 값을 가진 세그먼트를 자동으로 분리합니다.
1893
+ * @param offset - 분리 거리 (픽셀, 기본값: 10)
1894
+ * @returns {this}
1895
+ * @since 1.0.0
1896
+ * @category Dataset
1897
+ * @beta
1898
+ */
1899
+ highlightMaxSegment(offset?: number): this;
1900
+ /**
1901
+ * @description 가장 작은 값을 가진 세그먼트를 자동으로 분리합니다.
1902
+ * @param offset - 분리 거리 (픽셀, 기본값: 10)
1903
+ * @returns {this}
1904
+ * @since 1.0.0
1905
+ * @category Dataset
1906
+ * @beta
1907
+ */
1908
+ highlightMinSegment(offset?: number): this;
1909
+ /**
1910
+ * @description 여러 세그먼트를 한번에 분리합니다.
1911
+ * @param offsets - 각 세그먼트의 offset 배열 또는 모든 세그먼트에 적용할 단일 값
1912
+ * @returns {this}
1913
+ * @since 1.0.0
1914
+ * @category Dataset
1915
+ * @beta
1916
+ * @example
1917
+ * // 각 세그먼트마다 다른 offset
1918
+ * chart.setAllSegmentOffsets([10, 0, 5, 0]);
1919
+ *
1920
+ * // 모든 세그먼트에 동일한 offset (exploded pie chart)
1921
+ * chart.setAllSegmentOffsets(10);
1922
+ */
1923
+ setAllSegmentOffsets(offsets: number[] | number): this;
1924
+ /**
1925
+ * @description 그라데이션 색상 팔레트를 자동으로 생성합니다.
1926
+ * @param startColor - 시작 색상 (hex 형식, 예: '#FF6384')
1927
+ * @param endColor - 종료 색상 (hex 형식, 예: '#36A2EB')
1928
+ * @returns {this}
1929
+ * @since 1.0.0
1930
+ * @category Dataset
1931
+ * @beta
1932
+ */
1933
+ setGradientColors(startColor: string, endColor: string): this;
1934
+ /**
1935
+ * @description 특정 조건을 만족하는 세그먼트만 색상을 변경합니다.
1936
+ * @param filterFn - 조건 함수
1937
+ * @param color - 적용할 색상
1938
+ * @returns {this}
1939
+ * @since 1.0.0
1940
+ * @category Dataset
1941
+ * @beta
1942
+ * @example
1943
+ * // 값이 100 이상인 세그먼트만 빨간색으로
1944
+ * chart.setSegmentColorWhere((value) => value >= 100, '#FF0000');
1945
+ */
1946
+ setSegmentColorWhere(filterFn: (value: number, index: number) => boolean, color: string): this;
1947
+ /**
1948
+ * @description hex 색상을 RGB로 변환합니다.
1949
+ * @private
1950
+ */
1951
+ private hexToRgb;
1952
+ /**
1953
+ * @description RGB를 hex 색상으로 변환합니다.
1954
+ * @private
1955
+ */
1956
+ private rgbToHex;
1957
+ /**
1958
+ * @description 그라데이션 색상 배열을 생성합니다.
1959
+ * @private
1960
+ */
1961
+ private generateGradientColors;
1962
+ }
1963
+
1772
1964
  declare const noDataPlugin: {
1773
1965
  id: string;
1774
1966
  beforeUpdate: (chart: any) => void;
@@ -2052,6 +2244,103 @@ declare enum ChartTypes {
2052
2244
  TREE = "tree"
2053
2245
  }
2054
2246
 
2247
+ interface StzConfig {
2248
+ errorLogging?: boolean;
2249
+ silentMode?: boolean;
2250
+ defaultColor?: string[];
2251
+ autoRegister?: boolean;
2252
+ registerTypes?: ChartType[];
2253
+ }
2254
+ /**
2255
+ * @description 브라우저 환경이나 Vite/Webpack 환경에서 직접 설정을 전달합니다.
2256
+ * @param config 설정 객체
2257
+ * @example
2258
+ * ```typescript
2259
+ * // React 앱의 main.tsx에서 호출
2260
+ * import { setChartConfig } from 'stz-chart-maker';
2261
+ *
2262
+ * setChartConfig({
2263
+ * errorLogging: true,
2264
+ * silentMode: false,
2265
+ * autoRegister: true,
2266
+ * registerTypes: ['line', 'bar']
2267
+ * });
2268
+ * ```
2269
+ *
2270
+ * @example
2271
+ * ```typescript
2272
+ * // Vite 플러그인과 함께 사용
2273
+ * import { setChartConfig } from 'stz-chart-maker';
2274
+ * import config from 'virtual:stz-config'; // Vite 플러그인이 주입
2275
+ *
2276
+ * if (config) {
2277
+ * setChartConfig(config);
2278
+ * }
2279
+ * ```
2280
+ * @since 1.4.5
2281
+ */
2282
+ declare function setChartConfig(config: StzConfig): void;
2283
+
2284
+ interface ChartImageExportOptions {
2285
+ format?: 'png' | 'jpeg' | 'webp';
2286
+ quality?: number;
2287
+ backgroundColor?: string;
2288
+ filename?: string;
2289
+ scale?: number;
2290
+ }
2291
+ /**
2292
+ * @description 차트를 이미지로 다운로드합니다.
2293
+ * @param chartId 차트 ID
2294
+ * @param options 이미지 내보내기 옵션
2295
+ * @since 1.5.0
2296
+ * @category util
2297
+ */
2298
+ declare function downloadChartAsImage(chartId: string, options?: ChartImageExportOptions): void;
2299
+ /**
2300
+ * @description Chart 인스턴스를 이미지로 다운로드합니다.
2301
+ * @param chart Chart 인스턴스
2302
+ * @param options 이미지 내보내기 옵션
2303
+ * @since 1.5.0
2304
+ * @category util
2305
+ */
2306
+ declare function downloadChartAsImageByInstance(chart: Chart, options?: ChartImageExportOptions): void;
2307
+ /**
2308
+ * @description 차트를 Base64 문자열로 반환합니다.
2309
+ * @param chartId 차트 ID
2310
+ * @param options 이미지 내보내기 옵션
2311
+ * @returns Base64 인코딩된 이미지 데이터 URL
2312
+ * @since 1.5.0
2313
+ * @category util
2314
+ */
2315
+ declare function getChartAsBase64(chartId: string, options?: Omit<ChartImageExportOptions, 'filename'>): string;
2316
+ /**
2317
+ * @description Chart 인스턴스를 Base64 문자열로 반환합니다.
2318
+ * @param chart Chart 인스턴스
2319
+ * @param options 이미지 내보내기 옵션
2320
+ * @returns Base64 인코딩된 이미지 데이터 URL
2321
+ * @since 1.5.0
2322
+ * @category util
2323
+ */
2324
+ declare function getChartAsBase64ByInstance(chart: Chart, options?: Omit<ChartImageExportOptions, 'filename'>): string;
2325
+ /**
2326
+ * @description 차트를 Blob 객체로 반환합니다.
2327
+ * @param chartId 차트 ID
2328
+ * @param options 이미지 내보내기 옵션
2329
+ * @returns Promise<Blob> 이미지 Blob
2330
+ * @since 1.5.0
2331
+ * @category util
2332
+ */
2333
+ declare function getChartAsBlob(chartId: string, options?: Omit<ChartImageExportOptions, 'filename'>): Promise<Blob>;
2334
+ /**
2335
+ * @description Chart 인스턴스를 Blob 객체로 반환합니다.
2336
+ * @param chart Chart 인스턴스
2337
+ * @param options 이미지 내보내기 옵션
2338
+ * @returns Promise<Blob> 이미지 Blob
2339
+ * @since 1.5.0
2340
+ * @category util
2341
+ */
2342
+ declare function getChartAsBlobByInstance(chart: Chart, options?: Omit<ChartImageExportOptions, 'filename'>): Promise<Blob>;
2343
+
2055
2344
  declare const ChartToolBox: {
2056
2345
  setErrorLog(enabled?: boolean): void;
2057
2346
  setErrorShield(enabled?: boolean): void;
@@ -2066,6 +2355,7 @@ declare const T$: {
2066
2355
  readonly BubbleChartWrapper: typeof BubbleChartWrapper;
2067
2356
  readonly ArcChartWrapper: typeof ArcChartWrapper;
2068
2357
  readonly DoughnutChartWrapper: typeof DoughnutChartWrapper;
2358
+ readonly PieChartWrapper: typeof PieChartWrapper;
2069
2359
  readonly defaultTypes: typeof Types;
2070
2360
  readonly defaultsOptions: typeof LocalDefaults;
2071
2361
  readonly toolBox: {
@@ -2074,5 +2364,5 @@ declare const T$: {
2074
2364
  };
2075
2365
  };
2076
2366
 
2077
- export { ArcChartWrapper, BarChartWrapper, BubbleChartWrapper, CartesianChartWrapper, ChartFactory, ChartInstance, ChartToolBox, ChartTypes, ChartWrapper, CreateZoomRangeSlider, DoughnutChartWrapper, LineChartWrapper, T$, barScaleImgPlugin, blinkPlugin, changeSetting, chartMountPlugin, createDefaultBarOptions, createDefaultBubbleOptions, createDefaultLineOptions, customLegend, T$ as default, defaultBarScales, defaultBarTooltipCallback, defaultBubbleScales, defaultBubbleTooltipCallback, defaultLineScales, defaultLineTooltipCallback, doughnutCenterTextPlugin, loadingPlugin, makeCenterHtml, noDataPlugin, sparkBarOptions, sparkBubbleOptions, sparkLineOptions, zoomRangeSlider, zoomResetPlugin };
2078
- export type { Align, AllChartTypes, ArcChartBuilder, ArcChartType, ArcDataset, AxisColors, BarChartBuilder, BubbleChartBuilder, CartesianChartBuilder, CartesianChartType, CartesianDataset, ChartBuilder, ChartWithFocus, Color, CommonAxes, CommonAxesSacels, CommonCartesian, CommonCartesianAxes, CommonCartesianLegendConfig, CommonCartesianTicks, CommonCartesianTitleConfig, CommonTicks, Constructor, CustomArcChartOptions, CustomBarChartOptions, CustomBubbleChartOptions, CustomCartesianDataset, CustomChartDatasets, CustomChartOptions, CustomDoughnutChartOptions, CustomLineChartOptions, CustomOptionPlugins, CustomPieChartOptions, CustomZoomType, DataLabels, DataLabelsContext, DatasetWithPrevColors, DeepPartial, DeepPartialCartesianAxes, DeepPartialPluginOptions, DeepPartialZoomType, DoughnutChartBuilder, FocusCallback, HtmlLegendOptions, LineChartBuilder, Mode, OriginalColors, Override, PartialDataLabels, PieChartBuilder, Position, RadarChartBuilder, RadialChartType, ScaleWithOriginalColors, SettingOptions, ZoomRangeSliderColors, ZoomRangeSliderPlugin, ZoomRangeSliderVar };
2367
+ export { ArcChartWrapper, BarChartWrapper, BubbleChartWrapper, CartesianChartWrapper, ChartFactory, ChartInstance, ChartToolBox, ChartTypes, ChartWrapper, CreateZoomRangeSlider, DoughnutChartWrapper, LineChartWrapper, PieChartWrapper, T$, barScaleImgPlugin, blinkPlugin, changeSetting, chartMountPlugin, createDefaultBarOptions, createDefaultBubbleOptions, createDefaultLineOptions, customLegend, T$ as default, defaultBarScales, defaultBarTooltipCallback, defaultBubbleScales, defaultBubbleTooltipCallback, defaultLineScales, defaultLineTooltipCallback, doughnutCenterTextPlugin, downloadChartAsImage, downloadChartAsImageByInstance, getChartAsBase64, getChartAsBase64ByInstance, getChartAsBlob, getChartAsBlobByInstance, loadingPlugin, makeCenterHtml, noDataPlugin, setChartConfig, sparkBarOptions, sparkBubbleOptions, sparkLineOptions, zoomRangeSlider, zoomResetPlugin };
2368
+ 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, CustomZoomType, DataLabels, DataLabelsContext, DatasetWithPrevColors, DeepPartial, DeepPartialCartesianAxes, DeepPartialPluginOptions, DeepPartialZoomType, DoughnutChartBuilder, FocusCallback, HtmlLegendOptions, LineChartBuilder, Mode, OriginalColors, Override, PartialDataLabels, PieChartBuilder, Position, RadarChartBuilder, RadialChartType, ScaleWithOriginalColors, SettingOptions, StzConfig, ZoomRangeSliderColors, ZoomRangeSliderPlugin, ZoomRangeSliderVar };