schematex 0.4.3 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -7
- package/dist/ai/ai-sdk.cjs +19 -13
- package/dist/ai/ai-sdk.cjs.map +1 -1
- package/dist/ai/ai-sdk.d.cts +4 -3
- package/dist/ai/ai-sdk.d.ts +4 -3
- package/dist/ai/ai-sdk.js +15 -9
- package/dist/ai/ai-sdk.js.map +1 -1
- package/dist/ai/index.cjs +16 -12
- package/dist/ai/index.d.cts +20 -153
- package/dist/ai/index.d.ts +20 -153
- package/dist/ai/index.js +4 -4
- package/dist/api-C5SECOxZ.d.cts +69 -0
- package/dist/api-Cr_MxttI.d.ts +69 -0
- package/dist/browser.cjs +24 -6
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.cts +12 -3
- package/dist/browser.d.ts +12 -3
- package/dist/browser.js +14 -6
- package/dist/browser.js.map +1 -1
- package/dist/{chunk-SMXU3KYA.cjs → chunk-4QPDZJAL.cjs} +6337 -120
- package/dist/chunk-4QPDZJAL.cjs.map +1 -0
- package/dist/{chunk-N3SLYVNW.cjs → chunk-HK56GQQP.cjs} +751 -80
- package/dist/chunk-HK56GQQP.cjs.map +1 -0
- package/dist/{chunk-KWQTF6ZL.js → chunk-OK5ZS3LU.js} +6330 -119
- package/dist/chunk-OK5ZS3LU.js.map +1 -0
- package/dist/{chunk-2Z543TC3.cjs → chunk-QMTWG6JL.cjs} +1297 -1151
- package/dist/chunk-QMTWG6JL.cjs.map +1 -0
- package/dist/{chunk-VITE3MZQ.cjs → chunk-QTNPMIO2.cjs} +99 -5
- package/dist/chunk-QTNPMIO2.cjs.map +1 -0
- package/dist/{chunk-6IGSKU6D.js → chunk-UFTYX73U.js} +99 -5
- package/dist/chunk-UFTYX73U.js.map +1 -0
- package/dist/{chunk-J7JWMQD5.js → chunk-VCH7RI5H.js} +1297 -1151
- package/dist/chunk-VCH7RI5H.js.map +1 -0
- package/dist/{chunk-UBTKM2TB.js → chunk-VKPCR7BG.js} +751 -81
- package/dist/chunk-VKPCR7BG.js.map +1 -0
- package/dist/diagrams/blockdiagram/index.d.cts +1 -1
- package/dist/diagrams/blockdiagram/index.d.ts +1 -1
- package/dist/diagrams/circuit/index.cjs +7 -7
- package/dist/diagrams/circuit/index.d.cts +1 -1
- package/dist/diagrams/circuit/index.d.ts +1 -1
- package/dist/diagrams/circuit/index.js +1 -1
- package/dist/diagrams/ecomap/index.d.cts +1 -1
- package/dist/diagrams/ecomap/index.d.ts +1 -1
- package/dist/diagrams/entity/index.d.cts +1 -1
- package/dist/diagrams/entity/index.d.ts +1 -1
- package/dist/diagrams/fishbone/index.d.cts +1 -1
- package/dist/diagrams/fishbone/index.d.ts +1 -1
- package/dist/diagrams/flowchart/index.cjs +7 -7
- package/dist/diagrams/flowchart/index.d.cts +2 -2
- package/dist/diagrams/flowchart/index.d.ts +2 -2
- package/dist/diagrams/flowchart/index.js +1 -1
- package/dist/diagrams/genogram/index.d.cts +1 -1
- package/dist/diagrams/genogram/index.d.ts +1 -1
- package/dist/diagrams/ladder/index.d.cts +1 -1
- package/dist/diagrams/ladder/index.d.ts +1 -1
- package/dist/diagrams/logic/index.d.cts +1 -1
- package/dist/diagrams/logic/index.d.ts +1 -1
- package/dist/diagrams/orgchart/index.d.cts +1 -1
- package/dist/diagrams/orgchart/index.d.ts +1 -1
- package/dist/diagrams/pedigree/index.d.cts +1 -1
- package/dist/diagrams/pedigree/index.d.ts +1 -1
- package/dist/diagrams/phylo/index.d.cts +1 -1
- package/dist/diagrams/phylo/index.d.ts +1 -1
- package/dist/diagrams/sld/index.d.cts +1 -1
- package/dist/diagrams/sld/index.d.ts +1 -1
- package/dist/diagrams/sociogram/index.d.cts +1 -1
- package/dist/diagrams/sociogram/index.d.ts +1 -1
- package/dist/diagrams/timing/index.d.cts +1 -1
- package/dist/diagrams/timing/index.d.ts +1 -1
- package/dist/diagrams/venn/index.d.cts +1 -1
- package/dist/diagrams/venn/index.d.ts +1 -1
- package/dist/{index-DYpJXJcy.d.cts → index-BD2yDfQM.d.cts} +1 -1
- package/dist/{index-BeUVaQiD.d.ts → index-C30zQWZI.d.ts} +1 -1
- package/dist/index.cjs +35 -11
- package/dist/index.d.cts +10 -4
- package/dist/index.d.ts +10 -4
- package/dist/index.js +3 -3
- package/dist/react.cjs +8 -10
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +3 -2
- package/dist/react.d.ts +3 -2
- package/dist/react.js +8 -10
- package/dist/react.js.map +1 -1
- package/dist/tools-BHWaJPOl.d.ts +153 -0
- package/dist/tools-DlpuE76u.d.cts +153 -0
- package/dist/{types-DKdo-Ua_.d.cts → types-WTr9W5Ud.d.cts} +3 -3
- package/dist/{types-DKdo-Ua_.d.ts → types-WTr9W5Ud.d.ts} +3 -3
- package/package.json +2 -2
- package/dist/api-BIj9t4Oc.d.cts +0 -22
- package/dist/api-BIj9t4Oc.d.ts +0 -22
- package/dist/chunk-2Z543TC3.cjs.map +0 -1
- package/dist/chunk-6IGSKU6D.js.map +0 -1
- package/dist/chunk-J7JWMQD5.js.map +0 -1
- package/dist/chunk-KWQTF6ZL.js.map +0 -1
- package/dist/chunk-N3SLYVNW.cjs.map +0 -1
- package/dist/chunk-SMXU3KYA.cjs.map +0 -1
- package/dist/chunk-UBTKM2TB.js.map +0 -1
- package/dist/chunk-VITE3MZQ.cjs.map +0 -1
|
@@ -822,15 +822,27 @@ function isFullWidth(code) {
|
|
|
822
822
|
if (code >= 131072 && code <= 196607) return true;
|
|
823
823
|
return false;
|
|
824
824
|
}
|
|
825
|
-
function
|
|
825
|
+
function labelLines(label) {
|
|
826
|
+
return String(label).split(/<br\s*\/?>|\n/i).map((line2) => line2.replace(/<\/?[bi]>/gi, ""));
|
|
827
|
+
}
|
|
828
|
+
function measureLineWidth(line2) {
|
|
826
829
|
let w = 0;
|
|
827
|
-
for (const ch of
|
|
830
|
+
for (const ch of line2) {
|
|
828
831
|
const code = ch.codePointAt(0) ?? 0;
|
|
829
832
|
if (isFullWidth(code)) w += FC_CONST.cjkCharWidth;
|
|
830
833
|
else w += FC_CONST.charWidth;
|
|
831
834
|
}
|
|
832
835
|
return w;
|
|
833
836
|
}
|
|
837
|
+
function measureLabelWidth(label) {
|
|
838
|
+
const lines = labelLines(label);
|
|
839
|
+
let max = 0;
|
|
840
|
+
for (const line2 of lines) {
|
|
841
|
+
const w = measureLineWidth(line2);
|
|
842
|
+
if (w > max) max = w;
|
|
843
|
+
}
|
|
844
|
+
return max;
|
|
845
|
+
}
|
|
834
846
|
function greedyFAS(nodeIds, edges) {
|
|
835
847
|
const outAdj = /* @__PURE__ */ new Map();
|
|
836
848
|
const inAdj = /* @__PURE__ */ new Map();
|
|
@@ -1263,6 +1275,85 @@ function laneBasedXCoords(layerNodes, pathOf, nodeSpacingX, segments) {
|
|
|
1263
1275
|
}
|
|
1264
1276
|
return result;
|
|
1265
1277
|
}
|
|
1278
|
+
function enforceSequentialClusterLayers(ast, layerMap, edges) {
|
|
1279
|
+
const sgParent = /* @__PURE__ */ new Map();
|
|
1280
|
+
for (const sg of ast.subgraphs) {
|
|
1281
|
+
for (const childSg of sg.subgraphs) sgParent.set(childSg, sg.id);
|
|
1282
|
+
if (!sgParent.has(sg.id)) sgParent.set(sg.id, void 0);
|
|
1283
|
+
}
|
|
1284
|
+
const topLevel = ast.subgraphs.filter((sg) => !sgParent.get(sg.id));
|
|
1285
|
+
if (topLevel.length < 2) return;
|
|
1286
|
+
const collect = (sgId) => {
|
|
1287
|
+
const sg = ast.subgraphs.find((s) => s.id === sgId);
|
|
1288
|
+
if (!sg) return [];
|
|
1289
|
+
const ids = [...sg.children];
|
|
1290
|
+
for (const childSgId of sg.subgraphs) ids.push(...collect(childSgId));
|
|
1291
|
+
return ids;
|
|
1292
|
+
};
|
|
1293
|
+
const adjOut = /* @__PURE__ */ new Map();
|
|
1294
|
+
for (const e of edges) {
|
|
1295
|
+
if (!adjOut.has(e.from)) adjOut.set(e.from, []);
|
|
1296
|
+
adjOut.get(e.from).push(e.to);
|
|
1297
|
+
}
|
|
1298
|
+
const hasForwardEdge = (srcSgId, dstSgId) => {
|
|
1299
|
+
const srcIds = new Set(collect(srcSgId));
|
|
1300
|
+
const dstIds = new Set(collect(dstSgId));
|
|
1301
|
+
for (const id of srcIds) {
|
|
1302
|
+
for (const t of adjOut.get(id) ?? []) {
|
|
1303
|
+
if (dstIds.has(t)) return true;
|
|
1304
|
+
}
|
|
1305
|
+
}
|
|
1306
|
+
return false;
|
|
1307
|
+
};
|
|
1308
|
+
const chains = [];
|
|
1309
|
+
let cur = [];
|
|
1310
|
+
for (let i = 0; i < topLevel.length; i++) {
|
|
1311
|
+
const sg = topLevel[i];
|
|
1312
|
+
if (i === 0 || !hasForwardEdge(topLevel[i - 1].id, sg.id)) {
|
|
1313
|
+
if (cur.length > 1) chains.push(cur);
|
|
1314
|
+
cur = [sg.id];
|
|
1315
|
+
} else {
|
|
1316
|
+
cur.push(sg.id);
|
|
1317
|
+
}
|
|
1318
|
+
}
|
|
1319
|
+
if (cur.length > 1) chains.push(cur);
|
|
1320
|
+
if (chains.length === 0) return;
|
|
1321
|
+
for (const chain of chains) {
|
|
1322
|
+
let prevMax = -Infinity;
|
|
1323
|
+
for (const clusterId of chain) {
|
|
1324
|
+
const ids = collect(clusterId);
|
|
1325
|
+
if (ids.length === 0) continue;
|
|
1326
|
+
let curMin = Infinity;
|
|
1327
|
+
let curMax = -Infinity;
|
|
1328
|
+
for (const id of ids) {
|
|
1329
|
+
const l = layerMap.get(id) ?? 0;
|
|
1330
|
+
if (l < curMin) curMin = l;
|
|
1331
|
+
if (l > curMax) curMax = l;
|
|
1332
|
+
}
|
|
1333
|
+
const requiredMin = prevMax === -Infinity ? curMin : prevMax + 1;
|
|
1334
|
+
if (curMin < requiredMin) {
|
|
1335
|
+
const shift = requiredMin - curMin;
|
|
1336
|
+
const toShift = new Set(ids);
|
|
1337
|
+
const queue = [...ids];
|
|
1338
|
+
while (queue.length > 0) {
|
|
1339
|
+
const u = queue.shift();
|
|
1340
|
+
for (const t of adjOut.get(u) ?? []) {
|
|
1341
|
+
if (!toShift.has(t)) {
|
|
1342
|
+
toShift.add(t);
|
|
1343
|
+
queue.push(t);
|
|
1344
|
+
}
|
|
1345
|
+
}
|
|
1346
|
+
}
|
|
1347
|
+
for (const id of toShift) {
|
|
1348
|
+
layerMap.set(id, (layerMap.get(id) ?? 0) + shift);
|
|
1349
|
+
}
|
|
1350
|
+
prevMax = curMax + shift;
|
|
1351
|
+
} else {
|
|
1352
|
+
prevMax = curMax;
|
|
1353
|
+
}
|
|
1354
|
+
}
|
|
1355
|
+
}
|
|
1356
|
+
}
|
|
1266
1357
|
function hasOverlappingTopLevelClusters(ast, layerMap, sgParent) {
|
|
1267
1358
|
const topLevel = ast.subgraphs.filter((sg) => !sgParent.get(sg.id));
|
|
1268
1359
|
if (topLevel.length < 2) return false;
|
|
@@ -1299,7 +1390,9 @@ function layoutFlowchart(ast) {
|
|
|
1299
1390
|
Math.ceil(rawTextW) + FC_CONST.labelHPad * 2
|
|
1300
1391
|
);
|
|
1301
1392
|
let shapeW = Math.max(FC_CONST.minNodeWidth, labelW);
|
|
1302
|
-
|
|
1393
|
+
const nLines = labelLines(n.label).length;
|
|
1394
|
+
const multilineH = nLines > 1 ? FC_CONST.nodeHeight + (nLines - 1) * 14 : FC_CONST.nodeHeight;
|
|
1395
|
+
let shapeH = multilineH;
|
|
1303
1396
|
if (n.shape === "diamond") {
|
|
1304
1397
|
shapeW = Math.max(shapeW, labelW * 1.4);
|
|
1305
1398
|
shapeH = Math.max(shapeH, 52);
|
|
@@ -1356,6 +1449,7 @@ function layoutFlowchart(ast) {
|
|
|
1356
1449
|
};
|
|
1357
1450
|
});
|
|
1358
1451
|
const layerMap = longestPathLayers(allIds, ledges);
|
|
1452
|
+
enforceSequentialClusterLayers(ast, layerMap, ledges);
|
|
1359
1453
|
let dummyCounter = 0;
|
|
1360
1454
|
const dummies = [];
|
|
1361
1455
|
const { updatedEdges } = insertDummies(ledges, layerMap, () => {
|
|
@@ -2143,5 +2237,5 @@ var flowchart = {
|
|
|
2143
2237
|
};
|
|
2144
2238
|
|
|
2145
2239
|
export { FC_CONST, flowchart, layoutFlowchart, parseFlowchart, renderFlowchart, renderFlowchartAST };
|
|
2146
|
-
//# sourceMappingURL=chunk-
|
|
2147
|
-
//# sourceMappingURL=chunk-
|
|
2240
|
+
//# sourceMappingURL=chunk-UFTYX73U.js.map
|
|
2241
|
+
//# sourceMappingURL=chunk-UFTYX73U.js.map
|