@dpuse/dpuse-tool-d3-visualiser 0.0.31 → 0.0.32
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.
- package/README.md +104 -88
- package/dist/array-Cv4-2llb.js +16 -0
- package/dist/array-Cv4-2llb.js.map +1 -0
- package/dist/axis-DjmZ9QYe.js +75 -0
- package/dist/axis-DjmZ9QYe.js.map +1 -0
- package/dist/band-DbExrcif.js +57 -0
- package/dist/band-DbExrcif.js.map +1 -0
- package/dist/{billboardJs-DJFb72FS.js → billboardJs-jmaH9Gag.js} +17 -15
- package/dist/{billboardJs-DJFb72FS.js.map → billboardJs-jmaH9Gag.js.map} +1 -1
- package/dist/d3BarChart-DEzayAyh.js +49 -0
- package/dist/d3BarChart-DEzayAyh.js.map +1 -0
- package/dist/dpuse-tool-d3-visualiser.es.js +26 -5
- package/dist/dpuse-tool-d3-visualiser.es.js.map +1 -1
- package/dist/{drag-B46QGUMq.js → drag-DLokvdmv.js} +22 -22
- package/dist/{drag-B46QGUMq.js.map → drag-DLokvdmv.js.map} +1 -1
- package/dist/linear-D3BD7E1p.js +592 -0
- package/dist/linear-D3BD7E1p.js.map +1 -0
- package/dist/{link-RZgae8Z2.js → link-DKK0Q0lG.js} +19 -28
- package/dist/link-DKK0Q0lG.js.map +1 -0
- package/dist/math-Dc0ICuib.js +962 -0
- package/dist/math-Dc0ICuib.js.map +1 -0
- package/dist/{networkDiagram-QWVy8iRy.js → networkDiagram-HS-SgOZ0.js} +5 -5
- package/dist/{networkDiagram-QWVy8iRy.js.map → networkDiagram-HS-SgOZ0.js.map} +1 -1
- package/dist/{observablePlot-D7o8-dnK.js → observablePlot-B1CSEvcU.js} +1558 -1607
- package/dist/observablePlot-B1CSEvcU.js.map +1 -0
- package/dist/{sankeyDiagram-DlIuwzOl.js → sankeyDiagram-BXTYCHPV.js} +2 -2
- package/dist/{sankeyDiagram-DlIuwzOl.js.map → sankeyDiagram-BXTYCHPV.js.map} +1 -1
- package/dist/{src-B7SGbtRQ.js → src-Br_t1-IV.js} +7 -7
- package/dist/{src-B7SGbtRQ.js.map → src-Br_t1-IV.js.map} +1 -1
- package/dist/src-Du_hPZAX.js +804 -0
- package/dist/src-Du_hPZAX.js.map +1 -0
- package/dist/string-CnCj7THX.js +394 -0
- package/dist/string-CnCj7THX.js.map +1 -0
- package/dist/tanStackCharts-vvQteV9z.js +2343 -0
- package/dist/tanStackCharts-vvQteV9z.js.map +1 -0
- package/dist/{treeDiagram-Bi5VXDVy.js → treeDiagram-DemHfVnX.js} +2 -2
- package/dist/{treeDiagram-Bi5VXDVy.js.map → treeDiagram-DemHfVnX.js.map} +1 -1
- package/dist/types/src/d3BarChart.d.ts +7 -0
- package/dist/types/src/index.d.ts +5 -0
- package/dist/types/src/tanStackCharts.d.ts +8 -0
- package/dist/types/tests/d3BarChart.test.d.ts +1 -0
- package/dist/types/tests/tanStackCharts.test.d.ts +1 -0
- package/package.json +6 -1
- package/dist/axis-B7xlWKkC.js +0 -1621
- package/dist/axis-B7xlWKkC.js.map +0 -1
- package/dist/link-RZgae8Z2.js.map +0 -1
- package/dist/observablePlot-D7o8-dnK.js.map +0 -1
- package/dist/src-DnMaAyIP.js +0 -1194
- package/dist/src-DnMaAyIP.js.map +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { t as e } from "./select-BIuoFcZG.js";
|
|
2
|
+
import { p as t, t as n } from "./linear-D3BD7E1p.js";
|
|
3
|
+
import { t as r } from "./band-DbExrcif.js";
|
|
4
|
+
import { n as i, t as a } from "./axis-DjmZ9QYe.js";
|
|
5
|
+
//#region src/d3BarChart.ts
|
|
6
|
+
var o = 640, s = 400, c = {
|
|
7
|
+
bottom: 24,
|
|
8
|
+
left: 40,
|
|
9
|
+
right: 16,
|
|
10
|
+
top: 16
|
|
11
|
+
}, l = [
|
|
12
|
+
"#6c8ebf",
|
|
13
|
+
"#d79b00",
|
|
14
|
+
"#82b366",
|
|
15
|
+
"#9673a6",
|
|
16
|
+
"#b85450"
|
|
17
|
+
];
|
|
18
|
+
function u(u, f) {
|
|
19
|
+
function p() {
|
|
20
|
+
e(f).selectAll("svg").remove();
|
|
21
|
+
let p = f.clientWidth || o, m = f.clientHeight || s, h = p - c.left - c.right, g = m - c.top - c.bottom, _ = r().domain(u.categories).range([0, h]).padding(.2), v = r().domain(u.series.map((e) => e.name)).range([0, _.bandwidth()]).padding(.1), y = Math.max(0, ...u.series.flatMap((e) => e.values)), b = n().domain([0, y]).nice().range([g, 0]), x = t().domain(u.series.map((e) => e.name)).range(l), S = e(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)})`);
|
|
22
|
+
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));
|
|
23
|
+
let w = S.node();
|
|
24
|
+
if (w == null) throw Error("Failed to create D3 bar chart SVG element.");
|
|
25
|
+
return w;
|
|
26
|
+
}
|
|
27
|
+
let m = p();
|
|
28
|
+
return {
|
|
29
|
+
resize: () => {
|
|
30
|
+
m = p();
|
|
31
|
+
},
|
|
32
|
+
get svg() {
|
|
33
|
+
return m;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function d(e) {
|
|
38
|
+
let t = [];
|
|
39
|
+
for (let n of e.series) for (let [r, i] of e.categories.entries()) t.push({
|
|
40
|
+
category: i,
|
|
41
|
+
seriesName: n.name,
|
|
42
|
+
value: n.values[r] ?? 0
|
|
43
|
+
});
|
|
44
|
+
return t;
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
export { u as renderD3BarChart };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=d3BarChart-DEzayAyh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d3BarChart-DEzayAyh.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,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-
|
|
4
|
+
let { renderBillboardJS: r } = await import("./billboardJs-jmaH9Gag.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-
|
|
13
|
+
let { renderObservablePlot: i } = await import("./observablePlot-B1CSEvcU.js"), a = i(e, t, n);
|
|
14
14
|
return r?.(), {
|
|
15
15
|
resize: a.resize,
|
|
16
16
|
get svg() {
|
|
@@ -19,6 +19,27 @@ var e = class {
|
|
|
19
19
|
vendorId: "observable-plot"
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
+
async renderD3BarChart(e, t, n) {
|
|
23
|
+
let { renderD3BarChart: r } = await import("./d3BarChart-DEzayAyh.js"), i = r(e, t);
|
|
24
|
+
return n?.(), {
|
|
25
|
+
resize: i.resize,
|
|
26
|
+
get svg() {
|
|
27
|
+
return i.svg;
|
|
28
|
+
},
|
|
29
|
+
vendorId: "d3"
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
async renderTanStackCharts(e, t, n) {
|
|
33
|
+
let { renderTanStackCharts: r } = await import("./tanStackCharts-vvQteV9z.js"), i = r(e, t);
|
|
34
|
+
return n?.(), {
|
|
35
|
+
destroy: i.destroy,
|
|
36
|
+
resize: i.resize,
|
|
37
|
+
get svg() {
|
|
38
|
+
return i.svg;
|
|
39
|
+
},
|
|
40
|
+
vendorId: "tanstack-charts"
|
|
41
|
+
};
|
|
42
|
+
}
|
|
22
43
|
async renderErdDiagram(e, t, n, r) {
|
|
23
44
|
let { renderErdDiagram: i } = await import("./erdDiagram-Ds-nrw7Q.js"), a = i(e, t, n);
|
|
24
45
|
return r?.(), {
|
|
@@ -30,7 +51,7 @@ var e = class {
|
|
|
30
51
|
};
|
|
31
52
|
}
|
|
32
53
|
async renderNetworkDiagram(e, t, n, r) {
|
|
33
|
-
let { renderNetworkDiagram: i } = await import("./networkDiagram-
|
|
54
|
+
let { renderNetworkDiagram: i } = await import("./networkDiagram-HS-SgOZ0.js"), a = i(e, t, n);
|
|
34
55
|
return r?.(), {
|
|
35
56
|
destroy: a.destroy,
|
|
36
57
|
resize: a.resize,
|
|
@@ -42,7 +63,7 @@ var e = class {
|
|
|
42
63
|
};
|
|
43
64
|
}
|
|
44
65
|
async renderSankeyDiagram(e, t, n, r) {
|
|
45
|
-
let { renderSankeyDiagram: i } = await import("./sankeyDiagram-
|
|
66
|
+
let { renderSankeyDiagram: i } = await import("./sankeyDiagram-BXTYCHPV.js"), a = i(e, t, n);
|
|
46
67
|
return r?.(), {
|
|
47
68
|
resize: a.resize,
|
|
48
69
|
get svg() {
|
|
@@ -52,7 +73,7 @@ var e = class {
|
|
|
52
73
|
};
|
|
53
74
|
}
|
|
54
75
|
async renderTreeDiagram(e, t, n, r) {
|
|
55
|
-
let { renderTreeDiagram: i } = await import("./treeDiagram-
|
|
76
|
+
let { renderTreeDiagram: i } = await import("./treeDiagram-DemHfVnX.js"), a = i(e, t, n);
|
|
56
77
|
return r?.(), {
|
|
57
78
|
resize: a.resize,
|
|
58
79
|
get svg() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dpuse-tool-d3-visualiser.es.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["// ── 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 { 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 { 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\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 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":";
|
|
1
|
+
{"version":3,"file":"dpuse-tool-d3-visualiser.es.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["// ── 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 { 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 { 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 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":";AA2CA,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,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,5 +1,5 @@
|
|
|
1
1
|
import { t as e } from "./select-BIuoFcZG.js";
|
|
2
|
-
import {
|
|
2
|
+
import { a as t, c as n, d as r, i, l as a, o, s, u as c } from "./src-Du_hPZAX.js";
|
|
3
3
|
//#region node_modules/d3-drag/src/constant.js
|
|
4
4
|
var l = (e) => () => e;
|
|
5
5
|
//#endregion
|
|
@@ -81,44 +81,44 @@ function m() {
|
|
|
81
81
|
return navigator.maxTouchPoints || "ontouchstart" in this;
|
|
82
82
|
}
|
|
83
83
|
function h() {
|
|
84
|
-
var h = d, g = f, _ = p, v = m, y = {}, b =
|
|
84
|
+
var h = d, g = f, _ = p, v = m, y = {}, b = c("start", "drag", "end"), x = 0, S, C, w, T, E = 0;
|
|
85
85
|
function D(e) {
|
|
86
86
|
e.on("mousedown.drag", O).filter(v).on("touchstart.drag", j).on("touchmove.drag", M, s).on("touchend.drag touchcancel.drag", N).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
|
|
87
87
|
}
|
|
88
|
-
function O(t,
|
|
89
|
-
if (!(T || !h.call(this, t,
|
|
90
|
-
var
|
|
91
|
-
|
|
88
|
+
function O(t, r) {
|
|
89
|
+
if (!(T || !h.call(this, t, r))) {
|
|
90
|
+
var o = P(this, g.call(this, t, r), t, r, "mouse");
|
|
91
|
+
o && (e(t.view).on("mousemove.drag", k, n).on("mouseup.drag", A, n), i(t.view), a(t), w = !1, S = t.clientX, C = t.clientY, o("start", t));
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
function k(e) {
|
|
95
|
-
if (
|
|
96
|
-
var
|
|
97
|
-
w =
|
|
95
|
+
if (o(e), !w) {
|
|
96
|
+
var t = e.clientX - S, n = e.clientY - C;
|
|
97
|
+
w = t * t + n * n > E;
|
|
98
98
|
}
|
|
99
99
|
y.mouse("drag", e);
|
|
100
100
|
}
|
|
101
101
|
function A(n) {
|
|
102
|
-
e(n.view).on("mousemove.drag mouseup.drag", null),
|
|
102
|
+
e(n.view).on("mousemove.drag mouseup.drag", null), t(n.view, w), o(n), y.mouse("end", n);
|
|
103
103
|
}
|
|
104
104
|
function j(e, t) {
|
|
105
105
|
if (h.call(this, e, t)) {
|
|
106
|
-
var n = e.changedTouches,
|
|
107
|
-
for (o = 0; o <
|
|
106
|
+
var n = e.changedTouches, r = g.call(this, e, t), i = n.length, o, s;
|
|
107
|
+
for (o = 0; o < i; ++o) (s = P(this, r, e, t, n[o].identifier, n[o])) && (a(e), s("start", e, n[o]));
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
function M(e) {
|
|
111
|
-
var
|
|
112
|
-
for (
|
|
111
|
+
var t = e.changedTouches, n = t.length, r, i;
|
|
112
|
+
for (r = 0; r < n; ++r) (i = y[t[r].identifier]) && (o(e), i("drag", e, t[r]));
|
|
113
113
|
}
|
|
114
114
|
function N(e) {
|
|
115
|
-
var t = e.changedTouches, n = t.length,
|
|
115
|
+
var t = e.changedTouches, n = t.length, r, i;
|
|
116
116
|
for (T && clearTimeout(T), T = setTimeout(function() {
|
|
117
117
|
T = null;
|
|
118
|
-
}, 500),
|
|
118
|
+
}, 500), r = 0; r < n; ++r) (i = y[t[r].identifier]) && (a(e), i("end", e, t[r]));
|
|
119
119
|
}
|
|
120
|
-
function P(e, t, n,
|
|
121
|
-
var s = b.copy(), c =
|
|
120
|
+
function P(e, t, n, i, a, o) {
|
|
121
|
+
var s = b.copy(), c = r(o || n, t), l, d, f;
|
|
122
122
|
if ((f = _.call(e, new u("beforestart", {
|
|
123
123
|
sourceEvent: n,
|
|
124
124
|
target: D,
|
|
@@ -129,14 +129,14 @@ function h() {
|
|
|
129
129
|
dx: 0,
|
|
130
130
|
dy: 0,
|
|
131
131
|
dispatch: s
|
|
132
|
-
}),
|
|
132
|
+
}), i)) != null) return l = f.x - c[0] || 0, d = f.y - c[1] || 0, function n(o, p, m) {
|
|
133
133
|
var h = c, g;
|
|
134
134
|
switch (o) {
|
|
135
135
|
case "start":
|
|
136
136
|
y[a] = n, g = x++;
|
|
137
137
|
break;
|
|
138
138
|
case "end": delete y[a], --x;
|
|
139
|
-
case "drag": c =
|
|
139
|
+
case "drag": c = r(m || p, t), g = x;
|
|
140
140
|
}
|
|
141
141
|
s.call(o, e, new u(o, {
|
|
142
142
|
sourceEvent: p,
|
|
@@ -149,7 +149,7 @@ function h() {
|
|
|
149
149
|
dx: c[0] - h[0],
|
|
150
150
|
dy: c[1] - h[1],
|
|
151
151
|
dispatch: s
|
|
152
|
-
}),
|
|
152
|
+
}), i);
|
|
153
153
|
};
|
|
154
154
|
}
|
|
155
155
|
return D.filter = function(e) {
|
|
@@ -170,4 +170,4 @@ function h() {
|
|
|
170
170
|
//#endregion
|
|
171
171
|
export { h as t };
|
|
172
172
|
|
|
173
|
-
//# sourceMappingURL=drag-
|
|
173
|
+
//# sourceMappingURL=drag-DLokvdmv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drag-B46QGUMq.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-DLokvdmv.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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"}
|