living-documentation 7.43.0 → 7.45.0
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/dist/src/frontend/diagram/custom-shapes.js +11 -3
- package/dist/src/frontend/diagram/main.js +3 -1
- package/dist/src/frontend/diagram/network.js +1000 -497
- package/dist/src/frontend/diagram/node-panel.js +47 -0
- package/dist/src/frontend/diagram/node-rendering.js +117 -23
- package/dist/src/frontend/diagram/persistence.js +1 -0
- package/dist/src/frontend/diagram/ports.js +7 -5
- package/dist/src/frontend/diagram/selection-overlay.js +64 -13
- package/dist/src/frontend/diagram.html +34 -0
- package/dist/src/frontend/i18n/en.json +14 -1
- package/dist/src/frontend/i18n/fr.json +14 -1
- package/dist/src/frontend/shape-editor.html +385 -165
- package/dist/src/routes/shape-libraries.d.ts +1 -1
- package/dist/src/routes/shape-libraries.d.ts.map +1 -1
- package/dist/src/routes/shape-libraries.js +46 -26
- package/dist/src/routes/shape-libraries.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape-libraries.d.ts","sourceRoot":"","sources":["../../../src/routes/shape-libraries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"shape-libraries.d.ts","sourceRoot":"","sources":["../../../src/routes/shape-libraries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAoJjC,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAc7D"}
|
|
@@ -7,7 +7,10 @@ exports.shapeLibrariesRouter = shapeLibrariesRouter;
|
|
|
7
7
|
const express_1 = require("express");
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
|
-
const FILE_NAME =
|
|
10
|
+
const FILE_NAME = ".shape-libraries.json";
|
|
11
|
+
const CUSTOM_SHAPE_DEFAULT_SIZE = 65;
|
|
12
|
+
const CUSTOM_SHAPE_MIN_SIZE = 16;
|
|
13
|
+
const CUSTOM_SHAPE_MAX_SIZE = 1200;
|
|
11
14
|
function filePath(docsPath) {
|
|
12
15
|
return path_1.default.join(docsPath, FILE_NAME);
|
|
13
16
|
}
|
|
@@ -16,7 +19,7 @@ function loadStore(docsPath) {
|
|
|
16
19
|
if (!fs_1.default.existsSync(fp))
|
|
17
20
|
return { libraries: [] };
|
|
18
21
|
try {
|
|
19
|
-
const raw = JSON.parse(fs_1.default.readFileSync(fp,
|
|
22
|
+
const raw = JSON.parse(fs_1.default.readFileSync(fp, "utf-8"));
|
|
20
23
|
return sanitizeStore(raw);
|
|
21
24
|
}
|
|
22
25
|
catch {
|
|
@@ -24,71 +27,88 @@ function loadStore(docsPath) {
|
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
function saveStore(docsPath, store) {
|
|
27
|
-
fs_1.default.writeFileSync(filePath(docsPath), JSON.stringify(sanitizeStore(store), null, 2),
|
|
30
|
+
fs_1.default.writeFileSync(filePath(docsPath), JSON.stringify(sanitizeStore(store), null, 2), "utf-8");
|
|
28
31
|
}
|
|
29
32
|
function clamp01(n) {
|
|
30
|
-
return Math.max(0, Math.min(1, typeof n ===
|
|
33
|
+
return Math.max(0, Math.min(1, typeof n === "number" && Number.isFinite(n) ? n : 0));
|
|
31
34
|
}
|
|
32
35
|
function safeId(value, fallback) {
|
|
33
|
-
if (typeof value !==
|
|
36
|
+
if (typeof value !== "string")
|
|
34
37
|
return fallback;
|
|
35
|
-
const clean = value
|
|
38
|
+
const clean = value
|
|
39
|
+
.trim()
|
|
40
|
+
.replace(/[^a-zA-Z0-9_-]/g, "-")
|
|
41
|
+
.slice(0, 80);
|
|
36
42
|
return clean || fallback;
|
|
37
43
|
}
|
|
38
44
|
function safeName(value, fallback) {
|
|
39
|
-
if (typeof value !==
|
|
45
|
+
if (typeof value !== "string")
|
|
40
46
|
return fallback;
|
|
41
47
|
const clean = value.trim().slice(0, 120);
|
|
42
48
|
return clean || fallback;
|
|
43
49
|
}
|
|
44
50
|
function safeLabelPlacement(value) {
|
|
45
|
-
return
|
|
51
|
+
return ["center", "below", "above", "right", "left"].includes(String(value))
|
|
52
|
+
? value
|
|
53
|
+
: "below";
|
|
54
|
+
}
|
|
55
|
+
function safeDimension(value) {
|
|
56
|
+
return typeof value === "number" && Number.isFinite(value)
|
|
57
|
+
? Math.max(CUSTOM_SHAPE_MIN_SIZE, Math.min(CUSTOM_SHAPE_MAX_SIZE, Math.round(value)))
|
|
58
|
+
: CUSTOM_SHAPE_DEFAULT_SIZE;
|
|
46
59
|
}
|
|
47
60
|
function sanitizeStore(raw) {
|
|
48
|
-
const obj = raw && typeof raw ===
|
|
61
|
+
const obj = raw && typeof raw === "object" ? raw : {};
|
|
49
62
|
const rawLibraries = Array.isArray(obj.libraries) ? obj.libraries : [];
|
|
50
63
|
const libraries = rawLibraries.map((lib, libIndex) => {
|
|
51
|
-
const libObj = lib && typeof lib ===
|
|
64
|
+
const libObj = lib && typeof lib === "object" ? lib : {};
|
|
52
65
|
const shapesRaw = Array.isArray(libObj.shapes) ? libObj.shapes : [];
|
|
53
66
|
return {
|
|
54
67
|
id: safeId(libObj.id, `lib-${libIndex + 1}`),
|
|
55
68
|
name: safeName(libObj.name, `Library ${libIndex + 1}`),
|
|
56
|
-
shapes: shapesRaw
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
69
|
+
shapes: shapesRaw
|
|
70
|
+
.map((shape, shapeIndex) => {
|
|
71
|
+
const shapeObj = shape && typeof shape === "object"
|
|
72
|
+
? shape
|
|
73
|
+
: {};
|
|
74
|
+
const anchorsRaw = Array.isArray(shapeObj.anchors)
|
|
75
|
+
? shapeObj.anchors
|
|
76
|
+
: [];
|
|
77
|
+
const width = safeDimension(shapeObj.width);
|
|
78
|
+
const height = safeDimension(shapeObj.height);
|
|
65
79
|
return {
|
|
66
80
|
id: safeId(shapeObj.id, `shape-${shapeIndex + 1}`),
|
|
67
81
|
name: safeName(shapeObj.name, `Shape ${shapeIndex + 1}`),
|
|
68
|
-
imageSrc: typeof shapeObj.imageSrc ===
|
|
82
|
+
imageSrc: typeof shapeObj.imageSrc === "string" ? shapeObj.imageSrc : "",
|
|
69
83
|
width,
|
|
70
84
|
height,
|
|
71
85
|
labelPlacement: safeLabelPlacement(shapeObj.labelPlacement),
|
|
72
|
-
|
|
73
|
-
|
|
86
|
+
showInDiagram: shapeObj.showInDiagram !== false,
|
|
87
|
+
anchors: anchorsRaw
|
|
88
|
+
.map((anchor, anchorIndex) => {
|
|
89
|
+
const anchorObj = anchor && typeof anchor === "object"
|
|
90
|
+
? anchor
|
|
91
|
+
: {};
|
|
74
92
|
return {
|
|
75
93
|
id: safeId(anchorObj.id, `p${anchorIndex + 1}`),
|
|
76
94
|
x: clamp01(anchorObj.x),
|
|
77
95
|
y: clamp01(anchorObj.y),
|
|
78
96
|
};
|
|
79
|
-
})
|
|
97
|
+
})
|
|
98
|
+
.filter((anchor) => anchor.id),
|
|
80
99
|
};
|
|
81
|
-
})
|
|
100
|
+
})
|
|
101
|
+
.filter((shape) => shape.imageSrc),
|
|
82
102
|
};
|
|
83
103
|
});
|
|
84
104
|
return { libraries };
|
|
85
105
|
}
|
|
86
106
|
function shapeLibrariesRouter(docsPath) {
|
|
87
107
|
const router = (0, express_1.Router)();
|
|
88
|
-
router.get(
|
|
108
|
+
router.get("/", (_req, res) => {
|
|
89
109
|
res.json(loadStore(docsPath));
|
|
90
110
|
});
|
|
91
|
-
router.put(
|
|
111
|
+
router.put("/", (req, res) => {
|
|
92
112
|
const store = sanitizeStore(req.body);
|
|
93
113
|
saveStore(docsPath, store);
|
|
94
114
|
res.json(store);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape-libraries.js","sourceRoot":"","sources":["../../../src/routes/shape-libraries.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"shape-libraries.js","sourceRoot":"","sources":["../../../src/routes/shape-libraries.ts"],"names":[],"mappings":"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"}
|