@likec4/core 1.26.1 → 1.26.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.
@@ -1,5 +1,5 @@
1
- import { i, l, d, L as LikeC4Model } from '../shared/core.CcjDE4j7.mjs';
2
- import { b as t, m, n as nameFromFqn, l as l$1, c as isSameHierarchy, p as parentFqn, a as i$1, d as t$1 } from '../shared/core.BqezHsjR.mjs';
1
+ import { a as i, l, d, L as LikeC4Model } from '../shared/core.NNojPYtn.mjs';
2
+ import { c as t, m, n as nameFromFqn, l as l$1, d as isSameHierarchy, p as parentFqn, a as i$1, e as t$1 } from '../shared/core.DvRnF4Sc.mjs';
3
3
  import { o, b as isElementPredicateExpr, D as DefaultElementShape, c as DefaultThemeColor, n as n$1, d as DeploymentElement, e as isScopedElementView } from '../shared/core.yND74qFI.mjs';
4
4
  import { u, i as invariant } from '../shared/core.DRxv3HIl.mjs';
5
5
 
@@ -1,8 +1,8 @@
1
- import { G as Graph, r, w as willCreateCycle, t as topologicalSortExports, i as i$1, l } from '../shared/core.CcjDE4j7.mjs';
2
- export { c as computeView, a as computeViews, u as unsafeComputeView } from '../shared/core.CcjDE4j7.mjs';
3
- export { c as computeRelationshipsView } from '../shared/core.BBJd-FqJ.mjs';
1
+ import { G as Graph, r, w as willCreateCycle, t as topologicalSortExports, i as i$1, a as i$2, l } from '../shared/core.NNojPYtn.mjs';
2
+ export { c as computeView, b as computeViews, u as unsafeComputeView } from '../shared/core.NNojPYtn.mjs';
3
+ export { c as computeRelationshipsView } from '../shared/core.C8xqv5sq.mjs';
4
4
  import { i as isExtendsElementView, a as isElementView } from '../shared/core.yND74qFI.mjs';
5
- import { a as i, m } from '../shared/core.BqezHsjR.mjs';
5
+ import { a as i, b as isNonEmptyArray, m } from '../shared/core.DvRnF4Sc.mjs';
6
6
  import { u } from '../shared/core.DRxv3HIl.mjs';
7
7
 
8
8
  function y(...t){return u(f,t)}function f(t,e){if(!i(e,1))return {...t};if(!i(e,2)){let{[e[0]]:r,...m}=t;return m}let o={...t};for(let r of e)delete o[r];return o}
@@ -43,9 +43,21 @@ function resolveRulesExtendedViews(unresolvedViews) {
43
43
  if (!extendsFrom || !isElementView(extendsFrom)) {
44
44
  return acc;
45
45
  }
46
+ const tags = i$1([
47
+ ...extendsFrom.tags ?? [],
48
+ ...view.tags ?? []
49
+ ]);
50
+ const links = [
51
+ ...extendsFrom.links ?? [],
52
+ ...view.links ?? []
53
+ ];
46
54
  acc[view.id] = {
47
55
  ...extendsFrom,
48
56
  ...view,
57
+ title: view.title ?? extendsFrom.title ?? null,
58
+ description: view.description ?? extendsFrom.description ?? null,
59
+ tags: isNonEmptyArray(tags) ? tags : null,
60
+ links: isNonEmptyArray(links) ? links : null,
49
61
  rules: [...extendsFrom.rules, ...view.rules]
50
62
  };
51
63
  return acc;
@@ -72,7 +84,7 @@ function withReadableEdges({ edges, nodes, ...view }, separator = ":") {
72
84
  function viewsWithReadableEdges({ views, ...model }) {
73
85
  return {
74
86
  ...model,
75
- views: i$1(views, (v) => y(withReadableEdges(v), ["nodeIds", "edgeIds"]))
87
+ views: i$2(views, (v) => y(withReadableEdges(v), ["nodeIds", "edgeIds"]))
76
88
  };
77
89
  }
78
90
 
package/dist/index.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  export { i as invariant, a as nonNullable, n as nonexhaustive } from './shared/core.DRxv3HIl.mjs';
2
2
  export { A as AsFqn, B as BorderStyles, V as ComputedNode, W as ComputedView, S as DefaultArrowType, D as DefaultElementShape, T as DefaultLineStyle, g as DefaultPaddingSize, U as DefaultRelationshipColor, h as DefaultShapeSize, j as DefaultTextSize, c as DefaultThemeColor, d as DeploymentElement, X as DiagramNode, E as ElementKind, k as ElementShapes, f as Expr, H as ExpressionV2, I as FqnExpr, J as FqnRef, R as RelationExpr, Y as extractStep, Z as getBBoxCenter, _ as getParallelStepsPrefix, K as isAndOperator, $ as isAutoLayoutDirection, l as isCustomElement, m as isCustomRelationExpr, a0 as isDeploymentView, a1 as isDynamicView, a2 as isDynamicViewParallelSteps, p as isElement, q as isElementKindExpr, b as isElementPredicateExpr, r as isElementRef, s as isElementTagExpr, a as isElementView, t as isElementWhere, u as isExpandedElementExpr, i as isExtendsElementView, w as isInOut, v as isIncoming, L as isKindEqual, M as isNotOperator, N as isOrOperator, x as isOutgoing, O as isParticipantOperator, y as isRelation, z as isRelationExpression, C as isRelationPredicateExpr, F as isRelationWhere, e as isScopedElementView, a3 as isStepEdgeId, P as isTagEqual, a4 as isViewRuleAutoLayout, a5 as isViewRuleGlobalPredicateRef, a6 as isViewRuleGlobalStyle, a7 as isViewRuleGroup, a8 as isViewRulePredicate, a9 as isViewRuleStyle, G as isWildcard, aa as stepEdgeId, Q as whereOperatorAsPredicate } from './shared/core.yND74qFI.mjs';
3
- export { C as Connection, b as ConnectionModel, D as DeployedInstanceModel, e as DeploymentConnectionModel, f as DeploymentNodeModel, g as DeploymentRelationModel, E as EdgeModel, h as ElementModel, j as LikeC4DeploymentModel, L as LikeC4Model, k as LikeC4ViewModel, N as NodeModel, R as RelationshipModel, c as computeView, a as computeViews, u as unsafeComputeView } from './shared/core.CcjDE4j7.mjs';
4
- export { c as computeRelationshipsView } from './shared/core.BBJd-FqJ.mjs';
3
+ export { C as Connection, e as ConnectionModel, D as DeployedInstanceModel, f as DeploymentConnectionModel, g as DeploymentNodeModel, h as DeploymentRelationModel, E as EdgeModel, j as ElementModel, k as LikeC4DeploymentModel, L as LikeC4Model, m as LikeC4ViewModel, N as NodeModel, R as RelationshipModel, c as computeView, b as computeViews, u as unsafeComputeView } from './shared/core.NNojPYtn.mjs';
4
+ export { c as computeRelationshipsView } from './shared/core.C8xqv5sq.mjs';
5
5
  export { ThemeColors, isThemeColor } from './types/index.mjs';
6
6
  export { BiMap, DefaultWeakMap, LinkedList, MultiMap, Queue, compareRelations, delay, ireduce } from './utils/index.mjs';
7
- export { D as DefaultMap, S as Stack, g as ancestorsFqn, h as commonAncestor, e as commonHead, j as compareByFqnHierarchically, k as compareFqnHierarchically, f as compareNatural, I as difference, J as equalsSet, x as getOrCreate, a as hasAtLeast, o as hierarchyDistance, q as hierarchyLevel, A as ifilter, i as ifind, B as iflat, C as imap, K as intersection, r as isAncestor, s as isDescendantOf, E as isIterable, y as isNonEmptyArray, c as isSameHierarchy, z as isString, F as isome, G as iunique, n as nameFromFqn, O as objectHash, p as parentFqn, u as sortByFqnHierarchically, v as sortNaturalByFqn, w as sortParentsFirst, N as stringHash, L as symmetricDifference, H as toArray, t as toSet, M as union } from './shared/core.BqezHsjR.mjs';
7
+ export { D as DefaultMap, S as Stack, h as ancestorsFqn, j as commonAncestor, f as commonHead, k as compareByFqnHierarchically, o as compareFqnHierarchically, g as compareNatural, I as difference, J as equalsSet, y as getOrCreate, a as hasAtLeast, q as hierarchyDistance, r as hierarchyLevel, A as ifilter, i as ifind, B as iflat, C as imap, K as intersection, s as isAncestor, u as isDescendantOf, E as isIterable, b as isNonEmptyArray, d as isSameHierarchy, z as isString, F as isome, G as iunique, n as nameFromFqn, O as objectHash, p as parentFqn, v as sortByFqnHierarchically, w as sortNaturalByFqn, x as sortParentsFirst, N as stringHash, L as symmetricDifference, H as toArray, t as toSet, M as union } from './shared/core.DvRnF4Sc.mjs';
8
8
 
9
9
  const { min: min$4, max: max$4 } = Math;
10
10
 
@@ -1 +1 @@
1
- export { C as Connection, b as ConnectionModel, D as DeployedInstanceModel, e as DeploymentConnectionModel, f as DeploymentNodeModel, g as DeploymentRelationModel, E as EdgeModel, h as ElementModel, j as LikeC4DeploymentModel, L as LikeC4Model, k as LikeC4ViewModel, N as NodeModel, R as RelationshipModel, m as deploymentConnection, n as differenceConnections, o as findAscendingConnections, p as findDeepestNestedConnection, q as findDescendantConnections, s as hasSameSource, v as hasSameSourceTarget, x as hasSameTarget, y as isAnyInOut, K as isDeployedInstance, M as isDeploymentNode, z as isIncoming, A as isNestedConnection, B as isOutgoing, F as mergeConnections, H as modelConnection, I as sortConnectionsByBoundaryHierarchy, J as sortDeepestFirst } from '../shared/core.CcjDE4j7.mjs';
1
+ export { C as Connection, e as ConnectionModel, D as DeployedInstanceModel, f as DeploymentConnectionModel, g as DeploymentNodeModel, h as DeploymentRelationModel, E as EdgeModel, j as ElementModel, k as LikeC4DeploymentModel, L as LikeC4Model, m as LikeC4ViewModel, N as NodeModel, R as RelationshipModel, n as deploymentConnection, o as differenceConnections, p as findAscendingConnections, q as findDeepestNestedConnection, s as findDescendantConnections, v as hasSameSource, x as hasSameSourceTarget, y as hasSameTarget, z as isAnyInOut, M as isDeployedInstance, O as isDeploymentNode, A as isIncoming, B as isNestedConnection, F as isOutgoing, H as mergeConnections, I as modelConnection, J as sortConnectionsByBoundaryHierarchy, K as sortDeepestFirst } from '../shared/core.NNojPYtn.mjs';
@@ -1,4 +1,4 @@
1
- import { t as toSet, i as ifind } from './core.BqezHsjR.mjs';
1
+ import { t as toSet, i as ifind } from './core.DvRnF4Sc.mjs';
2
2
 
3
3
  function computeRelationshipsView(subjectId, likec4model) {
4
4
  const subject = likec4model.element(subjectId);
@@ -1453,4 +1453,4 @@ function requireObject_hash () {
1453
1453
  var object_hashExports = requireObject_hash();
1454
1454
  const objectHash = /*@__PURE__*/getDefaultExportFromCjs(object_hashExports);
1455
1455
 
1456
- export { ifilter as A, iflat as B, imap as C, DefaultMap as D, isIterable as E, isome as F, iunique as G, toArray as H, difference as I, equals as J, intersection as K, symmetricDifference as L, union as M, stringHash as N, objectHash as O, C as P, s as Q, a as R, Stack as S, getDefaultExportFromCjs as T, requireForeach as U, requireIterator as V, u as W, d as X, n as Y, hasIntersection as Z, i$1 as a, t$1 as b, isSameHierarchy as c, t as d, commonHead as e, compareNatural as f, ancestorsFqn as g, commonAncestor as h, ifind as i, compareByFqnHierarchically as j, compareFqnHierarchically as k, l, m, nameFromFqn as n, hierarchyDistance as o, parentFqn as p, hierarchyLevel as q, isAncestor as r, isDescendantOf as s, toSet as t, sortByFqnHierarchically as u, sortNaturalByFqn as v, sortParentsFirst as w, getOrCreate as x, isNonEmptyArray as y, isString as z };
1456
+ export { ifilter as A, iflat as B, imap as C, DefaultMap as D, isIterable as E, isome as F, iunique as G, toArray as H, difference as I, equals as J, intersection as K, symmetricDifference as L, union as M, stringHash as N, objectHash as O, C as P, s as Q, a as R, Stack as S, getDefaultExportFromCjs as T, requireForeach as U, requireIterator as V, u as W, d as X, n as Y, hasIntersection as Z, i$1 as a, isNonEmptyArray as b, t$1 as c, isSameHierarchy as d, t as e, commonHead as f, compareNatural as g, ancestorsFqn as h, ifind as i, commonAncestor as j, compareByFqnHierarchically as k, l, m, nameFromFqn as n, compareFqnHierarchically as o, parentFqn as p, hierarchyDistance as q, hierarchyLevel as r, isAncestor as s, toSet as t, isDescendantOf as u, sortByFqnHierarchically as v, sortNaturalByFqn as w, sortParentsFirst as x, getOrCreate as y, isString as z };
@@ -1,5 +1,5 @@
1
1
  import { D as DefaultElementShape, c as DefaultThemeColor, h as DefaultShapeSize, ab as o$8, t as isElementWhere, Q as whereOperatorAsPredicate, G as isWildcard, q as isElementKindExpr, s as isElementTagExpr, n as n$4, u as isExpandedElementExpr, r as isElementRef, l as isCustomElement, a9 as isViewRuleStyle, ac as y$2, V as ComputedNode, E as ElementKind, S as DefaultArrowType, I as FqnExpr, R as RelationExpr, o as o$9, a8 as isViewRulePredicate, a4 as isViewRuleAutoLayout, a7 as isViewRuleGroup, a5 as isViewRuleGlobalPredicateRef, a6 as isViewRuleGlobalStyle, aa as stepEdgeId, a2 as isDynamicViewParallelSteps, T as DefaultLineStyle, U as DefaultRelationshipColor, x as isOutgoing$1, v as isIncoming$1, w as isInOut, y as isRelation, F as isRelationWhere, m as isCustomRelationExpr, C as isRelationPredicateExpr, b as isElementPredicateExpr, a as isElementView, a1 as isDynamicView, a0 as isDeploymentView, d as DeploymentElement, Y as extractStep, a3 as isStepEdgeId, e as isScopedElementView } from './core.yND74qFI.mjs';
2
- import { P as C, Q as s$1, R as a$5, q as hierarchyLevel, r as isAncestor, h as commonAncestor, v as sortNaturalByFqn, m as m$3, e as commonHead, T as getDefaultExportFromCjs, U as requireForeach, V as requireIterator, W as u$7, O as objectHash, K as intersection, I as difference, M as union, N as stringHash, J as equals, s as isDescendantOf, z as isString, c as isSameHierarchy, F as isome, A as ifilter, E as isIterable, t as toSet, w as sortParentsFirst, H as toArray, D as DefaultMap, C as imap, a as i$9, X as d$6, p as parentFqn, Y as n$5, j as compareByFqnHierarchically, y as isNonEmptyArray, f as compareNatural, n as nameFromFqn, b as t$6, l as l$7, Z as hasIntersection, u as sortByFqnHierarchically, g as ancestorsFqn, S as Stack, G as iunique, B as iflat, x as getOrCreate, i as ifind } from './core.BqezHsjR.mjs';
2
+ import { P as C, Q as s$1, R as a$5, r as hierarchyLevel, s as isAncestor, j as commonAncestor, w as sortNaturalByFqn, m as m$3, f as commonHead, T as getDefaultExportFromCjs, U as requireForeach, V as requireIterator, W as u$7, O as objectHash, K as intersection, I as difference, M as union, N as stringHash, J as equals, u as isDescendantOf, z as isString, d as isSameHierarchy, F as isome, A as ifilter, E as isIterable, t as toSet, x as sortParentsFirst, H as toArray, D as DefaultMap, C as imap, a as i$9, X as d$6, p as parentFqn, Y as n$5, k as compareByFqnHierarchically, b as isNonEmptyArray, g as compareNatural, n as nameFromFqn, c as t$6, l as l$7, Z as hasIntersection, v as sortByFqnHierarchically, h as ancestorsFqn, S as Stack, G as iunique, B as iflat, y as getOrCreate, i as ifind } from './core.DvRnF4Sc.mjs';
3
3
  import { u as u$6, a as nonNullable, i as invariant, n as nonexhaustive } from './core.DRxv3HIl.mjs';
4
4
 
5
5
  function y$1(t,i){let a=i.length-t.length;if(a===1){let[n,...r]=i;return C(n,{lazy:t,lazyArgs:r})}if(a===0){let n={lazy:t,lazyArgs:i};return Object.assign(e=>C(e,n),n)}throw new Error("Wrong number of arguments")}
@@ -4653,11 +4653,8 @@ class DynamicViewCompute {
4653
4653
  relations,
4654
4654
  tags,
4655
4655
  navigateTo: derivedNavigateTo,
4656
- head,
4657
- tail,
4658
4656
  color,
4659
- line,
4660
- notation
4657
+ line
4661
4658
  } = this.findRelations(source, target);
4662
4659
  const navigateTo = n$2(stepNavigateTo) && stepNavigateTo !== this.view.id ? stepNavigateTo : derivedNavigateTo;
4663
4660
  this.steps.push({
@@ -4670,11 +4667,8 @@ class DynamicViewCompute {
4670
4667
  isBackward: isBackward ?? false,
4671
4668
  ...navigateTo ? { navigateTo } : {},
4672
4669
  ...tags ? { tags } : {},
4673
- ...head ? { head } : {},
4674
- ...tail ? { tail } : {},
4675
4670
  ...color ? { color } : {},
4676
- ...line ? { line } : {},
4677
- ...notation ? { notation } : {}
4671
+ ...line ? { line } : {}
4678
4672
  });
4679
4673
  }
4680
4674
  compute() {
@@ -4793,11 +4787,8 @@ class DynamicViewCompute {
4793
4787
  tags: null,
4794
4788
  relations: null,
4795
4789
  navigateTo: null,
4796
- tail: null,
4797
- head: null,
4798
4790
  color: null,
4799
- line: null,
4800
- notation: null
4791
+ line: null
4801
4792
  };
4802
4793
  }
4803
4794
  const alltags = C(
@@ -4822,17 +4813,12 @@ class DynamicViewCompute {
4822
4813
  relationships,
4823
4814
  l$5((acc, { title, $relationship: r }) => {
4824
4815
  n$2(title) && acc.title.add(title);
4825
- n$2(r.tail) && acc.tail.add(r.tail);
4826
- n$2(r.head) && acc.head.add(r.head);
4827
4816
  n$2(r.color) && acc.color.add(r.color);
4828
4817
  n$2(r.line) && acc.line.add(r.line);
4829
4818
  return acc;
4830
4819
  }, {
4831
- tail: /* @__PURE__ */ new Set(),
4832
- head: /* @__PURE__ */ new Set(),
4833
4820
  color: /* @__PURE__ */ new Set(),
4834
4821
  line: /* @__PURE__ */ new Set(),
4835
- notation: /* @__PURE__ */ new Set(),
4836
4822
  title: /* @__PURE__ */ new Set()
4837
4823
  })
4838
4824
  );
@@ -4841,11 +4827,8 @@ class DynamicViewCompute {
4841
4827
  relations,
4842
4828
  navigateTo: navigateTo ?? null,
4843
4829
  title: t$2([...commonProperties.title]) ?? null,
4844
- tail: t$2([...commonProperties.tail]) ?? null,
4845
- head: t$2([...commonProperties.head]) ?? null,
4846
4830
  color: t$2([...commonProperties.color]) ?? null,
4847
- line: t$2([...commonProperties.line]) ?? null,
4848
- notation: t$2([...commonProperties.notation]) ?? null
4831
+ line: t$2([...commonProperties.line]) ?? null
4849
4832
  };
4850
4833
  }
4851
4834
  }
@@ -7476,4 +7459,4 @@ class LikeC4Model {
7476
7459
  });
7477
7460
  })(LikeC4Model || (LikeC4Model = {}));
7478
7461
 
7479
- export { isNestedConnection as A, isOutgoing as B, Connection as C, DeployedInstanceModel as D, EdgeModel as E, mergeConnections as F, Graph as G, find$1 as H, sortConnectionsByBoundaryHierarchy as I, sortDeepestFirst as J, isDeployedInstance as K, LikeC4Model as L, isDeploymentNode as M, NodeModel as N, RelationshipModel as R, computeViews as a, ConnectionModel as b, computeView as c, d$2 as d, DeploymentConnectionModel as e, DeploymentNodeModel as f, DeploymentRelationModel as g, ElementModel as h, i$3 as i, LikeC4DeploymentModel as j, LikeC4ViewModel as k, l$3 as l, find as m, differenceConnections as n, findAscendingConnections as o, findDeepestNestedConnection as p, findDescendantConnections as q, r$3 as r, hasSameSource as s, topologicalSortExports as t, unsafeComputeView as u, hasSameSourceTarget as v, willCreateCycle as w, hasSameTarget as x, isAnyInOut as y, isIncoming as z };
7462
+ export { isIncoming as A, isNestedConnection as B, Connection as C, DeployedInstanceModel as D, EdgeModel as E, isOutgoing as F, Graph as G, mergeConnections as H, find$1 as I, sortConnectionsByBoundaryHierarchy as J, sortDeepestFirst as K, LikeC4Model as L, isDeployedInstance as M, NodeModel as N, isDeploymentNode as O, RelationshipModel as R, i$3 as a, computeViews as b, computeView as c, d$2 as d, ConnectionModel as e, DeploymentConnectionModel as f, DeploymentNodeModel as g, DeploymentRelationModel as h, i$8 as i, ElementModel as j, LikeC4DeploymentModel as k, l$3 as l, LikeC4ViewModel as m, find as n, differenceConnections as o, findAscendingConnections as p, findDeepestNestedConnection as q, r$3 as r, findDescendantConnections as s, topologicalSortExports as t, unsafeComputeView as u, hasSameSource as v, willCreateCycle as w, hasSameSourceTarget as x, hasSameTarget as y, isAnyInOut as z };
@@ -1,5 +1,5 @@
1
- import { U as requireForeach, T as getDefaultExportFromCjs, V as requireIterator, d as t, Y as n, h as commonAncestor, k as compareFqnHierarchically } from '../shared/core.BqezHsjR.mjs';
2
- export { D as DefaultMap, S as Stack, g as ancestorsFqn, e as commonHead, j as compareByFqnHierarchically, f as compareNatural, I as difference, J as equalsSet, x as getOrCreate, a as hasAtLeast, o as hierarchyDistance, q as hierarchyLevel, A as ifilter, i as ifind, B as iflat, C as imap, K as intersection, r as isAncestor, s as isDescendantOf, E as isIterable, y as isNonEmptyArray, c as isSameHierarchy, z as isString, F as isome, G as iunique, n as nameFromFqn, O as objectHash, p as parentFqn, u as sortByFqnHierarchically, v as sortNaturalByFqn, w as sortParentsFirst, N as stringHash, L as symmetricDifference, H as toArray, t as toSet, M as union } from '../shared/core.BqezHsjR.mjs';
1
+ import { U as requireForeach, T as getDefaultExportFromCjs, V as requireIterator, e as t, Y as n, j as commonAncestor, o as compareFqnHierarchically } from '../shared/core.DvRnF4Sc.mjs';
2
+ export { D as DefaultMap, S as Stack, h as ancestorsFqn, f as commonHead, k as compareByFqnHierarchically, g as compareNatural, I as difference, J as equalsSet, y as getOrCreate, a as hasAtLeast, q as hierarchyDistance, r as hierarchyLevel, A as ifilter, i as ifind, B as iflat, C as imap, K as intersection, s as isAncestor, u as isDescendantOf, E as isIterable, b as isNonEmptyArray, d as isSameHierarchy, z as isString, F as isome, G as iunique, n as nameFromFqn, O as objectHash, p as parentFqn, v as sortByFqnHierarchically, w as sortNaturalByFqn, x as sortParentsFirst, N as stringHash, L as symmetricDifference, H as toArray, t as toSet, M as union } from '../shared/core.DvRnF4Sc.mjs';
3
3
  import { i as invariant } from '../shared/core.DRxv3HIl.mjs';
4
4
 
5
5
  function o(r,n){let e=Math.ceil(r),t=Math.floor(n);if(t<e)throw new RangeError(`randomInteger: The range [${r.toString()},${n.toString()}] contains no integer`);return Math.floor(Math.random()*(t-e+1)+e)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@likec4/core",
3
- "version": "1.26.1",
3
+ "version": "1.26.2",
4
4
  "license": "MIT",
5
5
  "homepage": "https://likec4.dev",
6
6
  "author": "Denis Davydkov <denis@davydkov.com>",
@@ -96,7 +96,7 @@
96
96
  "typescript": "5.8.2",
97
97
  "unbuild": "^3.3.1",
98
98
  "vitest": "^3.0.8",
99
- "@likec4/tsconfig": "1.26.1"
99
+ "@likec4/tsconfig": "1.26.2"
100
100
  },
101
101
  "scripts": {
102
102
  "typecheck": "tsc --noEmit",
@@ -5,39 +5,39 @@ export interface BuilderMethods<T extends AnyTypes> {
5
5
  with<A extends AnyTypes>(): Builder<A>
6
6
 
7
7
  with<
8
- A extends AnyTypes
8
+ A extends AnyTypes,
9
9
  >(
10
- op1: (input: Builder<T>) => Builder<A>
10
+ op1: (input: Builder<T>) => Builder<A>,
11
11
  ): Builder<A>
12
12
 
13
13
  with<
14
14
  A extends AnyTypes,
15
- B extends AnyTypes
15
+ B extends AnyTypes,
16
16
  >(
17
17
  op1: (input: Builder<T>) => Builder<A>,
18
- op2: (input: Builder<A>) => Builder<B>
18
+ op2: (input: Builder<A>) => Builder<B>,
19
19
  ): Builder<B>
20
20
 
21
21
  with<
22
22
  A extends AnyTypes,
23
23
  B extends AnyTypes,
24
- C extends AnyTypes
24
+ C extends AnyTypes,
25
25
  >(
26
26
  op1: (input: Builder<T>) => Builder<A>,
27
27
  op2: (input: Builder<A>) => Builder<B>,
28
- op3: (input: Builder<B>) => Builder<C>
28
+ op3: (input: Builder<B>) => Builder<C>,
29
29
  ): Builder<C>
30
30
 
31
31
  with<
32
32
  A extends AnyTypes,
33
33
  B extends AnyTypes,
34
34
  C extends AnyTypes,
35
- D extends AnyTypes
35
+ D extends AnyTypes,
36
36
  >(
37
37
  op1: (input: Builder<T>) => Builder<A>,
38
38
  op2: (input: Builder<A>) => Builder<B>,
39
39
  op3: (input: Builder<B>) => Builder<C>,
40
- op4: (input: Builder<C>) => Builder<D>
40
+ op4: (input: Builder<C>) => Builder<D>,
41
41
  ): Builder<D>
42
42
 
43
43
  with<
@@ -45,13 +45,13 @@ export interface BuilderMethods<T extends AnyTypes> {
45
45
  B extends AnyTypes,
46
46
  C extends AnyTypes,
47
47
  D extends AnyTypes,
48
- E extends AnyTypes
48
+ E extends AnyTypes,
49
49
  >(
50
50
  op1: (input: Builder<T>) => Builder<A>,
51
51
  op2: (input: Builder<A>) => Builder<B>,
52
52
  op3: (input: Builder<B>) => Builder<C>,
53
53
  op4: (input: Builder<C>) => Builder<D>,
54
- op5: (input: Builder<D>) => Builder<E>
54
+ op5: (input: Builder<D>) => Builder<E>,
55
55
  ): Builder<E>
56
56
 
57
57
  with<
@@ -60,14 +60,14 @@ export interface BuilderMethods<T extends AnyTypes> {
60
60
  C extends AnyTypes,
61
61
  D extends AnyTypes,
62
62
  E extends AnyTypes,
63
- F extends AnyTypes
63
+ F extends AnyTypes,
64
64
  >(
65
65
  op1: (input: Builder<T>) => Builder<A>,
66
66
  op2: (input: Builder<A>) => Builder<B>,
67
67
  op3: (input: Builder<B>) => Builder<C>,
68
68
  op4: (input: Builder<C>) => Builder<D>,
69
69
  op5: (input: Builder<D>) => Builder<E>,
70
- op6: (input: Builder<E>) => Builder<F>
70
+ op6: (input: Builder<E>) => Builder<F>,
71
71
  ): Builder<F>
72
72
 
73
73
  with<
@@ -77,7 +77,7 @@ export interface BuilderMethods<T extends AnyTypes> {
77
77
  D extends AnyTypes,
78
78
  E extends AnyTypes,
79
79
  F extends AnyTypes,
80
- G extends AnyTypes
80
+ G extends AnyTypes,
81
81
  >(
82
82
  op1: (input: Builder<T>) => Builder<A>,
83
83
  op2: (input: Builder<A>) => Builder<B>,
@@ -85,7 +85,7 @@ export interface BuilderMethods<T extends AnyTypes> {
85
85
  op4: (input: Builder<C>) => Builder<D>,
86
86
  op5: (input: Builder<D>) => Builder<E>,
87
87
  op6: (input: Builder<E>) => Builder<F>,
88
- op7: (input: Builder<F>) => Builder<G>
88
+ op7: (input: Builder<F>) => Builder<G>,
89
89
  ): Builder<G>
90
90
 
91
91
  with<
@@ -96,7 +96,7 @@ export interface BuilderMethods<T extends AnyTypes> {
96
96
  E extends AnyTypes,
97
97
  F extends AnyTypes,
98
98
  G extends AnyTypes,
99
- H extends AnyTypes
99
+ H extends AnyTypes,
100
100
  >(
101
101
  op1: (input: Builder<T>) => Builder<A>,
102
102
  op2: (input: Builder<A>) => Builder<B>,
@@ -105,7 +105,7 @@ export interface BuilderMethods<T extends AnyTypes> {
105
105
  op5: (input: Builder<D>) => Builder<E>,
106
106
  op6: (input: Builder<E>) => Builder<F>,
107
107
  op7: (input: Builder<F>) => Builder<G>,
108
- op8: (input: Builder<G>) => Builder<H>
108
+ op8: (input: Builder<G>) => Builder<H>,
109
109
  ): Builder<H>
110
110
 
111
111
  with<
@@ -117,7 +117,7 @@ export interface BuilderMethods<T extends AnyTypes> {
117
117
  F extends AnyTypes,
118
118
  G extends AnyTypes,
119
119
  H extends AnyTypes,
120
- I extends AnyTypes
120
+ I extends AnyTypes,
121
121
  >(
122
122
  op1: (input: Builder<T>) => Builder<A>,
123
123
  op2: (input: Builder<A>) => Builder<B>,
@@ -127,7 +127,7 @@ export interface BuilderMethods<T extends AnyTypes> {
127
127
  op6: (input: Builder<E>) => Builder<F>,
128
128
  op7: (input: Builder<F>) => Builder<G>,
129
129
  op8: (input: Builder<G>) => Builder<H>,
130
- op9: (input: Builder<H>) => Builder<I>
130
+ op9: (input: Builder<H>) => Builder<I>,
131
131
  ): Builder<I>
132
132
 
133
133
  with<
@@ -140,7 +140,7 @@ export interface BuilderMethods<T extends AnyTypes> {
140
140
  G extends AnyTypes,
141
141
  H extends AnyTypes,
142
142
  I extends AnyTypes,
143
- J extends AnyTypes
143
+ J extends AnyTypes,
144
144
  >(
145
145
  op1: (input: Builder<T>) => Builder<A>,
146
146
  op2: (input: Builder<A>) => Builder<B>,
@@ -151,325 +151,6 @@ export interface BuilderMethods<T extends AnyTypes> {
151
151
  op7: (input: Builder<F>) => Builder<G>,
152
152
  op8: (input: Builder<G>) => Builder<H>,
153
153
  op9: (input: Builder<H>) => Builder<I>,
154
- op10: (input: Builder<I>) => Builder<J>
154
+ op10: (input: Builder<I>) => Builder<J>,
155
155
  ): Builder<J>
156
-
157
- // /**
158
- // * Add model to the builder
159
- // */
160
- // model<
161
- // A extends AnyTypes
162
- // >(
163
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>
164
- // ): Builder<A>
165
-
166
- // model<
167
- // A extends AnyTypes,
168
- // B extends AnyTypes
169
- // >(
170
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
171
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>
172
- // ): Builder<B>
173
- // model<
174
- // A extends AnyTypes,
175
- // B extends AnyTypes,
176
- // C extends AnyTypes
177
- // >(
178
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
179
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
180
- // op3: (input: ModelBuilder<B>) => ModelBuilder<C>
181
- // ): Builder<C>
182
-
183
- // model<
184
- // A extends AnyTypes,
185
- // B extends AnyTypes,
186
- // C extends AnyTypes,
187
- // D extends AnyTypes
188
- // >(
189
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
190
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
191
- // op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
192
- // op4: (input: ModelBuilder<C>) => ModelBuilder<D>
193
- // ): Builder<D>
194
-
195
- // model<
196
- // A extends AnyTypes,
197
- // B extends AnyTypes,
198
- // C extends AnyTypes,
199
- // D extends AnyTypes,
200
- // E extends AnyTypes
201
- // >(
202
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
203
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
204
- // op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
205
- // op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
206
- // op5: (input: ModelBuilder<D>) => ModelBuilder<E>
207
- // ): Builder<E>
208
-
209
- // model<
210
- // A extends AnyTypes,
211
- // B extends AnyTypes,
212
- // C extends AnyTypes,
213
- // D extends AnyTypes,
214
- // E extends AnyTypes,
215
- // F extends AnyTypes
216
- // >(
217
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
218
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
219
- // op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
220
- // op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
221
- // op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
222
- // op6: (input: ModelBuilder<E>) => ModelBuilder<F>
223
- // ): Builder<F>
224
-
225
- // model<
226
- // A extends AnyTypes,
227
- // B extends AnyTypes,
228
- // C extends AnyTypes,
229
- // D extends AnyTypes,
230
- // E extends AnyTypes,
231
- // F extends AnyTypes,
232
- // G extends AnyTypes
233
- // >(
234
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
235
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
236
- // op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
237
- // op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
238
- // op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
239
- // op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
240
- // op7: (input: ModelBuilder<F>) => ModelBuilder<G>
241
- // ): Builder<G>
242
-
243
- // model<
244
- // A extends AnyTypes,
245
- // B extends AnyTypes,
246
- // C extends AnyTypes,
247
- // D extends AnyTypes,
248
- // E extends AnyTypes,
249
- // F extends AnyTypes,
250
- // G extends AnyTypes,
251
- // H extends AnyTypes
252
- // >(
253
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
254
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
255
- // op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
256
- // op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
257
- // op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
258
- // op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
259
- // op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
260
- // op8: (input: ModelBuilder<G>) => ModelBuilder<H>
261
- // ): Builder<H>
262
-
263
- // model<
264
- // A extends AnyTypes,
265
- // B extends AnyTypes,
266
- // C extends AnyTypes,
267
- // D extends AnyTypes,
268
- // E extends AnyTypes,
269
- // F extends AnyTypes,
270
- // G extends AnyTypes,
271
- // H extends AnyTypes,
272
- // I extends AnyTypes
273
- // >(
274
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
275
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
276
- // op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
277
- // op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
278
- // op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
279
- // op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
280
- // op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
281
- // op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
282
- // op9: (input: ModelBuilder<H>) => ModelBuilder<I>
283
- // ): Builder<I>
284
-
285
- // model<
286
- // A extends AnyTypes,
287
- // B extends AnyTypes,
288
- // C extends AnyTypes,
289
- // D extends AnyTypes,
290
- // E extends AnyTypes,
291
- // F extends AnyTypes,
292
- // G extends AnyTypes,
293
- // H extends AnyTypes,
294
- // I extends AnyTypes,
295
- // J extends AnyTypes
296
- // >(
297
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
298
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
299
- // op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
300
- // op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
301
- // op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
302
- // op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
303
- // op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
304
- // op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
305
- // op9: (input: ModelBuilder<H>) => ModelBuilder<I>,
306
- // op10: (input: ModelBuilder<I>) => ModelBuilder<J>
307
- // ): Builder<J>
308
-
309
- // model<
310
- // A extends AnyTypes,
311
- // B extends AnyTypes,
312
- // C extends AnyTypes,
313
- // D extends AnyTypes,
314
- // E extends AnyTypes,
315
- // F extends AnyTypes,
316
- // G extends AnyTypes,
317
- // H extends AnyTypes,
318
- // I extends AnyTypes,
319
- // J extends AnyTypes,
320
- // K extends AnyTypes
321
- // >(
322
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
323
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
324
- // op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
325
- // op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
326
- // op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
327
- // op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
328
- // op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
329
- // op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
330
- // op9: (input: ModelBuilder<H>) => ModelBuilder<I>,
331
- // op10: (input: ModelBuilder<I>) => ModelBuilder<J>,
332
- // op11: (input: ModelBuilder<J>) => ModelBuilder<K>
333
- // ): Builder<K>
334
-
335
- // model<
336
- // A extends AnyTypes,
337
- // B extends AnyTypes,
338
- // C extends AnyTypes,
339
- // D extends AnyTypes,
340
- // E extends AnyTypes,
341
- // F extends AnyTypes,
342
- // G extends AnyTypes,
343
- // H extends AnyTypes,
344
- // I extends AnyTypes,
345
- // J extends AnyTypes,
346
- // K extends AnyTypes,
347
- // L extends AnyTypes
348
- // >(
349
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
350
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
351
- // op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
352
- // op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
353
- // op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
354
- // op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
355
- // op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
356
- // op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
357
- // op9: (input: ModelBuilder<H>) => ModelBuilder<I>,
358
- // op10: (input: ModelBuilder<I>) => ModelBuilder<J>,
359
- // op11: (input: ModelBuilder<J>) => ModelBuilder<K>,
360
- // op12: (input: ModelBuilder<K>) => ModelBuilder<L>
361
- // ): Builder<L>
362
-
363
- // model<
364
- // A extends AnyTypes,
365
- // B extends AnyTypes,
366
- // C extends AnyTypes,
367
- // D extends AnyTypes,
368
- // E extends AnyTypes,
369
- // F extends AnyTypes,
370
- // G extends AnyTypes,
371
- // H extends AnyTypes,
372
- // I extends AnyTypes,
373
- // J extends AnyTypes,
374
- // K extends AnyTypes,
375
- // L extends AnyTypes,
376
- // M extends AnyTypes
377
- // >(
378
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
379
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
380
- // op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
381
- // op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
382
- // op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
383
- // op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
384
- // op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
385
- // op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
386
- // op9: (input: ModelBuilder<H>) => ModelBuilder<I>,
387
- // op10: (input: ModelBuilder<I>) => ModelBuilder<J>,
388
- // op11: (input: ModelBuilder<J>) => ModelBuilder<K>,
389
- // op12: (input: ModelBuilder<K>) => ModelBuilder<L>,
390
- // op13: (input: ModelBuilder<L>) => ModelBuilder<M>
391
- // ): Builder<M>
392
-
393
- // model<
394
- // A extends AnyTypes,
395
- // B extends AnyTypes,
396
- // C extends AnyTypes,
397
- // D extends AnyTypes,
398
- // E extends AnyTypes,
399
- // F extends AnyTypes,
400
- // G extends AnyTypes,
401
- // H extends AnyTypes,
402
- // I extends AnyTypes,
403
- // J extends AnyTypes,
404
- // K extends AnyTypes,
405
- // L extends AnyTypes,
406
- // M extends AnyTypes,
407
- // N extends AnyTypes
408
- // >(
409
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
410
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
411
- // op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
412
- // op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
413
- // op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
414
- // op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
415
- // op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
416
- // op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
417
- // op9: (input: ModelBuilder<H>) => ModelBuilder<I>,
418
- // op10: (input: ModelBuilder<I>) => ModelBuilder<J>,
419
- // op11: (input: ModelBuilder<J>) => ModelBuilder<K>,
420
- // op12: (input: ModelBuilder<K>) => ModelBuilder<L>,
421
- // op13: (input: ModelBuilder<L>) => ModelBuilder<M>,
422
- // op14: (input: ModelBuilder<M>) => ModelBuilder<N>
423
- // ): Builder<N>
424
-
425
- // model<
426
- // A extends AnyTypes,
427
- // B extends AnyTypes,
428
- // C extends AnyTypes,
429
- // D extends AnyTypes,
430
- // E extends AnyTypes,
431
- // F extends AnyTypes,
432
- // G extends AnyTypes,
433
- // H extends AnyTypes,
434
- // I extends AnyTypes,
435
- // J extends AnyTypes,
436
- // K extends AnyTypes,
437
- // L extends AnyTypes,
438
- // M extends AnyTypes,
439
- // N extends AnyTypes,
440
- // O extends AnyTypes
441
- // >(
442
- // op1: (input: ModelBuilder<T>) => ModelBuilder<A>,
443
- // op2: (input: ModelBuilder<A>) => ModelBuilder<B>,
444
- // op3: (input: ModelBuilder<B>) => ModelBuilder<C>,
445
- // op4: (input: ModelBuilder<C>) => ModelBuilder<D>,
446
- // op5: (input: ModelBuilder<D>) => ModelBuilder<E>,
447
- // op6: (input: ModelBuilder<E>) => ModelBuilder<F>,
448
- // op7: (input: ModelBuilder<F>) => ModelBuilder<G>,
449
- // op8: (input: ModelBuilder<G>) => ModelBuilder<H>,
450
- // op9: (input: ModelBuilder<H>) => ModelBuilder<I>,
451
- // op10: (input: ModelBuilder<I>) => ModelBuilder<J>,
452
- // op11: (input: ModelBuilder<J>) => ModelBuilder<K>,
453
- // op12: (input: ModelBuilder<K>) => ModelBuilder<L>,
454
- // op13: (input: ModelBuilder<L>) => ModelBuilder<M>,
455
- // op14: (input: ModelBuilder<M>) => ModelBuilder<N>,
456
- // op15: (input: ModelBuilder<N>) => ModelBuilder<O>
457
- // ): Builder<O>
458
-
459
- // /**
460
- // * Add deployment model to the builder
461
- // */
462
- // deployment<
463
- // A extends AnyTypes
464
- // >(
465
- // op1: (input: DeploymentModelBuilder<T>) => DeploymentModelBuilder<A>
466
- // ): Builder<A>
467
-
468
- // deployment<
469
- // A extends AnyTypes,
470
- // B extends AnyTypes
471
- // >(
472
- // op1: (input: DeploymentModelBuilder<T>) => DeploymentModelBuilder<A>,
473
- // op2: (input: DeploymentModelBuilder<A>) => DeploymentModelBuilder<B>
474
- // ): Builder<B>
475
156
  }
@@ -8,22 +8,22 @@ import {
8
8
  type Color,
9
9
  type ComputedDynamicView,
10
10
  type ComputedEdge,
11
- DefaultArrowType,
12
- DefaultLineStyle,
13
- DefaultRelationshipColor,
14
11
  type DynamicView,
15
12
  type DynamicViewStep,
16
- isDynamicViewParallelSteps,
17
- isViewRuleAutoLayout,
18
- isViewRulePredicate,
19
13
  type NonEmptyArray,
20
14
  type RelationId,
21
15
  type RelationshipArrowType,
22
16
  type RelationshipLineType,
23
17
  type StepEdgeId,
24
- stepEdgeId,
25
18
  type Tag,
26
- type ViewId
19
+ type ViewId,
20
+ DefaultArrowType,
21
+ DefaultLineStyle,
22
+ DefaultRelationshipColor,
23
+ isDynamicViewParallelSteps,
24
+ isViewRuleAutoLayout,
25
+ isViewRulePredicate,
26
+ stepEdgeId,
27
27
  } from '../../types'
28
28
  import { ancestorsFqn, commonAncestor, parentFqn } from '../../utils/fqn'
29
29
  import { applyCustomElementProperties } from '../utils/applyCustomElementProperties'
@@ -62,7 +62,7 @@ class DynamicViewCompute {
62
62
 
63
63
  constructor(
64
64
  protected model: LikeC4Model,
65
- protected view: DynamicView
65
+ protected view: DynamicView,
66
66
  ) {}
67
67
 
68
68
  private addStep(
@@ -75,7 +75,7 @@ class DynamicViewCompute {
75
75
  ...step
76
76
  }: DynamicViewStep,
77
77
  index: number,
78
- parent?: number
78
+ parent?: number,
79
79
  ) {
80
80
  const id = parent ? stepEdgeId(parent, index) : stepEdgeId(index)
81
81
  const source = this.model.element(stepSource)
@@ -89,11 +89,8 @@ class DynamicViewCompute {
89
89
  relations,
90
90
  tags,
91
91
  navigateTo: derivedNavigateTo,
92
- head,
93
- tail,
94
92
  color,
95
93
  line,
96
- notation
97
94
  } = this.findRelations(source, target)
98
95
 
99
96
  const navigateTo = isTruthy(stepNavigateTo) && stepNavigateTo !== this.view.id ? stepNavigateTo : derivedNavigateTo
@@ -108,11 +105,8 @@ class DynamicViewCompute {
108
105
  isBackward: isBackward ?? false,
109
106
  ...(navigateTo ? { navigateTo } : {}),
110
107
  ...(tags ? { tags } : {}),
111
- ...(head ? { head } : {}),
112
- ...(tail ? { tail } : {}),
113
108
  ...(color ? { color } : {}),
114
109
  ...(line ? { line } : {}),
115
- ...(notation ? { notation } : {})
116
110
  })
117
111
  }
118
112
 
@@ -171,7 +165,7 @@ class DynamicViewCompute {
171
165
  color: DefaultRelationshipColor,
172
166
  line: DefaultLineStyle,
173
167
  head: DefaultArrowType,
174
- ...step
168
+ ...step,
175
169
  }
176
170
  if (isBackward) {
177
171
  edge.dir = 'back'
@@ -204,8 +198,8 @@ class DynamicViewCompute {
204
198
  applyViewRuleStyles(
205
199
  rules,
206
200
  // Keep order of elements
207
- elements.map(e => nonNullable(nodesMap.get(e.id)))
208
- )
201
+ elements.map(e => nonNullable(nodesMap.get(e.id))),
202
+ ),
209
203
  )
210
204
 
211
205
  const autoLayoutRule = findLast(rules, isViewRuleAutoLayout)
@@ -217,7 +211,7 @@ class DynamicViewCompute {
217
211
  autoLayout: {
218
212
  direction: autoLayoutRule?.direction ?? 'LR',
219
213
  ...(autoLayoutRule?.nodeSep && { nodeSep: autoLayoutRule.nodeSep }),
220
- ...(autoLayoutRule?.rankSep && { rankSep: autoLayoutRule.rankSep })
214
+ ...(autoLayoutRule?.rankSep && { rankSep: autoLayoutRule.rankSep }),
221
215
  },
222
216
  nodes: map(nodes, n => {
223
217
  // omit notation
@@ -230,9 +224,9 @@ class DynamicViewCompute {
230
224
  edges,
231
225
  ...(elementNotations.length > 0 && {
232
226
  notation: {
233
- elements: elementNotations
234
- }
235
- })
227
+ elements: elementNotations,
228
+ },
229
+ }),
236
230
  })
237
231
  }
238
232
 
@@ -241,11 +235,8 @@ class DynamicViewCompute {
241
235
  tags: NonEmptyArray<Tag> | null
242
236
  relations: NonEmptyArray<RelationId> | null
243
237
  navigateTo: ViewId | null
244
- tail: RelationshipArrowType | null
245
- head: RelationshipArrowType | null
246
238
  color: Color | null
247
239
  line: RelationshipLineType | null
248
- notation: string | null
249
240
  } {
250
241
  const relationships = findConnection(source, target, 'directed').flatMap(r => [...r.relations])
251
242
  if (relationships.length === 0) {
@@ -254,18 +245,15 @@ class DynamicViewCompute {
254
245
  tags: null,
255
246
  relations: null,
256
247
  navigateTo: null,
257
- tail: null,
258
- head: null,
259
248
  color: null,
260
249
  line: null,
261
- notation: null
262
250
  }
263
251
  }
264
252
  const alltags = pipe(
265
253
  relationships,
266
254
  flatMap(r => r.tags),
267
255
  filter(isTruthy),
268
- unique()
256
+ unique(),
269
257
  )
270
258
  const tags = hasAtLeast(alltags, 1) ? alltags : null
271
259
  const relations = hasAtLeast(relationships, 1) ? map(relationships, r => r.id) : null
@@ -280,27 +268,21 @@ class DynamicViewCompute {
280
268
  filter(isTruthy),
281
269
  filter(v => v !== this.view.id),
282
270
  unique(),
283
- only()
271
+ only(),
284
272
  )
285
273
 
286
274
  const commonProperties = pipe(
287
275
  relationships,
288
276
  reduce((acc, { title, $relationship: r }) => {
289
277
  isTruthy(title) && acc.title.add(title)
290
- isTruthy(r.tail) && acc.tail.add(r.tail)
291
- isTruthy(r.head) && acc.head.add(r.head)
292
278
  isTruthy(r.color) && acc.color.add(r.color)
293
279
  isTruthy(r.line) && acc.line.add(r.line)
294
-
295
280
  return acc
296
281
  }, {
297
- tail: new Set<RelationshipArrowType>(),
298
- head: new Set<RelationshipArrowType>(),
299
282
  color: new Set<Color>(),
300
283
  line: new Set<RelationshipLineType>(),
301
- notation: new Set<string>(),
302
- title: new Set<string>()
303
- })
284
+ title: new Set<string>(),
285
+ }),
304
286
  )
305
287
 
306
288
  return {
@@ -308,17 +290,14 @@ class DynamicViewCompute {
308
290
  relations,
309
291
  navigateTo: navigateTo ?? null,
310
292
  title: only([...commonProperties.title]) ?? null,
311
- tail: only([...commonProperties.tail]) ?? null,
312
- head: only([...commonProperties.head]) ?? null,
313
293
  color: only([...commonProperties.color]) ?? null,
314
294
  line: only([...commonProperties.line]) ?? null,
315
- notation: only([...commonProperties.notation]) ?? null
316
295
  }
317
296
  }
318
297
  }
319
298
  export function computeDynamicView<M extends AnyAux>(
320
299
  model: LikeC4Model<M>,
321
- view: DynamicView
300
+ view: DynamicView,
322
301
  ): ComputedDynamicView {
323
302
  return new DynamicViewCompute(model, view).compute()
324
303
  }
@@ -1,18 +1,19 @@
1
- import { values } from 'remeda'
2
- import { type ExtendsElementView, isElementView, isExtendsElementView, type LikeC4View } from '../../types/view'
1
+ import { unique, values } from 'remeda'
2
+ import { type ExtendsElementView, type LikeC4View, isElementView, isExtendsElementView } from '../../types/view'
3
3
 
4
4
  import Graph from 'graphology'
5
5
  import { topologicalSort } from 'graphology-dag/topological-sort'
6
6
  import willCreateCycle from 'graphology-dag/will-create-cycle'
7
+ import { isNonEmptyArray } from '../../utils'
7
8
  /**
8
9
  * Resolve rules of extended views
9
10
  * (Removes invalid views)
10
11
  */
11
12
  export function resolveRulesExtendedViews<V extends Record<any, LikeC4View>>(
12
- unresolvedViews: V
13
+ unresolvedViews: V,
13
14
  ): V {
14
15
  const g = new Graph<{ view: LikeC4View }>({
15
- type: 'directed'
16
+ type: 'directed',
16
17
  })
17
18
  const extendedViews = [] as ExtendsElementView<any, any>[]
18
19
  for (const view of values(unresolvedViews)) {
@@ -53,10 +54,24 @@ export function resolveRulesExtendedViews<V extends Record<any, LikeC4View>>(
53
54
  return acc
54
55
  }
55
56
 
57
+ const tags = unique([
58
+ ...(extendsFrom.tags ?? []),
59
+ ...(view.tags ?? []),
60
+ ])
61
+
62
+ const links = [
63
+ ...(extendsFrom.links ?? []),
64
+ ...(view.links ?? []),
65
+ ]
66
+
56
67
  acc[view.id] = {
57
68
  ...extendsFrom,
58
69
  ...view,
59
- rules: [...extendsFrom.rules, ...view.rules]
70
+ title: view.title ?? extendsFrom.title ?? null,
71
+ description: view.description ?? extendsFrom.description ?? null,
72
+ tags: isNonEmptyArray(tags) ? tags : null,
73
+ links: isNonEmptyArray(links) ? links : null,
74
+ rules: [...extendsFrom.rules, ...view.rules],
60
75
  }
61
76
  return acc
62
77
  }, {} as Record<string, LikeC4View>) as V