@likec4/core 1.40.0 → 1.41.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/dist/builder/index.d.mts +75 -14
- package/dist/builder/index.mjs +111 -47
- package/dist/compute-view/index.d.mts +5 -5
- package/dist/compute-view/index.mjs +3 -3
- package/dist/compute-view/relationships-view/index.d.mts +5 -5
- package/dist/index.d.mts +5 -5
- package/dist/index.mjs +4 -4
- package/dist/model/connection/deployment/index.d.mts +7 -7
- package/dist/model/connection/deployment/index.mjs +1 -1
- package/dist/model/connection/index.d.mts +8 -8
- package/dist/model/connection/index.mjs +1 -1
- package/dist/model/connection/model/index.d.mts +7 -7
- package/dist/model/index.d.mts +10 -10
- package/dist/model/index.mjs +3 -3
- package/dist/shared/{core.DHQ32OHa.mjs → core.Ae86Y3tB.mjs} +2 -3
- package/dist/shared/{core.FPITT8Vx.mjs → core.Asc11Mjy.mjs} +28 -9
- package/dist/shared/{core.CySf-2gP.d.mts → core.BXsxn-hf.d.mts} +29 -4
- package/dist/shared/core.BazD6cot.mjs +14 -0
- package/dist/shared/{core.D_fI5Lf6.d.mts → core.BhpgpOep.d.mts} +24 -4
- package/dist/shared/{core.DuR3R-xJ.mjs → core.BvMRMo7Z.mjs} +68 -46
- package/dist/shared/{core.BbThmf6M.d.mts → core.CUG6vpyL.d.mts} +2 -2
- package/dist/shared/{core.yHe79zEl.mjs → core.CXy1NLUG.mjs} +2 -2
- package/dist/shared/{core.Bpou6c2f.d.mts → core.D-ZGWDDt.d.mts} +19 -38
- package/dist/shared/{core.BIAlzwKc.mjs → core.DA5vzwZ9.mjs} +30 -4
- package/dist/shared/{core.T-eLZTW_.mjs → core.DJp8fgok.mjs} +6 -2
- package/dist/shared/{core.DrvfVXkh.d.mts → core.DgesAwC8.d.mts} +11 -2
- package/dist/shared/{core.vWJTxpLV.d.mts → core.FUPplpae.d.mts} +1 -1
- package/dist/shared/{core.DrVOJuxX.d.mts → core.hfOE3RfK.d.mts} +4 -4
- package/dist/shared/{core.D704WZES.d.mts → core.xSQO0XYD.d.mts} +2 -2
- package/dist/shared/{core.kxeJe0OY.d.mts → core.zxTBF_PD.d.mts} +3 -3
- package/dist/types/_aux.d.mts +2 -2
- package/dist/types/_aux.mjs +1 -5
- package/dist/types/expression-model.d.mts +3 -3
- package/dist/types/expression.d.mts +3 -3
- package/dist/types/fqnRef.d.mts +2 -2
- package/dist/types/index.d.mts +6 -6
- package/dist/types/index.mjs +4 -4
- package/dist/utils/index.d.mts +2 -2
- package/dist/utils/iterable/index.d.mts +1 -1
- package/package.json +2 -2
- package/src/builder/Builder.ts +119 -43
- package/src/builder/_types.ts +12 -8
- package/src/compute-view/deployment-view/utils.ts +47 -36
- package/src/compute-view/relationships-view/layout.ts +7 -6
- package/src/compute-view/utils/buildComputedNodes.ts +23 -10
- package/src/compute-view/utils/buildElementNotations.ts +2 -1
- package/src/model/DeploymentElementModel.ts +33 -3
- package/src/model/ElementModel.ts +25 -2
- package/src/model/RelationModel.ts +1 -1
- package/src/model/view/EdgeModel.ts +3 -2
- package/src/model/view/LikeC4ViewModel.ts +1 -1
- package/src/model/view/NodeModel.ts +1 -1
- package/src/types/RichText.ts +2 -3
- package/src/types/_aux.ts +26 -0
- package/src/types/_common.ts +23 -1
- package/src/types/index.ts +2 -0
- package/src/types/model-deployment.ts +8 -18
- package/src/types/model-logical.ts +4 -13
- package/src/types/model-spec.ts +3 -0
- package/src/types/view-computed.ts +21 -13
- package/src/types/view-layouted.ts +0 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isEmpty, isTruthy, unique } from 'remeda'
|
|
1
|
+
import { isEmpty, isShallowEqual, isTruthy, unique } from 'remeda'
|
|
2
2
|
import type { SetRequired } from 'type-fest'
|
|
3
3
|
import type { Any, AnyAux, Color, IteratorLike } from '../types'
|
|
4
4
|
import {
|
|
@@ -12,6 +12,8 @@ import {
|
|
|
12
12
|
DefaultElementShape,
|
|
13
13
|
DefaultShapeSize,
|
|
14
14
|
DefaultThemeColor,
|
|
15
|
+
preferDescription,
|
|
16
|
+
preferSummary,
|
|
15
17
|
RichText,
|
|
16
18
|
splitGlobalFqn,
|
|
17
19
|
} from '../types'
|
|
@@ -95,8 +97,29 @@ export class ElementModel<A extends AnyAux = Any> implements WithTags<A>, WithMe
|
|
|
95
97
|
return this.$element.title
|
|
96
98
|
}
|
|
97
99
|
|
|
100
|
+
/**
|
|
101
|
+
* Returns true if the element has a summary and a description
|
|
102
|
+
* (if one is missing - it falls back to another)
|
|
103
|
+
*/
|
|
104
|
+
get hasSummary(): boolean {
|
|
105
|
+
return !!this.$element.summary && !!this.$element.description &&
|
|
106
|
+
!isShallowEqual(this.$element.summary, this.$element.description)
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Short description of the element.
|
|
111
|
+
* Falls back to description if summary is not provided.
|
|
112
|
+
*/
|
|
113
|
+
get summary(): RichTextOrEmpty {
|
|
114
|
+
return RichText.memoize(this, 'summary', preferSummary(this.$element))
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Long description of the element.
|
|
119
|
+
* Falls back to summary if description is not provided.
|
|
120
|
+
*/
|
|
98
121
|
get description(): RichTextOrEmpty {
|
|
99
|
-
return RichText.memoize(this, this.$element
|
|
122
|
+
return RichText.memoize(this, 'description', preferDescription(this.$element))
|
|
100
123
|
}
|
|
101
124
|
|
|
102
125
|
get technology(): string | null {
|
|
@@ -83,7 +83,7 @@ export class RelationshipModel<A extends AnyAux = AnyAux> implements AnyRelation
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
get description(): RichTextOrEmpty {
|
|
86
|
-
return RichText.memoize(this, this.$relationship.description)
|
|
86
|
+
return RichText.memoize(this, 'description', this.$relationship.description)
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
get navigateTo(): LikeC4ViewModel<A> | null {
|
|
@@ -6,12 +6,13 @@ import {
|
|
|
6
6
|
type DiagramEdge,
|
|
7
7
|
type IteratorLike,
|
|
8
8
|
type RelationshipLineType,
|
|
9
|
+
type RichTextOrEmpty,
|
|
9
10
|
type scalar,
|
|
10
11
|
type StepEdgeId,
|
|
11
12
|
extractStep,
|
|
12
13
|
isStepEdgeId,
|
|
14
|
+
RichText,
|
|
13
15
|
} from '../../types'
|
|
14
|
-
import { type RichTextOrEmpty, RichText } from '../../types'
|
|
15
16
|
import type { DeploymentRelationModel } from '../DeploymentElementModel'
|
|
16
17
|
import type { RelationshipModel } from '../RelationModel'
|
|
17
18
|
import type { $View, WithTags } from '../types'
|
|
@@ -44,7 +45,7 @@ export class EdgeModel<A extends Any = Any, View extends $View<A> = $View<A>> im
|
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
get description(): RichTextOrEmpty {
|
|
47
|
-
return RichText.memoize(this, this.#edge.description)
|
|
48
|
+
return RichText.memoize(this, 'description', this.#edge.description)
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
get technology(): string | null {
|
|
@@ -150,7 +150,7 @@ export class LikeC4ViewModel<A extends Any = Any, V extends $View<A> = $View<A>>
|
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
get description(): RichTextOrEmpty {
|
|
153
|
-
return RichText.memoize(this, this.$view.description)
|
|
153
|
+
return RichText.memoize(this, 'description', this.$view.description)
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
get tags(): aux.Tags<A> {
|
|
@@ -49,7 +49,7 @@ export class NodeModel<A extends Any = Any, V extends $View<A> = $View<A>> imple
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
get description(): RichTextOrEmpty {
|
|
52
|
-
return RichText.memoize(this, this.#node.description)
|
|
52
|
+
return RichText.memoize(this, 'description', this.#node.description)
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
get technology(): string | null {
|
package/src/types/RichText.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { markdownToHtml, markdownToText, memoizeProp, nonexhaustive } from '../utils'
|
|
2
2
|
import type { MarkdownOrString } from './scalar'
|
|
3
3
|
|
|
4
|
-
const richtxt = Symbol.for('richtxt')
|
|
5
4
|
const symb_text = Symbol.for('text')
|
|
6
5
|
const symb_html = Symbol.for('html')
|
|
7
6
|
|
|
@@ -48,8 +47,8 @@ export class RichText {
|
|
|
48
47
|
* return RichText.memoize(this, this.$element.description)
|
|
49
48
|
* }
|
|
50
49
|
*/
|
|
51
|
-
static memoize(obj: object, source: MarkdownOrString | null | undefined): RichTextOrEmpty {
|
|
52
|
-
return memoizeProp(obj,
|
|
50
|
+
static memoize(obj: object, tag: symbol | string, source: MarkdownOrString | null | undefined): RichTextOrEmpty {
|
|
51
|
+
return memoizeProp(obj, tag, () => RichText.from(source))
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
/**
|
package/src/types/_aux.ts
CHANGED
|
@@ -255,6 +255,28 @@ export type StrictDeploymentKind<A> = A extends infer T extends Any ? scalar.Dep
|
|
|
255
255
|
: never
|
|
256
256
|
export type StrictRelationKind<A> = A extends infer T extends Any ? scalar.RelationshipKind<RelationKind<T>> : never
|
|
257
257
|
|
|
258
|
+
export type WithDescriptionAndTech = {
|
|
259
|
+
// short summary (displayed in the diagram)
|
|
260
|
+
readonly summary?: scalar.MarkdownOrString | null
|
|
261
|
+
// long description (displayed in the details panel, or in the diagram if summary is not set)
|
|
262
|
+
readonly description?: scalar.MarkdownOrString | null
|
|
263
|
+
readonly technology?: string | null
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Returns summary if it is not null, otherwise returns description
|
|
268
|
+
*/
|
|
269
|
+
export function preferSummary(a: WithDescriptionAndTech): scalar.MarkdownOrString | null | undefined {
|
|
270
|
+
return a.summary ?? a.description
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Returns description if it is not null, otherwise returns summary
|
|
275
|
+
*/
|
|
276
|
+
export function preferDescription(a: WithDescriptionAndTech): scalar.MarkdownOrString | null | undefined {
|
|
277
|
+
return a.description ?? a.summary
|
|
278
|
+
}
|
|
279
|
+
|
|
258
280
|
export type WithTags<A extends Any> = {
|
|
259
281
|
readonly tags: Tags<A>
|
|
260
282
|
}
|
|
@@ -275,6 +297,10 @@ export type WithMetadata<A extends Any> = {
|
|
|
275
297
|
readonly metadata?: Metadata<A>
|
|
276
298
|
}
|
|
277
299
|
|
|
300
|
+
export type WithNotation = {
|
|
301
|
+
readonly notation?: string | null
|
|
302
|
+
}
|
|
303
|
+
|
|
278
304
|
/**
|
|
279
305
|
* @see {@link LiteralUnion} from type-fest (https://github.com/sindresorhus/type-fest/blob/main/source/literal-union.d.ts)
|
|
280
306
|
*/
|
package/src/types/_common.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { omitBy } from 'remeda'
|
|
2
|
+
import type {
|
|
3
|
+
Exact,
|
|
4
|
+
IsAny,
|
|
5
|
+
KeysOfUnion,
|
|
6
|
+
Simplify,
|
|
7
|
+
UnionToIntersection,
|
|
8
|
+
} from 'type-fest'
|
|
2
9
|
|
|
3
10
|
export type NonEmptyArray<T> = [T, ...T[]]
|
|
4
11
|
|
|
@@ -78,3 +85,18 @@ export interface Link {
|
|
|
78
85
|
* Coalesce `V` to a string if it is `any`
|
|
79
86
|
*/
|
|
80
87
|
export type Coalesce<V extends string, OrIfAny = string> = IsAny<V> extends true ? OrIfAny : V
|
|
88
|
+
|
|
89
|
+
type ExactObject<T, InputType = unknown> =
|
|
90
|
+
& {
|
|
91
|
+
[KeyType in keyof T]: undefined extends T[KeyType] ? T[KeyType] | undefined : T[KeyType]
|
|
92
|
+
}
|
|
93
|
+
& Record<Exclude<keyof InputType, KeysOfUnion<T>>, never>
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Allows only exact properties of `U` to be present in `T` and omits undefined values
|
|
97
|
+
*
|
|
98
|
+
* See {@link Exact} for more details (this version is non-deep)
|
|
99
|
+
*/
|
|
100
|
+
export function omitUndefined<Expected, T extends ExactObject<Expected, T>>(a: T): Expected {
|
|
101
|
+
return omitBy(a, v => v === undefined) as Expected
|
|
102
|
+
}
|
package/src/types/index.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { isTruthy } from 'remeda'
|
|
2
2
|
import type * as aux from './_aux'
|
|
3
3
|
import type { AnyAux, Unknown } from './_aux'
|
|
4
|
-
import type { Link } from './_common'
|
|
5
4
|
import type { FqnRef } from './fqnRef'
|
|
6
5
|
import type { AbstractRelationship, ElementStyle } from './model-logical'
|
|
7
6
|
import type { Icon } from './scalar'
|
|
8
|
-
import type * as scalar from './scalar'
|
|
9
7
|
import type { Color, ElementShape } from './styles'
|
|
10
8
|
|
|
11
9
|
export interface DeploymentElementStyle extends ElementStyle {
|
|
@@ -17,30 +15,28 @@ export interface DeploymentElementStyle extends ElementStyle {
|
|
|
17
15
|
// dprint-ignore
|
|
18
16
|
export interface DeploymentNode<A extends AnyAux = Unknown>
|
|
19
17
|
extends
|
|
18
|
+
aux.WithDescriptionAndTech,
|
|
20
19
|
aux.WithOptionalTags<A>,
|
|
21
20
|
aux.WithOptionalLinks,
|
|
22
|
-
aux.WithMetadata<A
|
|
21
|
+
aux.WithMetadata<A>,
|
|
22
|
+
aux.WithNotation
|
|
23
23
|
{
|
|
24
24
|
element?: never
|
|
25
25
|
// Full-qualified-name for Deployment model
|
|
26
26
|
readonly id: aux.StrictDeploymentFqn<A>
|
|
27
27
|
readonly kind: aux.DeploymentKind<A>
|
|
28
28
|
readonly title: string
|
|
29
|
-
readonly description?: scalar.MarkdownOrString | null
|
|
30
|
-
readonly technology?: string | null
|
|
31
|
-
readonly tags?: aux.Tags<A> | null
|
|
32
|
-
readonly links?: readonly Link[] | null
|
|
33
29
|
readonly style: DeploymentElementStyle
|
|
34
|
-
readonly notation?: string | null
|
|
35
|
-
readonly metadata?: aux.Metadata<A>
|
|
36
30
|
}
|
|
37
31
|
|
|
38
32
|
// dprint-ignore
|
|
39
33
|
export interface DeployedInstance<A extends AnyAux = Unknown>
|
|
40
34
|
extends
|
|
35
|
+
aux.WithDescriptionAndTech,
|
|
41
36
|
aux.WithOptionalTags<A>,
|
|
42
37
|
aux.WithOptionalLinks,
|
|
43
|
-
aux.WithMetadata<A
|
|
38
|
+
aux.WithMetadata<A>,
|
|
39
|
+
aux.WithNotation
|
|
44
40
|
{
|
|
45
41
|
kind?: never
|
|
46
42
|
/**
|
|
@@ -50,13 +46,7 @@ export interface DeployedInstance<A extends AnyAux = Unknown>
|
|
|
50
46
|
readonly id: aux.StrictDeploymentFqn<A>
|
|
51
47
|
readonly element: aux.StrictFqn<A>
|
|
52
48
|
readonly title?: string
|
|
53
|
-
readonly description?: scalar.MarkdownOrString | null
|
|
54
|
-
readonly technology?: string | null
|
|
55
|
-
readonly tags?: aux.Tags<A> | null
|
|
56
|
-
readonly links?: readonly Link[] | null
|
|
57
49
|
readonly style?: DeploymentElementStyle
|
|
58
|
-
readonly notation?: string
|
|
59
|
-
readonly metadata?: aux.Metadata<A>
|
|
60
50
|
}
|
|
61
51
|
|
|
62
52
|
export type DeploymentElement<A extends AnyAux = Unknown> = DeploymentNode<A> | DeployedInstance<A>
|
|
@@ -67,11 +57,11 @@ export type DeploymentElementRef<A extends AnyAux = Unknown> = {
|
|
|
67
57
|
}
|
|
68
58
|
|
|
69
59
|
export function isDeploymentNode<A extends AnyAux>(el: DeploymentElement<A>): el is DeploymentNode<A> {
|
|
70
|
-
return
|
|
60
|
+
return isTruthy(el.kind) && !isTruthy(el.element)
|
|
71
61
|
}
|
|
72
62
|
|
|
73
63
|
export function isDeployedInstance<A extends AnyAux>(el: DeploymentElement<A>): el is DeployedInstance<A> {
|
|
74
|
-
return
|
|
64
|
+
return isTruthy(el.element) && !isTruthy(el.kind)
|
|
75
65
|
}
|
|
76
66
|
|
|
77
67
|
/**
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type * as aux from './_aux'
|
|
2
2
|
import type { AnyAux } from './_aux'
|
|
3
|
-
import type { Link } from './_common'
|
|
4
3
|
import type { FqnRef } from './fqnRef'
|
|
5
4
|
import type * as scalar from './scalar'
|
|
6
5
|
import type {
|
|
@@ -74,23 +73,19 @@ export function ensureSizes<S extends WithSizes>({
|
|
|
74
73
|
// dprint-ignore
|
|
75
74
|
export interface Element<A extends AnyAux = AnyAux>
|
|
76
75
|
extends
|
|
76
|
+
aux.WithDescriptionAndTech,
|
|
77
77
|
aux.WithOptionalTags<A>,
|
|
78
78
|
aux.WithOptionalLinks,
|
|
79
|
-
aux.WithMetadata<A
|
|
79
|
+
aux.WithMetadata<A>,
|
|
80
|
+
aux.WithNotation
|
|
80
81
|
{
|
|
81
82
|
readonly id: aux.StrictFqn<A>
|
|
82
83
|
readonly kind: aux.ElementKind<A>
|
|
83
84
|
readonly title: string
|
|
84
|
-
readonly description?: scalar.MarkdownOrString | null
|
|
85
|
-
readonly technology?: string | null
|
|
86
|
-
readonly tags?: aux.Tags<A> | null
|
|
87
|
-
readonly links?: readonly Link[] | null
|
|
88
85
|
readonly icon?: scalar.Icon
|
|
89
86
|
readonly shape?: ElementShape
|
|
90
87
|
readonly color?: Color
|
|
91
88
|
readonly style?: ElementStyle
|
|
92
|
-
readonly notation?: string | null
|
|
93
|
-
readonly metadata?: aux.Metadata<A>
|
|
94
89
|
}
|
|
95
90
|
|
|
96
91
|
export const DefaultLineStyle: RelationshipLineType = 'dashed'
|
|
@@ -100,24 +95,20 @@ export const DefaultRelationshipColor: ThemeColor = 'gray'
|
|
|
100
95
|
// dprint-ignore
|
|
101
96
|
export interface AbstractRelationship<A extends AnyAux>
|
|
102
97
|
extends
|
|
98
|
+
aux.WithDescriptionAndTech,
|
|
103
99
|
aux.WithOptionalTags<A>,
|
|
104
100
|
aux.WithOptionalLinks,
|
|
105
101
|
aux.WithMetadata<A>
|
|
106
102
|
{
|
|
107
103
|
readonly id: scalar.RelationId
|
|
108
104
|
readonly title?: string | null
|
|
109
|
-
readonly description?: scalar.MarkdownOrString | null
|
|
110
|
-
readonly technology?: string | null
|
|
111
105
|
readonly kind?: aux.RelationKind<A>
|
|
112
106
|
readonly color?: Color
|
|
113
107
|
readonly line?: RelationshipLineType
|
|
114
108
|
readonly head?: RelationshipArrowType
|
|
115
109
|
readonly tail?: RelationshipArrowType
|
|
116
|
-
readonly tags?: aux.Tags<A> | null
|
|
117
|
-
readonly links?: readonly Link[] | null
|
|
118
110
|
// Link to dynamic view
|
|
119
111
|
readonly navigateTo?: aux.ViewId<A>
|
|
120
|
-
readonly metadata?: aux.Metadata<A>
|
|
121
112
|
}
|
|
122
113
|
|
|
123
114
|
/**
|
package/src/types/model-spec.ts
CHANGED
|
@@ -26,6 +26,9 @@ import type {
|
|
|
26
26
|
export interface ElementSpecification {
|
|
27
27
|
tags?: scalar.Tag[]
|
|
28
28
|
title?: string
|
|
29
|
+
// short summary
|
|
30
|
+
summary?: scalar.MarkdownOrString
|
|
31
|
+
// long description
|
|
29
32
|
description?: scalar.MarkdownOrString
|
|
30
33
|
technology?: string
|
|
31
34
|
notation?: string
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type * as aux from './_aux'
|
|
2
|
-
import type {
|
|
2
|
+
import type { AnyAux } from './_aux'
|
|
3
3
|
import type { _stage, _type } from './const'
|
|
4
4
|
import type { ElementStyle } from './model-logical'
|
|
5
5
|
import type * as scalar from './scalar'
|
|
@@ -21,26 +21,33 @@ import type {
|
|
|
21
21
|
} from './view-common'
|
|
22
22
|
import type { DynamicViewDisplayVariant } from './view-parsed.dynamic'
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
// dprint-ignore
|
|
25
|
+
export interface ComputedNode<A extends AnyAux = AnyAux>
|
|
26
|
+
extends
|
|
27
|
+
aux.WithTags<A>,
|
|
28
|
+
aux.WithOptionalLinks
|
|
29
|
+
{
|
|
25
30
|
id: scalar.NodeId
|
|
26
31
|
kind: aux.ElementKind<A> | aux.DeploymentKind<A> | '@group'
|
|
27
32
|
parent: scalar.NodeId | null
|
|
28
33
|
/**
|
|
29
34
|
* Reference to model element
|
|
30
35
|
*/
|
|
31
|
-
modelRef?: aux.Fqn<A>
|
|
36
|
+
modelRef?: aux.Fqn<A>
|
|
32
37
|
/**
|
|
33
38
|
* Reference to deployment element
|
|
34
39
|
*/
|
|
35
|
-
deploymentRef?: aux.DeploymentFqn<A>
|
|
40
|
+
deploymentRef?: aux.DeploymentFqn<A>
|
|
36
41
|
title: string
|
|
42
|
+
/**
|
|
43
|
+
* Description of the node
|
|
44
|
+
* either summary or description
|
|
45
|
+
*/
|
|
37
46
|
description?: scalar.MarkdownOrString | null
|
|
38
47
|
technology?: string | null
|
|
39
|
-
notation?: string
|
|
40
48
|
children: scalar.NodeId[]
|
|
41
49
|
inEdges: scalar.EdgeId[]
|
|
42
50
|
outEdges: scalar.EdgeId[]
|
|
43
|
-
tags: aux.Tags<A>
|
|
44
51
|
shape: ElementShape
|
|
45
52
|
color: Color
|
|
46
53
|
icon?: Icon
|
|
@@ -48,21 +55,22 @@ export interface ComputedNode<A extends Any = Any> extends aux.WithOptionalLinks
|
|
|
48
55
|
navigateTo?: aux.StrictViewId<A> | null
|
|
49
56
|
level: number
|
|
50
57
|
// For compound nodes, the max depth of nested nodes
|
|
51
|
-
depth?: number
|
|
58
|
+
depth?: number | null
|
|
52
59
|
/**
|
|
53
60
|
* If this node was customized in the view
|
|
54
61
|
*/
|
|
55
62
|
isCustomized?: boolean
|
|
63
|
+
notation?: string | null
|
|
56
64
|
}
|
|
57
65
|
|
|
58
|
-
export interface ComputedEdge<A extends
|
|
66
|
+
export interface ComputedEdge<A extends AnyAux = AnyAux> extends aux.WithOptionalTags<A> {
|
|
59
67
|
id: scalar.EdgeId
|
|
60
68
|
parent: scalar.NodeId | null
|
|
61
69
|
source: scalar.NodeId
|
|
62
70
|
target: scalar.NodeId
|
|
63
71
|
label: string | null
|
|
64
72
|
description?: scalar.MarkdownOrString | null
|
|
65
|
-
technology?: string
|
|
73
|
+
technology?: string | null
|
|
66
74
|
relations: scalar.RelationId[]
|
|
67
75
|
kind?: aux.RelationKind<A> | typeof scalar.StepEdgeKind
|
|
68
76
|
notation?: string
|
|
@@ -85,7 +93,7 @@ export interface ComputedEdge<A extends Any = Any> extends aux.WithOptionalTags<
|
|
|
85
93
|
dir?: 'forward' | 'back' | 'both'
|
|
86
94
|
}
|
|
87
95
|
|
|
88
|
-
interface BaseComputedViewProperties<A extends
|
|
96
|
+
interface BaseComputedViewProperties<A extends AnyAux> extends BaseViewProperties<A>, ViewWithHash, ViewWithNotation {
|
|
89
97
|
readonly [_stage]: 'computed'
|
|
90
98
|
readonly autoLayout: ViewAutoLayout
|
|
91
99
|
readonly nodes: ComputedNode<A>[]
|
|
@@ -97,17 +105,17 @@ interface BaseComputedViewProperties<A extends Any> extends BaseViewProperties<A
|
|
|
97
105
|
readonly manualLayout?: ViewManualLayout | undefined
|
|
98
106
|
}
|
|
99
107
|
|
|
100
|
-
export interface ComputedElementView<A extends
|
|
108
|
+
export interface ComputedElementView<A extends AnyAux = AnyAux> extends BaseComputedViewProperties<A> {
|
|
101
109
|
readonly [_type]: 'element'
|
|
102
110
|
readonly viewOf?: aux.StrictFqn<A>
|
|
103
111
|
readonly extends?: aux.StrictViewId<A>
|
|
104
112
|
}
|
|
105
113
|
|
|
106
|
-
export interface ComputedDeploymentView<A extends
|
|
114
|
+
export interface ComputedDeploymentView<A extends AnyAux = AnyAux> extends BaseComputedViewProperties<A> {
|
|
107
115
|
readonly [_type]: 'deployment'
|
|
108
116
|
}
|
|
109
117
|
|
|
110
|
-
export interface ComputedDynamicView<A extends
|
|
118
|
+
export interface ComputedDynamicView<A extends AnyAux = AnyAux> extends BaseComputedViewProperties<A> {
|
|
111
119
|
readonly [_type]: 'dynamic'
|
|
112
120
|
/**
|
|
113
121
|
* How to display the dynamic view
|
|
@@ -27,10 +27,6 @@ export interface DiagramNode<A extends AnyAux = AnyAux> extends ComputedNode<A>,
|
|
|
27
27
|
* (Absolute coordinates)
|
|
28
28
|
*/
|
|
29
29
|
labelBBox: BBox
|
|
30
|
-
|
|
31
|
-
// description?: scalar.HtmlOrString | null
|
|
32
|
-
// technology?: scalar.HtmlOrString | null
|
|
33
|
-
// notation?: scalar.HtmlOrString | null
|
|
34
30
|
}
|
|
35
31
|
|
|
36
32
|
export interface DiagramEdge<A extends AnyAux = AnyAux> extends ComputedEdge<A> {
|