@dpuse/dpuse-tool-d3-visualiser 0.0.45 → 0.0.47

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 (56) hide show
  1. package/dist/array-Cv4-2llb.js +0 -2
  2. package/dist/axis-DjmZ9QYe.js +0 -2
  3. package/dist/{band-C1twWuW2.js → band-BFcwtSdG.js} +2 -4
  4. package/dist/{band-C1twWuW2.js.map → band-BFcwtSdG.js.map} +1 -1
  5. package/dist/{billboardJs-DS82ViEw.js → billboardJs-oaee80Fh.js} +85 -72
  6. package/dist/{billboardJs-DS82ViEw.js.map → billboardJs-oaee80Fh.js.map} +1 -1
  7. package/dist/{chordDiagram-Cz0sVVgD.js → chordDiagram-CTDXv74T.js} +35 -29
  8. package/dist/{chordDiagram-Cz0sVVgD.js.map → chordDiagram-CTDXv74T.js.map} +1 -1
  9. package/dist/{d3BarChart-DIN2KQsU.js → d3BarChart-BQCPo1ub.js} +3 -5
  10. package/dist/{d3BarChart-DIN2KQsU.js.map → d3BarChart-BQCPo1ub.js.map} +1 -1
  11. package/dist/dpuse-tool-d3-visualiser.css +1 -1
  12. package/dist/dpuse-tool-d3-visualiser.es.js +14 -16
  13. package/dist/dpuse-tool-d3-visualiser.es.js.map +1 -1
  14. package/dist/drag-DfL4uwqz.js +0 -2
  15. package/dist/{erdDiagram-Ds1hsQDD.js → erdDiagram-C_Hobpls.js} +8 -8
  16. package/dist/{erdDiagram-Ds1hsQDD.js.map → erdDiagram-C_Hobpls.js.map} +1 -1
  17. package/dist/hierarchy-CDFAetye.js +0 -2
  18. package/dist/{linear-BnhqTvdX.js → linear-C-jur735.js} +4 -5
  19. package/dist/{linear-BnhqTvdX.js.map → linear-C-jur735.js.map} +1 -1
  20. package/dist/{link-D-9z7kEr.js → link-DRDgTeij.js} +1 -3
  21. package/dist/{link-D-9z7kEr.js.map → link-DRDgTeij.js.map} +1 -1
  22. package/dist/math-C5EhTgJw.js +0 -2
  23. package/dist/max-CPVNm4tn.js +0 -2
  24. package/dist/{networkDiagram-yraPhqxN.js → networkDiagram-CcQxxJMB.js} +10 -10
  25. package/dist/{networkDiagram-yraPhqxN.js.map → networkDiagram-CcQxxJMB.js.map} +1 -1
  26. package/dist/nodrag-Dq2tlBbe.js +0 -2
  27. package/dist/{observablePlot-C7764aFq.js → observablePlot-BE2I-5e2.js} +46 -38
  28. package/dist/{observablePlot-C7764aFq.js.map → observablePlot-BE2I-5e2.js.map} +1 -1
  29. package/dist/{ordinal-uZdoVxAx.js → ordinal-CDNZetSD.js} +1 -3
  30. package/dist/{ordinal-uZdoVxAx.js.map → ordinal-CDNZetSD.js.map} +1 -1
  31. package/dist/palette-BuTjISrV.js +0 -2
  32. package/dist/{path-6kmCrmEz.js → path-BoJ8LMXE.js} +6 -6
  33. package/dist/{path-6kmCrmEz.js.map → path-BoJ8LMXE.js.map} +1 -1
  34. package/dist/{point-6cHftmvM.js → point-GXxVI808.js} +1 -3
  35. package/dist/{point-6cHftmvM.js.map → point-GXxVI808.js.map} +1 -1
  36. package/dist/{pow-BFDPqS3s.js → pow-CxQV96gC.js} +1 -3
  37. package/dist/{pow-BFDPqS3s.js.map → pow-CxQV96gC.js.map} +1 -1
  38. package/dist/{sankeyDiagram-BT2RCRpi.js → sankeyDiagram-DOF6arSJ.js} +1 -3
  39. package/dist/{sankeyDiagram-BT2RCRpi.js.map → sankeyDiagram-DOF6arSJ.js.map} +1 -1
  40. package/dist/select-BIuoFcZG.js +0 -2
  41. package/dist/{src-Xlr4CcSw.js → src-Dl4_vNYa.js} +5 -5
  42. package/dist/{src-Xlr4CcSw.js.map → src-Dl4_vNYa.js.map} +1 -1
  43. package/dist/src-WDualLFV.js +0 -2
  44. package/dist/src-yL3ZdoR1.js +0 -2
  45. package/dist/{step-DgCcZZ3W.js → step-C2rRFtYO.js} +4 -4
  46. package/dist/{step-DgCcZZ3W.js.map → step-C2rRFtYO.js.map} +1 -1
  47. package/dist/string-CnCj7THX.js +0 -2
  48. package/dist/sum-CNP0Xric.js +0 -2
  49. package/dist/{tanStackCharts-DCMs4Y_D.js → tanStackCharts-CqP0qIAr.js} +303 -287
  50. package/dist/tanStackCharts-CqP0qIAr.js.map +1 -0
  51. package/dist/{treeDiagram-DsHUD8ou.js → treeDiagram-FUVkkblR.js} +1 -3
  52. package/dist/{treeDiagram-DsHUD8ou.js.map → treeDiagram-FUVkkblR.js.map} +1 -1
  53. package/dist/types/src/index.d.ts +1 -2
  54. package/dist/types/src/tanStackCharts.d.ts +1 -2
  55. package/package.json +10 -11
  56. package/dist/tanStackCharts-DCMs4Y_D.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import { t as e } from "./linear-BnhqTvdX.js";
2
- import { t } from "./band-C1twWuW2.js";
1
+ import { t as e } from "./linear-C-jur735.js";
2
+ import { t } from "./band-BFcwtSdG.js";
3
3
  import { t as n } from "./select-BIuoFcZG.js";
4
- import { n as r } from "./ordinal-uZdoVxAx.js";
4
+ import { n as r } from "./ordinal-CDNZetSD.js";
5
5
  import { n as i, t as a } from "./axis-DjmZ9QYe.js";
6
6
  //#region src/d3BarChart.ts
7
7
  var o = 640, s = 400, c = {
@@ -46,5 +46,3 @@ function d(e) {
46
46
  }
47
47
  //#endregion
48
48
  export { u as renderD3BarChart };
49
-
50
- //# sourceMappingURL=d3BarChart-DIN2KQsU.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"d3BarChart-DIN2KQsU.js","names":[],"sources":["../src/d3BarChart.ts"],"sourcesContent":["// ── External Dependencies & Registrations\nimport { select } from 'd3-selection';\nimport { axisBottom, axisLeft } from 'd3-axis';\nimport { scaleBand, scaleLinear, scaleOrdinal } from 'd3-scale';\n\n// ── Local\nimport type { BarChartData } from '@/billboardJs';\n\nexport type { BarChartData, BarChartSeries } from '@/billboardJs';\n\n// ── Types ────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\nexport interface D3BarChartHandle {\n resize: () => void;\n svg: SVGSVGElement;\n}\n\ninterface D3BarChartRow {\n category: string;\n seriesName: string;\n value: number;\n}\n\n// ── Constants ────────────────────────────────────────────────────────────────────────────────────────────────────────\n\nconst DEFAULT_WIDTH = 640;\nconst DEFAULT_HEIGHT = 400;\nconst MARGIN = { bottom: 24, left: 40, right: 16, top: 16 };\nconst SERIES_COLORS = ['#6c8ebf', '#d79b00', '#82b366', '#9673a6', '#b85450'];\n\n// ── Actions ──────────────────────────────────────────────────────────────────────────────────────────────────────────\n\n// A grouped bar chart built from raw D3 primitives (d3-scale, d3-axis, d3-selection) - no chart wrapper library.\nexport function renderD3BarChart(data: BarChartData, renderTo: HTMLElement): D3BarChartHandle {\n function draw(): SVGSVGElement {\n select(renderTo).selectAll('svg').remove();\n\n const width = renderTo.clientWidth || DEFAULT_WIDTH;\n const height = renderTo.clientHeight || DEFAULT_HEIGHT;\n const innerWidth = width - MARGIN.left - MARGIN.right;\n const innerHeight = height - MARGIN.top - MARGIN.bottom;\n\n const categoryScale = scaleBand().domain(data.categories).range([0, innerWidth]).padding(0.2);\n const seriesScale = scaleBand()\n .domain(data.series.map((series) => series.name))\n .range([0, categoryScale.bandwidth()])\n .padding(0.1);\n const maxValue = Math.max(0, ...data.series.flatMap((series) => series.values));\n const valueScale = scaleLinear().domain([0, maxValue]).nice().range([innerHeight, 0]);\n const colorScale = scaleOrdinal<string, string>()\n .domain(data.series.map((series) => series.name))\n .range(SERIES_COLORS);\n\n const svgSelection = select(renderTo)\n .append('svg')\n .attr('viewBox', `0 0 ${String(width)} ${String(height)}`)\n .attr('width', width)\n .attr('height', height);\n\n const canvas = svgSelection.append('g').attr('transform', `translate(${String(MARGIN.left)}, ${String(MARGIN.top)})`);\n\n canvas\n .append('g')\n .attr('transform', `translate(0, ${String(innerHeight)})`)\n .call(axisBottom(categoryScale));\n canvas.append('g').call(axisLeft(valueScale));\n\n canvas\n .append('g')\n .selectAll('rect')\n .data(toBarRows(data))\n .join('rect')\n .attr('x', (row) => (categoryScale(row.category) ?? 0) + (seriesScale(row.seriesName) ?? 0))\n .attr('y', (row) => valueScale(row.value))\n .attr('width', seriesScale.bandwidth())\n .attr('height', (row) => innerHeight - valueScale(row.value))\n .attr('fill', (row) => colorScale(row.seriesName));\n\n const svgNode = svgSelection.node();\n if (svgNode == null) throw new Error('Failed to create D3 bar chart SVG element.');\n return svgNode;\n }\n\n let svg = draw();\n\n return {\n resize: () => {\n svg = draw();\n },\n get svg() {\n return svg;\n }\n };\n}\n\n// ── Helpers ──────────────────────────────────────────────────────────────────────────────────────────────────────────\n\nfunction toBarRows(data: BarChartData): D3BarChartRow[] {\n const rows: D3BarChartRow[] = [];\n for (const series of data.series) {\n for (const [index, category] of data.categories.entries()) {\n rows.push({ category, seriesName: series.name, value: series.values[index] ?? 0 });\n }\n }\n return rows;\n}\n"],"mappings":";;;;;;AAyBA,IAAM,IAAgB,KAChB,IAAiB,KACjB,IAAS;CAAE,QAAQ;CAAI,MAAM;CAAI,OAAO;CAAI,KAAK;AAAG,GACpD,IAAgB;CAAC;CAAW;CAAW;CAAW;CAAW;AAAS;AAK5E,SAAgB,EAAiB,GAAoB,GAAyC;CAC1F,SAAS,IAAsB;EAC3B,EAAO,CAAQ,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,OAAO;EAEzC,IAAM,IAAQ,EAAS,eAAe,GAChC,IAAS,EAAS,gBAAgB,GAClC,IAAa,IAAQ,EAAO,OAAO,EAAO,OAC1C,IAAc,IAAS,EAAO,MAAM,EAAO,QAE3C,IAAgB,EAAU,CAAC,CAAC,OAAO,EAAK,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAU,CAAC,CAAC,CAAC,QAAQ,EAAG,GACtF,IAAc,EAAU,CAAC,CAC1B,OAAO,EAAK,OAAO,KAAK,MAAW,EAAO,IAAI,CAAC,CAAC,CAChD,MAAM,CAAC,GAAG,EAAc,UAAU,CAAC,CAAC,CAAC,CACrC,QAAQ,EAAG,GACV,IAAW,KAAK,IAAI,GAAG,GAAG,EAAK,OAAO,SAAS,MAAW,EAAO,MAAM,CAAC,GACxE,IAAa,EAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAa,CAAC,CAAC,GAC9E,IAAa,EAA6B,CAAC,CAC5C,OAAO,EAAK,OAAO,KAAK,MAAW,EAAO,IAAI,CAAC,CAAC,CAChD,MAAM,CAAa,GAElB,IAAe,EAAO,CAAQ,CAAC,CAChC,OAAO,KAAK,CAAC,CACb,KAAK,WAAW,OAAO,OAAO,CAAK,EAAE,GAAG,OAAO,CAAM,GAAG,CAAC,CACzD,KAAK,SAAS,CAAK,CAAC,CACpB,KAAK,UAAU,CAAM,GAEpB,IAAS,EAAa,OAAO,GAAG,CAAC,CAAC,KAAK,aAAa,aAAa,OAAO,EAAO,IAAI,EAAE,IAAI,OAAO,EAAO,GAAG,EAAE,EAAE;EAQpH,AANA,EACK,OAAO,GAAG,CAAC,CACX,KAAK,aAAa,gBAAgB,OAAO,CAAW,EAAE,EAAE,CAAC,CACzD,KAAK,EAAW,CAAa,CAAC,GACnC,EAAO,OAAO,GAAG,CAAC,CAAC,KAAK,EAAS,CAAU,CAAC,GAE5C,EACK,OAAO,GAAG,CAAC,CACX,UAAU,MAAM,CAAC,CACjB,KAAK,EAAU,CAAI,CAAC,CAAC,CACrB,KAAK,MAAM,CAAC,CACZ,KAAK,MAAM,OAAS,EAAc,EAAI,QAAQ,KAAK,MAAM,EAAY,EAAI,UAAU,KAAK,EAAE,CAAC,CAC3F,KAAK,MAAM,MAAQ,EAAW,EAAI,KAAK,CAAC,CAAC,CACzC,KAAK,SAAS,EAAY,UAAU,CAAC,CAAC,CACtC,KAAK,WAAW,MAAQ,IAAc,EAAW,EAAI,KAAK,CAAC,CAAC,CAC5D,KAAK,SAAS,MAAQ,EAAW,EAAI,UAAU,CAAC;EAErD,IAAM,IAAU,EAAa,KAAK;EAClC,IAAI,KAAW,MAAM,MAAU,MAAM,4CAA4C;EACjF,OAAO;CACX;CAEA,IAAI,IAAM,EAAK;CAEf,OAAO;EACH,cAAc;GACV,IAAM,EAAK;EACf;EACA,IAAI,MAAM;GACN,OAAO;EACX;CACJ;AACJ;AAIA,SAAS,EAAU,GAAqC;CACpD,IAAM,IAAwB,CAAC;CAC/B,KAAK,IAAM,KAAU,EAAK,QACtB,KAAK,IAAM,CAAC,GAAO,MAAa,EAAK,WAAW,QAAQ,GACpD,EAAK,KAAK;EAAE;EAAU,YAAY,EAAO;EAAM,OAAO,EAAO,OAAO,MAAU;CAAE,CAAC;CAGzF,OAAO;AACX"}
1
+ {"version":3,"file":"d3BarChart-BQCPo1ub.js","names":[],"sources":["../src/d3BarChart.ts"],"sourcesContent":["// ── External Dependencies & Registrations\nimport { select } from 'd3-selection';\nimport { axisBottom, axisLeft } from 'd3-axis';\nimport { scaleBand, scaleLinear, scaleOrdinal } from 'd3-scale';\n\n// ── Local\nimport type { BarChartData } from '@/billboardJs';\n\nexport type { BarChartData, BarChartSeries } from '@/billboardJs';\n\n// ── Types ────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\nexport interface D3BarChartHandle {\n resize: () => void;\n svg: SVGSVGElement;\n}\n\ninterface D3BarChartRow {\n category: string;\n seriesName: string;\n value: number;\n}\n\n// ── Constants ────────────────────────────────────────────────────────────────────────────────────────────────────────\n\nconst DEFAULT_WIDTH = 640;\nconst DEFAULT_HEIGHT = 400;\nconst MARGIN = { bottom: 24, left: 40, right: 16, top: 16 };\nconst SERIES_COLORS = ['#6c8ebf', '#d79b00', '#82b366', '#9673a6', '#b85450'];\n\n// ── Actions ──────────────────────────────────────────────────────────────────────────────────────────────────────────\n\n// A grouped bar chart built from raw D3 primitives (d3-scale, d3-axis, d3-selection) - no chart wrapper library.\nexport function renderD3BarChart(data: BarChartData, renderTo: HTMLElement): D3BarChartHandle {\n function draw(): SVGSVGElement {\n select(renderTo).selectAll('svg').remove();\n\n const width = renderTo.clientWidth || DEFAULT_WIDTH;\n const height = renderTo.clientHeight || DEFAULT_HEIGHT;\n const innerWidth = width - MARGIN.left - MARGIN.right;\n const innerHeight = height - MARGIN.top - MARGIN.bottom;\n\n const categoryScale = scaleBand().domain(data.categories).range([0, innerWidth]).padding(0.2);\n const seriesScale = scaleBand()\n .domain(data.series.map((series) => series.name))\n .range([0, categoryScale.bandwidth()])\n .padding(0.1);\n const maxValue = Math.max(0, ...data.series.flatMap((series) => series.values));\n const valueScale = scaleLinear().domain([0, maxValue]).nice().range([innerHeight, 0]);\n const colorScale = scaleOrdinal<string, string>()\n .domain(data.series.map((series) => series.name))\n .range(SERIES_COLORS);\n\n const svgSelection = select(renderTo)\n .append('svg')\n .attr('viewBox', `0 0 ${String(width)} ${String(height)}`)\n .attr('width', width)\n .attr('height', height);\n\n const canvas = svgSelection.append('g').attr('transform', `translate(${String(MARGIN.left)}, ${String(MARGIN.top)})`);\n\n canvas\n .append('g')\n .attr('transform', `translate(0, ${String(innerHeight)})`)\n .call(axisBottom(categoryScale));\n canvas.append('g').call(axisLeft(valueScale));\n\n canvas\n .append('g')\n .selectAll('rect')\n .data(toBarRows(data))\n .join('rect')\n .attr('x', (row) => (categoryScale(row.category) ?? 0) + (seriesScale(row.seriesName) ?? 0))\n .attr('y', (row) => valueScale(row.value))\n .attr('width', seriesScale.bandwidth())\n .attr('height', (row) => innerHeight - valueScale(row.value))\n .attr('fill', (row) => colorScale(row.seriesName));\n\n const svgNode = svgSelection.node();\n if (svgNode == null) throw new Error('Failed to create D3 bar chart SVG element.');\n return svgNode;\n }\n\n let svg = draw();\n\n return {\n resize: () => {\n svg = draw();\n },\n get svg() {\n return svg;\n }\n };\n}\n\n// ── Helpers ──────────────────────────────────────────────────────────────────────────────────────────────────────────\n\nfunction toBarRows(data: BarChartData): D3BarChartRow[] {\n const rows: D3BarChartRow[] = [];\n for (const series of data.series) {\n for (const [index, category] of data.categories.entries()) {\n rows.push({ category, seriesName: series.name, value: series.values[index] ?? 0 });\n }\n }\n return rows;\n}\n"],"mappings":";;;;;;AAyBA,IAAM,IAAgB,KAChB,IAAiB,KACjB,IAAS;CAAE,QAAQ;CAAI,MAAM;CAAI,OAAO;CAAI,KAAK;AAAG,GACpD,IAAgB;CAAC;CAAW;CAAW;CAAW;CAAW;AAAS;AAK5E,SAAgB,EAAiB,GAAoB,GAAyC;CAC1F,SAAS,IAAsB;EAC3B,EAAO,CAAQ,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,OAAO;EAEzC,IAAM,IAAQ,EAAS,eAAe,GAChC,IAAS,EAAS,gBAAgB,GAClC,IAAa,IAAQ,EAAO,OAAO,EAAO,OAC1C,IAAc,IAAS,EAAO,MAAM,EAAO,QAE3C,IAAgB,EAAU,CAAC,CAAC,OAAO,EAAK,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAU,CAAC,CAAC,CAAC,QAAQ,EAAG,GACtF,IAAc,EAAU,CAAC,CAC1B,OAAO,EAAK,OAAO,KAAK,MAAW,EAAO,IAAI,CAAC,CAAC,CAChD,MAAM,CAAC,GAAG,EAAc,UAAU,CAAC,CAAC,CAAC,CACrC,QAAQ,EAAG,GACV,IAAW,KAAK,IAAI,GAAG,GAAG,EAAK,OAAO,SAAS,MAAW,EAAO,MAAM,CAAC,GACxE,IAAa,EAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAa,CAAC,CAAC,GAC9E,IAAa,EAA6B,CAAC,CAC5C,OAAO,EAAK,OAAO,KAAK,MAAW,EAAO,IAAI,CAAC,CAAC,CAChD,MAAM,CAAa,GAElB,IAAe,EAAO,CAAQ,CAAC,CAChC,OAAO,KAAK,CAAC,CACb,KAAK,WAAW,OAAO,OAAO,CAAK,EAAE,GAAG,OAAO,CAAM,GAAG,CAAC,CACzD,KAAK,SAAS,CAAK,CAAC,CACpB,KAAK,UAAU,CAAM,GAEpB,IAAS,EAAa,OAAO,GAAG,CAAC,CAAC,KAAK,aAAa,aAAa,OAAO,EAAO,IAAI,EAAE,IAAI,OAAO,EAAO,GAAG,EAAE,EAAE;EAQpH,AANA,EACK,OAAO,GAAG,CAAC,CACX,KAAK,aAAa,gBAAgB,OAAO,CAAW,EAAE,EAAE,CAAC,CACzD,KAAK,EAAW,CAAa,CAAC,GACnC,EAAO,OAAO,GAAG,CAAC,CAAC,KAAK,EAAS,CAAU,CAAC,GAE5C,EACK,OAAO,GAAG,CAAC,CACX,UAAU,MAAM,CAAC,CACjB,KAAK,EAAU,CAAI,CAAC,CAAC,CACrB,KAAK,MAAM,CAAC,CACZ,KAAK,MAAM,OAAS,EAAc,EAAI,QAAQ,KAAK,MAAM,EAAY,EAAI,UAAU,KAAK,EAAE,CAAC,CAC3F,KAAK,MAAM,MAAQ,EAAW,EAAI,KAAK,CAAC,CAAC,CACzC,KAAK,SAAS,EAAY,UAAU,CAAC,CAAC,CACtC,KAAK,WAAW,MAAQ,IAAc,EAAW,EAAI,KAAK,CAAC,CAAC,CAC5D,KAAK,SAAS,MAAQ,EAAW,EAAI,UAAU,CAAC;EAErD,IAAM,IAAU,EAAa,KAAK;EAClC,IAAI,KAAW,MAAM,MAAU,MAAM,4CAA4C;EACjF,OAAO;CACX;CAEA,IAAI,IAAM,EAAK;CAEf,OAAO;EACH,cAAc;GACV,IAAM,EAAK;EACf;EACA,IAAI,MAAM;GACN,OAAO;EACX;CACJ;AACJ;AAIA,SAAS,EAAU,GAAqC;CACpD,IAAM,IAAwB,CAAC;CAC/B,KAAK,IAAM,KAAU,EAAK,QACtB,KAAK,IAAM,CAAC,GAAO,MAAa,EAAK,WAAW,QAAQ,GACpD,EAAK,KAAK;EAAE;EAAU,YAAY,EAAO;EAAM,OAAO,EAAO,OAAO,MAAU;CAAE,CAAC;CAGzF,OAAO;AACX"}
@@ -7,5 +7,5 @@
7
7
  *
8
8
  * @version 4.0.3
9
9
  */
10
- .bb svg{-webkit-tap-highlight-color:#0000;font:10px sans-serif}.bb path,.bb line{fill:none;stroke:#000}.bb text,.bb .bb-button{user-select:none}.bb-legend-item-tile,.bb-xgrid-focus,.bb-ygrid-focus,.bb-ygrid{shape-rendering:crispedges}.bb-chart-arcs .bb-needle,.bb-chart-arc .bb-gauge-value{fill:#000}.bb-chart-arc path{stroke:#fff}.bb-chart-arc rect{stroke:#fff;stroke-width:1px}.bb-chart-arc text{fill:#fff;font-size:13px}.bb-chart-arc .bb-arc-label-line{fill:none;stroke-width:1px;pointer-events:none;stroke:#7f7f7f}.bb-chart-arc>text.bb-arc-label-line-text{fill:#000}.bb-chart-funnels path{stroke-width:0}.bb-chart-funnels+.bb-chart-texts text{fill:#fff;font-size:13px}.bb-axis{shape-rendering:crispedges}.bb-axis .bb-axis-x-tooltip,.bb-axis .bb-axis-y-tooltip,.bb-axis .bb-axis-y2-tooltip{fill:#fff;white-space:nowrap;font-size:1em}.bb-grid{pointer-events:none}.bb-grid line{stroke:#aaa}.bb-grid text{fill:#aaa}.bb-xgrid,.bb-ygrid{stroke-dasharray:3 3}.bb-text.bb-empty{fill:gray;font-size:2em}.bb-line{stroke-width:1px}.bb-circle._expanded_{stroke-width:1px;stroke:#fff}.bb-selected-circle{fill:#fff;stroke-width:2px}.bb-bar{stroke-width:0}.bb-bar._expanded_{fill-opacity:.75}.bb-candlestick{stroke-width:1px}.bb-candlestick._expanded_{fill-opacity:.75}.bb-target.bb-focused,.bb-circles.bb-focused{opacity:1}.bb-target.bb-focused path.bb-line,.bb-target.bb-focused path.bb-step,.bb-circles.bb-focused path.bb-line,.bb-circles.bb-focused path.bb-step{stroke-width:2px}.bb-target.bb-defocused,.bb-circles.bb-defocused{opacity:.3!important}.bb-target.bb-defocused .text-overlapping,.bb-circles.bb-defocused .text-overlapping{opacity:.05!important}.bb-region{fill:#4682b4}.bb-region rect,.bb-zoom-brush,.bb-brush .extent{fill-opacity:.1}.bb-legend-item{user-select:none;font-size:12px}div.bb-canvas-legend{z-index:1;box-sizing:border-box;pointer-events:auto;color:#000;font-family:sans-serif;font-size:12px;display:block;position:absolute;overflow:visible}div.bb-canvas-legend.bb-canvas-legend-bottom{bottom:6px;left:0;right:0}div.bb-canvas-legend.bb-canvas-legend-right{overflow:visible}button.bb-legend-item{box-sizing:border-box;color:inherit;font-family:inherit;font-size:inherit;text-align:left;background:0 0;border:0;margin:0;padding:0;line-height:normal;display:block;position:absolute}button.bb-legend-item.bb-legend-item-interactive{cursor:pointer}.bb-canvas-legend .bb-legend-item-title{white-space:nowrap;pointer-events:none;position:absolute}.bb-canvas-legend .bb-legend-item-tile{box-sizing:border-box;width:10px;height:10px;display:block;position:absolute}.bb-canvas-legend .bb-legend-item-tile.bb-legend-item-tile-circle{border-radius:50%}.bb-legend-item-hidden{opacity:.15}.bb-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1px}.bb-title{font:14px sans-serif}.bb-chart-treemaps rect{stroke:#fff;stroke-width:1px}.bb-tooltip-container{z-index:10;user-select:none;transform:translateZ(0)}.bb-tooltip{border-collapse:collapse;border-spacing:0;empty-cells:show;opacity:.9;white-space:nowrap;background-color:#fff;box-shadow:7px 7px 12px -9px #777}.bb-tooltip tr{border:1px solid #ccc}.bb-tooltip th{text-align:left;color:#fff;background-color:#aaa;padding:2px 5px;font-size:14px}.bb-tooltip td{background-color:#fff;border-left:1px dotted #999;padding:3px 6px;font-size:13px}.bb-tooltip td>span,.bb-tooltip td>svg{width:10px;height:10px;margin-right:6px;display:inline-block}.bb-tooltip.value{text-align:right}.bb-area{stroke-width:0;opacity:.2}.bb-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}text.bb-chart-arcs-gauge-title{dominant-baseline:middle;font-size:2.7em}.bb-chart-arcs .bb-chart-arcs-background{fill:#e0e0e0;stroke:#fff}.bb-chart-arcs .bb-chart-arcs-gauge-unit{fill:#000;font-size:16px}.bb-chart-arcs .bb-chart-arcs-gauge-max,.bb-chart-arcs .bb-chart-arcs-gauge-min{fill:#777}.bb-chart-arcs .bb-levels circle{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-arcs .bb-levels text{fill:#848282}.bb-chart-radars .bb-levels polygon{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-levels text{fill:#848282}.bb-chart-radars .bb-axis line{stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-axis text{cursor:default;font-size:1.15em}.bb-chart-radars .bb-shapes polygon{fill-opacity:.2;stroke-width:1px}.bb-button{position:absolute;top:10px;right:10px}.bb-button .bb-zoom-reset{cursor:pointer;background-color:#fff;border:1px solid #ccc;border-radius:5px;padding:5px;font-size:11px}
10
+ .bb svg{-webkit-tap-highlight-color:#0000;font:10px sans-serif}.bb path,.bb line{fill:none;stroke:#000}.bb text,.bb .bb-button{-webkit-user-select:none;-moz-user-select:none;user-select:none}.bb-legend-item-tile,.bb-xgrid-focus,.bb-ygrid-focus,.bb-ygrid{shape-rendering:crispedges}.bb-chart-arcs .bb-needle,.bb-chart-arc .bb-gauge-value{fill:#000}.bb-chart-arc path{stroke:#fff}.bb-chart-arc rect{stroke:#fff;stroke-width:1px}.bb-chart-arc text{fill:#fff;font-size:13px}.bb-chart-arc .bb-arc-label-line{fill:none;stroke-width:1px;pointer-events:none;stroke:#7f7f7f}.bb-chart-arc>text.bb-arc-label-line-text{fill:#000}.bb-chart-funnels path{stroke-width:0}.bb-chart-funnels+.bb-chart-texts text{fill:#fff;font-size:13px}.bb-axis{shape-rendering:crispedges}.bb-axis .bb-axis-x-tooltip,.bb-axis .bb-axis-y-tooltip,.bb-axis .bb-axis-y2-tooltip{fill:#fff;white-space:nowrap;font-size:1em}.bb-grid{pointer-events:none}.bb-grid line{stroke:#aaa}.bb-grid text{fill:#aaa}.bb-xgrid,.bb-ygrid{stroke-dasharray:3 3}.bb-text.bb-empty{fill:gray;font-size:2em}.bb-line{stroke-width:1px}.bb-circle._expanded_{stroke-width:1px;stroke:#fff}.bb-selected-circle{fill:#fff;stroke-width:2px}.bb-bar{stroke-width:0}.bb-bar._expanded_{fill-opacity:.75}.bb-candlestick{stroke-width:1px}.bb-candlestick._expanded_{fill-opacity:.75}.bb-target.bb-focused,.bb-circles.bb-focused{opacity:1}.bb-target.bb-focused path.bb-line,.bb-target.bb-focused path.bb-step,.bb-circles.bb-focused path.bb-line,.bb-circles.bb-focused path.bb-step{stroke-width:2px}.bb-target.bb-defocused,.bb-circles.bb-defocused{opacity:.3!important}.bb-target.bb-defocused .text-overlapping,.bb-circles.bb-defocused .text-overlapping{opacity:.05!important}.bb-region{fill:#4682b4}.bb-region rect,.bb-zoom-brush,.bb-brush .extent{fill-opacity:.1}.bb-legend-item{user-select:none;font-size:12px}div.bb-canvas-legend{z-index:1;box-sizing:border-box;pointer-events:auto;color:#000;font-family:sans-serif;font-size:12px;display:block;position:absolute;overflow:visible}div.bb-canvas-legend.bb-canvas-legend-bottom{bottom:6px;left:0;right:0}div.bb-canvas-legend.bb-canvas-legend-right{overflow:visible}button.bb-legend-item{box-sizing:border-box;color:inherit;font-family:inherit;font-size:inherit;text-align:left;background:0 0;border:0;margin:0;padding:0;line-height:normal;display:block;position:absolute}button.bb-legend-item.bb-legend-item-interactive{cursor:pointer}.bb-canvas-legend .bb-legend-item-title{white-space:nowrap;pointer-events:none;position:absolute}.bb-canvas-legend .bb-legend-item-tile{box-sizing:border-box;width:10px;height:10px;display:block;position:absolute}.bb-canvas-legend .bb-legend-item-tile.bb-legend-item-tile-circle{border-radius:50%}.bb-legend-item-hidden{opacity:.15}.bb-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1px}.bb-title{font:14px sans-serif}.bb-chart-treemaps rect{stroke:#fff;stroke-width:1px}.bb-tooltip-container{z-index:10;user-select:none;transform:translateZ(0)}.bb-tooltip{border-collapse:collapse;border-spacing:0;empty-cells:show;opacity:.9;white-space:nowrap;background-color:#fff;box-shadow:7px 7px 12px -9px #777}.bb-tooltip tr{border:1px solid #ccc}.bb-tooltip th{text-align:left;color:#fff;background-color:#aaa;padding:2px 5px;font-size:14px}.bb-tooltip td{background-color:#fff;border-left:1px dotted #999;padding:3px 6px;font-size:13px}.bb-tooltip td>span,.bb-tooltip td>svg{width:10px;height:10px;margin-right:6px;display:inline-block}.bb-tooltip.value{text-align:right}.bb-area{stroke-width:0;opacity:.2}.bb-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}text.bb-chart-arcs-gauge-title{dominant-baseline:middle;font-size:2.7em}.bb-chart-arcs .bb-chart-arcs-background{fill:#e0e0e0;stroke:#fff}.bb-chart-arcs .bb-chart-arcs-gauge-unit{fill:#000;font-size:16px}.bb-chart-arcs .bb-chart-arcs-gauge-max,.bb-chart-arcs .bb-chart-arcs-gauge-min{fill:#777}.bb-chart-arcs .bb-levels circle{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-arcs .bb-levels text{fill:#848282}.bb-chart-radars .bb-levels polygon{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-levels text{fill:#848282}.bb-chart-radars .bb-axis line{stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-axis text{cursor:default;font-size:1.15em}.bb-chart-radars .bb-shapes polygon{fill-opacity:.2;stroke-width:1px}.bb-button{position:absolute;top:10px;right:10px}.bb-button .bb-zoom-reset{cursor:pointer;background-color:#fff;border:1px solid #ccc;border-radius:5px;padding:5px;font-size:11px}
11
11
  /*$vite$:1*/
@@ -1,7 +1,7 @@
1
1
  //#region src/index.ts
2
2
  var e = class {
3
3
  async renderBillboardJS(e, t, n) {
4
- let { renderBillboardJS: r } = await import("./billboardJs-DS82ViEw.js"), i = r(e, t);
4
+ let { renderBillboardJS: r } = await import("./billboardJs-oaee80Fh.js"), i = r(e, t);
5
5
  return n?.(), {
6
6
  chart: i.chart,
7
7
  destroy: i.destroy,
@@ -10,7 +10,7 @@ var e = class {
10
10
  };
11
11
  }
12
12
  async renderObservablePlot(e, t, n, r) {
13
- let { renderObservablePlot: i } = await import("./observablePlot-C7764aFq.js"), a = i(e, t, n);
13
+ let { renderObservablePlot: i } = await import("./observablePlot-BE2I-5e2.js"), a = i(e, t, n);
14
14
  return r?.(), {
15
15
  resize: a.resize,
16
16
  get svg() {
@@ -20,7 +20,7 @@ var e = class {
20
20
  };
21
21
  }
22
22
  async renderD3BarChart(e, t, n) {
23
- let { renderD3BarChart: r } = await import("./d3BarChart-DIN2KQsU.js"), i = r(e, t);
23
+ let { renderD3BarChart: r } = await import("./d3BarChart-BQCPo1ub.js"), i = r(e, t);
24
24
  return n?.(), {
25
25
  resize: i.resize,
26
26
  get svg() {
@@ -29,19 +29,19 @@ var e = class {
29
29
  vendorId: "d3"
30
30
  };
31
31
  }
32
- async renderTanStackCharts(e, t, n, r) {
33
- let { renderTanStackCharts: i } = await import("./tanStackCharts-DCMs4Y_D.js"), a = i(e, t, n);
34
- return r?.(), {
35
- destroy: a.destroy,
36
- resize: a.resize,
32
+ async renderTanStackCharts(e, t, n) {
33
+ let { renderTanStackCharts: r } = await import("./tanStackCharts-CqP0qIAr.js"), i = r(e, t);
34
+ return n?.(), {
35
+ destroy: i.destroy,
36
+ resize: i.resize,
37
37
  get svg() {
38
- return a.svg;
38
+ return i.svg;
39
39
  },
40
40
  vendorId: "tanstack-charts"
41
41
  };
42
42
  }
43
43
  async renderChordDiagram(e, t, n, r) {
44
- let { renderChordDiagram: i } = await import("./chordDiagram-Cz0sVVgD.js"), a = i(e, t, n);
44
+ let { renderChordDiagram: i } = await import("./chordDiagram-CTDXv74T.js"), a = i(e, t, n);
45
45
  return r?.(), {
46
46
  resize: a.resize,
47
47
  get svg() {
@@ -51,7 +51,7 @@ var e = class {
51
51
  };
52
52
  }
53
53
  async renderErdDiagram(e, t, n, r) {
54
- let { renderErdDiagram: i } = await import("./erdDiagram-Ds1hsQDD.js"), a = i(e, t, n);
54
+ let { renderErdDiagram: i } = await import("./erdDiagram-C_Hobpls.js"), a = i(e, t, n);
55
55
  return r?.(), {
56
56
  resize: a.resize,
57
57
  get svg() {
@@ -61,7 +61,7 @@ var e = class {
61
61
  };
62
62
  }
63
63
  async renderNetworkDiagram(e, t, n, r) {
64
- let { renderNetworkDiagram: i } = await import("./networkDiagram-yraPhqxN.js"), a = i(e, t, n);
64
+ let { renderNetworkDiagram: i } = await import("./networkDiagram-CcQxxJMB.js"), a = i(e, t, n);
65
65
  return r?.(), {
66
66
  destroy: a.destroy,
67
67
  resize: a.resize,
@@ -73,7 +73,7 @@ var e = class {
73
73
  };
74
74
  }
75
75
  async renderSankeyDiagram(e, t, n, r) {
76
- let { renderSankeyDiagram: i } = await import("./sankeyDiagram-BT2RCRpi.js"), a = i(e, t, n);
76
+ let { renderSankeyDiagram: i } = await import("./sankeyDiagram-DOF6arSJ.js"), a = i(e, t, n);
77
77
  return r?.(), {
78
78
  resize: a.resize,
79
79
  get svg() {
@@ -83,7 +83,7 @@ var e = class {
83
83
  };
84
84
  }
85
85
  async renderTreeDiagram(e, t, n, r) {
86
- let { renderTreeDiagram: i } = await import("./treeDiagram-DsHUD8ou.js"), a = i(e, t, n);
86
+ let { renderTreeDiagram: i } = await import("./treeDiagram-FUVkkblR.js"), a = i(e, t, n);
87
87
  return r?.(), {
88
88
  resize: a.resize,
89
89
  get svg() {
@@ -95,5 +95,3 @@ var e = class {
95
95
  };
96
96
  //#endregion
97
97
  export { e as D3Tool };
98
-
99
- //# sourceMappingURL=dpuse-tool-d3-visualiser.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dpuse-tool-d3-visualiser.es.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["// TODO: See https://d3-graph-gallery.com/index.html.\n\n// ── External Dependencies & Registrations\nimport type { Chart } from 'billboard.js';\n\n// ── DPUse Framework\nimport type { PresentationView } from '@dpuse/dpuse-shared/component/presentation';\nimport type { SanitizeHTML } from '@dpuse/dpuse-shared/component/module/presenter';\n\n// ── Local Framework\nimport type { BarChartData } from '@/billboardJs';\nimport type { ObservablePlotChartTypeId } from '@/observablePlot';\nimport type { ChordDiagramData, ChordDiagramOptions } from '@/chordDiagram';\nimport type { ErdDiagramData, ErdDiagramOptions } from '@/erdDiagram';\nimport type { NetworkDiagramData, NetworkDiagramOptions } from '@/networkDiagram';\nimport type { SankeyDiagramData, SankeyDiagramOptions } from '@/sankeyDiagram';\nimport type { TreeDiagramNode, TreeDiagramOptions } from '@/treeDiagram';\n\n// ── Types ────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\nexport type { BarChartData, BarChartSeries } from '@/billboardJs';\nexport type { ChordDiagramData, ChordDiagramLink, ChordDiagramNode, ChordDiagramOptions } from '@/chordDiagram';\nexport type { ErdDiagramData, ErdDiagramEdge, ErdDiagramNode, ErdDiagramNodeTypeId, ErdDiagramOptions } from '@/erdDiagram';\nexport type { NetworkDiagramData, NetworkDiagramLink, NetworkDiagramNode, NetworkDiagramOptions } from '@/networkDiagram';\nexport type { ObservablePlotChartTypeId } from '@/observablePlot';\nexport type { SankeyDiagramData, SankeyDiagramLink, SankeyDiagramNode, SankeyDiagramOptions } from '@/sankeyDiagram';\nexport type { TreeDiagramNode, TreeDiagramNodeRoleId, TreeDiagramOptions } from '@/treeDiagram';\n\nexport interface D3View extends PresentationView {\n svg: SVGSVGElement;\n}\n\nexport interface D3NetworkView extends D3View {\n destroy: () => void;\n triggerAutoLayout: () => void;\n}\n\nexport interface D3BarChartView extends PresentationView {\n chart: Chart;\n destroy: () => void;\n}\n\nexport interface D3TanStackChartsView extends D3View {\n destroy: () => void;\n}\n\n// ── Constants ────────────────────────────────────────────────────────────────────────────────────────────────────────\n\nconst D3_ID = 'd3';\n\n// ── Tools ────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\nexport class D3Tool {\n // Actions - Render chart (Billboard.js, SVG only - see the `billboard.js/canvas` entry point for canvas rendering, unused here).\n async renderBillboardJS(data: BarChartData, renderTo: HTMLElement, callback?: () => void): Promise<D3BarChartView> {\n const { renderBillboardJS } = await import('@/billboardJs');\n const handle = renderBillboardJS(data, renderTo);\n callback?.();\n return {\n chart: handle.chart,\n destroy: handle.destroy,\n resize: handle.resize,\n vendorId: 'billboard.js'\n };\n }\n\n // Actions - Render Observable Plot visualisation.\n async renderObservablePlot(typeId: ObservablePlotChartTypeId, data: BarChartData, renderTo: HTMLElement, callback?: () => void): Promise<D3View> {\n const { renderObservablePlot } = await import('@/observablePlot');\n const handle = renderObservablePlot(typeId, data, renderTo);\n callback?.();\n return {\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: 'observable-plot'\n };\n }\n\n // Actions - Render bar chart using raw D3 primitives (d3-scale, d3-axis - no chart wrapper library).\n async renderD3BarChart(data: BarChartData, renderTo: HTMLElement, callback?: () => void): Promise<D3View> {\n const { renderD3BarChart } = await import('@/d3BarChart');\n const handle = renderD3BarChart(data, renderTo);\n callback?.();\n return {\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: D3_ID\n };\n }\n\n // Actions - Render bar chart using TanStack Charts (pre-alpha as of 0.6.4 - its vanilla-DOM mountChart() API is undocumented and may change).\n // 'sanitizeHTML' is required because TanStack Charts has no Trusted Types awareness of its own - see the\n // 'HTMLTemplateElement.prototype.innerHTML' patch in tanStackCharts.ts for why.\n async renderTanStackCharts(data: BarChartData, renderTo: HTMLElement, sanitizeHTML: SanitizeHTML, callback?: () => void): Promise<D3TanStackChartsView> {\n const { renderTanStackCharts } = await import('@/tanStackCharts');\n const handle = renderTanStackCharts(data, renderTo, sanitizeHTML);\n callback?.();\n return {\n destroy: handle.destroy,\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: 'tanstack-charts'\n };\n }\n\n // Actions - Render chord diagram (Unovis).\n async renderChordDiagram(data: ChordDiagramData, renderTo: HTMLElement, options?: ChordDiagramOptions, callback?: () => void): Promise<D3View> {\n const { renderChordDiagram } = await import('@/chordDiagram');\n const handle = renderChordDiagram(data, renderTo, options);\n callback?.();\n return {\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: 'unovis'\n };\n }\n\n // Actions - Render ERD diagram.\n async renderErdDiagram(data: ErdDiagramData, renderTo: HTMLElement, options?: ErdDiagramOptions, callback?: () => void): Promise<D3View> {\n const { renderErdDiagram } = await import('@/erdDiagram');\n const handle = renderErdDiagram(data, renderTo, options);\n callback?.();\n return {\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: D3_ID\n };\n }\n\n // Actions - Render network diagram.\n async renderNetworkDiagram(data: NetworkDiagramData, renderTo: HTMLElement, options?: NetworkDiagramOptions, callback?: () => void): Promise<D3NetworkView> {\n const { renderNetworkDiagram } = await import('@/networkDiagram');\n const handle = renderNetworkDiagram(data, renderTo, options);\n callback?.();\n return {\n destroy: handle.destroy,\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n triggerAutoLayout: handle.triggerAutoLayout,\n vendorId: D3_ID\n };\n }\n\n // Actions - Render Sankey diagram.\n async renderSankeyDiagram(data: SankeyDiagramData, renderTo: HTMLElement, options?: SankeyDiagramOptions, callback?: () => void): Promise<D3View> {\n const { renderSankeyDiagram } = await import('@/sankeyDiagram');\n const handle = renderSankeyDiagram(data, renderTo, options);\n callback?.();\n return {\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: D3_ID\n };\n }\n\n // Actions - Render tree diagram.\n async renderTreeDiagram(data: TreeDiagramNode, renderTo: HTMLElement, options?: TreeDiagramOptions, callback?: () => void): Promise<D3View> {\n const { renderTreeDiagram } = await import('@/treeDiagram');\n const handle = renderTreeDiagram(data, renderTo, options);\n callback?.();\n return {\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: D3_ID\n };\n }\n}\n"],"mappings":";AAgDA,IAIa,IAAb,MAAoB;CAEhB,MAAM,kBAAkB,GAAoB,GAAuB,GAAgD;EAC/G,IAAM,EAAE,yBAAsB,MAAM,OAAO,8BACrC,IAAS,EAAkB,GAAM,CAAQ;EAE/C,OADA,IAAW,GACJ;GACH,OAAO,EAAO;GACd,SAAS,EAAO;GAChB,QAAQ,EAAO;GACf,UAAU;EACd;CACJ;CAGA,MAAM,qBAAqB,GAAmC,GAAoB,GAAuB,GAAwC;EAC7I,IAAM,EAAE,4BAAyB,MAAM,OAAO,iCACxC,IAAS,EAAqB,GAAQ,GAAM,CAAQ;EAE1D,OADA,IAAW,GACJ;GACH,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;CAGA,MAAM,iBAAiB,GAAoB,GAAuB,GAAwC;EACtG,IAAM,EAAE,wBAAqB,MAAM,OAAO,6BACpC,IAAS,EAAiB,GAAM,CAAQ;EAE9C,OADA,IAAW,GACJ;GACH,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;CAKA,MAAM,qBAAqB,GAAoB,GAAuB,GAA4B,GAAsD;EACpJ,IAAM,EAAE,4BAAyB,MAAM,OAAO,iCACxC,IAAS,EAAqB,GAAM,GAAU,CAAY;EAEhE,OADA,IAAW,GACJ;GACH,SAAS,EAAO;GAChB,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;CAGA,MAAM,mBAAmB,GAAwB,GAAuB,GAA+B,GAAwC;EAC3I,IAAM,EAAE,0BAAuB,MAAM,OAAO,+BACtC,IAAS,EAAmB,GAAM,GAAU,CAAO;EAEzD,OADA,IAAW,GACJ;GACH,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;CAGA,MAAM,iBAAiB,GAAsB,GAAuB,GAA6B,GAAwC;EACrI,IAAM,EAAE,wBAAqB,MAAM,OAAO,6BACpC,IAAS,EAAiB,GAAM,GAAU,CAAO;EAEvD,OADA,IAAW,GACJ;GACH,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;CAGA,MAAM,qBAAqB,GAA0B,GAAuB,GAAiC,GAA+C;EACxJ,IAAM,EAAE,4BAAyB,MAAM,OAAO,iCACxC,IAAS,EAAqB,GAAM,GAAU,CAAO;EAE3D,OADA,IAAW,GACJ;GACH,SAAS,EAAO;GAChB,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,mBAAmB,EAAO;GAC1B,UAAU;EACd;CACJ;CAGA,MAAM,oBAAoB,GAAyB,GAAuB,GAAgC,GAAwC;EAC9I,IAAM,EAAE,2BAAwB,MAAM,OAAO,gCACvC,IAAS,EAAoB,GAAM,GAAU,CAAO;EAE1D,OADA,IAAW,GACJ;GACH,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;CAGA,MAAM,kBAAkB,GAAuB,GAAuB,GAA8B,GAAwC;EACxI,IAAM,EAAE,yBAAsB,MAAM,OAAO,8BACrC,IAAS,EAAkB,GAAM,GAAU,CAAO;EAExD,OADA,IAAW,GACJ;GACH,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;AACJ"}
1
+ {"version":3,"file":"dpuse-tool-d3-visualiser.es.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["// TODO: See https://d3-graph-gallery.com/index.html.\n\n// ── External Dependencies & Registrations\nimport type { Chart } from 'billboard.js';\n\n// ── DPUse Framework\nimport type { PresentationView } from '@dpuse/dpuse-shared/component/presentation';\n\n// ── Local Framework\nimport type { BarChartData } from '@/billboardJs';\nimport type { ObservablePlotChartTypeId } from '@/observablePlot';\nimport type { ChordDiagramData, ChordDiagramOptions } from '@/chordDiagram';\nimport type { ErdDiagramData, ErdDiagramOptions } from '@/erdDiagram';\nimport type { NetworkDiagramData, NetworkDiagramOptions } from '@/networkDiagram';\nimport type { SankeyDiagramData, SankeyDiagramOptions } from '@/sankeyDiagram';\nimport type { TreeDiagramNode, TreeDiagramOptions } from '@/treeDiagram';\n\n// ── Types ────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\nexport type { BarChartData, BarChartSeries } from '@/billboardJs';\nexport type { ChordDiagramData, ChordDiagramLink, ChordDiagramNode, ChordDiagramOptions } from '@/chordDiagram';\nexport type { ErdDiagramData, ErdDiagramEdge, ErdDiagramNode, ErdDiagramNodeTypeId, ErdDiagramOptions } from '@/erdDiagram';\nexport type { NetworkDiagramData, NetworkDiagramLink, NetworkDiagramNode, NetworkDiagramOptions } from '@/networkDiagram';\nexport type { ObservablePlotChartTypeId } from '@/observablePlot';\nexport type { SankeyDiagramData, SankeyDiagramLink, SankeyDiagramNode, SankeyDiagramOptions } from '@/sankeyDiagram';\nexport type { TreeDiagramNode, TreeDiagramNodeRoleId, TreeDiagramOptions } from '@/treeDiagram';\n\nexport interface D3View extends PresentationView {\n svg: SVGSVGElement;\n}\n\nexport interface D3NetworkView extends D3View {\n destroy: () => void;\n triggerAutoLayout: () => void;\n}\n\nexport interface D3BarChartView extends PresentationView {\n chart: Chart;\n destroy: () => void;\n}\n\nexport interface D3TanStackChartsView extends D3View {\n destroy: () => void;\n}\n\n// ── Constants ────────────────────────────────────────────────────────────────────────────────────────────────────────\n\nconst D3_ID = 'd3';\n\n// ── Tools ────────────────────────────────────────────────────────────────────────────────────────────────────────────\n\nexport class D3Tool {\n // Actions - Render chart (Billboard.js, SVG only - see the `billboard.js/canvas` entry point for canvas rendering, unused here).\n async renderBillboardJS(data: BarChartData, renderTo: HTMLElement, callback?: () => void): Promise<D3BarChartView> {\n const { renderBillboardJS } = await import('@/billboardJs');\n const handle = renderBillboardJS(data, renderTo);\n callback?.();\n return {\n chart: handle.chart,\n destroy: handle.destroy,\n resize: handle.resize,\n vendorId: 'billboard.js'\n };\n }\n\n // Actions - Render Observable Plot visualisation.\n async renderObservablePlot(typeId: ObservablePlotChartTypeId, data: BarChartData, renderTo: HTMLElement, callback?: () => void): Promise<D3View> {\n const { renderObservablePlot } = await import('@/observablePlot');\n const handle = renderObservablePlot(typeId, data, renderTo);\n callback?.();\n return {\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: 'observable-plot'\n };\n }\n\n // Actions - Render bar chart using raw D3 primitives (d3-scale, d3-axis - no chart wrapper library).\n async renderD3BarChart(data: BarChartData, renderTo: HTMLElement, callback?: () => void): Promise<D3View> {\n const { renderD3BarChart } = await import('@/d3BarChart');\n const handle = renderD3BarChart(data, renderTo);\n callback?.();\n return {\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: D3_ID\n };\n }\n\n // Actions - Render bar chart using TanStack Charts (pre-alpha as of 0.6.4 - its vanilla-DOM mountChart() API is undocumented and may change).\n async renderTanStackCharts(data: BarChartData, renderTo: HTMLElement, callback?: () => void): Promise<D3TanStackChartsView> {\n const { renderTanStackCharts } = await import('@/tanStackCharts');\n const handle = renderTanStackCharts(data, renderTo);\n callback?.();\n return {\n destroy: handle.destroy,\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: 'tanstack-charts'\n };\n }\n\n // Actions - Render chord diagram (Unovis).\n async renderChordDiagram(data: ChordDiagramData, renderTo: HTMLElement, options?: ChordDiagramOptions, callback?: () => void): Promise<D3View> {\n const { renderChordDiagram } = await import('@/chordDiagram');\n const handle = renderChordDiagram(data, renderTo, options);\n callback?.();\n return {\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: 'unovis'\n };\n }\n\n // Actions - Render ERD diagram.\n async renderErdDiagram(data: ErdDiagramData, renderTo: HTMLElement, options?: ErdDiagramOptions, callback?: () => void): Promise<D3View> {\n const { renderErdDiagram } = await import('@/erdDiagram');\n const handle = renderErdDiagram(data, renderTo, options);\n callback?.();\n return {\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: D3_ID\n };\n }\n\n // Actions - Render network diagram.\n async renderNetworkDiagram(data: NetworkDiagramData, renderTo: HTMLElement, options?: NetworkDiagramOptions, callback?: () => void): Promise<D3NetworkView> {\n const { renderNetworkDiagram } = await import('@/networkDiagram');\n const handle = renderNetworkDiagram(data, renderTo, options);\n callback?.();\n return {\n destroy: handle.destroy,\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n triggerAutoLayout: handle.triggerAutoLayout,\n vendorId: D3_ID\n };\n }\n\n // Actions - Render Sankey diagram.\n async renderSankeyDiagram(data: SankeyDiagramData, renderTo: HTMLElement, options?: SankeyDiagramOptions, callback?: () => void): Promise<D3View> {\n const { renderSankeyDiagram } = await import('@/sankeyDiagram');\n const handle = renderSankeyDiagram(data, renderTo, options);\n callback?.();\n return {\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: D3_ID\n };\n }\n\n // Actions - Render tree diagram.\n async renderTreeDiagram(data: TreeDiagramNode, renderTo: HTMLElement, options?: TreeDiagramOptions, callback?: () => void): Promise<D3View> {\n const { renderTreeDiagram } = await import('@/treeDiagram');\n const handle = renderTreeDiagram(data, renderTo, options);\n callback?.();\n return {\n resize: handle.resize,\n get svg() {\n return handle.svg;\n },\n vendorId: D3_ID\n };\n }\n}\n"],"mappings":";AA+CA,IAIa,IAAb,MAAoB;CAEhB,MAAM,kBAAkB,GAAoB,GAAuB,GAAgD;EAC/G,IAAM,EAAE,yBAAsB,MAAM,OAAO,8BACrC,IAAS,EAAkB,GAAM,CAAQ;EAE/C,OADA,IAAW,GACJ;GACH,OAAO,EAAO;GACd,SAAS,EAAO;GAChB,QAAQ,EAAO;GACf,UAAU;EACd;CACJ;CAGA,MAAM,qBAAqB,GAAmC,GAAoB,GAAuB,GAAwC;EAC7I,IAAM,EAAE,4BAAyB,MAAM,OAAO,iCACxC,IAAS,EAAqB,GAAQ,GAAM,CAAQ;EAE1D,OADA,IAAW,GACJ;GACH,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;CAGA,MAAM,iBAAiB,GAAoB,GAAuB,GAAwC;EACtG,IAAM,EAAE,wBAAqB,MAAM,OAAO,6BACpC,IAAS,EAAiB,GAAM,CAAQ;EAE9C,OADA,IAAW,GACJ;GACH,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;CAGA,MAAM,qBAAqB,GAAoB,GAAuB,GAAsD;EACxH,IAAM,EAAE,4BAAyB,MAAM,OAAO,iCACxC,IAAS,EAAqB,GAAM,CAAQ;EAElD,OADA,IAAW,GACJ;GACH,SAAS,EAAO;GAChB,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;CAGA,MAAM,mBAAmB,GAAwB,GAAuB,GAA+B,GAAwC;EAC3I,IAAM,EAAE,0BAAuB,MAAM,OAAO,+BACtC,IAAS,EAAmB,GAAM,GAAU,CAAO;EAEzD,OADA,IAAW,GACJ;GACH,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;CAGA,MAAM,iBAAiB,GAAsB,GAAuB,GAA6B,GAAwC;EACrI,IAAM,EAAE,wBAAqB,MAAM,OAAO,6BACpC,IAAS,EAAiB,GAAM,GAAU,CAAO;EAEvD,OADA,IAAW,GACJ;GACH,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;CAGA,MAAM,qBAAqB,GAA0B,GAAuB,GAAiC,GAA+C;EACxJ,IAAM,EAAE,4BAAyB,MAAM,OAAO,iCACxC,IAAS,EAAqB,GAAM,GAAU,CAAO;EAE3D,OADA,IAAW,GACJ;GACH,SAAS,EAAO;GAChB,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,mBAAmB,EAAO;GAC1B,UAAU;EACd;CACJ;CAGA,MAAM,oBAAoB,GAAyB,GAAuB,GAAgC,GAAwC;EAC9I,IAAM,EAAE,2BAAwB,MAAM,OAAO,gCACvC,IAAS,EAAoB,GAAM,GAAU,CAAO;EAE1D,OADA,IAAW,GACJ;GACH,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;CAGA,MAAM,kBAAkB,GAAuB,GAAuB,GAA8B,GAAwC;EACxI,IAAM,EAAE,yBAAsB,MAAM,OAAO,8BACrC,IAAS,EAAkB,GAAM,GAAU,CAAO;EAExD,OADA,IAAW,GACJ;GACH,QAAQ,EAAO;GACf,IAAI,MAAM;IACN,OAAO,EAAO;GAClB;GACA,UAAU;EACd;CACJ;AACJ"}
@@ -170,5 +170,3 @@ function h() {
170
170
  }
171
171
  //#endregion
172
172
  export { h as t };
173
-
174
- //# sourceMappingURL=drag-DfL4uwqz.js.map
@@ -1346,11 +1346,13 @@ function It(e, t, n, r, i) {
1346
1346
  let g = {}, _ = !1;
1347
1347
  for (let t = 0; t < h.length; t++) for (let n = t + 1; n < h.length; n++) if (!(!h[t] || !h[n] || !((a = h[t]) != null && a.barycenter) || !((o = h[n]) != null && o.barycenter)) && h[t]?.barycenter === h[n].barycenter) {
1348
1348
  let r = h[t]?.vs[0] ?? "", i = h[n]?.vs[0] ?? "", a = e.node(r), o = e.node(i);
1349
- if (a.dummy === "edge" && o.dummy === "edge" && a.edgeObj?.v === o.edgeObj?.v && a.edgeObj?.w === o.edgeObj?.w) if (a.edgeLabel.reversed) {
1350
- g[i] = h[t], h.splice(t, 1), t--;
1351
- break;
1352
- } else g[r] = h[n], h.splice(n, 1), n--;
1353
- else _ = !0;
1349
+ if (a.dummy === "edge" && o.dummy === "edge" && a.edgeObj?.v === o.edgeObj?.v && a.edgeObj?.w === o.edgeObj?.w) {
1350
+ if (a.edgeLabel.reversed) {
1351
+ g[i] = h[t], h.splice(t, 1), t--;
1352
+ break;
1353
+ }
1354
+ g[r] = h[n], h.splice(n, 1), n--;
1355
+ } else _ = !0;
1354
1356
  }
1355
1357
  let v = Nt(h, g, s, e, c);
1356
1358
  if (d && f) {
@@ -1757,7 +1759,7 @@ function pn(e, t, n) {
1757
1759
  }), pn(o, t, n);
1758
1760
  let l = wn(o);
1759
1761
  mn(l, t, n, null), hn(o, l);
1760
- let u = Infinity, d = Infinity, f = -Infinity, p = -Infinity;
1762
+ let u = 1 / 0, d = 1 / 0, f = -1 / 0, p = -1 / 0;
1761
1763
  o.nodes().forEach((e) => {
1762
1764
  if (e === r) return;
1763
1765
  let t = o.node(e);
@@ -2247,5 +2249,3 @@ function qn(e, t) {
2247
2249
  }
2248
2250
  //#endregion
2249
2251
  export { Gn as renderErdDiagram };
2250
-
2251
- //# sourceMappingURL=erdDiagram-Ds1hsQDD.js.map