@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/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 \u5185\u8A33\u306E\u6570\u5024 = data.map((d) => `${\u5B9F\u5024\u8868\u8A18(d.value)} ${\u5272\u5408\u8868\u8A18(d.value / total)}`);
24894
- const \u4EF6\u306B\u8981\u308B\u5E45 = Math.max(\u5370\u306E\u5E452, ...\u5185\u8A33\u306E\u6570\u5024.map((t) => textWidth(t, \u6570\u5024\u306E\u7D1A))) + \u533A\u753B\u306E\u9593;
24895
- const \u884C\u306E\u4EF6\u6570 = Math.min(
24896
- Math.max(1, Math.floor(\u4F7F\u3048\u308B\u5E452 / Math.max(\u4EF6\u306B\u8981\u308B\u5E45, 1))),
24897
- Math.max(data.length, 1)
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 \u5185\u8A33\u306E\u6BB5\u6570 = Math.ceil(Math.max(data.length, 1) / \u884C\u306E\u4EF6\u6570);
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 = data.map((d) => {
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 \u6A2A\u306E\u4E0A\u9650 = \u5185\u534A\u5F84 * 2 * 0.86;
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
- \u6A2A\u306E\u4E0A\u9650 / Math.max(textWidth(\u5408\u8A08\u306E\u6587\u5B57, 100), 1) * 100,
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
- data.map((d, idx) => {
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;