@moda-chart/core 0.1.2

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 (60) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/dist/conformance.d.ts +40 -0
  4. package/dist/conformance.d.ts.map +1 -0
  5. package/dist/conformance.js +1608 -0
  6. package/dist/conformance.js.map +1 -0
  7. package/dist/core.d.ts +448 -0
  8. package/dist/core.d.ts.map +1 -0
  9. package/dist/core.js +6026 -0
  10. package/dist/core.js.map +1 -0
  11. package/dist/geo.d.ts +85 -0
  12. package/dist/geo.d.ts.map +1 -0
  13. package/dist/geo.js +264 -0
  14. package/dist/geo.js.map +1 -0
  15. package/dist/geometry.d.ts +29 -0
  16. package/dist/geometry.d.ts.map +1 -0
  17. package/dist/geometry.js +92 -0
  18. package/dist/geometry.js.map +1 -0
  19. package/dist/hierarchy.d.ts +142 -0
  20. package/dist/hierarchy.d.ts.map +1 -0
  21. package/dist/hierarchy.js +422 -0
  22. package/dist/hierarchy.js.map +1 -0
  23. package/dist/index.d.ts +18 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +12 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/maps/world.d.ts +9 -0
  28. package/dist/maps/world.d.ts.map +1 -0
  29. package/dist/maps/world.js +9 -0
  30. package/dist/maps/world.js.map +1 -0
  31. package/dist/mount.d.ts +75 -0
  32. package/dist/mount.d.ts.map +1 -0
  33. package/dist/mount.js +795 -0
  34. package/dist/mount.js.map +1 -0
  35. package/dist/scales.d.ts +22 -0
  36. package/dist/scales.d.ts.map +1 -0
  37. package/dist/scales.js +118 -0
  38. package/dist/scales.js.map +1 -0
  39. package/dist/sparkline.d.ts +4 -0
  40. package/dist/sparkline.d.ts.map +1 -0
  41. package/dist/sparkline.js +62 -0
  42. package/dist/sparkline.js.map +1 -0
  43. package/dist/styles.css +989 -0
  44. package/dist/svg.d.ts +21 -0
  45. package/dist/svg.d.ts.map +1 -0
  46. package/dist/svg.js +1022 -0
  47. package/dist/svg.js.map +1 -0
  48. package/dist/text.d.ts +23 -0
  49. package/dist/text.d.ts.map +1 -0
  50. package/dist/text.js +67 -0
  51. package/dist/text.js.map +1 -0
  52. package/dist/types.d.ts +1881 -0
  53. package/dist/types.d.ts.map +1 -0
  54. package/dist/types.js +8 -0
  55. package/dist/types.js.map +1 -0
  56. package/dist/xml.d.ts +13 -0
  57. package/dist/xml.d.ts.map +1 -0
  58. package/dist/xml.js +109 -0
  59. package/dist/xml.js.map +1 -0
  60. package/package.json +44 -0
@@ -0,0 +1,75 @@
1
+ import { ChartCore } from "./core.js";
2
+ import type { ChartCoreOptions, ChartSnapshot, SparklineOptions } from "./types.js";
3
+ /** mountChart 옵션 = 코어 옵션 */
4
+ export interface MountChartOptions extends ChartCoreOptions {
5
+ }
6
+ /** 마운트 결과 — 테스트/외부 코드가 조작·정리하는 핸들 */
7
+ export interface MountedChart {
8
+ chart: ChartCore;
9
+ /** 루트 요소 (호스트 컨테이너의 자식) */
10
+ rootEl: HTMLElement;
11
+ /** 리스너·DOM을 정리한다 */
12
+ destroy(): void;
13
+ }
14
+ /** 렌더러가 공유하는 정적 뼈대 마크업 — 어댑터도 같은 구조를 만든다 */
15
+ export declare function skeletonHtml(): string;
16
+ interface MorphBox {
17
+ x: number;
18
+ y: number;
19
+ w: number;
20
+ h: number;
21
+ }
22
+ /**
23
+ * 재렌더 전 현재 .mc-bar/.mc-point의 박스를 키로 수집한다.
24
+ * innerHTML 교체 직전에 호출한다.
25
+ */
26
+ export declare function captureMorph(svg: Element): Map<string, MorphBox>;
27
+ /**
28
+ * 새 지오메트리에 이전 박스로 되돌리는 transform을 입힌다 —
29
+ * transition이 없는 환경에서는 transform이 즉시 해제된다.
30
+ * morph된 요소에는 .mc-morph가 붙고 transition 종료 후 떨어진다.
31
+ * 반환값은 morph가 적용된 요소 수.
32
+ */
33
+ export declare function applyMorph(svg: Element, prev: Map<string, MorphBox>, duration?: number): number;
34
+ /** 스냅샷을 루트 DOM에 반영 — mountChart와 어댑터 테스트에서 공유 */
35
+ export declare function renderInto(root: HTMLElement, snap: ChartSnapshot): void;
36
+ /**
37
+ * 포인터·휠·키보드·툴바/범례 이벤트를 코어 액션으로 연결한다.
38
+ * 어댑터는 루트 요소를 넘겨 한 번만 호출한다 — 반환 함수는 해제용.
39
+ */
40
+ export declare function bindChart(root: HTMLElement, chart: ChartCore): () => void;
41
+ /** ResizeObserver 배선 — 없는 환경(SSR/happy-dom)에서는 no-op */
42
+ export declare function observeSize(el: HTMLElement, cb: (w: number, h: number) => void): () => void;
43
+ /** 현재 스냅샷을 SVG 파일로 저장한다 */
44
+ export declare function downloadSVG(chart: ChartCore, filename?: string): void;
45
+ /** SVG 문자열 → PNG data URL (2배 해상도) */
46
+ export declare function downloadPNG(chart: ChartCore, filename?: string): Promise<void>;
47
+ /**
48
+ * el 안에 차트 DOM을 만들고 코어를 연결한다 — 5개 어댑터가 공유하는
49
+ * 렌더 경로. 어댑터는 자기 생명주기 훅에서 이 함수를 1회 호출하고
50
+ * 반환된 cleanup을 unmount 시 실행한다.
51
+ *
52
+ * DOM 계약:
53
+ * .mc-root[role=figure][tabindex=0][data-theme][data-chart-type]
54
+ * .mc-toolbar > .mc-zoom-reset / .mc-export-svg / .mc-export-png
55
+ * .mc-viewport > svg.mc-svg(.mc-grid/.mc-axis/.mc-plot/.mc-series/...)
56
+ * + .mc-overlay + .mc-tooltip
57
+ * .mc-legend > .mc-legend-item[data-id]
58
+ * .mc-a11y[aria-live=polite]
59
+ * 새 DOM 요소를 추가할 때는 같은 mc- 접두어와 conformance 계약을 갱신한다.
60
+ */
61
+ export declare function attachChartView(el: HTMLElement, chart: ChartCore): () => void;
62
+ /**
63
+ * DOM 전용 렌더러 (vanilla) — 코어 생성 + attachChartView.
64
+ * 어댑터들과 같은 DOM 계약을 만든다.
65
+ */
66
+ export declare function mountChart(host: HTMLElement, options: MountChartOptions): MountedChart;
67
+ /**
68
+ * sparkline — 축/범례 없는 인라인 미니 차트 (AG Charts sparklines 해당).
69
+ * ChartCore 없이 el에 SVG를 바로 마운트한다. 값 갱신은 반환된 update로.
70
+ */
71
+ export declare function mountSparkline(host: HTMLElement, opts: SparklineOptions): {
72
+ update: (opts: SparklineOptions) => void;
73
+ };
74
+ export {};
75
+ //# sourceMappingURL=mount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,4BAA4B;AAC5B,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;CAAG;AAE9D,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,2BAA2B;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,oBAAoB;IACpB,OAAO,IAAI,IAAI,CAAC;CACjB;AAyCD,4CAA4C;AAC5C,wBAAgB,YAAY,IAAI,MAAM,CAqBrC;AAQD,UAAU,QAAQ;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAoBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAOhE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC3B,QAAQ,SAAM,GACb,MAAM,CA2BR;AAED,iDAAiD;AACjD,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CA+GvE;AAID;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,IAAI,CA+bzE;AAED,wDAAwD;AACxD,wBAAgB,WAAW,CACzB,EAAE,EAAE,WAAW,EACf,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,GACjC,MAAM,IAAI,CAQZ;AAWD,2BAA2B;AAC3B,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,SAAc,GAAG,IAAI,CAM1E;AAED,sCAAsC;AACtC,wBAAsB,WAAW,CAC/B,KAAK,EAAE,SAAS,EAChB,QAAQ,SAAc,GACrB,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,IAAI,CAiB7E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,iBAAiB,GACzB,YAAY,CAgBd;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,gBAAgB,GACrB;IAAE,MAAM,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAA;CAAE,CAO9C"}