@cardenelabs/cdl 0.40.4 → 0.40.6
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 +45 -1
- package/dist/index.cjs +57 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +57 -12
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +57 -12
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +57 -12
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/kinds/chart-gauge.tsx +88 -17
- package/src/validate.ts +27 -2
package/dist/index.js
CHANGED
|
@@ -20814,6 +20814,18 @@ var DRAW_KINDS = /* @__PURE__ */ new Set([
|
|
|
20814
20814
|
]);
|
|
20815
20815
|
var KINDS = new Set(NODE_KINDS);
|
|
20816
20816
|
var ENG_BANNED = /\b(FUNCTION|STORAGE|EVENT LOG|BALANCES MAPPING|READ|WRITE|EMIT|CALL)\b/;
|
|
20817
|
+
var \u56F3\u8868\u306E\u8377\u306E\u6B04 = [
|
|
20818
|
+
"chartData",
|
|
20819
|
+
"ganttData",
|
|
20820
|
+
"mindData",
|
|
20821
|
+
"funnelData",
|
|
20822
|
+
"quadrantData",
|
|
20823
|
+
"treeData",
|
|
20824
|
+
"journeyData"
|
|
20825
|
+
];
|
|
20826
|
+
function \u56F3\u8868\u306E\u7BC0(n) {
|
|
20827
|
+
return \u56F3\u8868\u306E\u8377\u306E\u6B04.some((\u6B04) => n[\u6B04] !== void 0);
|
|
20828
|
+
}
|
|
20817
20829
|
function validate(diag) {
|
|
20818
20830
|
const errors = [];
|
|
20819
20831
|
const warnings = [];
|
|
@@ -20971,7 +20983,7 @@ function validate(diag) {
|
|
|
20971
20983
|
for (const id of p.activate) allActivated.add(id);
|
|
20972
20984
|
}
|
|
20973
20985
|
for (const n of diag.nodes) {
|
|
20974
|
-
if (!allActivated.has(n.id)) {
|
|
20986
|
+
if (!allActivated.has(n.id) && !\u56F3\u8868\u306E\u7BC0(n)) {
|
|
20975
20987
|
warnings.push(`node "${n.id}" \u304C\u3069\u306E phase \u3067\u3082 activate \u3055\u308C\u3066\u3044\u306A\u3044 (unused\u3001 typo \u306E\u53EF\u80FD\u6027)`);
|
|
20976
20988
|
}
|
|
20977
20989
|
}
|
|
@@ -24890,13 +24902,46 @@ function ChartGaugeNode({
|
|
|
24890
24902
|
const \u5F27\u3068\u5185\u8A33\u306E\u9593 = 16;
|
|
24891
24903
|
const \u5370\u306E\u5E452 = 30;
|
|
24892
24904
|
const \u533A\u753B\u306E\u9593 = 12;
|
|
24893
|
-
const \
|
|
24894
|
-
const \
|
|
24895
|
-
|
|
24896
|
-
|
|
24897
|
-
|
|
24905
|
+
const \u6570\u5024\u306E\u884C = (d) => `${\u5B9F\u5024\u8868\u8A18(d.value)} ${\u5272\u5408\u8868\u8A18(d.value / total)}`;
|
|
24906
|
+
const \u5272\u308A\u4ED8\u3051\u308B = (\u4EF6\u305F\u3061) => {
|
|
24907
|
+
const \u5E45 = Math.max(\u5370\u306E\u5E452, ...\u4EF6\u305F\u3061.map((d) => textWidth(\u6570\u5024\u306E\u884C(d), \u6570\u5024\u306E\u7D1A))) + \u533A\u753B\u306E\u9593;
|
|
24908
|
+
const \u884C\u306E\u4EF6\u65702 = Math.min(
|
|
24909
|
+
Math.max(1, Math.floor(\u4F7F\u3048\u308B\u5E452 / Math.max(\u5E45, 1))),
|
|
24910
|
+
Math.max(\u4EF6\u305F\u3061.length, 1)
|
|
24911
|
+
);
|
|
24912
|
+
return { \u884C\u306E\u4EF6\u6570: \u884C\u306E\u4EF6\u65702, \u6BB5\u6570: Math.ceil(Math.max(\u4EF6\u305F\u3061.length, 1) / \u884C\u306E\u4EF6\u65702) };
|
|
24913
|
+
};
|
|
24914
|
+
const \u5F27\u306B\u6B8B\u3059\u9AD8\u3055 = 48;
|
|
24915
|
+
const \u7F6E\u3051\u308B\u6BB5\u6570 = Math.max(
|
|
24916
|
+
1,
|
|
24917
|
+
Math.floor((\u4F7F\u3048\u308B\u9AD8\u3055 - \u5F27\u306B\u6B8B\u3059\u9AD8\u3055 - \u5F27\u3068\u5185\u8A33\u306E\u9593) / \u6BB5\u306E\u9AD8\u3055)
|
|
24898
24918
|
);
|
|
24899
|
-
const \
|
|
24919
|
+
const \u7573\u3080 = (\u6B8B\u3059\u4EF6\u6570) => {
|
|
24920
|
+
if (\u6B8B\u3059\u4EF6\u6570 >= data.length) return data;
|
|
24921
|
+
const \u524D = data.slice(0, Math.max(0, \u6B8B\u3059\u4EF6\u6570 - 1));
|
|
24922
|
+
const \u6B8B\u308A = data.slice(Math.max(0, \u6B8B\u3059\u4EF6\u6570 - 1));
|
|
24923
|
+
const \u5024 = \u6B8B\u308A.reduce((acc, d) => acc + d.value, 0);
|
|
24924
|
+
const \u8AAD\u3081\u306A\u3044 = \u6B8B\u308A.some((d) => d.unresolved);
|
|
24925
|
+
const \u7573\u3093\u3060 = {
|
|
24926
|
+
...\u6B8B\u308A[0],
|
|
24927
|
+
label: "\u305D\u306E\u4ED6",
|
|
24928
|
+
value: \u5024,
|
|
24929
|
+
previous: void 0,
|
|
24930
|
+
...\u8AAD\u3081\u306A\u3044 ? { unresolved: true } : { unresolved: void 0 }
|
|
24931
|
+
};
|
|
24932
|
+
return [...\u524D, \u7573\u3093\u3060];
|
|
24933
|
+
};
|
|
24934
|
+
const \u51FA\u3059\u4EF6\u305F\u3061 = (() => {
|
|
24935
|
+
let \u4EF6\u305F\u3061 = data;
|
|
24936
|
+
for (let i = 0; i < 4; i++) {
|
|
24937
|
+
const { \u884C\u306E\u4EF6\u6570: \u884C\u306E\u4EF6\u65702, \u6BB5\u6570 } = \u5272\u308A\u4ED8\u3051\u308B(\u4EF6\u305F\u3061);
|
|
24938
|
+
if (\u6BB5\u6570 <= \u7F6E\u3051\u308B\u6BB5\u6570) return \u4EF6\u305F\u3061;
|
|
24939
|
+
\u4EF6\u305F\u3061 = \u7573\u3080(Math.max(1, \u7F6E\u3051\u308B\u6BB5\u6570 * \u884C\u306E\u4EF6\u65702));
|
|
24940
|
+
}
|
|
24941
|
+
return \u4EF6\u305F\u3061;
|
|
24942
|
+
})();
|
|
24943
|
+
const \u5185\u8A33\u306E\u6570\u5024 = \u51FA\u3059\u4EF6\u305F\u3061.map((d) => \u6570\u5024\u306E\u884C(d));
|
|
24944
|
+
const { \u884C\u306E\u4EF6\u6570, \u6BB5\u6570: \u5185\u8A33\u306E\u6BB5\u6570 } = \u5272\u308A\u4ED8\u3051\u308B(\u51FA\u3059\u4EF6\u305F\u3061);
|
|
24900
24945
|
const \u5185\u8A33\u306E\u9AD8\u3055 = \u6BB5\u306E\u9AD8\u3055 * \u5185\u8A33\u306E\u6BB5\u6570;
|
|
24901
24946
|
const \u5F27\u306B\u4F7F\u3048\u308B\u9AD8\u3055 = \u4F7F\u3048\u308B\u9AD8\u3055 - \u5185\u8A33\u306E\u9AD8\u3055 - \u5F27\u3068\u5185\u8A33\u306E\u9593;
|
|
24902
24947
|
const radius = Math.max(24, Math.min(\u5F27\u306B\u4F7F\u3048\u308B\u9AD8\u3055, \u4F7F\u3048\u308B\u5E452 / 2));
|
|
@@ -24904,7 +24949,7 @@ function ChartGaugeNode({
|
|
|
24904
24949
|
const cx = node.w / 2;
|
|
24905
24950
|
const cy = PAD_TOP2 + radius;
|
|
24906
24951
|
let cumFrac = 0;
|
|
24907
|
-
const slices =
|
|
24952
|
+
const slices = \u51FA\u3059\u4EF6\u305F\u3061.map((d) => {
|
|
24908
24953
|
const frac = d.value / total;
|
|
24909
24954
|
const a0 = Math.PI + cumFrac * Math.PI;
|
|
24910
24955
|
const a1 = a0 + frac * Math.PI;
|
|
@@ -24917,10 +24962,10 @@ function ChartGaugeNode({
|
|
|
24917
24962
|
return { d, frac, path };
|
|
24918
24963
|
});
|
|
24919
24964
|
const \u5408\u8A08\u306E\u6587\u5B57 = \u5B9F\u5024\u8868\u8A18(Math.round(total));
|
|
24920
|
-
const \
|
|
24965
|
+
const \u5358\u4F4D\u5E45 = Math.max(textWidth(\u5408\u8A08\u306E\u6587\u5B57, 100), 1) / 100;
|
|
24921
24966
|
const \u7D1A\u306E\u5019\u88DC = Math.min(
|
|
24922
|
-
// 横 =
|
|
24923
|
-
\
|
|
24967
|
+
// 横 = 字の上の角が内側の円に入る大きさ
|
|
24968
|
+
\u5185\u534A\u5F84 / Math.sqrt((\u5358\u4F4D\u5E45 / 2) ** 2 + 1.25 ** 2),
|
|
24924
24969
|
// 縦 = 合計 1 行 + 見出し 1 行が内側の高さに収まる比
|
|
24925
24970
|
\u5185\u534A\u5F84 * 0.52
|
|
24926
24971
|
);
|
|
@@ -24983,7 +25028,7 @@ function ChartGaugeNode({
|
|
|
24983
25028
|
children: "\u5408\u8A08"
|
|
24984
25029
|
}
|
|
24985
25030
|
),
|
|
24986
|
-
|
|
25031
|
+
\u51FA\u3059\u4EF6\u305F\u3061.map((d, idx) => {
|
|
24987
25032
|
const \u5217 = idx % \u884C\u306E\u4EF6\u6570;
|
|
24988
25033
|
const \u6BB5 = Math.floor(idx / \u884C\u306E\u4EF6\u6570);
|
|
24989
25034
|
const x = PAD_SIDE + \u5185\u8A33\u306E\u5E45 * \u5217;
|