@shumoku/renderer 0.2.1 → 0.2.4

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 (46) hide show
  1. package/dist/html/index.d.ts +25 -0
  2. package/dist/html/index.d.ts.map +1 -1
  3. package/dist/html/index.js +742 -158
  4. package/dist/html/index.js.map +1 -1
  5. package/dist/html/navigation.d.ts +54 -0
  6. package/dist/html/navigation.d.ts.map +1 -0
  7. package/dist/html/navigation.js +210 -0
  8. package/dist/html/navigation.js.map +1 -0
  9. package/dist/html/runtime.d.ts +2 -1
  10. package/dist/html/runtime.d.ts.map +1 -1
  11. package/dist/html/runtime.js +245 -482
  12. package/dist/html/runtime.js.map +1 -1
  13. package/dist/html/spotlight.d.ts +9 -0
  14. package/dist/html/spotlight.d.ts.map +1 -0
  15. package/dist/html/spotlight.js +119 -0
  16. package/dist/html/spotlight.js.map +1 -0
  17. package/dist/html/tooltip.d.ts +14 -0
  18. package/dist/html/tooltip.d.ts.map +1 -0
  19. package/dist/html/tooltip.js +133 -0
  20. package/dist/html/tooltip.js.map +1 -0
  21. package/dist/html/viewbox.d.ts +14 -0
  22. package/dist/html/viewbox.d.ts.map +1 -0
  23. package/dist/html/viewbox.js +21 -0
  24. package/dist/html/viewbox.js.map +1 -0
  25. package/dist/iife-string.d.ts +2 -0
  26. package/dist/iife-string.js +1 -1
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/shumoku-interactive.iife.js +25 -20
  30. package/dist/svg.d.ts +27 -0
  31. package/dist/svg.d.ts.map +1 -1
  32. package/dist/svg.js +202 -101
  33. package/dist/svg.js.map +1 -1
  34. package/dist/types.d.ts +2 -0
  35. package/dist/types.d.ts.map +1 -1
  36. package/package.json +5 -2
  37. package/src/build-iife-string.ts +26 -19
  38. package/src/html/index.ts +880 -226
  39. package/src/html/navigation.ts +256 -0
  40. package/src/html/runtime.ts +412 -654
  41. package/src/html/spotlight.ts +135 -0
  42. package/src/html/tooltip.ts +141 -0
  43. package/src/html/viewbox.ts +28 -0
  44. package/src/index.ts +25 -22
  45. package/src/svg.ts +1640 -1502
  46. package/src/types.ts +127 -125
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/html/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/html/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Spotlight Module
3
+ * Handles element highlighting with overlay and glow effect
4
+ */
5
+ export declare function updateHighlightPosition(): void;
6
+ export declare function highlightElement(el: Element | null): void;
7
+ export declare function getCurrentHighlight(): Element | null;
8
+ export declare function destroySpotlight(): void;
9
+ //# sourceMappingURL=spotlight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spotlight.d.ts","sourceRoot":"","sources":["../../src/html/spotlight.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0CH,wBAAgB,uBAAuB,IAAI,IAAI,CAqB9C;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAiDzD;AAED,wBAAgB,mBAAmB,IAAI,OAAO,GAAG,IAAI,CAEpD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAWvC"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Spotlight Module
3
+ * Handles element highlighting with overlay and glow effect
4
+ */
5
+ let overlay = null;
6
+ let highlightContainer = null;
7
+ let currentHighlight = null;
8
+ let currentMiniSvg = null;
9
+ function getOverlay() {
10
+ if (!overlay) {
11
+ overlay = document.createElement('div');
12
+ overlay.style.cssText = `
13
+ position: fixed;
14
+ top: 0;
15
+ left: 0;
16
+ right: 0;
17
+ bottom: 0;
18
+ background: rgba(0, 0, 0, 0.5);
19
+ pointer-events: none;
20
+ opacity: 0;
21
+ transition: opacity 0.15s ease;
22
+ z-index: 9998;
23
+ `;
24
+ document.body.appendChild(overlay);
25
+ }
26
+ return overlay;
27
+ }
28
+ function getHighlightContainer() {
29
+ if (!highlightContainer) {
30
+ highlightContainer = document.createElement('div');
31
+ highlightContainer.style.cssText = `
32
+ position: fixed;
33
+ top: 0;
34
+ left: 0;
35
+ pointer-events: none;
36
+ z-index: 9999;
37
+ `;
38
+ document.body.appendChild(highlightContainer);
39
+ }
40
+ return highlightContainer;
41
+ }
42
+ export function updateHighlightPosition() {
43
+ if (!currentHighlight || !currentMiniSvg)
44
+ return;
45
+ if (!document.contains(currentHighlight)) {
46
+ highlightElement(null);
47
+ return;
48
+ }
49
+ const svg = currentHighlight.closest('svg');
50
+ if (!svg)
51
+ return;
52
+ const rect = svg.getBoundingClientRect();
53
+ const viewBox = svg.getAttribute('viewBox');
54
+ if (viewBox) {
55
+ currentMiniSvg.setAttribute('viewBox', viewBox);
56
+ }
57
+ currentMiniSvg.style.left = `${rect.left}px`;
58
+ currentMiniSvg.style.top = `${rect.top}px`;
59
+ currentMiniSvg.style.width = `${rect.width}px`;
60
+ currentMiniSvg.style.height = `${rect.height}px`;
61
+ }
62
+ export function highlightElement(el) {
63
+ if (el === currentHighlight)
64
+ return;
65
+ if (currentHighlight) {
66
+ currentHighlight.classList.remove('shumoku-highlight');
67
+ }
68
+ const container = getHighlightContainer();
69
+ container.innerHTML = '';
70
+ currentMiniSvg = null;
71
+ currentHighlight = el;
72
+ const ov = getOverlay();
73
+ if (el) {
74
+ el.classList.add('shumoku-highlight');
75
+ const svg = el.closest('svg');
76
+ if (svg) {
77
+ const viewBox = svg.getAttribute('viewBox');
78
+ if (viewBox) {
79
+ const clone = el.cloneNode(true);
80
+ clone.classList.remove('shumoku-highlight');
81
+ const miniSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
82
+ miniSvg.setAttribute('viewBox', viewBox);
83
+ miniSvg.style.cssText = `
84
+ position: absolute;
85
+ overflow: visible;
86
+ filter: drop-shadow(0 0 4px #fff) drop-shadow(0 0 8px #fff) drop-shadow(0 0 12px rgba(100, 150, 255, 0.8));
87
+ `;
88
+ const defs = svg.querySelector('defs');
89
+ if (defs) {
90
+ miniSvg.appendChild(defs.cloneNode(true));
91
+ }
92
+ miniSvg.appendChild(clone);
93
+ container.appendChild(miniSvg);
94
+ currentMiniSvg = miniSvg;
95
+ updateHighlightPosition();
96
+ }
97
+ }
98
+ ov.style.opacity = '1';
99
+ }
100
+ else {
101
+ ov.style.opacity = '0';
102
+ }
103
+ }
104
+ export function getCurrentHighlight() {
105
+ return currentHighlight;
106
+ }
107
+ export function destroySpotlight() {
108
+ if (overlay) {
109
+ overlay.remove();
110
+ overlay = null;
111
+ }
112
+ if (highlightContainer) {
113
+ highlightContainer.remove();
114
+ highlightContainer = null;
115
+ }
116
+ currentHighlight = null;
117
+ currentMiniSvg = null;
118
+ }
119
+ //# sourceMappingURL=spotlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spotlight.js","sourceRoot":"","sources":["../../src/html/spotlight.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Tooltip Module
3
+ * Handles tooltip creation, positioning, and display
4
+ */
5
+ export declare function getTooltip(): HTMLDivElement;
6
+ export declare function showTooltip(text: string, x: number, y: number): void;
7
+ export declare function hideTooltip(): void;
8
+ export declare function destroyTooltip(): void;
9
+ export interface TooltipInfo {
10
+ text: string;
11
+ element: Element;
12
+ }
13
+ export declare function getTooltipInfo(el: Element): TooltipInfo | null;
14
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/html/tooltip.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,wBAAgB,UAAU,IAAI,cAAc,CAuB3C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAqBpE;AAED,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAKrC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAmE9D"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Tooltip Module
3
+ * Handles tooltip creation, positioning, and display
4
+ */
5
+ let tooltip = null;
6
+ export function getTooltip() {
7
+ if (!tooltip) {
8
+ tooltip = document.createElement('div');
9
+ tooltip.style.cssText = `
10
+ position: fixed;
11
+ z-index: 10000;
12
+ padding: 8px 12px;
13
+ background: rgba(30, 41, 59, 0.95);
14
+ color: #fff;
15
+ font-size: 13px;
16
+ line-height: 1.4;
17
+ border-radius: 6px;
18
+ pointer-events: none;
19
+ opacity: 0;
20
+ transition: opacity 0.15s;
21
+ font-family: system-ui, -apple-system, sans-serif;
22
+ max-width: 280px;
23
+ white-space: pre-line;
24
+ box-shadow: 0 4px 12px rgba(0,0,0,0.15);
25
+ `;
26
+ document.body.appendChild(tooltip);
27
+ }
28
+ return tooltip;
29
+ }
30
+ export function showTooltip(text, x, y) {
31
+ const t = getTooltip();
32
+ t.textContent = text;
33
+ t.style.opacity = '1';
34
+ requestAnimationFrame(() => {
35
+ const rect = t.getBoundingClientRect();
36
+ const pad = 12;
37
+ let left = x + pad;
38
+ let top = y - rect.height - pad;
39
+ if (left + rect.width > window.innerWidth - pad) {
40
+ left = x - rect.width - pad;
41
+ }
42
+ if (top < pad) {
43
+ top = y + pad;
44
+ }
45
+ t.style.left = `${Math.max(pad, left)}px`;
46
+ t.style.top = `${Math.max(pad, top)}px`;
47
+ });
48
+ }
49
+ export function hideTooltip() {
50
+ if (tooltip) {
51
+ tooltip.style.opacity = '0';
52
+ }
53
+ }
54
+ export function destroyTooltip() {
55
+ if (tooltip) {
56
+ tooltip.remove();
57
+ tooltip = null;
58
+ }
59
+ }
60
+ export function getTooltipInfo(el) {
61
+ const port = el.closest('.port[data-port]');
62
+ if (port) {
63
+ const portId = port.getAttribute('data-port') || '';
64
+ const deviceId = port.getAttribute('data-port-device') || '';
65
+ return { text: `${deviceId}:${portId}`, element: port };
66
+ }
67
+ const linkGroup = el.closest('.link-group[data-link-id]');
68
+ if (linkGroup) {
69
+ let from = linkGroup.getAttribute('data-link-from') || '';
70
+ let to = linkGroup.getAttribute('data-link-to') || '';
71
+ const bw = linkGroup.getAttribute('data-link-bandwidth');
72
+ const vlan = linkGroup.getAttribute('data-link-vlan');
73
+ const jsonAttr = linkGroup.getAttribute('data-link-json');
74
+ // For export links, show device:port ↔ destination device:port
75
+ const fromIsExport = from.startsWith('__export_');
76
+ const toIsExport = to.startsWith('__export_');
77
+ if ((fromIsExport || toIsExport) && jsonAttr) {
78
+ try {
79
+ const linkData = JSON.parse(jsonAttr);
80
+ const meta = linkData.metadata;
81
+ if (meta?._destDevice) {
82
+ // Get the actual device endpoint (non-export side)
83
+ const localDevice = fromIsExport ? to : from;
84
+ // Get the destination device:port from metadata
85
+ const destDevice = meta._destPort
86
+ ? `${meta._destDevice}:${meta._destPort}`
87
+ : meta._destDevice;
88
+ // Show: "local device ↔ remote device"
89
+ let text = `${localDevice} ↔ ${destDevice}`;
90
+ if (bw)
91
+ text += `\n${bw}`;
92
+ if (vlan)
93
+ text += `\nVLAN: ${vlan}`;
94
+ return { text, element: linkGroup };
95
+ }
96
+ }
97
+ catch {
98
+ // Fall through to default display
99
+ }
100
+ }
101
+ let text = `${from} ↔ ${to}`;
102
+ if (bw)
103
+ text += `\n${bw}`;
104
+ if (vlan)
105
+ text += `\nVLAN: ${vlan}`;
106
+ return { text, element: linkGroup };
107
+ }
108
+ const node = el.closest('.node[data-id]');
109
+ if (node) {
110
+ const json = node.getAttribute('data-device-json');
111
+ if (json) {
112
+ try {
113
+ const data = JSON.parse(json);
114
+ const lines = [];
115
+ if (data.label)
116
+ lines.push(Array.isArray(data.label) ? data.label.join(' ') : data.label);
117
+ if (data.type)
118
+ lines.push(`Type: ${data.type}`);
119
+ if (data.vendor)
120
+ lines.push(`Vendor: ${data.vendor}`);
121
+ if (data.model)
122
+ lines.push(`Model: ${data.model}`);
123
+ return { text: lines.join('\n'), element: node };
124
+ }
125
+ catch {
126
+ // fallthrough
127
+ }
128
+ }
129
+ return { text: node.getAttribute('data-id') || '', element: node };
130
+ }
131
+ return null;
132
+ }
133
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/html/tooltip.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,IAAI,OAAO,GAA0B,IAAI,CAAA;AAEzC,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACvC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;;;;;;;;;KAgBvB,CAAA;QACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,CAAS,EAAE,CAAS;IAC5D,MAAM,CAAC,GAAG,UAAU,EAAE,CAAA;IACtB,CAAC,CAAC,WAAW,GAAG,IAAI,CAAA;IACpB,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;IAErB,qBAAqB,CAAC,GAAG,EAAE;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAA;QACtC,MAAM,GAAG,GAAG,EAAE,CAAA;QACd,IAAI,IAAI,GAAG,CAAC,GAAG,GAAG,CAAA;QAClB,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;QAE/B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;YAChD,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,CAAA;QAC7B,CAAC;QACD,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;YACd,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;QACf,CAAC;QAED,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAA;QACzC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAA;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAA;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,MAAM,EAAE,CAAA;QAChB,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,cAAc,CAAC,EAAW;IACxC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAC3C,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAA;QAC5D,OAAO,EAAE,IAAI,EAAE,GAAG,QAAQ,IAAI,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACzD,CAAC;IAED,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAA;IACzD,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;QACzD,IAAI,EAAE,GAAG,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QACrD,MAAM,EAAE,GAAG,SAAS,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAA;QACxD,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAA;QACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAA;QAEzD,+DAA+D;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QACjD,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;QAC7C,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAA;gBAC9B,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;oBACtB,mDAAmD;oBACnD,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;oBAC5C,gDAAgD;oBAChD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS;wBAC/B,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE;wBACzC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAA;oBACpB,uCAAuC;oBACvC,IAAI,IAAI,GAAG,GAAG,WAAW,MAAM,UAAU,EAAE,CAAA;oBAC3C,IAAI,EAAE;wBAAE,IAAI,IAAI,KAAK,EAAE,EAAE,CAAA;oBACzB,IAAI,IAAI;wBAAE,IAAI,IAAI,WAAW,IAAI,EAAE,CAAA;oBACnC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;gBACrC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,GAAG,GAAG,IAAI,MAAM,EAAE,EAAE,CAAA;QAC5B,IAAI,EAAE;YAAE,IAAI,IAAI,KAAK,EAAE,EAAE,CAAA;QACzB,IAAI,IAAI;YAAE,IAAI,IAAI,WAAW,IAAI,EAAE,CAAA;QACnC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;IACrC,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACzC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAA;QAClD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC7B,MAAM,KAAK,GAAa,EAAE,CAAA;gBAC1B,IAAI,IAAI,CAAC,KAAK;oBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACzF,IAAI,IAAI,CAAC,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC/C,IAAI,IAAI,CAAC,MAAM;oBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;gBACrD,IAAI,IAAI,CAAC,KAAK;oBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;gBAClD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACpE,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ViewBox Utilities
3
+ * Handles SVG viewBox parsing and manipulation
4
+ */
5
+ export interface ViewBox {
6
+ x: number;
7
+ y: number;
8
+ width: number;
9
+ height: number;
10
+ }
11
+ export declare function parseViewBox(svg: SVGSVGElement): ViewBox | null;
12
+ export declare function setViewBox(svg: SVGSVGElement, vb: ViewBox, onUpdate?: () => void): void;
13
+ export declare function cloneViewBox(vb: ViewBox): ViewBox;
14
+ //# sourceMappingURL=viewbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewbox.d.ts","sourceRoot":"","sources":["../../src/html/viewbox.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,GAAG,IAAI,CAM/D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAGvF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAEjD"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * ViewBox Utilities
3
+ * Handles SVG viewBox parsing and manipulation
4
+ */
5
+ export function parseViewBox(svg) {
6
+ const vb = svg.getAttribute('viewBox');
7
+ if (!vb)
8
+ return null;
9
+ const parts = vb.split(/\s+|,/).map(Number);
10
+ if (parts.length !== 4 || parts.some(Number.isNaN))
11
+ return null;
12
+ return { x: parts[0], y: parts[1], width: parts[2], height: parts[3] };
13
+ }
14
+ export function setViewBox(svg, vb, onUpdate) {
15
+ svg.setAttribute('viewBox', `${vb.x} ${vb.y} ${vb.width} ${vb.height}`);
16
+ onUpdate?.();
17
+ }
18
+ export function cloneViewBox(vb) {
19
+ return { x: vb.x, y: vb.y, width: vb.width, height: vb.height };
20
+ }
21
+ //# sourceMappingURL=viewbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewbox.js","sourceRoot":"","sources":["../../src/html/viewbox.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,UAAU,YAAY,CAAC,GAAkB;IAC7C,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IACtC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAA;IACpB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/D,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AACxE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAkB,EAAE,EAAW,EAAE,QAAqB;IAC/E,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;IACvE,QAAQ,EAAE,EAAE,CAAA;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAW;IACtC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAA;AACjE,CAAC"}
@@ -0,0 +1,2 @@
1
+ // Auto-generated - do not edit
2
+ export declare const INTERACTIVE_IIFE: string;
@@ -1,2 +1,2 @@
1
1
  // Auto-generated - do not edit
2
- export const INTERACTIVE_IIFE = "(()=>{var{defineProperty:v,getOwnPropertyNames:zq,getOwnPropertyDescriptor:Fq}=Object,Lq=Object.prototype.hasOwnProperty;var Jq=new WeakMap,Aq=(J)=>{var I=Jq.get(J),q;if(I)return I;if(I=v({},\"__esModule\",{value:!0}),J&&typeof J===\"object\"||typeof J===\"function\")zq(J).map((Q)=>!Lq.call(I,Q)&&v(I,Q,{get:()=>J[Q],enumerable:!(q=Fq(J,Q))||q.enumerable}));return Jq.set(J,I),I};var Gq=(J,I)=>{for(var q in I)v(J,q,{get:I[q],enumerable:!0,configurable:!0,set:(Q)=>I[q]=()=>Q})};var Wq={};Gq(Wq,{ShumokuInteractive:()=>Qq});var W=null,Y=null,C=null,w=!1;function Uq(){if(!W)W=document.createElement(\"div\"),W.style.cssText=`\n position: fixed;\n z-index: 10000;\n padding: 6px 10px;\n background: #1e293b;\n color: #fff;\n font-size: 12px;\n border-radius: 4px;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.15s;\n font-family: system-ui, sans-serif;\n max-width: 300px;\n white-space: pre-line;\n `,document.body.appendChild(W);return W}function Kq(J,I,q){let Q=Uq();Q.textContent=J;let j=12,L=I+j,z=q+j;requestAnimationFrame(()=>{let _=Q.getBoundingClientRect();if(L+_.width>window.innerWidth-j)L=I-_.width-j;if(z+_.height>window.innerHeight-j)z=q-_.height-j;Q.style.left=`${Math.max(j,L)}px`,Q.style.top=`${Math.max(j,z)}px`}),Q.style.left=`${L}px`,Q.style.top=`${z}px`,Q.style.opacity=\"1\"}function x(){if(W)W.style.opacity=\"0\"}function Oq(){if(!Y)Y=document.createElement(\"div\"),Y.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.15s ease;\n z-index: 9998;\n `,document.body.appendChild(Y);return Y}var y=null,X=null;function Zq(){if(!y)y=document.createElement(\"div\"),y.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n pointer-events: none;\n z-index: 9999;\n `,document.body.appendChild(y);return y}function p(){if(!C||!X)return;if(!document.contains(C)){R(null);return}let J=C.closest(\"svg\");if(!J)return;let I=J.getBoundingClientRect(),q=J.getAttribute(\"viewBox\");if(q)X.setAttribute(\"viewBox\",q);X.style.left=`${I.left}px`,X.style.top=`${I.top}px`,X.style.width=`${I.width}px`,X.style.height=`${I.height}px`}function R(J){if(J===C)return;if(C)C.classList.remove(\"shumoku-highlight\");let I=Zq();I.innerHTML=\"\",X=null,C=J;let q=Oq();if(J){J.classList.add(\"shumoku-highlight\");let Q=J.closest(\"svg\");if(Q){let j=Q.getAttribute(\"viewBox\");if(j){let L=J.cloneNode(!0);L.classList.remove(\"shumoku-highlight\");let z=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");z.setAttribute(\"viewBox\",j),z.style.cssText=`\n position: absolute;\n overflow: visible;\n filter: drop-shadow(0 0 4px #fff) drop-shadow(0 0 8px #fff) drop-shadow(0 0 12px rgba(100, 150, 255, 0.8));\n `;let _=Q.querySelector(\"defs\");if(_)z.appendChild(_.cloneNode(!0));z.appendChild(L),I.appendChild(z),X=z,p()}}q.style.opacity=\"1\"}else q.style.opacity=\"0\"}function Dq(){}function c(J){let I=J.closest(\".port[data-port]\");if(I){let j=I.getAttribute(\"data-port\")||\"\";return{text:`${I.getAttribute(\"data-port-device\")||\"\"}:${j}`,element:I}}let q=J.closest(\".link-group[data-link-id]\");if(q){let j=q.getAttribute(\"data-link-from\")||\"\",L=q.getAttribute(\"data-link-to\")||\"\",z=q.getAttribute(\"data-link-bandwidth\"),_=q.getAttribute(\"data-link-vlan\"),b=`${j} ↔ ${L}`;if(z)b+=`\n${z}`;if(_)b+=`\nVLAN: ${_}`;return{text:b,element:q}}let Q=J.closest(\".node[data-id]\");if(Q){let j=Q.getAttribute(\"data-device-json\"),L;if(j)try{let z=JSON.parse(j);L=z.label||z.id}catch{L=Q.getAttribute(\"data-id\")||\"\"}else L=Q.getAttribute(\"data-id\")||\"\";return{text:L,element:Q}}return null}function f(J){let I=J.getAttribute(\"viewBox\");if(!I)return null;let q=I.split(/\\s+|,/).map(Number);if(q.length!==4||q.some(Number.isNaN))return null;return{x:q[0],y:q[1],width:q[2],height:q[3]}}function P(J,I){J.setAttribute(\"viewBox\",`${I.x} ${I.y} ${I.width} ${I.height}`)}function Nq(J){let I=typeof J.target===\"string\"?document.querySelector(J.target):J.target;if(!I)throw Error(\"Target not found\");let q=I.closest(\"svg\")||I.querySelector(\"svg\")||I;if(!(q instanceof SVGSVGElement))throw Error(\"SVG element not found\");Dq();let Q=J.panZoom?.enabled??!0,j=J.panZoom?.minScale??0.1,L=J.panZoom?.maxScale??10,z=1.2,_=null;(()=>{if(_=f(q),!_){let $=q.getBBox();_={x:$.x,y:$.y,width:$.width,height:$.height},P(q,_)}})();let $q=()=>{if(!_)return 1;let $=f(q);if(!$)return 1;return _.width/$.width},u=!1,G=!1,T=0,m=0,F=null,s=0,E=null,M=null,h=($)=>{if(G)return;if(w)return;let N=$,K=c(N.target);if(K)Kq(K.text,N.clientX,N.clientY),R(K.element);else x(),R(null)},g=()=>{if(w)return;if(G)return;x(),R(null)},l=($)=>{if(!Q)return;let N=$;if(N.button!==0)return;if(c(N.target))return;G=!0,T=N.clientX,m=N.clientY,F=f(q),q.style.cursor=\"grabbing\",$.preventDefault()},r=($)=>{if(!G||!F)return;let N=$,K=q.getBoundingClientRect(),k=N.clientX-T,A=N.clientY-m,O=F.width/K.width,Z=F.height/K.height;P(q,{x:F.x-k*O,y:F.y-A*Z,width:F.width,height:F.height})},a=()=>{if(G)G=!1,F=null,q.style.cursor=\"\"},n=($)=>{if(!Q)return;let N=$;N.preventDefault();let K=f(q);if(!K||!_)return;let k=q.getBoundingClientRect(),A=(N.clientX-k.left)/k.width,O=(N.clientY-k.top)/k.height,Z=K.x+K.width*A,U=K.y+K.height*O,H=N.deltaY>0?z:1/z,D=K.width*H,B=K.height*H,d=_.width/D;if(d<j||d>L)return;P(q,{x:Z-D*A,y:U-B*O,width:D,height:B})},o=($)=>{w=!0;let N=$;if(N.touches.length===1&&Q){let K=N.touches[0],k=document.elementFromPoint(K.clientX,K.clientY);if(!(k?c(k):null))G=!0,T=K.clientX,m=K.clientY,F=f(q)}else if(N.touches.length===2&&Q){G=!1;let K=N.touches[0],k=N.touches[1];s=Math.hypot(k.clientX-K.clientX,k.clientY-K.clientY),E=f(q);let A=q.getBoundingClientRect(),O=(K.clientX+k.clientX)/2,Z=(K.clientY+k.clientY)/2,U=E;if(U){let H=(O-A.left)/A.width,D=(Z-A.top)/A.height;M={x:U.x+U.width*H,y:U.y+U.height*D}}}},i=($)=>{let N=$;if(N.touches.length===1&&G&&F){let K=N.touches[0],k=q.getBoundingClientRect(),A=K.clientX-T,O=K.clientY-m,Z=F.width/k.width,U=F.height/k.height;P(q,{x:F.x-A*Z,y:F.y-O*U,width:F.width,height:F.height}),N.preventDefault()}else if(N.touches.length===2&&E&&M&&_){let K=N.touches[0],k=N.touches[1],O=Math.hypot(k.clientX-K.clientX,k.clientY-K.clientY)/s,Z=E.width/O,U=E.height/O,H=_.width/Z;if(H<j||H>L)return;let D=q.getBoundingClientRect(),B=(K.clientX+k.clientX)/2,d=(K.clientY+k.clientY)/2,_q=(B-D.left)/D.width,jq=(d-D.top)/D.height;P(q,{x:M.x-Z*_q,y:M.y-U*jq,width:Z,height:U}),N.preventDefault()}},t=($)=>{let N=$;if(N.touches.length===0)G=!1,F=null,E=null,M=null;else if(N.touches.length===1){E=null,M=null,G=!0;let K=N.touches[0];T=K.clientX,m=K.clientY,F=f(q)}},e=($)=>{if(!w)return;if(G)return;let N=$,K=$.target,k=c(K);if(k)Kq(k.text,N.clientX,N.clientY),R(k.element),u=!0,$.preventDefault();else if(u)x(),R(null),u=!1},V=()=>{p()},S=null,qq=\"\",Iq=()=>{if(C){let $=q.getAttribute(\"viewBox\")||\"\";if($!==qq)qq=$,p()}S=requestAnimationFrame(Iq)};S=requestAnimationFrame(Iq);let kq=()=>{if(_)P(q,_)};if(Q)q.style.touchAction=\"none\";return q.addEventListener(\"mousemove\",h),q.addEventListener(\"mouseleave\",g),q.addEventListener(\"mousedown\",l),q.addEventListener(\"click\",e),q.addEventListener(\"wheel\",n,{passive:!1}),q.addEventListener(\"touchstart\",o,{passive:!0}),q.addEventListener(\"touchmove\",i,{passive:!1}),q.addEventListener(\"touchend\",t),document.addEventListener(\"mousemove\",r),document.addEventListener(\"mouseup\",a),window.addEventListener(\"scroll\",V,!0),window.addEventListener(\"resize\",V),{destroy:()=>{if(q.removeEventListener(\"mousemove\",h),q.removeEventListener(\"mouseleave\",g),q.removeEventListener(\"mousedown\",l),q.removeEventListener(\"click\",e),q.removeEventListener(\"wheel\",n),q.removeEventListener(\"touchstart\",o),q.removeEventListener(\"touchmove\",i),q.removeEventListener(\"touchend\",t),document.removeEventListener(\"mousemove\",r),document.removeEventListener(\"mouseup\",a),window.removeEventListener(\"scroll\",V,!0),window.removeEventListener(\"resize\",V),S!==null)cancelAnimationFrame(S);if(R(null),W)W.remove(),W=null;if(Y)Y.remove(),Y=null;if(y)y.remove(),y=null},showDeviceModal:()=>{},hideModal:()=>{},showLinkTooltip:()=>{},hideTooltip:()=>{x(),R(null),u=!1},resetView:kq,getScale:$q}}var Qq={initInteractive:Nq};window.ShumokuInteractive=Qq;})();\n";
2
+ export const INTERACTIVE_IIFE = "(()=>{var{defineProperty:v,getOwnPropertyNames:K0,getOwnPropertyDescriptor:Q0}=Object,z0=Object.prototype.hasOwnProperty;var y0=new WeakMap,H0=($)=>{var L=y0.get($),f;if(L)return L;if(L=v({},\"__esModule\",{value:!0}),$&&typeof $===\"object\"||typeof $===\"function\")K0($).map((C)=>!z0.call(L,C)&&v(L,C,{get:()=>$[C],enumerable:!(f=Q0($,C))||f.enumerable}));return y0.set($,L),L};var k0=($,L)=>{for(var f in L)v($,f,{get:L[f],enumerable:!0,configurable:!0,set:(C)=>L[f]=()=>C})};var _0={};k0(_0,{ShumokuInteractive:()=>q0});var Z=null,u=null,j=null,A=null;function m0(){if(!Z)Z=document.createElement(\"div\"),Z.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.15s ease;\n z-index: 9998;\n `,document.body.appendChild(Z);return Z}function X0(){if(!u)u=document.createElement(\"div\"),u.style.cssText=`\n position: fixed;\n top: 0;\n left: 0;\n pointer-events: none;\n z-index: 9999;\n `,document.body.appendChild(u);return u}function n(){if(!j||!A)return;if(!document.contains(j)){_(null);return}let $=j.closest(\"svg\");if(!$)return;let L=$.getBoundingClientRect(),f=$.getAttribute(\"viewBox\");if(f)A.setAttribute(\"viewBox\",f);A.style.left=`${L.left}px`,A.style.top=`${L.top}px`,A.style.width=`${L.width}px`,A.style.height=`${L.height}px`}function _($){if($===j)return;if(j)j.classList.remove(\"shumoku-highlight\");let L=X0();L.innerHTML=\"\",A=null,j=$;let f=m0();if($){$.classList.add(\"shumoku-highlight\");let C=$.closest(\"svg\");if(C){let H=C.getAttribute(\"viewBox\");if(H){let J=$.cloneNode(!0);J.classList.remove(\"shumoku-highlight\");let N=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");N.setAttribute(\"viewBox\",H),N.style.cssText=`\n position: absolute;\n overflow: visible;\n filter: drop-shadow(0 0 4px #fff) drop-shadow(0 0 8px #fff) drop-shadow(0 0 12px rgba(100, 150, 255, 0.8));\n `;let K=C.querySelector(\"defs\");if(K)N.appendChild(K.cloneNode(!0));N.appendChild(J),L.appendChild(N),A=N,n()}}f.style.opacity=\"1\"}else f.style.opacity=\"0\"}function $0(){return j}function L0(){if(Z)Z.remove(),Z=null;if(u)u.remove(),u=null;j=null,A=null}var R=null;function Y0(){if(!R)R=document.createElement(\"div\"),R.style.cssText=`\n position: fixed;\n z-index: 10000;\n padding: 8px 12px;\n background: rgba(30, 41, 59, 0.95);\n color: #fff;\n font-size: 13px;\n line-height: 1.4;\n border-radius: 6px;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.15s;\n font-family: system-ui, -apple-system, sans-serif;\n max-width: 280px;\n white-space: pre-line;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n `,document.body.appendChild(R);return R}function l($,L,f){let C=Y0();C.textContent=$,C.style.opacity=\"1\",requestAnimationFrame(()=>{let H=C.getBoundingClientRect(),J=12,N=L+12,K=f-H.height-12;if(N+H.width>window.innerWidth-12)N=L-H.width-12;if(K<12)K=f+12;C.style.left=`${Math.max(12,N)}px`,C.style.top=`${Math.max(12,K)}px`})}function V(){if(R)R.style.opacity=\"0\"}function N0(){if(R)R.remove(),R=null}function d($){let L=$.closest(\".port[data-port]\");if(L){let H=L.getAttribute(\"data-port\")||\"\";return{text:`${L.getAttribute(\"data-port-device\")||\"\"}:${H}`,element:L}}let f=$.closest(\".link-group[data-link-id]\");if(f){let H=f.getAttribute(\"data-link-from\")||\"\",J=f.getAttribute(\"data-link-to\")||\"\",N=f.getAttribute(\"data-link-bandwidth\"),K=f.getAttribute(\"data-link-vlan\"),Q=f.getAttribute(\"data-link-json\"),m=H.startsWith(\"__export_\"),D=J.startsWith(\"__export_\");if((m||D)&&Q)try{let I=JSON.parse(Q).metadata;if(I?._destDevice){let B=m?J:H,E=I._destPort?`${I._destDevice}:${I._destPort}`:I._destDevice,M=`${B} ↔ ${E}`;if(N)M+=`\n${N}`;if(K)M+=`\nVLAN: ${K}`;return{text:M,element:f}}}catch{}let P=`${H} ↔ ${J}`;if(N)P+=`\n${N}`;if(K)P+=`\nVLAN: ${K}`;return{text:P,element:f}}let C=$.closest(\".node[data-id]\");if(C){let H=C.getAttribute(\"data-device-json\");if(H)try{let J=JSON.parse(H),N=[];if(J.label)N.push(Array.isArray(J.label)?J.label.join(\" \"):J.label);if(J.type)N.push(`Type: ${J.type}`);if(J.vendor)N.push(`Vendor: ${J.vendor}`);if(J.model)N.push(`Model: ${J.model}`);return{text:N.join(`\n`),element:C}}catch{}return{text:C.getAttribute(\"data-id\")||\"\",element:C}}return null}function W($){let L=$.getAttribute(\"viewBox\");if(!L)return null;let f=L.split(/\\s+|,/).map(Number);if(f.length!==4||f.some(Number.isNaN))return null;return{x:f[0],y:f[1],width:f[2],height:f[3]}}function x($,L,f){$.setAttribute(\"viewBox\",`${L.x} ${L.y} ${L.width} ${L.height}`),f?.()}function c($){return{x:$.x,y:$.y,width:$.width,height:$.height}}var G0=1.2;function C0($){let L=typeof $.target===\"string\"?document.querySelector($.target):$.target;if(!L)throw Error(\"Target not found\");let f=L.closest(\"svg\")||L.querySelector(\"svg\")||L;if(!(f instanceof SVGSVGElement))throw Error(\"SVG element not found\");let C=$.panZoom?.enabled??!0,H=$.panZoom?.minScale??0.1,J=$.panZoom?.maxScale??10,N=W(f);if(!N){let y=f.getBBox();N={x:y.x,y:y.y,width:y.width,height:y.height},x(f,N,n)}let K=!1,Q={active:!1,startX:0,startY:0,startViewBox:null},m=null,D=()=>{if(!N)return 1;let y=W(f);if(!y)return 1;return N.width/y.width},P=()=>{if(N)x(f,N,n)},b=(y)=>{if(y.length<2)return 0;let G=y[1].clientX-y[0].clientX,q=y[1].clientY-y[0].clientY;return Math.hypot(G,q)},I=(y)=>({x:(y[0].clientX+y[1].clientX)/2,y:(y[0].clientY+y[1].clientY)/2}),B=(y)=>{if(y.touches.length>=2&&C){y.preventDefault();let G=b(y.touches),q=I(y.touches),z=W(f);if(z){let k=f.getBoundingClientRect();m={initialDist:G,startViewBox:c(z),centerX:z.x+z.width*((q.x-k.left)/k.width),centerY:z.y+z.height*((q.y-k.top)/k.height)}}if(K)V(),_(null),K=!1}},E=(y)=>{if(y.touches.length>=2&&m&&C){y.preventDefault();let G=b(y.touches),q=I(y.touches);if(G===0||m.initialDist===0)return;let z=G/m.initialDist,k=m.startViewBox.width/z,X=m.startViewBox.height/z;if(!N)return;let U=N.width/k;if(U<H||U>J)return;let Y=f.getBoundingClientRect(),F=(q.x-Y.left)/Y.width,r=(q.y-Y.top)/Y.height;x(f,{x:m.centerX-k*F,y:m.centerY-X*r,width:k,height:X},n)}},M=(y)=>{if(y.touches.length<2)m=null},p=(y)=>{if(y.button!==0||!C)return;let G=W(f);if(!G)return;if(Q.active=!0,Q.startX=y.clientX,Q.startY=y.clientY,Q.startViewBox=c(G),f.style.cursor=\"grabbing\",K)V(),_(null),K=!1},i=(y)=>{if(Q.active&&Q.startViewBox&&C){let G=y.clientX-Q.startX,q=y.clientY-Q.startY,z=f.getBoundingClientRect(),k=Q.startViewBox.width/z.width,X=Q.startViewBox.height/z.height;x(f,{x:Q.startViewBox.x-G*k,y:Q.startViewBox.y-q*X,width:Q.startViewBox.width,height:Q.startViewBox.height},n)}else if(!Q.active){let G=d(y.target);if(G)l(G.text,y.clientX,y.clientY),_(G.element);else V(),_(null)}},s=()=>{Q.active=!1,Q.startViewBox=null,f.style.cursor=\"\"},g=()=>{if(!Q.active&&!K)V(),_(null)},h=(y)=>{if(!C)return;y.preventDefault();let G=W(f);if(!G||!N)return;let q=f.getBoundingClientRect(),z=G.x+G.width*((y.clientX-q.left)/q.width),k=G.y+G.height*((y.clientY-q.top)/q.height),X=y.deltaY>0?G0:1/G0,U=G.width*X,Y=G.height*X,F=N.width/U;if(F<H||F>J)return;let r=(y.clientX-q.left)/q.width,J0=(y.clientY-q.top)/q.height;x(f,{x:z-U*r,y:k-Y*J0,width:U,height:Y},n)},a=(y)=>{let q=y.target.closest(\".subgraph[data-has-sheet]\");if(q){let z=q.getAttribute(\"data-sheet-id\");if(z)y.preventDefault(),y.stopPropagation(),T(z)}},T=(y)=>{let G=new CustomEvent(\"shumoku:navigate\",{detail:{sheetId:y},bubbles:!0});document.dispatchEvent(G)},O=null,t=(y)=>{if(y.touches.length===1)O={x:y.touches[0].clientX,y:y.touches[0].clientY,time:Date.now()};else O=null},o=(y)=>{if(!O||y.touches.length>0){O=null;return}let G=y.changedTouches[0],q=G.clientX-O.x,z=G.clientY-O.y,k=Date.now()-O.time;if(Math.hypot(q,z)<10&&k<300){let X=document.elementFromPoint(G.clientX,G.clientY);if(X){let U=X.closest(\".subgraph[data-has-sheet]\");if(U){let F=U.getAttribute(\"data-sheet-id\");if(F){T(F),O=null;return}}let Y=d(X);if(Y)l(Y.text,G.clientX,G.clientY),_(Y.element),K=!0;else if(K)V(),_(null),K=!1}}O=null},S=null,e=\"\",f0=()=>{if($0()){let y=f.getAttribute(\"viewBox\")||\"\";if(y!==e)e=y,n()}S=requestAnimationFrame(f0)},w=()=>{n()};return S=requestAnimationFrame(f0),f.addEventListener(\"touchstart\",B,{passive:!1}),f.addEventListener(\"touchmove\",E,{passive:!1}),f.addEventListener(\"touchend\",M),f.addEventListener(\"touchcancel\",M),f.addEventListener(\"touchstart\",t,{passive:!0}),f.addEventListener(\"touchend\",o),f.addEventListener(\"mousedown\",p),document.addEventListener(\"mousemove\",i),document.addEventListener(\"mouseup\",s),f.addEventListener(\"mouseleave\",g),f.addEventListener(\"wheel\",h,{passive:!1}),f.addEventListener(\"click\",a),window.addEventListener(\"scroll\",w,!0),window.addEventListener(\"resize\",w),{destroy:()=>{if(S!==null)cancelAnimationFrame(S);f.removeEventListener(\"touchstart\",B),f.removeEventListener(\"touchmove\",E),f.removeEventListener(\"touchend\",M),f.removeEventListener(\"touchcancel\",M),f.removeEventListener(\"touchstart\",t),f.removeEventListener(\"touchend\",o),f.removeEventListener(\"mousedown\",p),document.removeEventListener(\"mousemove\",i),document.removeEventListener(\"mouseup\",s),f.removeEventListener(\"mouseleave\",g),f.removeEventListener(\"wheel\",h),f.removeEventListener(\"click\",a),window.removeEventListener(\"scroll\",w,!0),window.removeEventListener(\"resize\",w),N0(),L0()},showDeviceModal:()=>{},hideModal:()=>{},showLinkTooltip:()=>{},hideTooltip:()=>{V(),_(null),K=!1},resetView:P,getScale:D,navigateToSheet:T}}var q0={initInteractive:C0};window.ShumokuInteractive=q0;})();\n";
package/dist/index.d.ts CHANGED
@@ -5,4 +5,5 @@ import * as html from './html/index.js';
5
5
  import * as svg from './svg.js';
6
6
  export { svg, html };
7
7
  export type { DataAttributeOptions, DeviceInfo, EndpointInfo, HTMLRendererOptions, InteractiveInstance, InteractiveOptions, LinkInfo, PortInfo, RenderMode, } from './types.js';
8
+ export type { SheetData } from './html/index.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AAEvC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;AAGpB,YAAY,EACV,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AAEvC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;AAGpB,YAAY,EACV,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAA;AAGnB,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA"}
@@ -1,18 +1,4 @@
1
- (()=>{var{defineProperty:v,getOwnPropertyNames:zq,getOwnPropertyDescriptor:Fq}=Object,Lq=Object.prototype.hasOwnProperty;var Jq=new WeakMap,Aq=(J)=>{var I=Jq.get(J),q;if(I)return I;if(I=v({},"__esModule",{value:!0}),J&&typeof J==="object"||typeof J==="function")zq(J).map((Q)=>!Lq.call(I,Q)&&v(I,Q,{get:()=>J[Q],enumerable:!(q=Fq(J,Q))||q.enumerable}));return Jq.set(J,I),I};var Gq=(J,I)=>{for(var q in I)v(J,q,{get:I[q],enumerable:!0,configurable:!0,set:(Q)=>I[q]=()=>Q})};var Wq={};Gq(Wq,{ShumokuInteractive:()=>Qq});var W=null,Y=null,C=null,w=!1;function Uq(){if(!W)W=document.createElement("div"),W.style.cssText=`
2
- position: fixed;
3
- z-index: 10000;
4
- padding: 6px 10px;
5
- background: #1e293b;
6
- color: #fff;
7
- font-size: 12px;
8
- border-radius: 4px;
9
- pointer-events: none;
10
- opacity: 0;
11
- transition: opacity 0.15s;
12
- font-family: system-ui, sans-serif;
13
- max-width: 300px;
14
- white-space: pre-line;
15
- `,document.body.appendChild(W);return W}function Kq(J,I,q){let Q=Uq();Q.textContent=J;let j=12,L=I+j,z=q+j;requestAnimationFrame(()=>{let _=Q.getBoundingClientRect();if(L+_.width>window.innerWidth-j)L=I-_.width-j;if(z+_.height>window.innerHeight-j)z=q-_.height-j;Q.style.left=`${Math.max(j,L)}px`,Q.style.top=`${Math.max(j,z)}px`}),Q.style.left=`${L}px`,Q.style.top=`${z}px`,Q.style.opacity="1"}function x(){if(W)W.style.opacity="0"}function Oq(){if(!Y)Y=document.createElement("div"),Y.style.cssText=`
1
+ (()=>{var{defineProperty:v,getOwnPropertyNames:K0,getOwnPropertyDescriptor:Q0}=Object,z0=Object.prototype.hasOwnProperty;var y0=new WeakMap,H0=($)=>{var L=y0.get($),f;if(L)return L;if(L=v({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")K0($).map((C)=>!z0.call(L,C)&&v(L,C,{get:()=>$[C],enumerable:!(f=Q0($,C))||f.enumerable}));return y0.set($,L),L};var k0=($,L)=>{for(var f in L)v($,f,{get:L[f],enumerable:!0,configurable:!0,set:(C)=>L[f]=()=>C})};var _0={};k0(_0,{ShumokuInteractive:()=>q0});var Z=null,u=null,j=null,A=null;function m0(){if(!Z)Z=document.createElement("div"),Z.style.cssText=`
16
2
  position: fixed;
17
3
  top: 0;
18
4
  left: 0;
@@ -23,16 +9,35 @@
23
9
  opacity: 0;
24
10
  transition: opacity 0.15s ease;
25
11
  z-index: 9998;
26
- `,document.body.appendChild(Y);return Y}var y=null,X=null;function Zq(){if(!y)y=document.createElement("div"),y.style.cssText=`
12
+ `,document.body.appendChild(Z);return Z}function X0(){if(!u)u=document.createElement("div"),u.style.cssText=`
27
13
  position: fixed;
28
14
  top: 0;
29
15
  left: 0;
30
16
  pointer-events: none;
31
17
  z-index: 9999;
32
- `,document.body.appendChild(y);return y}function p(){if(!C||!X)return;if(!document.contains(C)){R(null);return}let J=C.closest("svg");if(!J)return;let I=J.getBoundingClientRect(),q=J.getAttribute("viewBox");if(q)X.setAttribute("viewBox",q);X.style.left=`${I.left}px`,X.style.top=`${I.top}px`,X.style.width=`${I.width}px`,X.style.height=`${I.height}px`}function R(J){if(J===C)return;if(C)C.classList.remove("shumoku-highlight");let I=Zq();I.innerHTML="",X=null,C=J;let q=Oq();if(J){J.classList.add("shumoku-highlight");let Q=J.closest("svg");if(Q){let j=Q.getAttribute("viewBox");if(j){let L=J.cloneNode(!0);L.classList.remove("shumoku-highlight");let z=document.createElementNS("http://www.w3.org/2000/svg","svg");z.setAttribute("viewBox",j),z.style.cssText=`
18
+ `,document.body.appendChild(u);return u}function n(){if(!j||!A)return;if(!document.contains(j)){_(null);return}let $=j.closest("svg");if(!$)return;let L=$.getBoundingClientRect(),f=$.getAttribute("viewBox");if(f)A.setAttribute("viewBox",f);A.style.left=`${L.left}px`,A.style.top=`${L.top}px`,A.style.width=`${L.width}px`,A.style.height=`${L.height}px`}function _($){if($===j)return;if(j)j.classList.remove("shumoku-highlight");let L=X0();L.innerHTML="",A=null,j=$;let f=m0();if($){$.classList.add("shumoku-highlight");let C=$.closest("svg");if(C){let H=C.getAttribute("viewBox");if(H){let J=$.cloneNode(!0);J.classList.remove("shumoku-highlight");let N=document.createElementNS("http://www.w3.org/2000/svg","svg");N.setAttribute("viewBox",H),N.style.cssText=`
33
19
  position: absolute;
34
20
  overflow: visible;
35
21
  filter: drop-shadow(0 0 4px #fff) drop-shadow(0 0 8px #fff) drop-shadow(0 0 12px rgba(100, 150, 255, 0.8));
36
- `;let _=Q.querySelector("defs");if(_)z.appendChild(_.cloneNode(!0));z.appendChild(L),I.appendChild(z),X=z,p()}}q.style.opacity="1"}else q.style.opacity="0"}function Dq(){}function c(J){let I=J.closest(".port[data-port]");if(I){let j=I.getAttribute("data-port")||"";return{text:`${I.getAttribute("data-port-device")||""}:${j}`,element:I}}let q=J.closest(".link-group[data-link-id]");if(q){let j=q.getAttribute("data-link-from")||"",L=q.getAttribute("data-link-to")||"",z=q.getAttribute("data-link-bandwidth"),_=q.getAttribute("data-link-vlan"),b=`${j} ↔ ${L}`;if(z)b+=`
37
- ${z}`;if(_)b+=`
38
- VLAN: ${_}`;return{text:b,element:q}}let Q=J.closest(".node[data-id]");if(Q){let j=Q.getAttribute("data-device-json"),L;if(j)try{let z=JSON.parse(j);L=z.label||z.id}catch{L=Q.getAttribute("data-id")||""}else L=Q.getAttribute("data-id")||"";return{text:L,element:Q}}return null}function f(J){let I=J.getAttribute("viewBox");if(!I)return null;let q=I.split(/\s+|,/).map(Number);if(q.length!==4||q.some(Number.isNaN))return null;return{x:q[0],y:q[1],width:q[2],height:q[3]}}function P(J,I){J.setAttribute("viewBox",`${I.x} ${I.y} ${I.width} ${I.height}`)}function Nq(J){let I=typeof J.target==="string"?document.querySelector(J.target):J.target;if(!I)throw Error("Target not found");let q=I.closest("svg")||I.querySelector("svg")||I;if(!(q instanceof SVGSVGElement))throw Error("SVG element not found");Dq();let Q=J.panZoom?.enabled??!0,j=J.panZoom?.minScale??0.1,L=J.panZoom?.maxScale??10,z=1.2,_=null;(()=>{if(_=f(q),!_){let $=q.getBBox();_={x:$.x,y:$.y,width:$.width,height:$.height},P(q,_)}})();let $q=()=>{if(!_)return 1;let $=f(q);if(!$)return 1;return _.width/$.width},u=!1,G=!1,T=0,m=0,F=null,s=0,E=null,M=null,h=($)=>{if(G)return;if(w)return;let N=$,K=c(N.target);if(K)Kq(K.text,N.clientX,N.clientY),R(K.element);else x(),R(null)},g=()=>{if(w)return;if(G)return;x(),R(null)},l=($)=>{if(!Q)return;let N=$;if(N.button!==0)return;if(c(N.target))return;G=!0,T=N.clientX,m=N.clientY,F=f(q),q.style.cursor="grabbing",$.preventDefault()},r=($)=>{if(!G||!F)return;let N=$,K=q.getBoundingClientRect(),k=N.clientX-T,A=N.clientY-m,O=F.width/K.width,Z=F.height/K.height;P(q,{x:F.x-k*O,y:F.y-A*Z,width:F.width,height:F.height})},a=()=>{if(G)G=!1,F=null,q.style.cursor=""},n=($)=>{if(!Q)return;let N=$;N.preventDefault();let K=f(q);if(!K||!_)return;let k=q.getBoundingClientRect(),A=(N.clientX-k.left)/k.width,O=(N.clientY-k.top)/k.height,Z=K.x+K.width*A,U=K.y+K.height*O,H=N.deltaY>0?z:1/z,D=K.width*H,B=K.height*H,d=_.width/D;if(d<j||d>L)return;P(q,{x:Z-D*A,y:U-B*O,width:D,height:B})},o=($)=>{w=!0;let N=$;if(N.touches.length===1&&Q){let K=N.touches[0],k=document.elementFromPoint(K.clientX,K.clientY);if(!(k?c(k):null))G=!0,T=K.clientX,m=K.clientY,F=f(q)}else if(N.touches.length===2&&Q){G=!1;let K=N.touches[0],k=N.touches[1];s=Math.hypot(k.clientX-K.clientX,k.clientY-K.clientY),E=f(q);let A=q.getBoundingClientRect(),O=(K.clientX+k.clientX)/2,Z=(K.clientY+k.clientY)/2,U=E;if(U){let H=(O-A.left)/A.width,D=(Z-A.top)/A.height;M={x:U.x+U.width*H,y:U.y+U.height*D}}}},i=($)=>{let N=$;if(N.touches.length===1&&G&&F){let K=N.touches[0],k=q.getBoundingClientRect(),A=K.clientX-T,O=K.clientY-m,Z=F.width/k.width,U=F.height/k.height;P(q,{x:F.x-A*Z,y:F.y-O*U,width:F.width,height:F.height}),N.preventDefault()}else if(N.touches.length===2&&E&&M&&_){let K=N.touches[0],k=N.touches[1],O=Math.hypot(k.clientX-K.clientX,k.clientY-K.clientY)/s,Z=E.width/O,U=E.height/O,H=_.width/Z;if(H<j||H>L)return;let D=q.getBoundingClientRect(),B=(K.clientX+k.clientX)/2,d=(K.clientY+k.clientY)/2,_q=(B-D.left)/D.width,jq=(d-D.top)/D.height;P(q,{x:M.x-Z*_q,y:M.y-U*jq,width:Z,height:U}),N.preventDefault()}},t=($)=>{let N=$;if(N.touches.length===0)G=!1,F=null,E=null,M=null;else if(N.touches.length===1){E=null,M=null,G=!0;let K=N.touches[0];T=K.clientX,m=K.clientY,F=f(q)}},e=($)=>{if(!w)return;if(G)return;let N=$,K=$.target,k=c(K);if(k)Kq(k.text,N.clientX,N.clientY),R(k.element),u=!0,$.preventDefault();else if(u)x(),R(null),u=!1},V=()=>{p()},S=null,qq="",Iq=()=>{if(C){let $=q.getAttribute("viewBox")||"";if($!==qq)qq=$,p()}S=requestAnimationFrame(Iq)};S=requestAnimationFrame(Iq);let kq=()=>{if(_)P(q,_)};if(Q)q.style.touchAction="none";return q.addEventListener("mousemove",h),q.addEventListener("mouseleave",g),q.addEventListener("mousedown",l),q.addEventListener("click",e),q.addEventListener("wheel",n,{passive:!1}),q.addEventListener("touchstart",o,{passive:!0}),q.addEventListener("touchmove",i,{passive:!1}),q.addEventListener("touchend",t),document.addEventListener("mousemove",r),document.addEventListener("mouseup",a),window.addEventListener("scroll",V,!0),window.addEventListener("resize",V),{destroy:()=>{if(q.removeEventListener("mousemove",h),q.removeEventListener("mouseleave",g),q.removeEventListener("mousedown",l),q.removeEventListener("click",e),q.removeEventListener("wheel",n),q.removeEventListener("touchstart",o),q.removeEventListener("touchmove",i),q.removeEventListener("touchend",t),document.removeEventListener("mousemove",r),document.removeEventListener("mouseup",a),window.removeEventListener("scroll",V,!0),window.removeEventListener("resize",V),S!==null)cancelAnimationFrame(S);if(R(null),W)W.remove(),W=null;if(Y)Y.remove(),Y=null;if(y)y.remove(),y=null},showDeviceModal:()=>{},hideModal:()=>{},showLinkTooltip:()=>{},hideTooltip:()=>{x(),R(null),u=!1},resetView:kq,getScale:$q}}var Qq={initInteractive:Nq};window.ShumokuInteractive=Qq;})();
22
+ `;let K=C.querySelector("defs");if(K)N.appendChild(K.cloneNode(!0));N.appendChild(J),L.appendChild(N),A=N,n()}}f.style.opacity="1"}else f.style.opacity="0"}function $0(){return j}function L0(){if(Z)Z.remove(),Z=null;if(u)u.remove(),u=null;j=null,A=null}var R=null;function Y0(){if(!R)R=document.createElement("div"),R.style.cssText=`
23
+ position: fixed;
24
+ z-index: 10000;
25
+ padding: 8px 12px;
26
+ background: rgba(30, 41, 59, 0.95);
27
+ color: #fff;
28
+ font-size: 13px;
29
+ line-height: 1.4;
30
+ border-radius: 6px;
31
+ pointer-events: none;
32
+ opacity: 0;
33
+ transition: opacity 0.15s;
34
+ font-family: system-ui, -apple-system, sans-serif;
35
+ max-width: 280px;
36
+ white-space: pre-line;
37
+ box-shadow: 0 4px 12px rgba(0,0,0,0.15);
38
+ `,document.body.appendChild(R);return R}function l($,L,f){let C=Y0();C.textContent=$,C.style.opacity="1",requestAnimationFrame(()=>{let H=C.getBoundingClientRect(),J=12,N=L+12,K=f-H.height-12;if(N+H.width>window.innerWidth-12)N=L-H.width-12;if(K<12)K=f+12;C.style.left=`${Math.max(12,N)}px`,C.style.top=`${Math.max(12,K)}px`})}function V(){if(R)R.style.opacity="0"}function N0(){if(R)R.remove(),R=null}function d($){let L=$.closest(".port[data-port]");if(L){let H=L.getAttribute("data-port")||"";return{text:`${L.getAttribute("data-port-device")||""}:${H}`,element:L}}let f=$.closest(".link-group[data-link-id]");if(f){let H=f.getAttribute("data-link-from")||"",J=f.getAttribute("data-link-to")||"",N=f.getAttribute("data-link-bandwidth"),K=f.getAttribute("data-link-vlan"),Q=f.getAttribute("data-link-json"),m=H.startsWith("__export_"),D=J.startsWith("__export_");if((m||D)&&Q)try{let I=JSON.parse(Q).metadata;if(I?._destDevice){let B=m?J:H,E=I._destPort?`${I._destDevice}:${I._destPort}`:I._destDevice,M=`${B} ↔ ${E}`;if(N)M+=`
39
+ ${N}`;if(K)M+=`
40
+ VLAN: ${K}`;return{text:M,element:f}}}catch{}let P=`${H} ↔ ${J}`;if(N)P+=`
41
+ ${N}`;if(K)P+=`
42
+ VLAN: ${K}`;return{text:P,element:f}}let C=$.closest(".node[data-id]");if(C){let H=C.getAttribute("data-device-json");if(H)try{let J=JSON.parse(H),N=[];if(J.label)N.push(Array.isArray(J.label)?J.label.join(" "):J.label);if(J.type)N.push(`Type: ${J.type}`);if(J.vendor)N.push(`Vendor: ${J.vendor}`);if(J.model)N.push(`Model: ${J.model}`);return{text:N.join(`
43
+ `),element:C}}catch{}return{text:C.getAttribute("data-id")||"",element:C}}return null}function W($){let L=$.getAttribute("viewBox");if(!L)return null;let f=L.split(/\s+|,/).map(Number);if(f.length!==4||f.some(Number.isNaN))return null;return{x:f[0],y:f[1],width:f[2],height:f[3]}}function x($,L,f){$.setAttribute("viewBox",`${L.x} ${L.y} ${L.width} ${L.height}`),f?.()}function c($){return{x:$.x,y:$.y,width:$.width,height:$.height}}var G0=1.2;function C0($){let L=typeof $.target==="string"?document.querySelector($.target):$.target;if(!L)throw Error("Target not found");let f=L.closest("svg")||L.querySelector("svg")||L;if(!(f instanceof SVGSVGElement))throw Error("SVG element not found");let C=$.panZoom?.enabled??!0,H=$.panZoom?.minScale??0.1,J=$.panZoom?.maxScale??10,N=W(f);if(!N){let y=f.getBBox();N={x:y.x,y:y.y,width:y.width,height:y.height},x(f,N,n)}let K=!1,Q={active:!1,startX:0,startY:0,startViewBox:null},m=null,D=()=>{if(!N)return 1;let y=W(f);if(!y)return 1;return N.width/y.width},P=()=>{if(N)x(f,N,n)},b=(y)=>{if(y.length<2)return 0;let G=y[1].clientX-y[0].clientX,q=y[1].clientY-y[0].clientY;return Math.hypot(G,q)},I=(y)=>({x:(y[0].clientX+y[1].clientX)/2,y:(y[0].clientY+y[1].clientY)/2}),B=(y)=>{if(y.touches.length>=2&&C){y.preventDefault();let G=b(y.touches),q=I(y.touches),z=W(f);if(z){let k=f.getBoundingClientRect();m={initialDist:G,startViewBox:c(z),centerX:z.x+z.width*((q.x-k.left)/k.width),centerY:z.y+z.height*((q.y-k.top)/k.height)}}if(K)V(),_(null),K=!1}},E=(y)=>{if(y.touches.length>=2&&m&&C){y.preventDefault();let G=b(y.touches),q=I(y.touches);if(G===0||m.initialDist===0)return;let z=G/m.initialDist,k=m.startViewBox.width/z,X=m.startViewBox.height/z;if(!N)return;let U=N.width/k;if(U<H||U>J)return;let Y=f.getBoundingClientRect(),F=(q.x-Y.left)/Y.width,r=(q.y-Y.top)/Y.height;x(f,{x:m.centerX-k*F,y:m.centerY-X*r,width:k,height:X},n)}},M=(y)=>{if(y.touches.length<2)m=null},p=(y)=>{if(y.button!==0||!C)return;let G=W(f);if(!G)return;if(Q.active=!0,Q.startX=y.clientX,Q.startY=y.clientY,Q.startViewBox=c(G),f.style.cursor="grabbing",K)V(),_(null),K=!1},i=(y)=>{if(Q.active&&Q.startViewBox&&C){let G=y.clientX-Q.startX,q=y.clientY-Q.startY,z=f.getBoundingClientRect(),k=Q.startViewBox.width/z.width,X=Q.startViewBox.height/z.height;x(f,{x:Q.startViewBox.x-G*k,y:Q.startViewBox.y-q*X,width:Q.startViewBox.width,height:Q.startViewBox.height},n)}else if(!Q.active){let G=d(y.target);if(G)l(G.text,y.clientX,y.clientY),_(G.element);else V(),_(null)}},s=()=>{Q.active=!1,Q.startViewBox=null,f.style.cursor=""},g=()=>{if(!Q.active&&!K)V(),_(null)},h=(y)=>{if(!C)return;y.preventDefault();let G=W(f);if(!G||!N)return;let q=f.getBoundingClientRect(),z=G.x+G.width*((y.clientX-q.left)/q.width),k=G.y+G.height*((y.clientY-q.top)/q.height),X=y.deltaY>0?G0:1/G0,U=G.width*X,Y=G.height*X,F=N.width/U;if(F<H||F>J)return;let r=(y.clientX-q.left)/q.width,J0=(y.clientY-q.top)/q.height;x(f,{x:z-U*r,y:k-Y*J0,width:U,height:Y},n)},a=(y)=>{let q=y.target.closest(".subgraph[data-has-sheet]");if(q){let z=q.getAttribute("data-sheet-id");if(z)y.preventDefault(),y.stopPropagation(),T(z)}},T=(y)=>{let G=new CustomEvent("shumoku:navigate",{detail:{sheetId:y},bubbles:!0});document.dispatchEvent(G)},O=null,t=(y)=>{if(y.touches.length===1)O={x:y.touches[0].clientX,y:y.touches[0].clientY,time:Date.now()};else O=null},o=(y)=>{if(!O||y.touches.length>0){O=null;return}let G=y.changedTouches[0],q=G.clientX-O.x,z=G.clientY-O.y,k=Date.now()-O.time;if(Math.hypot(q,z)<10&&k<300){let X=document.elementFromPoint(G.clientX,G.clientY);if(X){let U=X.closest(".subgraph[data-has-sheet]");if(U){let F=U.getAttribute("data-sheet-id");if(F){T(F),O=null;return}}let Y=d(X);if(Y)l(Y.text,G.clientX,G.clientY),_(Y.element),K=!0;else if(K)V(),_(null),K=!1}}O=null},S=null,e="",f0=()=>{if($0()){let y=f.getAttribute("viewBox")||"";if(y!==e)e=y,n()}S=requestAnimationFrame(f0)},w=()=>{n()};return S=requestAnimationFrame(f0),f.addEventListener("touchstart",B,{passive:!1}),f.addEventListener("touchmove",E,{passive:!1}),f.addEventListener("touchend",M),f.addEventListener("touchcancel",M),f.addEventListener("touchstart",t,{passive:!0}),f.addEventListener("touchend",o),f.addEventListener("mousedown",p),document.addEventListener("mousemove",i),document.addEventListener("mouseup",s),f.addEventListener("mouseleave",g),f.addEventListener("wheel",h,{passive:!1}),f.addEventListener("click",a),window.addEventListener("scroll",w,!0),window.addEventListener("resize",w),{destroy:()=>{if(S!==null)cancelAnimationFrame(S);f.removeEventListener("touchstart",B),f.removeEventListener("touchmove",E),f.removeEventListener("touchend",M),f.removeEventListener("touchcancel",M),f.removeEventListener("touchstart",t),f.removeEventListener("touchend",o),f.removeEventListener("mousedown",p),document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",s),f.removeEventListener("mouseleave",g),f.removeEventListener("wheel",h),f.removeEventListener("click",a),window.removeEventListener("scroll",w,!0),window.removeEventListener("resize",w),N0(),L0()},showDeviceModal:()=>{},hideModal:()=>{},showLinkTooltip:()=>{},hideTooltip:()=>{V(),_(null),K=!1},resetView:P,getScale:D,navigateToSheet:T}}var q0={initInteractive:C0};window.ShumokuInteractive=q0;})();