@dpuse/dpuse-tool-d3-visualiser 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +419 -0
  3. package/dist/axis-B7xlWKkC.js +1621 -0
  4. package/dist/axis-B7xlWKkC.js.map +1 -0
  5. package/dist/billboardJs-BTW-G9h0.js +7313 -0
  6. package/dist/billboardJs-BTW-G9h0.js.map +1 -0
  7. package/dist/bump-znhpCF6A.js +75 -0
  8. package/dist/bump-znhpCF6A.js.map +1 -0
  9. package/dist/dpuse-tool-d3-visualiser.css +11 -0
  10. package/dist/dpuse-tool-d3-visualiser.es.js +68 -0
  11. package/dist/dpuse-tool-d3-visualiser.es.js.map +1 -0
  12. package/dist/drag-B46QGUMq.js +173 -0
  13. package/dist/drag-B46QGUMq.js.map +1 -0
  14. package/dist/erdDiagram-b-qDkEhY.js +1934 -0
  15. package/dist/erdDiagram-b-qDkEhY.js.map +1 -0
  16. package/dist/linear-J4iYa1Bf.js +34 -0
  17. package/dist/linear-J4iYa1Bf.js.map +1 -0
  18. package/dist/link-Dti9fi9g.js +33 -0
  19. package/dist/link-Dti9fi9g.js.map +1 -0
  20. package/dist/networkDiagram-QWVy8iRy.js +493 -0
  21. package/dist/networkDiagram-QWVy8iRy.js.map +1 -0
  22. package/dist/observablePlot-D7o8-dnK.js +7008 -0
  23. package/dist/observablePlot-D7o8-dnK.js.map +1 -0
  24. package/dist/path-Bt1sPr2f.js +65 -0
  25. package/dist/path-Bt1sPr2f.js.map +1 -0
  26. package/dist/sankeyDiagram-Dgf87Zt4.js +360 -0
  27. package/dist/sankeyDiagram-Dgf87Zt4.js.map +1 -0
  28. package/dist/select-BIuoFcZG.js +649 -0
  29. package/dist/select-BIuoFcZG.js.map +1 -0
  30. package/dist/src-B7SGbtRQ.js +332 -0
  31. package/dist/src-B7SGbtRQ.js.map +1 -0
  32. package/dist/src-DnMaAyIP.js +1194 -0
  33. package/dist/src-DnMaAyIP.js.map +1 -0
  34. package/dist/sum-BAZU479z.js +36 -0
  35. package/dist/sum-BAZU479z.js.map +1 -0
  36. package/dist/treeDiagram-BJ_QF4os.js +277 -0
  37. package/dist/treeDiagram-BJ_QF4os.js.map +1 -0
  38. package/dist/types/eslint.config.d.ts +3 -0
  39. package/dist/types/src/billboardJs.d.ts +15 -0
  40. package/dist/types/src/erdDiagram.d.ts +29 -0
  41. package/dist/types/src/index.d.ts +33 -0
  42. package/dist/types/src/networkDiagram.d.ts +22 -0
  43. package/dist/types/src/observablePlot.d.ts +8 -0
  44. package/dist/types/src/palette.d.ts +15 -0
  45. package/dist/types/src/sankeyDiagram.d.ts +24 -0
  46. package/dist/types/src/treeDiagram.d.ts +22 -0
  47. package/dist/types/tests/billboardJs.test.d.ts +1 -0
  48. package/dist/types/tests/erdDiagram.test.d.ts +1 -0
  49. package/dist/types/tests/importIndex.test.d.ts +1 -0
  50. package/dist/types/tests/networkDiagram.test.d.ts +1 -0
  51. package/dist/types/tests/observablePlot.test.d.ts +1 -0
  52. package/dist/types/tests/sankeyDiagram.test.d.ts +1 -0
  53. package/dist/types/tests/treeDiagram.test.d.ts +1 -0
  54. package/dist/types/vite.config.d.ts +2 -0
  55. package/dist/types/vitest.config.d.ts +2 -0
  56. package/package.json +97 -0
@@ -0,0 +1,75 @@
1
+ import { t as e } from "./path-Bt1sPr2f.js";
2
+ //#region node_modules/d3-shape/src/constant.js
3
+ function t(e) {
4
+ return function() {
5
+ return e;
6
+ };
7
+ }
8
+ //#endregion
9
+ //#region node_modules/d3-shape/src/path.js
10
+ function n(t) {
11
+ let n = 3;
12
+ return t.digits = function(e) {
13
+ if (!arguments.length) return n;
14
+ if (e == null) n = null;
15
+ else {
16
+ let t = Math.floor(e);
17
+ if (!(t >= 0)) throw RangeError(`invalid digits: ${e}`);
18
+ n = t;
19
+ }
20
+ return t;
21
+ }, () => new e(n);
22
+ }
23
+ //#endregion
24
+ //#region node_modules/d3-shape/src/array.js
25
+ var r = Array.prototype.slice;
26
+ function i(e) {
27
+ return typeof e == "object" && "length" in e ? e : Array.from(e);
28
+ }
29
+ //#endregion
30
+ //#region node_modules/d3-shape/src/point.js
31
+ function a(e) {
32
+ return e[0];
33
+ }
34
+ function o(e) {
35
+ return e[1];
36
+ }
37
+ //#endregion
38
+ //#region node_modules/d3-shape/src/curve/bump.js
39
+ var s = class {
40
+ constructor(e, t) {
41
+ this._context = e, this._x = t;
42
+ }
43
+ areaStart() {
44
+ this._line = 0;
45
+ }
46
+ areaEnd() {
47
+ this._line = NaN;
48
+ }
49
+ lineStart() {
50
+ this._point = 0;
51
+ }
52
+ lineEnd() {
53
+ (this._line || this._line !== 0 && this._point === 1) && this._context.closePath(), this._line = 1 - this._line;
54
+ }
55
+ point(e, t) {
56
+ switch (e = +e, t = +t, this._point) {
57
+ case 0:
58
+ this._point = 1, this._line ? this._context.lineTo(e, t) : this._context.moveTo(e, t);
59
+ break;
60
+ case 1: this._point = 2;
61
+ default: this._x ? this._context.bezierCurveTo(this._x0 = (this._x0 + e) / 2, this._y0, this._x0, t, e, t) : this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + t) / 2, e, this._y0, e, t);
62
+ }
63
+ this._x0 = e, this._y0 = t;
64
+ }
65
+ };
66
+ function c(e) {
67
+ return new s(e, !0);
68
+ }
69
+ function l(e) {
70
+ return new s(e, !1);
71
+ }
72
+ //#endregion
73
+ export { i as a, t as c, o as i, l as n, r as o, a as r, n as s, c as t };
74
+
75
+ //# sourceMappingURL=bump-znhpCF6A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bump-znhpCF6A.js","names":[],"sources":["../node_modules/d3-shape/src/constant.js","../node_modules/d3-shape/src/path.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/curve/bump.js"],"sourcesContent":["export default function(x) {\n return function constant() {\n return x;\n };\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n"],"x_google_ignoreList":[0,1,2,3,4],"mappings":";;AAAA,SAAA,EAAwB,GAAG;CACzB,OAAO,WAAoB;EACzB,OAAO;CACT;AACF;;;ACFA,SAAgB,EAAS,GAAO;CAC9B,IAAI,IAAS;CAcb,OAZA,EAAM,SAAS,SAAS,GAAG;EACzB,IAAI,CAAC,UAAU,QAAQ,OAAO;EAC9B,IAAI,KAAK,MACP,IAAS;OACJ;GACL,IAAM,IAAI,KAAK,MAAM,CAAC;GACtB,IAAI,EAAE,KAAK,IAAI,MAAU,WAAW,mBAAmB,GAAG;GAC1D,IAAS;EACX;EACA,OAAO;CACT,SAEa,IAAI,EAAK,CAAM;AAC9B;;;AClBA,IAAW,IAAQ,MAAM,UAAU;AAEnC,SAAA,EAAwB,GAAG;CACzB,OAAO,OAAO,KAAM,YAAY,YAAY,IACxC,IACA,MAAM,KAAK,CAAC;AAClB;;;ACNA,SAAgB,EAAE,GAAG;CACnB,OAAO,EAAE;AACX;AAEA,SAAgB,EAAE,GAAG;CACnB,OAAO,EAAE;AACX;;;ACJA,IAAM,IAAN,MAAW;CACT,YAAY,GAAS,GAAG;EAEtB,AADA,KAAK,WAAW,GAChB,KAAK,KAAK;CACZ;CACA,YAAY;EACV,KAAK,QAAQ;CACf;CACA,UAAU;EACR,KAAK,QAAQ;CACf;CACA,YAAY;EACV,KAAK,SAAS;CAChB;CACA,UAAU;EAER,CADI,KAAK,SAAU,KAAK,UAAU,KAAK,KAAK,WAAW,MAAI,KAAK,SAAS,UAAU,GACnF,KAAK,QAAQ,IAAI,KAAK;CACxB;CACA,MAAM,GAAG,GAAG;EAEV,QADA,IAAI,CAAC,GAAG,IAAI,CAAC,GACL,KAAK,QAAb;GACE,KAAK;IAEH,AADA,KAAK,SAAS,GACV,KAAK,QAAO,KAAK,SAAS,OAAO,GAAG,CAAC,IACpC,KAAK,SAAS,OAAO,GAAG,CAAC;IAC9B;GAEF,KAAK,GAAG,KAAK,SAAS;GACtB,SACE,AAAI,KAAK,KAAI,KAAK,SAAS,cAAc,KAAK,OAAO,KAAK,MAAM,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,CAAC,IAC9F,KAAK,SAAS,cAAc,KAAK,KAAK,KAAK,OAAO,KAAK,MAAM,KAAK,GAAG,GAAG,KAAK,KAAK,GAAG,CAAC;EAG/F;EACA,KAAK,MAAM,GAAG,KAAK,MAAM;CAC3B;AACF;AA0BA,SAAgB,EAAM,GAAS;CAC7B,OAAO,IAAI,EAAK,GAAS,EAAI;AAC/B;AAEA,SAAgB,EAAM,GAAS;CAC7B,OAAO,IAAI,EAAK,GAAS,EAAK;AAChC"}
@@ -0,0 +1,11 @@
1
+ /*!
2
+ * Copyright (c) 2017 ~ present NAVER Corp.
3
+ * billboard.js project is licensed under the MIT license
4
+ *
5
+ * billboard.js, JavaScript chart library
6
+ * https://naver.github.io/billboard.js/
7
+ *
8
+ * @version 4.0.3
9
+ */
10
+ .bb svg{-webkit-tap-highlight-color:#0000;font:10px sans-serif}.bb path,.bb line{fill:none;stroke:#000}.bb text,.bb .bb-button{user-select:none}.bb-legend-item-tile,.bb-xgrid-focus,.bb-ygrid-focus,.bb-ygrid{shape-rendering:crispedges}.bb-chart-arcs .bb-needle,.bb-chart-arc .bb-gauge-value{fill:#000}.bb-chart-arc path{stroke:#fff}.bb-chart-arc rect{stroke:#fff;stroke-width:1px}.bb-chart-arc text{fill:#fff;font-size:13px}.bb-chart-arc .bb-arc-label-line{fill:none;stroke-width:1px;pointer-events:none;stroke:#7f7f7f}.bb-chart-arc>text.bb-arc-label-line-text{fill:#000}.bb-chart-funnels path{stroke-width:0}.bb-chart-funnels+.bb-chart-texts text{fill:#fff;font-size:13px}.bb-axis{shape-rendering:crispedges}.bb-axis .bb-axis-x-tooltip,.bb-axis .bb-axis-y-tooltip,.bb-axis .bb-axis-y2-tooltip{fill:#fff;white-space:nowrap;font-size:1em}.bb-grid{pointer-events:none}.bb-grid line{stroke:#aaa}.bb-grid text{fill:#aaa}.bb-xgrid,.bb-ygrid{stroke-dasharray:3 3}.bb-text.bb-empty{fill:gray;font-size:2em}.bb-line{stroke-width:1px}.bb-circle._expanded_{stroke-width:1px;stroke:#fff}.bb-selected-circle{fill:#fff;stroke-width:2px}.bb-bar{stroke-width:0}.bb-bar._expanded_{fill-opacity:.75}.bb-candlestick{stroke-width:1px}.bb-candlestick._expanded_{fill-opacity:.75}.bb-target.bb-focused,.bb-circles.bb-focused{opacity:1}.bb-target.bb-focused path.bb-line,.bb-target.bb-focused path.bb-step,.bb-circles.bb-focused path.bb-line,.bb-circles.bb-focused path.bb-step{stroke-width:2px}.bb-target.bb-defocused,.bb-circles.bb-defocused{opacity:.3!important}.bb-target.bb-defocused .text-overlapping,.bb-circles.bb-defocused .text-overlapping{opacity:.05!important}.bb-region{fill:#4682b4}.bb-region rect,.bb-zoom-brush,.bb-brush .extent{fill-opacity:.1}.bb-legend-item{user-select:none;font-size:12px}div.bb-canvas-legend{z-index:1;box-sizing:border-box;pointer-events:auto;color:#000;font-family:sans-serif;font-size:12px;display:block;position:absolute;overflow:visible}div.bb-canvas-legend.bb-canvas-legend-bottom{bottom:6px;left:0;right:0}div.bb-canvas-legend.bb-canvas-legend-right{overflow:visible}button.bb-legend-item{box-sizing:border-box;color:inherit;font-family:inherit;font-size:inherit;text-align:left;background:0 0;border:0;margin:0;padding:0;line-height:normal;display:block;position:absolute}button.bb-legend-item.bb-legend-item-interactive{cursor:pointer}.bb-canvas-legend .bb-legend-item-title{white-space:nowrap;pointer-events:none;position:absolute}.bb-canvas-legend .bb-legend-item-tile{box-sizing:border-box;width:10px;height:10px;display:block;position:absolute}.bb-canvas-legend .bb-legend-item-tile.bb-legend-item-tile-circle{border-radius:50%}.bb-legend-item-hidden{opacity:.15}.bb-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1px}.bb-title{font:14px sans-serif}.bb-chart-treemaps rect{stroke:#fff;stroke-width:1px}.bb-tooltip-container{z-index:10;user-select:none;transform:translateZ(0)}.bb-tooltip{border-collapse:collapse;border-spacing:0;empty-cells:show;opacity:.9;white-space:nowrap;background-color:#fff;box-shadow:7px 7px 12px -9px #777}.bb-tooltip tr{border:1px solid #ccc}.bb-tooltip th{text-align:left;color:#fff;background-color:#aaa;padding:2px 5px;font-size:14px}.bb-tooltip td{background-color:#fff;border-left:1px dotted #999;padding:3px 6px;font-size:13px}.bb-tooltip td>span,.bb-tooltip td>svg{width:10px;height:10px;margin-right:6px;display:inline-block}.bb-tooltip.value{text-align:right}.bb-area{stroke-width:0;opacity:.2}.bb-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}text.bb-chart-arcs-gauge-title{dominant-baseline:middle;font-size:2.7em}.bb-chart-arcs .bb-chart-arcs-background{fill:#e0e0e0;stroke:#fff}.bb-chart-arcs .bb-chart-arcs-gauge-unit{fill:#000;font-size:16px}.bb-chart-arcs .bb-chart-arcs-gauge-max,.bb-chart-arcs .bb-chart-arcs-gauge-min{fill:#777}.bb-chart-arcs .bb-levels circle{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-arcs .bb-levels text{fill:#848282}.bb-chart-radars .bb-levels polygon{fill:none;stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-levels text{fill:#848282}.bb-chart-radars .bb-axis line{stroke:#848282;stroke-width:.5px}.bb-chart-radars .bb-axis text{cursor:default;font-size:1.15em}.bb-chart-radars .bb-shapes polygon{fill-opacity:.2;stroke-width:1px}.bb-button{position:absolute;top:10px;right:10px}.bb-button .bb-zoom-reset{cursor:pointer;background-color:#fff;border:1px solid #ccc;border-radius:5px;padding:5px;font-size:11px}
11
+ /*$vite$:1*/
@@ -0,0 +1,68 @@
1
+ //#region src/index.ts
2
+ var e = class {
3
+ async renderBillboardJS(e, t, n) {
4
+ let { renderBillboardJS: r } = await import("./billboardJs-BTW-G9h0.js"), i = r(e, t);
5
+ return n?.(), {
6
+ chart: i.chart,
7
+ destroy: i.destroy,
8
+ resize: i.resize,
9
+ vendorId: "billboard.js"
10
+ };
11
+ }
12
+ async renderObservablePlot(e, t, n, r) {
13
+ let { renderObservablePlot: i } = await import("./observablePlot-D7o8-dnK.js"), a = i(e, t, n);
14
+ return r?.(), {
15
+ resize: a.resize,
16
+ get svg() {
17
+ return a.svg;
18
+ },
19
+ vendorId: "observable-plot"
20
+ };
21
+ }
22
+ async renderErdDiagram(e, t, n, r) {
23
+ let { renderErdDiagram: i } = await import("./erdDiagram-b-qDkEhY.js"), a = i(e, t, n);
24
+ return r?.(), {
25
+ resize: a.resize,
26
+ get svg() {
27
+ return a.svg;
28
+ },
29
+ vendorId: "d3"
30
+ };
31
+ }
32
+ async renderNetworkDiagram(e, t, n, r) {
33
+ let { renderNetworkDiagram: i } = await import("./networkDiagram-QWVy8iRy.js"), a = i(e, t, n);
34
+ return r?.(), {
35
+ destroy: a.destroy,
36
+ resize: a.resize,
37
+ get svg() {
38
+ return a.svg;
39
+ },
40
+ triggerAutoLayout: a.triggerAutoLayout,
41
+ vendorId: "d3"
42
+ };
43
+ }
44
+ async renderSankeyDiagram(e, t, n, r) {
45
+ let { renderSankeyDiagram: i } = await import("./sankeyDiagram-Dgf87Zt4.js"), a = i(e, t, n);
46
+ return r?.(), {
47
+ resize: a.resize,
48
+ get svg() {
49
+ return a.svg;
50
+ },
51
+ vendorId: "d3"
52
+ };
53
+ }
54
+ async renderTreeDiagram(e, t, n, r) {
55
+ let { renderTreeDiagram: i } = await import("./treeDiagram-BJ_QF4os.js"), a = i(e, t, n);
56
+ return r?.(), {
57
+ resize: a.resize,
58
+ get svg() {
59
+ return a.svg;
60
+ },
61
+ vendorId: "d3"
62
+ };
63
+ }
64
+ };
65
+ //#endregion
66
+ export { e as D3Tool };
67
+
68
+ //# sourceMappingURL=dpuse-tool-d3-visualiser.es.js.map
@@ -0,0 +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":";AAuCA,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,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"}
@@ -0,0 +1,173 @@
1
+ import { t as e } from "./select-BIuoFcZG.js";
2
+ import { C as t, D as n, E as r, O as i, S as a, T as o, w as s, x as c } from "./src-DnMaAyIP.js";
3
+ //#region node_modules/d3-drag/src/constant.js
4
+ var l = (e) => () => e;
5
+ //#endregion
6
+ //#region node_modules/d3-drag/src/event.js
7
+ function u(e, { sourceEvent: t, subject: n, target: r, identifier: i, active: a, x: o, y: s, dx: c, dy: l, dispatch: u }) {
8
+ Object.defineProperties(this, {
9
+ type: {
10
+ value: e,
11
+ enumerable: !0,
12
+ configurable: !0
13
+ },
14
+ sourceEvent: {
15
+ value: t,
16
+ enumerable: !0,
17
+ configurable: !0
18
+ },
19
+ subject: {
20
+ value: n,
21
+ enumerable: !0,
22
+ configurable: !0
23
+ },
24
+ target: {
25
+ value: r,
26
+ enumerable: !0,
27
+ configurable: !0
28
+ },
29
+ identifier: {
30
+ value: i,
31
+ enumerable: !0,
32
+ configurable: !0
33
+ },
34
+ active: {
35
+ value: a,
36
+ enumerable: !0,
37
+ configurable: !0
38
+ },
39
+ x: {
40
+ value: o,
41
+ enumerable: !0,
42
+ configurable: !0
43
+ },
44
+ y: {
45
+ value: s,
46
+ enumerable: !0,
47
+ configurable: !0
48
+ },
49
+ dx: {
50
+ value: c,
51
+ enumerable: !0,
52
+ configurable: !0
53
+ },
54
+ dy: {
55
+ value: l,
56
+ enumerable: !0,
57
+ configurable: !0
58
+ },
59
+ _: { value: u }
60
+ });
61
+ }
62
+ u.prototype.on = function() {
63
+ var e = this._.on.apply(this._, arguments);
64
+ return e === this._ ? this : e;
65
+ };
66
+ //#endregion
67
+ //#region node_modules/d3-drag/src/drag.js
68
+ function d(e) {
69
+ return !e.ctrlKey && !e.button;
70
+ }
71
+ function f() {
72
+ return this.parentNode;
73
+ }
74
+ function p(e, t) {
75
+ return t ?? {
76
+ x: e.x,
77
+ y: e.y
78
+ };
79
+ }
80
+ function m() {
81
+ return navigator.maxTouchPoints || "ontouchstart" in this;
82
+ }
83
+ function h() {
84
+ var h = d, g = f, _ = p, v = m, y = {}, b = n("start", "drag", "end"), x = 0, S, C, w, T, E = 0;
85
+ function D(e) {
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
+ }
88
+ function O(t, n) {
89
+ if (!(T || !h.call(this, t, n))) {
90
+ var i = P(this, g.call(this, t, n), t, n, "mouse");
91
+ i && (e(t.view).on("mousemove.drag", k, o).on("mouseup.drag", A, o), c(t.view), r(t), w = !1, S = t.clientX, C = t.clientY, i("start", t));
92
+ }
93
+ }
94
+ function k(e) {
95
+ if (t(e), !w) {
96
+ var n = e.clientX - S, r = e.clientY - C;
97
+ w = n * n + r * r > E;
98
+ }
99
+ y.mouse("drag", e);
100
+ }
101
+ function A(n) {
102
+ e(n.view).on("mousemove.drag mouseup.drag", null), a(n.view, w), t(n), y.mouse("end", n);
103
+ }
104
+ function j(e, t) {
105
+ if (h.call(this, e, t)) {
106
+ var n = e.changedTouches, i = g.call(this, e, t), a = n.length, o, s;
107
+ for (o = 0; o < a; ++o) (s = P(this, i, e, t, n[o].identifier, n[o])) && (r(e), s("start", e, n[o]));
108
+ }
109
+ }
110
+ function M(e) {
111
+ var n = e.changedTouches, r = n.length, i, a;
112
+ for (i = 0; i < r; ++i) (a = y[n[i].identifier]) && (t(e), a("drag", e, n[i]));
113
+ }
114
+ function N(e) {
115
+ var t = e.changedTouches, n = t.length, i, a;
116
+ for (T && clearTimeout(T), T = setTimeout(function() {
117
+ T = null;
118
+ }, 500), i = 0; i < n; ++i) (a = y[t[i].identifier]) && (r(e), a("end", e, t[i]));
119
+ }
120
+ function P(e, t, n, r, a, o) {
121
+ var s = b.copy(), c = i(o || n, t), l, d, f;
122
+ if ((f = _.call(e, new u("beforestart", {
123
+ sourceEvent: n,
124
+ target: D,
125
+ identifier: a,
126
+ active: x,
127
+ x: c[0],
128
+ y: c[1],
129
+ dx: 0,
130
+ dy: 0,
131
+ dispatch: s
132
+ }), r)) != null) return l = f.x - c[0] || 0, d = f.y - c[1] || 0, function n(o, p, m) {
133
+ var h = c, g;
134
+ switch (o) {
135
+ case "start":
136
+ y[a] = n, g = x++;
137
+ break;
138
+ case "end": delete y[a], --x;
139
+ case "drag": c = i(m || p, t), g = x;
140
+ }
141
+ s.call(o, e, new u(o, {
142
+ sourceEvent: p,
143
+ subject: f,
144
+ target: D,
145
+ identifier: a,
146
+ active: g,
147
+ x: c[0] + l,
148
+ y: c[1] + d,
149
+ dx: c[0] - h[0],
150
+ dy: c[1] - h[1],
151
+ dispatch: s
152
+ }), r);
153
+ };
154
+ }
155
+ return D.filter = function(e) {
156
+ return arguments.length ? (h = typeof e == "function" ? e : l(!!e), D) : h;
157
+ }, D.container = function(e) {
158
+ return arguments.length ? (g = typeof e == "function" ? e : l(e), D) : g;
159
+ }, D.subject = function(e) {
160
+ return arguments.length ? (_ = typeof e == "function" ? e : l(e), D) : _;
161
+ }, D.touchable = function(e) {
162
+ return arguments.length ? (v = typeof e == "function" ? e : l(!!e), D) : v;
163
+ }, D.on = function() {
164
+ var e = b.on.apply(b, arguments);
165
+ return e === b ? D : e;
166
+ }, D.clickDistance = function(e) {
167
+ return arguments.length ? (E = (e = +e) * e, D) : Math.sqrt(E);
168
+ }, D;
169
+ }
170
+ //#endregion
171
+ export { h as t };
172
+
173
+ //# sourceMappingURL=drag-B46QGUMq.js.map
@@ -0,0 +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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"}