@univerjs-pro/engine-shape 1.0.0-alpha.3 → 1.0.0-alpha.4

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.
@@ -0,0 +1,40 @@
1
+ import type { ShapeArrowSizeEnum, ShapeArrowTypeEnum } from '../shape-enum';
2
+ import type { IShapePoint, IShapeRelationItem } from '../shape-type';
3
+ import type { IConnectorShapeHostAdapter, IConnectorShapeSnapshot } from './connector-shape-host-adapter.service';
4
+ import type { IShapeRef } from './shape-host-adapter.service';
5
+ import { IShapeHostAdapterRegistry } from './shape-host-adapter.service';
6
+ /**
7
+ * Host-neutral Connector service that resolves the owning host's common Shape
8
+ * adapter from `IShapeHostAdapterRegistry` for every operation.
9
+ */
10
+ export declare class ConnectorShapeHostAdapter implements IConnectorShapeHostAdapter {
11
+ private readonly _shapeAdapterRegistry;
12
+ constructor(_shapeAdapterRegistry: IShapeHostAdapterRegistry);
13
+ /** Returns a resolved Connector snapshot. */
14
+ getConnector(ref: IShapeRef): IConnectorShapeSnapshot | null;
15
+ /** Binds the start endpoint to a target Shape connection site. */
16
+ bindStart(ref: IShapeRef, target: IShapeRelationItem): boolean;
17
+ /** Binds the end endpoint to a target Shape connection site. */
18
+ bindEnd(ref: IShapeRef, target: IShapeRelationItem): boolean;
19
+ /** Unbinds the start endpoint while preserving its current visual position. */
20
+ unbindStart(ref: IShapeRef): boolean;
21
+ /** Unbinds the end endpoint while preserving its current visual position. */
22
+ unbindEnd(ref: IShapeRef): boolean;
23
+ /** Sets a free start point and removes the existing start binding. */
24
+ setStartPoint(ref: IShapeRef, point: IShapePoint): boolean;
25
+ /** Sets a free end point and removes the existing end binding. */
26
+ setEndPoint(ref: IShapeRef, point: IShapePoint): boolean;
27
+ /** Replaces the intermediate route points in document coordinates. */
28
+ setRoutePoints(ref: IShapeRef, points: IShapePoint[]): boolean;
29
+ /** Sets the start arrowhead type and optional size. */
30
+ setStartArrow(ref: IShapeRef, type: ShapeArrowTypeEnum, size?: ShapeArrowSizeEnum): boolean;
31
+ /** Sets the end arrowhead type and optional size. */
32
+ setEndArrow(ref: IShapeRef, type: ShapeArrowTypeEnum, size?: ShapeArrowSizeEnum): boolean;
33
+ private _updateEndpoint;
34
+ private _getConnectorSnapshot;
35
+ private _resolveBinding;
36
+ private _setArrow;
37
+ private _getShapeAdapter;
38
+ private _getConnectorShape;
39
+ private _getArrow;
40
+ }
@@ -0,0 +1,55 @@
1
+ import type { ShapeArrowSizeEnum, ShapeArrowTypeEnum } from '../shape-enum';
2
+ import type { IShapePoint, IShapeRelationItem } from '../shape-type';
3
+ import type { IShapeRef } from './shape-host-adapter.service';
4
+ export interface IConnectorEndpoint {
5
+ /** Resolved endpoint in the host's document coordinate system. */
6
+ point: IShapePoint;
7
+ /** Target Shape connection-site binding, or `null` for a free endpoint. */
8
+ binding: IShapeRelationItem | null;
9
+ }
10
+ export interface IConnectorArrow {
11
+ /** Arrowhead type. */
12
+ type: ShapeArrowTypeEnum;
13
+ /** Optional arrowhead size. */
14
+ size?: ShapeArrowSizeEnum;
15
+ }
16
+ export interface IConnectorShapeSnapshot {
17
+ /** Resolved start endpoint. */
18
+ start: IConnectorEndpoint;
19
+ /** Resolved end endpoint. */
20
+ end: IConnectorEndpoint;
21
+ /** Resolved Connector path in the host's document coordinate system. */
22
+ routePoints: IShapePoint[];
23
+ /** Start arrowhead, or `null` when none is configured. */
24
+ startArrow: IConnectorArrow | null;
25
+ /** End arrowhead, or `null` when none is configured. */
26
+ endArrow: IConnectorArrow | null;
27
+ }
28
+ /**
29
+ * Common service contract for Connector-specific Shape reads and mutations.
30
+ * Mutations delegate persistence to the owning host's common Shape adapter.
31
+ */
32
+ export interface IConnectorShapeHostAdapter {
33
+ /** Returns the resolved Connector snapshot, or `null` when it does not exist. */
34
+ getConnector(ref: IShapeRef): IConnectorShapeSnapshot | null;
35
+ /** Binds the start endpoint to a target Shape connection site. */
36
+ bindStart(ref: IShapeRef, target: IShapeRelationItem): boolean;
37
+ /** Binds the end endpoint to a target Shape connection site. */
38
+ bindEnd(ref: IShapeRef, target: IShapeRelationItem): boolean;
39
+ /** Unbinds the start endpoint while preserving its current visual position. */
40
+ unbindStart(ref: IShapeRef): boolean;
41
+ /** Unbinds the end endpoint while preserving its current visual position. */
42
+ unbindEnd(ref: IShapeRef): boolean;
43
+ /** Sets a free start point and removes any existing start binding. */
44
+ setStartPoint(ref: IShapeRef, point: IShapePoint): boolean;
45
+ /** Sets a free end point and removes any existing end binding. */
46
+ setEndPoint(ref: IShapeRef, point: IShapePoint): boolean;
47
+ /** Replaces the explicit Connector route points. */
48
+ setRoutePoints(ref: IShapeRef, points: IShapePoint[]): boolean;
49
+ /** Sets the start arrowhead type and optional size. */
50
+ setStartArrow(ref: IShapeRef, type: ShapeArrowTypeEnum, size?: ShapeArrowSizeEnum): boolean;
51
+ /** Sets the end arrowhead type and optional size. */
52
+ setEndArrow(ref: IShapeRef, type: ShapeArrowTypeEnum, size?: ShapeArrowSizeEnum): boolean;
53
+ }
54
+ /** Singleton Connector service backed by the registered common Shape adapters. */
55
+ export declare const IConnectorShapeHostAdapter: import("@wendellhu/redi").IdentifierDecorator<IConnectorShapeHostAdapter>;
@@ -0,0 +1,103 @@
1
+ import type { IDisposable, UniverInstanceType } from '@univerjs/core';
2
+ import type { ShapeTypeEnum } from '../shape-enum';
3
+ import type { IShapeData } from '../shape-type';
4
+ export type ShapeHostType = UniverInstanceType.UNIVER_SHEET | UniverInstanceType.UNIVER_DOC | UniverInstanceType.UNIVER_SLIDE | UniverInstanceType.UNIVER_BOARD;
5
+ export declare function isShapeHostType(type: UniverInstanceType): type is ShapeHostType;
6
+ export interface IShapeScope {
7
+ /** Univer host type that owns the Shape. */
8
+ hostType: ShapeHostType;
9
+ /** Host unit identifier, such as a workbook, document, presentation, or board id. */
10
+ unitId: string;
11
+ /** Host subunit identifier, such as a worksheet or slide id. */
12
+ subUnitId: string;
13
+ }
14
+ export interface IShapeRef extends IShapeScope {
15
+ /** Stable Shape identifier within the host subunit. */
16
+ shapeId: string;
17
+ }
18
+ export interface IShapeTransform {
19
+ /** Horizontal position in host coordinates. */
20
+ left: number;
21
+ /** Vertical position in host coordinates. */
22
+ top: number;
23
+ /** Shape width in host coordinates. */
24
+ width: number;
25
+ /** Shape height in host coordinates. */
26
+ height: number;
27
+ /** Clockwise rotation in degrees. */
28
+ rotation: number;
29
+ /** Whether the Shape is flipped horizontally. */
30
+ flipX: boolean;
31
+ /** Whether the Shape is flipped vertically. */
32
+ flipY: boolean;
33
+ }
34
+ export interface IShapeSnapshot extends IShapeRef {
35
+ /** Current preset Shape type. */
36
+ shapeType: ShapeTypeEnum;
37
+ /** Current host-neutral Shape data. */
38
+ shapeData: IShapeData;
39
+ /** Optional user-facing Shape name. */
40
+ name?: string;
41
+ /** Optional user-facing Shape description. */
42
+ description?: string;
43
+ /** Fully resolved Shape transform. */
44
+ transform: IShapeTransform;
45
+ /** Whether the Shape is rendered by its host. */
46
+ visible: boolean;
47
+ /** Whether the Shape can be selected from its host canvas. */
48
+ selectable: boolean;
49
+ }
50
+ export interface IShapeCreateInput {
51
+ /** Preset type of the Shape to create. */
52
+ shapeType: ShapeTypeEnum;
53
+ /** Partial transform. Omitted fields use defaults supplied by the target host. */
54
+ transform?: Partial<IShapeTransform>;
55
+ /** Initial host-neutral Shape data. */
56
+ shapeData?: IShapeData;
57
+ /** Initial user-facing Shape name. */
58
+ name?: string;
59
+ /** Initial user-facing Shape description. */
60
+ description?: string;
61
+ /** Initial visibility. Defaults to `true`. */
62
+ visible?: boolean;
63
+ /** Initial canvas selectability. Defaults to `true`. */
64
+ selectable?: boolean;
65
+ }
66
+ export interface IShapeUpdateInput {
67
+ /** Replacement preset Shape type. */
68
+ shapeType?: ShapeTypeEnum;
69
+ /** Transform fields to update. */
70
+ transform?: Partial<IShapeTransform>;
71
+ /** Replacement host-neutral Shape data. */
72
+ shapeData?: IShapeData;
73
+ /** User-facing Shape name. Pass `undefined` explicitly to clear it. */
74
+ name?: string;
75
+ /** User-facing Shape description. Pass `undefined` explicitly to clear it. */
76
+ description?: string;
77
+ /** Visibility to update. Omit to preserve the current value. */
78
+ visible?: boolean;
79
+ /** Canvas selectability to update. Omit to preserve the current value. */
80
+ selectable?: boolean;
81
+ }
82
+ export interface IShapeHostAdapter {
83
+ readonly hostType: ShapeHostType;
84
+ getShape(ref: IShapeRef): IShapeSnapshot | null;
85
+ listShapes(scope: IShapeScope): IShapeSnapshot[];
86
+ createShape(scope: IShapeScope, input: IShapeCreateInput): IShapeSnapshot | null;
87
+ updateShape(ref: IShapeRef, input: IShapeUpdateInput): boolean;
88
+ removeShape(ref: IShapeRef): boolean;
89
+ bringToFront(ref: IShapeRef): boolean;
90
+ bringForward(ref: IShapeRef): boolean;
91
+ sendBackward(ref: IShapeRef): boolean;
92
+ sendToBack(ref: IShapeRef): boolean;
93
+ }
94
+ export interface IShapeHostAdapterRegistry {
95
+ register(adapter: IShapeHostAdapter): IDisposable;
96
+ get(hostType: UniverInstanceType): IShapeHostAdapter | null;
97
+ }
98
+ export declare const IShapeHostAdapterRegistry: import("@wendellhu/redi").IdentifierDecorator<IShapeHostAdapterRegistry>;
99
+ export declare class ShapeHostAdapterRegistry implements IShapeHostAdapterRegistry {
100
+ private readonly _adapters;
101
+ register(adapter: IShapeHostAdapter): IDisposable;
102
+ get(hostType: UniverInstanceType): IShapeHostAdapter | null;
103
+ }
@@ -1,3 +1,4 @@
1
+ import type { HorizontalAlign, IDocumentData, VerticalAlign } from '@univerjs/core';
1
2
  import type { BasicShapeEnum, ImageFillModeEnum, ImageSourceTypeEnum, ShapeArrowSizeEnum, ShapeArrowTypeEnum, ShapeFillEnum, ShapeGradientTypeEnum, ShapeLineCapEnum, ShapeLineDashEnum, ShapeLineJoinEnum, ShapeLineTypeEnum, ShapeOperatorEnum, ShapePresetShadowValEnum, ShapeRenderModeEnum, ShapeSketchTypeEnum, ShapeTypeEnum } from './shape-enum';
2
3
  /**
3
4
  * GdContext 用来计算 OOXML Shape 的 Geometry Definitions (gd)
@@ -551,12 +552,36 @@ export interface IShapePath {
551
552
  /** Parsed path data array (alternative to data string) */
552
553
  dataArray?: IPathCommand[];
553
554
  }
554
- export type ShapeTextDirection = 'horz' | 'vert' | 'vert270' | 'wordArtVert' | 'eaVert' | 'mongolianVert' | 'wordArtVertRtl';
555
+ export declare enum ShapeTextDirection {
556
+ /** Horizontal text. */
557
+ Horz = "horz",
558
+ /** Vertical text. */
559
+ Vert = "vert",
560
+ /** Vertical text rotated 270 degrees from the horizontal baseline. */
561
+ Vert270 = "vert270",
562
+ /** Vertical WordArt text. */
563
+ WordArtVert = "wordArtVert",
564
+ /** East Asian vertical text. */
565
+ EaVert = "eaVert",
566
+ /** Mongolian vertical text. */
567
+ MongolianVert = "mongolianVert",
568
+ /** Right-to-left vertical WordArt text. */
569
+ WordArtVertRtl = "wordArtVertRtl"
570
+ }
555
571
  export type ShapeTextHorizontalAnchor = 'center';
556
- export type ShapeTextWrapType = 'none' | 'square';
572
+ export declare enum ShapeTextWrapType {
573
+ /** Do not wrap text inside the shape text box. */
574
+ None = "none",
575
+ /** Wrap text inside the shape text box. */
576
+ Square = "square"
577
+ }
578
+ export type ShapeShadowAlignment = 'tl' | 't' | 'tr' | 'l' | 'ctr' | 'r' | 'bl' | 'b' | 'br';
557
579
  export declare enum ShapeTextAutoFitType {
558
- NoAutofit = "noAutofit",
559
- NormAutofit = "normAutofit",
580
+ /** Do not automatically adjust overflowing text. */
581
+ NoAutoFit = "noAutoFit",
582
+ /** Shrink text when it overflows the shape. */
583
+ NormAutoFit = "normAutoFit",
584
+ /** Resize the shape to fit the text. */
560
585
  SpAutoFit = "spAutoFit"
561
586
  }
562
587
  export interface IShapeTextAlign {
@@ -564,11 +589,41 @@ export interface IShapeTextAlign {
564
589
  textDirection?: ShapeTextDirection;
565
590
  }
566
591
  export interface IShapeTextRectPadding {
592
+ /** Left inner text margin, in px. */
567
593
  left: number;
594
+ /** Top inner text margin, in px. */
568
595
  top: number;
596
+ /** Right inner text margin, in px. */
569
597
  right: number;
598
+ /** Bottom inner text margin, in px. */
570
599
  bottom: number;
571
600
  }
601
+ export interface IShapeTextBoxOptions {
602
+ /**
603
+ * Text direction inside the shape text box.
604
+ *
605
+ * Use `univerAPI.Enum.ShapeTextDirection` in facade code.
606
+ */
607
+ textDirection?: ShapeTextDirection;
608
+ /**
609
+ * How the hosted text fits when it overflows the shape.
610
+ *
611
+ * Use `univerAPI.Enum.ShapeTextAutoFitType` in facade code.
612
+ */
613
+ autoFitType?: ShapeTextAutoFitType;
614
+ /**
615
+ * Whether hosted text wraps inside the shape text box.
616
+ *
617
+ * Use `univerAPI.Enum.ShapeTextWrapType` in facade code.
618
+ */
619
+ textWrap?: ShapeTextWrapType;
620
+ /**
621
+ * Inner text margins of the shape text box, in px.
622
+ *
623
+ * Omitted sides keep their current resolved value.
624
+ */
625
+ padding?: Partial<IShapeTextRectPadding>;
626
+ }
572
627
  export interface IShapeTextBodyBehavior {
573
628
  horizontalAnchor?: ShapeTextHorizontalAnchor;
574
629
  textWrap?: ShapeTextWrapType;
@@ -596,28 +651,20 @@ export interface IShapeText extends IShapeTextAlign, IShapeTextBodyBehavior {
596
651
  italic?: boolean;
597
652
  underline?: boolean;
598
653
  }
599
- /**
600
- * Shared rich shape text model.
601
- *
602
- * `engine-shape` owns the shape-text contract, but does not depend on a concrete
603
- * document package. Products can specialize the generic parameters with their
604
- * document and alignment types, for example
605
- * `IShapeTextDataModel<IDocumentData, HorizontalAlign, VerticalAlign>`.
606
- */
607
- export interface IShapeTextDataModel<TDocument = unknown, THorizontalAlign = unknown, TVerticalAlign = unknown> {
608
- doc?: TDocument;
609
- ha?: THorizontalAlign;
610
- va?: TVerticalAlign;
654
+ export interface IShapeTextDataModel {
655
+ doc?: IDocumentData;
656
+ ha?: HorizontalAlign;
657
+ va?: VerticalAlign;
611
658
  }
612
- export interface ICustomShapeTextData<TDocument = unknown, THorizontalAlign = unknown, TVerticalAlign = unknown> extends IShapeTextAlign, IShapeTextBodyBehavior {
659
+ export interface ICustomShapeTextData extends IShapeTextAlign, IShapeTextBodyBehavior {
613
660
  /**
614
661
  * Plain-text summary used by search, measurement, fallback rendering, and
615
662
  * product-level display. Formatted content lives in `dataModel.doc`.
616
663
  */
617
664
  text?: string;
618
- dataModel?: IShapeTextDataModel<TDocument, THorizontalAlign, TVerticalAlign>;
665
+ dataModel?: IShapeTextDataModel;
619
666
  }
620
- export type IShapeTextData<TDocument = unknown, THorizontalAlign = unknown, TVerticalAlign = unknown> = IShapeText | ICustomShapeTextData<TDocument, THorizontalAlign, TVerticalAlign>;
667
+ export type IShapeTextData = IShapeText | ICustomShapeTextData;
621
668
  /**
622
669
  * A shape outer-shadow effect. Distances and blur radius use slide drawing
623
670
  * units; direction is in degrees where 0 points right and 90 points down.
@@ -639,6 +686,12 @@ export interface IShapeShadowEffect {
639
686
  sx?: number;
640
687
  /** Vertical shadow scale factor; 1 means 100%. */
641
688
  sy?: number;
689
+ /** Horizontal shadow skew angle in degrees. */
690
+ skewX?: number;
691
+ /** Vertical shadow skew angle in degrees. */
692
+ skewY?: number;
693
+ /** Alignment point used while scaling or skewing the shadow. */
694
+ alignment?: ShapeShadowAlignment;
642
695
  /** Whether the shadow rotates together with the shape. */
643
696
  rotateWithShape?: boolean;
644
697
  }
@@ -0,0 +1,15 @@
1
+ import type { IShapeSnapshot, IShapeUpdateInput } from '../services/shape-host-adapter.service';
2
+ import type { IConnectPointInfo, IShapePoint, IShapeRelation } from '../shape-type';
3
+ /** Resolves a Shape connection site into document coordinates. */
4
+ export declare function resolveShapeConnectionPoint(snapshot: IShapeSnapshot, connectionSiteIndex: number): IConnectPointInfo | null;
5
+ /** Resolves every Connector path point into document coordinates. */
6
+ export declare function resolveConnectorRoutePoints(snapshot: IShapeSnapshot): IShapePoint[];
7
+ /** Creates routing metadata for a free Connector endpoint. */
8
+ export declare function createFreeConnectorPointInfo(connectedPoint: IShapePoint, freePoint: IShapePoint): IConnectPointInfo;
9
+ /**
10
+ * Builds one complete Connector update from resolved endpoint routing metadata.
11
+ * The returned patch updates geometry, transform, relation, and Connector preset atomically.
12
+ */
13
+ export declare function buildConnectorEndpointUpdate(snapshot: IShapeSnapshot, start: IConnectPointInfo, end: IConnectPointInfo, relation?: IShapeRelation): IShapeUpdateInput | null;
14
+ /** Builds one complete Connector update from document-coordinate route points. */
15
+ export declare function buildConnectorRoutePointsUpdate(snapshot: IShapeSnapshot, routePoints: IShapePoint[], relation?: IShapeRelation): IShapeUpdateInput | null;
@@ -0,0 +1,8 @@
1
+ import type { IShapeShadowEffect } from '../shape-type';
2
+ export interface IResolvedShapeShadow {
3
+ shadowColor: string;
4
+ shadowBlur: number;
5
+ shadowOffsetX: number;
6
+ shadowOffsetY: number;
7
+ }
8
+ export declare function resolveShapeShadow(effect: IShapeShadowEffect | undefined): IResolvedShapeShadow | undefined;
@@ -1,5 +1,5 @@
1
- import type { IShapeData, IShapeTextRectPadding, ShapeTextHorizontalAnchor, ShapeTextWrapType } from '../shape-type';
2
- import { ShapeTextAutoFitType } from '../shape-type';
1
+ import type { IShapeData, IShapeTextBoxOptions, IShapeTextRectPadding, ShapeTextHorizontalAnchor } from '../shape-type';
2
+ import { ShapeTextAutoFitType, ShapeTextDirection, ShapeTextWrapType } from '../shape-type';
3
3
  export interface IResolvedShapeTextBodyBehavior {
4
4
  autoFitType: ShapeTextAutoFitType;
5
5
  fontScale?: number;
@@ -9,5 +9,13 @@ export interface IResolvedShapeTextBodyBehavior {
9
9
  textRectPadding: IShapeTextRectPadding;
10
10
  textWrap: ShapeTextWrapType;
11
11
  }
12
+ export interface IResolvedShapeTextBoxOptions {
13
+ textDirection: ShapeTextDirection;
14
+ autoFitType: ShapeTextAutoFitType;
15
+ textWrap: ShapeTextWrapType;
16
+ padding: IShapeTextRectPadding;
17
+ }
12
18
  export declare function resolveShapeTextBodyBehavior(shapeData: IShapeData): IResolvedShapeTextBodyBehavior;
19
+ export declare function resolveShapeTextBoxOptions(shapeData: IShapeData): IResolvedShapeTextBoxOptions;
20
+ export declare function applyShapeTextBoxOptions<T extends IShapeData>(shapeData: T, options: IShapeTextBoxOptions): T;
13
21
  export declare function shouldUseFullShapeTextRectForAutoFit(shapeData: IShapeData): boolean;
@@ -0,0 +1,14 @@
1
+ import type { IDocumentData, ITextStyle } from '@univerjs/core';
2
+ import type { ICustomShapeTextData, IShapeData, IShapeTextData } from '../shape-type';
3
+ import { HorizontalAlign, RichTextValue, VerticalAlign } from '@univerjs/core';
4
+ export interface IShapeTextAlignmentOptions {
5
+ horizontalAlign?: HorizontalAlign;
6
+ verticalAlign?: VerticalAlign;
7
+ }
8
+ export declare function applyShapeTextAlignment(shapeData: IShapeData, options: IShapeTextAlignmentOptions): IShapeData;
9
+ export declare function shapeTextToRichTextValue(shapeText: IShapeTextData | undefined): RichTextValue | null;
10
+ export declare function applyRichTextToShapeText(current: IShapeTextData | undefined, richText: RichTextValue): ICustomShapeTextData;
11
+ export declare function applyTextToShapeText(current: IShapeTextData | undefined, text: string): ICustomShapeTextData;
12
+ export declare function applyShapeTextStyle(current: IShapeTextData | undefined, style: ITextStyle): ICustomShapeTextData;
13
+ export declare function applyDocumentToShapeText(current: IShapeTextData | undefined, documentData: IDocumentData): ICustomShapeTextData;
14
+ export declare function normalizeShapeTextData(shapeText: IShapeTextData | undefined): ICustomShapeTextData | null;
@@ -0,0 +1 @@
1
+ function _0x2afc(_0x34beb6,_0x1c174a){_0x34beb6=_0x34beb6-0x6f;const _0x411f06=_0x411f();let _0x2afccf=_0x411f06[_0x34beb6];return _0x2afccf;}function _0x411f(){const _0x2491c2=['UniverProEngineShapeFacade','ShapeFillEnum','setVerticalAlign','color','updateShape','isConnectorShape','getAdjustPoints','5255341SlGwVq','ShapeLineDashEnum','setSelectable','bindEnd','setStrokeLineCapType','bring\x20forward','getStartArrow','setShapeData','boolean','bind\x20','remove','IShapeHostAdapterRegistry','set\x20end\x20arrow','setStrokeColor','isInteger','[Shape\x20Facade]:\x20Connector\x20Shape\x20\x22','height','getShapeType','setName','getConnector','setHorizontalAlign','getEndArrow','angular','ShapeTextAutoFitType','60oPTqAf','ShapeArrowSizeEnum','diamond','isVisible','bringToFront','setColor','ShapeTextWrapType','ShapeLineCapEnum','UniverProEngineShape','getConnectionSites','getStartConnectInfo','setStrikethrough','updateContext','240418BJMteD','\x22\x20must\x20be\x20boolean.','getPlainText','unbindEnd','resolveShapeTextBoxOptions','PictureFill','setStrokeWidth','visible','setItalic','setImageFill','_getAdapter','applyRichTextToShapeText','map','warn','description','toStringTag','shapeId','setRoutePoints','[Shape\x20Facade]:\x20Failed\x20to\x20read\x20Connector\x20Shape\x20\x22','shapeTextToRichTextValue','removeShape','ShapeImageFillModeEnum','setDescription','_injector','Tile','setTextStyle','flipX','[Shape\x20Text\x20Facade]:\x20Failed\x20to\x20read\x20Shape\x20\x22','isFinite','1087889kROuZX','toPlainText','applyShapeTextAlignment','setFontSize','@univerjs-pro/engine-shape','deepClone','set\x20start\x20arrow','stretch','[Shape\x20Facade]:\x20Connector\x20\x22','Diamond','Shape\x20height\x20must\x20be\x20greater\x20than\x20zero.','Shape\x20width\x20must\x20be\x20greater\x20than\x20zero.','ShapeTextDirection','set\x20start\x20point','getEndConnectInfo','sendToBack','sendBackward','getCustomGeometry','Shape\x20transform\x20\x22','\x22\x20text.','_bind','ShapeOperatorEnum','438660JqzeOI','offsetY','setVisible','FShape','routePoints','lineStrokeType','[Shape\x20Facade]:\x20Failed\x20to\x20resolve\x20geometry\x20for\x20Shape\x20\x22','ShapeTypeEnum','getRichText','setStrokeLineType','start','isCustomShape','getText','setShapeType','TRUE','amd','send\x20backward','\x22\x20was\x20not\x20found.','points','offsetX','BooleanNumber','32aOyQaC','Angular','NoLine','shapeData','setStartPoint','setStartArrow','\x22\x20requires\x20a\x20Connector\x20Shape\x20type.','SolidFill','UniverCore','URL','none','48810FdeDSp','setCustomGeometry','set\x20route\x20points','linear','setRichText','getSnapshot','Radial','IConnectorShapeHostAdapter','Shape\x20\x22','gradient','ShapeModel','setEndArrow','unbind\x20end','[Shape\x20Facade]:\x20','@univerjs/core','unbindStart','customGeometry','@univerjs/core/facade','bringForward','getRoutePoints','setRotation','transform','SolidLine','ShapeLineJoinEnum','ImageSourceTypeEnum','_updateShapeData','every','_getSnapshot','setGradientFill','UniverCoreFacade','[Shape\x20Facade]:\x20Failed\x20to\x20','hostType','top','_shapeRef','Module','_getConnectorSnapshot','_patchShapeData','set\x20end\x20point','setStrokeLineDashType','NoFill','ShapeGradientTypeEnum','update','_patchStroke','length','ShapeLineTypeEnum','getShapeData','startArrow','rotation','setUnderline','defineProperty','FALSE','scaleX','getConnectionSiteList','setSolidFill','[Shape\x20Text\x20Facade]:\x20Shape\x20\x22','applyShapeTextStyle','extend','get','2OgWUcG','_mutateConnector','setStroke','getEndEndpoint','radial','shapeText','Linear','_getConnectorAdapter','\x22\x20requires\x20Connector\x20Shape\x20data.','isCustom','setTextBoxOptions','mode','object','_mutate','2789996XwniQo','tile','186iVCFia','setFontFamily','GradientFill','setAbsolutePosition','setNoneFill','\x20Connector\x20Shape\x20\x22','stroke','applyShapeTextBoxOptions','[Shape\x20Text\x20Facade]:\x20Failed\x20to\x20update\x20Shape\x20\x22','_getGeometryModel','getShape','bindStart','ShapeArrowTypeEnum','scaleY','getStartEndpoint','[Shape\x20Facade]:\x20Shape\x20\x22','setEndPoint','flipY','FShapeText','shapeType','relation','name','end','751275rZNEbZ','setTransform','width','_getShapeData','ImageFillModeEnum','FConnectorShape','[Shape\x20Facade]:\x20Gradient\x20fill\x20requires\x20at\x20least\x20two\x20color\x20stops.','Tools','exports','left','\x20Shape\x20\x22'];_0x411f=function(){return _0x2491c2;};return _0x411f();}(function(_0x1dd449,_0xd4e37e){const _0x3b2184=_0x2afc,_0x491374=_0x1dd449();while(!![]){try{const _0x34a314=-parseInt(_0x3b2184(0x118))/0x1*(parseInt(_0x3b2184(0x8b))/0x2)+parseInt(_0x3b2184(0x13f))/0x3+-parseInt(_0x3b2184(0x126))/0x4+parseInt(_0x3b2184(0xde))/0x5*(-parseInt(_0x3b2184(0x128))/0x6)+parseInt(_0x3b2184(0x151))/0x7+-parseInt(_0x3b2184(0xd3))/0x8*(-parseInt(_0x3b2184(0xbe))/0x9)+parseInt(_0x3b2184(0x7e))/0xa*(parseInt(_0x3b2184(0xa8))/0xb);if(_0x34a314===_0xd4e37e)break;else _0x491374['push'](_0x491374['shift']());}catch(_0x576c6c){_0x491374['push'](_0x491374['shift']());}}}(_0x411f,0x8608b),function(_0x2b411d,_0x288f88){const _0xc622f2=_0x2afc;typeof exports==_0xc622f2(0x124)&&typeof module<'u'?_0x288f88(exports,require('@univerjs-pro/engine-shape'),require('@univerjs/core/facade'),require('@univerjs/core')):typeof define=='function'&&define[_0xc622f2(0xcd)]?define([_0xc622f2(0x147),_0xc622f2(0xac),_0xc622f2(0xef),_0xc622f2(0xec)],_0x288f88):(_0x2b411d=typeof globalThis<'u'?globalThis:_0x2b411d||self,_0x288f88(_0x2b411d[_0xc622f2(0x14a)]={},_0x2b411d[_0xc622f2(0x86)],_0x2b411d[_0xc622f2(0xfb)],_0x2b411d[_0xc622f2(0xdb)]));}(this,function(_0x47863a,_0x284558,_0xd11add,_0x10e1c2){const _0x16483e=_0x2afc;Object[_0x16483e(0x10f)](_0x47863a,Symbol[_0x16483e(0x9a)],{'value':_0x16483e(0x100)});var _0x2655b5=class extends _0xd11add['FEnum']{get[_0x16483e(0xc5)](){const _0x4c0d28=_0x16483e;return _0x284558[_0x4c0d28(0xc5)];}get[_0x16483e(0x14b)](){const _0x582711=_0x16483e;return _0x284558[_0x582711(0x14b)];}get[_0x16483e(0x106)](){const _0x452534=_0x16483e;return _0x284558[_0x452534(0x106)];}get[_0x16483e(0xa0)](){const _0x5ab111=_0x16483e;return _0x284558[_0x5ab111(0x143)];}get['ShapeImageSourceTypeEnum'](){const _0x4ba7fb=_0x16483e;return _0x284558[_0x4ba7fb(0xf6)];}get[_0x16483e(0x10a)](){const _0x213b3e=_0x16483e;return _0x284558[_0x213b3e(0x10a)];}get[_0x16483e(0x152)](){const _0x7c071=_0x16483e;return _0x284558[_0x7c071(0x152)];}get[_0x16483e(0x85)](){const _0x5e8f96=_0x16483e;return _0x284558[_0x5e8f96(0x85)];}get[_0x16483e(0xf5)](){const _0x5ac6f0=_0x16483e;return _0x284558[_0x5ac6f0(0xf5)];}get['ShapeOperatorEnum'](){const _0x4889f9=_0x16483e;return _0x284558[_0x4889f9(0xbd)];}get[_0x16483e(0x134)](){const _0x488897=_0x16483e;return _0x284558[_0x488897(0x134)];}get[_0x16483e(0x7f)](){const _0x3d7ed3=_0x16483e;return _0x284558[_0x3d7ed3(0x7f)];}get[_0x16483e(0x7d)](){const _0x2488b5=_0x16483e;return _0x284558[_0x2488b5(0x7d)];}get[_0x16483e(0xb4)](){const _0x5b3c4b=_0x16483e;return _0x284558[_0x5b3c4b(0xb4)];}get[_0x16483e(0x84)](){const _0x6ddd6b=_0x16483e;return _0x284558[_0x6ddd6b(0x84)];}};_0xd11add['FEnum'][_0x16483e(0x116)](_0x2655b5);function _0x519ac1(_0x44dfd6){const _0x62e586=_0x16483e;switch(_0x44dfd6){case _0x284558[_0x62e586(0x106)][_0x62e586(0xe4)]:return _0x62e586(0x11c);case _0x284558['ShapeGradientTypeEnum'][_0x62e586(0xd4)]:return _0x62e586(0x7c);case _0x284558[_0x62e586(0x106)][_0x62e586(0xb1)]:return _0x62e586(0x80);case _0x284558[_0x62e586(0x106)][_0x62e586(0x11e)]:default:return _0x62e586(0xe1);}}function _0x330669(_0x1c19db){const _0x4ebc4e=_0x16483e;return _0x1c19db===_0x284558[_0x4ebc4e(0x143)][_0x4ebc4e(0xa3)]?_0x4ebc4e(0x127):_0x4ebc4e(0xaf);}var _0x2be089=class{constructor(_0x2e6aed,_0x56872c){const _0x3106ea=_0x16483e;this[_0x3106ea(0xff)]=_0x2e6aed,this[_0x3106ea(0xa2)]=_0x56872c;}[_0x16483e(0xc6)](){const _0x50c027=_0x16483e;var _0x24b859;return(0x0,_0x284558[_0x50c027(0x9e)])((_0x24b859=this[_0x50c027(0x142)]())==null?void 0x0:_0x24b859[_0x50c027(0x11d)]);}[_0x16483e(0x8d)](){const _0x5d2b46=_0x16483e;var _0x2bcb3b,_0x150fe2;return(_0x2bcb3b=(_0x150fe2=this[_0x5d2b46(0xc6)]())==null?void 0x0:_0x150fe2[_0x5d2b46(0xa9)]())==null?null:_0x2bcb3b;}[_0x16483e(0xe2)](_0x49700f){const _0x5c391d=_0x16483e;return this[_0x5c391d(0xf7)](_0x179381=>({..._0x179381,'shapeText':(0x0,_0x284558[_0x5c391d(0x96)])(_0x179381[_0x5c391d(0x11d)],_0x49700f)})),this;}['setText'](_0x9c03a0){const _0x225bc8=_0x16483e;return this['_updateShapeData'](_0x518b2a=>({..._0x518b2a,'shapeText':(0x0,_0x284558['applyTextToShapeText'])(_0x518b2a[_0x225bc8(0x11d)],_0x9c03a0)})),this;}[_0x16483e(0xa4)](_0x3e2bda){const _0x22452a=_0x16483e;return this['_updateShapeData'](_0x4dd446=>({..._0x4dd446,'shapeText':(0x0,_0x284558[_0x22452a(0x115)])(_0x4dd446['shapeText'],_0x3e2bda)})),this;}[_0x16483e(0x83)](_0x30d87b,_0x16fafc){const _0x359aae=_0x16483e;return this[_0x359aae(0xa4)]({'cl':{'rgb':_0x30d87b},'textFill':{'type':'solid','color':_0x30d87b,'opacity':_0x16fafc}});}[_0x16483e(0x12c)](){const _0xd82e37=_0x16483e;return this[_0xd82e37(0xa4)]({'cl':{'rgb':'rgba(0,\x200,\x200,\x200)'},'textFill':{'type':_0xd82e37(0xdd)}});}[_0x16483e(0xfa)](_0x144e67,_0xa1edc0,_0x1e1b23){const _0xa5d7ad=_0x16483e;return _0xa1edc0[_0xa5d7ad(0x109)]<0x2?(console[_0xa5d7ad(0x98)]('[Shape\x20Text\x20Facade]:\x20Gradient\x20text\x20fill\x20requires\x20at\x20least\x20two\x20color\x20stops.'),this):this[_0xa5d7ad(0xa4)]({'cl':{'rgb':_0xa1edc0[0x0][_0xa5d7ad(0x14d)]},'textFill':{'type':_0xa5d7ad(0xe7),'gradient':{'type':_0x519ac1(_0x144e67),'angle':_0x1e1b23,'stops':_0xa1edc0[_0xa5d7ad(0x97)](({position:_0x285b0b,color:_0x45e731,opacity:_0x4a4c73})=>({'offset':_0x285b0b,'color':_0x45e731,'opacity':_0x4a4c73}))}}});}[_0x16483e(0x94)](_0x3b09ea,_0x11e616=_0x284558['ImageSourceTypeEnum'][_0x16483e(0xdc)],_0x190933={}){const _0x255aa7=_0x16483e;return this[_0x255aa7(0xa4)]({'textFill':{'type':'picture','picture':{'source':_0x3b09ea,'sourceType':_0x11e616,'opacity':_0x190933['opacity'],'mode':_0x330669(_0x190933[_0x255aa7(0x123)]),'scaleX':_0x190933[_0x255aa7(0x111)],'scaleY':_0x190933[_0x255aa7(0x135)],'offsetX':_0x190933[_0x255aa7(0xd1)],'offsetY':_0x190933[_0x255aa7(0xbf)]}}});}[_0x16483e(0xab)](_0x38ca13){const _0x3da1b7=_0x16483e;return this[_0x3da1b7(0xa4)]({'fs':_0x38ca13});}[_0x16483e(0x129)](_0x379031){const _0x463d09=_0x16483e;return this[_0x463d09(0xa4)]({'ff':_0x379031});}['setBold'](_0x4eaa67){const _0x97c4bc=_0x16483e;return this[_0x97c4bc(0xa4)]({'bl':_0x4eaa67?_0x10e1c2[_0x97c4bc(0xd2)]['TRUE']:_0x10e1c2[_0x97c4bc(0xd2)][_0x97c4bc(0x110)]});}[_0x16483e(0x93)](_0x164e50){const _0x186446=_0x16483e;return this[_0x186446(0xa4)]({'it':_0x164e50?_0x10e1c2[_0x186446(0xd2)]['TRUE']:_0x10e1c2[_0x186446(0xd2)][_0x186446(0x110)]});}[_0x16483e(0x10e)](_0x3bbd48){const _0x5c785f=_0x16483e;return this['setTextStyle']({'ul':{'s':_0x3bbd48?_0x10e1c2[_0x5c785f(0xd2)][_0x5c785f(0xcc)]:_0x10e1c2[_0x5c785f(0xd2)]['FALSE']}});}[_0x16483e(0x89)](_0x4feb9f){const _0x4df7c5=_0x16483e;return this[_0x4df7c5(0xa4)]({'st':{'s':_0x4feb9f?_0x10e1c2[_0x4df7c5(0xd2)]['TRUE']:_0x10e1c2[_0x4df7c5(0xd2)][_0x4df7c5(0x110)]}});}[_0x16483e(0x7a)](_0xef863c){const _0x610cd3=_0x16483e;return this[_0x610cd3(0xf7)](_0x108f01=>(0x0,_0x284558['applyShapeTextAlignment'])(_0x108f01,{'horizontalAlign':_0xef863c})),this;}[_0x16483e(0x14c)](_0x2d5b0d){const _0x2f2ab2=_0x16483e;return this[_0x2f2ab2(0xf7)](_0x1e242c=>(0x0,_0x284558[_0x2f2ab2(0xaa)])(_0x1e242c,{'verticalAlign':_0x2d5b0d})),this;}['getTextBoxOptions'](){const _0x5c5186=_0x16483e;let _0x51c512=this[_0x5c5186(0x142)]();return _0x51c512?(0x0,_0x284558[_0x5c5186(0x8f)])(_0x51c512):null;}[_0x16483e(0x122)](_0x2c91c3){const _0x42ed2c=_0x16483e;return this[_0x42ed2c(0xf7)](_0x381c35=>(0x0,_0x284558[_0x42ed2c(0x12f)])(_0x381c35,_0x2c91c3)),this;}[_0x16483e(0x95)](){const _0x17d64f=_0x16483e;return this[_0x17d64f(0xa2)][_0x17d64f(0x117)](_0x284558[_0x17d64f(0x71)])[_0x17d64f(0x117)](this[_0x17d64f(0xff)][_0x17d64f(0xfd)]);}[_0x16483e(0x142)](){const _0x52dd98=_0x16483e;let _0x375c8a=this[_0x52dd98(0x95)]();if(!_0x375c8a)return null;try{var _0x1ed600;return((_0x1ed600=_0x375c8a[_0x52dd98(0x132)](this['_shapeRef']))==null?void 0x0:_0x1ed600['shapeData'])||(console[_0x52dd98(0x98)](_0x52dd98(0x114)+this[_0x52dd98(0xff)]['shapeId']+'\x22\x20was\x20not\x20found.'),null);}catch(_0x282167){return console[_0x52dd98(0x98)](_0x52dd98(0xa6)+this[_0x52dd98(0xff)][_0x52dd98(0x9b)]+_0x52dd98(0xbb),_0x282167),null;}}['_updateShapeData'](_0x4d18ba){const _0x23d5a2=_0x16483e;let _0xad56cc=this[_0x23d5a2(0x95)]();if(!_0xad56cc)return!0x1;try{var _0x4ed0f7;let _0x5014ca=(_0x4ed0f7=_0xad56cc[_0x23d5a2(0x132)](this[_0x23d5a2(0xff)]))==null?void 0x0:_0x4ed0f7[_0x23d5a2(0xd6)];if(!_0x5014ca)return console[_0x23d5a2(0x98)]('[Shape\x20Text\x20Facade]:\x20Shape\x20\x22'+this[_0x23d5a2(0xff)][_0x23d5a2(0x9b)]+_0x23d5a2(0xcf)),!0x1;let _0x46a2b9=_0xad56cc[_0x23d5a2(0x14e)](this[_0x23d5a2(0xff)],{'shapeData':_0x4d18ba(_0x5014ca)});return _0x46a2b9||console[_0x23d5a2(0x98)](_0x23d5a2(0x130)+this[_0x23d5a2(0xff)][_0x23d5a2(0x9b)]+'\x22\x20text.'),_0x46a2b9;}catch(_0x4c1fe0){return console[_0x23d5a2(0x98)](_0x23d5a2(0x130)+this[_0x23d5a2(0xff)][_0x23d5a2(0x9b)]+_0x23d5a2(0xbb),_0x4c1fe0),!0x1;}}},_0x44cffa=class extends _0xd11add['FBase']{constructor(_0x297fef,_0x282e48){const _0x11ede3=_0x16483e;super(),this[_0x11ede3(0xff)]=_0x297fef,this[_0x11ede3(0xa2)]=_0x282e48;}[_0x16483e(0x14f)](){return!0x1;}['getId'](){const _0x549470=_0x16483e;return this['_shapeRef'][_0x549470(0x9b)];}['getName'](){const _0x5afaca=_0x16483e;var _0x39e934;return(_0x39e934=this[_0x5afaca(0xf9)]())==null?void 0x0:_0x39e934[_0x5afaca(0x13d)];}[_0x16483e(0x78)](_0x702556){return this['update']({'name':_0x702556});}['getDescription'](){const _0x1c4dbe=_0x16483e;var _0x28adf5;return(_0x28adf5=this['_getSnapshot']())==null?void 0x0:_0x28adf5[_0x1c4dbe(0x99)];}[_0x16483e(0xa1)](_0x544212){const _0x450fa4=_0x16483e;return this[_0x450fa4(0x107)]({'description':_0x544212});}['getHostType'](){const _0x45a527=_0x16483e;return this[_0x45a527(0xff)][_0x45a527(0xfd)];}[_0x16483e(0x77)](){const _0x51bb2c=_0x16483e;var _0x51e6a9,_0x1e7b9d;return(_0x51e6a9=(_0x1e7b9d=this[_0x51bb2c(0xf9)]())==null?void 0x0:_0x1e7b9d[_0x51bb2c(0x13b)])==null?null:_0x51e6a9;}[_0x16483e(0x10b)](){const _0x265ad4=_0x16483e;let _0x36c2fc=this['_getSnapshot']();return _0x36c2fc?_0x10e1c2['Tools'][_0x265ad4(0xad)](_0x36c2fc[_0x265ad4(0xd6)]):null;}[_0x16483e(0xe3)](){const _0x4944ca=_0x16483e;let _0x70f610=this[_0x4944ca(0xf9)]();return _0x70f610?_0x10e1c2[_0x4944ca(0x146)][_0x4944ca(0xad)](_0x70f610):null;}['getTransform'](){const _0x683332=_0x16483e;let _0x511a36=this[_0x683332(0xf9)]();return _0x511a36?{..._0x511a36[_0x683332(0xf3)]}:null;}[_0x16483e(0x81)](){const _0x378e86=_0x16483e;var _0x43395e,_0x4241b3;return(_0x43395e=(_0x4241b3=this[_0x378e86(0xf9)]())==null?void 0x0:_0x4241b3[_0x378e86(0x92)])==null?!0x1:_0x43395e;}[_0x16483e(0xc0)](_0x2b2332){const _0x593767=_0x16483e;return this[_0x593767(0x107)]({'visible':_0x2b2332});}['isSelectable'](){const _0x5e4f82=_0x16483e;var _0x5e89c8,_0x522118;return(_0x5e89c8=(_0x522118=this[_0x5e4f82(0xf9)]())==null?void 0x0:_0x522118['selectable'])==null?!0x1:_0x5e89c8;}[_0x16483e(0x153)](_0x101544){const _0x18fb72=_0x16483e;return this[_0x18fb72(0x107)]({'selectable':_0x101544});}[_0x16483e(0xca)](){const _0x249b14=_0x16483e;return this['_injector']['createInstance'](_0x2be089,this[_0x249b14(0xff)],this['_injector']);}[_0x16483e(0xc9)](){const _0x4d91a0=_0x16483e;let _0xd43ba2=this[_0x4d91a0(0x10b)]();return(_0xd43ba2==null?void 0x0:_0xd43ba2[_0x4d91a0(0x121)])===!0x0&&!!_0xd43ba2[_0x4d91a0(0xee)];}[_0x16483e(0xb9)](){const _0x4cbbf9=_0x16483e;var _0x522ccf,_0x28706d;return(_0x522ccf=(_0x28706d=this[_0x4cbbf9(0x10b)]())==null?void 0x0:_0x28706d[_0x4cbbf9(0xee)])==null?null:_0x522ccf;}[_0x16483e(0xcb)](_0x4db853){const _0x321997=_0x16483e;return this[_0x321997(0x102)](_0x1aca8c=>({..._0x1aca8c,'shapeType':_0x4db853}),_0x4db853);}[_0x16483e(0x158)](_0x25ffab){const _0x52126f=_0x16483e;let _0x43c86f=_0x10e1c2['Tools'][_0x52126f(0xad)](_0x25ffab);return this[_0x52126f(0x107)]({'shapeType':_0x43c86f['shapeType'],'shapeData':_0x43c86f});}[_0x16483e(0x140)](_0x107e65){const _0x13b7f7=_0x16483e;return this[_0x13b7f7(0x107)]({'transform':_0x107e65});}['setSize'](_0x99b26f,_0x431534){const _0x30c1f9=_0x16483e;return this[_0x30c1f9(0x140)]({'width':_0x99b26f,'height':_0x431534});}[_0x16483e(0xf2)](_0x4b2e2b){const _0x31faf9=_0x16483e;return this[_0x31faf9(0x140)]({'rotation':_0x4b2e2b});}[_0x16483e(0x12b)](_0x453aa7,_0x4854a0){const _0x22631a=_0x16483e;return this[_0x22631a(0x140)]({'left':_0x453aa7,'top':_0x4854a0});}[_0x16483e(0xdf)](_0x5c6d9e){const _0x43e18d=_0x16483e;let _0x99da6c=_0x10e1c2[_0x43e18d(0x146)][_0x43e18d(0xad)](_0x5c6d9e);return this[_0x43e18d(0x102)](_0x55189e=>({..._0x55189e,'isCustom':!0x0,'customGeometry':_0x99da6c}));}[_0x16483e(0x87)](){const _0x2e544a=_0x16483e;var _0x5502a8,_0x4270f8;return(_0x5502a8=(_0x4270f8=this[_0x2e544a(0x131)]())==null?void 0x0:_0x4270f8[_0x2e544a(0x112)]()[_0x2e544a(0x97)](_0x586237=>({..._0x586237})))==null?[]:_0x5502a8;}[_0x16483e(0x150)](){const _0x318bda=_0x16483e;var _0x5729bc,_0x531704;return(_0x5729bc=(_0x531704=this[_0x318bda(0x131)]())==null?void 0x0:_0x531704['getDrawingPoints']()[_0x318bda(0x97)](_0x1e3a45=>({..._0x1e3a45})))==null?[]:_0x5729bc;}[_0x16483e(0x88)](){const _0x2ccd13=_0x16483e;var _0x5e77b0;let _0x4c223b=(_0x5e77b0=this['_getGeometryModel']())==null?void 0x0:_0x5e77b0[_0x2ccd13(0x88)]();return _0x4c223b?{..._0x4c223b}:null;}['getEndConnectInfo'](){const _0x4661b4=_0x16483e;var _0x217571;let _0x3de4ba=(_0x217571=this[_0x4661b4(0x131)]())==null?void 0x0:_0x217571[_0x4661b4(0xb6)]();return _0x3de4ba?{..._0x3de4ba}:null;}[_0x16483e(0x113)](_0x53d682,_0x5a08e6){const _0x5395ea=_0x16483e;return this[_0x5395ea(0x102)](_0x55531c=>({..._0x55531c,'fill':{'fillType':_0x284558[_0x5395ea(0x14b)][_0x5395ea(0xda)],'color':_0x53d682,'opacity':_0x5a08e6}}));}[_0x16483e(0xfa)](_0x39fcba,_0x53e7a8,_0x17ed75){const _0x3ea436=_0x16483e;return _0x53e7a8[_0x3ea436(0x109)]<0x2?(console['warn'](_0x3ea436(0x145)),this):this[_0x3ea436(0x102)](_0x5370e4=>({..._0x5370e4,'fill':{'fillType':_0x284558[_0x3ea436(0x14b)][_0x3ea436(0x12a)],'gradientType':_0x39fcba,'gradientStops':_0x10e1c2[_0x3ea436(0x146)]['deepClone'](_0x53e7a8),'gradientAngle':_0x17ed75}}));}[_0x16483e(0x94)](_0x5637ac,_0x33148e,_0x8a142={}){const _0xb4a90f=_0x16483e;return this['_patchShapeData'](_0x2a8a0c=>({..._0x2a8a0c,'fill':{..._0x10e1c2[_0xb4a90f(0x146)]['deepClone'](_0x8a142),'fillType':_0x284558['ShapeFillEnum'][_0xb4a90f(0x90)],'fillImageSource':_0x5637ac,'fillImageSourceType':_0x33148e}}));}[_0x16483e(0x12c)](){const _0x33eeec=_0x16483e;return this[_0x33eeec(0x102)](_0x33ab77=>({..._0x33ab77,'fill':{'fillType':_0x284558[_0x33eeec(0x14b)][_0x33eeec(0x105)]}}));}[_0x16483e(0x11a)](_0x2e876d){const _0x5624d1=_0x16483e;return this[_0x5624d1(0x102)](_0x4170cc=>({..._0x4170cc,'stroke':_0x10e1c2[_0x5624d1(0x146)][_0x5624d1(0xad)](_0x2e876d)}));}[_0x16483e(0x73)](_0x1d91ab){const _0x224838=_0x16483e;return this[_0x224838(0x108)](_0x52c52b=>({..._0x52c52b,'color':_0x1d91ab,'lineStrokeType':_0x52c52b[_0x224838(0xc3)]===_0x284558[_0x224838(0x10a)][_0x224838(0xd5)]?_0x284558[_0x224838(0x10a)][_0x224838(0xf4)]:_0x52c52b[_0x224838(0xc3)]}));}[_0x16483e(0x91)](_0x3eb8a5){const _0x3d7afb=_0x16483e;return this['_patchStroke'](_0x7506bb=>({..._0x7506bb,'width':_0x3eb8a5,'lineStrokeType':_0x7506bb['lineStrokeType']===_0x284558['ShapeLineTypeEnum'][_0x3d7afb(0xd5)]?_0x284558[_0x3d7afb(0x10a)]['SolidLine']:_0x7506bb[_0x3d7afb(0xc3)]}));}['setStrokeOpacity'](_0x4259ad){const _0x102b17=_0x16483e;return this[_0x102b17(0x108)](_0x243963=>({..._0x243963,'opacity':_0x4259ad}));}[_0x16483e(0x104)](_0x63d63f){const _0x1fd16d=_0x16483e;return this[_0x1fd16d(0x108)](_0x1f1f69=>({..._0x1f1f69,'dashType':_0x63d63f}));}['setStrokeLineJoinType'](_0x26102e){const _0x3ab0d1=_0x16483e;return this[_0x3ab0d1(0x108)](_0x54f1fb=>({..._0x54f1fb,'lineJoinType':_0x26102e}));}[_0x16483e(0x155)](_0x4dbbf5){return this['_patchStroke'](_0x5c1213=>({..._0x5c1213,'capType':_0x4dbbf5}));}[_0x16483e(0xc7)](_0x225a8b){const _0x140fe9=_0x16483e;return this[_0x140fe9(0x108)](_0x24a483=>({..._0x24a483,'lineStrokeType':_0x225a8b}));}[_0x16483e(0x107)](_0x3f224a){const _0x1345bb=_0x16483e;var _0x196401,_0x4b521f,_0x234011;let _0x2dad5e=_0x3f224a[_0x1345bb(0xd6)],_0x4727f5=_0x2dad5e&&(_0x1345bb(0x13c)in _0x2dad5e||_0x1345bb(0xd0)in _0x2dad5e)?this[_0x1345bb(0x77)]():null,_0x4e6eac=(_0x196401=(_0x4b521f=_0x3f224a['shapeType'])==null?(_0x234011=_0x3f224a[_0x1345bb(0xd6)])==null?void 0x0:_0x234011[_0x1345bb(0x13b)]:_0x4b521f)==null?_0x4727f5:_0x196401,_0x19b940=_0x16f453(_0x3f224a,_0x4e6eac!==null&&(0x0,_0x284558[_0x1345bb(0x14f)])(_0x4e6eac));return _0x19b940?(console['warn'](_0x1345bb(0xeb)+_0x19b940),this):(this['_mutate'](_0x1345bb(0x107),_0x5df5ee=>_0x5df5ee[_0x1345bb(0x14e)](this[_0x1345bb(0xff)],_0x3f224a)),this);}[_0x16483e(0x70)](){const _0x582920=_0x16483e;return this[_0x582920(0x125)]('remove',_0x450bdb=>_0x450bdb[_0x582920(0x9f)](this[_0x582920(0xff)]));}[_0x16483e(0x82)](){const _0x51457a=_0x16483e;return this['_mutate']('bring\x20to\x20front',_0x2e5569=>_0x2e5569[_0x51457a(0x82)](this[_0x51457a(0xff)])),this;}[_0x16483e(0xf0)](){const _0x3ca925=_0x16483e;return this['_mutate'](_0x3ca925(0x156),_0x41daf5=>_0x41daf5['bringForward'](this[_0x3ca925(0xff)])),this;}['sendBackward'](){const _0x10d85a=_0x16483e;return this[_0x10d85a(0x125)](_0x10d85a(0xce),_0x159e1a=>_0x159e1a[_0x10d85a(0xb8)](this[_0x10d85a(0xff)])),this;}[_0x16483e(0xb7)](){const _0x5d4966=_0x16483e;return this[_0x5d4966(0x125)]('send\x20to\x20back',_0x1c220d=>_0x1c220d[_0x5d4966(0xb7)](this['_shapeRef'])),this;}['_getAdapter'](){const _0x3054c0=_0x16483e;return this[_0x3054c0(0xa2)]['get'](_0x284558[_0x3054c0(0x71)])[_0x3054c0(0x117)](this['_shapeRef'][_0x3054c0(0xfd)]);}[_0x16483e(0x102)](_0x3081a5,_0x369c03){const _0x15c0ff=_0x16483e;let _0x3ecf2e=this[_0x15c0ff(0x10b)]();return _0x3ecf2e?this[_0x15c0ff(0x107)]({'shapeType':_0x369c03,'shapeData':_0x3081a5(_0x3ecf2e)}):this;}[_0x16483e(0x108)](_0x835177){const _0x266424=_0x16483e;return this[_0x266424(0x102)](_0x4d6184=>{const _0x27e95d=_0x266424;var _0x54d361;return{..._0x4d6184,'stroke':_0x835177((_0x54d361=_0x4d6184[_0x27e95d(0x12e)])==null?{}:_0x54d361)};});}[_0x16483e(0xf9)](){const _0x2dbdf0=_0x16483e;let _0x1a9cd3=this[_0x2dbdf0(0x95)]();if(!_0x1a9cd3)return null;try{return _0x1a9cd3['getShape'](this[_0x2dbdf0(0xff)])||(console[_0x2dbdf0(0x98)](_0x2dbdf0(0x137)+this[_0x2dbdf0(0xff)]['shapeId']+_0x2dbdf0(0xcf)),null);}catch(_0x41a181){return console[_0x2dbdf0(0x98)]('[Shape\x20Facade]:\x20Failed\x20to\x20read\x20Shape\x20\x22'+this['_shapeRef'][_0x2dbdf0(0x9b)]+'\x22.',_0x41a181),null;}}[_0x16483e(0x131)](){const _0x2615f5=_0x16483e;let _0x54545c=this[_0x2615f5(0xf9)]();if(!_0x54545c)return null;try{let _0x17ec69=new _0x284558[(_0x2615f5(0xe8))](_0x54545c[_0x2615f5(0x13b)],_0x54545c[_0x2615f5(0x9b)],_0x54545c[_0x2615f5(0xd6)]);return _0x17ec69[_0x2615f5(0x8a)]({'width':_0x54545c[_0x2615f5(0xf3)][_0x2615f5(0x141)],'height':_0x54545c['transform'][_0x2615f5(0x76)]}),_0x17ec69;}catch(_0x33a45c){return console[_0x2615f5(0x98)](_0x2615f5(0xc4)+this[_0x2615f5(0xff)]['shapeId']+'\x22.',_0x33a45c),null;}}[_0x16483e(0x125)](_0x5e687e,_0x547eee){const _0x4e28af=_0x16483e;let _0x1214e6=this[_0x4e28af(0x95)]();if(!_0x1214e6)return!0x1;try{let _0x54e82c=_0x547eee(_0x1214e6);return _0x54e82c||console['warn'](_0x4e28af(0xfc)+_0x5e687e+_0x4e28af(0x149)+this[_0x4e28af(0xff)][_0x4e28af(0x9b)]+'\x22.'),_0x54e82c;}catch(_0x4d856f){return console[_0x4e28af(0x98)](_0x4e28af(0xfc)+_0x5e687e+'\x20Shape\x20\x22'+this['_shapeRef'][_0x4e28af(0x9b)]+'\x22.',_0x4d856f),!0x1;}}};function _0x16f453(_0x542139,_0x16b458=!0x1){const _0x501b98=_0x16483e;for(let _0x539402 of['visible','selectable']){let _0x41861b=_0x542139[_0x539402];if(_0x41861b!==void 0x0&&typeof _0x41861b!=_0x501b98(0x159))return _0x501b98(0xe6)+_0x539402+_0x501b98(0x8c);}let _0x1d5f4e=_0x542139['transform'];if(_0x1d5f4e){for(let _0x58a44d of[_0x501b98(0x148),_0x501b98(0xfe),'width','height',_0x501b98(0x10d)]){let _0x1d913f=_0x1d5f4e[_0x58a44d];if(_0x1d913f!==void 0x0&&!Number[_0x501b98(0xa7)](_0x1d913f))return _0x501b98(0xba)+_0x58a44d+'\x22\x20must\x20be\x20finite.';}if(_0x1d5f4e['width']!==void 0x0&&_0x1d5f4e[_0x501b98(0x141)]<=0x0)return _0x501b98(0xb3);if(_0x1d5f4e[_0x501b98(0x76)]!==void 0x0&&_0x1d5f4e[_0x501b98(0x76)]<=0x0)return _0x501b98(0xb2);for(let _0x4b8b18 of[_0x501b98(0xa5),_0x501b98(0x139)]){let _0x5a3e47=_0x1d5f4e[_0x4b8b18];if(_0x5a3e47!==void 0x0&&typeof _0x5a3e47!=_0x501b98(0x159))return _0x501b98(0xba)+_0x4b8b18+_0x501b98(0x8c);}}let _0x554214=_0x542139['shapeData'];return!_0x16b458&&_0x554214&&(_0x501b98(0x13c)in _0x554214||'points'in _0x554214)?'Connector\x20relationships\x20and\x20route\x20points\x20require\x20FConnectorShape.':null;}var _0x53b29c=class extends _0x44cffa{[_0x16483e(0x14f)](){return!0x0;}[_0x16483e(0x136)](){const _0x2bc58f=_0x16483e;let _0x5dd446=this[_0x2bc58f(0x101)]();return _0x5dd446?_0x10e1c2[_0x2bc58f(0x146)][_0x2bc58f(0xad)](_0x5dd446[_0x2bc58f(0xc8)]):null;}[_0x16483e(0x11b)](){const _0x5b914a=_0x16483e;let _0x1153b2=this[_0x5b914a(0x101)]();return _0x1153b2?_0x10e1c2[_0x5b914a(0x146)][_0x5b914a(0xad)](_0x1153b2[_0x5b914a(0x13e)]):null;}[_0x16483e(0xf1)](){const _0x2490c6=_0x16483e;let _0x1878f6=this['_getConnectorSnapshot']();return _0x1878f6?_0x10e1c2[_0x2490c6(0x146)]['deepClone'](_0x1878f6[_0x2490c6(0xc2)]):null;}[_0x16483e(0x157)](){const _0x1dc7e0=_0x16483e;let _0x3246f0=this[_0x1dc7e0(0x101)]();return _0x3246f0?_0x10e1c2[_0x1dc7e0(0x146)]['deepClone'](_0x3246f0[_0x1dc7e0(0x10c)]):null;}[_0x16483e(0x7b)](){const _0x2ea176=_0x16483e;let _0x583e95=this[_0x2ea176(0x101)]();return _0x583e95?_0x10e1c2[_0x2ea176(0x146)][_0x2ea176(0xad)](_0x583e95['endArrow']):null;}[_0x16483e(0xcb)](_0x20aa58){const _0x4129b7=_0x16483e;return(0x0,_0x284558['isConnectorShape'])(_0x20aa58)?super[_0x4129b7(0xcb)](_0x20aa58):(console['warn']('[Shape\x20Facade]:\x20Connector\x20Shape\x20\x22'+this[_0x4129b7(0xff)][_0x4129b7(0x9b)]+_0x4129b7(0xd9)),this);}[_0x16483e(0x158)](_0x2b9768){const _0x131b0c=_0x16483e;return _0x2b9768['shapeType']!==void 0x0&&!(0x0,_0x284558[_0x131b0c(0x14f)])(_0x2b9768[_0x131b0c(0x13b)])?(console[_0x131b0c(0x98)](_0x131b0c(0x75)+this[_0x131b0c(0xff)][_0x131b0c(0x9b)]+_0x131b0c(0x120)),this):super[_0x131b0c(0x158)](_0x2b9768);}['bindStart'](_0x4aeced,_0x424fb1){const _0x45927c=_0x16483e;return this[_0x45927c(0xbc)](_0x45927c(0xc8),_0x4aeced,_0x424fb1),this;}[_0x16483e(0x154)](_0x26c4ef,_0x47c7be){const _0x59fa95=_0x16483e;return this[_0x59fa95(0xbc)](_0x59fa95(0x13e),_0x26c4ef,_0x47c7be),this;}['unbindStart'](){const _0x3831d6=_0x16483e;return this[_0x3831d6(0x119)]('unbind\x20start',_0x2224b0=>_0x2224b0[_0x3831d6(0xed)](this[_0x3831d6(0xff)])),this;}[_0x16483e(0x8e)](){const _0x268a5b=_0x16483e;return this[_0x268a5b(0x119)](_0x268a5b(0xea),_0x65c6e7=>_0x65c6e7[_0x268a5b(0x8e)](this[_0x268a5b(0xff)])),this;}[_0x16483e(0xd7)](_0x5e5b98){const _0x2f1a29=_0x16483e;return _0x22ebda(_0x5e5b98,this[_0x2f1a29(0xff)][_0x2f1a29(0x9b)])&&this[_0x2f1a29(0x119)](_0x2f1a29(0xb5),_0x4f2e36=>_0x4f2e36['setStartPoint'](this[_0x2f1a29(0xff)],_0x5e5b98)),this;}[_0x16483e(0x138)](_0x565df7){const _0x43bffd=_0x16483e;return _0x22ebda(_0x565df7,this[_0x43bffd(0xff)]['shapeId'])&&this['_mutateConnector'](_0x43bffd(0x103),_0x1c3d5b=>_0x1c3d5b[_0x43bffd(0x138)](this[_0x43bffd(0xff)],_0x565df7)),this;}[_0x16483e(0x9c)](_0xa16f3d){const _0x22fdd9=_0x16483e;return _0xa16f3d[_0x22fdd9(0xf8)](_0x5199cc=>_0x22ebda(_0x5199cc,this[_0x22fdd9(0xff)][_0x22fdd9(0x9b)]))&&this[_0x22fdd9(0x119)](_0x22fdd9(0xe0),_0x4499e6=>_0x4499e6[_0x22fdd9(0x9c)](this[_0x22fdd9(0xff)],_0xa16f3d)),this;}['setStartArrow'](_0x460fd1,_0x461341){const _0x7b643d=_0x16483e;return this['_mutateConnector'](_0x7b643d(0xae),_0x38271d=>_0x38271d[_0x7b643d(0xd8)](this[_0x7b643d(0xff)],_0x460fd1,_0x461341)),this;}[_0x16483e(0xe9)](_0x1bee7d,_0x1b3347){const _0x16b290=_0x16483e;return this[_0x16b290(0x119)](_0x16b290(0x72),_0x1f3ffc=>_0x1f3ffc[_0x16b290(0xe9)](this[_0x16b290(0xff)],_0x1bee7d,_0x1b3347)),this;}[_0x16483e(0x11f)](){const _0x1a3244=_0x16483e;return this[_0x1a3244(0xa2)][_0x1a3244(0x117)](_0x284558[_0x1a3244(0xe5)]);}[_0x16483e(0x101)](){const _0x195b57=_0x16483e;let _0x1739e6=this[_0x195b57(0x11f)]();if(!_0x1739e6)return null;try{return _0x1739e6[_0x195b57(0x79)](this[_0x195b57(0xff)])||(console[_0x195b57(0x98)](_0x195b57(0x75)+this[_0x195b57(0xff)][_0x195b57(0x9b)]+'\x22\x20was\x20not\x20found.'),null);}catch(_0x5bdd91){return console[_0x195b57(0x98)](_0x195b57(0x9d)+this[_0x195b57(0xff)]['shapeId']+'\x22.',_0x5bdd91),null;}}[_0x16483e(0xbc)](_0x5c9efc,_0x2dcd4d,_0x99917){const _0x4e95c2=_0x16483e;if(!_0x2dcd4d||!Number[_0x4e95c2(0x74)](_0x99917)||_0x99917<0x0)return console['warn'](_0x4e95c2(0xb0)+this[_0x4e95c2(0xff)][_0x4e95c2(0x9b)]+'\x22\x20binding\x20requires\x20a\x20target\x20Shape\x20ID\x20and\x20a\x20non-negative\x20connection\x20site\x20index.'),!0x1;let _0x4f451a={'shapeId':_0x2dcd4d,'cxnIndex':_0x99917};return this[_0x4e95c2(0x119)](_0x4e95c2(0x6f)+_0x5c9efc,_0xcb78a0=>_0x5c9efc===_0x4e95c2(0xc8)?_0xcb78a0[_0x4e95c2(0x133)](this[_0x4e95c2(0xff)],_0x4f451a):_0xcb78a0['bindEnd'](this['_shapeRef'],_0x4f451a));}[_0x16483e(0x119)](_0x32c0a4,_0x51b6f7){const _0x57f136=_0x16483e;let _0x5310c2=this[_0x57f136(0x11f)]();if(!_0x5310c2)return!0x1;try{let _0x1146bc=_0x51b6f7(_0x5310c2);return _0x1146bc||console[_0x57f136(0x98)]('[Shape\x20Facade]:\x20Failed\x20to\x20'+_0x32c0a4+_0x57f136(0x12d)+this[_0x57f136(0xff)][_0x57f136(0x9b)]+'\x22.'),_0x1146bc;}catch(_0x261d81){return console[_0x57f136(0x98)](_0x57f136(0xfc)+_0x32c0a4+_0x57f136(0x12d)+this[_0x57f136(0xff)][_0x57f136(0x9b)]+'\x22.',_0x261d81),!0x1;}}};function _0x22ebda(_0x1ddff1,_0x2509df){const _0x26f6e2=_0x16483e;return!Number[_0x26f6e2(0xa7)](_0x1ddff1['x'])||!Number[_0x26f6e2(0xa7)](_0x1ddff1['y'])?(console[_0x26f6e2(0x98)](_0x26f6e2(0xb0)+_0x2509df+'\x22\x20points\x20must\x20contain\x20finite\x20coordinates.'),!0x1):!0x0;}_0x47863a[_0x16483e(0x144)]=_0x53b29c,_0x47863a[_0x16483e(0xc1)]=_0x44cffa,_0x47863a[_0x16483e(0x13a)]=_0x2be089;}));