@cardenelabs/cdl 0.44.0 → 0.46.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/CHANGELOG.md +56 -1
- package/dist/index.cjs +58 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +21 -1
- package/dist/index.d.ts +21 -1
- package/dist/index.js +58 -18
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +38 -17
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +38 -17
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/layout/edges.ts +27 -2
- package/src/visual-validate.ts +104 -30
package/dist/react.cjs
CHANGED
|
@@ -4488,6 +4488,18 @@ var SKIPPED_AXES = {
|
|
|
4488
4488
|
production: /* @__PURE__ */ new Set(),
|
|
4489
4489
|
catalog: /* @__PURE__ */ new Set(["seo-metadata-quality", "structured-data-extraction"])
|
|
4490
4490
|
};
|
|
4491
|
+
var \u65E2\u5B9A\u306E\u5668 = {
|
|
4492
|
+
/**
|
|
4493
|
+
* 拡大表示の枠は `min(1200px, 94vw)` で、中身は 1px の縁と 24px の余白の内側に描かれる。
|
|
4494
|
+
* 画面が 1280px 以上なら 1200 が効くので、そこから縁 2 枚と余白 2 枚を引く。
|
|
4495
|
+
*/
|
|
4496
|
+
width: 1200 - 1 * 2 - 24 * 2,
|
|
4497
|
+
/** 同じ拡大表示の高さの頭打ち (`90vh − 180px`) を、基準の画面の高さ 900px で評価した値。 */
|
|
4498
|
+
height: 900 * 0.9 - 180
|
|
4499
|
+
};
|
|
4500
|
+
function \u5668\u3092\u78BA\u304B\u3081\u308B(c) {
|
|
4501
|
+
return { \u5E45: \u65E2\u5B9A\u306E\u5668.width, \u9AD8\u3055: \u65E2\u5B9A\u306E\u5668.height };
|
|
4502
|
+
}
|
|
4491
4503
|
var MIN_NODE_W = 80;
|
|
4492
4504
|
var MIN_NODE_H = 40;
|
|
4493
4505
|
var ROW_FORMAT = /^[^:]+:\s*.+$/;
|
|
@@ -4959,7 +4971,16 @@ function visualValidateLaid(laid, diag, opts) {
|
|
|
4959
4971
|
violations.push({ axis, diagramId: safeDiagramId(diag), detail, severity });
|
|
4960
4972
|
counts[axis]++;
|
|
4961
4973
|
};
|
|
4962
|
-
return visualValidateInner(
|
|
4974
|
+
return visualValidateInner(
|
|
4975
|
+
laid,
|
|
4976
|
+
diag,
|
|
4977
|
+
violations,
|
|
4978
|
+
counts,
|
|
4979
|
+
push,
|
|
4980
|
+
profile,
|
|
4981
|
+
[...skipped],
|
|
4982
|
+
\u5668\u3092\u78BA\u304B\u3081\u308B()
|
|
4983
|
+
);
|
|
4963
4984
|
}
|
|
4964
4985
|
var VALIDATED_ARRAY_FIELDS = [
|
|
4965
4986
|
["laid", "lanes"],
|
|
@@ -5159,7 +5180,7 @@ function normalizeForValidation(value, problems, owner) {
|
|
|
5159
5180
|
}
|
|
5160
5181
|
return next;
|
|
5161
5182
|
}
|
|
5162
|
-
function visualValidateInner(laid, diag, violations, counts, push, profile, skippedAxes) {
|
|
5183
|
+
function visualValidateInner(laid, diag, violations, counts, push, profile, skippedAxes, \u5668) {
|
|
5163
5184
|
const problems = findMalformedInput(laid, diag);
|
|
5164
5185
|
for (const p of problems) push("malformed-input", p.detail, "error");
|
|
5165
5186
|
if (problems.length > 0) {
|
|
@@ -5167,7 +5188,7 @@ function visualValidateInner(laid, diag, violations, counts, push, profile, skip
|
|
|
5167
5188
|
diag = normalizeForValidation(diag, problems, "diag");
|
|
5168
5189
|
}
|
|
5169
5190
|
try {
|
|
5170
|
-
return runAxes(laid, diag, violations, counts, push, profile, skippedAxes);
|
|
5191
|
+
return runAxes(laid, diag, violations, counts, push, profile, skippedAxes, \u5668);
|
|
5171
5192
|
} catch (err) {
|
|
5172
5193
|
const known = counts["malformed-input"] > 0;
|
|
5173
5194
|
const axis = known ? "malformed-input" : "validation-interrupted";
|
|
@@ -5180,7 +5201,7 @@ function visualValidateInner(laid, diag, violations, counts, push, profile, skip
|
|
|
5180
5201
|
return { diagramId: safeDiagramId(diag), ok: false, violations, counts, profile, skippedAxes };
|
|
5181
5202
|
}
|
|
5182
5203
|
}
|
|
5183
|
-
function runAxes(laid, diag, violations, counts, push, profile, skippedAxes) {
|
|
5204
|
+
function runAxes(laid, diag, violations, counts, push, profile, skippedAxes, \u5668) {
|
|
5184
5205
|
const LIFELINE_W_THRESHOLD = 8;
|
|
5185
5206
|
for (const n of laid.nodes) {
|
|
5186
5207
|
if (n.w < LIFELINE_W_THRESHOLD) continue;
|
|
@@ -5880,14 +5901,8 @@ function runAxes(laid, diag, violations, counts, push, profile, skippedAxes) {
|
|
|
5880
5901
|
} catch {
|
|
5881
5902
|
}
|
|
5882
5903
|
}
|
|
5883
|
-
const
|
|
5884
|
-
const
|
|
5885
|
-
const RESPONSIVE_REF_FRAME_PAD_PX = 24;
|
|
5886
|
-
const RESPONSIVE_REF_CONTAINER_W_PX = RESPONSIVE_REF_FRAME_W_PX - RESPONSIVE_REF_FRAME_BORDER_PX * 2 - RESPONSIVE_REF_FRAME_PAD_PX * 2;
|
|
5887
|
-
const RESPONSIVE_REF_VIEWPORT_H_PX = 900;
|
|
5888
|
-
const RESPONSIVE_REF_FRAME_H_RATIO = 0.9;
|
|
5889
|
-
const RESPONSIVE_REF_CHROME_H_PX = 180;
|
|
5890
|
-
const RESPONSIVE_REF_CONTAINER_H_PX = RESPONSIVE_REF_VIEWPORT_H_PX * RESPONSIVE_REF_FRAME_H_RATIO - RESPONSIVE_REF_CHROME_H_PX;
|
|
5904
|
+
const RESPONSIVE_REF_CONTAINER_W_PX = \u5668.\u5E45;
|
|
5905
|
+
const RESPONSIVE_REF_CONTAINER_H_PX = \u5668.\u9AD8\u3055;
|
|
5891
5906
|
const RESPONSIVE_MIN_ON_SCREEN_FONT_PX = 12;
|
|
5892
5907
|
const RESPONSIVE_BASE_FONT_WORLD = 22;
|
|
5893
5908
|
const vbResp = laid.viewBox;
|
|
@@ -5899,15 +5914,16 @@ function runAxes(laid, diag, violations, counts, push, profile, skippedAxes) {
|
|
|
5899
5914
|
);
|
|
5900
5915
|
} else {
|
|
5901
5916
|
const \u6A2A\u306E\u500D\u7387 = RESPONSIVE_REF_CONTAINER_W_PX / vbResp.w;
|
|
5902
|
-
const \u7E26\u306E\u500D\u7387 = RESPONSIVE_REF_CONTAINER_H_PX / vbResp.h;
|
|
5917
|
+
const \u7E26\u306E\u500D\u7387 = RESPONSIVE_REF_CONTAINER_H_PX === void 0 ? Number.POSITIVE_INFINITY : RESPONSIVE_REF_CONTAINER_H_PX / vbResp.h;
|
|
5903
5918
|
const \u500D\u7387 = Math.min(\u6A2A\u306E\u500D\u7387, \u7E26\u306E\u500D\u7387);
|
|
5904
5919
|
const \u753B\u9762\u4E0A\u306E\u5B57 = RESPONSIVE_BASE_FONT_WORLD * \u500D\u7387;
|
|
5905
5920
|
if (\u753B\u9762\u4E0A\u306E\u5B57 < RESPONSIVE_MIN_ON_SCREEN_FONT_PX) {
|
|
5906
5921
|
const \u52B9\u304F\u8FBA = \u6A2A\u306E\u500D\u7387 <= \u7E26\u306E\u500D\u7387 ? "\u6A2A" : "\u7E26";
|
|
5907
|
-
const \u53CE\u307E\u308B\u5BF8\u6CD5 = \u52B9\u304F\u8FBA === "\u6A2A" ? `\u5E45 ${(RESPONSIVE_REF_CONTAINER_W_PX * RESPONSIVE_BASE_FONT_WORLD / RESPONSIVE_MIN_ON_SCREEN_FONT_PX).toFixed(0)} \u4EE5\u4E0B` : `\u9AD8\u3055 ${(RESPONSIVE_REF_CONTAINER_H_PX * RESPONSIVE_BASE_FONT_WORLD / RESPONSIVE_MIN_ON_SCREEN_FONT_PX).toFixed(0)} \u4EE5\u4E0B`;
|
|
5922
|
+
const \u53CE\u307E\u308B\u5BF8\u6CD5 = \u52B9\u304F\u8FBA === "\u6A2A" || RESPONSIVE_REF_CONTAINER_H_PX === void 0 ? `\u5E45 ${(RESPONSIVE_REF_CONTAINER_W_PX * RESPONSIVE_BASE_FONT_WORLD / RESPONSIVE_MIN_ON_SCREEN_FONT_PX).toFixed(0)} \u4EE5\u4E0B` : `\u9AD8\u3055 ${(RESPONSIVE_REF_CONTAINER_H_PX * RESPONSIVE_BASE_FONT_WORLD / RESPONSIVE_MIN_ON_SCREEN_FONT_PX).toFixed(0)} \u4EE5\u4E0B`;
|
|
5923
|
+
const \u5668\u306E\u66F8\u304D\u65B9 = RESPONSIVE_REF_CONTAINER_H_PX === void 0 ? `\u5668 \u5E45 ${RESPONSIVE_REF_CONTAINER_W_PX}px (\u9AD8\u3055\u306E\u4E0A\u9650\u306A\u3057)` : `\u5668 ${RESPONSIVE_REF_CONTAINER_W_PX}\xD7${RESPONSIVE_REF_CONTAINER_H_PX}px`;
|
|
5908
5924
|
push(
|
|
5909
5925
|
"responsive-viewport",
|
|
5910
|
-
`viewBox ${vbResp.w}\xD7${vbResp.h} \u306F
|
|
5926
|
+
`viewBox ${vbResp.w}\xD7${vbResp.h} \u306F${\u5668\u306E\u66F8\u304D\u65B9} \u3067 ${\u500D\u7387.toFixed(3)} \u500D\u306B\u7E2E\u307F\u3001 \u7BB1\u306E\u984C\u304C ${\u753B\u9762\u4E0A\u306E\u5B57.toFixed(1)}px \u306B\u306A\u308B (\u4E0B\u9650 ${RESPONSIVE_MIN_ON_SCREEN_FONT_PX}px\u3001 \u500D\u7387\u3092\u6C7A\u3081\u305F\u306E\u306F ${\u52B9\u304F\u8FBA}\u3001 ${\u53CE\u307E\u308B\u5BF8\u6CD5}\u306B\u3059\u308B\u3068\u5C4A\u304F)`,
|
|
5911
5927
|
"warn"
|
|
5912
5928
|
);
|
|
5913
5929
|
}
|
|
@@ -6871,6 +6887,9 @@ var LANE_PAD_MIN = 25;
|
|
|
6871
6887
|
// src/layout/edges.ts
|
|
6872
6888
|
var VERTICAL_DETOUR_GAP = 50;
|
|
6873
6889
|
var VERTICAL_DETOUR_CORNER = 14;
|
|
6890
|
+
function verticalCornerDir(from, to) {
|
|
6891
|
+
return to < from ? -1 : 1;
|
|
6892
|
+
}
|
|
6874
6893
|
var VERTICAL_DETOUR_EXIT = 45;
|
|
6875
6894
|
function nearestBoxDistance(anchorX, dir, verticalTop, verticalBottom, boxes) {
|
|
6876
6895
|
let nearest = Infinity;
|
|
@@ -8052,12 +8071,14 @@ function routePath(from, to, fromSide, toSide, obstacles = [], detourSide, _from
|
|
|
8052
8071
|
midY2 = retreatBelowMidBlockers(midY2);
|
|
8053
8072
|
const corner = 14;
|
|
8054
8073
|
const labelY = midY2 - labelInit;
|
|
8074
|
+
const \u7E26\u306E\u5411\u304DA = verticalCornerDir(A.y, midY2);
|
|
8075
|
+
const \u7E26\u306E\u5411\u304DB = verticalCornerDir(midY2, B.y);
|
|
8055
8076
|
return {
|
|
8056
8077
|
d: `M ${A.x} ${A.y}
|
|
8057
|
-
L ${A.x} ${midY2 - corner}
|
|
8078
|
+
L ${A.x} ${midY2 - \u7E26\u306E\u5411\u304DA * corner}
|
|
8058
8079
|
Q ${A.x} ${midY2}, ${A.x + xDir * corner} ${midY2}
|
|
8059
8080
|
L ${B.x - xDir * corner} ${midY2}
|
|
8060
|
-
Q ${B.x} ${midY2}, ${B.x} ${midY2 + corner}
|
|
8081
|
+
Q ${B.x} ${midY2}, ${B.x} ${midY2 + \u7E26\u306E\u5411\u304DB * corner}
|
|
8061
8082
|
L ${B.x} ${B.y}`,
|
|
8062
8083
|
labelX: (A.x + B.x) / 2,
|
|
8063
8084
|
labelY,
|