@vielzeug/prism 26.11.4 → 26.11.6

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 (105) hide show
  1. package/README.md +25 -10
  2. package/dist/_dev.js +1 -2
  3. package/dist/_tappers.js +1 -2
  4. package/dist/animation/easing.js +1 -2
  5. package/dist/animation/motion.js +0 -1
  6. package/dist/animation/reveal.cjs +1 -1
  7. package/dist/animation/reveal.cjs.map +1 -1
  8. package/dist/animation/reveal.js +29 -30
  9. package/dist/animation/transition.js +1 -2
  10. package/dist/animation/tween.js +1 -2
  11. package/dist/axes/axis.js +1 -2
  12. package/dist/axes/grid.js +1 -2
  13. package/dist/axes/scale-utils.js +1 -2
  14. package/dist/charts/area/area-chart.cjs +1 -1
  15. package/dist/charts/area/area-chart.cjs.map +1 -1
  16. package/dist/charts/area/area-chart.js +34 -35
  17. package/dist/charts/area/area-renderer.cjs +1 -1
  18. package/dist/charts/area/area-renderer.cjs.map +1 -1
  19. package/dist/charts/area/area-renderer.js +56 -57
  20. package/dist/charts/area/area-renderer.js.map +1 -1
  21. package/dist/charts/bar/bar-chart.cjs +1 -1
  22. package/dist/charts/bar/bar-chart.cjs.map +1 -1
  23. package/dist/charts/bar/bar-chart.js +80 -81
  24. package/dist/charts/bar/bar-chart.js.map +1 -1
  25. package/dist/charts/bar/bar-hit-test.js +1 -2
  26. package/dist/charts/bar/bar-renderer.cjs +1 -1
  27. package/dist/charts/bar/bar-renderer.cjs.map +1 -1
  28. package/dist/charts/bar/bar-renderer.js +42 -43
  29. package/dist/charts/bar/bar-value-labels.cjs +1 -1
  30. package/dist/charts/bar/bar-value-labels.cjs.map +1 -1
  31. package/dist/charts/bar/bar-value-labels.js +17 -18
  32. package/dist/charts/heatmap/heatmap-chart.cjs +1 -1
  33. package/dist/charts/heatmap/heatmap-chart.cjs.map +1 -1
  34. package/dist/charts/heatmap/heatmap-chart.js +43 -44
  35. package/dist/charts/heatmap/heatmap-color.js +1 -2
  36. package/dist/charts/line/line-chart.cjs +1 -1
  37. package/dist/charts/line/line-chart.cjs.map +1 -1
  38. package/dist/charts/line/line-chart.js +41 -42
  39. package/dist/charts/line/line-renderer.cjs +1 -1
  40. package/dist/charts/line/line-renderer.cjs.map +1 -1
  41. package/dist/charts/line/line-renderer.js +81 -82
  42. package/dist/charts/line/line-renderer.js.map +1 -1
  43. package/dist/charts/pie/pie-chart.cjs +1 -1
  44. package/dist/charts/pie/pie-chart.cjs.map +1 -1
  45. package/dist/charts/pie/pie-chart.js +69 -70
  46. package/dist/charts/pie/pie-renderer.js +1 -2
  47. package/dist/charts/radar/radar-chart.cjs +1 -1
  48. package/dist/charts/radar/radar-chart.cjs.map +1 -1
  49. package/dist/charts/radar/radar-chart.js +118 -119
  50. package/dist/charts/radar/radar-chart.js.map +1 -1
  51. package/dist/charts/radar/radar-geometry.cjs +1 -1
  52. package/dist/charts/radar/radar-geometry.cjs.map +1 -1
  53. package/dist/charts/radar/radar-geometry.js +15 -16
  54. package/dist/charts/scatter/scatter-chart.cjs +1 -1
  55. package/dist/charts/scatter/scatter-chart.cjs.map +1 -1
  56. package/dist/charts/scatter/scatter-chart.js +33 -34
  57. package/dist/charts/scatter/scatter-renderer.cjs +1 -1
  58. package/dist/charts/scatter/scatter-renderer.cjs.map +1 -1
  59. package/dist/charts/scatter/scatter-renderer.js +22 -23
  60. package/dist/charts/sparkline/sparkline.cjs +1 -1
  61. package/dist/charts/sparkline/sparkline.cjs.map +1 -1
  62. package/dist/charts/sparkline/sparkline.js +87 -88
  63. package/dist/charts/sparkline/sparkline.js.map +1 -1
  64. package/dist/core/cartesian-model.js +1 -2
  65. package/dist/core/cartesian-scales.js +1 -2
  66. package/dist/core/chart-base.cjs +1 -1
  67. package/dist/core/chart-base.cjs.map +1 -1
  68. package/dist/core/chart-base.js +13 -14
  69. package/dist/core/chart-scaffold.cjs +1 -1
  70. package/dist/core/chart-scaffold.cjs.map +1 -1
  71. package/dist/core/chart-scaffold.js +33 -34
  72. package/dist/core/datum-style.js +1 -2
  73. package/dist/core/ids.js +1 -2
  74. package/dist/core/layout.js +1 -2
  75. package/dist/core/polar.js +1 -2
  76. package/dist/core/responsive.js +1 -2
  77. package/dist/core/series-id.js +1 -2
  78. package/dist/errors.js +1 -2
  79. package/dist/index.cjs +1 -1
  80. package/dist/index.js +14 -14
  81. package/dist/interaction/announcer.js +1 -2
  82. package/dist/interaction/crosshair.js +1 -2
  83. package/dist/interaction/events.js +1 -2
  84. package/dist/interaction/legend.js +1 -2
  85. package/dist/interaction/scatter-interaction.cjs +1 -1
  86. package/dist/interaction/scatter-interaction.cjs.map +1 -1
  87. package/dist/interaction/scatter-interaction.js +26 -27
  88. package/dist/interaction/series-interaction.cjs +1 -1
  89. package/dist/interaction/series-interaction.cjs.map +1 -1
  90. package/dist/interaction/series-interaction.js +40 -41
  91. package/dist/interaction/tooltip.js +1 -2
  92. package/dist/prism.cjs +1 -1
  93. package/dist/prism.cjs.map +1 -1
  94. package/dist/prism.iife.js +1 -1
  95. package/dist/prism.iife.js.map +1 -1
  96. package/dist/prism.js +52 -103
  97. package/dist/prism.js.map +1 -1
  98. package/dist/scales/band.js +1 -2
  99. package/dist/scales/linear.js +1 -2
  100. package/dist/scales/time.js +1 -2
  101. package/dist/svg/element.js +1 -2
  102. package/dist/svg/path.js +1 -2
  103. package/dist/svg/text.js +1 -2
  104. package/dist/theme/index.js +1 -2
  105. package/package.json +6 -6
package/README.md CHANGED
@@ -22,19 +22,34 @@ document.body.append(host);
22
22
 
23
23
  const chart = createLineChart(host, {
24
24
  a11y: { ariaLabel: 'Revenue by month' },
25
- series: [{
26
- color: '#3b82f6',
27
- data: [{ key: 1, value: 10 }, { key: 2, value: 25 }, { key: 3, value: 18 }, { key: 4, value: 32 }],
28
- name: 'Revenue',
29
- }],
25
+ series: [
26
+ {
27
+ color: '#3b82f6',
28
+ data: [
29
+ { key: 1, value: 10 },
30
+ { key: 2, value: 25 },
31
+ { key: 3, value: 18 },
32
+ { key: 4, value: 32 },
33
+ ],
34
+ name: 'Revenue',
35
+ },
36
+ ],
30
37
  tooltip: true,
31
38
  });
32
39
 
33
- chart.update([{
34
- color: '#3b82f6',
35
- data: [{ key: 1, value: 10 }, { key: 2, value: 25 }, { key: 3, value: 18 }, { key: 4, value: 32 }, { key: 5, value: 28 }],
36
- name: 'Revenue',
37
- }]);
40
+ chart.update([
41
+ {
42
+ color: '#3b82f6',
43
+ data: [
44
+ { key: 1, value: 10 },
45
+ { key: 2, value: 25 },
46
+ { key: 3, value: 18 },
47
+ { key: 4, value: 32 },
48
+ { key: 5, value: 28 },
49
+ ],
50
+ name: 'Revenue',
51
+ },
52
+ ]);
38
53
 
39
54
  chart.dispose();
40
55
  ```
package/dist/_dev.js CHANGED
@@ -1,7 +1,6 @@
1
- //#region src/_dev.ts
1
+ // src/_dev.ts
2
2
  function warn(e) {}
3
3
  function devOnly(e) {}
4
- //#endregion
5
4
  export { devOnly, warn };
6
5
 
7
6
  //# sourceMappingURL=_dev.js.map
package/dist/_tappers.js CHANGED
@@ -1,4 +1,4 @@
1
- //#region src/_tappers.ts
1
+ // src/_tappers.ts
2
2
  function createTappers() {
3
3
  let e = /* @__PURE__ */ new Set(), t = !1;
4
4
  return {
@@ -20,7 +20,6 @@ function createTappers() {
20
20
  }
21
21
  };
22
22
  }
23
- //#endregion
24
23
  export { createTappers };
25
24
 
26
25
  //# sourceMappingURL=_tappers.js.map
@@ -1,4 +1,4 @@
1
- //#region src/animation/easing.ts
1
+ // src/animation/easing.ts
2
2
  var e = {
3
3
  "back-out": (e) => 1 + 2.70158 * (e - 1) ** 3 + 1.70158 * (e - 1) ** 2,
4
4
  "ease-in": (e) => e * e * e,
@@ -10,7 +10,6 @@ var e = {
10
10
  function resolveEasing(t) {
11
11
  return typeof t == "function" ? t : t !== void 0 && Object.hasOwn(e, t) ? e[t] : e["ease-out"];
12
12
  }
13
- //#endregion
14
13
  export { e as easings, resolveEasing };
15
14
 
16
15
  //# sourceMappingURL=easing.js.map
@@ -10,7 +10,6 @@ function resolveMotion(e, t) {
10
10
  stagger: Math.max(0, n?.stagger ?? t?.defaultStagger ?? 0)
11
11
  };
12
12
  }
13
- //#endregion
14
13
  export { resolveMotion };
15
14
 
16
15
  //# sourceMappingURL=motion.js.map
@@ -1,2 +1,2 @@
1
- const e=require("../svg/element.cjs"),t=require("./easing.cjs"),n=require("./transition.cjs"),r=require("../core/ids.cjs");var i=new WeakMap;function cancelReveal(e){i.get(e)?.()}function playTraceReveal(a,o,s,c,l,u){if(cancelReveal(a),l.duration<=0||u?.aborted)return()=>{};let d=r.uniqueId(`prism-trace`),f=e.createSvgElement(`defs`),p=c/2,m=e.createSvgElement(`mask`,{height:o.height+c,id:d,maskContentUnits:`userSpaceOnUse`,maskUnits:`userSpaceOnUse`,width:o.width+c,x:-p,y:-p}),h=s.map(({d:t})=>{let n=e.createSvgElement(`path`,{d:t,fill:`none`,pathLength:1,stroke:`white`,"stroke-dasharray":`1 1`,"stroke-dashoffset":1,"stroke-width":c});return m.appendChild(n),n});f.appendChild(m),a.insertBefore(f,a.firstChild),a.setAttribute(`mask`,`url(#${d})`);let cancelTween=()=>{},finish=()=>{i.delete(a),a.removeAttribute(`mask`),f.remove(),u?.removeEventListener(`abort`,finish),cancelTween()};return i.set(a,finish),u?.addEventListener(`abort`,finish,{once:!0}),cancelTween=n.startTween({count:1,duration:l.duration,easing:t.resolveEasing(l.easing),onComplete:finish,onFrame:e=>{let t=e(0);for(let[e,n]of h.entries()){let{start:r,end:i}=s[e],a=Math.max(0,Math.min(1,(t-r)/(i-r)));n.setAttribute(`stroke-dashoffset`,String(1-a))}},signal:u}),finish}function playGrowReveal(a,o,s,c,l){if(cancelReveal(a),s(),c.duration<=0||o.length===0||l.signal?.aborted)return()=>{};let u=r.uniqueId(`prism-reveal`),d=e.createSvgElement(`defs`),f=e.createSvgElement(`clipPath`,{id:u}),p=o.map(t=>{let n=e.createSvgElement(`rect`,{height:0,width:0,x:t.x,y:t.y});return f.appendChild(n),n});d.appendChild(f),a.insertBefore(d,a.firstChild),a.setAttribute(`clip-path`,`url(#${u})`);let cancelTween=()=>{},finish=()=>{i.delete(a),a.removeAttribute(`clip-path`),d.remove(),l.signal?.removeEventListener(`abort`,finish),cancelTween()};return i.set(a,finish),l.signal?.addEventListener(`abort`,finish,{once:!0}),cancelTween=n.startTween({count:o.length,duration:c.duration,easing:t.resolveEasing(c.easing),onComplete:finish,onFrame:t=>{for(let[n,r]of p.entries()){let i=o[n],a=Math.max(0,Math.min(1,t(n)));if(l.axis===`y`){let t=i.anchor+(i.y-i.anchor)*a,n=i.anchor+(i.y+i.height-i.anchor)*a;e.setAttributes(r,{height:Math.max(0,n-t),width:i.width,y:t})}else{let t=i.anchor+(i.x-i.anchor)*a,n=i.anchor+(i.x+i.width-i.anchor)*a;e.setAttributes(r,{height:i.height,width:Math.max(0,n-t),x:t})}}},signal:l.signal,stagger:l.stagger}),finish}exports.cancelReveal=cancelReveal,exports.playGrowReveal=playGrowReveal,exports.playTraceReveal=playTraceReveal;
1
+ const e=require("../core/ids.cjs"),t=require("../svg/element.cjs"),n=require("./easing.cjs"),r=require("./transition.cjs");var i=new WeakMap;function cancelReveal(e){i.get(e)?.()}function playTraceReveal(a,o,s,c,l,u){if(cancelReveal(a),l.duration<=0||u?.aborted)return()=>{};let d=e.uniqueId(`prism-trace`),f=t.createSvgElement(`defs`),p=c/2,m=t.createSvgElement(`mask`,{height:o.height+c,id:d,maskContentUnits:`userSpaceOnUse`,maskUnits:`userSpaceOnUse`,width:o.width+c,x:-p,y:-p}),h=s.map(({d:e})=>{let n=t.createSvgElement(`path`,{d:e,fill:`none`,pathLength:1,stroke:`white`,"stroke-dasharray":`1 1`,"stroke-dashoffset":1,"stroke-width":c});return m.appendChild(n),n});f.appendChild(m),a.insertBefore(f,a.firstChild),a.setAttribute(`mask`,`url(#${d})`);let cancelTween=()=>{},finish=()=>{i.delete(a),a.removeAttribute(`mask`),f.remove(),u?.removeEventListener(`abort`,finish),cancelTween()};return i.set(a,finish),u?.addEventListener(`abort`,finish,{once:!0}),cancelTween=r.startTween({count:1,duration:l.duration,easing:n.resolveEasing(l.easing),onComplete:finish,onFrame:e=>{let t=e(0);for(let[e,n]of h.entries()){let{start:r,end:i}=s[e],a=Math.max(0,Math.min(1,(t-r)/(i-r)));n.setAttribute(`stroke-dashoffset`,String(1-a))}},signal:u}),finish}function playGrowReveal(a,o,s,c,l){if(cancelReveal(a),s(),c.duration<=0||o.length===0||l.signal?.aborted)return()=>{};let u=e.uniqueId(`prism-reveal`),d=t.createSvgElement(`defs`),f=t.createSvgElement(`clipPath`,{id:u}),p=o.map(e=>{let n=t.createSvgElement(`rect`,{height:0,width:0,x:e.x,y:e.y});return f.appendChild(n),n});d.appendChild(f),a.insertBefore(d,a.firstChild),a.setAttribute(`clip-path`,`url(#${u})`);let cancelTween=()=>{},finish=()=>{i.delete(a),a.removeAttribute(`clip-path`),d.remove(),l.signal?.removeEventListener(`abort`,finish),cancelTween()};return i.set(a,finish),l.signal?.addEventListener(`abort`,finish,{once:!0}),cancelTween=r.startTween({count:o.length,duration:c.duration,easing:n.resolveEasing(c.easing),onComplete:finish,onFrame:e=>{for(let[n,r]of p.entries()){let i=o[n],a=Math.max(0,Math.min(1,e(n)));if(l.axis===`y`){let e=i.anchor+(i.y-i.anchor)*a,n=i.anchor+(i.y+i.height-i.anchor)*a;t.setAttributes(r,{height:Math.max(0,n-e),width:i.width,y:e})}else{let e=i.anchor+(i.x-i.anchor)*a,n=i.anchor+(i.x+i.width-i.anchor)*a;t.setAttributes(r,{height:i.height,width:Math.max(0,n-e),x:e})}}},signal:l.signal,stagger:l.stagger}),finish}exports.cancelReveal=cancelReveal,exports.playGrowReveal=playGrowReveal,exports.playTraceReveal=playTraceReveal;
2
2
  //# sourceMappingURL=reveal.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"reveal.cjs","names":["uniqueId","createSvgElement","startTween","resolveEasing","require_element","require_easing","require_transition","require_ids","activeReveals","parent","motion","signal","maskId","host","padding","strokeWidth","mask","bounds","traces","paths","trace","e","progress","i","revealed","start","end","paintFinal","lanes","options","clipId","clipPath","rects","rect","lane","top","bottom","left","right"],"sources":["../../src/animation/reveal.ts"],"sourcesContent":["import { uniqueId } from '../core/ids';\nimport { createSvgElement, setAttributes } from '../svg/element';\nimport type { TransitionConfig } from '../types';\nimport { resolveEasing } from './easing';\nimport { startTween } from './transition';\n\nconst activeReveals = new WeakMap<Element, () => void>();\n\nexport function cancelReveal(parent: Element): void {\n activeReveals.get(parent)?.();\n}\n\n/** Traces final line geometry without replacing its dash or per-datum styling. */\nexport function playTraceReveal(\n parent: SVGGElement,\n bounds: { height: number; width: number },\n paths: readonly { d: string; end: number; start: number }[],\n strokeWidth: number,\n motion: TransitionConfig & { duration: number },\n signal?: AbortSignal,\n): () => void {\n cancelReveal(parent);\n if (motion.duration <= 0 || signal?.aborted) return () => {};\n\n const maskId = uniqueId('prism-trace');\n const host = createSvgElement('defs');\n const padding = strokeWidth / 2;\n const mask = createSvgElement('mask', {\n height: bounds.height + strokeWidth,\n id: maskId,\n maskContentUnits: 'userSpaceOnUse',\n maskUnits: 'userSpaceOnUse',\n width: bounds.width + strokeWidth,\n x: -padding,\n y: -padding,\n });\n const traces = paths.map(({ d }) => {\n const trace = createSvgElement('path', {\n d,\n fill: 'none',\n pathLength: 1,\n stroke: 'white',\n 'stroke-dasharray': '1 1',\n 'stroke-dashoffset': 1,\n 'stroke-width': strokeWidth,\n });\n mask.appendChild(trace);\n return trace;\n });\n host.appendChild(mask);\n parent.insertBefore(host, parent.firstChild);\n parent.setAttribute('mask', `url(#${maskId})`);\n\n let cancelTween: () => void = () => {};\n const finish = (): void => {\n activeReveals.delete(parent);\n parent.removeAttribute('mask');\n host.remove();\n signal?.removeEventListener('abort', finish);\n cancelTween();\n };\n activeReveals.set(parent, finish);\n signal?.addEventListener('abort', finish, { once: true });\n cancelTween = startTween({\n count: 1,\n duration: motion.duration,\n easing: resolveEasing(motion.easing),\n onComplete: finish,\n onFrame: (progress) => {\n const e = progress(0);\n for (const [i, trace] of traces.entries()) {\n const { start, end } = paths[i];\n const revealed = Math.max(0, Math.min(1, (e - start) / (end - start)));\n trace.setAttribute('stroke-dashoffset', String(1 - revealed));\n }\n },\n signal,\n });\n return finish;\n}\n\nexport interface GrowRevealLane {\n anchor: number;\n height: number;\n width: number;\n x: number;\n y: number;\n}\n\n/** Reveals finished bars from their own baseline without distorting rounded corners. */\nexport function playGrowReveal(\n parent: SVGGElement,\n lanes: readonly GrowRevealLane[],\n paintFinal: () => void,\n motion: TransitionConfig & { duration: number },\n options: { axis: 'x' | 'y'; signal?: AbortSignal; stagger?: number },\n): () => void {\n cancelReveal(parent);\n paintFinal();\n if (motion.duration <= 0 || lanes.length === 0 || options.signal?.aborted) return () => {};\n\n const clipId = uniqueId('prism-reveal');\n const host = createSvgElement('defs');\n const clipPath = createSvgElement('clipPath', { id: clipId });\n const rects = lanes.map((lane) => {\n const rect = createSvgElement('rect', { height: 0, width: 0, x: lane.x, y: lane.y });\n clipPath.appendChild(rect);\n return rect;\n });\n host.appendChild(clipPath);\n parent.insertBefore(host, parent.firstChild);\n parent.setAttribute('clip-path', `url(#${clipId})`);\n\n let cancelTween: () => void = () => {};\n const finish = (): void => {\n activeReveals.delete(parent);\n parent.removeAttribute('clip-path');\n host.remove();\n options.signal?.removeEventListener('abort', finish);\n cancelTween();\n };\n activeReveals.set(parent, finish);\n options.signal?.addEventListener('abort', finish, { once: true });\n cancelTween = startTween({\n count: lanes.length,\n duration: motion.duration,\n easing: resolveEasing(motion.easing),\n onComplete: finish,\n onFrame: (progress) => {\n for (const [i, rect] of rects.entries()) {\n const lane = lanes[i];\n const e = Math.max(0, Math.min(1, progress(i)));\n if (options.axis === 'y') {\n const top = lane.anchor + (lane.y - lane.anchor) * e;\n const bottom = lane.anchor + (lane.y + lane.height - lane.anchor) * e;\n setAttributes(rect, { height: Math.max(0, bottom - top), width: lane.width, y: top });\n } else {\n const left = lane.anchor + (lane.x - lane.anchor) * e;\n const right = lane.anchor + (lane.x + lane.width - lane.anchor) * e;\n setAttributes(rect, { height: lane.height, width: Math.max(0, right - left), x: left });\n }\n }\n },\n signal: options.signal,\n stagger: options.stagger,\n });\n return finish;\n}\n"],"mappings":"A,2HAMA,IAAMQ,EAAgB,IAAI,QAE1B,SAAgB,aAAa,EAAuB,CAClDA,EAAc,IAAIC,CAAM,CAAC,GAAG,CAC9B,CAGA,SAAgB,gBACd,EACA,EACA,EACA,EACA,EACA,EACY,CAEZ,GADA,aAAaA,CAAM,EACfC,EAAO,UAAY,GAAKC,GAAQ,QAAS,UAAa,CAAC,EAE3D,IAAMC,EAASZ,EAAAA,SAAS,aAAa,EAC/Ba,EAAOZ,EAAAA,iBAAiB,MAAM,EAC9Ba,EAAUC,EAAc,EACxBC,EAAOf,EAAAA,iBAAiB,OAAQ,CACpC,OAAQgB,EAAO,OAASF,EACxB,GAAIH,EACJ,iBAAkB,iBAClB,UAAW,iBACX,MAAOK,EAAO,MAAQF,EACtB,EAAG,CAACD,EACJ,EAAG,CAACA,CACN,CAAC,EACKI,EAASC,EAAM,KAAK,CAAE,OAAQ,CAClC,IAAMC,EAAQnB,EAAAA,iBAAiB,OAAQ,CACrC,IACA,KAAM,OACN,WAAY,EACZ,OAAQ,QACR,mBAAoB,MACpB,oBAAqB,EACrB,eAAgBc,CAClB,CAAC,EAED,OADAC,EAAK,YAAYI,CAAK,EACfA,CACT,CAAC,EACDP,EAAK,YAAYG,CAAI,EACrBP,EAAO,aAAaI,EAAMJ,EAAO,UAAU,EAC3CA,EAAO,aAAa,OAAQ,QAAQG,EAAO,EAAE,EAE7C,IAAI,gBAAgC,CAAC,EAC/B,WAAqB,CACzBJ,EAAc,OAAOC,CAAM,EAC3BA,EAAO,gBAAgB,MAAM,EAC7BI,EAAK,OAAO,EACZF,GAAQ,oBAAoB,QAAS,MAAM,EAC3C,YAAY,CACd,EAkBA,OAjBAH,EAAc,IAAIC,EAAQ,MAAM,EAChCE,GAAQ,iBAAiB,QAAS,OAAQ,CAAE,KAAM,EAAK,CAAC,EACxD,YAAcT,EAAAA,WAAW,CACvB,MAAO,EACP,SAAUQ,EAAO,SACjB,OAAQP,EAAAA,cAAcO,EAAO,MAAM,EACnC,WAAY,OACZ,QAAU,GAAa,CACrB,IAAMW,EAAIC,EAAS,CAAC,EACpB,IAAK,GAAM,CAACC,EAAGH,KAAUF,EAAO,QAAQ,EAAG,CACzC,GAAM,CAAE,QAAO,OAAQC,EAAMI,GACvBC,EAAW,KAAK,IAAI,EAAG,KAAK,IAAI,GAAIH,EAAII,IAAUC,EAAMD,EAAM,CAAC,EACrEL,EAAM,aAAa,oBAAqB,OAAO,EAAII,CAAQ,CAAC,CAC9D,CACF,EACA,QACF,CAAC,EACM,MACT,CAWA,SAAgB,eACd,EACA,EACA,EACA,EACA,EACY,CAGZ,GAFA,aAAaf,CAAM,EACnBkB,EAAW,EACPjB,EAAO,UAAY,GAAKkB,EAAM,SAAW,GAAKC,EAAQ,QAAQ,QAAS,UAAa,CAAC,EAEzF,IAAMC,EAAS9B,EAAAA,SAAS,cAAc,EAChCa,EAAOZ,EAAAA,iBAAiB,MAAM,EAC9B8B,EAAW9B,EAAAA,iBAAiB,WAAY,CAAE,GAAI6B,CAAO,CAAC,EACtDE,EAAQJ,EAAM,IAAK,GAAS,CAChC,IAAMK,EAAOhC,EAAAA,iBAAiB,OAAQ,CAAE,OAAQ,EAAG,MAAO,EAAG,EAAGiC,EAAK,EAAG,EAAGA,EAAK,CAAE,CAAC,EAEnF,OADAH,EAAS,YAAYE,CAAI,EAClBA,CACT,CAAC,EACDpB,EAAK,YAAYkB,CAAQ,EACzBtB,EAAO,aAAaI,EAAMJ,EAAO,UAAU,EAC3CA,EAAO,aAAa,YAAa,QAAQqB,EAAO,EAAE,EAElD,IAAI,gBAAgC,CAAC,EAC/B,WAAqB,CACzBtB,EAAc,OAAOC,CAAM,EAC3BA,EAAO,gBAAgB,WAAW,EAClCI,EAAK,OAAO,EACZgB,EAAQ,QAAQ,oBAAoB,QAAS,MAAM,EACnD,YAAY,CACd,EA0BA,OAzBArB,EAAc,IAAIC,EAAQ,MAAM,EAChCoB,EAAQ,QAAQ,iBAAiB,QAAS,OAAQ,CAAE,KAAM,EAAK,CAAC,EAChE,YAAc3B,EAAAA,WAAW,CACvB,MAAO0B,EAAM,OACb,SAAUlB,EAAO,SACjB,OAAQP,EAAAA,cAAcO,EAAO,MAAM,EACnC,WAAY,OACZ,QAAU,GAAa,CACrB,IAAK,GAAM,CAACa,EAAGU,KAASD,EAAM,QAAQ,EAAG,CACvC,IAAME,EAAON,EAAML,GACbF,EAAI,KAAK,IAAI,EAAG,KAAK,IAAI,EAAGC,EAASC,CAAC,CAAC,CAAC,EAC9C,GAAIM,EAAQ,OAAS,IAAK,CACxB,IAAMM,EAAMD,EAAK,QAAUA,EAAK,EAAIA,EAAK,QAAUb,EAC7Ce,EAASF,EAAK,QAAUA,EAAK,EAAIA,EAAK,OAASA,EAAK,QAAUb,EACpEjB,EAAA,cAAc6B,EAAM,CAAE,OAAQ,KAAK,IAAI,EAAGG,EAASD,CAAG,EAAG,MAAOD,EAAK,MAAO,EAAGC,CAAI,CAAC,CACtF,KAAO,CACL,IAAME,EAAOH,EAAK,QAAUA,EAAK,EAAIA,EAAK,QAAUb,EAC9CiB,EAAQJ,EAAK,QAAUA,EAAK,EAAIA,EAAK,MAAQA,EAAK,QAAUb,EAClEjB,EAAA,cAAc6B,EAAM,CAAE,OAAQC,EAAK,OAAQ,MAAO,KAAK,IAAI,EAAGI,EAAQD,CAAI,EAAG,EAAGA,CAAK,CAAC,CACxF,CACF,CACF,EACA,OAAQR,EAAQ,OAChB,QAASA,EAAQ,OACnB,CAAC,EACM,MACT,C"}
1
+ {"version":3,"file":"reveal.cjs","names":["uniqueId","createSvgElement","startTween","resolveEasing","require_ids","require_element","require_easing","require_transition","activeReveals","parent","motion","signal","maskId","host","padding","strokeWidth","mask","bounds","traces","paths","trace","e","progress","i","revealed","start","end","paintFinal","lanes","options","clipId","clipPath","rects","rect","lane","top","bottom","left","right"],"sources":["../../src/animation/reveal.ts"],"sourcesContent":["import { uniqueId } from '../core/ids';\nimport { createSvgElement, setAttributes } from '../svg/element';\nimport type { TransitionConfig } from '../types';\nimport { resolveEasing } from './easing';\nimport { startTween } from './transition';\n\nconst activeReveals = new WeakMap<Element, () => void>();\n\nexport function cancelReveal(parent: Element): void {\n activeReveals.get(parent)?.();\n}\n\n/** Traces final line geometry without replacing its dash or per-datum styling. */\nexport function playTraceReveal(\n parent: SVGGElement,\n bounds: { height: number; width: number },\n paths: readonly { d: string; end: number; start: number }[],\n strokeWidth: number,\n motion: TransitionConfig & { duration: number },\n signal?: AbortSignal,\n): () => void {\n cancelReveal(parent);\n if (motion.duration <= 0 || signal?.aborted) return () => {};\n\n const maskId = uniqueId('prism-trace');\n const host = createSvgElement('defs');\n const padding = strokeWidth / 2;\n const mask = createSvgElement('mask', {\n height: bounds.height + strokeWidth,\n id: maskId,\n maskContentUnits: 'userSpaceOnUse',\n maskUnits: 'userSpaceOnUse',\n width: bounds.width + strokeWidth,\n x: -padding,\n y: -padding,\n });\n const traces = paths.map(({ d }) => {\n const trace = createSvgElement('path', {\n d,\n fill: 'none',\n pathLength: 1,\n stroke: 'white',\n 'stroke-dasharray': '1 1',\n 'stroke-dashoffset': 1,\n 'stroke-width': strokeWidth,\n });\n mask.appendChild(trace);\n return trace;\n });\n host.appendChild(mask);\n parent.insertBefore(host, parent.firstChild);\n parent.setAttribute('mask', `url(#${maskId})`);\n\n let cancelTween: () => void = () => {};\n const finish = (): void => {\n activeReveals.delete(parent);\n parent.removeAttribute('mask');\n host.remove();\n signal?.removeEventListener('abort', finish);\n cancelTween();\n };\n activeReveals.set(parent, finish);\n signal?.addEventListener('abort', finish, { once: true });\n cancelTween = startTween({\n count: 1,\n duration: motion.duration,\n easing: resolveEasing(motion.easing),\n onComplete: finish,\n onFrame: (progress) => {\n const e = progress(0);\n for (const [i, trace] of traces.entries()) {\n const { start, end } = paths[i];\n const revealed = Math.max(0, Math.min(1, (e - start) / (end - start)));\n trace.setAttribute('stroke-dashoffset', String(1 - revealed));\n }\n },\n signal,\n });\n return finish;\n}\n\nexport interface GrowRevealLane {\n anchor: number;\n height: number;\n width: number;\n x: number;\n y: number;\n}\n\n/** Reveals finished bars from their own baseline without distorting rounded corners. */\nexport function playGrowReveal(\n parent: SVGGElement,\n lanes: readonly GrowRevealLane[],\n paintFinal: () => void,\n motion: TransitionConfig & { duration: number },\n options: { axis: 'x' | 'y'; signal?: AbortSignal; stagger?: number },\n): () => void {\n cancelReveal(parent);\n paintFinal();\n if (motion.duration <= 0 || lanes.length === 0 || options.signal?.aborted) return () => {};\n\n const clipId = uniqueId('prism-reveal');\n const host = createSvgElement('defs');\n const clipPath = createSvgElement('clipPath', { id: clipId });\n const rects = lanes.map((lane) => {\n const rect = createSvgElement('rect', { height: 0, width: 0, x: lane.x, y: lane.y });\n clipPath.appendChild(rect);\n return rect;\n });\n host.appendChild(clipPath);\n parent.insertBefore(host, parent.firstChild);\n parent.setAttribute('clip-path', `url(#${clipId})`);\n\n let cancelTween: () => void = () => {};\n const finish = (): void => {\n activeReveals.delete(parent);\n parent.removeAttribute('clip-path');\n host.remove();\n options.signal?.removeEventListener('abort', finish);\n cancelTween();\n };\n activeReveals.set(parent, finish);\n options.signal?.addEventListener('abort', finish, { once: true });\n cancelTween = startTween({\n count: lanes.length,\n duration: motion.duration,\n easing: resolveEasing(motion.easing),\n onComplete: finish,\n onFrame: (progress) => {\n for (const [i, rect] of rects.entries()) {\n const lane = lanes[i];\n const e = Math.max(0, Math.min(1, progress(i)));\n if (options.axis === 'y') {\n const top = lane.anchor + (lane.y - lane.anchor) * e;\n const bottom = lane.anchor + (lane.y + lane.height - lane.anchor) * e;\n setAttributes(rect, { height: Math.max(0, bottom - top), width: lane.width, y: top });\n } else {\n const left = lane.anchor + (lane.x - lane.anchor) * e;\n const right = lane.anchor + (lane.x + lane.width - lane.anchor) * e;\n setAttributes(rect, { height: lane.height, width: Math.max(0, right - left), x: left });\n }\n }\n },\n signal: options.signal,\n stagger: options.stagger,\n });\n return finish;\n}\n"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
- import { createSvgElement as e, setAttributes as t } from "../svg/element.js";
2
- import { resolveEasing as n } from "./easing.js";
3
- import { startTween as r } from "./transition.js";
4
- import { uniqueId as i } from "../core/ids.js";
5
- //#region src/animation/reveal.ts
1
+ import { uniqueId as e } from "../core/ids.js";
2
+ import { createSvgElement as t, setAttributes as n } from "../svg/element.js";
3
+ import { resolveEasing as r } from "./easing.js";
4
+ import { startTween as i } from "./transition.js";
5
+ // src/animation/reveal.ts
6
6
  var a = /* @__PURE__ */ new WeakMap();
7
7
  function cancelReveal(e) {
8
8
  a.get(e)?.();
9
9
  }
10
- function playTraceReveal(t, o, s, c, l, u) {
11
- if (cancelReveal(t), l.duration <= 0 || u?.aborted) return () => {};
12
- let d = i("prism-trace"), f = e("defs"), p = c / 2, m = e("mask", {
10
+ function playTraceReveal(n, o, s, c, l, u) {
11
+ if (cancelReveal(n), l.duration <= 0 || u?.aborted) return () => {};
12
+ let d = e("prism-trace"), f = t("defs"), p = c / 2, m = t("mask", {
13
13
  height: o.height + c,
14
14
  id: d,
15
15
  maskContentUnits: "userSpaceOnUse",
@@ -17,9 +17,9 @@ function playTraceReveal(t, o, s, c, l, u) {
17
17
  width: o.width + c,
18
18
  x: -p,
19
19
  y: -p
20
- }), h = s.map(({ d: t }) => {
21
- let n = e("path", {
22
- d: t,
20
+ }), h = s.map(({ d: e }) => {
21
+ let n = t("path", {
22
+ d: e,
23
23
  fill: "none",
24
24
  pathLength: 1,
25
25
  stroke: "white",
@@ -29,14 +29,14 @@ function playTraceReveal(t, o, s, c, l, u) {
29
29
  });
30
30
  return m.appendChild(n), n;
31
31
  });
32
- f.appendChild(m), t.insertBefore(f, t.firstChild), t.setAttribute("mask", `url(#${d})`);
32
+ f.appendChild(m), n.insertBefore(f, n.firstChild), n.setAttribute("mask", `url(#${d})`);
33
33
  let cancelTween = () => {}, finish = () => {
34
- a.delete(t), t.removeAttribute("mask"), f.remove(), u?.removeEventListener("abort", finish), cancelTween();
34
+ a.delete(n), n.removeAttribute("mask"), f.remove(), u?.removeEventListener("abort", finish), cancelTween();
35
35
  };
36
- return a.set(t, finish), u?.addEventListener("abort", finish, { once: !0 }), cancelTween = r({
36
+ return a.set(n, finish), u?.addEventListener("abort", finish, { once: !0 }), cancelTween = i({
37
37
  count: 1,
38
38
  duration: l.duration,
39
- easing: n(l.easing),
39
+ easing: r(l.easing),
40
40
  onComplete: finish,
41
41
  onFrame: (e) => {
42
42
  let t = e(0);
@@ -50,12 +50,12 @@ function playTraceReveal(t, o, s, c, l, u) {
50
50
  }
51
51
  function playGrowReveal(o, s, c, l, u) {
52
52
  if (cancelReveal(o), c(), l.duration <= 0 || s.length === 0 || u.signal?.aborted) return () => {};
53
- let d = i("prism-reveal"), f = e("defs"), p = e("clipPath", { id: d }), m = s.map((t) => {
54
- let n = e("rect", {
53
+ let d = e("prism-reveal"), f = t("defs"), p = t("clipPath", { id: d }), m = s.map((e) => {
54
+ let n = t("rect", {
55
55
  height: 0,
56
56
  width: 0,
57
- x: t.x,
58
- y: t.y
57
+ x: e.x,
58
+ y: e.y
59
59
  });
60
60
  return p.appendChild(n), n;
61
61
  });
@@ -63,26 +63,26 @@ function playGrowReveal(o, s, c, l, u) {
63
63
  let cancelTween = () => {}, finish = () => {
64
64
  a.delete(o), o.removeAttribute("clip-path"), f.remove(), u.signal?.removeEventListener("abort", finish), cancelTween();
65
65
  };
66
- return a.set(o, finish), u.signal?.addEventListener("abort", finish, { once: !0 }), cancelTween = r({
66
+ return a.set(o, finish), u.signal?.addEventListener("abort", finish, { once: !0 }), cancelTween = i({
67
67
  count: s.length,
68
68
  duration: l.duration,
69
- easing: n(l.easing),
69
+ easing: r(l.easing),
70
70
  onComplete: finish,
71
71
  onFrame: (e) => {
72
- for (let [n, r] of m.entries()) {
73
- let i = s[n], a = Math.max(0, Math.min(1, e(n)));
72
+ for (let [t, r] of m.entries()) {
73
+ let i = s[t], a = Math.max(0, Math.min(1, e(t)));
74
74
  if (u.axis === "y") {
75
- let e = i.anchor + (i.y - i.anchor) * a, n = i.anchor + (i.y + i.height - i.anchor) * a;
76
- t(r, {
77
- height: Math.max(0, n - e),
75
+ let e = i.anchor + (i.y - i.anchor) * a, t = i.anchor + (i.y + i.height - i.anchor) * a;
76
+ n(r, {
77
+ height: Math.max(0, t - e),
78
78
  width: i.width,
79
79
  y: e
80
80
  });
81
81
  } else {
82
- let e = i.anchor + (i.x - i.anchor) * a, n = i.anchor + (i.x + i.width - i.anchor) * a;
83
- t(r, {
82
+ let e = i.anchor + (i.x - i.anchor) * a, t = i.anchor + (i.x + i.width - i.anchor) * a;
83
+ n(r, {
84
84
  height: i.height,
85
- width: Math.max(0, n - e),
85
+ width: Math.max(0, t - e),
86
86
  x: e
87
87
  });
88
88
  }
@@ -92,7 +92,6 @@ function playGrowReveal(o, s, c, l, u) {
92
92
  stagger: u.stagger
93
93
  }), finish;
94
94
  }
95
- //#endregion
96
95
  export { cancelReveal, playGrowReveal, playTraceReveal };
97
96
 
98
97
  //# sourceMappingURL=reveal.js.map
@@ -1,7 +1,7 @@
1
1
  import { resolveEasing as e } from "./easing.js";
2
2
  import { resolveMotion as t } from "./motion.js";
3
3
  import { tweenNumber as n } from "./tween.js";
4
- //#region src/animation/transition.ts
4
+ // src/animation/transition.ts
5
5
  function startTween(e) {
6
6
  let { count: t, duration: n, easing: r, stagger: i = 0, signal: a, onFrame: o, onComplete: s } = e;
7
7
  if (a?.aborted) return () => {};
@@ -34,7 +34,6 @@ function animate(r, i, a, o) {
34
34
  stagger: s.stagger
35
35
  });
36
36
  }
37
- //#endregion
38
37
  export { animate, startTween };
39
38
 
40
39
  //# sourceMappingURL=transition.js.map
@@ -1,8 +1,7 @@
1
- //#region src/animation/tween.ts
1
+ // src/animation/tween.ts
2
2
  function tweenNumber(e, t, n) {
3
3
  return e + (t - e) * n;
4
4
  }
5
- //#endregion
6
5
  export { tweenNumber };
7
6
 
8
7
  //# sourceMappingURL=tween.js.map
package/dist/axes/axis.js CHANGED
@@ -2,7 +2,7 @@ import "../_dev.js";
2
2
  import { createSvgElement as e, removeChildren as t, setAttributes as n } from "../svg/element.js";
3
3
  import { createTextElement as r, estimateTextWidth as i } from "../svg/text.js";
4
4
  import { mapTick as a } from "./scale-utils.js";
5
- //#region src/axes/axis.ts
5
+ // src/axes/axis.ts
6
6
  var o = 11, s = 8, c = new Intl.NumberFormat(void 0, {
7
7
  maximumSignificantDigits: 3,
8
8
  notation: "compact"
@@ -71,7 +71,6 @@ function renderAxis(i, o, s, c, l = "bottom") {
71
71
  }) : n(e, { transform: `translate(${6 * p * 7}, ${c / 2}) rotate(-90)` }), i.appendChild(e);
72
72
  }
73
73
  }
74
- //#endregion
75
74
  export { positionAxis, renderAxis, resolveTickCount, resolveTicks };
76
75
 
77
76
  //# sourceMappingURL=axis.js.map
package/dist/axes/grid.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createSvgElement as e, removeChildren as t } from "../svg/element.js";
2
2
  import { mapTick as n } from "./scale-utils.js";
3
- //#region src/axes/grid.ts
3
+ // src/axes/grid.ts
4
4
  function renderGrid(r, i, a, o, s, c) {
5
5
  t(r);
6
6
  let l = a !== !0 && a.color || void 0, u = a !== !0 && a.dash || void 0;
@@ -24,7 +24,6 @@ function renderGrid(r, i, a, o, s, c) {
24
24
  }), r.appendChild(e("line", c));
25
25
  }
26
26
  }
27
- //#endregion
28
27
  export { renderGrid };
29
28
 
30
29
  //# sourceMappingURL=grid.js.map
@@ -1,11 +1,10 @@
1
- //#region src/axes/scale-utils.ts
1
+ // src/axes/scale-utils.ts
2
2
  function isBandScale(e) {
3
3
  return typeof e.bandwidth == "function";
4
4
  }
5
5
  function mapTick(e, t) {
6
6
  return isBandScale(e) ? e.map(t) + e.bandwidth() / 2 : e.map(t);
7
7
  }
8
- //#endregion
9
8
  export { mapTick };
10
9
 
11
10
  //# sourceMappingURL=scale-utils.js.map
@@ -1,2 +1,2 @@
1
- const e=require("../../svg/element.cjs"),t=require("../../axes/axis.cjs"),n=require("../../axes/grid.cjs"),r=require("../../core/cartesian-scales.cjs"),i=require("../../core/layout.cjs"),a=require("../../core/chart-scaffold.cjs"),o=require("../../core/series-id.cjs"),s=require("../../interaction/crosshair.cjs"),c=require("../../interaction/series-interaction.cjs"),l=require("../../theme/index.cjs"),u=require("./area-renderer.cjs");function createAreaChart(d,f){let p=null,m=null,h=f.series;return a.createChartScaffold(d,f,d=>{let{groups:g,legend:_,tooltip:v}=d;_?.update(h.map((e,t)=>({color:l.seriesColor(t,e.color),name:e.name})));let y=d.dimensions,b=i.chartArea(y.width,y.height,y.margin),x=h.map(e=>e.data),S=x.flat().map(e=>e.key),C=x.flat().map(e=>e.value);if(S.length===0){a.clearCartesianDom(g,_,v,p),m?.replaceChildren();return}f.crosshair&&!p&&(p=s.createCrosshair(d.chartArea,f.crosshair));let w=r.buildXScale(S,b.width),T=r.buildYScale(C,b.height),E=T.map(0),D=f.xAxis===!1?!1:f.xAxis??{},O=f.yAxis!==!1&&{grid:!0,...f.yAxis};for(O&&O.grid&&n.renderGrid(g.grid,T,O.grid,b.width,`horizontal`,t.resolveTicks(T,O,t.resolveTickCount(O,b.height,`left`))),D&&D.grid&&n.renderGrid(g.grid,w,D.grid,b.height,`vertical`,t.resolveTicks(w,D,t.resolveTickCount(D,b.width,`bottom`))),D?(t.positionAxis(g.xAxis,D.position??`bottom`,b.width,b.height),t.renderAxis(g.xAxis,w,D,b.width,`bottom`)):g.xAxis.replaceChildren(),O?(t.positionAxis(g.yAxis,O.position??`left`,b.width,b.height),t.renderAxis(g.yAxis,T,O,b.height,`left`)):g.yAxis.replaceChildren();g.series.children.length>h.length;)g.series.removeChild(g.series.lastChild);let k=[];for(let t=0;t<h.length;t++){let n=h[t],r=g.series.children[t];r||(r=e.createSvgElement(`g`,{class:`prism-area-series`}),g.series.appendChild(r)),r.setAttribute(`data-series-id`,o.seriesDomId(n,t));let i=u.computeAreaPoints(x[t],w,T);k.push(i),u.renderArea(r,i,E,{color:l.seriesColor(t,n.color),curve:n.curve??`linear`,disposalSignal:d.disposalSignal,fill:n.fill??`gradient`,fillOpacity:n.fillOpacity,marks:n.data,showLine:n.showLine!==!1,transition:f.transition})}return v?.hide(),m=c.ensureMarkerGroup(d.chartArea,m),c.createSeriesInteraction({announcer:d.announcer,colors:()=>h.map((e,t)=>l.seriesColor(t,e.color)),crosshair:p,dims:()=>d.dimensions,getData:()=>x,getPoints:()=>k,getSeriesList:()=>h,margin:d.dimensions.margin,markers:m,onClick:f.onClick,onHover:f.onHover,seriesGroup:g.series,svg:d.svg,tooltip:v,tooltipFormat:typeof f.tooltip==`object`?f.tooltip:void 0})},e=>{h=e})}exports.createAreaChart=createAreaChart;
1
+ const e=require("../../axes/axis.cjs"),t=require("../../axes/grid.cjs"),n=require("../../core/cartesian-scales.cjs"),r=require("../../core/chart-scaffold.cjs"),i=require("../../core/layout.cjs"),a=require("../../core/series-id.cjs"),o=require("../../interaction/crosshair.cjs"),s=require("../../interaction/series-interaction.cjs"),c=require("../../svg/element.cjs"),l=require("../../theme/index.cjs"),u=require("./area-renderer.cjs");function createAreaChart(d,f){let p=null,m=null,h=f.series;return r.createChartScaffold(d,f,d=>{let{groups:g,legend:_,tooltip:v}=d;_?.update(h.map((e,t)=>({color:l.seriesColor(t,e.color),name:e.name})));let y=d.dimensions,b=i.chartArea(y.width,y.height,y.margin),x=h.map(e=>e.data),S=x.flat().map(e=>e.key),C=x.flat().map(e=>e.value);if(S.length===0){r.clearCartesianDom(g,_,v,p),m?.replaceChildren();return}f.crosshair&&!p&&(p=o.createCrosshair(d.chartArea,f.crosshair));let w=n.buildXScale(S,b.width),T=n.buildYScale(C,b.height),E=T.map(0),D=f.xAxis===!1?!1:f.xAxis??{},O=f.yAxis!==!1&&{grid:!0,...f.yAxis};for(O&&O.grid&&t.renderGrid(g.grid,T,O.grid,b.width,`horizontal`,e.resolveTicks(T,O,e.resolveTickCount(O,b.height,`left`))),D&&D.grid&&t.renderGrid(g.grid,w,D.grid,b.height,`vertical`,e.resolveTicks(w,D,e.resolveTickCount(D,b.width,`bottom`))),D?(e.positionAxis(g.xAxis,D.position??`bottom`,b.width,b.height),e.renderAxis(g.xAxis,w,D,b.width,`bottom`)):g.xAxis.replaceChildren(),O?(e.positionAxis(g.yAxis,O.position??`left`,b.width,b.height),e.renderAxis(g.yAxis,T,O,b.height,`left`)):g.yAxis.replaceChildren();g.series.children.length>h.length;)g.series.removeChild(g.series.lastChild);let k=[];for(let e=0;e<h.length;e++){let t=h[e],n=g.series.children[e];n||(n=c.createSvgElement(`g`,{class:`prism-area-series`}),g.series.appendChild(n)),n.setAttribute(`data-series-id`,a.seriesDomId(t,e));let r=u.computeAreaPoints(x[e],w,T);k.push(r),u.renderArea(n,r,E,{color:l.seriesColor(e,t.color),curve:t.curve??`linear`,disposalSignal:d.disposalSignal,fill:t.fill??`gradient`,fillOpacity:t.fillOpacity,marks:t.data,showLine:t.showLine!==!1,transition:f.transition})}return v?.hide(),m=s.ensureMarkerGroup(d.chartArea,m),s.createSeriesInteraction({announcer:d.announcer,colors:()=>h.map((e,t)=>l.seriesColor(t,e.color)),crosshair:p,dims:()=>d.dimensions,getData:()=>x,getPoints:()=>k,getSeriesList:()=>h,margin:d.dimensions.margin,markers:m,onClick:f.onClick,onHover:f.onHover,seriesGroup:g.series,svg:d.svg,tooltip:v,tooltipFormat:typeof f.tooltip==`object`?f.tooltip:void 0})},e=>{h=e})}exports.createAreaChart=createAreaChart;
2
2
  //# sourceMappingURL=area-chart.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"area-chart.cjs","names":["createChartScaffold","seriesColor","chartArea","createCrosshair","buildXScale","buildYScale","resolveTicks","resolveTickCount","createSvgElement","seriesDomId","computeAreaPoints","ensureMarkerGroup","createSeriesInteraction","require_element","require_axis","require_grid","require_cartesian_scales","require_layout","require_chart_scaffold","require_series_id","require_crosshair","require_series_interaction","require_index","require_area_renderer","crosshair","markers","seriesList","config","container","ctx","legend","i","s","dims","area","allData","series","allX","datum","allY","d","groups","tooltip","xScale","yScale","baselineY","xAxisConfig","yAxisConfig","allPoints","group","points","data"],"sources":["../../../src/charts/area/area-chart.ts"],"sourcesContent":["import { positionAxis, renderAxis, resolveTickCount, resolveTicks } from '../../axes/axis';\nimport { renderGrid } from '../../axes/grid';\nimport { buildXScale, buildYScale } from '../../core/cartesian-scales';\nimport { clearCartesianDom, createChartScaffold } from '../../core/chart-scaffold';\nimport { chartArea } from '../../core/layout';\nimport { seriesDomId } from '../../core/series-id';\nimport { createCrosshair } from '../../interaction/crosshair';\nimport { createSeriesInteraction, ensureMarkerGroup } from '../../interaction/series-interaction';\nimport { createSvgElement } from '../../svg/element';\nimport type { Point } from '../../svg/path';\nimport { seriesColor } from '../../theme';\nimport type { AreaChartConfig, AreaSeriesConfig, ChartHandle, XAxisConfig, YAxisConfig } from '../../types';\nimport { computeAreaPoints, renderArea } from './area-renderer';\n\nexport function createAreaChart(container: HTMLElement, config: AreaChartConfig): ChartHandle<AreaSeriesConfig[]> {\n let crosshair: ReturnType<typeof createCrosshair> | null = null;\n let markers: SVGGElement | null = null;\n let seriesList = config.series;\n\n return createChartScaffold(\n container,\n config,\n (ctx) => {\n const { groups, legend, tooltip } = ctx;\n legend?.update(seriesList.map((s, i) => ({ color: seriesColor(i, s.color), name: s.name })));\n const dims = ctx.dimensions;\n const area = chartArea(dims.width, dims.height, dims.margin);\n const allData = seriesList.map((series) => series.data);\n const allX = allData.flat().map((datum) => datum.key);\n const allY = allData.flat().map((d) => d.value);\n\n if (allX.length === 0) {\n clearCartesianDom(groups, legend, tooltip, crosshair);\n markers?.replaceChildren();\n\n return;\n }\n\n if (config.crosshair && !crosshair) {\n crosshair = createCrosshair(ctx.chartArea, config.crosshair);\n }\n\n const xScale = buildXScale(allX, area.width);\n const yScale = buildYScale(allY, area.height);\n const baselineY = yScale.map(0);\n\n // Axes render by default (value axis with gridlines); `false` opts out. The value\n // axis merges over its default so a partial config (e.g. only `tickFormat`) keeps\n // the default gridlines.\n const xAxisConfig: XAxisConfig | false = config.xAxis === false ? false : (config.xAxis ?? {});\n const yAxisConfig: YAxisConfig | false = config.yAxis === false ? false : { grid: true, ...config.yAxis };\n\n if (yAxisConfig && yAxisConfig.grid) {\n renderGrid(\n groups.grid,\n yScale,\n yAxisConfig.grid,\n area.width,\n 'horizontal',\n resolveTicks(yScale, yAxisConfig, resolveTickCount(yAxisConfig, area.height, 'left')),\n );\n }\n\n if (xAxisConfig && xAxisConfig.grid) {\n renderGrid(\n groups.grid,\n xScale,\n xAxisConfig.grid,\n area.height,\n 'vertical',\n resolveTicks(xScale, xAxisConfig, resolveTickCount(xAxisConfig, area.width, 'bottom')),\n );\n }\n\n if (xAxisConfig) {\n positionAxis(groups.xAxis, xAxisConfig.position ?? 'bottom', area.width, area.height);\n renderAxis(groups.xAxis, xScale, xAxisConfig, area.width, 'bottom');\n } else {\n groups.xAxis.replaceChildren();\n }\n\n if (yAxisConfig) {\n positionAxis(groups.yAxis, yAxisConfig.position ?? 'left', area.width, area.height);\n renderAxis(groups.yAxis, yScale, yAxisConfig, area.height, 'left');\n } else {\n groups.yAxis.replaceChildren();\n }\n\n while (groups.series.children.length > seriesList.length) {\n groups.series.removeChild(groups.series.lastChild!);\n }\n\n const allPoints: Point[][] = [];\n\n for (let i = 0; i < seriesList.length; i++) {\n const series = seriesList[i];\n let group = groups.series.children[i] as SVGGElement | undefined;\n\n if (!group) {\n group = createSvgElement('g', { class: 'prism-area-series' });\n groups.series.appendChild(group);\n }\n\n group.setAttribute('data-series-id', seriesDomId(series, i));\n\n const points = computeAreaPoints(allData[i], xScale, yScale);\n\n allPoints.push(points);\n\n renderArea(group, points, baselineY, {\n color: seriesColor(i, series.color),\n curve: series.curve ?? 'linear',\n disposalSignal: ctx.disposalSignal,\n fill: series.fill ?? 'gradient',\n fillOpacity: series.fillOpacity,\n marks: series.data,\n showLine: series.showLine !== false,\n transition: config.transition,\n });\n }\n\n tooltip?.hide();\n markers = ensureMarkerGroup(ctx.chartArea, markers);\n\n return createSeriesInteraction({\n announcer: ctx.announcer,\n colors: () => seriesList.map((s, i) => seriesColor(i, s.color)),\n crosshair,\n dims: () => ctx.dimensions,\n getData: () => allData,\n getPoints: () => allPoints,\n getSeriesList: () => seriesList,\n margin: ctx.dimensions.margin,\n markers,\n onClick: config.onClick,\n onHover: config.onHover,\n seriesGroup: groups.series,\n svg: ctx.svg,\n tooltip,\n tooltipFormat: typeof config.tooltip === 'object' ? config.tooltip : undefined,\n });\n },\n (data) => {\n seriesList = data;\n },\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"area-chart.cjs","names":["createChartScaffold","seriesColor","chartArea","createCrosshair","buildXScale","buildYScale","resolveTicks","resolveTickCount","createSvgElement","seriesDomId","computeAreaPoints","ensureMarkerGroup","createSeriesInteraction","require_axis","require_grid","require_cartesian_scales","require_chart_scaffold","require_layout","require_series_id","require_crosshair","require_series_interaction","require_element","require_index","require_area_renderer","crosshair","markers","seriesList","config","container","ctx","legend","i","s","dims","area","allData","series","allX","datum","allY","d","groups","tooltip","xScale","yScale","baselineY","xAxisConfig","yAxisConfig","allPoints","group","points","data"],"sources":["../../../src/charts/area/area-chart.ts"],"sourcesContent":["import { positionAxis, renderAxis, resolveTickCount, resolveTicks } from '../../axes/axis';\nimport { renderGrid } from '../../axes/grid';\nimport { buildXScale, buildYScale } from '../../core/cartesian-scales';\nimport { clearCartesianDom, createChartScaffold } from '../../core/chart-scaffold';\nimport { chartArea } from '../../core/layout';\nimport { seriesDomId } from '../../core/series-id';\nimport { createCrosshair } from '../../interaction/crosshair';\nimport { createSeriesInteraction, ensureMarkerGroup } from '../../interaction/series-interaction';\nimport { createSvgElement } from '../../svg/element';\nimport type { Point } from '../../svg/path';\nimport { seriesColor } from '../../theme';\nimport type { AreaChartConfig, AreaSeriesConfig, ChartHandle, XAxisConfig, YAxisConfig } from '../../types';\nimport { computeAreaPoints, renderArea } from './area-renderer';\n\nexport function createAreaChart(container: HTMLElement, config: AreaChartConfig): ChartHandle<AreaSeriesConfig[]> {\n let crosshair: ReturnType<typeof createCrosshair> | null = null;\n let markers: SVGGElement | null = null;\n let seriesList = config.series;\n\n return createChartScaffold(\n container,\n config,\n (ctx) => {\n const { groups, legend, tooltip } = ctx;\n legend?.update(seriesList.map((s, i) => ({ color: seriesColor(i, s.color), name: s.name })));\n const dims = ctx.dimensions;\n const area = chartArea(dims.width, dims.height, dims.margin);\n const allData = seriesList.map((series) => series.data);\n const allX = allData.flat().map((datum) => datum.key);\n const allY = allData.flat().map((d) => d.value);\n\n if (allX.length === 0) {\n clearCartesianDom(groups, legend, tooltip, crosshair);\n markers?.replaceChildren();\n\n return;\n }\n\n if (config.crosshair && !crosshair) {\n crosshair = createCrosshair(ctx.chartArea, config.crosshair);\n }\n\n const xScale = buildXScale(allX, area.width);\n const yScale = buildYScale(allY, area.height);\n const baselineY = yScale.map(0);\n\n // Axes render by default (value axis with gridlines); `false` opts out. The value\n // axis merges over its default so a partial config (e.g. only `tickFormat`) keeps\n // the default gridlines.\n const xAxisConfig: XAxisConfig | false = config.xAxis === false ? false : (config.xAxis ?? {});\n const yAxisConfig: YAxisConfig | false = config.yAxis === false ? false : { grid: true, ...config.yAxis };\n\n if (yAxisConfig && yAxisConfig.grid) {\n renderGrid(\n groups.grid,\n yScale,\n yAxisConfig.grid,\n area.width,\n 'horizontal',\n resolveTicks(yScale, yAxisConfig, resolveTickCount(yAxisConfig, area.height, 'left')),\n );\n }\n\n if (xAxisConfig && xAxisConfig.grid) {\n renderGrid(\n groups.grid,\n xScale,\n xAxisConfig.grid,\n area.height,\n 'vertical',\n resolveTicks(xScale, xAxisConfig, resolveTickCount(xAxisConfig, area.width, 'bottom')),\n );\n }\n\n if (xAxisConfig) {\n positionAxis(groups.xAxis, xAxisConfig.position ?? 'bottom', area.width, area.height);\n renderAxis(groups.xAxis, xScale, xAxisConfig, area.width, 'bottom');\n } else {\n groups.xAxis.replaceChildren();\n }\n\n if (yAxisConfig) {\n positionAxis(groups.yAxis, yAxisConfig.position ?? 'left', area.width, area.height);\n renderAxis(groups.yAxis, yScale, yAxisConfig, area.height, 'left');\n } else {\n groups.yAxis.replaceChildren();\n }\n\n while (groups.series.children.length > seriesList.length) {\n groups.series.removeChild(groups.series.lastChild!);\n }\n\n const allPoints: Point[][] = [];\n\n for (let i = 0; i < seriesList.length; i++) {\n const series = seriesList[i];\n let group = groups.series.children[i] as SVGGElement | undefined;\n\n if (!group) {\n group = createSvgElement('g', { class: 'prism-area-series' });\n groups.series.appendChild(group);\n }\n\n group.setAttribute('data-series-id', seriesDomId(series, i));\n\n const points = computeAreaPoints(allData[i], xScale, yScale);\n\n allPoints.push(points);\n\n renderArea(group, points, baselineY, {\n color: seriesColor(i, series.color),\n curve: series.curve ?? 'linear',\n disposalSignal: ctx.disposalSignal,\n fill: series.fill ?? 'gradient',\n fillOpacity: series.fillOpacity,\n marks: series.data,\n showLine: series.showLine !== false,\n transition: config.transition,\n });\n }\n\n tooltip?.hide();\n markers = ensureMarkerGroup(ctx.chartArea, markers);\n\n return createSeriesInteraction({\n announcer: ctx.announcer,\n colors: () => seriesList.map((s, i) => seriesColor(i, s.color)),\n crosshair,\n dims: () => ctx.dimensions,\n getData: () => allData,\n getPoints: () => allPoints,\n getSeriesList: () => seriesList,\n margin: ctx.dimensions.margin,\n markers,\n onClick: config.onClick,\n onHover: config.onHover,\n seriesGroup: groups.series,\n svg: ctx.svg,\n tooltip,\n tooltipFormat: typeof config.tooltip === 'object' ? config.tooltip : undefined,\n });\n },\n (data) => {\n seriesList = data;\n },\n );\n}\n"],"mappings":"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"}
@@ -1,64 +1,64 @@
1
- import { createSvgElement as e } from "../../svg/element.js";
2
- import { positionAxis as t, renderAxis as n, resolveTickCount as r, resolveTicks as i } from "../../axes/axis.js";
3
- import { renderGrid as a } from "../../axes/grid.js";
4
- import { buildXScale as o, buildYScale as s } from "../../core/cartesian-scales.js";
5
- import { chartArea as c } from "../../core/layout.js";
6
- import { clearCartesianDom as l, createChartScaffold as u } from "../../core/chart-scaffold.js";
7
- import { seriesDomId as d } from "../../core/series-id.js";
8
- import { createCrosshair as f } from "../../interaction/crosshair.js";
9
- import { createSeriesInteraction as p, ensureMarkerGroup as m } from "../../interaction/series-interaction.js";
1
+ import { positionAxis as e, renderAxis as t, resolveTickCount as n, resolveTicks as r } from "../../axes/axis.js";
2
+ import { renderGrid as i } from "../../axes/grid.js";
3
+ import { buildXScale as a, buildYScale as o } from "../../core/cartesian-scales.js";
4
+ import { clearCartesianDom as s, createChartScaffold as c } from "../../core/chart-scaffold.js";
5
+ import { chartArea as l } from "../../core/layout.js";
6
+ import { seriesDomId as u } from "../../core/series-id.js";
7
+ import { createCrosshair as d } from "../../interaction/crosshair.js";
8
+ import { createSeriesInteraction as f, ensureMarkerGroup as p } from "../../interaction/series-interaction.js";
9
+ import { createSvgElement as m } from "../../svg/element.js";
10
10
  import { seriesColor as h } from "../../theme/index.js";
11
11
  import { computeAreaPoints as g, renderArea as _ } from "./area-renderer.js";
12
- //#region src/charts/area/area-chart.ts
12
+ // src/charts/area/area-chart.ts
13
13
  function createAreaChart(v, y) {
14
14
  let b = null, x = null, S = y.series;
15
- return u(v, y, (u) => {
16
- let { groups: v, legend: C, tooltip: w } = u;
15
+ return c(v, y, (c) => {
16
+ let { groups: v, legend: C, tooltip: w } = c;
17
17
  C?.update(S.map((e, t) => ({
18
18
  color: h(t, e.color),
19
19
  name: e.name
20
20
  })));
21
- let T = u.dimensions, E = c(T.width, T.height, T.margin), D = S.map((e) => e.data), O = D.flat().map((e) => e.key), k = D.flat().map((e) => e.value);
21
+ let T = c.dimensions, E = l(T.width, T.height, T.margin), D = S.map((e) => e.data), O = D.flat().map((e) => e.key), k = D.flat().map((e) => e.value);
22
22
  if (O.length === 0) {
23
- l(v, C, w, b), x?.replaceChildren();
23
+ s(v, C, w, b), x?.replaceChildren();
24
24
  return;
25
25
  }
26
- y.crosshair && !b && (b = f(u.chartArea, y.crosshair));
27
- let A = o(O, E.width), j = s(k, E.height), M = j.map(0), N = y.xAxis === !1 ? !1 : y.xAxis ?? {}, P = y.yAxis !== !1 && {
26
+ y.crosshair && !b && (b = d(c.chartArea, y.crosshair));
27
+ let A = a(O, E.width), j = o(k, E.height), M = j.map(0), N = y.xAxis === !1 ? !1 : y.xAxis ?? {}, P = y.yAxis !== !1 && {
28
28
  grid: !0,
29
29
  ...y.yAxis
30
30
  };
31
- for (P && P.grid && a(v.grid, j, P.grid, E.width, "horizontal", i(j, P, r(P, E.height, "left"))), N && N.grid && a(v.grid, A, N.grid, E.height, "vertical", i(A, N, r(N, E.width, "bottom"))), N ? (t(v.xAxis, N.position ?? "bottom", E.width, E.height), n(v.xAxis, A, N, E.width, "bottom")) : v.xAxis.replaceChildren(), P ? (t(v.yAxis, P.position ?? "left", E.width, E.height), n(v.yAxis, j, P, E.height, "left")) : v.yAxis.replaceChildren(); v.series.children.length > S.length;) v.series.removeChild(v.series.lastChild);
31
+ for (P && P.grid && i(v.grid, j, P.grid, E.width, "horizontal", r(j, P, n(P, E.height, "left"))), N && N.grid && i(v.grid, A, N.grid, E.height, "vertical", r(A, N, n(N, E.width, "bottom"))), N ? (e(v.xAxis, N.position ?? "bottom", E.width, E.height), t(v.xAxis, A, N, E.width, "bottom")) : v.xAxis.replaceChildren(), P ? (e(v.yAxis, P.position ?? "left", E.width, E.height), t(v.yAxis, j, P, E.height, "left")) : v.yAxis.replaceChildren(); v.series.children.length > S.length;) v.series.removeChild(v.series.lastChild);
32
32
  let F = [];
33
- for (let t = 0; t < S.length; t++) {
34
- let n = S[t], r = v.series.children[t];
35
- r || (r = e("g", { class: "prism-area-series" }), v.series.appendChild(r)), r.setAttribute("data-series-id", d(n, t));
36
- let i = g(D[t], A, j);
37
- F.push(i), _(r, i, M, {
38
- color: h(t, n.color),
39
- curve: n.curve ?? "linear",
40
- disposalSignal: u.disposalSignal,
41
- fill: n.fill ?? "gradient",
42
- fillOpacity: n.fillOpacity,
43
- marks: n.data,
44
- showLine: n.showLine !== !1,
33
+ for (let e = 0; e < S.length; e++) {
34
+ let t = S[e], n = v.series.children[e];
35
+ n || (n = m("g", { class: "prism-area-series" }), v.series.appendChild(n)), n.setAttribute("data-series-id", u(t, e));
36
+ let r = g(D[e], A, j);
37
+ F.push(r), _(n, r, M, {
38
+ color: h(e, t.color),
39
+ curve: t.curve ?? "linear",
40
+ disposalSignal: c.disposalSignal,
41
+ fill: t.fill ?? "gradient",
42
+ fillOpacity: t.fillOpacity,
43
+ marks: t.data,
44
+ showLine: t.showLine !== !1,
45
45
  transition: y.transition
46
46
  });
47
47
  }
48
- return w?.hide(), x = m(u.chartArea, x), p({
49
- announcer: u.announcer,
48
+ return w?.hide(), x = p(c.chartArea, x), f({
49
+ announcer: c.announcer,
50
50
  colors: () => S.map((e, t) => h(t, e.color)),
51
51
  crosshair: b,
52
- dims: () => u.dimensions,
52
+ dims: () => c.dimensions,
53
53
  getData: () => D,
54
54
  getPoints: () => F,
55
55
  getSeriesList: () => S,
56
- margin: u.dimensions.margin,
56
+ margin: c.dimensions.margin,
57
57
  markers: x,
58
58
  onClick: y.onClick,
59
59
  onHover: y.onHover,
60
60
  seriesGroup: v.series,
61
- svg: u.svg,
61
+ svg: c.svg,
62
62
  tooltip: w,
63
63
  tooltipFormat: typeof y.tooltip == "object" ? y.tooltip : void 0
64
64
  });
@@ -66,7 +66,6 @@ function createAreaChart(v, y) {
66
66
  S = e;
67
67
  });
68
68
  }
69
- //#endregion
70
69
  export { createAreaChart };
71
70
 
72
71
  //# sourceMappingURL=area-chart.js.map
@@ -1,2 +1,2 @@
1
- require("../../_dev.cjs");const e=require("../../svg/element.cjs"),t=require("../../animation/easing.cjs"),n=require("../../animation/motion.cjs"),r=require("../../animation/tween.cjs"),i=require("../../animation/transition.cjs"),a=require("../../core/datum-style.cjs"),o=require("../../core/ids.cjs"),s=require("../../svg/path.cjs");var c=new WeakMap,l=new WeakMap;function buildLinePath(e,t){return t===`monotone`?s.monotonePath(e):t===`step`?s.stepPath(e):s.linePath(e)}function applyAreaFill(t,n,r){let i=t.querySelector(`linearGradient`);if(r.fill===`gradient`){if(!i){let n=e.createSvgElement(`defs`);i=e.createSvgElement(`linearGradient`,{id:o.uniqueId(`prism-area-fill`),x1:0,x2:0,y1:0,y2:1}),i.append(e.createSvgElement(`stop`,{class:`prism-area-stop-top`,offset:0}),e.createSvgElement(`stop`,{class:`prism-area-stop-bottom`,offset:1})),n.appendChild(i),t.insertBefore(n,t.firstChild)}for(let e of i.querySelectorAll(`stop`))e.setAttribute(`stop-color`,r.color),e.style.stopColor=r.color;e.setAttributes(n,{fill:`url(#${i.id})`})}else i?.parentElement?.remove(),e.setAttributes(n,{fill:r.color});e.setAttributes(n,{class:`prism-area-fill prism-area-fill--${r.fill}`,stroke:`none`}),n.style.fillOpacity=r.fillOpacity===void 0?``:String(r.fillOpacity)}function renderArea(o,u,d,f){let p=n.resolveMotion(f.transition),m=p.duration,h=t.resolveEasing(p.easing),g=o.querySelector(`.prism-area-fill`);g||(g=e.createSvgElement(`path`,{class:`prism-area-fill`}),o.appendChild(g)),applyAreaFill(o,g,f);let _=null,v=[],y=[],b=a.hasStyledRuns(f.marks),x=f.marks??[];if(f.showLine){if(b){v=a.computeStyleRuns(x,u.length);let t=[...o.querySelectorAll(`.prism-area-line`)];for(let e of t.slice(v.length))e.remove();y=v.map((n,r)=>{let i=t[r];if(i)return i;let a=e.createSvgElement(`path`,{class:`prism-area-line`,fill:`none`});return o.appendChild(a),a});for(let[t,n]of v.entries())e.setAttributes(y[t],{opacity:n.opacity,stroke:f.color,"stroke-dasharray":n.dash,"stroke-width":2});_=null}else{let t=[...o.querySelectorAll(`.prism-area-line`)];for(let e of t.slice(1))e.remove();_=t[0]??null,_||(_=e.createSvgElement(`path`,{class:`prism-area-line`,fill:`none`}),o.appendChild(_)),e.setAttributes(_,{opacity:void 0,stroke:f.color,"stroke-dasharray":void 0,"stroke-width":2})}}else for(let e of o.querySelectorAll(`.prism-area-line`))e.remove();let drawLine=t=>{if(f.showLine){if(b)for(let[n,r]of v.entries())e.setAttributes(y[n],{d:buildLinePath(t.slice(r.start,r.end+1),f.curve)});else _&&e.setAttributes(_,{d:buildLinePath(t,f.curve)})}};if(m===0){let t=u.map(e=>({x:e.x,y:d}));e.setAttributes(g,{d:s.areaPath(u,t,f.curve)}),drawLine(u),l.set(o,u);return}c.get(o)?.();let S=l.has(o)?l.get(o)??u:u.map(e=>({x:e.x,y:d})),C=u.map((e,t)=>S[t]??S[S.length-1]??u[t]),paintFrame=t=>{let n=u.map((e,n)=>({x:r.tweenNumber(C[n].x,e.x,t),y:r.tweenNumber(C[n].y,e.y,t)})),i=n.map(e=>({x:e.x,y:d}));l.set(o,n),e.setAttributes(g,{d:s.areaPath(n,i,f.curve)}),drawLine(n)};paintFrame(0),c.set(o,i.startTween({count:1,duration:m,easing:h,onComplete:()=>{c.delete(o),l.set(o,u)},onFrame:e=>paintFrame(e(0)),signal:f.disposalSignal}))}function computeAreaPoints(e,t,n){return e.some(e=>e.key==null)||e.some(e=>typeof e.key==`string`),e.map(e=>({x:t.map(e.key),y:n.map(e.value)}))}exports.computeAreaPoints=computeAreaPoints,exports.renderArea=renderArea;
1
+ require("../../_dev.cjs");const e=require("../../animation/easing.cjs"),t=require("../../animation/motion.cjs"),n=require("../../animation/transition.cjs"),r=require("../../animation/tween.cjs"),i=require("../../core/datum-style.cjs"),a=require("../../core/ids.cjs"),o=require("../../svg/element.cjs"),s=require("../../svg/path.cjs");var c=new WeakMap,l=new WeakMap;function buildLinePath(e,t){return t===`monotone`?s.monotonePath(e):t===`step`?s.stepPath(e):s.linePath(e)}function applyAreaFill(e,t,n){let r=e.querySelector(`linearGradient`);if(n.fill===`gradient`){if(!r){let t=o.createSvgElement(`defs`);r=o.createSvgElement(`linearGradient`,{id:a.uniqueId(`prism-area-fill`),x1:0,x2:0,y1:0,y2:1}),r.append(o.createSvgElement(`stop`,{class:`prism-area-stop-top`,offset:0}),o.createSvgElement(`stop`,{class:`prism-area-stop-bottom`,offset:1})),t.appendChild(r),e.insertBefore(t,e.firstChild)}for(let e of r.querySelectorAll(`stop`))e.setAttribute(`stop-color`,n.color),e.style.stopColor=n.color;o.setAttributes(t,{fill:`url(#${r.id})`})}else r?.parentElement?.remove(),o.setAttributes(t,{fill:n.color});o.setAttributes(t,{class:`prism-area-fill prism-area-fill--${n.fill}`,stroke:`none`}),t.style.fillOpacity=n.fillOpacity===void 0?``:String(n.fillOpacity)}function renderArea(a,u,d,f){let p=t.resolveMotion(f.transition),m=p.duration,h=e.resolveEasing(p.easing),g=a.querySelector(`.prism-area-fill`);g||(g=o.createSvgElement(`path`,{class:`prism-area-fill`}),a.appendChild(g)),applyAreaFill(a,g,f);let _=null,v=[],y=[],b=i.hasStyledRuns(f.marks),x=f.marks??[];if(f.showLine){if(b){v=i.computeStyleRuns(x,u.length);let e=[...a.querySelectorAll(`.prism-area-line`)];for(let t of e.slice(v.length))t.remove();y=v.map((t,n)=>{let r=e[n];if(r)return r;let i=o.createSvgElement(`path`,{class:`prism-area-line`,fill:`none`});return a.appendChild(i),i});for(let[e,t]of v.entries())o.setAttributes(y[e],{opacity:t.opacity,stroke:f.color,"stroke-dasharray":t.dash,"stroke-width":2});_=null}else{let e=[...a.querySelectorAll(`.prism-area-line`)];for(let t of e.slice(1))t.remove();_=e[0]??null,_||(_=o.createSvgElement(`path`,{class:`prism-area-line`,fill:`none`}),a.appendChild(_)),o.setAttributes(_,{opacity:void 0,stroke:f.color,"stroke-dasharray":void 0,"stroke-width":2})}}else for(let e of a.querySelectorAll(`.prism-area-line`))e.remove();let drawLine=e=>{if(f.showLine){if(b)for(let[t,n]of v.entries())o.setAttributes(y[t],{d:buildLinePath(e.slice(n.start,n.end+1),f.curve)});else _&&o.setAttributes(_,{d:buildLinePath(e,f.curve)})}};if(m===0){let e=u.map(e=>({x:e.x,y:d}));o.setAttributes(g,{d:s.areaPath(u,e,f.curve)}),drawLine(u),l.set(a,u);return}c.get(a)?.();let S=l.has(a)?l.get(a)??u:u.map(e=>({x:e.x,y:d})),C=u.map((e,t)=>S[t]??S[S.length-1]??u[t]),paintFrame=e=>{let t=u.map((t,n)=>({x:r.tweenNumber(C[n].x,t.x,e),y:r.tweenNumber(C[n].y,t.y,e)})),n=t.map(e=>({x:e.x,y:d}));l.set(a,t),o.setAttributes(g,{d:s.areaPath(t,n,f.curve)}),drawLine(t)};paintFrame(0),c.set(a,n.startTween({count:1,duration:m,easing:h,onComplete:()=>{c.delete(a),l.set(a,u)},onFrame:e=>paintFrame(e(0)),signal:f.disposalSignal}))}function computeAreaPoints(e,t,n){return e.some(e=>e.key==null)||e.some(e=>typeof e.key==`string`),e.map(e=>({x:t.map(e.key),y:n.map(e.value)}))}exports.computeAreaPoints=computeAreaPoints,exports.renderArea=renderArea;
2
2
  //# sourceMappingURL=area-renderer.cjs.map