@univerjs-pro/engine-shape 1.0.0-alpha.3 → 1.0.0-alpha.5
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/lib/cjs/facade.js +1 -0
- package/lib/cjs/index.js +1 -1
- package/lib/es/facade.js +1 -0
- package/lib/es/index.js +1 -1
- package/lib/facade.js +1 -0
- package/lib/index.js +1 -1
- package/lib/types/config/config.d.ts +5 -0
- package/lib/types/facade/f-connector-shape.d.ts +257 -0
- package/lib/types/facade/f-enum.d.ts +246 -0
- package/lib/types/facade/f-shape-text.d.ts +281 -0
- package/lib/types/facade/f-shape.d.ts +625 -0
- package/lib/types/facade/index.d.ts +6 -0
- package/lib/types/index.d.ts +15 -3
- package/lib/types/models/shape-model.d.ts +1 -1
- package/lib/types/plugin.d.ts +13 -0
- package/lib/types/services/connector-shape-host-adapter.d.ts +40 -0
- package/lib/types/services/connector-shape-host-adapter.service.d.ts +55 -0
- package/lib/types/services/shape-host-adapter.service.d.ts +103 -0
- package/lib/types/shape-type.d.ts +72 -19
- package/lib/types/utils/connector.util.d.ts +15 -0
- package/lib/types/utils/shape-shadow.util.d.ts +8 -0
- package/lib/types/utils/shape-text-behavior.util.d.ts +10 -2
- package/lib/types/utils/shape-text-converter.d.ts +14 -0
- package/lib/umd/facade.js +1 -0
- package/lib/umd/index.js +1 -1
- package/package.json +15 -2
|
@@ -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
|
|
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
|
|
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
|
-
|
|
559
|
-
|
|
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
|
-
|
|
601
|
-
|
|
602
|
-
|
|
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
|
|
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
|
|
665
|
+
dataModel?: IShapeTextDataModel;
|
|
619
666
|
}
|
|
620
|
-
export type IShapeTextData
|
|
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
|
|
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(_0x403112,_0x2cc63b){const _0x367855=_0x2f0c,_0x5c03be=_0x403112();while(!![]){try{const _0x2540fd=parseInt(_0x367855(0xc7))/0x1*(parseInt(_0x367855(0xa4))/0x2)+-parseInt(_0x367855(0xaa))/0x3*(-parseInt(_0x367855(0x90))/0x4)+parseInt(_0x367855(0xef))/0x5+parseInt(_0x367855(0x135))/0x6*(parseInt(_0x367855(0x11a))/0x7)+-parseInt(_0x367855(0xbd))/0x8*(parseInt(_0x367855(0xb8))/0x9)+parseInt(_0x367855(0xa9))/0xa*(-parseInt(_0x367855(0x110))/0xb)+-parseInt(_0x367855(0xf8))/0xc*(-parseInt(_0x367855(0xa7))/0xd);if(_0x2540fd===_0x2cc63b)break;else _0x5c03be['push'](_0x5c03be['shift']());}catch(_0x10fe45){_0x5c03be['push'](_0x5c03be['shift']());}}}(_0x726c,0x1f9db),function(_0x1f96b5,_0x2507de){const _0x4a6e72=_0x2f0c;typeof exports==_0x4a6e72(0x13e)&&typeof module<'u'?_0x2507de(exports,require('@univerjs-pro/engine-shape'),require('@univerjs/core/facade'),require('@univerjs/core')):typeof define==_0x4a6e72(0x111)&&define['amd']?define(['exports','@univerjs-pro/engine-shape','@univerjs/core/facade',_0x4a6e72(0x85)],_0x2507de):(_0x1f96b5=typeof globalThis<'u'?globalThis:_0x1f96b5||self,_0x2507de(_0x1f96b5[_0x4a6e72(0xe7)]={},_0x1f96b5['UniverProEngineShape'],_0x1f96b5[_0x4a6e72(0x101)],_0x1f96b5[_0x4a6e72(0xe2)]));}(this,function(_0x45a3d5,_0xa28743,_0x23a7b7,_0x4d548f){const _0x30e99e=_0x2f0c;Object[_0x30e99e(0xb9)](_0x45a3d5,Symbol[_0x30e99e(0x81)],{'value':_0x30e99e(0x12f)});var _0x11663c=class extends _0x23a7b7['FEnum']{get[_0x30e99e(0xa1)](){const _0x406db5=_0x30e99e;return _0xa28743[_0x406db5(0xa1)];}get[_0x30e99e(0x96)](){const _0x13ccd9=_0x30e99e;return _0xa28743[_0x13ccd9(0x96)];}get['ShapeGradientTypeEnum'](){const _0x2bb07a=_0x30e99e;return _0xa28743[_0x2bb07a(0x139)];}get[_0x30e99e(0xb6)](){const _0x463cc3=_0x30e99e;return _0xa28743[_0x463cc3(0x105)];}get[_0x30e99e(0xd1)](){const _0x5baccb=_0x30e99e;return _0xa28743[_0x5baccb(0xd3)];}get[_0x30e99e(0xaf)](){return _0xa28743['ShapeLineTypeEnum'];}get[_0x30e99e(0xe6)](){const _0x52e6f3=_0x30e99e;return _0xa28743[_0x52e6f3(0xe6)];}get[_0x30e99e(0xc3)](){const _0x762b55=_0x30e99e;return _0xa28743[_0x762b55(0xc3)];}get['ShapeLineJoinEnum'](){return _0xa28743['ShapeLineJoinEnum'];}get[_0x30e99e(0x116)](){const _0x365561=_0x30e99e;return _0xa28743[_0x365561(0x116)];}get['ShapeArrowTypeEnum'](){const _0x2a3772=_0x30e99e;return _0xa28743[_0x2a3772(0x107)];}get[_0x30e99e(0xdc)](){const _0x2b8527=_0x30e99e;return _0xa28743[_0x2b8527(0xdc)];}get[_0x30e99e(0xd7)](){const _0xfaee20=_0x30e99e;return _0xa28743[_0xfaee20(0xd7)];}get[_0x30e99e(0xb3)](){return _0xa28743['ShapeTextDirection'];}get[_0x30e99e(0x147)](){const _0x309340=_0x30e99e;return _0xa28743[_0x309340(0x147)];}};_0x23a7b7[_0x30e99e(0x102)]['extend'](_0x11663c);function _0x51d53d(_0x58481d){const _0x3c165e=_0x30e99e;switch(_0x58481d){case _0xa28743[_0x3c165e(0x139)][_0x3c165e(0x118)]:return _0x3c165e(0x122);case _0xa28743[_0x3c165e(0x139)]['Angular']:return'angular';case _0xa28743['ShapeGradientTypeEnum'][_0x3c165e(0xf9)]:return _0x3c165e(0x7f);case _0xa28743[_0x3c165e(0x139)][_0x3c165e(0xd5)]:default:return _0x3c165e(0xa0);}}function _0x43dd0a(_0x3e1f22){const _0x4ac664=_0x30e99e;return _0x3e1f22===_0xa28743['ImageFillModeEnum'][_0x4ac664(0x87)]?'tile':_0x4ac664(0xea);}var _0x5d6d4d=class{constructor(_0x5781ea,_0x1afdb2){const _0x84fa91=_0x30e99e;this['_shapeRef']=_0x5781ea,this[_0x84fa91(0xf3)]=_0x1afdb2;}[_0x30e99e(0xcd)](){const _0x50716a=_0x30e99e;var _0x1e7d39;return(0x0,_0xa28743['shapeTextToRichTextValue'])((_0x1e7d39=this[_0x50716a(0x117)]())==null?void 0x0:_0x1e7d39[_0x50716a(0x7e)]);}['getPlainText'](){const _0x9ecb31=_0x30e99e;var _0x4ea82e,_0x114fd4;return(_0x4ea82e=(_0x114fd4=this[_0x9ecb31(0xcd)]())==null?void 0x0:_0x114fd4[_0x9ecb31(0xb2)]())==null?null:_0x4ea82e;}[_0x30e99e(0xd8)](_0x46a611){const _0x4ce1e5=_0x30e99e;return this[_0x4ce1e5(0x128)](_0x566031=>({..._0x566031,'shapeText':(0x0,_0xa28743[_0x4ce1e5(0x108)])(_0x566031[_0x4ce1e5(0x7e)],_0x46a611)})),this;}['setText'](_0xaae9b6){const _0x288acc=_0x30e99e;return this[_0x288acc(0x128)](_0x36ac6e=>({..._0x36ac6e,'shapeText':(0x0,_0xa28743['applyTextToShapeText'])(_0x36ac6e['shapeText'],_0xaae9b6)})),this;}[_0x30e99e(0xcb)](_0x3be142){const _0x5eae39=_0x30e99e;return this[_0x5eae39(0x128)](_0x5ccdd4=>({..._0x5ccdd4,'shapeText':(0x0,_0xa28743['applyShapeTextStyle'])(_0x5ccdd4[_0x5eae39(0x7e)],_0x3be142)})),this;}[_0x30e99e(0x109)](_0x1aa637,_0x59ee45){const _0x511a60=_0x30e99e;return this['setTextStyle']({'cl':{'rgb':_0x1aa637},'textFill':{'type':_0x511a60(0xc2),'color':_0x1aa637,'opacity':_0x59ee45}});}[_0x30e99e(0x9c)](){const _0x370a5d=_0x30e99e;return this[_0x370a5d(0xcb)]({'cl':{'rgb':_0x370a5d(0xfd)},'textFill':{'type':_0x370a5d(0xad)}});}[_0x30e99e(0x143)](_0x5a8f9b,_0x1b0675,_0x504398){const _0x5e8532=_0x30e99e;return _0x1b0675[_0x5e8532(0xe3)]<0x2?(console[_0x5e8532(0x127)](_0x5e8532(0x98)),this):this[_0x5e8532(0xcb)]({'cl':{'rgb':_0x1b0675[0x0][_0x5e8532(0x136)]},'textFill':{'type':_0x5e8532(0xa8),'gradient':{'type':_0x51d53d(_0x5a8f9b),'angle':_0x504398,'stops':_0x1b0675[_0x5e8532(0xb1)](({position:_0x543320,color:_0x39298e,opacity:_0x482fa7})=>({'offset':_0x543320,'color':_0x39298e,'opacity':_0x482fa7}))}}});}[_0x30e99e(0x119)](_0x385556,_0x5df3c8=_0xa28743[_0x30e99e(0xd3)][_0x30e99e(0x11b)],_0x4e3f4f={}){const _0x399a37=_0x30e99e;return this[_0x399a37(0xcb)]({'textFill':{'type':_0x399a37(0xe4),'picture':{'source':_0x385556,'sourceType':_0x5df3c8,'opacity':_0x4e3f4f[_0x399a37(0x129)],'mode':_0x43dd0a(_0x4e3f4f['mode']),'scaleX':_0x4e3f4f['scaleX'],'scaleY':_0x4e3f4f['scaleY'],'offsetX':_0x4e3f4f[_0x399a37(0x113)],'offsetY':_0x4e3f4f[_0x399a37(0xc6)]}}});}[_0x30e99e(0x10c)](_0x6988ee){return this['setTextStyle']({'fs':_0x6988ee});}['setFontFamily'](_0x12c1c8){const _0x41ac78=_0x30e99e;return this[_0x41ac78(0xcb)]({'ff':_0x12c1c8});}['setBold'](_0xb74fc2){const _0x36de33=_0x30e99e;return this[_0x36de33(0xcb)]({'bl':_0xb74fc2?_0x4d548f[_0x36de33(0x97)][_0x36de33(0xcf)]:_0x4d548f[_0x36de33(0x97)][_0x36de33(0x92)]});}['setItalic'](_0x2772b2){const _0x41da3c=_0x30e99e;return this[_0x41da3c(0xcb)]({'it':_0x2772b2?_0x4d548f[_0x41da3c(0x97)][_0x41da3c(0xcf)]:_0x4d548f[_0x41da3c(0x97)][_0x41da3c(0x92)]});}['setUnderline'](_0x3d454c){const _0x33d8c8=_0x30e99e;return this[_0x33d8c8(0xcb)]({'ul':{'s':_0x3d454c?_0x4d548f[_0x33d8c8(0x97)][_0x33d8c8(0xcf)]:_0x4d548f['BooleanNumber'][_0x33d8c8(0x92)]}});}['setStrikethrough'](_0x10661f){const _0x2e7739=_0x30e99e;return this[_0x2e7739(0xcb)]({'st':{'s':_0x10661f?_0x4d548f['BooleanNumber'][_0x2e7739(0xcf)]:_0x4d548f[_0x2e7739(0x97)][_0x2e7739(0x92)]}});}[_0x30e99e(0xc4)](_0x309fb1){const _0x305623=_0x30e99e;return this[_0x305623(0x128)](_0x1ad484=>(0x0,_0xa28743[_0x305623(0x9f)])(_0x1ad484,{'horizontalAlign':_0x309fb1})),this;}[_0x30e99e(0xa2)](_0x1560d3){const _0x10c2ac=_0x30e99e;return this[_0x10c2ac(0x128)](_0x178709=>(0x0,_0xa28743[_0x10c2ac(0x9f)])(_0x178709,{'verticalAlign':_0x1560d3})),this;}[_0x30e99e(0x146)](){const _0x117e5d=_0x30e99e;let _0xa1f15b=this[_0x117e5d(0x117)]();return _0xa1f15b?(0x0,_0xa28743[_0x117e5d(0x12a)])(_0xa1f15b):null;}[_0x30e99e(0x8c)](_0x5394d9){const _0x54615e=_0x30e99e;return this[_0x54615e(0x128)](_0xb433df=>(0x0,_0xa28743[_0x54615e(0xdd)])(_0xb433df,_0x5394d9)),this;}[_0x30e99e(0x13b)](){const _0x1aaa28=_0x30e99e;return this[_0x1aaa28(0xf3)]['get'](_0xa28743[_0x1aaa28(0x133)])['get'](this['_shapeRef'][_0x1aaa28(0x91)]);}[_0x30e99e(0x117)](){const _0xd7cc04=_0x30e99e;let _0x1d7d6d=this[_0xd7cc04(0x13b)]();if(!_0x1d7d6d)return null;try{var _0x55fffb;return((_0x55fffb=_0x1d7d6d['getShape'](this[_0xd7cc04(0x115)]))==null?void 0x0:_0x55fffb[_0xd7cc04(0xab)])||(console[_0xd7cc04(0x127)](_0xd7cc04(0x150)+this[_0xd7cc04(0x115)]['shapeId']+'\x22\x20was\x20not\x20found.'),null);}catch(_0x306ce8){return console[_0xd7cc04(0x127)](_0xd7cc04(0x10f)+this[_0xd7cc04(0x115)][_0xd7cc04(0xf5)]+_0xd7cc04(0xbb),_0x306ce8),null;}}[_0x30e99e(0x128)](_0x590567){const _0x4d44a0=_0x30e99e;let _0x29054d=this['_getAdapter']();if(!_0x29054d)return!0x1;try{var _0x396a86;let _0x9973db=(_0x396a86=_0x29054d['getShape'](this[_0x4d44a0(0x115)]))==null?void 0x0:_0x396a86[_0x4d44a0(0xab)];if(!_0x9973db)return console[_0x4d44a0(0x127)](_0x4d44a0(0x150)+this[_0x4d44a0(0x115)][_0x4d44a0(0xf5)]+_0x4d44a0(0x142)),!0x1;let _0x2e8ba4=_0x29054d[_0x4d44a0(0x138)](this['_shapeRef'],{'shapeData':_0x590567(_0x9973db)});return _0x2e8ba4||console[_0x4d44a0(0x127)]('[Shape\x20Text\x20Facade]:\x20Failed\x20to\x20update\x20Shape\x20\x22'+this[_0x4d44a0(0x115)][_0x4d44a0(0xf5)]+_0x4d44a0(0xbb)),_0x2e8ba4;}catch(_0x4377f9){return console[_0x4d44a0(0x127)](_0x4d44a0(0x12d)+this['_shapeRef'][_0x4d44a0(0xf5)]+_0x4d44a0(0xbb),_0x4377f9),!0x1;}}},_0x5e2605=class extends _0x23a7b7['FBase']{constructor(_0x46e4ed,_0x174c6d){const _0xee21db=_0x30e99e;super(),this[_0xee21db(0x115)]=_0x46e4ed,this['_injector']=_0x174c6d;}['isConnectorShape'](){return!0x1;}['getId'](){const _0xcc1a44=_0x30e99e;return this[_0xcc1a44(0x115)][_0xcc1a44(0xf5)];}[_0x30e99e(0xe0)](){const _0x2d9bd9=_0x30e99e;var _0x2bece3;return(_0x2bece3=this[_0x2d9bd9(0xbc)]())==null?void 0x0:_0x2bece3['name'];}[_0x30e99e(0x11e)](_0x43147a){return this['update']({'name':_0x43147a});}[_0x30e99e(0xfb)](){const _0x58e9dd=_0x30e99e;var _0x407e63;return(_0x407e63=this[_0x58e9dd(0xbc)]())==null?void 0x0:_0x407e63[_0x58e9dd(0x93)];}[_0x30e99e(0x103)](_0x3e0b50){const _0x22671c=_0x30e99e;return this[_0x22671c(0xc9)]({'description':_0x3e0b50});}[_0x30e99e(0x83)](){const _0x423453=_0x30e99e;return this[_0x423453(0x115)][_0x423453(0x91)];}[_0x30e99e(0x100)](){const _0xc86451=_0x30e99e;var _0x3ee484,_0x5accf1;return(_0x3ee484=(_0x5accf1=this[_0xc86451(0xbc)]())==null?void 0x0:_0x5accf1[_0xc86451(0x112)])==null?null:_0x3ee484;}[_0x30e99e(0x82)](){const _0x480c0f=_0x30e99e;let _0x33e3b0=this[_0x480c0f(0xbc)]();return _0x33e3b0?_0x4d548f[_0x480c0f(0xae)][_0x480c0f(0xc0)](_0x33e3b0[_0x480c0f(0xab)]):null;}[_0x30e99e(0xb5)](){const _0x1cabbd=_0x30e99e;let _0x5a5f0f=this['_getSnapshot']();return _0x5a5f0f?_0x4d548f[_0x1cabbd(0xae)][_0x1cabbd(0xc0)](_0x5a5f0f):null;}[_0x30e99e(0x131)](){const _0x1a2973=_0x30e99e;let _0x5bac23=this['_getSnapshot']();return _0x5bac23?{..._0x5bac23[_0x1a2973(0x89)]}:null;}['isVisible'](){const _0x945cb4=_0x30e99e;var _0x3da25c,_0x1e8d9a;return(_0x3da25c=(_0x1e8d9a=this['_getSnapshot']())==null?void 0x0:_0x1e8d9a[_0x945cb4(0xf2)])==null?!0x1:_0x3da25c;}['setVisible'](_0x1b991b){const _0x2aa781=_0x30e99e;return this[_0x2aa781(0xc9)]({'visible':_0x1b991b});}[_0x30e99e(0x80)](){const _0x9c0f1c=_0x30e99e;var _0x1b922e,_0x48d276;return(_0x1b922e=(_0x48d276=this[_0x9c0f1c(0xbc)]())==null?void 0x0:_0x48d276[_0x9c0f1c(0xf0)])==null?!0x1:_0x1b922e;}[_0x30e99e(0x106)](_0x356f3f){const _0x4b1bb9=_0x30e99e;return this[_0x4b1bb9(0xc9)]({'selectable':_0x356f3f});}['getText'](){const _0x1dae12=_0x30e99e;return this[_0x1dae12(0xf3)]['createInstance'](_0x5d6d4d,this[_0x1dae12(0x115)],this[_0x1dae12(0xf3)]);}[_0x30e99e(0xe1)](){const _0x5bccc7=_0x30e99e;let _0xc356b0=this[_0x5bccc7(0x82)]();return(_0xc356b0==null?void 0x0:_0xc356b0[_0x5bccc7(0xd0)])===!0x0&&!!_0xc356b0['customGeometry'];}['getCustomGeometry'](){const _0x1c8808=_0x30e99e;var _0x5497f6,_0x428546;return(_0x5497f6=(_0x428546=this['getShapeData']())==null?void 0x0:_0x428546[_0x1c8808(0xbe)])==null?null:_0x5497f6;}[_0x30e99e(0x12c)](_0x3dfd02){const _0x5072be=_0x30e99e;return this[_0x5072be(0xeb)](_0x91c29c=>({..._0x91c29c,'shapeType':_0x3dfd02}),_0x3dfd02);}['setShapeData'](_0x31c11c){const _0x2e5d10=_0x30e99e;let _0x3c1167=_0x4d548f[_0x2e5d10(0xae)][_0x2e5d10(0xc0)](_0x31c11c);return this[_0x2e5d10(0xc9)]({'shapeType':_0x3c1167[_0x2e5d10(0x112)],'shapeData':_0x3c1167});}[_0x30e99e(0xe9)](_0x7491fb){const _0x4ad25c=_0x30e99e;return this[_0x4ad25c(0xc9)]({'transform':_0x7491fb});}['setSize'](_0x51128e,_0x3fd89b){const _0x23ecae=_0x30e99e;return this[_0x23ecae(0xe9)]({'width':_0x51128e,'height':_0x3fd89b});}[_0x30e99e(0x132)](_0x30680b){const _0x118d5a=_0x30e99e;return this[_0x118d5a(0xe9)]({'rotation':_0x30680b});}[_0x30e99e(0xa6)](_0x21c5c2,_0x3d7eaa){const _0x21bd73=_0x30e99e;return this[_0x21bd73(0xe9)]({'left':_0x21c5c2,'top':_0x3d7eaa});}[_0x30e99e(0x14c)](_0x18eb35){const _0x55f371=_0x30e99e;let _0x2e4cd4=_0x4d548f[_0x55f371(0xae)][_0x55f371(0xc0)](_0x18eb35);return this['_patchShapeData'](_0x3ba7bd=>({..._0x3ba7bd,'isCustom':!0x0,'customGeometry':_0x2e4cd4}));}[_0x30e99e(0x94)](){const _0x2ccbc1=_0x30e99e;var _0x1c6008,_0x96922b;return(_0x1c6008=(_0x96922b=this[_0x2ccbc1(0x7d)]())==null?void 0x0:_0x96922b[_0x2ccbc1(0x123)]()[_0x2ccbc1(0xb1)](_0xaa360d=>({..._0xaa360d})))==null?[]:_0x1c6008;}[_0x30e99e(0xd6)](){const _0xaed3fa=_0x30e99e;var _0xfc5173,_0x49227d;return(_0xfc5173=(_0x49227d=this[_0xaed3fa(0x7d)]())==null?void 0x0:_0x49227d[_0xaed3fa(0x121)]()['map'](_0x13a30d=>({..._0x13a30d})))==null?[]:_0xfc5173;}[_0x30e99e(0xb7)](){const _0x59dfaf=_0x30e99e;var _0x4b781c;let _0x1c9238=(_0x4b781c=this['_getGeometryModel']())==null?void 0x0:_0x4b781c[_0x59dfaf(0xb7)]();return _0x1c9238?{..._0x1c9238}:null;}[_0x30e99e(0x14d)](){const _0x4eceed=_0x30e99e;var _0x3d622e;let _0x5574d1=(_0x3d622e=this['_getGeometryModel']())==null?void 0x0:_0x3d622e[_0x4eceed(0x14d)]();return _0x5574d1?{..._0x5574d1}:null;}[_0x30e99e(0x14e)](_0x57c20c,_0x92f626){const _0x4d1384=_0x30e99e;return this[_0x4d1384(0xeb)](_0x3aeab8=>({..._0x3aeab8,'fill':{'fillType':_0xa28743[_0x4d1384(0x96)][_0x4d1384(0x11c)],'color':_0x57c20c,'opacity':_0x92f626}}));}[_0x30e99e(0x143)](_0x5a5934,_0x2c4cb4,_0x5f16dd){const _0x650f08=_0x30e99e;return _0x2c4cb4['length']<0x2?(console['warn'](_0x650f08(0xf7)),this):this['_patchShapeData'](_0x1cd192=>({..._0x1cd192,'fill':{'fillType':_0xa28743[_0x650f08(0x96)]['GradientFill'],'gradientType':_0x5a5934,'gradientStops':_0x4d548f[_0x650f08(0xae)][_0x650f08(0xc0)](_0x2c4cb4),'gradientAngle':_0x5f16dd}}));}[_0x30e99e(0x119)](_0x2d6269,_0x2b961,_0x48d46f={}){const _0x545e1e=_0x30e99e;return this['_patchShapeData'](_0x34932d=>({..._0x34932d,'fill':{..._0x4d548f[_0x545e1e(0xae)]['deepClone'](_0x48d46f),'fillType':_0xa28743[_0x545e1e(0x96)][_0x545e1e(0x130)],'fillImageSource':_0x2d6269,'fillImageSourceType':_0x2b961}}));}[_0x30e99e(0x9c)](){const _0xe44ef5=_0x30e99e;return this[_0xe44ef5(0xeb)](_0x4ddce5=>({..._0x4ddce5,'fill':{'fillType':_0xa28743[_0xe44ef5(0x96)][_0xe44ef5(0x9d)]}}));}[_0x30e99e(0x88)](_0x5493a3){const _0x10da99=_0x30e99e;return this[_0x10da99(0xeb)](_0x43fa61=>({..._0x43fa61,'stroke':_0x4d548f[_0x10da99(0xae)][_0x10da99(0xc0)](_0x5493a3)}));}['setStrokeColor'](_0x29bcd0){const _0x437142=_0x30e99e;return this[_0x437142(0x137)](_0x5bd527=>({..._0x5bd527,'color':_0x29bcd0,'lineStrokeType':_0x5bd527[_0x437142(0xc8)]===_0xa28743[_0x437142(0xaf)][_0x437142(0xce)]?_0xa28743[_0x437142(0xaf)][_0x437142(0x11d)]:_0x5bd527[_0x437142(0xc8)]}));}[_0x30e99e(0xda)](_0x2d0155){const _0x3dcab7=_0x30e99e;return this['_patchStroke'](_0x448cc6=>({..._0x448cc6,'width':_0x2d0155,'lineStrokeType':_0x448cc6[_0x3dcab7(0xc8)]===_0xa28743[_0x3dcab7(0xaf)][_0x3dcab7(0xce)]?_0xa28743[_0x3dcab7(0xaf)][_0x3dcab7(0x11d)]:_0x448cc6[_0x3dcab7(0xc8)]}));}[_0x30e99e(0x14f)](_0x30de60){return this['_patchStroke'](_0x29a195=>({..._0x29a195,'opacity':_0x30de60}));}['setStrokeLineDashType'](_0x5ee4c3){const _0x5bfdea=_0x30e99e;return this[_0x5bfdea(0x137)](_0x43ea03=>({..._0x43ea03,'dashType':_0x5ee4c3}));}[_0x30e99e(0x13c)](_0x46f908){return this['_patchStroke'](_0x4b4a50=>({..._0x4b4a50,'lineJoinType':_0x46f908}));}[_0x30e99e(0x10e)](_0x3cec1b){const _0xbefd4=_0x30e99e;return this[_0xbefd4(0x137)](_0x15e9e0=>({..._0x15e9e0,'capType':_0x3cec1b}));}[_0x30e99e(0x126)](_0x2e26f3){const _0x3fe244=_0x30e99e;return this[_0x3fe244(0x137)](_0x34696d=>({..._0x34696d,'lineStrokeType':_0x2e26f3}));}['update'](_0x1d48ae){const _0x249d2b=_0x30e99e;var _0x43e302,_0x2ae172,_0x1ff0dd;let _0xed4024=_0x1d48ae['shapeData'],_0x3d06fa=_0xed4024&&(_0x249d2b(0xa3)in _0xed4024||'points'in _0xed4024)?this[_0x249d2b(0x100)]():null,_0x498181=(_0x43e302=(_0x2ae172=_0x1d48ae['shapeType'])==null?(_0x1ff0dd=_0x1d48ae['shapeData'])==null?void 0x0:_0x1ff0dd[_0x249d2b(0x112)]:_0x2ae172)==null?_0x3d06fa:_0x43e302,_0x285ea9=_0x397892(_0x1d48ae,_0x498181!==null&&(0x0,_0xa28743[_0x249d2b(0x86)])(_0x498181));return _0x285ea9?(console['warn'](_0x249d2b(0x149)+_0x285ea9),this):(this[_0x249d2b(0x11f)](_0x249d2b(0xc9),_0x4e99ae=>_0x4e99ae[_0x249d2b(0x138)](this[_0x249d2b(0x115)],_0x1d48ae)),this);}['remove'](){const _0x40f376=_0x30e99e;return this[_0x40f376(0x11f)](_0x40f376(0x124),_0x5b51b7=>_0x5b51b7[_0x40f376(0xc1)](this[_0x40f376(0x115)]));}['bringToFront'](){const _0x3d91c6=_0x30e99e;return this[_0x3d91c6(0x11f)](_0x3d91c6(0xbf),_0x3e5e5e=>_0x3e5e5e[_0x3d91c6(0xac)](this[_0x3d91c6(0x115)])),this;}[_0x30e99e(0x9e)](){const _0x1df99d=_0x30e99e;return this[_0x1df99d(0x11f)]('bring\x20forward',_0x419aee=>_0x419aee[_0x1df99d(0x9e)](this[_0x1df99d(0x115)])),this;}['sendBackward'](){return this['_mutate']('send\x20backward',_0x3d48e9=>_0x3d48e9['sendBackward'](this['_shapeRef'])),this;}['sendToBack'](){const _0x4cb16d=_0x30e99e;return this[_0x4cb16d(0x11f)](_0x4cb16d(0x8b),_0x9df475=>_0x9df475['sendToBack'](this[_0x4cb16d(0x115)])),this;}['_getAdapter'](){const _0x12e060=_0x30e99e;return this[_0x12e060(0xf3)][_0x12e060(0x10b)](_0xa28743[_0x12e060(0x133)])[_0x12e060(0x10b)](this[_0x12e060(0x115)][_0x12e060(0x91)]);}[_0x30e99e(0xeb)](_0x1d08ca,_0x296bee){const _0x40b6b9=_0x30e99e;let _0x3a88ed=this[_0x40b6b9(0x82)]();return _0x3a88ed?this[_0x40b6b9(0xc9)]({'shapeType':_0x296bee,'shapeData':_0x1d08ca(_0x3a88ed)}):this;}[_0x30e99e(0x137)](_0xa89922){return this['_patchShapeData'](_0xcbea50=>{var _0x1bfd53;return{..._0xcbea50,'stroke':_0xa89922((_0x1bfd53=_0xcbea50['stroke'])==null?{}:_0x1bfd53)};});}[_0x30e99e(0xbc)](){const _0x3134b8=_0x30e99e;let _0x23835d=this[_0x3134b8(0x13b)]();if(!_0x23835d)return null;try{return _0x23835d[_0x3134b8(0x13d)](this['_shapeRef'])||(console[_0x3134b8(0x127)](_0x3134b8(0xca)+this[_0x3134b8(0x115)][_0x3134b8(0xf5)]+'\x22\x20was\x20not\x20found.'),null);}catch(_0x17a872){return console['warn']('[Shape\x20Facade]:\x20Failed\x20to\x20read\x20Shape\x20\x22'+this[_0x3134b8(0x115)][_0x3134b8(0xf5)]+'\x22.',_0x17a872),null;}}['_getGeometryModel'](){const _0x2406cd=_0x30e99e;let _0x1bc802=this[_0x2406cd(0xbc)]();if(!_0x1bc802)return null;try{let _0x6e2c4a=new _0xa28743[(_0x2406cd(0xf6))](_0x1bc802[_0x2406cd(0x112)],_0x1bc802['shapeId'],_0x1bc802[_0x2406cd(0xab)]);return _0x6e2c4a[_0x2406cd(0x8e)]({'width':_0x1bc802[_0x2406cd(0x89)]['width'],'height':_0x1bc802[_0x2406cd(0x89)]['height']}),_0x6e2c4a;}catch(_0xc0b8f0){return console[_0x2406cd(0x127)]('[Shape\x20Facade]:\x20Failed\x20to\x20resolve\x20geometry\x20for\x20Shape\x20\x22'+this[_0x2406cd(0x115)][_0x2406cd(0xf5)]+'\x22.',_0xc0b8f0),null;}}[_0x30e99e(0x11f)](_0x2a78d9,_0xa82b74){const _0x20521c=_0x30e99e;let _0x58fdfe=this[_0x20521c(0x13b)]();if(!_0x58fdfe)return!0x1;try{let _0x3f1491=_0xa82b74(_0x58fdfe);return _0x3f1491||console['warn'](_0x20521c(0xfa)+_0x2a78d9+_0x20521c(0x140)+this[_0x20521c(0x115)]['shapeId']+'\x22.'),_0x3f1491;}catch(_0x2ee97f){return console[_0x20521c(0x127)](_0x20521c(0xfa)+_0x2a78d9+_0x20521c(0x140)+this[_0x20521c(0x115)][_0x20521c(0xf5)]+'\x22.',_0x2ee97f),!0x1;}}};function _0x397892(_0x1720f5,_0x1e2408=!0x1){const _0x7684b4=_0x30e99e;for(let _0x1140fa of[_0x7684b4(0xf2),'selectable']){let _0x565bc5=_0x1720f5[_0x1140fa];if(_0x565bc5!==void 0x0&&typeof _0x565bc5!=_0x7684b4(0x104))return _0x7684b4(0x10d)+_0x1140fa+_0x7684b4(0x114);}let _0x381aba=_0x1720f5[_0x7684b4(0x89)];if(_0x381aba){for(let _0x47ea46 of['left','top','width',_0x7684b4(0xe5),'rotation']){let _0x6ae6ee=_0x381aba[_0x47ea46];if(_0x6ae6ee!==void 0x0&&!Number[_0x7684b4(0xdf)](_0x6ae6ee))return _0x7684b4(0xc5)+_0x47ea46+_0x7684b4(0xff);}if(_0x381aba['width']!==void 0x0&&_0x381aba[_0x7684b4(0x99)]<=0x0)return _0x7684b4(0x148);if(_0x381aba[_0x7684b4(0xe5)]!==void 0x0&&_0x381aba[_0x7684b4(0xe5)]<=0x0)return _0x7684b4(0x13f);for(let _0x5137ed of[_0x7684b4(0xa5),_0x7684b4(0x141)]){let _0x58f584=_0x381aba[_0x5137ed];if(_0x58f584!==void 0x0&&typeof _0x58f584!=_0x7684b4(0x104))return'Shape\x20transform\x20\x22'+_0x5137ed+_0x7684b4(0x114);}}let _0x128077=_0x1720f5[_0x7684b4(0xab)];return!_0x1e2408&&_0x128077&&('relation'in _0x128077||'points'in _0x128077)?'Connector\x20relationships\x20and\x20route\x20points\x20require\x20FConnectorShape.':null;}var _0xc6f4f1=class extends _0x5e2605{[_0x30e99e(0x86)](){return!0x0;}['getStartEndpoint'](){const _0x5e4805=_0x30e99e;let _0x275ed4=this['_getConnectorSnapshot']();return _0x275ed4?_0x4d548f[_0x5e4805(0xae)][_0x5e4805(0xc0)](_0x275ed4[_0x5e4805(0xf1)]):null;}[_0x30e99e(0x13a)](){const _0x1fc8ba=_0x30e99e;let _0x4780cb=this[_0x1fc8ba(0x95)]();return _0x4780cb?_0x4d548f['Tools'][_0x1fc8ba(0xc0)](_0x4780cb[_0x1fc8ba(0x120)]):null;}['getRoutePoints'](){const _0x4153a5=_0x30e99e;let _0xaa02da=this[_0x4153a5(0x95)]();return _0xaa02da?_0x4d548f[_0x4153a5(0xae)][_0x4153a5(0xc0)](_0xaa02da[_0x4153a5(0xf4)]):null;}[_0x30e99e(0x84)](){const _0x116bf7=_0x30e99e;let _0x3bb1a3=this[_0x116bf7(0x95)]();return _0x3bb1a3?_0x4d548f[_0x116bf7(0xae)]['deepClone'](_0x3bb1a3[_0x116bf7(0x134)]):null;}[_0x30e99e(0x14b)](){const _0x5acbab=_0x30e99e;let _0x3d40be=this['_getConnectorSnapshot']();return _0x3d40be?_0x4d548f[_0x5acbab(0xae)]['deepClone'](_0x3d40be['endArrow']):null;}[_0x30e99e(0x12c)](_0x51bc1a){const _0x5f066f=_0x30e99e;return(0x0,_0xa28743['isConnectorShape'])(_0x51bc1a)?super['setShapeType'](_0x51bc1a):(console[_0x5f066f(0x127)](_0x5f066f(0xdb)+this['_shapeRef'][_0x5f066f(0xf5)]+'\x22\x20requires\x20a\x20Connector\x20Shape\x20type.'),this);}[_0x30e99e(0x9b)](_0xa13a2a){const _0x270d1a=_0x30e99e;return _0xa13a2a['shapeType']!==void 0x0&&!(0x0,_0xa28743[_0x270d1a(0x86)])(_0xa13a2a[_0x270d1a(0x112)])?(console[_0x270d1a(0x127)](_0x270d1a(0xdb)+this['_shapeRef'][_0x270d1a(0xf5)]+_0x270d1a(0xfc)),this):super['setShapeData'](_0xa13a2a);}[_0x30e99e(0x9a)](_0x1a5a96,_0x23b562){const _0x53ff86=_0x30e99e;return this[_0x53ff86(0xd4)](_0x53ff86(0xf1),_0x1a5a96,_0x23b562),this;}[_0x30e99e(0xd2)](_0x3f7b6c,_0x2fdd97){const _0x282153=_0x30e99e;return this[_0x282153(0xd4)]('end',_0x3f7b6c,_0x2fdd97),this;}[_0x30e99e(0xde)](){const _0x12f9e5=_0x30e99e;return this['_mutateConnector']('unbind\x20start',_0x4a03ce=>_0x4a03ce[_0x12f9e5(0xde)](this[_0x12f9e5(0x115)])),this;}[_0x30e99e(0xb0)](){const _0x46a784=_0x30e99e;return this[_0x46a784(0x10a)](_0x46a784(0x12b),_0xb66345=>_0xb66345[_0x46a784(0xb0)](this[_0x46a784(0x115)])),this;}[_0x30e99e(0x144)](_0x4578d6){const _0x47dab4=_0x30e99e;return _0x6c4625(_0x4578d6,this['_shapeRef'][_0x47dab4(0xf5)])&&this[_0x47dab4(0x10a)](_0x47dab4(0xee),_0x1e3c31=>_0x1e3c31[_0x47dab4(0x144)](this[_0x47dab4(0x115)],_0x4578d6)),this;}['setEndPoint'](_0x5b8e1c){const _0x4f52e6=_0x30e99e;return _0x6c4625(_0x5b8e1c,this[_0x4f52e6(0x115)][_0x4f52e6(0xf5)])&&this[_0x4f52e6(0x10a)](_0x4f52e6(0x145),_0xaef59d=>_0xaef59d['setEndPoint'](this[_0x4f52e6(0x115)],_0x5b8e1c)),this;}[_0x30e99e(0xcc)](_0x10917b){const _0x404299=_0x30e99e;return _0x10917b[_0x404299(0xb4)](_0x5e2acc=>_0x6c4625(_0x5e2acc,this[_0x404299(0x115)]['shapeId']))&&this[_0x404299(0x10a)](_0x404299(0xd9),_0x47a2fa=>_0x47a2fa[_0x404299(0xcc)](this[_0x404299(0x115)],_0x10917b)),this;}['setStartArrow'](_0x5e4729,_0x4036e2){const _0x5d87a4=_0x30e99e;return this[_0x5d87a4(0x10a)](_0x5d87a4(0xe8),_0x4a9c73=>_0x4a9c73[_0x5d87a4(0x8a)](this['_shapeRef'],_0x5e4729,_0x4036e2)),this;}['setEndArrow'](_0xe36f8d,_0x5e2c28){const _0x4c808f=_0x30e99e;return this[_0x4c808f(0x10a)]('set\x20end\x20arrow',_0x4568d9=>_0x4568d9['setEndArrow'](this['_shapeRef'],_0xe36f8d,_0x5e2c28)),this;}['_getConnectorAdapter'](){const _0x4811c=_0x30e99e;return this['_injector'][_0x4811c(0x10b)](_0xa28743['IConnectorShapeHostAdapter']);}['_getConnectorSnapshot'](){const _0x53728e=_0x30e99e;let _0x1b2779=this[_0x53728e(0x12e)]();if(!_0x1b2779)return null;try{return _0x1b2779['getConnector'](this['_shapeRef'])||(console['warn']('[Shape\x20Facade]:\x20Connector\x20Shape\x20\x22'+this[_0x53728e(0x115)][_0x53728e(0xf5)]+_0x53728e(0x142)),null);}catch(_0x54535f){return console[_0x53728e(0x127)]('[Shape\x20Facade]:\x20Failed\x20to\x20read\x20Connector\x20Shape\x20\x22'+this[_0x53728e(0x115)][_0x53728e(0xf5)]+'\x22.',_0x54535f),null;}}['_bind'](_0x5481c6,_0x1bacf2,_0x1582b7){const _0x1b7390=_0x30e99e;if(!_0x1bacf2||!Number['isInteger'](_0x1582b7)||_0x1582b7<0x0)return console[_0x1b7390(0x127)](_0x1b7390(0xba)+this[_0x1b7390(0x115)][_0x1b7390(0xf5)]+_0x1b7390(0xec)),!0x1;let _0x146bdd={'shapeId':_0x1bacf2,'cxnIndex':_0x1582b7};return this[_0x1b7390(0x10a)](_0x1b7390(0x8f)+_0x5481c6,_0xb4dde8=>_0x5481c6==='start'?_0xb4dde8['bindStart'](this[_0x1b7390(0x115)],_0x146bdd):_0xb4dde8[_0x1b7390(0xd2)](this[_0x1b7390(0x115)],_0x146bdd));}[_0x30e99e(0x10a)](_0x5cd9f5,_0x3409ec){const _0x105c57=_0x30e99e;let _0x11a2b8=this[_0x105c57(0x12e)]();if(!_0x11a2b8)return!0x1;try{let _0x2ac997=_0x3409ec(_0x11a2b8);return _0x2ac997||console[_0x105c57(0x127)](_0x105c57(0xfa)+_0x5cd9f5+_0x105c57(0x14a)+this[_0x105c57(0x115)][_0x105c57(0xf5)]+'\x22.'),_0x2ac997;}catch(_0x109eb9){return console['warn'](_0x105c57(0xfa)+_0x5cd9f5+_0x105c57(0x14a)+this[_0x105c57(0x115)][_0x105c57(0xf5)]+'\x22.',_0x109eb9),!0x1;}}};function _0x6c4625(_0x26ed2f,_0x4de5a1){const _0xe764e7=_0x30e99e;return!Number['isFinite'](_0x26ed2f['x'])||!Number[_0xe764e7(0xdf)](_0x26ed2f['y'])?(console[_0xe764e7(0x127)](_0xe764e7(0xba)+_0x4de5a1+_0xe764e7(0xfe)),!0x1):!0x0;}_0x45a3d5[_0x30e99e(0x125)]=_0xc6f4f1,_0x45a3d5[_0x30e99e(0xed)]=_0x5e2605,_0x45a3d5[_0x30e99e(0x8d)]=_0x5d6d4d;}));function _0x2f0c(_0x21a1aa,_0x42bed1){_0x21a1aa=_0x21a1aa-0x7d;const _0x726c75=_0x726c();let _0x2f0cd2=_0x726c75[_0x21a1aa];return _0x2f0cd2;}function _0x726c(){const _0x15538a=['ImageSourceTypeEnum','_bind','Linear','getAdjustPoints','ShapeTextAutoFitType','setRichText','set\x20route\x20points','setStrokeWidth','[Shape\x20Facade]:\x20Connector\x20Shape\x20\x22','ShapeArrowSizeEnum','applyShapeTextBoxOptions','unbindStart','isFinite','getName','isCustomShape','UniverCore','length','picture','height','ShapeLineDashEnum','UniverProEngineShapeFacade','set\x20start\x20arrow','setTransform','stretch','_patchShapeData','\x22\x20binding\x20requires\x20a\x20target\x20Shape\x20ID\x20and\x20a\x20non-negative\x20connection\x20site\x20index.','FShape','set\x20start\x20point','347625lmOivW','selectable','start','visible','_injector','routePoints','shapeId','ShapeModel','[Shape\x20Facade]:\x20Gradient\x20fill\x20requires\x20at\x20least\x20two\x20color\x20stops.','793644ISvTke','Diamond','[Shape\x20Facade]:\x20Failed\x20to\x20','getDescription','\x22\x20requires\x20Connector\x20Shape\x20data.','rgba(0,\x200,\x200,\x200)','\x22\x20points\x20must\x20contain\x20finite\x20coordinates.','\x22\x20must\x20be\x20finite.','getShapeType','UniverCoreFacade','FEnum','setDescription','boolean','ImageFillModeEnum','setSelectable','ShapeArrowTypeEnum','applyRichTextToShapeText','setColor','_mutateConnector','get','setFontSize','Shape\x20\x22','setStrokeLineCapType','[Shape\x20Text\x20Facade]:\x20Failed\x20to\x20read\x20Shape\x20\x22','29557XOomLR','function','shapeType','offsetX','\x22\x20must\x20be\x20boolean.','_shapeRef','ShapeOperatorEnum','_getShapeData','Radial','setImageFill','119mnLbWM','URL','SolidFill','SolidLine','setName','_mutate','end','getDrawingPoints','radial','getConnectionSiteList','remove','FConnectorShape','setStrokeLineType','warn','_updateShapeData','opacity','resolveShapeTextBoxOptions','unbind\x20end','setShapeType','[Shape\x20Text\x20Facade]:\x20Failed\x20to\x20update\x20Shape\x20\x22','_getConnectorAdapter','Module','PictureFill','getTransform','setRotation','IShapeHostAdapterRegistry','startArrow','50994jSmLWb','color','_patchStroke','updateShape','ShapeGradientTypeEnum','getEndEndpoint','_getAdapter','setStrokeLineJoinType','getShape','object','Shape\x20height\x20must\x20be\x20greater\x20than\x20zero.','\x20Shape\x20\x22','flipY','\x22\x20was\x20not\x20found.','setGradientFill','setStartPoint','set\x20end\x20point','getTextBoxOptions','ShapeTextWrapType','Shape\x20width\x20must\x20be\x20greater\x20than\x20zero.','[Shape\x20Facade]:\x20','\x20Connector\x20Shape\x20\x22','getEndArrow','setCustomGeometry','getEndConnectInfo','setSolidFill','setStrokeOpacity','[Shape\x20Text\x20Facade]:\x20Shape\x20\x22','_getGeometryModel','shapeText','diamond','isSelectable','toStringTag','getShapeData','getHostType','getStartArrow','@univerjs/core','isConnectorShape','Tile','setStroke','transform','setStartArrow','send\x20to\x20back','setTextBoxOptions','FShapeText','updateContext','bind\x20','8qzjcQt','hostType','FALSE','description','getConnectionSites','_getConnectorSnapshot','ShapeFillEnum','BooleanNumber','[Shape\x20Text\x20Facade]:\x20Gradient\x20text\x20fill\x20requires\x20at\x20least\x20two\x20color\x20stops.','width','bindStart','setShapeData','setNoneFill','NoFill','bringForward','applyShapeTextAlignment','linear','ShapeTypeEnum','setVerticalAlign','relation','894gmhYQF','flipX','setAbsolutePosition','13ofFwIf','gradient','710eRmdHn','46662LXegdr','shapeData','bringToFront','none','Tools','ShapeLineTypeEnum','unbindEnd','map','toPlainText','ShapeTextDirection','every','getSnapshot','ShapeImageFillModeEnum','getStartConnectInfo','603UGVNml','defineProperty','[Shape\x20Facade]:\x20Connector\x20\x22','\x22\x20text.','_getSnapshot','13280XWDoWm','customGeometry','bring\x20to\x20front','deepClone','removeShape','solid','ShapeLineCapEnum','setHorizontalAlign','Shape\x20transform\x20\x22','offsetY','269rZnDIH','lineStrokeType','update','[Shape\x20Facade]:\x20Shape\x20\x22','setTextStyle','setRoutePoints','getRichText','NoLine','TRUE','isCustom','ShapeImageSourceTypeEnum','bindEnd'];_0x726c=function(){return _0x15538a;};return _0x726c();}
|