@next-bricks/diagram 0.62.2 → 0.63.1
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/bricks.json +3 -3
- package/dist/chunks/{1889.a5a21c16.js → 1889.cd9c8220.js} +2 -2
- package/dist/chunks/{1889.a5a21c16.js.map → 1889.cd9c8220.js.map} +1 -1
- package/dist/chunks/{5552.5435b269.js → 3171.4e111cd1.js} +2 -2
- package/dist/chunks/{5552.5435b269.js.map → 3171.4e111cd1.js.map} +1 -1
- package/dist/chunks/3233.df97f221.js +3 -0
- package/dist/chunks/{3233.941a4709.js.map → 3233.df97f221.js.map} +1 -1
- package/dist/chunks/{3933.a17e8eee.js → 3933.e47efe53.js} +2 -2
- package/dist/chunks/{3933.a17e8eee.js.map → 3933.e47efe53.js.map} +1 -1
- package/dist/chunks/4837.11c3f298.js +2 -0
- package/dist/chunks/{4837.c9d5ffd2.js.map → 4837.11c3f298.js.map} +1 -1
- package/dist/chunks/{3171.5a8dfbd7.js → 5552.c1fe77c8.js} +2 -2
- package/dist/chunks/{3171.5a8dfbd7.js.map → 5552.c1fe77c8.js.map} +1 -1
- package/dist/chunks/{6314.d7fb300d.js → 6314.449f20cc.js} +2 -2
- package/dist/chunks/{6314.d7fb300d.js.map → 6314.449f20cc.js.map} +1 -1
- package/dist/chunks/{9789.61a352b0.js → 6730.b6d7107a.js} +2 -2
- package/dist/chunks/{9789.61a352b0.js.map → 6730.b6d7107a.js.map} +1 -1
- package/dist/chunks/6773.ef4413a1.js +2 -0
- package/dist/chunks/6773.ef4413a1.js.map +1 -0
- package/dist/chunks/7218.3d3b9880.js +2 -0
- package/dist/chunks/{7218.84b9d5ad.js.map → 7218.3d3b9880.js.map} +1 -1
- package/dist/chunks/8522.4ebca6d8.js +2 -0
- package/dist/chunks/8522.4ebca6d8.js.map +1 -0
- package/dist/chunks/871.cf918ecb.js +2 -0
- package/dist/chunks/871.cf918ecb.js.map +1 -0
- package/dist/chunks/9140.08761fe0.js +3 -0
- package/dist/chunks/9140.08761fe0.js.map +1 -0
- package/dist/chunks/{9515.fa372b62.js → 9515.2b74919b.js} +2 -2
- package/dist/chunks/9515.2b74919b.js.map +1 -0
- package/dist/chunks/{9711.ee9443b1.js → 9711.522aa912.js} +2 -2
- package/dist/chunks/9711.522aa912.js.map +1 -0
- package/dist/chunks/eo-display-canvas.c67d5a35.js +2 -0
- package/dist/chunks/eo-display-canvas.c67d5a35.js.map +1 -0
- package/dist/chunks/{eo-draw-canvas.b0a01d80.js → eo-draw-canvas.7caa4a7d.js} +2 -2
- package/dist/chunks/{eo-draw-canvas.b0a01d80.js.map → eo-draw-canvas.7caa4a7d.js.map} +1 -1
- package/dist/chunks/main.88d25460.js +2 -0
- package/dist/chunks/{main.60658a93.js.map → main.88d25460.js.map} +1 -1
- package/dist/examples.json +3 -3
- package/dist/index.3dc8e366.js +2 -0
- package/dist/{index.4eb26edb.js.map → index.3dc8e366.js.map} +1 -1
- package/dist/manifest.json +180 -165
- package/dist/types.json +5362 -4886
- package/dist-types/diagram/interfaces.d.ts +12 -8
- package/dist-types/display-canvas/index.d.ts +6 -8
- package/dist-types/draw-canvas/constants.d.ts +1 -0
- package/dist-types/draw-canvas/interfaces.d.ts +41 -9
- package/dist-types/draw-canvas/processors/transformToCenter.d.ts +2 -6
- package/dist-types/shared/canvas/processors/getCellsRect.d.ts +2 -0
- package/dist-types/shared/canvas/processors/getTransformToCenter.d.ts +9 -0
- package/dist-types/shared/canvas/useAutoCenter.d.ts +5 -3
- package/dist-types/shared/canvas/useLayout.d.ts +3 -2
- package/package.json +2 -2
- package/dist/chunks/3233.941a4709.js +0 -3
- package/dist/chunks/4837.c9d5ffd2.js +0 -2
- package/dist/chunks/6773.fe170705.js +0 -2
- package/dist/chunks/6773.fe170705.js.map +0 -1
- package/dist/chunks/7218.84b9d5ad.js +0 -2
- package/dist/chunks/7770.c839e46e.js +0 -2
- package/dist/chunks/7770.c839e46e.js.map +0 -1
- package/dist/chunks/871.e9d9ff80.js +0 -2
- package/dist/chunks/871.e9d9ff80.js.map +0 -1
- package/dist/chunks/9140.6ada4433.js +0 -3
- package/dist/chunks/9140.6ada4433.js.map +0 -1
- package/dist/chunks/9515.fa372b62.js.map +0 -1
- package/dist/chunks/9711.ee9443b1.js.map +0 -1
- package/dist/chunks/eo-display-canvas.babce82c.js +0 -2
- package/dist/chunks/eo-display-canvas.babce82c.js.map +0 -1
- package/dist/chunks/main.60658a93.js +0 -2
- package/dist/index.4eb26edb.js +0 -2
- /package/dist/chunks/{3233.941a4709.js.LICENSE.txt → 3233.df97f221.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{9140.6ada4433.js.LICENSE.txt → 9140.08761fe0.js.LICENSE.txt} +0 -0
|
@@ -132,20 +132,24 @@ export interface LineConfOverridable {
|
|
|
132
132
|
strokeWidth?: number;
|
|
133
133
|
interactStrokeWidth?: number;
|
|
134
134
|
}
|
|
135
|
-
export interface LineLabelConf {
|
|
135
|
+
export interface LineLabelConf extends LabelOrTextBaseOptions {
|
|
136
136
|
if?: string | boolean | null;
|
|
137
137
|
useBrick: UseSingleBrickConf;
|
|
138
|
-
placement?: LineLabelPlacement;
|
|
139
|
-
/**
|
|
140
|
-
* 当 placement 设置为 start 或 end 时,默认情况下,文本中心点与连线起点或终点重合。
|
|
141
|
-
* 设置 offset 表示文本中心点距离起点或终点在连线上的偏移量。
|
|
142
|
-
*/
|
|
143
|
-
offset?: number;
|
|
144
138
|
}
|
|
145
|
-
export interface TextOptions {
|
|
139
|
+
export interface TextOptions extends LabelOrTextBaseOptions {
|
|
146
140
|
content: string;
|
|
147
141
|
style?: CSSProperties;
|
|
142
|
+
}
|
|
143
|
+
export interface LabelOrTextBaseOptions {
|
|
144
|
+
/**
|
|
145
|
+
* @default "center"
|
|
146
|
+
*/
|
|
148
147
|
placement?: LineLabelPlacement;
|
|
148
|
+
/**
|
|
149
|
+
* 根据 placement 的不同,设置 offset 分别表示文本中心点距离连线的起点、中心点或终点的偏移量。
|
|
150
|
+
*
|
|
151
|
+
* @default 0
|
|
152
|
+
*/
|
|
149
153
|
offset?: number;
|
|
150
154
|
}
|
|
151
155
|
export type LineLabelPlacement = "center" | "start" | "end";
|
|
@@ -2,11 +2,12 @@ import React from "react";
|
|
|
2
2
|
import { ReactNextElement } from "@next-core/react-element";
|
|
3
3
|
import "@next-core/theme";
|
|
4
4
|
import type { RangeTuple, SizeTuple } from "../diagram/interfaces";
|
|
5
|
-
import type { ActiveTarget, InitialCell, NodeBrickConf,
|
|
5
|
+
import type { ActiveTarget, InitialCell, NodeBrickConf, EdgeLineConf, LayoutType, LayoutOptions, AutoSize } from "../draw-canvas/interfaces";
|
|
6
6
|
export interface EoDisplayCanvasProps {
|
|
7
7
|
cells: InitialCell[] | undefined;
|
|
8
8
|
layout: LayoutType;
|
|
9
9
|
layoutOptions?: LayoutOptions;
|
|
10
|
+
autoSize?: AutoSize;
|
|
10
11
|
defaultNodeSize: SizeTuple;
|
|
11
12
|
defaultNodeBricks?: NodeBrickConf[];
|
|
12
13
|
defaultEdgeLines?: EdgeLineConf[];
|
|
@@ -22,6 +23,7 @@ export interface EoDisplayCanvasProps {
|
|
|
22
23
|
autoCenterWhenCellsChange?: boolean;
|
|
23
24
|
doNotResetActiveTargetForSelector?: string;
|
|
24
25
|
doNotResetActiveTargetOutsideCanvas?: boolean;
|
|
26
|
+
extraStyleTexts?: string[];
|
|
25
27
|
}
|
|
26
28
|
/**
|
|
27
29
|
* 用于展示查看的画布。
|
|
@@ -34,6 +36,7 @@ export declare class EoDisplayCanvas extends ReactNextElement implements EoDispl
|
|
|
34
36
|
accessor cells: InitialCell[] | undefined;
|
|
35
37
|
accessor layout: LayoutType;
|
|
36
38
|
accessor layoutOptions: LayoutOptions | undefined;
|
|
39
|
+
accessor autoSize: AutoSize | undefined;
|
|
37
40
|
accessor defaultNodeSize: SizeTuple;
|
|
38
41
|
accessor defaultNodeBricks: NodeBrickConf[] | undefined;
|
|
39
42
|
/**
|
|
@@ -83,12 +86,7 @@ export declare class EoDisplayCanvas extends ReactNextElement implements EoDispl
|
|
|
83
86
|
* 在画布外点击时不重置 `activeTarget`。
|
|
84
87
|
*/
|
|
85
88
|
accessor doNotResetActiveTargetOutsideCanvas: boolean | undefined;
|
|
89
|
+
accessor extraStyleTexts: string[] | undefined;
|
|
90
|
+
center(): void;
|
|
86
91
|
render(): React.JSX.Element;
|
|
87
92
|
}
|
|
88
|
-
export interface EoDisplayCanvasComponentProps extends EoDisplayCanvasProps {
|
|
89
|
-
shadowRoot: ShadowRoot;
|
|
90
|
-
onActiveTargetChange(target: ActiveTarget | null): void;
|
|
91
|
-
onSwitchActiveTarget(target: ActiveTarget | null): void;
|
|
92
|
-
onCellContextMenu(detail: CellContextMenuDetail): void;
|
|
93
|
-
onCellClick(detail: CellContextMenuDetail): void;
|
|
94
|
-
}
|
|
@@ -22,5 +22,6 @@ export declare const DEFAULT_SNAP_OBJECT_POSITIONS = "all";
|
|
|
22
22
|
export declare const DEFAULT_NODE_PADDING_FOR_LINES = 5;
|
|
23
23
|
/** Padding left + padding right, as well as top + bottom */
|
|
24
24
|
export declare const DEFAULT_NODE_PADDING_FOR_SMART_LINES = 0;
|
|
25
|
+
export declare const DEFAULT_CANVAS_PADDING = 0;
|
|
25
26
|
export declare const POINT_HELPER_RADIUS = 5;
|
|
26
27
|
export declare const DEFAULT_MOTION_SPEED = 50;
|
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
import type { UseSingleBrickConf } from "@next-core/react-runtime";
|
|
2
2
|
import type { SimulationLinkDatum, SimulationNodeDatum } from "d3-force";
|
|
3
|
-
import type { CSSProperties } from "react";
|
|
3
|
+
import type { CSSProperties, FunctionComponent } from "react";
|
|
4
4
|
import type { ResizeCellPayload } from "./reducers/interfaces";
|
|
5
5
|
import type { CurveType, LineLabelConf, LineMarkerConf, LineMarkerType, NodePosition, PartialRectTuple, PositionTuple, TextOptions, TransformLiteral } from "../diagram/interfaces";
|
|
6
6
|
import type { SYMBOL_FOR_SIZE_INITIALIZED, SYMBOL_FOR_LAYOUT_INITIALIZED } from "./constants";
|
|
7
7
|
export type Cell = NodeCell | EdgeCell | DecoratorCell;
|
|
8
8
|
export type BrickCell = NodeBrickCell;
|
|
9
|
-
export type NodeCell = NodeBrickCell;
|
|
9
|
+
export type NodeCell = NodeBrickCell | NodeComponentCell;
|
|
10
10
|
export type NodeBrickCell = BaseBrickCell & BaseNodeCell;
|
|
11
|
+
export interface NodeComponentCell extends BaseNodeCell {
|
|
12
|
+
component?: NodeComponent;
|
|
13
|
+
}
|
|
14
|
+
export type NodeComponent = FunctionComponent<{
|
|
15
|
+
node: {
|
|
16
|
+
id: NodeId;
|
|
17
|
+
data: any;
|
|
18
|
+
locked?: boolean;
|
|
19
|
+
};
|
|
20
|
+
refCallback?: (element: HTMLElement | null) => void;
|
|
21
|
+
}>;
|
|
11
22
|
export type NodeId = string;
|
|
12
23
|
export interface BaseBrickCell extends BaseCell {
|
|
13
|
-
tag?: "brick";
|
|
14
24
|
useBrick?: UseSingleBrickConf;
|
|
15
25
|
}
|
|
16
26
|
export interface BaseNodeCell extends BaseCell {
|
|
@@ -79,7 +89,8 @@ export type InitialNodeCell = Omit<NodeCell, "view"> & {
|
|
|
79
89
|
};
|
|
80
90
|
export type InitialCell = InitialNodeCell | EdgeCell | DecoratorCell;
|
|
81
91
|
export interface NodeBrickConf {
|
|
82
|
-
useBrick
|
|
92
|
+
useBrick?: UseSingleBrickConf;
|
|
93
|
+
component?: NodeComponent;
|
|
83
94
|
if?: string | boolean | null;
|
|
84
95
|
}
|
|
85
96
|
export interface EdgeView extends LineSettings {
|
|
@@ -246,11 +257,13 @@ export interface DecoratorTextChangeDetail {
|
|
|
246
257
|
}
|
|
247
258
|
export type LayoutType = "manual" | "force" | "dagre" | undefined;
|
|
248
259
|
export type LayoutOptions = LayoutOptionsManual | LayoutOptionsDagre | LayoutOptionsForce;
|
|
249
|
-
export interface LayoutOptionsManual extends
|
|
260
|
+
export interface LayoutOptionsManual extends BaseLayoutOptions {
|
|
250
261
|
}
|
|
251
|
-
export interface
|
|
262
|
+
export interface BaseLayoutOptions {
|
|
252
263
|
/** Snap options. Setting to true means enable all snap options */
|
|
253
264
|
snap?: boolean | SnapOptions;
|
|
265
|
+
/** 画布内间距,自动居中时将预留此间距。 */
|
|
266
|
+
padding?: PartialRectTuple;
|
|
254
267
|
}
|
|
255
268
|
export interface SnapOptions {
|
|
256
269
|
/** Snap to grid */
|
|
@@ -275,14 +288,18 @@ export interface SnapToObjectOptions {
|
|
|
275
288
|
positions?: string;
|
|
276
289
|
}
|
|
277
290
|
export type SnapToObjectPosition = "center" | "top" | "right" | "bottom" | "left";
|
|
278
|
-
export interface LayoutOptionsDagre extends
|
|
291
|
+
export interface LayoutOptionsDagre extends BaseAutoLayoutOptions {
|
|
292
|
+
/** @default "TB" */
|
|
279
293
|
rankdir?: "TB" | "BT" | "LR" | "RL";
|
|
294
|
+
/** @default 50 */
|
|
280
295
|
ranksep?: number;
|
|
296
|
+
/** @default 10 */
|
|
281
297
|
edgesep?: number;
|
|
298
|
+
/** @default 50 */
|
|
282
299
|
nodesep?: number;
|
|
283
300
|
align?: "UL" | "UR" | "DL" | "DR";
|
|
284
301
|
}
|
|
285
|
-
export interface LayoutOptionsForce extends
|
|
302
|
+
export interface LayoutOptionsForce extends BaseAutoLayoutOptions {
|
|
286
303
|
/** 设置碰撞参数 */
|
|
287
304
|
collide?: boolean | ForceCollideOptions;
|
|
288
305
|
}
|
|
@@ -308,7 +325,7 @@ export interface ForceCollideOptions {
|
|
|
308
325
|
*/
|
|
309
326
|
iterations?: number;
|
|
310
327
|
}
|
|
311
|
-
export interface
|
|
328
|
+
export interface BaseAutoLayoutOptions extends BaseLayoutOptions {
|
|
312
329
|
nodePadding?: PartialRectTuple;
|
|
313
330
|
/**
|
|
314
331
|
* 根据节点什么位置进行对齐,支持关键字、百分比和比例值。
|
|
@@ -406,3 +423,18 @@ export interface LineSegmentJumps {
|
|
|
406
423
|
/** 交叉跨线圆弧的半径 */
|
|
407
424
|
radius: number;
|
|
408
425
|
}
|
|
426
|
+
export interface AutoSize {
|
|
427
|
+
width?: "fit-content";
|
|
428
|
+
minWidth?: number;
|
|
429
|
+
maxWidth?: number;
|
|
430
|
+
height?: "fit-content";
|
|
431
|
+
minHeight?: number;
|
|
432
|
+
maxHeight?: number;
|
|
433
|
+
}
|
|
434
|
+
export interface CellsRect {
|
|
435
|
+
left: number;
|
|
436
|
+
top: number;
|
|
437
|
+
width: number;
|
|
438
|
+
height: number;
|
|
439
|
+
empty: boolean;
|
|
440
|
+
}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import type { TransformLiteral } from "../../diagram/interfaces";
|
|
2
|
+
import { type TransformToCenterOptions } from "../../shared/canvas/processors/getTransformToCenter";
|
|
2
3
|
import type { Cell } from "../interfaces";
|
|
3
|
-
export
|
|
4
|
-
canvasWidth: number;
|
|
5
|
-
canvasHeight: number;
|
|
6
|
-
scaleRange?: [min: number, max: number];
|
|
7
|
-
}
|
|
8
|
-
export declare function transformToCenter(cells: Cell[], { canvasWidth, canvasHeight, scaleRange }: TransformToCenterOptions): TransformLiteral;
|
|
4
|
+
export declare function transformToCenter(cells: Cell[], options: TransformToCenterOptions): TransformLiteral;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FullRectTuple, TransformLiteral } from "../../../diagram/interfaces";
|
|
2
|
+
import type { CellsRect } from "../../../draw-canvas/interfaces";
|
|
3
|
+
export interface TransformToCenterOptions {
|
|
4
|
+
canvasWidth: number;
|
|
5
|
+
canvasHeight: number;
|
|
6
|
+
canvasPadding?: FullRectTuple | null;
|
|
7
|
+
scaleRange?: [min: number, max: number];
|
|
8
|
+
}
|
|
9
|
+
export declare function getTransformToCenter(rect: CellsRect, { canvasWidth, canvasHeight, canvasPadding, scaleRange, }: TransformToCenterOptions): TransformLiteral;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { type ZoomBehavior } from "d3-zoom";
|
|
3
|
-
import type { RangeTuple } from "../../diagram/interfaces";
|
|
4
|
-
import type { Cell } from "../../draw-canvas/interfaces";
|
|
3
|
+
import type { PartialRectTuple, RangeTuple } from "../../diagram/interfaces";
|
|
4
|
+
import type { AutoSize, Cell } from "../../draw-canvas/interfaces";
|
|
5
5
|
export interface UseAutoCenterOptions {
|
|
6
6
|
rootRef: React.RefObject<SVGSVGElement>;
|
|
7
7
|
cells: Cell[];
|
|
@@ -10,9 +10,11 @@ export interface UseAutoCenterOptions {
|
|
|
10
10
|
zoomer: ZoomBehavior<SVGSVGElement, unknown>;
|
|
11
11
|
scaleRange: RangeTuple;
|
|
12
12
|
autoCenterWhenCellsChange?: boolean;
|
|
13
|
+
autoSize?: AutoSize;
|
|
14
|
+
padding?: PartialRectTuple;
|
|
13
15
|
}
|
|
14
16
|
export type UseAutoCenterResult = [
|
|
15
17
|
centered: boolean,
|
|
16
18
|
setCentered: React.Dispatch<React.SetStateAction<boolean>>
|
|
17
19
|
];
|
|
18
|
-
export declare function useAutoCenter({ rootRef, cells, layoutInitialized, zoomable, zoomer, scaleRange, autoCenterWhenCellsChange, }: UseAutoCenterOptions): UseAutoCenterResult;
|
|
20
|
+
export declare function useAutoCenter({ rootRef, cells, layoutInitialized, zoomable, zoomer, scaleRange, autoCenterWhenCellsChange, autoSize, padding, }: UseAutoCenterOptions): UseAutoCenterResult;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { ZoomBehavior } from "d3-zoom";
|
|
2
|
-
import type { Cell, LayoutOptions, LayoutType } from "../../draw-canvas/interfaces";
|
|
2
|
+
import type { Cell, LayoutOptions, LayoutType, AutoSize } from "../../draw-canvas/interfaces";
|
|
3
3
|
import type { RangeTuple } from "../../diagram/interfaces";
|
|
4
4
|
import type { DrawCanvasAction } from "../../draw-canvas/reducers/interfaces";
|
|
5
5
|
export interface UseLayoutOptions {
|
|
6
6
|
layout: LayoutType;
|
|
7
7
|
layoutOptions?: LayoutOptions;
|
|
8
|
+
autoSize?: AutoSize;
|
|
8
9
|
rootRef: React.RefObject<SVGSVGElement>;
|
|
9
10
|
cells: Cell[];
|
|
10
11
|
zoomable?: boolean;
|
|
@@ -15,7 +16,7 @@ export interface UseLayoutOptions {
|
|
|
15
16
|
autoCenterWhenCellsChange?: boolean;
|
|
16
17
|
dispatch: (value: DrawCanvasAction) => void;
|
|
17
18
|
}
|
|
18
|
-
export declare function useLayout({ layout, layoutOptions, rootRef, cells, zoomable, zoomer, scaleRange, layoutKey, allowEdgeToArea, autoCenterWhenCellsChange, dispatch, }: UseLayoutOptions): {
|
|
19
|
+
export declare function useLayout({ layout, layoutOptions, autoSize, rootRef, cells, zoomable, zoomer, scaleRange, layoutKey, allowEdgeToArea, autoCenterWhenCellsChange, dispatch, }: UseLayoutOptions): {
|
|
19
20
|
centered: boolean;
|
|
20
21
|
setCentered: React.Dispatch<React.SetStateAction<boolean>>;
|
|
21
22
|
getNextLayoutKey: () => number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-bricks/diagram",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.63.1",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-advanced-bricks/tree/master/bricks/diagram",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -41,5 +41,5 @@
|
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@next-bricks/basic": "*"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "cd6de4b1813b9c89a176f285b73b536b711ff4a4"
|
|
45
45
|
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 3233.941a4709.js.LICENSE.txt */
|
|
2
|
-
"use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[3233],{821:(e,t,n)=>{n.d(t,{A:()=>r});var o=n(6758),a=n.n(o),i=n(935),l=n.n(i)()(a());l.push([e.id,":host{display:block;width:100%;height:100%;overflow:hidden}:host([hidden]){display:none}*{box-sizing:border-box}.diagram{width:100%;height:100%;position:relative;opacity:0}.diagram:focus{outline:none}.lines,\n.line-labels,\n.nodes{position:absolute;top:0;left:0}.line-labels{opacity:0}.ready{opacity:1}.diagram.ready.pannable{cursor:grab}.diagram.pannable.grabbing{cursor:grabbing}.nodes,\n.lines{transform-origin:0 0}.node,\n.line-label{position:absolute;visibility:hidden}.line-label{transform:translate(-50%,-50%);white-space:pre-line;width:max-content;text-align:center;line-height:1}.lines{pointer-events:none}.line.interactable{pointer-events:auto;cursor:default}.connect-line{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none}.connect-line:not(.connecting){display:none}.line:not(.active) .active-bg{display:none}",""]);const r=l.toString()},1324:(e,t,n)=>{function o(e,t){for(const{id:n,position:o,placement:a,angle:i,size:l}of e){const e=t.get(n);if(e&&(e.style.left=`${o[0]}px`,e.style.top=`${o[1]}px`,e.style.visibility="visible","center"!==a&&void 0!==i)){const[t,n]=null!=l?l:[0,0],o=Math.floor((i<0?2*Math.PI+i:i)/Math.PI*4),r="start"===a?o:(o+4)%8,s=Math.tan(i),d=i+("start"===a?1:-1)*Math.PI/2,c=2,u=Math.sin(d)*c,f=Math.cos(d)*c;let p;switch(r){case 0:p=`translate(0,${t*s+u}px)`;break;case 1:p=`translate(${n/s-f}px,0)`;break;case 2:p=`translate(calc(${n/s+f}px - 100%),0)`;break;case 3:p=`translate(-100%,${-t*s-u}px)`;break;case 4:p=`translate(-100%,calc(${-t*s+u}px - 100%))`;break;case 5:p=`translate(calc(${-n/s-f}px - 100%),-100%)`;break;case 6:p=`translate(${-n/s+f}px,-100%)`;break;default:p=`translate(0,calc(${t*s-u}px - 100%))`}e.style.transform=p}}}n.d(t,{F:()=>o})},1518:(e,t,n)=>{n.d(t,{R:()=>r});var o=n(8653),a=n(3188),i=n(4059),l=n(733);function r(e,t,n){const r=new WeakMap,c=new Map,u=new Map;for(const e of t)c.set(e.id,e);for(const t of e){const{data:e}=t;r.set(e,t)}let f=!1;return n.map((t=>{var n,p,m,h;let{line:v,edge:g,markers:y,...k}=t;const b=r.get(g);if(!b)return;const w=null!==(n=null===(p=y.find((e=>"default"===e.variant&&"start"===e.placement)))||void 0===p?void 0:p.offset)&&void 0!==n?n:0,x=null!==(m=null===(h=y.find((e=>"default"===e.variant&&"end"===e.placement)))||void 0===h?void 0:h.offset)&&void 0!==m?m:0;let M,{points:R}=b;if(!R){const t=c.get(g.source),n=c.get(g.target);if(t&&n&&t!==n){if("polyline"===v.type){if(!(0,l.w)(t,n,w,x)){var E,L;(()=>{if(f)return;f=!0;const t=(e,t)=>{let n=u.get(e);n||u.set(e,n=new Set);const o=c.get(t);o&&n.add(o)};for(const{data:{source:n,target:o}}of e)n!==o&&(t(n,o),t(o,n))})();const o=s(t,n,w),a=s(n,t,x),l=d(null!==(E=u.get(g.source))&&void 0!==E?E:[],t,o,w),r=d(null!==(L=u.get(g.target))&&void 0!==L?L:[],n,a,x),p=(l.indexOf(n)+1)/(l.length+1),m=(r.indexOf(t)+1)/(r.length+1);R=(0,i.o)(t,n,o,a,p,m)}}else R=(0,a.h)(t,n);if(R){const e=R[0],t=R[R.length-1];M=Math.atan2(t.y-e.y,t.x-e.x)}}}return{...k,markers:y,line:v,edge:g,d:(0,o.S)(R,v.curveType,w,x),angle:M,labelSize:b.labelSize}})).filter(Boolean)}function s(e,t,n){const o=Math.atan2(e.height+2*n,e.width+2*n),{x:a,y:i}=e,{x:l,y:r}=t,s=Math.atan2(r-i,l-a),d=s<0?2*Math.PI+s:s;switch(Math.floor(d/Math.PI*2)){case 0:return d<o?"right":"bottom";case 1:return d<Math.PI-o?"bottom":"left";case 2:return d<Math.PI+o?"left":"top";default:return d<2*Math.PI-o?"top":"right"}}function d(e,t,n,o){return[...e].filter((e=>s(t,e,o)===n)).sort(((e,t)=>{const{x:o,y:a}=e,{x:i,y:l}=t;return"top"===n||"bottom"===n?o-i:a-l}))}},1803:(e,t,n)=>{n.d(t,{m:()=>r});var o=n(8769),a=n.n(o),i=n(3373),l=n.n(i);function r(e){var t,n;let{line:{line:o,edge:i,d:r,markers:s},linePaths:d,lineMaskRects:c,maskPrefix:u,markerPrefix:f,activeLineMarkerPrefix:p,active:m,activeRelated:h,onLineClick:v,onLineDoubleClick:g}=e;const y=c.has(o.$id)?`url(#${u}${o.$id})`:void 0,{strokeColor:k,strokeWidth:b,interactStrokeWidth:w}={...o,...m?null===(t=o.overrides)||void 0===t?void 0:t.active:h?null===(n=o.overrides)||void 0===n?void 0:n.activeRelated:null},x=m?"active":h?"active-related":"default";let M,R;for(const e of s)e.variant===x&&("start"===e.placement?M=`url(#${f}${e.index})`:R=`url(#${f}${e.index})`);return a().createElement("g",{className:l()("line",{interactable:o.interactable,active:m,"active-related":h}),onClick:o.interactable?()=>{null==v||v({id:o.$id,edge:i})}:void 0,onDoubleClick:o.interactable?e=>{e.preventDefault(),e.stopPropagation(),null==g||g({id:o.$id,edge:i})}:void 0,style:{cursor:o.cursor}},o.interactable&&a().createElement("path",{d:r,fill:"none",stroke:"transparent",strokeWidth:w}),a().createElement("path",{ref:e=>d.set(o.$id,e),stroke:k,strokeWidth:b,d:r,fill:"none",markerStart:M,markerEnd:R,mask:y}),a().createElement("path",{stroke:"var(--palette-blue-3)",strokeWidth:b,d:r,fill:"none",className:"active-bg",markerStart:`url(#${p}start)`,markerEnd:`url(#${p}end)`,mask:y}))}},2448:(e,t,n)=>{n.d(t,{P:()=>i});var o=n(8974),a=n(8657);function i(e,t){let{nodes:n,nodesRefRepository:i,connectNodes:l,dragNodes:r,scale:s,setConnectLineState:d,setConnectLineTo:c,setManualLayoutStatus:u,setNodeMovement:f,onSwitchActiveTarget:p,onNodesConnect:m}=t;function h(e){if(i)for(const[t,o]of i)if(e(o))return null==n?void 0:n.find((e=>e.id===t))}if(!l&&!r)return;const v=h((t=>t.contains(e.target)));if(!v)return;if(!function(e,t){return e.sourceType?[].concat(e.sourceType).includes(t.type):(0,o.checkIfByTransform)(e,{source:t})}(l||r,v))return;e.stopPropagation();const g=[e.clientX,e.clientY];if(l){d({from:g,options:{strokeColor:a.mF,strokeWidth:a.VO,...o.__secret_internals.legacyDoTransform({source:v},l)}}),c(g),null==p||p({type:"node",nodeId:v.id});const e=e=>{c([e.clientX,e.clientY])},t=n=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",t),d(null);const o=n.composedPath(),a=h((e=>o.includes(e)));a&&v!==a&&(null==m||m({source:v,target:a}))};return document.addEventListener("mousemove",e),void document.addEventListener("mouseup",t)}null==p||p({type:"node",nodeId:v.id});let y=!1;const k=e=>{const t=[(e.clientX-g[0])/s,(e.clientY-g[1])/s];y||(y=t[0]**2+t[1]**2>=9,y&&u("started")),y&&f({id:v.id,move:t})},b=()=>{y=!1,document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",b),f(null),u("finished")};document.addEventListener("mousemove",k),document.addEventListener("mouseup",b)}},2547:(e,t,n)=>{n.d(t,{d2:()=>r});var o=n(8769),a=n.n(o),i=n(8361),l=n(8974);function r(e){let{labels:t,onRendered:n}=e;const[i,l]=(0,o.useState)(!1),[r,c]=(0,o.useState)([]),u=(0,o.useMemo)((()=>new Map),[]),f=(0,o.useCallback)(((e,t)=>{t&&u.set(e,t),c((t=>t.includes(e)?t:t.concat(e)))}),[u]),p=(0,o.useCallback)((e=>{c((t=>{const n=t.indexOf(e);return-1===n?t:t.slice(0,n).concat(t.slice(n+1))})),u.delete(e)}),[u]);return(0,o.useEffect)((()=>{l(!(null!=t&&t.some((e=>!r.includes(e.id)))))}),[t,r]),(0,o.useEffect)((()=>{null==n||n(i?u:null)}),[u,i]),a().createElement(a().Fragment,null,null==t?void 0:t.map((e=>{let{text:t,label:n,id:o,edge:i}=e;return n?a().createElement("div",{key:o,className:"line-label"},a().createElement(d,{id:o,edge:i,label:n,onRendered:f,onUnmount:p})):a().createElement(s,{key:o,id:o,text:t,onRendered:f})})))}function s(e){let{id:t,text:n,onRendered:i}=e;const l=(0,o.useCallback)((e=>{null==i||i(t,e)}),[t,i]);return a().createElement("div",{className:"line-label",ref:l,style:n.style},n.content)}function d(e){let{id:t,edge:n,label:r,onRendered:s,onUnmount:d}=e;const c=(0,o.useMemo)((()=>(0,l.checkIfByTransform)(r,{edge:n})?r.useBrick:null),[n,r]),u=(0,o.useMemo)((()=>({edge:n})),[n]);(0,o.useEffect)((()=>{c||setTimeout((()=>{null==s||s(t,null)}))}),[t,s,c]),(0,o.useEffect)((()=>()=>{null==d||d(t)}),[]);const f=(0,o.useCallback)((e=>{e&&setTimeout((()=>{null==s||s(t,e.parentElement)}))}),[t,s]),p=(0,o.useCallback)((()=>{setTimeout((()=>{null==s||s(t,null)}))}),[t,s]);return c?a().createElement(i.ReactUseBrick,{refCallback:f,ignoredCallback:p,useBrick:c,data:u}):null}},2673:(e,t,n)=>{function o(e,t){return e?!!t&&e.type===t.type&&("node"===e.type?e.nodeId===t.nodeId:e.edge.source===t.edge.source&&e.edge.target===t.edge.target):!t}n.d(t,{c:()=>o})},5157:(e,t,n)=>{n.d(t,{a:()=>a});var o=n(1030);function a(e,t){let{renderedNodes:n,activeTarget:o}=t;const a="node"===(null==o?void 0:o.type)?n.find((e=>e.id===o.nodeId)):void 0,l="edge"===(null==o?void 0:o.type)?o.edge:void 0;if(!a&&!l)return;const r=e.key||e.keyCode||e.which;let s,d,c;switch(r){case"Backspace":case 8:case"Delete":case 46:a?(s="delete-node",d=a):(s="delete-edge",c=l);break;default:if(!a)return;switch(r){case"ArrowLeft":case 37:d=i("x",n,a,-1),s="switch-active-node";break;case"ArrowUp":case 38:d=i("y",n,a,-1),s="switch-active-node";break;case"ArrowRight":case 39:d=i("x",n,a,1),s="switch-active-node";break;case"ArrowDown":case 40:d=i("y",n,a,1),s="switch-active-node"}}var u;return s?(e.preventDefault(),e.stopPropagation(),{action:s,node:null===(u=d)||void 0===u?void 0:u.data,edge:c}):void 0}function i(e,t,n,a){const i="x"===e?"y":"x";let l;const r=t.filter((t=>t!==n&&(l=(t[e]-n[e])*a,l>0)&&l>Math.abs(n[i]-t[i])));return(0,o.minBy)(r,(t=>(n[i]-t[i])**2+(n[e]-t[e])**2))}},5987:(e,t,n)=>{function o(e,t){const n=new Map;for(const{id:o,lineId:a,placement:i}of e){if(!t||"center"!==i)continue;const e=t.get(o);if(!e)continue;const{offsetWidth:l,offsetHeight:r}=e;if(0===l||0===r)continue;const s=3;n.set(a,[{left:e.offsetLeft-l/2-s,top:e.offsetTop-r/2-s,width:l+2*s,height:r+2*s}])}return n}n.d(t,{G:()=>o})},6671:(e,t,n)=>{n.d(t,{w:()=>s});var o=n(8769),a=n.n(o),i=n(3373),l=n.n(i),r=n(3739);function s(e){let{connectLineState:t,connectLineTo:n,markerPrefix:o}=e;return a().createElement("svg",{width:"100%",height:"100%",className:l()("connect-line",{connecting:!!t&&(n[0]-t.from[0])**2+(n[1]-t.from[1])**2>25})},a().createElement("defs",null,a().createElement(r.c,{type:"arrow",id:`${o}connect-line`,strokeColor:null==t?void 0:t.options.strokeColor})),a().createElement("path",{d:t?`M${t.from.join(" ")}L${n.join(" ")}`:"",fill:"none",stroke:null==t?void 0:t.options.strokeColor,strokeWidth:null==t?void 0:t.options.strokeWidth,markerEnd:null!=t&&t.options.arrow?`url(#${o}connect-line)`:void 0}))}},6753:(e,t,n)=>{n.d(t,{_:()=>u});var o=n(8769),a=n(8974),i=n(6330),l=n(1361),r=function(){var e=(0,i.A)((function*(e,t,n){return(yield l.http.post("api/gateway/cmdb.instance.PostSearchV3/v3/object/".concat(e,"/instance/_search"),t,n)).data}));return function(t,n,o){return e.apply(this,arguments)}}(),s=function(){var e=(0,i.A)((function*(e,t,n,o){return(yield l.http.put("api/gateway/cmdb.instance.UpdateInstanceV2/v2/object/".concat(e,"/instance/").concat(t),n,o)).data}));return function(t,n,o,a){return e.apply(this,arguments)}}(),d=function(){var e=(0,i.A)((function*(e,t,n){return(yield l.http.post("api/gateway/cmdb.instance.CreateInstance/v2/object/".concat(e,"/instance"),t,n)).data}));return function(t,n,o){return e.apply(this,arguments)}}();const c="GRAPH_USER_VIEW@EASYOPS";function u(e){const[t,n]=(0,o.useState)(!e),i=(0,o.useRef)(),[l,u]=(0,o.useState)(null),f=(0,o.useMemo)((()=>function(){let e=!1;const t=[];return async function(n){if(t.push(n),!e){let n;for(e=!0;n=t.shift();)try{await n()}catch(e){console.error(e)}e=!1}}}()),[]);return(0,o.useEffect)((()=>{!async function(){if(!e)return void n(!0);const{namespace:t,key:o}=e;if(!t||!o)return console.error("Namespace and key are required to save graph user view"),void n(!0);try{const e=(await r(c,{fields:["nodes"],query:{namespace:{$eq:t},key:{$eq:o}},page:1,page_size:30})).list;if(e.length>0){var l;const t=e[0],n=new Map(null===(l=t.nodes)||void 0===l?void 0:l.map((e=>[e.id,e])));i.current=t.instanceId,u(n)}else u(null)}catch(e){(0,a.handleHttpError)(e)}finally{n(!0)}}()}),[e]),{userViewReady:t,userViewNodesMap:l,saveUserView:(0,o.useCallback)((t=>{const{namespace:n,key:o}=null!=e?e:{};n&&o&&f((async()=>{const e={namespace:n,key:o,nodes:t};try{if(i.current)await s(c,i.current,e,{interceptorParams:{ignoreLoadingBar:!0}});else{const t=await d(c,e,{interceptorParams:{ignoreLoadingBar:!0}});i.current=t.instanceId}}catch(e){(0,a.handleHttpError)(e)}}))}),[e,f])}}},8060:(e,t,n)=>{function o(e,t,n){return 0===e.length&&0===t.length?e:t.flatMap((e=>{let{line:{text:t,label:o,$id:a},edge:i,labelSize:l,angle:r}=e;const s=n.get(a);if(!t&&!o||!s||!s.getAttribute("d"))return[];let d,c;o?(d="label",c=[].concat(o)):(d="text",c=[].concat(t));const{x:u,y:f,width:p,height:m}=s.getBBox(),h=s.getTotalLength();return c.map((e=>{var t;const n=null!==(t=e.placement)&&void 0!==t?t:"center",o=s.getPointAtLength("start"===n?Math.min(0,h/2):"end"===n?Math.max(h-0,h/2):h/2);return{[d]:e,edge:i,position:[o.x,o.y],lineRect:{left:u,top:f,width:p,height:m},id:`${a}-${n}`,lineId:a,placement:n,angle:r,size:null==l?void 0:l[n]}}))}))}n.d(t,{z:()=>o})},8069:(e,t,n)=>{n.d(t,{o:()=>k});var o=n(8769),a=n(7586),i=n.n(a),l=n(1030);function r(e,t,n){for(const i of e){var o,a;const e=t.get(i.id);i.width=Math.max(null!==(o=null==e?void 0:e.offsetWidth)&&void 0!==o?o:0,10)+n[1]+n[3],i.height=Math.max(null!==(a=null==e?void 0:e.offsetHeight)&&void 0!==a?a:0,10)+n[0]+n[2]}}function s(e,t,n){for(const a of e){var o;const e=a.x-a.width/2+n[3],i=a.y-a.height/2+n[0],l=null===(o=t.get(a.id))||void 0===o?void 0:o.parentElement;l&&(l.style.left=`${e}px`,l.style.top=`${i}px`,l.style.visibility="visible")}}var d=n(8802),c=n(6149),u=n(4842),f=n(1945),p=n(9418),m=n(3854),h=n(7931);function v(e,t){var n;let{normalizedLinesMap:o,lineLabelsRefRepository:a}=t;return null!==(n=null==e?void 0:e.map((e=>{const t=o.get(e),n={};if(t)for(const e of["start","end"]){const o=a.get(`${t}-${e}`);o&&(n[e]=[o.offsetWidth,o.offsetHeight])}return{data:e,labelSize:n}})))&&void 0!==n?n:[]}function g(e,t){return new Array(t).fill(null).map(((t,n)=>({dummy:!0,id:`$dummy-${e.source}-${e.target}-${n}`})))}function y(e,t){return new Array(t+1).fill(null).map(((n,o)=>({dummy:!0,source:0===o?e.source:`$dummy-${e.source}-${e.target}-${o-1}`,target:o===t?e.target:`$dummy-${e.source}-${e.target}-${o}`})))}function k(e){let{layout:t,nodes:n,edges:a,manualLayoutStatus:k,userViewReady:b,userViewNodesMap:w,nodeMovement:x,nodesRefRepository:M,lineLabelsRefRepository:R,normalizedLinesMap:E,nodesRenderId:L,lineLabelsRenderId:$,layoutOptions:C}=e;const P="initial"===k?t:"manual",[S,I]=(0,o.useState)(null),[T,N]=(0,o.useState)({nodes:[],edges:[]});return(0,o.useEffect)((()=>{b&&I((e=>"dagre"===P?function(e,t,n,o){const{nodePadding:a,...c}={nodePadding:0,rankdir:"TB",ranksep:50,edgesep:10,nodesep:50,...(0,l.pick)(o,["nodePadding","rankdir","ranksep","edgesep","nodesep","align"])},u=(0,d.D)(a),f=new(i().graphlib.Graph);f.setGraph(c),f.setDefaultEdgeLabel((function(){return{}}));for(const n of null!=t?t:[]){const t=null==e?void 0:e.getNode(n.id);f.setNode(n.id,(null==t?void 0:t.data)===n?t:{id:n.id,data:n})}for(const e of null!=n?n:[])f.setEdge(e.source,e.target,{data:e});return{layout:"dagre",getNode:e=>f.node(e),applyLayout(e){let{nodesRefRepository:t,lineLabelsRefRepository:n,normalizedLinesMap:o}=e;const a=[];for(const e of f.nodes()){const t=f.node(e);t?a.push(t):console.error("Diagram node not found: %s",e)}if(0===a.length)return null;r(a,t,u);const l=f.edges().map((e=>f.edge(e)));for(const e of l){const t=o.get(e.data);if(t)for(const o of["center","start","end"]){const a=n.get(`${t}-${o}`);if(a){var d;const{offsetWidth:t,offsetHeight:n}=a;"center"===o&&(e.labelpos="c",e.width=t,e.height=n),null!==(d=e.labelSize)&&void 0!==d||(e.labelSize={}),e.labelSize[o]=[t,n]}}}return i().layout(f),s(a,t,u),{nodes:a,edges:l}}}}(e,n,a,C):"force"===P?function(e,t,n,o,a){const{nodePadding:i,dummyNodesOnEdges:k,collide:b}={nodePadding:0,dummyNodesOnEdges:0,...(0,l.pick)(a,["nodePadding","dummyNodesOnEdges"]),collide:!1!==(null==a?void 0:a.collide)&&{dummyRadius:1,radiusDiff:5,strength:1,iterations:1,...!0===(null==a?void 0:a.collide)?null:null==a?void 0:a.collide}},w=(0,d.D)(i),x=[];for(const n of null!=t?t:[]){const t=null==e?void 0:e.getNode(n.id);if((null==t?void 0:t.data)===n)x.push(t);else{const e={id:n.id,data:n},t=null==o?void 0:o.get(n.id);t&&(e.fx=t.x,e.fy=t.y),x.push(e)}}return{layout:"force",getNode:function(e){return x.find((t=>t.data.id===e))},applyLayout(e){let{nodesRefRepository:t,lineLabelsRefRepository:o,normalizedLinesMap:a}=e;if(0===x.length)return null;r(x,t,w);const i=x.slice(),l=[];for(const e of null!=n?n:[])l.push({...e}),k>0&&(i.push(...g(e,k)),l.push(...y(e,k)));const d=(0,c.A)(l).id((e=>e.id));k>0&&d.distance((e=>e.dummy?30/(k+1):30)).strength((e=>e.dummy?.5:1));const M=(0,u.A)(i).force("link",d).force("x",(0,f.A)()).force("y",(0,p.A)()).force("charge",(0,m.A)());b&&M.force("collide",(0,h.A)().radius((e=>e.dummy?b.dummyRadius:Math.sqrt(e.width**2+e.height**2)/2+b.radiusDiff)).strength(b.strength).iterations(b.iterations)),M.stop(),function(e){e.tick(Math.ceil(Math.log(e.alphaMin())/Math.log(1-e.alphaDecay())))}(M),s(x,t,w);const R=v(n,{normalizedLinesMap:a,lineLabelsRefRepository:o});return{nodes:x,edges:R}}}}(e,n,a,w,C):"manual"===P?function(e,t,n,o){const{nodePadding:a}={nodePadding:0,...(0,l.pick)(o,["nodePadding"])},i=(0,d.D)(a),c=[];for(const n of null!=t?t:[]){const t=null==e?void 0:e.getNode(n.id);(null==t?void 0:t.data)===n?(c.push(t),t.x0=t.x,t.y0=t.y):c.push({id:n.id,data:n})}let u;return{layout:"manual",getNode:function(e){return c.find((t=>t.data.id===e))},applyLayout(e){let{manualLayoutStatus:t,nodesRefRepository:o,lineLabelsRefRepository:a,normalizedLinesMap:l,nodeMovement:d}=e;if(0===c.length)return null;var f,p;r(c,o,i),d&&(u=c.find((e=>e.id===d.id)),u&&(u.x=(null!==(f=u.x0)&&void 0!==f?f:0)+d.move[0],u.y=(null!==(p=u.y0)&&void 0!==p?p:0)+d.move[1])),"finished"===t&&u&&(u.x0=u.x,u.y0=u.y),s(c,o,i);const m=v(n,{normalizedLinesMap:l,lineLabelsRefRepository:a});return{nodes:c,edges:m}}}}(e,n,a,C):null))}),[a,n,P,C,b,w]),(0,o.useEffect)((()=>{if(!M||!R||P!==(null==S?void 0:S.layout))return;const e=null==S?void 0:S.applyLayout({manualLayoutStatus:k,nodesRefRepository:M,lineLabelsRefRepository:R,normalizedLinesMap:E,nodeMovement:x});e&&N(e)}),[P,k,S,x,M,R,L,$,E]),T}},8308:(e,t,n)=>{function o(e,t){let{canvasWidth:n,canvasHeight:o,scaleRange:a}=t,i=1/0,l=1/0,r=-1/0,s=-1/0;for(const t of e){const e=t.width/2,n=t.height/2,o=t.x-e,a=t.x+e,d=t.y-n,c=t.y+n;o<i&&(i=o),a>r&&(r=a),d<l&&(l=d),c>s&&(s=c)}const d=r-i,c=s-l,u=a&&(d>n||c>o)?Math.max(Math.min(n/d,o/c,a[1]),a[0]):1;return{x:(n-d*u)/2-i*u,y:(o-c*u)/2-l*u,k:u}}n.d(t,{r:()=>o})},8657:(e,t,n)=>{n.d(t,{Ie:()=>l,KP:()=>i,VO:()=>a,Yt:()=>s,mF:()=>o,sS:()=>r});const o="var(--palette-gray-5)",a=1,i="curveBasis",l=20,r=.5,s=2},8892:(e,t,n)=>{n.d(t,{p:()=>r});var o=n(8769),a=n.n(o),i=n(8361),l=n(8974);function r(e){let{nodes:t,nodeBricks:n,onRendered:i}=e;const[l,r]=(0,o.useState)(!1),[d,c]=(0,o.useState)([]),u=(0,o.useMemo)((()=>new Map),[]),f=(0,o.useCallback)(((e,t)=>{t&&u.set(e,t),c((t=>t.includes(e)?t:t.concat(e)))}),[u]),p=(0,o.useCallback)((e=>{c((t=>{const n=t.indexOf(e);return-1===n?t:t.slice(0,n).concat(t.slice(n+1))})),u.delete(e)}),[u]);return(0,o.useEffect)((()=>{r(!(null!=t&&t.some((e=>!d.includes(e.id)))))}),[t,d]),(0,o.useEffect)((()=>{null==i||i(l?u:null)}),[u,l]),a().createElement(a().Fragment,null,null==t?void 0:t.map((e=>a().createElement("div",{key:e.id,className:"node"},a().createElement(s,{nodeBricks:n,node:e,onRendered:f,onUnmount:p})))))}function s(e){let{node:t,nodeBricks:n,onRendered:r,onUnmount:s}=e;const d=(0,o.useMemo)((()=>{var e;return null===(e=function(e,t){return null==t?void 0:t.find((t=>t.nodeType?[].concat(t.nodeType).includes(e.type):(0,l.checkIfByTransform)(t,{node:e})))}(t,n))||void 0===e?void 0:e.useBrick}),[t,n]),c=(0,o.useMemo)((()=>({node:t})),[t]);(0,o.useEffect)((()=>{d||setTimeout((()=>{null==r||r(t.id,null)}))}),[t.id,r,d]),(0,o.useEffect)((()=>()=>{null==s||s(t.id)}),[]);const u=(0,o.useCallback)((e=>{e&&setTimeout((()=>{null==r||r(t.id,e)}))}),[t.id,r]),f=(0,o.useCallback)((()=>{setTimeout((()=>{null==r||r(t.id,null)}))}),[t.id,r]);return d?a().createElement(i.ReactUseBrick,{refCallback:u,ignoredCallback:f,useBrick:d,data:c}):null}},9137:(e,t,n)=>{n.d(t,{t:()=>r});var o=n(1030),a=n(8974);function i(e,t){return!!t&&(t.edgeType?[].concat(t.edgeType).includes(e.type):(0,a.checkIfByTransform)(t,{edge:e}))}var l=n(8657);function r(e,t){const n=[],r=new WeakMap,d=[];for(const v of null!=e?e:[]){var c,u;const{label:e,...g}=null!==(c=null==t?void 0:t.find((e=>i(v,e))))&&void 0!==c?c:{},y=a.__secret_internals.legacyDoTransform({edge:v},g);if(!1===(null==y?void 0:y.draw))continue;const k=(0,o.uniqueId)("line-"),b={strokeColor:l.mF,strokeWidth:l.VO,curveType:"polyline"===(null==y?void 0:y.type)?"curveLinear":l.KP,interactStrokeWidth:l.Ie,type:"auto",...y,label:e,$id:k};r.set(v,k);const w=[],x=null!==(u=b.markers)&&void 0!==u?u:b.arrow?[{placement:"end",type:"arrow"}]:[];for(const e of x){var f,p,m,h;const{placement:t,type:n}=e,o=null!=t?t:"end";let a,i;switch(n){case"0..1":case"0..N":i=21,a=n;break;default:i=1,a="arrow"}const l=i*b.strokeWidth,r=s({type:a,strokeColor:b.strokeColor},d);w.push({index:r,placement:o,type:a,variant:"default",offset:l});const c=s({type:a,strokeColor:null!==(f=null===(p=b.overrides)||void 0===p||null===(p=p.active)||void 0===p?void 0:p.strokeColor)&&void 0!==f?f:b.strokeColor},d);w.push({index:c,placement:o,type:a,variant:"active",offset:l});const u=s({type:a,strokeColor:null!==(m=null===(h=b.overrides)||void 0===h||null===(h=h.activeRelated)||void 0===h?void 0:h.strokeColor)&&void 0!==m?m:b.strokeColor},d);w.push({index:u,placement:o,type:a,variant:"active-related",offset:l})}n.push({line:b,markers:w,edge:v})}return{normalizedLines:n,normalizedLinesMap:r,markers:d}}function s(e,t){let n=(0,o.findIndex)(t,e);return-1===n&&(n=t.push(e)-1),n}},9191:(e,t,n)=>{n.d(t,{y:()=>i});var o=n(8769),a=n.n(o);function i(e){let{lineId:t,rects:n,maskPrefix:o,renderedLineLabels:i}=e;const l=i.find((e=>e.lineId===t&&"center"===e.placement));if(!l)return null;const{lineRect:r}=l,s=(c=1e3,{left:(d=r).left-c,top:d.top-c,width:d.width+2e3,height:d.height+2e3});var d,c;return a().createElement("mask",{id:`${o}${t}`,x:s.left,y:s.top,width:s.width,height:s.height},a().createElement("rect",{x:s.left,y:s.top,width:s.width,height:s.height,fill:"white"}),n.map(((e,t)=>a().createElement("rect",{key:t,x:e.left,y:e.top,width:e.width,height:e.height,fill:"black"}))))}}}]);
|
|
3
|
-
//# sourceMappingURL=3233.941a4709.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[4837,7218],{4837:(e,r,t)=>{t.r(r),t.d(r,{ReactUseBrick:()=>s,ReactUseMultipleBricks:()=>u,asyncWrapBrick:()=>k,useCurrentApp:()=>l,useCurrentTheme:()=>o,useLazyWrapBrick:()=>w,useNavConfig:()=>h,useProvider:()=>m,useRecentApps:()=>i,useRouteRender:()=>d});var n=t(8769),c=t(8974);let s=function(e){let{useBrick:r,data:t,errorBoundary:s,refCallback:u,ignoredCallback:a}=e;const[o,i]=(0,n.useState)(null),l=(0,n.useRef)(),[d,f]=(0,n.useState)(),p=(0,n.useRef)(0),g=(0,n.useMemo)((()=>{var e;return null===(e=c.__secret_internals.getRenderId)||void 0===e?void 0:e.call(c.__secret_internals)}),[]);(0,n.useEffect)((()=>{let e=!1;return async function(){try{const n=await c.__secret_internals.renderUseBrick(r,t,s);if(e)return;i(n),f(++p.current)}catch(n){!e&&function(e){var r;const t=null===(r=c.__secret_internals.getRenderId)||void 0===r?void 0:r.call(c.__secret_internals);return!e||!t||e===t}(g)&&(console.error("Render useBrick failed:",r,"with data:",t),(0,c.handleHttpError)(n))}}(),()=>{e=!0}}),[t,r,g,s]);const y=(0,n.useCallback)((e=>{e?l.current=c.__secret_internals.mountUseBrick(o,e):(c.__secret_internals.unmountUseBrick(o,l.current),l.current=void 0),null==u||u(e)}),[u,o]);if(!o)return null;const{tagName:m}=o;if(null===m)return null==a||a(),null;const v=m;return n.createElement(v,{key:d,ref:y})},u=function(e){let{useBrick:r,data:t,errorBoundary:c}=e;return Array.isArray(r)?n.createElement(n.Fragment,null,r.map(((e,r)=>n.createElement(s,{key:r,useBrick:e,data:t,errorBoundary:c})))):n.createElement(s,{useBrick:r,data:t,errorBoundary:c})};const a=(0,c.getV2RuntimeFromDll)();if(a){const{SingleBrickAsComponentFactory:e,BrickAsComponentFactory:r}=a;e&&r&&(s=e(n),u=r(n))}function o(){const[e,r]=(0,n.useState)(c.getCurrentTheme);return(0,n.useEffect)((()=>{const e=e=>{r(e.detail)};return window.addEventListener("theme.change",e),()=>{window.removeEventListener("theme.change",e)}}),[]),e}function i(){const[e,r]=n.useState((()=>(0,c.getRuntime)().getRecentApps()));return n.useEffect((()=>{const e=e=>{r(e.detail)};return window.addEventListener("app.change",e),()=>window.removeEventListener("app.change",e)}),[]),e}function l(){return i().currentApp}function d(){const[e,r]=n.useState(null);return n.useEffect((()=>{const e=e=>{r(e.detail)};return window.addEventListener("route.render",e),()=>window.removeEventListener("route.render",e)}),[]),e}const f={provider:"",customOptions:{onError:()=>{},transform:(e,r)=>r,data:void 0,loading:!1,suspense:!1,cache:!0},dependencies:void 0},p=Object.entries(f).reduce(((e,r)=>{let[t,n]=r;return"[object Object]"===Object.prototype.toString.call(n)?{...e,...n}:{...e,[t]:n}}),{});var g=t(1030);const y=new Map;function m(){const{provider:e,customOptions:r,dependencies:t,requestInit:s}=function(e,r,t){const c=(0,n.useMemo)((()=>"string"==typeof e?e:f.provider),[e,r]),s=(0,n.useMemo)((()=>{let t={};return(0,g.isObject)(e)?t=e:(0,g.isObject)(r)&&(t=r),{...p,...t}}),[e,r]),u=(0,n.useMemo)((()=>{const e=[...Object.keys(f),...Object.keys(f.customOptions)],{args:r=null,...t}=Object.keys(s).reduce(((r,t)=>(e.includes(t)||(r[t]=s[t]),r)),{});return{options:{...t},args:r}}),[s]),a=(0,n.useMemo)((()=>Array.isArray(r)?r:Array.isArray(t)?t:p.dependencies),[r,t]),o=s.loading||Array.isArray(a);return{provider:c,customOptions:(0,n.useMemo)((()=>({...Object.keys(f.customOptions).reduce(((e,r)=>(e[r]=s[r],e)),{}),loading:o})),[s]),requestInit:u,dependencies:a}}(...arguments),{onError:u,transform:a,suspense:o,cache:i,...l}=r,[d,m]=(0,n.useState)(l.loading),v=(0,n.useRef)("pending"),k=(0,n.useRef)(),h=(0,n.useRef)(!1),w=(0,n.useRef)(),_=(0,n.useRef)(),b=(0,n.useRef)(l.data),B=(0,n.useReducer)((()=>({})),[])[1],E=(0,n.useCallback)((async(e,r)=>{try{w.current=void 0,o||m(!0);const t=await async function(e,r,t){let n;const s=function(e){const r=e=>Object.keys(e).sort().map((r=>({[r]:e[r]})));for(var t=arguments.length,n=new Array(t>1?t-1:0),c=1;c<t;c++)n[c-1]=arguments[c];try{const t="object"!=typeof(s=n)||null===s||Array.isArray(s)?n.map((e=>function(e){return"string"==typeof e}(e)?e:r(e))):r(n);return JSON.stringify({provider:e,args:t})}catch(r){return JSON.stringify({provider:e,args:n})}var s}(e,...t);return!r&&y.has(s)&&y.delete(s),y.has(s)?n=y.get(s):(n=(0,c.fetchByProvider)(e,t,{cache:r?"default":"reload"}),r&&y.set(s,n)),n}(e,i,r);_.current=t,b.current=a(b.current,t)}catch(e){w.current=e,b.current=void 0}return o||m(!1),w.current&&u(w.current),b.current}),[e,r,t,s,o,a,l.data,u,i]),O=(0,n.useCallback)((async(r,t)=>{let n=e,c=[];return(0,g.isString)(r)&&(n=r),(0,g.isObject)(r)?c=r:(0,g.isObject)(t)&&(c=t),o?(async()=>(k.current=E(n,c).then((e=>(v.current="success",e)),(e=>(v.current="error",e.current=e,e))),B(),await k.current))():E(n,c)}),[E]),R=(0,n.useMemo)((()=>Object.defineProperties({query:O},{loading:{get:()=>d},data:{get:()=>b.current},error:{get:()=>w.current}})),[O]);if((0,n.useEffect)((()=>(h.current=!0,Array.isArray(t)&&e&&R.query(e,s.args),()=>h.current=!1)),t),o&&k.current)switch(v.current){case"pending":throw k.current;case"error":throw w.current}return Object.assign([R,_.current,d,w.current],{request:R,...R,response:_.current,data:b.current,loading:d,error:w.current})}var v=t(9859);async function k(e,r){return await c.__secret_internals.loadBricks([e]),(0,v.wrapBrick)(e,r)}function h(){const[e,r]=(0,n.useState)((()=>(0,c.getRuntime)().getNavConfig()));return(0,n.useEffect)((()=>{const e=e=>{r(e.detail)};return window.addEventListener("navConfig.change",e),()=>window.removeEventListener("navConfig.change",e)}),[]),e}function w(e,r){return(0,n.useMemo)((()=>null!=e?(0,n.lazy)((async()=>({default:await k(e,r)}))):null),[e,r])}}}]);
|
|
2
|
-
//# sourceMappingURL=4837.c9d5ffd2.js.map
|