@stocksharp/diagram 0.1.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/LICENSE +30 -0
- package/NOTICE +21 -0
- package/README.md +346 -0
- package/dist/esm/canvas-renderer.js +3226 -0
- package/dist/esm/canvas-renderer.js.map +1 -0
- package/dist/esm/core/action-registry.js +35 -0
- package/dist/esm/core/action-registry.js.map +1 -0
- package/dist/esm/core/document.js +350 -0
- package/dist/esm/core/document.js.map +1 -0
- package/dist/esm/core/history.js +136 -0
- package/dist/esm/core/history.js.map +1 -0
- package/dist/esm/core/model.js +2 -0
- package/dist/esm/core/model.js.map +1 -0
- package/dist/esm/core/state.js +73 -0
- package/dist/esm/core/state.js.map +1 -0
- package/dist/esm/core/view-state.js +70 -0
- package/dist/esm/core/view-state.js.map +1 -0
- package/dist/esm/diagram/api.js +2 -0
- package/dist/esm/diagram/api.js.map +1 -0
- package/dist/esm/diagram/catalog.js +45 -0
- package/dist/esm/diagram/catalog.js.map +1 -0
- package/dist/esm/diagram/event-emitter.js +42 -0
- package/dist/esm/diagram/event-emitter.js.map +1 -0
- package/dist/esm/diagram/palette.js +269 -0
- package/dist/esm/diagram/palette.js.map +1 -0
- package/dist/esm/diagram/stocksharp-diagram.js +784 -0
- package/dist/esm/diagram/stocksharp-diagram.js.map +1 -0
- package/dist/esm/diagram/types.js +105 -0
- package/dist/esm/diagram/types.js.map +1 -0
- package/dist/esm/embed.js +398 -0
- package/dist/esm/embed.js.map +1 -0
- package/dist/esm/i18n.js +12 -0
- package/dist/esm/i18n.js.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/ssdiagram.js +5141 -0
- package/dist/ssdiagram.js.map +7 -0
- package/dist/types/canvas-renderer.d.ts +512 -0
- package/dist/types/canvas-renderer.d.ts.map +1 -0
- package/dist/types/core/action-registry.d.ts +18 -0
- package/dist/types/core/action-registry.d.ts.map +1 -0
- package/dist/types/core/document.d.ts +12 -0
- package/dist/types/core/document.d.ts.map +1 -0
- package/dist/types/core/history.d.ts +33 -0
- package/dist/types/core/history.d.ts.map +1 -0
- package/dist/types/core/model.d.ts +85 -0
- package/dist/types/core/model.d.ts.map +1 -0
- package/dist/types/core/state.d.ts +68 -0
- package/dist/types/core/state.d.ts.map +1 -0
- package/dist/types/core/view-state.d.ts +14 -0
- package/dist/types/core/view-state.d.ts.map +1 -0
- package/dist/types/diagram/api.d.ts +213 -0
- package/dist/types/diagram/api.d.ts.map +1 -0
- package/dist/types/diagram/catalog.d.ts +19 -0
- package/dist/types/diagram/catalog.d.ts.map +1 -0
- package/dist/types/diagram/event-emitter.d.ts +9 -0
- package/dist/types/diagram/event-emitter.d.ts.map +1 -0
- package/dist/types/diagram/palette.d.ts +63 -0
- package/dist/types/diagram/palette.d.ts.map +1 -0
- package/dist/types/diagram/stocksharp-diagram.d.ts +157 -0
- package/dist/types/diagram/stocksharp-diagram.d.ts.map +1 -0
- package/dist/types/diagram/types.d.ts +171 -0
- package/dist/types/diagram/types.d.ts.map +1 -0
- package/dist/types/embed.d.ts +35 -0
- package/dist/types/embed.d.ts.map +1 -0
- package/dist/types/i18n.d.ts +167 -0
- package/dist/types/i18n.d.ts.map +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +126 -0
- package/sample.png +0 -0
- package/src/canvas-renderer.ts +3249 -0
- package/src/core/action-registry.ts +46 -0
- package/src/core/document.ts +387 -0
- package/src/core/history.ts +154 -0
- package/src/core/model.ts +99 -0
- package/src/core/state.ts +148 -0
- package/src/core/view-state.ts +82 -0
- package/src/diagram/api.ts +257 -0
- package/src/diagram/catalog.ts +55 -0
- package/src/diagram/event-emitter.ts +44 -0
- package/src/diagram/palette.ts +312 -0
- package/src/diagram/stocksharp-diagram.ts +945 -0
- package/src/diagram/types.ts +332 -0
- package/src/embed.ts +508 -0
- package/src/i18n.ts +210 -0
- package/src/index.ts +171 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export type JsonPrimitive = string | number | boolean | null;
|
|
2
|
+
export type JsonValue = JsonPrimitive | JsonObject | JsonValue[];
|
|
3
|
+
export interface JsonObject {
|
|
4
|
+
[key: string]: JsonValue;
|
|
5
|
+
}
|
|
6
|
+
export interface DiagramParameterSchema {
|
|
7
|
+
name: string;
|
|
8
|
+
displayName: string;
|
|
9
|
+
description: string;
|
|
10
|
+
type: string;
|
|
11
|
+
defaultValue: string;
|
|
12
|
+
options: string[];
|
|
13
|
+
min: number | null;
|
|
14
|
+
max: number | null;
|
|
15
|
+
displayOrder: number;
|
|
16
|
+
category: string;
|
|
17
|
+
isBasic: boolean;
|
|
18
|
+
editorType: string;
|
|
19
|
+
}
|
|
20
|
+
export interface DiagramDocumentPort {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
type: string;
|
|
25
|
+
maxLinks: number;
|
|
26
|
+
availableTypes: string[];
|
|
27
|
+
isDynamic: boolean;
|
|
28
|
+
dynamicMode: string;
|
|
29
|
+
isSibling: boolean;
|
|
30
|
+
metadata: JsonObject;
|
|
31
|
+
}
|
|
32
|
+
export interface DiagramDocumentNode {
|
|
33
|
+
id: string;
|
|
34
|
+
typeId: string;
|
|
35
|
+
name: string;
|
|
36
|
+
description: string;
|
|
37
|
+
groupName: string;
|
|
38
|
+
x: number;
|
|
39
|
+
y: number;
|
|
40
|
+
color: string;
|
|
41
|
+
border: string;
|
|
42
|
+
icon: string;
|
|
43
|
+
/** Persistent host text. Runtime and load errors belong to DiagramRuntimeState. */
|
|
44
|
+
message: string;
|
|
45
|
+
openAction: string;
|
|
46
|
+
inPorts: DiagramDocumentPort[];
|
|
47
|
+
outPorts: DiagramDocumentPort[];
|
|
48
|
+
parameters: DiagramParameterSchema[];
|
|
49
|
+
paramValues: Record<string, string>;
|
|
50
|
+
metadata: JsonObject;
|
|
51
|
+
}
|
|
52
|
+
export interface DiagramDocumentEndpoint {
|
|
53
|
+
nodeId: string;
|
|
54
|
+
portId: string;
|
|
55
|
+
}
|
|
56
|
+
export interface DiagramDocumentLink {
|
|
57
|
+
/** Stable identity used by selection, relinking and history. */
|
|
58
|
+
id: string;
|
|
59
|
+
from: DiagramDocumentEndpoint;
|
|
60
|
+
to: DiagramDocumentEndpoint;
|
|
61
|
+
metadata: JsonObject;
|
|
62
|
+
}
|
|
63
|
+
export declare const DIAGRAM_DOCUMENT_VERSION: 1;
|
|
64
|
+
export type DiagramDocumentVersion = typeof DIAGRAM_DOCUMENT_VERSION;
|
|
65
|
+
export interface DiagramDocument {
|
|
66
|
+
version: DiagramDocumentVersion;
|
|
67
|
+
nodes: DiagramDocumentNode[];
|
|
68
|
+
links: DiagramDocumentLink[];
|
|
69
|
+
metadata: JsonObject;
|
|
70
|
+
}
|
|
71
|
+
export type DiagramDocumentPortInput = Pick<DiagramDocumentPort, 'id' | 'name'> & Partial<Omit<DiagramDocumentPort, 'id' | 'name'>>;
|
|
72
|
+
export type DiagramDocumentNodeInput = Pick<DiagramDocumentNode, 'id' | 'name'> & Partial<Omit<DiagramDocumentNode, 'id' | 'name' | 'inPorts' | 'outPorts'>> & {
|
|
73
|
+
inPorts?: readonly DiagramDocumentPortInput[];
|
|
74
|
+
outPorts?: readonly DiagramDocumentPortInput[];
|
|
75
|
+
};
|
|
76
|
+
export type DiagramDocumentLinkInput = Omit<DiagramDocumentLink, 'id' | 'metadata'> & {
|
|
77
|
+
id?: string;
|
|
78
|
+
metadata?: JsonObject;
|
|
79
|
+
};
|
|
80
|
+
export interface DiagramDocumentInput {
|
|
81
|
+
nodes?: readonly DiagramDocumentNodeInput[];
|
|
82
|
+
links?: readonly DiagramDocumentLinkInput[];
|
|
83
|
+
metadata?: JsonObject;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/core/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export type DiagramPortDirection = 'in' | 'out';
|
|
2
|
+
export type DiagramNodeErrorKind = 'runtime' | 'load';
|
|
3
|
+
export type DiagramGlobalErrorKind = 'invalid' | 'load' | 'locked' | 'encrypted';
|
|
4
|
+
export interface DiagramErrorState<TKind extends string> {
|
|
5
|
+
kind: TKind;
|
|
6
|
+
message: string;
|
|
7
|
+
/** Incrementing this value requests a fresh renderer animation. */
|
|
8
|
+
pulse: number;
|
|
9
|
+
}
|
|
10
|
+
export interface DiagramPortRuntimeState {
|
|
11
|
+
active: boolean;
|
|
12
|
+
selected: boolean;
|
|
13
|
+
breakpoint: boolean;
|
|
14
|
+
breakpointActive: boolean;
|
|
15
|
+
value: string | null;
|
|
16
|
+
error: string | null;
|
|
17
|
+
}
|
|
18
|
+
export interface DiagramNodePortRuntimeState {
|
|
19
|
+
in: Record<string, DiagramPortRuntimeState>;
|
|
20
|
+
out: Record<string, DiagramPortRuntimeState>;
|
|
21
|
+
}
|
|
22
|
+
export interface DiagramNodeRuntimeState {
|
|
23
|
+
active: boolean;
|
|
24
|
+
error: DiagramErrorState<DiagramNodeErrorKind> | null;
|
|
25
|
+
ports: DiagramNodePortRuntimeState;
|
|
26
|
+
}
|
|
27
|
+
export interface DiagramRuntimeState {
|
|
28
|
+
activeNodeId: string | null;
|
|
29
|
+
nodes: Record<string, DiagramNodeRuntimeState>;
|
|
30
|
+
globalError: DiagramErrorState<DiagramGlobalErrorKind> | null;
|
|
31
|
+
}
|
|
32
|
+
export interface DiagramViewState {
|
|
33
|
+
zoom: number;
|
|
34
|
+
panX: number;
|
|
35
|
+
panY: number;
|
|
36
|
+
overviewVisible: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface DiagramSelectedPort {
|
|
39
|
+
nodeId: string;
|
|
40
|
+
portId: string;
|
|
41
|
+
direction: DiagramPortDirection;
|
|
42
|
+
}
|
|
43
|
+
export interface DiagramSelection {
|
|
44
|
+
nodeIds: string[];
|
|
45
|
+
linkIds: string[];
|
|
46
|
+
port: DiagramSelectedPort | null;
|
|
47
|
+
primaryNodeId: string | null;
|
|
48
|
+
primaryLinkId: string | null;
|
|
49
|
+
}
|
|
50
|
+
export interface DiagramInteractionPermissions {
|
|
51
|
+
select: boolean;
|
|
52
|
+
inspect: boolean;
|
|
53
|
+
copy: boolean;
|
|
54
|
+
moveNodes: boolean;
|
|
55
|
+
createLinks: boolean;
|
|
56
|
+
deleteSelection: boolean;
|
|
57
|
+
paste: boolean;
|
|
58
|
+
history: boolean;
|
|
59
|
+
}
|
|
60
|
+
export declare function createDiagramRuntimeState(): DiagramRuntimeState;
|
|
61
|
+
export declare function cloneDiagramRuntimeState(state: DiagramRuntimeState): DiagramRuntimeState;
|
|
62
|
+
export declare function createDiagramViewState(): DiagramViewState;
|
|
63
|
+
export declare function createDiagramSelection(): DiagramSelection;
|
|
64
|
+
export declare function createDiagramPortRuntimeState(): DiagramPortRuntimeState;
|
|
65
|
+
export declare function createEditableDiagramPermissions(): DiagramInteractionPermissions;
|
|
66
|
+
export declare function createReadOnlyDiagramPermissions(): DiagramInteractionPermissions;
|
|
67
|
+
export declare function createDiagramNodeRuntimeState(): DiagramNodeRuntimeState;
|
|
68
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/core/state.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,KAAK,CAAC;AAChD,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,MAAM,CAAC;AACtD,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEjF,MAAM,WAAW,iBAAiB,CAAC,KAAK,SAAS,MAAM;IACnD,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IACxC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC5C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,uBAAuB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;IACtD,KAAK,EAAE,2BAA2B,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IAChC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC/C,WAAW,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,oBAAoB,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,6BAA6B;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,yBAAyB,IAAI,mBAAmB,CAE/D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB,CAexF;AAED,wBAAgB,sBAAsB,IAAI,gBAAgB,CAEzD;AAED,wBAAgB,sBAAsB,IAAI,gBAAgB,CAQzD;AAED,wBAAgB,6BAA6B,IAAI,uBAAuB,CASvE;AAED,wBAAgB,gCAAgC,IAAI,6BAA6B,CAWhF;AAED,wBAAgB,gCAAgC,IAAI,6BAA6B,CAWhF;AAED,wBAAgB,6BAA6B,IAAI,uBAAuB,CAMvE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type DiagramViewState } from './state.js';
|
|
2
|
+
export declare const DIAGRAM_VIEW_STATE_VERSION: 1;
|
|
3
|
+
export interface DiagramViewStateDocument {
|
|
4
|
+
version: typeof DIAGRAM_VIEW_STATE_VERSION;
|
|
5
|
+
view: DiagramViewState;
|
|
6
|
+
}
|
|
7
|
+
export declare class DiagramViewStateError extends Error {
|
|
8
|
+
readonly path: string;
|
|
9
|
+
constructor(message: string, path?: string);
|
|
10
|
+
}
|
|
11
|
+
export declare function createDiagramViewStateDocument(view?: DiagramViewState): DiagramViewStateDocument;
|
|
12
|
+
export declare function parseDiagramViewState(source: string | unknown): DiagramViewState;
|
|
13
|
+
export declare function serializeDiagramViewState(view: DiagramViewState, space?: number): string;
|
|
14
|
+
//# sourceMappingURL=view-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-state.d.ts","sourceRoot":"","sources":["../../../src/core/view-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE3E,eAAO,MAAM,0BAA0B,EAAG,CAAU,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACrC,OAAO,EAAE,OAAO,0BAA0B,CAAC;IAC3C,IAAI,EAAE,gBAAgB,CAAC;CAC1B;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAW,IAAI,GAAE,MAAY;CAI3D;AAED,wBAAgB,8BAA8B,CAC1C,IAAI,GAAE,gBAA2C,GAClD,wBAAwB,CAK1B;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,gBAAgB,CAiBhF;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAExF"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import type { DiagramDocument } from '../core/model.js';
|
|
2
|
+
import type { DiagramRuntimeState, DiagramSelection, DiagramViewState } from '../core/state.js';
|
|
3
|
+
import type { DiagramNode, Link, Port, PortDirection } from './types.js';
|
|
4
|
+
export interface DiagramOptions {
|
|
5
|
+
div: HTMLElement;
|
|
6
|
+
catalog: import('./catalog.js').StockSharpCatalog;
|
|
7
|
+
/** Show the built-in top-right fullscreen request button. Defaults to true. */
|
|
8
|
+
showFullscreenButton?: boolean;
|
|
9
|
+
overviewContainer?: HTMLElement | null;
|
|
10
|
+
zoomLabel?: HTMLElement | null;
|
|
11
|
+
/** Optional system clipboard adapter. Pass null to force memory-only clipboard. */
|
|
12
|
+
clipboard?: DiagramClipboard | null;
|
|
13
|
+
/** Snap pointer-dragged nodes to the grid. Defaults to true. */
|
|
14
|
+
gridSnap?: boolean;
|
|
15
|
+
/** Positive world-space grid step. Defaults to 28. */
|
|
16
|
+
gridSize?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface DiagramGridSettings {
|
|
19
|
+
enabled: boolean;
|
|
20
|
+
size: number;
|
|
21
|
+
}
|
|
22
|
+
export interface DiagramPoint {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
}
|
|
26
|
+
export interface DiagramNodeBounds extends DiagramPoint {
|
|
27
|
+
width: number;
|
|
28
|
+
height: number;
|
|
29
|
+
}
|
|
30
|
+
export type DiagramScreenshotScope = 'viewport' | 'content';
|
|
31
|
+
export interface DiagramScreenshotOptions {
|
|
32
|
+
/** Current viewport or the complete graph bounds. Defaults to viewport. */
|
|
33
|
+
scope?: DiagramScreenshotScope;
|
|
34
|
+
/** World-to-CSS-pixel scale for content export. Defaults to 1. */
|
|
35
|
+
scale?: number;
|
|
36
|
+
/** CSS-pixel padding around content export. Defaults to 32. */
|
|
37
|
+
padding?: number;
|
|
38
|
+
/** Output pixel density. Defaults to the current device pixel ratio. */
|
|
39
|
+
pixelRatio?: number;
|
|
40
|
+
/** Optional export-only background override. */
|
|
41
|
+
background?: string;
|
|
42
|
+
/** Defaults to true. */
|
|
43
|
+
includeGrid?: boolean;
|
|
44
|
+
/** Defaults to the current value for viewport and false for content. */
|
|
45
|
+
includeOverview?: boolean;
|
|
46
|
+
/** Defaults to true for viewport and false for content. */
|
|
47
|
+
includeSelection?: boolean;
|
|
48
|
+
/** Include debugger and error state. Defaults to true. */
|
|
49
|
+
includeRuntimeState?: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface DiagramClipboard {
|
|
52
|
+
readText(): Promise<string>;
|
|
53
|
+
writeText(value: string): Promise<void>;
|
|
54
|
+
}
|
|
55
|
+
export interface DiagramThemeOptions {
|
|
56
|
+
diagramBackground?: string;
|
|
57
|
+
overviewBackground?: string;
|
|
58
|
+
gridColor?: string;
|
|
59
|
+
linkMaxLightness?: number;
|
|
60
|
+
overviewBorderColor?: string;
|
|
61
|
+
overviewViewportColor?: string;
|
|
62
|
+
overviewViewportFill?: string;
|
|
63
|
+
}
|
|
64
|
+
export type NodeErrorKind = 'runtime' | 'load';
|
|
65
|
+
export interface NodeErrorOptions {
|
|
66
|
+
kind?: NodeErrorKind;
|
|
67
|
+
animate?: boolean;
|
|
68
|
+
}
|
|
69
|
+
export interface DiagramLoadOptions {
|
|
70
|
+
/** Transient per-node errors discovered while restoring a scheme. */
|
|
71
|
+
nodeErrors?: Readonly<Record<string, string>>;
|
|
72
|
+
}
|
|
73
|
+
export interface DocumentLoadFailedPayload {
|
|
74
|
+
message: string;
|
|
75
|
+
error: Error;
|
|
76
|
+
}
|
|
77
|
+
export interface FullscreenChangedPayload {
|
|
78
|
+
fullscreen: boolean;
|
|
79
|
+
}
|
|
80
|
+
/** Requested host layout state. The component never enters fullscreen itself. */
|
|
81
|
+
export interface FullscreenRequestedPayload {
|
|
82
|
+
fullscreen: boolean;
|
|
83
|
+
}
|
|
84
|
+
export type ContextCommand = 'undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'open' | 'delete' | 'properties' | 'help';
|
|
85
|
+
export interface ContextCommandPayload {
|
|
86
|
+
command: ContextCommand;
|
|
87
|
+
nodes: DiagramNode[];
|
|
88
|
+
links: Link[];
|
|
89
|
+
}
|
|
90
|
+
export interface ContextCommandState {
|
|
91
|
+
command: ContextCommand;
|
|
92
|
+
enabled: boolean;
|
|
93
|
+
}
|
|
94
|
+
export interface ContextMenuRequestedPayload {
|
|
95
|
+
x: number;
|
|
96
|
+
y: number;
|
|
97
|
+
node: DiagramNode | null;
|
|
98
|
+
link: Link | null;
|
|
99
|
+
port: Port | null;
|
|
100
|
+
portDirection: PortDirection | null;
|
|
101
|
+
commands: ContextCommandState[];
|
|
102
|
+
}
|
|
103
|
+
export interface NodeSelectedPayload {
|
|
104
|
+
node: DiagramNode;
|
|
105
|
+
selected: boolean;
|
|
106
|
+
}
|
|
107
|
+
export interface NodeHoverPayload {
|
|
108
|
+
node: DiagramNode;
|
|
109
|
+
hovering: boolean;
|
|
110
|
+
}
|
|
111
|
+
export interface PortSelectedPayload {
|
|
112
|
+
node: DiagramNode;
|
|
113
|
+
port: Port;
|
|
114
|
+
direction: PortDirection;
|
|
115
|
+
}
|
|
116
|
+
export interface PortHoverPayload extends PortSelectedPayload {
|
|
117
|
+
hovering: boolean;
|
|
118
|
+
}
|
|
119
|
+
export type PortClickAction = 'leftClick' | 'rightClick';
|
|
120
|
+
export interface PortClickedPayload extends PortSelectedPayload {
|
|
121
|
+
action: PortClickAction;
|
|
122
|
+
ctrlKey: boolean;
|
|
123
|
+
shiftKey: boolean;
|
|
124
|
+
altKey: boolean;
|
|
125
|
+
metaKey: boolean;
|
|
126
|
+
}
|
|
127
|
+
export interface LinkSelectedPayload {
|
|
128
|
+
link: Link;
|
|
129
|
+
selected: boolean;
|
|
130
|
+
}
|
|
131
|
+
export interface LinkHoverPayload {
|
|
132
|
+
link: Link;
|
|
133
|
+
hovering: boolean;
|
|
134
|
+
}
|
|
135
|
+
export interface NodeMovedPayload {
|
|
136
|
+
node: DiagramNode;
|
|
137
|
+
}
|
|
138
|
+
export interface NodeChangePayload {
|
|
139
|
+
nodes: DiagramNode[];
|
|
140
|
+
}
|
|
141
|
+
export interface LinkChangePayload {
|
|
142
|
+
links: Link[];
|
|
143
|
+
}
|
|
144
|
+
export interface LinkRelinkedPayload {
|
|
145
|
+
link: Link;
|
|
146
|
+
previous: Link;
|
|
147
|
+
}
|
|
148
|
+
export interface LoadFinishedPayload {
|
|
149
|
+
nodes: DiagramNode[];
|
|
150
|
+
links: Link[];
|
|
151
|
+
}
|
|
152
|
+
export interface LinkValidationPayload {
|
|
153
|
+
fromNode: DiagramNode;
|
|
154
|
+
fromPort: Port;
|
|
155
|
+
toNode: DiagramNode;
|
|
156
|
+
toPort: Port;
|
|
157
|
+
allowed: boolean;
|
|
158
|
+
reason: LinkValidationReason;
|
|
159
|
+
}
|
|
160
|
+
export type LinkValidationReason = 'allowed' | 'missing-link' | 'missing-node' | 'missing-port' | 'same-node' | 'invalid-direction' | 'incompatible-type' | 'duplicate-link' | 'source-limit' | 'target-limit' | 'host-rejected';
|
|
161
|
+
export interface LinkValidationResult {
|
|
162
|
+
allowed: boolean;
|
|
163
|
+
reason: LinkValidationReason;
|
|
164
|
+
}
|
|
165
|
+
export interface LinkValidatorArgs {
|
|
166
|
+
fromNode: DiagramNode;
|
|
167
|
+
fromPort: Port;
|
|
168
|
+
toNode: DiagramNode;
|
|
169
|
+
toPort: Port;
|
|
170
|
+
}
|
|
171
|
+
export type LinkValidator = (args: LinkValidatorArgs) => boolean;
|
|
172
|
+
export interface DiagramEvents extends Record<string, unknown> {
|
|
173
|
+
nodeAdded: NodeChangePayload;
|
|
174
|
+
nodeRemoved: NodeChangePayload;
|
|
175
|
+
linkAdded: LinkChangePayload;
|
|
176
|
+
linkRemoved: LinkChangePayload;
|
|
177
|
+
linkRelinked: LinkRelinkedPayload;
|
|
178
|
+
nodeMoved: NodeMovedPayload;
|
|
179
|
+
nodeSelected: NodeSelectedPayload;
|
|
180
|
+
nodeHover: NodeHoverPayload;
|
|
181
|
+
portSelected: PortSelectedPayload;
|
|
182
|
+
portClicked: PortClickedPayload;
|
|
183
|
+
portHover: PortHoverPayload;
|
|
184
|
+
linkSelected: LinkSelectedPayload;
|
|
185
|
+
linkHover: LinkHoverPayload;
|
|
186
|
+
linkValidation: LinkValidationPayload;
|
|
187
|
+
loadFinished: LoadFinishedPayload;
|
|
188
|
+
contextCommand: ContextCommandPayload;
|
|
189
|
+
contextMenuRequested: ContextMenuRequestedPayload;
|
|
190
|
+
undoRequested: NodeChangePayload & LinkChangePayload;
|
|
191
|
+
redoRequested: NodeChangePayload & LinkChangePayload;
|
|
192
|
+
nodeEdit: NodeChangePayload;
|
|
193
|
+
nodeProperties: NodeChangePayload;
|
|
194
|
+
nodeOpen: NodeChangePayload;
|
|
195
|
+
nodeHelp: NodeChangePayload;
|
|
196
|
+
zoomChanged: DiagramViewState;
|
|
197
|
+
viewChanged: DiagramViewState;
|
|
198
|
+
selectionChanged: DiagramSelection;
|
|
199
|
+
runtimeStateChanged: {
|
|
200
|
+
state: DiagramRuntimeState;
|
|
201
|
+
};
|
|
202
|
+
undoStackChanged: {
|
|
203
|
+
canUndo: boolean;
|
|
204
|
+
canRedo: boolean;
|
|
205
|
+
};
|
|
206
|
+
documentLoaded: {
|
|
207
|
+
document: DiagramDocument;
|
|
208
|
+
};
|
|
209
|
+
documentLoadFailed: DocumentLoadFailedPayload;
|
|
210
|
+
fullscreenRequested: FullscreenRequestedPayload;
|
|
211
|
+
fullscreenChanged: FullscreenChangedPayload;
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/diagram/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { EventEmitter } from './event-emitter.js';
|
|
2
|
+
import { Node, NodeInit, PortType, PortTypeInit } from './types.js';
|
|
3
|
+
export interface CatalogEvents extends Record<string, unknown> {
|
|
4
|
+
portTypesChanged: PortType[];
|
|
5
|
+
nodeTypesChanged: Node[];
|
|
6
|
+
}
|
|
7
|
+
export declare class StockSharpCatalog extends EventEmitter<CatalogEvents> {
|
|
8
|
+
private readonly portTypes;
|
|
9
|
+
private readonly nodeTypes;
|
|
10
|
+
addPortType(portType: PortType | PortTypeInit): void;
|
|
11
|
+
removePortType(name: string): void;
|
|
12
|
+
getPortType(name: string): PortType | null;
|
|
13
|
+
getPortTypes(): PortType[];
|
|
14
|
+
addNodeType(node: Node | NodeInit): void;
|
|
15
|
+
removeNodeType(id: string): void;
|
|
16
|
+
getNodeType(id: string): Node | null;
|
|
17
|
+
getNodeTypes(): Node[];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/diagram/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAC7B,gBAAgB,EAAE,IAAI,EAAE,CAAC;CAC5B;AAED,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,aAAa,CAAC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IAErD,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI;IAMpD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKlC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAI1C,YAAY,IAAI,QAAQ,EAAE;IAS1B,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,GAAG,IAAI;IAMxC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKhC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIpC,YAAY,IAAI,IAAI,EAAE;CAGzB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type EventHandler<T> = (payload: T) => void;
|
|
2
|
+
export declare class EventEmitter<TEvents extends Record<string, unknown>> {
|
|
3
|
+
private readonly handlers;
|
|
4
|
+
on<K extends keyof TEvents>(event: K, handler: EventHandler<TEvents[K]>): () => void;
|
|
5
|
+
off<K extends keyof TEvents>(event: K, handler: EventHandler<TEvents[K]>): void;
|
|
6
|
+
protected emit<K extends keyof TEvents>(event: K, payload: TEvents[K]): void;
|
|
7
|
+
protected clearEventHandlers(): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=event-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../../src/diagram/event-emitter.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;AAEnD,qBAAa,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwD;IAEjF,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAUpF,GAAG,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAW/E,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAc5E,SAAS,CAAC,kBAAkB,IAAI,IAAI;CAGvC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { EventEmitter } from './event-emitter.js';
|
|
2
|
+
import { StockSharpCatalog } from './catalog.js';
|
|
3
|
+
import { Node } from './types.js';
|
|
4
|
+
export interface PaletteOptions {
|
|
5
|
+
div: HTMLElement;
|
|
6
|
+
catalog: StockSharpCatalog;
|
|
7
|
+
/** Node type ids hidden from this palette. Matching is case-insensitive. */
|
|
8
|
+
excludedTypeIds?: Iterable<string>;
|
|
9
|
+
}
|
|
10
|
+
export interface PaletteNodePayload {
|
|
11
|
+
node: Node;
|
|
12
|
+
}
|
|
13
|
+
export interface PaletteSelectionChangedPayload {
|
|
14
|
+
node: Node | null;
|
|
15
|
+
}
|
|
16
|
+
export interface PaletteContextMenuPayload extends PaletteNodePayload {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
}
|
|
20
|
+
export interface PaletteEvents extends Record<string, unknown> {
|
|
21
|
+
selectionChanged: PaletteSelectionChangedPayload;
|
|
22
|
+
nodeActivated: PaletteNodePayload;
|
|
23
|
+
contextMenuRequested: PaletteContextMenuPayload;
|
|
24
|
+
}
|
|
25
|
+
/** Typed payload used by native drag-and-drop between the palette and canvas. */
|
|
26
|
+
export declare const PALETTE_DRAG_MIME = "application/x-stocksharp-node";
|
|
27
|
+
/**
|
|
28
|
+
* Accessible HTML palette for catalog node types.
|
|
29
|
+
*
|
|
30
|
+
* The component owns the contents of `div`. The host decides what activation
|
|
31
|
+
* and context-menu actions mean by subscribing to the typed events.
|
|
32
|
+
*/
|
|
33
|
+
export declare class StockSharpPalette extends EventEmitter<PaletteEvents> {
|
|
34
|
+
private readonly host;
|
|
35
|
+
private readonly catalog;
|
|
36
|
+
private readonly unsubscribeCatalog;
|
|
37
|
+
private filter;
|
|
38
|
+
private collapsed;
|
|
39
|
+
private excludedTypeIds;
|
|
40
|
+
private selectedTypeId;
|
|
41
|
+
private destroyed;
|
|
42
|
+
constructor({ div, catalog, excludedTypeIds }: PaletteOptions);
|
|
43
|
+
setFilter(text: string): void;
|
|
44
|
+
collapseAll(): void;
|
|
45
|
+
expandAll(): void;
|
|
46
|
+
/** Replaces the WPF palette's dynamic ExcludedTypeIds set. */
|
|
47
|
+
setExcludedTypeIds(typeIds: Iterable<string>): void;
|
|
48
|
+
setNodeTypeExcluded(typeId: string, excluded?: boolean): void;
|
|
49
|
+
getExcludedTypeIds(): string[];
|
|
50
|
+
getSelectedNodeType(): Node | null;
|
|
51
|
+
selectNodeType(typeId: string | null): boolean;
|
|
52
|
+
destroy(): void;
|
|
53
|
+
private groupNames;
|
|
54
|
+
private visibleNodeTypes;
|
|
55
|
+
private visibleNodeType;
|
|
56
|
+
private render;
|
|
57
|
+
private reconcileSelection;
|
|
58
|
+
private renderGroup;
|
|
59
|
+
private renderItem;
|
|
60
|
+
private applyFilter;
|
|
61
|
+
private syncSelectionClass;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=palette.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../../src/diagram/palette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,4EAA4E;IAC5E,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,8BAA8B;IAC3C,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACjE,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,gBAAgB,EAAE,8BAA8B,CAAC;IACjD,aAAa,EAAE,kBAAkB,CAAC;IAClC,oBAAoB,EAAE,yBAAyB,CAAC;CACnD;AAED,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,kCAAkC,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,aAAa,CAAC;IAC9D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAa;IAChD,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,SAAS,CAAS;gBAEd,EAAE,GAAG,EAAE,OAAO,EAAE,eAAoB,EAAE,EAAE,cAAc;IAWlE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM7B,WAAW,IAAI,IAAI;IAMnB,SAAS,IAAI,IAAI;IAMjB,8DAA8D;IAC9D,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;IAQnD,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,IAAI;IAY1D,kBAAkB,IAAI,MAAM,EAAE;IAI9B,mBAAmB,IAAI,IAAI,GAAG,IAAI;IAMlC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAY9C,OAAO,IAAI,IAAI;IAUf,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,MAAM;IAsBd,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,WAAW;IAsCnB,OAAO,CAAC,UAAU;IA+DlB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,kBAAkB;CAO7B"}
|