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

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 (49) hide show
  1. package/README.md +51 -51
  2. package/dist/{axis-DjmZ9QYe.js → axis-EpX3kBPs.js} +2 -8
  3. package/dist/{axis-DjmZ9QYe.js.map → axis-EpX3kBPs.js.map} +1 -1
  4. package/dist/{band-BFcwtSdG.js → band-p1VbTxZM.js} +2 -2
  5. package/dist/{band-BFcwtSdG.js.map → band-p1VbTxZM.js.map} +1 -1
  6. package/dist/{billboardJs-oaee80Fh.js → billboardJs-PR7IsnhE.js} +1970 -1666
  7. package/dist/billboardJs-PR7IsnhE.js.map +1 -0
  8. package/dist/{chordDiagram-CTDXv74T.js → chordDiagram-B1_nfC1m.js} +1031 -1023
  9. package/dist/chordDiagram-B1_nfC1m.js.map +1 -0
  10. package/dist/{d3BarChart-BQCPo1ub.js → d3BarChart-BC05DvRv.js} +7 -7
  11. package/dist/{d3BarChart-BQCPo1ub.js.map → d3BarChart-BC05DvRv.js.map} +1 -1
  12. package/dist/dpuse-tool-d3-visualiser.css +1 -1
  13. package/dist/dpuse-tool-d3-visualiser.es.js +8 -8
  14. package/dist/dpuse-tool-d3-visualiser.es.js.map +1 -1
  15. package/dist/{drag-DfL4uwqz.js → drag-Ieen6R0z.js} +4 -8
  16. package/dist/{drag-DfL4uwqz.js.map → drag-Ieen6R0z.js.map} +1 -1
  17. package/dist/{erdDiagram-C_Hobpls.js → erdDiagram-CtPeCq0f.js} +6 -12
  18. package/dist/{erdDiagram-C_Hobpls.js.map → erdDiagram-CtPeCq0f.js.map} +1 -1
  19. package/dist/{linear-C-jur735.js → linear-q6e-7JBm.js} +113 -167
  20. package/dist/linear-q6e-7JBm.js.map +1 -0
  21. package/dist/{networkDiagram-CcQxxJMB.js → networkDiagram-DZwLfY_R.js} +3 -3
  22. package/dist/{networkDiagram-CcQxxJMB.js.map → networkDiagram-DZwLfY_R.js.map} +1 -1
  23. package/dist/{observablePlot-BE2I-5e2.js → observablePlot-CGF3S2mL.js} +1270 -1270
  24. package/dist/{observablePlot-BE2I-5e2.js.map → observablePlot-CGF3S2mL.js.map} +1 -1
  25. package/dist/ordinal-BtWaYSDN.js +81 -0
  26. package/dist/ordinal-BtWaYSDN.js.map +1 -0
  27. package/dist/pow-Bp6eSqVs.js +76 -0
  28. package/dist/{pow-CxQV96gC.js.map → pow-Bp6eSqVs.js.map} +1 -1
  29. package/dist/{src-WDualLFV.js → src-Clugeype.js} +1 -1
  30. package/dist/{src-WDualLFV.js.map → src-Clugeype.js.map} +1 -1
  31. package/dist/{src-yL3ZdoR1.js → src-kLpf-6r0.js} +1 -1
  32. package/dist/{src-yL3ZdoR1.js.map → src-kLpf-6r0.js.map} +1 -1
  33. package/dist/{string-CnCj7THX.js → string-BOhFwaZD.js} +1 -2
  34. package/dist/{string-CnCj7THX.js.map → string-BOhFwaZD.js.map} +1 -1
  35. package/dist/tanStackCharts-D-ip-ZV-.js +4103 -0
  36. package/dist/tanStackCharts-D-ip-ZV-.js.map +1 -0
  37. package/dist/types/src/index.d.ts +1 -1
  38. package/dist/{src-Dl4_vNYa.js → utcTime-DLfrQXna.js} +432 -432
  39. package/dist/utcTime-DLfrQXna.js.map +1 -0
  40. package/package.json +15 -15
  41. package/dist/billboardJs-oaee80Fh.js.map +0 -1
  42. package/dist/chordDiagram-CTDXv74T.js.map +0 -1
  43. package/dist/linear-C-jur735.js.map +0 -1
  44. package/dist/ordinal-CDNZetSD.js +0 -28
  45. package/dist/ordinal-CDNZetSD.js.map +0 -1
  46. package/dist/pow-CxQV96gC.js +0 -84
  47. package/dist/src-Dl4_vNYa.js.map +0 -1
  48. package/dist/tanStackCharts-CqP0qIAr.js +0 -3492
  49. package/dist/tanStackCharts-CqP0qIAr.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { t as e } from "./linear-C-jur735.js";
2
- import { t } from "./band-BFcwtSdG.js";
3
- import { t as n } from "./select-BIuoFcZG.js";
4
- import { n as r } from "./ordinal-CDNZetSD.js";
5
- import { n as i, t as a } from "./axis-DjmZ9QYe.js";
1
+ import { t as e } from "./linear-q6e-7JBm.js";
2
+ import { n as t } from "./ordinal-BtWaYSDN.js";
3
+ import { t as n } from "./band-p1VbTxZM.js";
4
+ import { t as r } from "./select-BIuoFcZG.js";
5
+ import { n as i, t as a } from "./axis-EpX3kBPs.js";
6
6
  //#region src/d3BarChart.ts
7
7
  var o = 640, s = 400, c = {
8
8
  bottom: 24,
@@ -18,8 +18,8 @@ var o = 640, s = 400, c = {
18
18
  ];
19
19
  function u(u, f) {
20
20
  function p() {
21
- n(f).selectAll("svg").remove();
22
- let p = f.clientWidth || o, m = f.clientHeight || s, h = p - c.left - c.right, g = m - c.top - c.bottom, _ = t().domain(u.categories).range([0, h]).padding(.2), v = t().domain(u.series.map((e) => e.name)).range([0, _.bandwidth()]).padding(.1), y = Math.max(0, ...u.series.flatMap((e) => e.values)), b = e().domain([0, y]).nice().range([g, 0]), x = r().domain(u.series.map((e) => e.name)).range(l), S = n(f).append("svg").attr("viewBox", `0 0 ${String(p)} ${String(m)}`).attr("width", p).attr("height", m), C = S.append("g").attr("transform", `translate(${String(c.left)}, ${String(c.top)})`);
21
+ r(f).selectAll("svg").remove();
22
+ let p = f.clientWidth || o, m = f.clientHeight || s, h = p - c.left - c.right, g = m - c.top - c.bottom, _ = n().domain(u.categories).range([0, h]).padding(.2), v = n().domain(u.series.map((e) => e.name)).range([0, _.bandwidth()]).padding(.1), y = Math.max(0, ...u.series.flatMap((e) => e.values)), b = e().domain([0, y]).nice().range([g, 0]), x = t().domain(u.series.map((e) => e.name)).range(l), S = r(f).append("svg").attr("viewBox", `0 0 ${String(p)} ${String(m)}`).attr("width", p).attr("height", m), C = S.append("g").attr("transform", `translate(${String(c.left)}, ${String(c.top)})`);
23
23
  C.append("g").attr("transform", `translate(0, ${String(g)})`).call(a(_)), C.append("g").call(i(b)), C.append("g").selectAll("rect").data(d(u)).join("rect").attr("x", (e) => (_(e.category) ?? 0) + (v(e.seriesName) ?? 0)).attr("y", (e) => b(e.value)).attr("width", v.bandwidth()).attr("height", (e) => g - b(e.value)).attr("fill", (e) => x(e.seriesName));
24
24
  let w = S.node();
25
25
  if (w == null) throw Error("Failed to create D3 bar chart SVG element.");
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"d3BarChart-BC05DvRv.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"}
@@ -5,7 +5,7 @@
5
5
  * billboard.js, JavaScript chart library
6
6
  * https://naver.github.io/billboard.js/
7
7
  *
8
- * @version 4.0.3
8
+ * @version 4.1.0
9
9
  */
10
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-oaee80Fh.js"), i = r(e, t);
4
+ let { renderBillboardJS: r } = await import("./billboardJs-PR7IsnhE.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-BE2I-5e2.js"), a = i(e, t, n);
13
+ let { renderObservablePlot: i } = await import("./observablePlot-CGF3S2mL.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-BQCPo1ub.js"), i = r(e, t);
23
+ let { renderD3BarChart: r } = await import("./d3BarChart-BC05DvRv.js"), i = r(e, t);
24
24
  return n?.(), {
25
25
  resize: i.resize,
26
26
  get svg() {
@@ -30,7 +30,7 @@ var e = class {
30
30
  };
31
31
  }
32
32
  async renderTanStackCharts(e, t, n) {
33
- let { renderTanStackCharts: r } = await import("./tanStackCharts-CqP0qIAr.js"), i = r(e, t);
33
+ let { renderTanStackCharts: r } = await import("./tanStackCharts-D-ip-ZV-.js"), i = r(e, t);
34
34
  return n?.(), {
35
35
  destroy: i.destroy,
36
36
  resize: i.resize,
@@ -41,7 +41,7 @@ var e = class {
41
41
  };
42
42
  }
43
43
  async renderChordDiagram(e, t, n, r) {
44
- let { renderChordDiagram: i } = await import("./chordDiagram-CTDXv74T.js"), a = i(e, t, n);
44
+ let { renderChordDiagram: i } = await import("./chordDiagram-B1_nfC1m.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-C_Hobpls.js"), a = i(e, t, n);
54
+ let { renderErdDiagram: i } = await import("./erdDiagram-CtPeCq0f.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-CcQxxJMB.js"), a = i(e, t, n);
64
+ let { renderNetworkDiagram: i } = await import("./networkDiagram-DZwLfY_R.js"), a = i(e, t, n);
65
65
  return r?.(), {
66
66
  destroy: a.destroy,
67
67
  resize: a.resize,
@@ -94,4 +94,4 @@ var e = class {
94
94
  }
95
95
  };
96
96
  //#endregion
97
- export { e as D3Tool };
97
+ export { e as Tool };
@@ -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';\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"}
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 Tool {\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,MAAkB;CAEd,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"}
@@ -1,4 +1,4 @@
1
- import { i as e } from "./src-yL3ZdoR1.js";
1
+ import { i as e } from "./src-kLpf-6r0.js";
2
2
  import { t } from "./select-BIuoFcZG.js";
3
3
  import { a as n, i as r, n as i, o as a, r as o, s, t as c } from "./nodrag-Dq2tlBbe.js";
4
4
  //#region node_modules/d3-drag/src/constant.js
@@ -87,7 +87,7 @@ function h() {
87
87
  e.on("mousedown.drag", O).filter(v).on("touchstart.drag", j).on("touchmove.drag", M, r).on("touchend.drag touchcancel.drag", N).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
88
88
  }
89
89
  function O(e, r) {
90
- if (!(T || !h.call(this, e, r))) {
90
+ if (!T && h.call(this, e, r)) {
91
91
  var i = P(this, g.call(this, e, r), e, r, "mouse");
92
92
  i && (t(e.view).on("mousemove.drag", k, n).on("mouseup.drag", A, n), c(e.view), a(e), w = !1, S = e.clientX, C = e.clientY, i("start", e));
93
93
  }
@@ -103,14 +103,10 @@ function h() {
103
103
  t(e.view).on("mousemove.drag mouseup.drag", null), i(e.view, w), o(e), y.mouse("end", e);
104
104
  }
105
105
  function j(e, t) {
106
- if (h.call(this, e, t)) {
107
- var n = e.changedTouches, r = g.call(this, e, t), i = n.length, o, s;
108
- for (o = 0; o < i; ++o) (s = P(this, r, e, t, n[o].identifier, n[o])) && (a(e), s("start", e, n[o]));
109
- }
106
+ if (h.call(this, e, t)) for (var n = e.changedTouches, r = g.call(this, e, t), i = n.length, o = 0, s; o < i; ++o) (s = P(this, r, e, t, n[o].identifier, n[o])) && (a(e), s("start", e, n[o]));
110
107
  }
111
108
  function M(e) {
112
- var t = e.changedTouches, n = t.length, r, i;
113
- for (r = 0; r < n; ++r) (i = y[t[r].identifier]) && (o(e), i("drag", e, t[r]));
109
+ for (var t = e.changedTouches, n = t.length, r = 0, i; r < n; ++r) (i = y[t[r].identifier]) && (o(e), i("drag", e, t[r]));
114
110
  }
115
111
  function N(e) {
116
112
  var t = e.changedTouches, n = t.length, r, i;
@@ -1 +1 @@
1
- {"version":3,"file":"drag-DfL4uwqz.js","names":["pointer","constant"],"sources":["../node_modules/d3-drag/src/constant.js","../node_modules/d3-drag/src/event.js","../node_modules/d3-drag/src/drag.js"],"sourcesContent":["export default x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
1
+ {"version":3,"file":"drag-Ieen6R0z.js","names":["pointer","constant"],"sources":["../node_modules/d3-drag/src/constant.js","../node_modules/d3-drag/src/event.js","../node_modules/d3-drag/src/drag.js"],"sourcesContent":["export default x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n"],"x_google_ignoreList":[0,1,2],"mappings":";;;;AAAA,IAAA,KAAe,YAAW;;;ACA1B,SAAwB,EAAU,GAAM,EACtC,gBACA,YACA,WACA,eACA,WACA,MAAG,MAAG,OAAI,OACV,eACC;CACD,OAAO,iBAAiB,MAAM;EAC5B,MAAM;GAAC,OAAO;GAAM,YAAY;GAAM,cAAc;EAAI;EACxD,aAAa;GAAC,OAAO;GAAa,YAAY;GAAM,cAAc;EAAI;EACtE,SAAS;GAAC,OAAO;GAAS,YAAY;GAAM,cAAc;EAAI;EAC9D,QAAQ;GAAC,OAAO;GAAQ,YAAY;GAAM,cAAc;EAAI;EAC5D,YAAY;GAAC,OAAO;GAAY,YAAY;GAAM,cAAc;EAAI;EACpE,QAAQ;GAAC,OAAO;GAAQ,YAAY;GAAM,cAAc;EAAI;EAC5D,GAAG;GAAC,OAAO;GAAG,YAAY;GAAM,cAAc;EAAI;EAClD,GAAG;GAAC,OAAO;GAAG,YAAY;GAAM,cAAc;EAAI;EAClD,IAAI;GAAC,OAAO;GAAI,YAAY;GAAM,cAAc;EAAI;EACpD,IAAI;GAAC,OAAO;GAAI,YAAY;GAAM,cAAc;EAAI;EACpD,GAAG,EAAC,OAAO,EAAQ;CACrB,CAAC;AACH;AAEA,EAAU,UAAU,KAAK,WAAW;CAClC,IAAI,IAAQ,KAAK,EAAE,GAAG,MAAM,KAAK,GAAG,SAAS;CAC7C,OAAO,MAAU,KAAK,IAAI,OAAO;AACnC;;;ACnBA,SAAS,EAAc,GAAO;CAC5B,OAAO,CAAC,EAAM,WAAW,CAAC,EAAM;AAClC;AAEA,SAAS,IAAmB;CAC1B,OAAO,KAAK;AACd;AAEA,SAAS,EAAe,GAAO,GAAG;CAChC,OAAO,KAAY;EAAC,GAAG,EAAM;EAAG,GAAG,EAAM;CAAC;AAC5C;AAEA,SAAS,IAAmB;CAC1B,OAAO,UAAU,kBAAmB,kBAAkB;AACxD;AAEA,SAAA,IAA0B;CACxB,IAAI,IAAS,GACT,IAAY,GACZ,IAAU,GACV,IAAY,GACZ,IAAW,CAAC,GACZ,IAAY,EAAS,SAAS,QAAQ,KAAK,GAC3C,IAAS,GACT,GACA,GACA,GACA,GACA,IAAiB;CAErB,SAAS,EAAK,GAAW;EACvB,EACK,GAAG,kBAAkB,CAAW,CAAC,CACnC,OAAO,CAAS,CAAC,CACf,GAAG,mBAAmB,CAAY,CAAC,CACnC,GAAG,kBAAkB,GAAY,CAAU,CAAC,CAC5C,GAAG,kCAAkC,CAAU,CAAC,CAChD,MAAM,gBAAgB,MAAM,CAAC,CAC7B,MAAM,+BAA+B,eAAe;CAC3D;CAEA,SAAS,EAAY,GAAO,GAAG;EACzB,UAAgB,EAAO,KAAK,MAAM,GAAO,CAAC,GAC9C;OAAI,IAAU,EAAY,MAAM,EAAU,KAAK,MAAM,GAAO,CAAC,GAAG,GAAO,GAAG,OAAO;GAC5E,MACL,EAAO,EAAM,IAAI,CAAC,CACf,GAAG,kBAAkB,GAAY,CAAiB,CAAC,CACnD,GAAG,gBAAgB,GAAY,CAAiB,GACnD,EAAO,EAAM,IAAI,GACjB,EAAc,CAAK,GACnB,IAAc,IACd,IAAa,EAAM,SACnB,IAAa,EAAM,SACnB,EAAQ,SAAS,CAAK;EAV2D;CAWnF;CAEA,SAAS,EAAW,GAAO;EAEzB,IADA,EAAQ,CAAK,GACT,CAAC,GAAa;GAChB,IAAI,IAAK,EAAM,UAAU,GAAY,IAAK,EAAM,UAAU;GAC1D,IAAc,IAAK,IAAK,IAAK,IAAK;EACpC;EACA,EAAS,MAAM,QAAQ,CAAK;CAC9B;CAEA,SAAS,EAAW,GAAO;EAIzB,AAHA,EAAO,EAAM,IAAI,CAAC,CAAC,GAAG,+BAA+B,IAAI,GACzD,EAAQ,EAAM,MAAM,CAAW,GAC/B,EAAQ,CAAK,GACb,EAAS,MAAM,OAAO,CAAK;CAC7B;CAEA,SAAS,EAAa,GAAO,GAAG;EACzB,MAAO,KAAK,MAAM,GAAO,CAAC,GAK/B,KAJA,IAAI,IAAU,EAAM,gBAChB,IAAI,EAAU,KAAK,MAAM,GAAO,CAAC,GACjC,IAAI,EAAQ,QAAQ,IAEf,GAFkB,GAEf,IAAI,GAAG,EAAE,GACnB,CAAI,IAAU,EAAY,MAAM,GAAG,GAAO,GAAG,EAAQ,EAAE,CAAC,YAAY,EAAQ,EAAE,OAC5E,EAAc,CAAK,GACnB,EAAQ,SAAS,GAAO,EAAQ,EAAE;CAGxC;CAEA,SAAS,EAAW,GAAO;EAIzB,KAHA,IAAI,IAAU,EAAM,gBAChB,IAAI,EAAQ,QAAQ,IAEf,GAFkB,GAEf,IAAI,GAAG,EAAE,GACnB,CAAI,IAAU,EAAS,EAAQ,EAAE,CAAC,iBAChC,EAAQ,CAAK,GACb,EAAQ,QAAQ,GAAO,EAAQ,EAAE;CAGvC;CAEA,SAAS,EAAW,GAAO;EACzB,IAAI,IAAU,EAAM,gBAChB,IAAI,EAAQ,QAAQ,GAAG;EAI3B,KAFI,KAAa,aAAa,CAAW,GACzC,IAAc,WAAW,WAAW;GAAE,IAAc;EAAM,GAAG,GAAG,GAC3D,IAAI,GAAG,IAAI,GAAG,EAAE,GACnB,CAAI,IAAU,EAAS,EAAQ,EAAE,CAAC,iBAChC,EAAc,CAAK,GACnB,EAAQ,OAAO,GAAO,EAAQ,EAAE;CAGtC;CAEA,SAAS,EAAY,GAAM,GAAW,GAAO,GAAG,GAAY,GAAO;EACjE,IAAI,IAAW,EAAU,KAAK,GAC1B,IAAIA,EAAQ,KAAS,GAAO,CAAS,GAAG,GAAI,GAC5C;EAEJ,KAAK,IAAI,EAAQ,KAAK,GAAM,IAAI,EAAU,eAAe;GACrD,aAAa;GACb,QAAQ;GACR;GACA;GACA,GAAG,EAAE;GACL,GAAG,EAAE;GACL,IAAI;GACJ,IAAI;GACJ;EACF,CAAC,GAAG,CAAC,MAAM,MAKb,OAHA,IAAK,EAAE,IAAI,EAAE,MAAM,GACnB,IAAK,EAAE,IAAI,EAAE,MAAM,GAEZ,SAAS,EAAQ,GAAM,GAAO,GAAO;GAC1C,IAAI,IAAK,GAAG;GACZ,QAAQ,GAAR;IACE,KAAK;KAAS,EAAS,KAAc,GAAS,IAAI;KAAU;IAC5D,KAAK,OAAO,OAAO,EAAS,IAAa,EAAE;IAC3C,KAAK,QAAQ,IAAIA,EAAQ,KAAS,GAAO,CAAS,GAAG,IAAI;GAC3D;GACA,EAAS,KACP,GACA,GACA,IAAI,EAAU,GAAM;IAClB,aAAa;IACb,SAAS;IACT,QAAQ;IACR;IACA,QAAQ;IACR,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,KAAK,EAAG;IACd,IAAI,EAAE,KAAK,EAAG;IACd;GACF,CAAC,GACD,CACF;EACF;CACF;CA2BA,OAzBA,EAAK,SAAS,SAAS,GAAG;EACxB,OAAO,UAAU,UAAU,IAAS,OAAO,KAAM,aAAa,IAAIC,EAAS,CAAC,CAAC,CAAC,GAAG,KAAQ;CAC3F,GAEA,EAAK,YAAY,SAAS,GAAG;EAC3B,OAAO,UAAU,UAAU,IAAY,OAAO,KAAM,aAAa,IAAIA,EAAS,CAAC,GAAG,KAAQ;CAC5F,GAEA,EAAK,UAAU,SAAS,GAAG;EACzB,OAAO,UAAU,UAAU,IAAU,OAAO,KAAM,aAAa,IAAIA,EAAS,CAAC,GAAG,KAAQ;CAC1F,GAEA,EAAK,YAAY,SAAS,GAAG;EAC3B,OAAO,UAAU,UAAU,IAAY,OAAO,KAAM,aAAa,IAAIA,EAAS,CAAC,CAAC,CAAC,GAAG,KAAQ;CAC9F,GAEA,EAAK,KAAK,WAAW;EACnB,IAAI,IAAQ,EAAU,GAAG,MAAM,GAAW,SAAS;EACnD,OAAO,MAAU,IAAY,IAAO;CACtC,GAEA,EAAK,gBAAgB,SAAS,GAAG;EAC/B,OAAO,UAAU,UAAU,KAAkB,IAAI,CAAC,KAAK,GAAG,KAAQ,KAAK,KAAK,CAAc;CAC5F,GAEO;AACT"}
@@ -882,8 +882,8 @@ function We(e, t) {
882
882
  let n = t.v, r = e.node(n).rank, i = t.w, a = e.node(i).rank, o = t.name, s = e.edge(t), c = s.labelRank;
883
883
  if (a === r + 1) return;
884
884
  e.removeEdge(t);
885
- let l, u, d;
886
- for (d = 0, ++r; r < a; ++d, ++r) s.points = [], u = {
885
+ let l, u, d = 0;
886
+ for (++r; r < a; ++d, ++r) s.points = [], u = {
887
887
  width: 0,
888
888
  height: 0,
889
889
  edgeLabel: s,
@@ -1344,7 +1344,7 @@ function It(e, t, n, r, i) {
1344
1344
  let h = At(m, n);
1345
1345
  Lt(h, p);
1346
1346
  let g = {}, _ = !1;
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) {
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
1349
  if (a.dummy === "edge" && o.dummy === "edge" && a.edgeObj?.v === o.edgeObj?.v && a.edgeObj?.w === o.edgeObj?.w) {
1350
1350
  if (a.edgeLabel.reversed) {
@@ -1679,17 +1679,13 @@ function an(e, t, n) {
1679
1679
  case "l":
1680
1680
  l = -o.width / 2;
1681
1681
  break;
1682
- case "r":
1683
- l = o.width / 2;
1684
- break;
1682
+ case "r": l = o.width / 2;
1685
1683
  }
1686
1684
  if (l && (c += n ? l : -l), l = void 0, c += (o.dummy ? t : e) / 2, c += (s.dummy ? t : e) / 2, c += s.width / 2, Object.hasOwn(s, "labelpos")) switch (s.labelpos.toLowerCase()) {
1687
1685
  case "l":
1688
1686
  l = s.width / 2;
1689
1687
  break;
1690
- case "r":
1691
- l = -s.width / 2;
1692
- break;
1688
+ case "r": l = -s.width / 2;
1693
1689
  }
1694
1690
  return l && (c += n ? l : -l), c;
1695
1691
  };
@@ -2013,9 +2009,7 @@ function jn(e) {
2013
2009
  case "l":
2014
2010
  n.x -= n.width / 2 + n.labeloffset;
2015
2011
  break;
2016
- case "r":
2017
- n.x += n.width / 2 + n.labeloffset;
2018
- break;
2012
+ case "r": n.x += n.width / 2 + n.labeloffset;
2019
2013
  }
2020
2014
  });
2021
2015
  }