@plait/core 0.2.4 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/board/board.component.d.ts +11 -10
- package/board/board.component.interface.d.ts +2 -1
- package/constants/index.d.ts +6 -0
- package/core/island/island-base.component.d.ts +16 -0
- package/esm2020/board/board.component.interface.mjs +1 -1
- package/esm2020/board/board.component.mjs +52 -55
- package/esm2020/constants/index.mjs +7 -1
- package/esm2020/core/element/plugin-element.mjs +2 -2
- package/esm2020/core/island/island-base.component.mjs +33 -0
- package/esm2020/interfaces/board.mjs +11 -2
- package/esm2020/interfaces/index.mjs +2 -1
- package/esm2020/interfaces/node.mjs +1 -1
- package/esm2020/interfaces/path-ref.mjs +15 -0
- package/esm2020/interfaces/plugin-key.mjs +5 -0
- package/esm2020/plait.module.mjs +3 -4
- package/esm2020/plugins/create-board.mjs +32 -3
- package/esm2020/plugins/with-hand.mjs +10 -15
- package/esm2020/plugins/with-options.mjs +13 -0
- package/esm2020/plugins/with-selection.mjs +27 -17
- package/esm2020/public-api.mjs +4 -2
- package/esm2020/testing/core/create-board.mjs +13 -0
- package/esm2020/testing/core/fake-weak-map.mjs +18 -0
- package/esm2020/testing/core/index.mjs +3 -0
- package/esm2020/testing/index.mjs +2 -0
- package/esm2020/transforms/board.mjs +63 -4
- package/esm2020/utils/dom/common.mjs +12 -1
- package/esm2020/utils/draw/line.mjs +21 -1
- package/esm2020/utils/selected-element.mjs +5 -3
- package/esm2020/utils/viewport.mjs +2 -55
- package/esm2020/utils/weak-maps.mjs +2 -1
- package/fesm2015/plait-core.mjs +621 -507
- package/fesm2015/plait-core.mjs.map +1 -1
- package/fesm2020/plait-core.mjs +635 -521
- package/fesm2020/plait-core.mjs.map +1 -1
- package/interfaces/board.d.ts +8 -2
- package/interfaces/index.d.ts +1 -0
- package/interfaces/node.d.ts +1 -1
- package/interfaces/path-ref.d.ts +13 -0
- package/interfaces/plugin-key.d.ts +3 -0
- package/package.json +3 -3
- package/plait.module.d.ts +2 -3
- package/plugins/create-board.d.ts +1 -1
- package/plugins/with-options.d.ts +9 -0
- package/plugins/with-selection.d.ts +4 -0
- package/public-api.d.ts +3 -1
- package/styles/styles.scss +0 -73
- package/testing/core/create-board.d.ts +6 -0
- package/testing/core/fake-weak-map.d.ts +4 -0
- package/testing/core/index.d.ts +2 -0
- package/testing/index.d.ts +1 -0
- package/transforms/board.d.ts +9 -2
- package/utils/dom/common.d.ts +3 -0
- package/utils/draw/line.d.ts +1 -0
- package/utils/selected-element.d.ts +2 -2
- package/utils/viewport.d.ts +0 -3
- package/utils/weak-maps.d.ts +2 -0
- package/core/toolbar/toolbar.component.d.ts +0 -21
- package/esm2020/core/toolbar/toolbar.component.mjs +0 -60
package/interfaces/board.d.ts
CHANGED
|
@@ -10,14 +10,15 @@ import { RoughSVG } from 'roughjs/bin/svg';
|
|
|
10
10
|
import { BoardComponentInterface } from '../board/board.component.interface';
|
|
11
11
|
import { Point } from './point';
|
|
12
12
|
import { RectangleClient } from './rectangle-client';
|
|
13
|
-
import {
|
|
13
|
+
import { PathRef, PathRefOptions } from './path-ref';
|
|
14
14
|
import { PlaitNode } from './node';
|
|
15
|
+
import { Path } from './path';
|
|
15
16
|
export interface PlaitBoard {
|
|
16
17
|
viewport: Viewport;
|
|
17
18
|
children: PlaitElement[];
|
|
18
19
|
operations: PlaitOperation[];
|
|
19
20
|
selection: Selection | null;
|
|
20
|
-
pointer: PlaitPointerType;
|
|
21
|
+
pointer: PlaitPointerType | string;
|
|
21
22
|
history: PlaitHistory;
|
|
22
23
|
options: PlaitBoardOptions;
|
|
23
24
|
undo: () => void;
|
|
@@ -43,6 +44,8 @@ export interface PlaitBoard {
|
|
|
43
44
|
isMovable: (element: PlaitElement) => boolean;
|
|
44
45
|
getRectangle: (element: PlaitElement) => RectangleClient | null;
|
|
45
46
|
isWithinSelection: (element: PlaitElement) => boolean;
|
|
47
|
+
pathRef: (path: Path, options?: PathRefOptions) => PathRef;
|
|
48
|
+
pathRefs: () => Set<PathRef>;
|
|
46
49
|
}
|
|
47
50
|
export interface PlaitBoardChangeEvent {
|
|
48
51
|
children: PlaitElement[];
|
|
@@ -71,4 +74,7 @@ export declare const PlaitBoard: {
|
|
|
71
74
|
isFocus(board: PlaitBoard): boolean;
|
|
72
75
|
isReadonly(board: PlaitBoard): boolean;
|
|
73
76
|
hasBeenTextEditing(board: PlaitBoard): boolean;
|
|
77
|
+
getPointer<T = PlaitPointerType>(board: PlaitBoard): T;
|
|
78
|
+
isPointer<T_1 = PlaitPointerType>(board: PlaitBoard, pointer: T_1): boolean;
|
|
79
|
+
getMovingPoint(board: PlaitBoard): Point | undefined;
|
|
74
80
|
};
|
package/interfaces/index.d.ts
CHANGED
package/interfaces/node.d.ts
CHANGED
|
@@ -15,6 +15,6 @@ export declare const PlaitNode: {
|
|
|
15
15
|
* the tree, but you can pass the `reverse: true` option to go bottom-up.
|
|
16
16
|
*/
|
|
17
17
|
parents(root: PlaitBoard, path: Path, options?: NodeParentsOptions): Generator<PlaitNode, void, undefined>;
|
|
18
|
-
get(root: PlaitBoard, path: Path):
|
|
18
|
+
get<T extends PlaitElement = PlaitElement>(root: PlaitBoard, path: Path): T;
|
|
19
19
|
last(board: PlaitBoard, path: Path): PlaitElement;
|
|
20
20
|
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PlaitOperation } from './operation';
|
|
2
|
+
import { Path } from './path';
|
|
3
|
+
export interface PathRef {
|
|
4
|
+
current: Path | null;
|
|
5
|
+
affinity: 'forward' | 'backward' | null;
|
|
6
|
+
unref(): Path | null;
|
|
7
|
+
}
|
|
8
|
+
export interface PathRefOptions {
|
|
9
|
+
affinity?: 'forward' | 'backward' | null;
|
|
10
|
+
}
|
|
11
|
+
export declare const PathRef: {
|
|
12
|
+
transform(ref: PathRef, op: PlaitOperation): void;
|
|
13
|
+
};
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plait/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
5
|
+
"@angular/common": "^15.2.2",
|
|
6
|
+
"@angular/core": "^15.2.2"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.3.0"
|
package/plait.module.d.ts
CHANGED
|
@@ -2,10 +2,9 @@ import * as i0 from "@angular/core";
|
|
|
2
2
|
import * as i1 from "./board/board.component";
|
|
3
3
|
import * as i2 from "./core/children/children.component";
|
|
4
4
|
import * as i3 from "./core/element/element.component";
|
|
5
|
-
import * as i4 from "
|
|
6
|
-
import * as i5 from "@angular/common";
|
|
5
|
+
import * as i4 from "@angular/common";
|
|
7
6
|
export declare class PlaitModule {
|
|
8
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<PlaitModule, never>;
|
|
9
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<PlaitModule, [typeof i1.PlaitBoardComponent, typeof i2.PlaitChildrenElement, typeof i3.PlaitElementComponent
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<PlaitModule, [typeof i1.PlaitBoardComponent, typeof i2.PlaitChildrenElement, typeof i3.PlaitElementComponent], [typeof i4.CommonModule], [typeof i1.PlaitBoardComponent, typeof i2.PlaitChildrenElement, typeof i3.PlaitElementComponent]>;
|
|
10
9
|
static ɵinj: i0.ɵɵInjectorDeclaration<PlaitModule>;
|
|
11
10
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { PlaitBoard, PlaitBoardOptions } from '../interfaces/board';
|
|
2
2
|
import { PlaitElement } from '../interfaces/element';
|
|
3
|
-
export declare function createBoard(children: PlaitElement[], options
|
|
3
|
+
export declare function createBoard(children: PlaitElement[], options?: PlaitBoardOptions): PlaitBoard;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PlaitBoard } from '../interfaces/board';
|
|
2
|
+
export interface PlaitPluginOptions {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export interface PlaitOptionsBoard extends PlaitBoard {
|
|
6
|
+
getPluginOptions: <K = PlaitPluginOptions>(key: string) => K;
|
|
7
|
+
setPluginOptions: <K = PlaitPluginOptions>(key: string, value: K) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const withOptions: (board: PlaitBoard) => PlaitOptionsBoard;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { PlaitBoard } from '../interfaces/board';
|
|
2
2
|
import { PlaitElement } from '../interfaces';
|
|
3
|
+
import { PlaitPluginOptions } from './with-options';
|
|
4
|
+
export interface WithPluginOptions extends PlaitPluginOptions {
|
|
5
|
+
isMultiple: boolean;
|
|
6
|
+
}
|
|
3
7
|
export declare function withSelection(board: PlaitBoard): PlaitBoard;
|
|
4
8
|
export declare function getTemporaryElements(board: PlaitBoard): PlaitElement[] | undefined;
|
|
5
9
|
export declare function deleteTemporaryElements(board: PlaitBoard): void;
|
package/public-api.d.ts
CHANGED
|
@@ -4,10 +4,12 @@ export * from './core/element/plugin-element';
|
|
|
4
4
|
export * from './core/element/element.component';
|
|
5
5
|
export * from './core/children/children.component';
|
|
6
6
|
export * from './core/element/context-change';
|
|
7
|
-
export * from './core/
|
|
7
|
+
export * from './core/island/island-base.component';
|
|
8
8
|
export * from './interfaces';
|
|
9
9
|
export * from './plait.module';
|
|
10
10
|
export * from './transforms';
|
|
11
11
|
export * from './utils';
|
|
12
12
|
export * from './plugins/with-selection';
|
|
13
13
|
export * from './plugins/with-moving';
|
|
14
|
+
export * from './plugins/with-options';
|
|
15
|
+
export * from './testing';
|
package/styles/styles.scss
CHANGED
|
@@ -40,17 +40,6 @@
|
|
|
40
40
|
z-index: 100;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
.island {
|
|
44
|
-
--padding: 1;
|
|
45
|
-
background-color: var(--iscard-bg-color);
|
|
46
|
-
box-shadow: var(--shadow-iscard);
|
|
47
|
-
border-radius: var(--border-radius-sm);
|
|
48
|
-
padding: calc(var(--padding) * var(--space-factor));
|
|
49
|
-
transition: box-shadow 0.5s ease-in-out;
|
|
50
|
-
box-shadow: 0 0 16px #00000014;
|
|
51
|
-
border: 1px solid #eee;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
43
|
&.focused {
|
|
55
44
|
.viewport-container {
|
|
56
45
|
overflow: auto;
|
|
@@ -62,65 +51,3 @@
|
|
|
62
51
|
}
|
|
63
52
|
}
|
|
64
53
|
}
|
|
65
|
-
|
|
66
|
-
.zoom-toolbar {
|
|
67
|
-
position: absolute;
|
|
68
|
-
top: 24px;
|
|
69
|
-
right: 24px;
|
|
70
|
-
display: flex;
|
|
71
|
-
align-items: center;
|
|
72
|
-
|
|
73
|
-
.zoom-value {
|
|
74
|
-
user-select: none;
|
|
75
|
-
width: 54px;
|
|
76
|
-
height: 20px;
|
|
77
|
-
padding: 0 8px;
|
|
78
|
-
font-size: 14px;
|
|
79
|
-
cursor: pointer;
|
|
80
|
-
color: #666;
|
|
81
|
-
font-weight: 400;
|
|
82
|
-
border-radius: 4px;
|
|
83
|
-
text-align: center;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.divider {
|
|
87
|
-
height: 16px;
|
|
88
|
-
border-left: 1px solid #ddd;
|
|
89
|
-
margin-left: 4px;
|
|
90
|
-
margin-right: 8px;
|
|
91
|
-
}
|
|
92
|
-
.toolbar-item {
|
|
93
|
-
margin-right: 4px;
|
|
94
|
-
&:last-child {
|
|
95
|
-
margin-right: 0;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.plait-action-icon {
|
|
101
|
-
color: #999;
|
|
102
|
-
padding: 8px;
|
|
103
|
-
background-repeat: no-repeat;
|
|
104
|
-
fill: currentColor;
|
|
105
|
-
font-size: 16px;
|
|
106
|
-
line-height: 0;
|
|
107
|
-
display: inline-block;
|
|
108
|
-
border-radius: 4px;
|
|
109
|
-
cursor: pointer;
|
|
110
|
-
svg {
|
|
111
|
-
background-repeat: no-repeat;
|
|
112
|
-
/* 通过设置 font-size 来改变图标大小 */
|
|
113
|
-
width: 1em;
|
|
114
|
-
height: 1em;
|
|
115
|
-
/* 通过设置 color 来改变 SVG 的颜色/fill */
|
|
116
|
-
fill: currentColor;
|
|
117
|
-
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 normalize.css 中也包含这行 */
|
|
118
|
-
overflow: hidden;
|
|
119
|
-
transition: transform 200ms;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
.icon-active,
|
|
123
|
-
.plait-action-icon:hover {
|
|
124
|
-
color: rgb(102, 152, 255);
|
|
125
|
-
background: rgba(102, 152, 255, 0.1);
|
|
126
|
-
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PlaitBoardOptions, PlaitElement, PlaitPlugin } from '../../interfaces';
|
|
2
|
+
/**
|
|
3
|
+
* 1.create board instance
|
|
4
|
+
* 2.build fake node weak map
|
|
5
|
+
*/
|
|
6
|
+
export declare const createTestingBoard: (plugins: PlaitPlugin[], children: PlaitElement[], options?: PlaitBoardOptions) => import("../../interfaces").PlaitBoard;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './core';
|
package/transforms/board.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { PlaitBoard } from '../interfaces/board';
|
|
2
|
+
import { Point } from '../interfaces/point';
|
|
2
3
|
import { PlaitPointerType } from '../interfaces/pointer';
|
|
3
|
-
|
|
4
|
+
declare function updateViewport(board: PlaitBoard, origination: Point, zoom?: number): void;
|
|
5
|
+
declare function updateZoom(board: PlaitBoard, newZoom: number, isCenter?: boolean): void;
|
|
6
|
+
declare function fitViewport(board: PlaitBoard): void;
|
|
4
7
|
export declare const BoardTransforms: {
|
|
5
|
-
updatePointerType: (board: PlaitBoard, pointer:
|
|
8
|
+
updatePointerType: <T extends string = PlaitPointerType>(board: PlaitBoard, pointer: T) => void;
|
|
9
|
+
updateViewport: typeof updateViewport;
|
|
10
|
+
fitViewport: typeof fitViewport;
|
|
11
|
+
updateZoom: typeof updateZoom;
|
|
6
12
|
};
|
|
13
|
+
export {};
|
package/utils/dom/common.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Point } from '../../interfaces/point';
|
|
|
2
2
|
export declare const NS = "http://www.w3.org/2000/svg";
|
|
3
3
|
export declare function toPoint(x: number, y: number, container: SVGElement): Point;
|
|
4
4
|
export declare function createG(): SVGGElement;
|
|
5
|
+
export declare function createPath(): SVGPathElement;
|
|
5
6
|
export declare function createSVG(): SVGSVGElement;
|
|
6
7
|
export declare function createText(x: number, y: number, fill: string, textContent: string): SVGTextElement;
|
|
7
8
|
/**
|
|
@@ -13,3 +14,5 @@ export declare const isDOMElement: (value: any) => value is Element;
|
|
|
13
14
|
*/
|
|
14
15
|
export declare const isDOMNode: (value: any) => value is Node;
|
|
15
16
|
export declare const hasInputOrTextareaTarget: (target: EventTarget | null) => boolean;
|
|
17
|
+
export declare const isSecondaryPointer: (event: MouseEvent) => boolean;
|
|
18
|
+
export declare const isMainPointer: (event: MouseEvent) => boolean;
|
package/utils/draw/line.d.ts
CHANGED
|
@@ -2,3 +2,4 @@ import { RoughSVG } from 'roughjs/bin/svg';
|
|
|
2
2
|
import { Point } from '../../interfaces/point';
|
|
3
3
|
import { Options } from 'roughjs/bin/core';
|
|
4
4
|
export declare function drawLine(rs: RoughSVG, start: Point, end: Point, options: Options): SVGGElement;
|
|
5
|
+
export declare function drawLinearPath(points: Point[], options?: Options): SVGGElement;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PlaitBoard } from '../interfaces/board';
|
|
2
|
-
import { Range } from '../interfaces/selection';
|
|
2
|
+
import { Selection, Range } from '../interfaces/selection';
|
|
3
3
|
import { PlaitElement } from '../interfaces/element';
|
|
4
|
-
export declare const getHitElements: (board: PlaitBoard) => PlaitElement[];
|
|
4
|
+
export declare const getHitElements: (board: PlaitBoard, selection?: Selection) => PlaitElement[];
|
|
5
5
|
export declare const isIntersectionElements: (board: PlaitBoard, elements: PlaitElement[], ranges: Range[]) => boolean;
|
|
6
6
|
export declare const cacheSelectedElements: (board: PlaitBoard, selectedElements: PlaitElement[]) => void;
|
|
7
7
|
export declare const getSelectedElements: (board: PlaitBoard) => PlaitElement[];
|
package/utils/viewport.d.ts
CHANGED
|
@@ -24,9 +24,6 @@ export declare function updateViewportContainerScroll(board: PlaitBoard, left: n
|
|
|
24
24
|
export declare function initializeViewportContainer(board: PlaitBoard): void;
|
|
25
25
|
export declare function initializeViewBox(board: PlaitBoard): void;
|
|
26
26
|
export declare function initializeViewportOffset(board: PlaitBoard): void;
|
|
27
|
-
export declare function setViewport(board: PlaitBoard, origination: Point, zoom?: number): void;
|
|
28
|
-
export declare function changeZoom(board: PlaitBoard, newZoom: number, isCenter?: boolean): void;
|
|
29
|
-
export declare function fitViewport(board: PlaitBoard): void;
|
|
30
27
|
export declare const updateViewportOrigination: (board: PlaitBoard, origination: Point) => void;
|
|
31
28
|
export declare const clearViewportOrigination: (board: PlaitBoard) => void;
|
|
32
29
|
export declare const getViewportOrigination: (board: PlaitBoard) => Point | undefined;
|
package/utils/weak-maps.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { PlaitElement } from '../interfaces/element';
|
|
|
4
4
|
import { PlaitBoard } from '../interfaces/board';
|
|
5
5
|
import { Point } from '../interfaces/point';
|
|
6
6
|
import { Ancestor } from '../interfaces/node';
|
|
7
|
+
import { PathRef } from '../interfaces/path-ref';
|
|
7
8
|
export declare const IS_BOARD_CACHE: WeakMap<Object, boolean>;
|
|
8
9
|
export declare const FLUSHING: WeakMap<PlaitBoard, boolean>;
|
|
9
10
|
export declare const NODE_TO_INDEX: WeakMap<PlaitElement, number>;
|
|
@@ -20,3 +21,4 @@ export declare const BOARD_TO_VIEWPORT_ORIGINATION: WeakMap<PlaitBoard, Point>;
|
|
|
20
21
|
export declare const BOARD_TO_IS_SELECTION_MOVING: WeakMap<PlaitBoard, boolean>;
|
|
21
22
|
export declare const BOARD_TO_TEMPORARY_ELEMENTS: WeakMap<PlaitBoard, PlaitElement[]>;
|
|
22
23
|
export declare const BOARD_TO_MOVING_ELEMENT: WeakMap<PlaitBoard, PlaitElement[]>;
|
|
24
|
+
export declare const PATH_REFS: WeakMap<PlaitBoard, Set<PathRef>>;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { PlaitBoard, PlaitPointerType } from '../../interfaces';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class PlaitToolbarComponent {
|
|
5
|
-
PlaitPointerType: typeof PlaitPointerType;
|
|
6
|
-
hostClass: string;
|
|
7
|
-
board: PlaitBoard;
|
|
8
|
-
get zoom(): number;
|
|
9
|
-
get isHand(): boolean;
|
|
10
|
-
adaptHandle: EventEmitter<any>;
|
|
11
|
-
zoomInHandle: EventEmitter<any>;
|
|
12
|
-
zoomOutHandle: EventEmitter<any>;
|
|
13
|
-
resetZoomHandel: EventEmitter<any>;
|
|
14
|
-
activeHand(): void;
|
|
15
|
-
adapt(): void;
|
|
16
|
-
zoomIn(): void;
|
|
17
|
-
zoomOut(): void;
|
|
18
|
-
resetZoom(): void;
|
|
19
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<PlaitToolbarComponent, never>;
|
|
20
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PlaitToolbarComponent, "plait-toolbar", never, { "board": "board"; }, { "adaptHandle": "adaptHandle"; "zoomInHandle": "zoomInHandle"; "zoomOutHandle": "zoomOutHandle"; "resetZoomHandel": "resetZoomHandel"; }, never, never, false, never>;
|
|
21
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
|
2
|
-
import { PlaitPointerType } from '../../interfaces';
|
|
3
|
-
import { updatePointerType } from '../../transforms/board';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common";
|
|
6
|
-
export class PlaitToolbarComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.PlaitPointerType = PlaitPointerType;
|
|
9
|
-
this.hostClass = `plait-board-toolbar`;
|
|
10
|
-
this.adaptHandle = new EventEmitter();
|
|
11
|
-
this.zoomInHandle = new EventEmitter();
|
|
12
|
-
this.zoomOutHandle = new EventEmitter();
|
|
13
|
-
this.resetZoomHandel = new EventEmitter();
|
|
14
|
-
}
|
|
15
|
-
get zoom() {
|
|
16
|
-
const zoom = this.board?.viewport.zoom || 1;
|
|
17
|
-
return Number((zoom * 100).toFixed(0));
|
|
18
|
-
}
|
|
19
|
-
get isHand() {
|
|
20
|
-
return this.board.pointer === PlaitPointerType.hand;
|
|
21
|
-
}
|
|
22
|
-
activeHand() {
|
|
23
|
-
updatePointerType(this.board, this.isHand ? PlaitPointerType.selection : PlaitPointerType.hand);
|
|
24
|
-
}
|
|
25
|
-
// 适应画布
|
|
26
|
-
adapt() {
|
|
27
|
-
this.adaptHandle.emit();
|
|
28
|
-
}
|
|
29
|
-
// 放大
|
|
30
|
-
zoomIn() {
|
|
31
|
-
this.zoomInHandle.emit();
|
|
32
|
-
}
|
|
33
|
-
// 缩小
|
|
34
|
-
zoomOut() {
|
|
35
|
-
this.zoomOutHandle.emit();
|
|
36
|
-
}
|
|
37
|
-
resetZoom() {
|
|
38
|
-
this.resetZoomHandel.emit();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
PlaitToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: PlaitToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
-
PlaitToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: PlaitToolbarComponent, selector: "plait-toolbar", inputs: { board: "board" }, outputs: { adaptHandle: "adaptHandle", zoomInHandle: "zoomInHandle", zoomOutHandle: "zoomOutHandle", resetZoomHandel: "resetZoomHandel" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<div class=\"zoom-toolbar island plait-board-attached\">\n <a class=\"toolbar-item plait-action-icon\" [ngClass]=\"{ 'icon-active': isHand }\" (click)=\"activeHand()\">\n <ng-template [ngTemplateOutlet]=\"dragMoveTemplate\"></ng-template>\n </a>\n <div class=\"divider\"></div>\n <a class=\"toolbar-item plait-action-icon\" (mousedown)=\"adapt()\">\n <ng-template [ngTemplateOutlet]=\"adaptTemplate\"></ng-template>\n </a>\n <div class=\"divider\"></div>\n <a class=\"toolbar-item plait-action-icon\" (mousedown)=\"zoomOut()\">\n <ng-template [ngTemplateOutlet]=\"zoomOutTemplate\"></ng-template>\n </a>\n <div class=\"toolbar-item zoom-value\" (mousedown)=\"resetZoom()\">{{ zoom }}%</div>\n <a class=\"toolbar-item plait-action-icon\" (mousedown)=\"zoomIn()\">\n <ng-template [ngTemplateOutlet]=\"zoomInTemplate\"></ng-template>\n </a>\n</div>\n\n<ng-template #dragMoveTemplate>\n <svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <title>1.Base\u57FA\u7840/1.icon\u56FE\u6807/2.normal/hand</title>\n <g id=\"1.Base\u57FA\u7840/1.icon\u56FE\u6807/2.normal/hand\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n <path\n d=\"M8.44583468,0.500225887 C9.07406934,0.510185679 9.54739531,0.839591366 9.86192311,1.34305279 C9.89696656,1.39914649 9.92878401,1.45492964 9.9576026,1.50991157 L9.9576026,1.50991157 L10.0210033,1.64201027 L10.061978,1.62350755 C10.1972891,1.56834247 10.3444107,1.53218464 10.5027907,1.51755353 L10.5027907,1.51755353 L10.6649031,1.51019133 C11.4883708,1.51019133 12.0208782,1.99343346 12.3023042,2.66393278 C12.3903714,2.87392911 12.4344191,3.10047818 12.4339446,3.3257952 L12.4339446,3.3257952 L12.4360033,3.80501027 L12.5160535,3.78341501 C12.6124478,3.76124046 12.7138812,3.74739854 12.820201,3.74250274 L12.820201,3.74250274 L12.9833264,3.74194533 C13.6121166,3.7657478 14.0645887,4.0801724 14.3087062,4.56112689 C14.4521117,4.8436609 14.4987984,5.11349437 14.4999262,5.33449618 L14.4999262,5.33449618 L14.3922653,12.049414 C14.3784752,12.909177 14.0717787,13.7360948 13.5212406,14.3825228 C13.4055676,14.5183496 13.2843697,14.643961 13.1582361,14.7596335 C12.4634771,15.3967716 11.755103,15.6538706 11.1897396,15.7000055 L11.1897396,15.7000055 L7.4723083,15.6798158 C7.14276373,15.634268 6.81580098,15.5154267 6.49455235,15.3472501 C6.25643701,15.2225944 6.06881706,15.0975452 5.88705731,14.9494308 L5.88705731,14.9494308 L2.55198782,11.500873 C2.39559475,11.3769079 2.17626793,11.1748532 1.9548636,10.9139403 C1.57867502,10.4706225 1.33501976,10.0139923 1.30330257,9.52833025 C1.28093191,9.18578476 1.37200912,8.85641102 1.5826788,8.56872564 C1.82538833,8.23725279 2.12881965,8.02107162 2.47470569,7.92957033 C2.95807982,7.80169771 3.42705723,7.92468989 3.86509644,8.18731167 C4.04431391,8.29475961 4.1816109,8.40304483 4.26225571,8.47866867 L4.26225571,8.47866867 L4.61400328,8.79701027 L4.57247249,3.59275349 L4.57628524,3.46204923 C4.5897691,3.23444442 4.64087578,2.95701848 4.75937106,2.66961597 C5.01017272,2.06131302 5.49670227,1.64692543 6.21363856,1.60818786 C6.44223508,1.59583681 6.65042099,1.62176802 6.83696985,1.68057551 L6.83696985,1.68057551 L6.86400328,1.69001027 C6.88501862,1.63593052 6.90764242,1.58175442 6.9331867,1.52672633 L6.9331867,1.52672633 L7.01883595,1.35955614 C7.31549194,0.832047939 7.79476072,0.48993549 8.44583468,0.500225887 Z M8.42684173,1.70001476 C8.26825412,1.69756905 8.16339456,1.77242008 8.06478367,1.94776814 C8.03967773,1.99241107 8.01831703,2.03811495 8.00083464,2.07855067 L8.00083464,2.07855067 L7.94879157,2.2035905 L7.94354455,2.20731401 L7.943,3.161 L7.97170661,3.16123746 L7.97170661,7.60991883 L6.77170661,7.60991883 L6.771,3.338 L6.74362358,3.33880359 C6.74284189,3.29064626 6.73014163,3.20282206 6.7002616,3.11094408 L6.66446012,3.01903385 C6.58982025,2.85766739 6.49843292,2.79455071 6.27838133,2.80644008 C6.07001018,2.81769881 5.95642108,2.91444507 5.86877664,3.12702089 C5.79792279,3.29887224 5.77228127,3.48655908 5.77246879,3.58977183 L5.77246879,3.58977183 L5.83613619,11.5252021 L3.41863956,9.33477657 L3.31637296,9.25979571 L3.24805011,9.21651224 C3.06096922,9.10434987 2.89279975,9.06024641 2.78159879,9.0896637 C2.71007735,9.10858411 2.63607367,9.1613084 2.55086305,9.27768211 C2.51020424,9.33320478 2.49638061,9.38319687 2.50075171,9.4501283 C2.51206889,9.62341997 2.64503022,9.87260054 2.86983366,10.1375191 C3.03268834,10.3294345 3.19762053,10.4813781 3.35554956,10.6131022 L3.35554956,10.6131022 L6.68454317,14.0569073 C6.71106575,14.0773808 6.74806086,14.1037158 6.79369091,14.1335929 L6.79369091,14.1335929 L6.95464838,14.2315311 L7.05111031,14.2841211 C7.25978123,14.3933622 7.46253523,14.4670573 7.55685495,14.4854708 L7.55685495,14.4854708 L11.1407985,14.5022108 C11.1503576,14.5013899 11.1627905,14.4997539 11.1779002,14.4971772 L11.1779002,14.4971772 L11.2991076,14.4694224 C11.3491682,14.4557375 11.4083624,14.437284 11.4751158,14.4130563 C11.769383,14.3062543 12.066676,14.1324596 12.3471758,13.8752234 C12.4371203,13.7927386 12.5240597,13.7026333 12.607654,13.6044743 C12.9760464,13.1719172 13.183059,12.6137678 13.1924195,12.030173 L13.1924195,12.030173 L13.3000132,5.32832551 C13.2997939,5.29016685 13.2826117,5.19085946 13.2386527,5.10425262 C13.1843838,4.99733326 13.1129774,4.94771265 12.9379578,4.94108739 C12.6814739,4.93138871 12.534132,5.11189595 12.4756792,5.39480062 L12.4768718,7.52734922 L11.2768718,7.52734922 L11.276,5.688 L11.2462883,5.6883208 L11.2339541,3.32771285 C11.2341,3.2560396 11.2209054,3.18817621 11.1957482,3.12818892 C11.0820579,2.85732094 10.9199288,2.71019133 10.6649031,2.71019133 C10.456829,2.71019133 10.3197487,2.87378067 10.2524297,3.11264939 L10.2530225,7.512783 L9.05302254,7.512783 L9.053,3.288 L9.01554331,3.28724203 L8.98800328,2.29901027 L8.9629175,2.22263368 C8.94515567,2.17417174 8.92167756,2.11937748 8.8924232,2.06330056 L8.8924232,2.06330056 L8.84420197,1.9788544 C8.72758855,1.79219249 8.59915015,1.70280728 8.42684173,1.70001476 Z\"\n id=\"\u5F62\u72B6\u7ED3\u5408\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n</ng-template>\n\n<ng-template #adaptTemplate>\n <svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <title>1.Base\u57FA\u7840/1.icon\u56FE\u6807/2.normal/Fit canvas</title>\n <g id=\"1.Base\u57FA\u7840/1.icon\u56FE\u6807/2.normal/Fit-canvas\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n <path\n d=\"M14.9971494,10.4 L14.9971494,13.4020516 C14.9971494,14.2366152 14.3581879,14.9219414 13.542782,14.9955129 L13.3971494,15.0020516 L10.4,15.0020516 L10.4,13.8020516 L13.3971494,13.8020516 C13.590449,13.8020516 13.7517243,13.6649388 13.7890228,13.4826656 L13.7971494,13.4020516 L13.7971494,10.4 L14.9971494,10.4 Z M2.2,10.4 L2.2,13.3971494 C2.2,13.590449 2.3371128,13.7517243 2.51938605,13.7890228 L2.6,13.7971494 L5.60205161,13.7971494 L5.60205161,14.9971494 L2.6,14.9971494 C1.76543638,14.9971494 1.08011021,14.3581879 1.00653868,13.542782 L1,13.3971494 L1,10.4 L2.2,10.4 Z M10.5024511,4.9 C11.3861067,4.9 12.1024511,5.6163444 12.1024511,6.5 L12.1024511,6.5 L12.1024511,9.5 C12.1024511,10.3836556 11.3861067,11.1 10.5024511,11.1 L10.5024511,11.1 L5.50245112,11.1 C4.61879552,11.1 3.90245112,10.3836556 3.90245112,9.5 L3.90245112,9.5 L3.90245112,6.5 C3.90245112,5.6163444 4.61879552,4.9 5.50245112,4.9 L5.50245112,4.9 Z M10.5024511,6.1 L5.50245112,6.1 C5.28153722,6.1 5.10245112,6.2790861 5.10245112,6.5 L5.10245112,6.5 L5.10245112,9.5 C5.10245112,9.7209139 5.28153722,9.9 5.50245112,9.9 L5.50245112,9.9 L10.5024511,9.9 C10.723365,9.9 10.9024511,9.7209139 10.9024511,9.5 L10.9024511,9.5 L10.9024511,6.5 C10.9024511,6.2790861 10.723365,6.1 10.5024511,6.1 L10.5024511,6.1 Z M5.59714938,1 L5.59714938,2.2 L2.6,2.2 C2.40670034,2.2 2.24542508,2.3371128 2.20812658,2.51938605 L2.2,2.6 L2.2,5.60205161 L1,5.60205161 L1,2.6 C1,1.76543638 1.63896152,1.08011021 2.45436739,1.00653868 L2.6,1 L5.59714938,1 Z M13.3971494,1 L13.542782,1.00653868 C14.3581879,1.08011021 14.9971494,1.76543638 14.9971494,2.6 L14.9971494,2.6 L14.9971494,5.60205161 L13.7971494,5.60205161 L13.7971494,2.6 L13.7890228,2.51938605 C13.7517243,2.3371128 13.590449,2.2 13.3971494,2.2 L13.3971494,2.2 L10.4,2.2 L10.4,1 L13.3971494,1 Z\"\n id=\"\u5F62\u72B6\u7ED3\u5408\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n</ng-template>\n<ng-template #zoomOutTemplate>\n <svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <title>action/zoom-out</title>\n <desc>Created with Sketch.</desc>\n <g id=\"action/zoom-out\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n <path\n d=\"M6.85,2.73225886e-13 C10.6331505,2.73225886e-13 13.7,3.06684946 13.7,6.85 C13.7,8.54194045 13.0865836,10.0906098 12.0700142,11.2857448 L15.4201976,14.5717081 C15.6567367,14.8037768 15.6603607,15.1836585 15.4282919,15.4201976 C15.1962232,15.6567367 14.8163415,15.6603607 14.5798024,15.4282919 L14.5798024,15.4282919 L11.2163456,12.128262 C10.0309427,13.1099691 8.50937591,13.7 6.85,13.7 C3.06684946,13.7 4.58522109e-14,10.6331505 4.58522109e-14,6.85 C4.58522109e-14,3.06684946 3.06684946,2.73225886e-13 6.85,2.73225886e-13 Z M6.85,1.2 C3.72959116,1.2 1.2,3.72959116 1.2,6.85 C1.2,9.97040884 3.72959116,12.5 6.85,12.5 C8.31753357,12.5 9.65438791,11.9404957 10.6588859,11.0231643 C10.6855412,10.9625408 10.7245275,10.9050898 10.7743982,10.8542584 C10.8288931,10.7987137 10.8915387,10.7560124 10.9585649,10.7261903 C11.9144009,9.71595758 12.5,8.35136579 12.5,6.85 C12.5,3.72959116 9.97040884,1.2 6.85,1.2 Z M4.6,6.2 L9.12944565,6.2 C9.4608165,6.2 9.72944565,6.46862915 9.72944565,6.8 C9.72944565,7.09823376 9.51185604,7.34564675 9.22676876,7.39214701 L9.12944565,7.4 L4.6,7.4 C4.26862915,7.4 4,7.13137085 4,6.8 C4,6.50176624 4.21758961,6.25435325 4.50267688,6.20785299 L4.6,6.2 L9.12944565,6.2 Z\"\n id=\"\u5F62\u72B6\u7ED3\u5408\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n</ng-template>\n\n<ng-template #zoomInTemplate\n ><svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <title>action/zoom-in</title>\n <desc>Created with Sketch.</desc>\n <g id=\"action/zoom-in\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n <path\n d=\"M6.85,-1.81188398e-13 C10.6331505,-1.81188398e-13 13.7,3.06684946 13.7,6.85 C13.7,8.54194045 13.0865836,10.0906098 12.0700142,11.2857448 L15.4201976,14.5717081 C15.6567367,14.8037768 15.6603607,15.1836585 15.4282919,15.4201976 C15.1962232,15.6567367 14.8163415,15.6603607 14.5798024,15.4282919 L14.5798024,15.4282919 L11.2163456,12.128262 C10.0309427,13.1099691 8.50937591,13.7 6.85,13.7 C3.06684946,13.7 4.61852778e-14,10.6331505 4.61852778e-14,6.85 C4.61852778e-14,3.06684946 3.06684946,-1.81188398e-13 6.85,-1.81188398e-13 Z M6.85,1.2 C3.72959116,1.2 1.2,3.72959116 1.2,6.85 C1.2,9.97040884 3.72959116,12.5 6.85,12.5 C8.31753357,12.5 9.65438791,11.9404957 10.6588859,11.0231643 C10.6855412,10.9625408 10.7245275,10.9050898 10.7743982,10.8542584 C10.8288931,10.7987137 10.8915387,10.7560124 10.9585649,10.7261903 C11.9144009,9.71595758 12.5,8.35136579 12.5,6.85 C12.5,3.72959116 9.97040884,1.2 6.85,1.2 Z M6.86472282,3.93527718 C7.16295659,3.93527718 7.41036958,4.15286679 7.45686984,4.43795406 L7.46472282,4.53527718 L7.464,6.19927718 L9.12944565,6.2 C9.42767941,6.2 9.6750924,6.41758961 9.72159266,6.70267688 L9.72944565,6.8 C9.72944565,7.09823376 9.51185604,7.34564675 9.22676876,7.39214701 L9.12944565,7.4 L7.464,7.39927718 L7.46472282,9.06472282 C7.46472282,9.36295659 7.24713321,9.61036958 6.96204594,9.65686984 L6.86472282,9.66472282 C6.56648906,9.66472282 6.31907607,9.44713321 6.27257581,9.16204594 L6.26472282,9.06472282 L6.264,7.39927718 L4.6,7.4 C4.30176624,7.4 4.05435325,7.18241039 4.00785299,6.89732312 L4,6.8 C4,6.50176624 4.21758961,6.25435325 4.50267688,6.20785299 L4.6,6.2 L6.264,6.19927718 L6.26472282,4.53527718 C6.26472282,4.2701805 6.43664548,4.0452385 6.67507642,3.96586557 L6.76739971,3.94313016 L6.86472282,3.93527718 Z\"\n id=\"\u5F62\u72B6\u7ED3\u5408\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: PlaitToolbarComponent, decorators: [{
|
|
44
|
-
type: Component,
|
|
45
|
-
args: [{ selector: 'plait-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"zoom-toolbar island plait-board-attached\">\n <a class=\"toolbar-item plait-action-icon\" [ngClass]=\"{ 'icon-active': isHand }\" (click)=\"activeHand()\">\n <ng-template [ngTemplateOutlet]=\"dragMoveTemplate\"></ng-template>\n </a>\n <div class=\"divider\"></div>\n <a class=\"toolbar-item plait-action-icon\" (mousedown)=\"adapt()\">\n <ng-template [ngTemplateOutlet]=\"adaptTemplate\"></ng-template>\n </a>\n <div class=\"divider\"></div>\n <a class=\"toolbar-item plait-action-icon\" (mousedown)=\"zoomOut()\">\n <ng-template [ngTemplateOutlet]=\"zoomOutTemplate\"></ng-template>\n </a>\n <div class=\"toolbar-item zoom-value\" (mousedown)=\"resetZoom()\">{{ zoom }}%</div>\n <a class=\"toolbar-item plait-action-icon\" (mousedown)=\"zoomIn()\">\n <ng-template [ngTemplateOutlet]=\"zoomInTemplate\"></ng-template>\n </a>\n</div>\n\n<ng-template #dragMoveTemplate>\n <svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <title>1.Base\u57FA\u7840/1.icon\u56FE\u6807/2.normal/hand</title>\n <g id=\"1.Base\u57FA\u7840/1.icon\u56FE\u6807/2.normal/hand\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n <path\n d=\"M8.44583468,0.500225887 C9.07406934,0.510185679 9.54739531,0.839591366 9.86192311,1.34305279 C9.89696656,1.39914649 9.92878401,1.45492964 9.9576026,1.50991157 L9.9576026,1.50991157 L10.0210033,1.64201027 L10.061978,1.62350755 C10.1972891,1.56834247 10.3444107,1.53218464 10.5027907,1.51755353 L10.5027907,1.51755353 L10.6649031,1.51019133 C11.4883708,1.51019133 12.0208782,1.99343346 12.3023042,2.66393278 C12.3903714,2.87392911 12.4344191,3.10047818 12.4339446,3.3257952 L12.4339446,3.3257952 L12.4360033,3.80501027 L12.5160535,3.78341501 C12.6124478,3.76124046 12.7138812,3.74739854 12.820201,3.74250274 L12.820201,3.74250274 L12.9833264,3.74194533 C13.6121166,3.7657478 14.0645887,4.0801724 14.3087062,4.56112689 C14.4521117,4.8436609 14.4987984,5.11349437 14.4999262,5.33449618 L14.4999262,5.33449618 L14.3922653,12.049414 C14.3784752,12.909177 14.0717787,13.7360948 13.5212406,14.3825228 C13.4055676,14.5183496 13.2843697,14.643961 13.1582361,14.7596335 C12.4634771,15.3967716 11.755103,15.6538706 11.1897396,15.7000055 L11.1897396,15.7000055 L7.4723083,15.6798158 C7.14276373,15.634268 6.81580098,15.5154267 6.49455235,15.3472501 C6.25643701,15.2225944 6.06881706,15.0975452 5.88705731,14.9494308 L5.88705731,14.9494308 L2.55198782,11.500873 C2.39559475,11.3769079 2.17626793,11.1748532 1.9548636,10.9139403 C1.57867502,10.4706225 1.33501976,10.0139923 1.30330257,9.52833025 C1.28093191,9.18578476 1.37200912,8.85641102 1.5826788,8.56872564 C1.82538833,8.23725279 2.12881965,8.02107162 2.47470569,7.92957033 C2.95807982,7.80169771 3.42705723,7.92468989 3.86509644,8.18731167 C4.04431391,8.29475961 4.1816109,8.40304483 4.26225571,8.47866867 L4.26225571,8.47866867 L4.61400328,8.79701027 L4.57247249,3.59275349 L4.57628524,3.46204923 C4.5897691,3.23444442 4.64087578,2.95701848 4.75937106,2.66961597 C5.01017272,2.06131302 5.49670227,1.64692543 6.21363856,1.60818786 C6.44223508,1.59583681 6.65042099,1.62176802 6.83696985,1.68057551 L6.83696985,1.68057551 L6.86400328,1.69001027 C6.88501862,1.63593052 6.90764242,1.58175442 6.9331867,1.52672633 L6.9331867,1.52672633 L7.01883595,1.35955614 C7.31549194,0.832047939 7.79476072,0.48993549 8.44583468,0.500225887 Z M8.42684173,1.70001476 C8.26825412,1.69756905 8.16339456,1.77242008 8.06478367,1.94776814 C8.03967773,1.99241107 8.01831703,2.03811495 8.00083464,2.07855067 L8.00083464,2.07855067 L7.94879157,2.2035905 L7.94354455,2.20731401 L7.943,3.161 L7.97170661,3.16123746 L7.97170661,7.60991883 L6.77170661,7.60991883 L6.771,3.338 L6.74362358,3.33880359 C6.74284189,3.29064626 6.73014163,3.20282206 6.7002616,3.11094408 L6.66446012,3.01903385 C6.58982025,2.85766739 6.49843292,2.79455071 6.27838133,2.80644008 C6.07001018,2.81769881 5.95642108,2.91444507 5.86877664,3.12702089 C5.79792279,3.29887224 5.77228127,3.48655908 5.77246879,3.58977183 L5.77246879,3.58977183 L5.83613619,11.5252021 L3.41863956,9.33477657 L3.31637296,9.25979571 L3.24805011,9.21651224 C3.06096922,9.10434987 2.89279975,9.06024641 2.78159879,9.0896637 C2.71007735,9.10858411 2.63607367,9.1613084 2.55086305,9.27768211 C2.51020424,9.33320478 2.49638061,9.38319687 2.50075171,9.4501283 C2.51206889,9.62341997 2.64503022,9.87260054 2.86983366,10.1375191 C3.03268834,10.3294345 3.19762053,10.4813781 3.35554956,10.6131022 L3.35554956,10.6131022 L6.68454317,14.0569073 C6.71106575,14.0773808 6.74806086,14.1037158 6.79369091,14.1335929 L6.79369091,14.1335929 L6.95464838,14.2315311 L7.05111031,14.2841211 C7.25978123,14.3933622 7.46253523,14.4670573 7.55685495,14.4854708 L7.55685495,14.4854708 L11.1407985,14.5022108 C11.1503576,14.5013899 11.1627905,14.4997539 11.1779002,14.4971772 L11.1779002,14.4971772 L11.2991076,14.4694224 C11.3491682,14.4557375 11.4083624,14.437284 11.4751158,14.4130563 C11.769383,14.3062543 12.066676,14.1324596 12.3471758,13.8752234 C12.4371203,13.7927386 12.5240597,13.7026333 12.607654,13.6044743 C12.9760464,13.1719172 13.183059,12.6137678 13.1924195,12.030173 L13.1924195,12.030173 L13.3000132,5.32832551 C13.2997939,5.29016685 13.2826117,5.19085946 13.2386527,5.10425262 C13.1843838,4.99733326 13.1129774,4.94771265 12.9379578,4.94108739 C12.6814739,4.93138871 12.534132,5.11189595 12.4756792,5.39480062 L12.4768718,7.52734922 L11.2768718,7.52734922 L11.276,5.688 L11.2462883,5.6883208 L11.2339541,3.32771285 C11.2341,3.2560396 11.2209054,3.18817621 11.1957482,3.12818892 C11.0820579,2.85732094 10.9199288,2.71019133 10.6649031,2.71019133 C10.456829,2.71019133 10.3197487,2.87378067 10.2524297,3.11264939 L10.2530225,7.512783 L9.05302254,7.512783 L9.053,3.288 L9.01554331,3.28724203 L8.98800328,2.29901027 L8.9629175,2.22263368 C8.94515567,2.17417174 8.92167756,2.11937748 8.8924232,2.06330056 L8.8924232,2.06330056 L8.84420197,1.9788544 C8.72758855,1.79219249 8.59915015,1.70280728 8.42684173,1.70001476 Z\"\n id=\"\u5F62\u72B6\u7ED3\u5408\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n</ng-template>\n\n<ng-template #adaptTemplate>\n <svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <title>1.Base\u57FA\u7840/1.icon\u56FE\u6807/2.normal/Fit canvas</title>\n <g id=\"1.Base\u57FA\u7840/1.icon\u56FE\u6807/2.normal/Fit-canvas\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n <path\n d=\"M14.9971494,10.4 L14.9971494,13.4020516 C14.9971494,14.2366152 14.3581879,14.9219414 13.542782,14.9955129 L13.3971494,15.0020516 L10.4,15.0020516 L10.4,13.8020516 L13.3971494,13.8020516 C13.590449,13.8020516 13.7517243,13.6649388 13.7890228,13.4826656 L13.7971494,13.4020516 L13.7971494,10.4 L14.9971494,10.4 Z M2.2,10.4 L2.2,13.3971494 C2.2,13.590449 2.3371128,13.7517243 2.51938605,13.7890228 L2.6,13.7971494 L5.60205161,13.7971494 L5.60205161,14.9971494 L2.6,14.9971494 C1.76543638,14.9971494 1.08011021,14.3581879 1.00653868,13.542782 L1,13.3971494 L1,10.4 L2.2,10.4 Z M10.5024511,4.9 C11.3861067,4.9 12.1024511,5.6163444 12.1024511,6.5 L12.1024511,6.5 L12.1024511,9.5 C12.1024511,10.3836556 11.3861067,11.1 10.5024511,11.1 L10.5024511,11.1 L5.50245112,11.1 C4.61879552,11.1 3.90245112,10.3836556 3.90245112,9.5 L3.90245112,9.5 L3.90245112,6.5 C3.90245112,5.6163444 4.61879552,4.9 5.50245112,4.9 L5.50245112,4.9 Z M10.5024511,6.1 L5.50245112,6.1 C5.28153722,6.1 5.10245112,6.2790861 5.10245112,6.5 L5.10245112,6.5 L5.10245112,9.5 C5.10245112,9.7209139 5.28153722,9.9 5.50245112,9.9 L5.50245112,9.9 L10.5024511,9.9 C10.723365,9.9 10.9024511,9.7209139 10.9024511,9.5 L10.9024511,9.5 L10.9024511,6.5 C10.9024511,6.2790861 10.723365,6.1 10.5024511,6.1 L10.5024511,6.1 Z M5.59714938,1 L5.59714938,2.2 L2.6,2.2 C2.40670034,2.2 2.24542508,2.3371128 2.20812658,2.51938605 L2.2,2.6 L2.2,5.60205161 L1,5.60205161 L1,2.6 C1,1.76543638 1.63896152,1.08011021 2.45436739,1.00653868 L2.6,1 L5.59714938,1 Z M13.3971494,1 L13.542782,1.00653868 C14.3581879,1.08011021 14.9971494,1.76543638 14.9971494,2.6 L14.9971494,2.6 L14.9971494,5.60205161 L13.7971494,5.60205161 L13.7971494,2.6 L13.7890228,2.51938605 C13.7517243,2.3371128 13.590449,2.2 13.3971494,2.2 L13.3971494,2.2 L10.4,2.2 L10.4,1 L13.3971494,1 Z\"\n id=\"\u5F62\u72B6\u7ED3\u5408\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n</ng-template>\n<ng-template #zoomOutTemplate>\n <svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <title>action/zoom-out</title>\n <desc>Created with Sketch.</desc>\n <g id=\"action/zoom-out\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n <path\n d=\"M6.85,2.73225886e-13 C10.6331505,2.73225886e-13 13.7,3.06684946 13.7,6.85 C13.7,8.54194045 13.0865836,10.0906098 12.0700142,11.2857448 L15.4201976,14.5717081 C15.6567367,14.8037768 15.6603607,15.1836585 15.4282919,15.4201976 C15.1962232,15.6567367 14.8163415,15.6603607 14.5798024,15.4282919 L14.5798024,15.4282919 L11.2163456,12.128262 C10.0309427,13.1099691 8.50937591,13.7 6.85,13.7 C3.06684946,13.7 4.58522109e-14,10.6331505 4.58522109e-14,6.85 C4.58522109e-14,3.06684946 3.06684946,2.73225886e-13 6.85,2.73225886e-13 Z M6.85,1.2 C3.72959116,1.2 1.2,3.72959116 1.2,6.85 C1.2,9.97040884 3.72959116,12.5 6.85,12.5 C8.31753357,12.5 9.65438791,11.9404957 10.6588859,11.0231643 C10.6855412,10.9625408 10.7245275,10.9050898 10.7743982,10.8542584 C10.8288931,10.7987137 10.8915387,10.7560124 10.9585649,10.7261903 C11.9144009,9.71595758 12.5,8.35136579 12.5,6.85 C12.5,3.72959116 9.97040884,1.2 6.85,1.2 Z M4.6,6.2 L9.12944565,6.2 C9.4608165,6.2 9.72944565,6.46862915 9.72944565,6.8 C9.72944565,7.09823376 9.51185604,7.34564675 9.22676876,7.39214701 L9.12944565,7.4 L4.6,7.4 C4.26862915,7.4 4,7.13137085 4,6.8 C4,6.50176624 4.21758961,6.25435325 4.50267688,6.20785299 L4.6,6.2 L9.12944565,6.2 Z\"\n id=\"\u5F62\u72B6\u7ED3\u5408\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n</ng-template>\n\n<ng-template #zoomInTemplate\n ><svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <title>action/zoom-in</title>\n <desc>Created with Sketch.</desc>\n <g id=\"action/zoom-in\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n <path\n d=\"M6.85,-1.81188398e-13 C10.6331505,-1.81188398e-13 13.7,3.06684946 13.7,6.85 C13.7,8.54194045 13.0865836,10.0906098 12.0700142,11.2857448 L15.4201976,14.5717081 C15.6567367,14.8037768 15.6603607,15.1836585 15.4282919,15.4201976 C15.1962232,15.6567367 14.8163415,15.6603607 14.5798024,15.4282919 L14.5798024,15.4282919 L11.2163456,12.128262 C10.0309427,13.1099691 8.50937591,13.7 6.85,13.7 C3.06684946,13.7 4.61852778e-14,10.6331505 4.61852778e-14,6.85 C4.61852778e-14,3.06684946 3.06684946,-1.81188398e-13 6.85,-1.81188398e-13 Z M6.85,1.2 C3.72959116,1.2 1.2,3.72959116 1.2,6.85 C1.2,9.97040884 3.72959116,12.5 6.85,12.5 C8.31753357,12.5 9.65438791,11.9404957 10.6588859,11.0231643 C10.6855412,10.9625408 10.7245275,10.9050898 10.7743982,10.8542584 C10.8288931,10.7987137 10.8915387,10.7560124 10.9585649,10.7261903 C11.9144009,9.71595758 12.5,8.35136579 12.5,6.85 C12.5,3.72959116 9.97040884,1.2 6.85,1.2 Z M6.86472282,3.93527718 C7.16295659,3.93527718 7.41036958,4.15286679 7.45686984,4.43795406 L7.46472282,4.53527718 L7.464,6.19927718 L9.12944565,6.2 C9.42767941,6.2 9.6750924,6.41758961 9.72159266,6.70267688 L9.72944565,6.8 C9.72944565,7.09823376 9.51185604,7.34564675 9.22676876,7.39214701 L9.12944565,7.4 L7.464,7.39927718 L7.46472282,9.06472282 C7.46472282,9.36295659 7.24713321,9.61036958 6.96204594,9.65686984 L6.86472282,9.66472282 C6.56648906,9.66472282 6.31907607,9.44713321 6.27257581,9.16204594 L6.26472282,9.06472282 L6.264,7.39927718 L4.6,7.4 C4.30176624,7.4 4.05435325,7.18241039 4.00785299,6.89732312 L4,6.8 C4,6.50176624 4.21758961,6.25435325 4.50267688,6.20785299 L4.6,6.2 L6.264,6.19927718 L6.26472282,4.53527718 C6.26472282,4.2701805 6.43664548,4.0452385 6.67507642,3.96586557 L6.76739971,3.94313016 L6.86472282,3.93527718 Z\"\n id=\"\u5F62\u72B6\u7ED3\u5408\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n</ng-template>\n" }]
|
|
46
|
-
}], propDecorators: { hostClass: [{
|
|
47
|
-
type: HostBinding,
|
|
48
|
-
args: ['class']
|
|
49
|
-
}], board: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], adaptHandle: [{
|
|
52
|
-
type: Output
|
|
53
|
-
}], zoomInHandle: [{
|
|
54
|
-
type: Output
|
|
55
|
-
}], zoomOutHandle: [{
|
|
56
|
-
type: Output
|
|
57
|
-
}], resetZoomHandel: [{
|
|
58
|
-
type: Output
|
|
59
|
-
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvY29yZS90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL2NvcmUvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBYyxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFPM0QsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQU1JLHFCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBRWQsY0FBUyxHQUFHLHFCQUFxQixDQUFDO1FBYTlDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5DLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQXdCbEQ7SUF2Q0csSUFBSSxJQUFJO1FBQ0osTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUM1QyxPQUFPLE1BQU0sQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7SUFDeEQsQ0FBQztJQVVELFVBQVU7UUFDTixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVELE9BQU87SUFDUCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSztJQUNMLE1BQU07UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxLQUFLO0lBQ0wsT0FBTztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7O2tIQTdDUSxxQkFBcUI7c0dBQXJCLHFCQUFxQixpUkNUbEMsZ3JaQWtHQTsyRkR6RmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNJLGVBQWUsbUJBRVIsdUJBQXVCLENBQUMsTUFBTTs4QkFLekIsU0FBUztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPO2dCQUVYLEtBQUs7c0JBQWIsS0FBSztnQkFXSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRQb2ludGVyVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgdXBkYXRlUG9pbnRlclR5cGUgfSBmcm9tICcuLi8uLi90cmFuc2Zvcm1zL2JvYXJkJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwbGFpdC10b29sYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGxhaXRUb29sYmFyQ29tcG9uZW50IHtcbiAgICBQbGFpdFBvaW50ZXJUeXBlID0gUGxhaXRQb2ludGVyVHlwZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBob3N0Q2xhc3MgPSBgcGxhaXQtYm9hcmQtdG9vbGJhcmA7XG5cbiAgICBASW5wdXQoKSBib2FyZCE6IFBsYWl0Qm9hcmQ7XG5cbiAgICBnZXQgem9vbSgpIHtcbiAgICAgICAgY29uc3Qgem9vbSA9IHRoaXMuYm9hcmQ/LnZpZXdwb3J0Lnpvb20gfHwgMTtcbiAgICAgICAgcmV0dXJuIE51bWJlcigoem9vbSAqIDEwMCkudG9GaXhlZCgwKSk7XG4gICAgfVxuXG4gICAgZ2V0IGlzSGFuZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYm9hcmQucG9pbnRlciA9PT0gUGxhaXRQb2ludGVyVHlwZS5oYW5kO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBhZGFwdEhhbmRsZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSB6b29tSW5IYW5kbGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgem9vbU91dEhhbmRsZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSByZXNldFpvb21IYW5kZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBhY3RpdmVIYW5kKCkge1xuICAgICAgICB1cGRhdGVQb2ludGVyVHlwZSh0aGlzLmJvYXJkLCB0aGlzLmlzSGFuZCA/IFBsYWl0UG9pbnRlclR5cGUuc2VsZWN0aW9uIDogUGxhaXRQb2ludGVyVHlwZS5oYW5kKTtcbiAgICB9XG5cbiAgICAvLyDpgILlupTnlLvluINcbiAgICBhZGFwdCgpIHtcbiAgICAgICAgdGhpcy5hZGFwdEhhbmRsZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgLy8g5pS+5aSnXG4gICAgem9vbUluKCkge1xuICAgICAgICB0aGlzLnpvb21JbkhhbmRsZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgLy8g57yp5bCPXG4gICAgem9vbU91dCgpIHtcbiAgICAgICAgdGhpcy56b29tT3V0SGFuZGxlLmVtaXQoKTtcbiAgICB9XG5cbiAgICByZXNldFpvb20oKSB7XG4gICAgICAgIHRoaXMucmVzZXRab29tSGFuZGVsLmVtaXQoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiem9vbS10b29sYmFyIGlzbGFuZCBwbGFpdC1ib2FyZC1hdHRhY2hlZFwiPlxuICAgIDxhIGNsYXNzPVwidG9vbGJhci1pdGVtIHBsYWl0LWFjdGlvbi1pY29uXCIgW25nQ2xhc3NdPVwieyAnaWNvbi1hY3RpdmUnOiBpc0hhbmQgfVwiIChjbGljayk9XCJhY3RpdmVIYW5kKClcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRyYWdNb3ZlVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvYT5cbiAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlclwiPjwvZGl2PlxuICAgIDxhIGNsYXNzPVwidG9vbGJhci1pdGVtIHBsYWl0LWFjdGlvbi1pY29uXCIgKG1vdXNlZG93bik9XCJhZGFwdCgpXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJhZGFwdFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2E+XG4gICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cbiAgICA8YSBjbGFzcz1cInRvb2xiYXItaXRlbSBwbGFpdC1hY3Rpb24taWNvblwiIChtb3VzZWRvd24pPVwiem9vbU91dCgpXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ6b29tT3V0VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvYT5cbiAgICA8ZGl2IGNsYXNzPVwidG9vbGJhci1pdGVtIHpvb20tdmFsdWVcIiAobW91c2Vkb3duKT1cInJlc2V0Wm9vbSgpXCI+e3sgem9vbSB9fSU8L2Rpdj5cbiAgICA8YSBjbGFzcz1cInRvb2xiYXItaXRlbSBwbGFpdC1hY3Rpb24taWNvblwiIChtb3VzZWRvd24pPVwiem9vbUluKClcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInpvb21JblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2E+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkcmFnTW92ZVRlbXBsYXRlPlxuICAgIDxzdmdcbiAgICAgICAgd2lkdGg9XCIxNnB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMTZweFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgPlxuICAgICAgICA8dGl0bGU+MS5CYXNl5Z+656GALzEuaWNvbuWbvuaghy8yLm5vcm1hbC9oYW5kPC90aXRsZT5cbiAgICAgICAgPGcgaWQ9XCIxLkJhc2Xln7rnoYAvMS5pY29u5Zu+5qCHLzIubm9ybWFsL2hhbmRcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk04LjQ0NTgzNDY4LDAuNTAwMjI1ODg3IEM5LjA3NDA2OTM0LDAuNTEwMTg1Njc5IDkuNTQ3Mzk1MzEsMC44Mzk1OTEzNjYgOS44NjE5MjMxMSwxLjM0MzA1Mjc5IEM5Ljg5Njk2NjU2LDEuMzk5MTQ2NDkgOS45Mjg3ODQwMSwxLjQ1NDkyOTY0IDkuOTU3NjAyNiwxLjUwOTkxMTU3IEw5Ljk1NzYwMjYsMS41MDk5MTE1NyBMMTAuMDIxMDAzMywxLjY0MjAxMDI3IEwxMC4wNjE5NzgsMS42MjM1MDc1NSBDMTAuMTk3Mjg5MSwxLjU2ODM0MjQ3IDEwLjM0NDQxMDcsMS41MzIxODQ2NCAxMC41MDI3OTA3LDEuNTE3NTUzNTMgTDEwLjUwMjc5MDcsMS41MTc1NTM1MyBMMTAuNjY0OTAzMSwxLjUxMDE5MTMzIEMxMS40ODgzNzA4LDEuNTEwMTkxMzMgMTIuMDIwODc4MiwxLjk5MzQzMzQ2IDEyLjMwMjMwNDIsMi42NjM5MzI3OCBDMTIuMzkwMzcxNCwyLjg3MzkyOTExIDEyLjQzNDQxOTEsMy4xMDA0NzgxOCAxMi40MzM5NDQ2LDMuMzI1Nzk1MiBMMTIuNDMzOTQ0NiwzLjMyNTc5NTIgTDEyLjQzNjAwMzMsMy44MDUwMTAyNyBMMTIuNTE2MDUzNSwzLjc4MzQxNTAxIEMxMi42MTI0NDc4LDMuNzYxMjQwNDYgMTIuNzEzODgxMiwzLjc0NzM5ODU0IDEyLjgyMDIwMSwzLjc0MjUwMjc0IEwxMi44MjAyMDEsMy43NDI1MDI3NCBMMTIuOTgzMzI2NCwzLjc0MTk0NTMzIEMxMy42MTIxMTY2LDMuNzY1NzQ3OCAxNC4wNjQ1ODg3LDQuMDgwMTcyNCAxNC4zMDg3MDYyLDQuNTYxMTI2ODkgQzE0LjQ1MjExMTcsNC44NDM2NjA5IDE0LjQ5ODc5ODQsNS4xMTM0OTQzNyAxNC40OTk5MjYyLDUuMzM0NDk2MTggTDE0LjQ5OTkyNjIsNS4zMzQ0OTYxOCBMMTQuMzkyMjY1MywxMi4wNDk0MTQgQzE0LjM3ODQ3NTIsMTIuOTA5MTc3IDE0LjA3MTc3ODcsMTMuNzM2MDk0OCAxMy41MjEyNDA2LDE0LjM4MjUyMjggQzEzLjQwNTU2NzYsMTQuNTE4MzQ5NiAxMy4yODQzNjk3LDE0LjY0Mzk2MSAxMy4xNTgyMzYxLDE0Ljc1OTYzMzUgQzEyLjQ2MzQ3NzEsMTUuMzk2NzcxNiAxMS43NTUxMDMsMTUuNjUzODcwNiAxMS4xODk3Mzk2LDE1LjcwMDAwNTUgTDExLjE4OTczOTYsMTUuNzAwMDA1NSBMNy40NzIzMDgzLDE1LjY3OTgxNTggQzcuMTQyNzYzNzMsMTUuNjM0MjY4IDYuODE1ODAwOTgsMTUuNTE1NDI2NyA2LjQ5NDU1MjM1LDE1LjM0NzI1MDEgQzYuMjU2NDM3MDEsMTUuMjIyNTk0NCA2LjA2ODgxNzA2LDE1LjA5NzU0NTIgNS44ODcwNTczMSwxNC45NDk0MzA4IEw1Ljg4NzA1NzMxLDE0Ljk0OTQzMDggTDIuNTUxOTg3ODIsMTEuNTAwODczIEMyLjM5NTU5NDc1LDExLjM3NjkwNzkgMi4xNzYyNjc5MywxMS4xNzQ4NTMyIDEuOTU0ODYzNiwxMC45MTM5NDAzIEMxLjU3ODY3NTAyLDEwLjQ3MDYyMjUgMS4zMzUwMTk3NiwxMC4wMTM5OTIzIDEuMzAzMzAyNTcsOS41MjgzMzAyNSBDMS4yODA5MzE5MSw5LjE4NTc4NDc2IDEuMzcyMDA5MTIsOC44NTY0MTEwMiAxLjU4MjY3ODgsOC41Njg3MjU2NCBDMS44MjUzODgzMyw4LjIzNzI1Mjc5IDIuMTI4ODE5NjUsOC4wMjEwNzE2MiAyLjQ3NDcwNTY5LDcuOTI5NTcwMzMgQzIuOTU4MDc5ODIsNy44MDE2OTc3MSAzLjQyNzA1NzIzLDcuOTI0Njg5ODkgMy44NjUwOTY0NCw4LjE4NzMxMTY3IEM0LjA0NDMxMzkxLDguMjk0NzU5NjEgNC4xODE2MTA5LDguNDAzMDQ0ODMgNC4yNjIyNTU3MSw4LjQ3ODY2ODY3IEw0LjI2MjI1NTcxLDguNDc4NjY4NjcgTDQuNjE0MDAzMjgsOC43OTcwMTAyNyBMNC41NzI0NzI0OSwzLjU5Mjc1MzQ5IEw0LjU3NjI4NTI0LDMuNDYyMDQ5MjMgQzQuNTg5NzY5MSwzLjIzNDQ0NDQyIDQuNjQwODc1NzgsMi45NTcwMTg0OCA0Ljc1OTM3MTA2LDIuNjY5NjE1OTcgQzUuMDEwMTcyNzIsMi4wNjEzMTMwMiA1LjQ5NjcwMjI3LDEuNjQ2OTI1NDMgNi4yMTM2Mzg1NiwxLjYwODE4Nzg2IEM2LjQ0MjIzNTA4LDEuNTk1ODM2ODEgNi42NTA0MjA5OSwxLjYyMTc2ODAyIDYuODM2OTY5ODUsMS42ODA1NzU1MSBMNi44MzY5Njk4NSwxLjY4MDU3NTUxIEw2Ljg2NDAwMzI4LDEuNjkwMDEwMjcgQzYuODg1MDE4NjIsMS42MzU5MzA1MiA2LjkwNzY0MjQyLDEuNTgxNzU0NDIgNi45MzMxODY3LDEuNTI2NzI2MzMgTDYuOTMzMTg2NywxLjUyNjcyNjMzIEw3LjAxODgzNTk1LDEuMzU5NTU2MTQgQzcuMzE1NDkxOTQsMC44MzIwNDc5MzkgNy43OTQ3NjA3MiwwLjQ4OTkzNTQ5IDguNDQ1ODM0NjgsMC41MDAyMjU4ODcgWiBNOC40MjY4NDE3MywxLjcwMDAxNDc2IEM4LjI2ODI1NDEyLDEuNjk3NTY5MDUgOC4xNjMzOTQ1NiwxLjc3MjQyMDA4IDguMDY0NzgzNjcsMS45NDc3NjgxNCBDOC4wMzk2Nzc3MywxLjk5MjQxMTA3IDguMDE4MzE3MDMsMi4wMzgxMTQ5NSA4LjAwMDgzNDY0LDIuMDc4NTUwNjcgTDguMDAwODM0NjQsMi4wNzg1NTA2NyBMNy45NDg3OTE1NywyLjIwMzU5MDUgTDcuOTQzNTQ0NTUsMi4yMDczMTQwMSBMNy45NDMsMy4xNjEgTDcuOTcxNzA2NjEsMy4xNjEyMzc0NiBMNy45NzE3MDY2MSw3LjYwOTkxODgzIEw2Ljc3MTcwNjYxLDcuNjA5OTE4ODMgTDYuNzcxLDMuMzM4IEw2Ljc0MzYyMzU4LDMuMzM4ODAzNTkgQzYuNzQyODQxODksMy4yOTA2NDYyNiA2LjczMDE0MTYzLDMuMjAyODIyMDYgNi43MDAyNjE2LDMuMTEwOTQ0MDggTDYuNjY0NDYwMTIsMy4wMTkwMzM4NSBDNi41ODk4MjAyNSwyLjg1NzY2NzM5IDYuNDk4NDMyOTIsMi43OTQ1NTA3MSA2LjI3ODM4MTMzLDIuODA2NDQwMDggQzYuMDcwMDEwMTgsMi44MTc2OTg4MSA1Ljk1NjQyMTA4LDIuOTE0NDQ1MDcgNS44Njg3NzY2NCwzLjEyNzAyMDg5IEM1Ljc5NzkyMjc5LDMuMjk4ODcyMjQgNS43NzIyODEyNywzLjQ4NjU1OTA4IDUuNzcyNDY4NzksMy41ODk3NzE4MyBMNS43NzI0Njg3OSwzLjU4OTc3MTgzIEw1LjgzNjEzNjE5LDExLjUyNTIwMjEgTDMuNDE4NjM5NTYsOS4zMzQ3NzY1NyBMMy4zMTYzNzI5Niw5LjI1OTc5NTcxIEwzLjI0ODA1MDExLDkuMjE2NTEyMjQgQzMuMDYwOTY5MjIsOS4xMDQzNDk4NyAyLjg5Mjc5OTc1LDkuMDYwMjQ2NDEgMi43ODE1OTg3OSw5LjA4OTY2MzcgQzIuNzEwMDc3MzUsOS4xMDg1ODQxMSAyLjYzNjA3MzY3LDkuMTYxMzA4NCAyLjU1MDg2MzA1LDkuMjc3NjgyMTEgQzIuNTEwMjA0MjQsOS4zMzMyMDQ3OCAyLjQ5NjM4MDYxLDkuMzgzMTk2ODcgMi41MDA3NTE3MSw5LjQ1MDEyODMgQzIuNTEyMDY4ODksOS42MjM0MTk5NyAyLjY0NTAzMDIyLDkuODcyNjAwNTQgMi44Njk4MzM2NiwxMC4xMzc1MTkxIEMzLjAzMjY4ODM0LDEwLjMyOTQzNDUgMy4xOTc2MjA1MywxMC40ODEzNzgxIDMuMzU1NTQ5NTYsMTAuNjEzMTAyMiBMMy4zNTU1NDk1NiwxMC42MTMxMDIyIEw2LjY4NDU0MzE3LDE0LjA1NjkwNzMgQzYuNzExMDY1NzUsMTQuMDc3MzgwOCA2Ljc0ODA2MDg2LDE0LjEwMzcxNTggNi43OTM2OTA5MSwxNC4xMzM1OTI5IEw2Ljc5MzY5MDkxLDE0LjEzMzU5MjkgTDYuOTU0NjQ4MzgsMTQuMjMxNTMxMSBMNy4wNTExMTAzMSwxNC4yODQxMjExIEM3LjI1OTc4MTIzLDE0LjM5MzM2MjIgNy40NjI1MzUyMywxNC40NjcwNTczIDcuNTU2ODU0OTUsMTQuNDg1NDcwOCBMNy41NTY4NTQ5NSwxNC40ODU0NzA4IEwxMS4xNDA3OTg1LDE0LjUwMjIxMDggQzExLjE1MDM1NzYsMTQuNTAxMzg5OSAxMS4xNjI3OTA1LDE0LjQ5OTc1MzkgMTEuMTc3OTAwMiwxNC40OTcxNzcyIEwxMS4xNzc5MDAyLDE0LjQ5NzE3NzIgTDExLjI5OTEwNzYsMTQuNDY5NDIyNCBDMTEuMzQ5MTY4MiwxNC40NTU3Mzc1IDExLjQwODM2MjQsMTQuNDM3Mjg0IDExLjQ3NTExNTgsMTQuNDEzMDU2MyBDMTEuNzY5MzgzLDE0LjMwNjI1NDMgMTIuMDY2Njc2LDE0LjEzMjQ1OTYgMTIuMzQ3MTc1OCwxMy44NzUyMjM0IEMxMi40MzcxMjAzLDEzLjc5MjczODYgMTIuNTI0MDU5NywxMy43MDI2MzMzIDEyLjYwNzY1NCwxMy42MDQ0NzQzIEMxMi45NzYwNDY0LDEzLjE3MTkxNzIgMTMuMTgzMDU5LDEyLjYxMzc2NzggMTMuMTkyNDE5NSwxMi4wMzAxNzMgTDEzLjE5MjQxOTUsMTIuMDMwMTczIEwxMy4zMDAwMTMyLDUuMzI4MzI1NTEgQzEzLjI5OTc5MzksNS4yOTAxNjY4NSAxMy4yODI2MTE3LDUuMTkwODU5NDYgMTMuMjM4NjUyNyw1LjEwNDI1MjYyIEMxMy4xODQzODM4LDQuOTk3MzMzMjYgMTMuMTEyOTc3NCw0Ljk0NzcxMjY1IDEyLjkzNzk1NzgsNC45NDEwODczOSBDMTIuNjgxNDczOSw0LjkzMTM4ODcxIDEyLjUzNDEzMiw1LjExMTg5NTk1IDEyLjQ3NTY3OTIsNS4zOTQ4MDA2MiBMMTIuNDc2ODcxOCw3LjUyNzM0OTIyIEwxMS4yNzY4NzE4LDcuNTI3MzQ5MjIgTDExLjI3Niw1LjY4OCBMMTEuMjQ2Mjg4Myw1LjY4ODMyMDggTDExLjIzMzk1NDEsMy4zMjc3MTI4NSBDMTEuMjM0MSwzLjI1NjAzOTYgMTEuMjIwOTA1NCwzLjE4ODE3NjIxIDExLjE5NTc0ODIsMy4xMjgxODg5MiBDMTEuMDgyMDU3OSwyLjg1NzMyMDk0IDEwLjkxOTkyODgsMi43MTAxOTEzMyAxMC42NjQ5MDMxLDIuNzEwMTkxMzMgQzEwLjQ1NjgyOSwyLjcxMDE5MTMzIDEwLjMxOTc0ODcsMi44NzM3ODA2NyAxMC4yNTI0Mjk3LDMuMTEyNjQ5MzkgTDEwLjI1MzAyMjUsNy41MTI3ODMgTDkuMDUzMDIyNTQsNy41MTI3ODMgTDkuMDUzLDMuMjg4IEw5LjAxNTU0MzMxLDMuMjg3MjQyMDMgTDguOTg4MDAzMjgsMi4yOTkwMTAyNyBMOC45NjI5MTc1LDIuMjIyNjMzNjggQzguOTQ1MTU1NjcsMi4xNzQxNzE3NCA4LjkyMTY3NzU2LDIuMTE5Mzc3NDggOC44OTI0MjMyLDIuMDYzMzAwNTYgTDguODkyNDIzMiwyLjA2MzMwMDU2IEw4Ljg0NDIwMTk3LDEuOTc4ODU0NCBDOC43Mjc1ODg1NSwxLjc5MjE5MjQ5IDguNTk5MTUwMTUsMS43MDI4MDcyOCA4LjQyNjg0MTczLDEuNzAwMDE0NzYgWlwiXG4gICAgICAgICAgICAgICAgaWQ9XCLlvaLnirbnu5PlkIhcIlxuICAgICAgICAgICAgICAgIGZpbGwtcnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNhZGFwdFRlbXBsYXRlPlxuICAgIDxzdmdcbiAgICAgICAgd2lkdGg9XCIxNnB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMTZweFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgPlxuICAgICAgICA8dGl0bGU+MS5CYXNl5Z+656GALzEuaWNvbuWbvuaghy8yLm5vcm1hbC9GaXQgY2FudmFzPC90aXRsZT5cbiAgICAgICAgPGcgaWQ9XCIxLkJhc2Xln7rnoYAvMS5pY29u5Zu+5qCHLzIubm9ybWFsL0ZpdC1jYW52YXNcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk0xNC45OTcxNDk0LDEwLjQgTDE0Ljk5NzE0OTQsMTMuNDAyMDUxNiBDMTQuOTk3MTQ5NCwxNC4yMzY2MTUyIDE0LjM1ODE4NzksMTQuOTIxOTQxNCAxMy41NDI3ODIsMTQuOTk1NTEyOSBMMTMuMzk3MTQ5NCwxNS4wMDIwNTE2IEwxMC40LDE1LjAwMjA1MTYgTDEwLjQsMTMuODAyMDUxNiBMMTMuMzk3MTQ5NCwxMy44MDIwNTE2IEMxMy41OTA0NDksMTMuODAyMDUxNiAxMy43NTE3MjQzLDEzLjY2NDkzODggMTMuNzg5MDIyOCwxMy40ODI2NjU2IEwxMy43OTcxNDk0LDEzLjQwMjA1MTYgTDEzLjc5NzE0OTQsMTAuNCBMMTQuOTk3MTQ5NCwxMC40IFogTTIuMiwxMC40IEwyLjIsMTMuMzk3MTQ5NCBDMi4yLDEzLjU5MDQ0OSAyLjMzNzExMjgsMTMuNzUxNzI0MyAyLjUxOTM4NjA1LDEzLjc4OTAyMjggTDIuNiwxMy43OTcxNDk0IEw1LjYwMjA1MTYxLDEzLjc5NzE0OTQgTDUuNjAyMDUxNjEsMTQuOTk3MTQ5NCBMMi42LDE0Ljk5NzE0OTQgQzEuNzY1NDM2MzgsMTQuOTk3MTQ5NCAxLjA4MDExMDIxLDE0LjM1ODE4NzkgMS4wMDY1Mzg2OCwxMy41NDI3ODIgTDEsMTMuMzk3MTQ5NCBMMSwxMC40IEwyLjIsMTAuNCBaIE0xMC41MDI0NTExLDQuOSBDMTEuMzg2MTA2Nyw0LjkgMTIuMTAyNDUxMSw1LjYxNjM0NDQgMTIuMTAyNDUxMSw2LjUgTDEyLjEwMjQ1MTEsNi41IEwxMi4xMDI0NTExLDkuNSBDMTIuMTAyNDUxMSwxMC4zODM2NTU2IDExLjM4NjEwNjcsMTEuMSAxMC41MDI0NTExLDExLjEgTDEwLjUwMjQ1MTEsMTEuMSBMNS41MDI0NTExMiwxMS4xIEM0LjYxODc5NTUyLDExLjEgMy45MDI0NTExMiwxMC4zODM2NTU2IDMuOTAyNDUxMTIsOS41IEwzLjkwMjQ1MTEyLDkuNSBMMy45MDI0NTExMiw2LjUgQzMuOTAyNDUxMTIsNS42MTYzNDQ0IDQuNjE4Nzk1NTIsNC45IDUuNTAyNDUxMTIsNC45IEw1LjUwMjQ1MTEyLDQuOSBaIE0xMC41MDI0NTExLDYuMSBMNS41MDI0NTExMiw2LjEgQzUuMjgxNTM3MjIsNi4xIDUuMTAyNDUxMTIsNi4yNzkwODYxIDUuMTAyNDUxMTIsNi41IEw1LjEwMjQ1MTEyLDYuNSBMNS4xMDI0NTExMiw5LjUgQzUuMTAyNDUxMTIsOS43MjA5MTM5IDUuMjgxNTM3MjIsOS45IDUuNTAyNDUxMTIsOS45IEw1LjUwMjQ1MTEyLDkuOSBMMTAuNTAyNDUxMSw5LjkgQzEwLjcyMzM2NSw5LjkgMTAuOTAyNDUxMSw5LjcyMDkxMzkgMTAuOTAyNDUxMSw5LjUgTDEwLjkwMjQ1MTEsOS41IEwxMC45MDI0NTExLDYuNSBDMTAuOTAyNDUxMSw2LjI3OTA4NjEgMTAuNzIzMzY1LDYuMSAxMC41MDI0NTExLDYuMSBMMTAuNTAyNDUxMSw2LjEgWiBNNS41OTcxNDkzOCwxIEw1LjU5NzE0OTM4LDIuMiBMMi42LDIuMiBDMi40MDY3MDAzNCwyLjIgMi4yNDU0MjUwOCwyLjMzNzExMjggMi4yMDgxMjY1OCwyLjUxOTM4NjA1IEwyLjIsMi42IEwyLjIsNS42MDIwNTE2MSBMMSw1LjYwMjA1MTYxIEwxLDIuNiBDMSwxLjc2NTQzNjM4IDEuNjM4OTYxNTIsMS4wODAxMTAyMSAyLjQ1NDM2NzM5LDEuMDA2NTM4NjggTDIuNiwxIEw1LjU5NzE0OTM4LDEgWiBNMTMuMzk3MTQ5NCwxIEwxMy41NDI3ODIsMS4wMDY1Mzg2OCBDMTQuMzU4MTg3OSwxLjA4MDExMDIxIDE0Ljk5NzE0OTQsMS43NjU0MzYzOCAxNC45OTcxNDk0LDIuNiBMMTQuOTk3MTQ5NCwyLjYgTDE0Ljk5NzE0OTQsNS42MDIwNTE2MSBMMTMuNzk3MTQ5NCw1LjYwMjA1MTYxIEwxMy43OTcxNDk0LDIuNiBMMTMuNzg5MDIyOCwyLjUxOTM4NjA1IEMxMy43NTE3MjQzLDIuMzM3MTEyOCAxMy41OTA0NDksMi4yIDEzLjM5NzE0OTQsMi4yIEwxMy4zOTcxNDk0LDIuMiBMMTAuNCwyLjIgTDEwLjQsMSBMMTMuMzk3MTQ5NCwxIFpcIlxuICAgICAgICAgICAgICAgIGlkPVwi5b2i54q257uT5ZCIXCJcbiAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJub256ZXJvXCJcbiAgICAgICAgICAgID48L3BhdGg+XG4gICAgICAgIDwvZz5cbiAgICA8L3N2Zz5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3pvb21PdXRUZW1wbGF0ZT5cbiAgICA8c3ZnXG4gICAgICAgIHdpZHRoPVwiMTZweFwiXG4gICAgICAgIGhlaWdodD1cIjE2cHhcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICAgID5cbiAgICAgICAgPHRpdGxlPmFjdGlvbi96b29tLW91dDwvdGl0bGU+XG4gICAgICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPlxuICAgICAgICA8ZyBpZD1cImFjdGlvbi96b29tLW91dFwiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTYuODUsMi43MzIyNTg4NmUtMTMgQzEwLjYzMzE1MDUsMi43MzIyNTg4NmUtMTMgMTMuNywzLjA2Njg0OTQ2IDEzLjcsNi44NSBDMTMuNyw4LjU0MTk0MDQ1IDEzLjA4NjU4MzYsMTAuMDkwNjA5OCAxMi4wNzAwMTQyLDExLjI4NTc0NDggTDE1LjQyMDE5NzYsMTQuNTcxNzA4MSBDMTUuNjU2NzM2NywxNC44MDM3NzY4IDE1LjY2MDM2MDcsMTUuMTgzNjU4NSAxNS40MjgyOTE5LDE1LjQyMDE5NzYgQzE1LjE5NjIyMzIsMTUuNjU2NzM2NyAxNC44MTYzNDE1LDE1LjY2MDM2MDcgMTQuNTc5ODAyNCwxNS40MjgyOTE5IEwxNC41Nzk4MDI0LDE1LjQyODI5MTkgTDExLjIxNjM0NTYsMTIuMTI4MjYyIEMxMC4wMzA5NDI3LDEzLjEwOTk2OTEgOC41MDkzNzU5MSwxMy43IDYuODUsMTMuNyBDMy4wNjY4NDk0NiwxMy43IDQuNTg1MjIxMDllLTE0LDEwLjYzMzE1MDUgNC41ODUyMjEwOWUtMTQsNi44NSBDNC41ODUyMjEwOWUtMTQsMy4wNjY4NDk0NiAzLjA2Njg0OTQ2LDIuNzMyMjU4ODZlLTEzIDYuODUsMi43MzIyNTg4NmUtMTMgWiBNNi44NSwxLjIgQzMuNzI5NTkxMTYsMS4yIDEuMiwzLjcyOTU5MTE2IDEuMiw2Ljg1IEMxLjIsOS45NzA0MDg4NCAzLjcyOTU5MTE2LDEyLjUgNi44NSwxMi41IEM4LjMxNzUzMzU3LDEyLjUgOS42NTQzODc5MSwxMS45NDA0OTU3IDEwLjY1ODg4NTksMTEuMDIzMTY0MyBDMTAuNjg1NTQxMiwxMC45NjI1NDA4IDEwLjcyNDUyNzUsMTAuOTA1MDg5OCAxMC43NzQzOTgyLDEwLjg1NDI1ODQgQzEwLjgyODg5MzEsMTAuNzk4NzEzNyAxMC44OTE1Mzg3LDEwLjc1NjAxMjQgMTAuOTU4NTY0OSwxMC43MjYxOTAzIEMxMS45MTQ0MDA5LDkuNzE1OTU3NTggMTIuNSw4LjM1MTM2NTc5IDEyLjUsNi44NSBDMTIuNSwzLjcyOTU5MTE2IDkuOTcwNDA4ODQsMS4yIDYuODUsMS4yIFogTTQuNiw2LjIgTDkuMTI5NDQ1NjUsNi4yIEM5LjQ2MDgxNjUsNi4yIDkuNzI5NDQ1NjUsNi40Njg2MjkxNSA5LjcyOTQ0NTY1LDYuOCBDOS43Mjk0NDU2NSw3LjA5ODIzMzc2IDkuNTExODU2MDQsNy4zNDU2NDY3NSA5LjIyNjc2ODc2LDcuMzkyMTQ3MDEgTDkuMTI5NDQ1NjUsNy40IEw0LjYsNy40IEM0LjI2ODYyOTE1LDcuNCA0LDcuMTMxMzcwODUgNCw2LjggQzQsNi41MDE3NjYyNCA0LjIxNzU4OTYxLDYuMjU0MzUzMjUgNC41MDI2NzY4OCw2LjIwNzg1Mjk5IEw0LjYsNi4yIEw5LjEyOTQ0NTY1LDYuMiBaXCJcbiAgICAgICAgICAgICAgICBpZD1cIuW9oueKtue7k+WQiFwiXG4gICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwibm9uemVyb1wiXG4gICAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICA8L2c+XG4gICAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3pvb21JblRlbXBsYXRlXG4gICAgPjxzdmdcbiAgICAgICAgd2lkdGg9XCIxNnB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMTZweFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgPlxuICAgICAgICA8dGl0bGU+YWN0aW9uL3pvb20taW48L3RpdGxlPlxuICAgICAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz5cbiAgICAgICAgPGcgaWQ9XCJhY3Rpb24vem9vbS1pblwiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTYuODUsLTEuODExODgzOThlLTEzIEMxMC42MzMxNTA1LC0xLjgxMTg4Mzk4ZS0xMyAxMy43LDMuMDY2ODQ5NDYgMTMuNyw2Ljg1IEMxMy43LDguNTQxOTQwNDUgMTMuMDg2NTgzNiwxMC4wOTA2MDk4IDEyLjA3MDAxNDIsMTEuMjg1NzQ0OCBMMTUuNDIwMTk3NiwxNC41NzE3MDgxIEMxNS42NTY3MzY3LDE0LjgwMzc3NjggMTUuNjYwMzYwNywxNS4xODM2NTg1IDE1LjQyODI5MTksMTUuNDIwMTk3NiBDMTUuMTk2MjIzMiwxNS42NTY3MzY3IDE0LjgxNjM0MTUsMTUuNjYwMzYwNyAxNC41Nzk4MDI0LDE1LjQyODI5MTkgTDE0LjU3OTgwMjQsMTUuNDI4MjkxOSBMMTEuMjE2MzQ1NiwxMi4xMjgyNjIgQzEwLjAzMDk0MjcsMTMuMTA5OTY5MSA4LjUwOTM3NTkxLDEzLjcgNi44NSwxMy43IEMzLjA2Njg0OTQ2LDEzLjcgNC42MTg1Mjc3OGUtMTQsMTAuNjMzMTUwNSA0LjYxODUyNzc4ZS0xNCw2Ljg1IEM0LjYxODUyNzc4ZS0xNCwzLjA2Njg0OTQ2IDMuMDY2ODQ5NDYsLTEuODExODgzOThlLTEzIDYuODUsLTEuODExODgzOThlLTEzIFogTTYuODUsMS4yIEMzLjcyOTU5MTE2LDEuMiAxLjIsMy43Mjk1OTExNiAxLjIsNi44NSBDMS4yLDkuOTcwNDA4ODQgMy43Mjk1OTExNiwxMi41IDYuODUsMTIuNSBDOC4zMTc1MzM1NywxMi41IDkuNjU0Mzg3OTEsMTEuOTQwNDk1NyAxMC42NTg4ODU5LDExLjAyMzE2NDMgQzEwLjY4NTU0MTIsMTAuOTYyNTQwOCAxMC43MjQ1Mjc1LDEwLjkwNTA4OTggMTAuNzc0Mzk4MiwxMC44NTQyNTg0IEMxMC44Mjg4OTMxLDEwLjc5ODcxMzcgMTAuODkxNTM4NywxMC43NTYwMTI0IDEwLjk1ODU2NDksMTAuNzI2MTkwMyBDMTEuOTE0NDAwOSw5LjcxNTk1NzU4IDEyLjUsOC4zNTEzNjU3OSAxMi41LDYuODUgQzEyLjUsMy43Mjk1OTExNiA5Ljk3MDQwODg0LDEuMiA2Ljg1LDEuMiBaIE02Ljg2NDcyMjgyLDMuOTM1Mjc3MTggQzcuMTYyOTU2NTksMy45MzUyNzcxOCA3LjQxMDM2OTU4LDQuMTUyODY2NzkgNy40NTY4Njk4NCw0LjQzNzk1NDA2IEw3LjQ2NDcyMjgyLDQuNTM1Mjc3MTggTDcuNDY0LDYuMTk5Mjc3MTggTDkuMTI5NDQ1NjUsNi4yIEM5LjQyNzY3OTQxLDYuMiA5LjY3NTA5MjQsNi40MTc1ODk2MSA5LjcyMTU5MjY2LDYuNzAyNjc2ODggTDkuNzI5NDQ1NjUsNi44IEM5LjcyOTQ0NTY1LDcuMDk4MjMzNzYgOS41MTE4NTYwNCw3LjM0NTY0Njc1IDkuMjI2NzY4NzYsNy4zOTIxNDcwMSBMOS4xMjk0NDU2NSw3LjQgTDcuNDY0LDcuMzk5Mjc3MTggTDcuNDY0NzIyODIsOS4wNjQ3MjI4MiBDNy40NjQ3MjI4Miw5LjM2Mjk1NjU5IDcuMjQ3MTMzMjEsOS42MTAzNjk1OCA2Ljk2MjA0NTk0LDkuNjU2ODY5ODQgTDYuODY0NzIyODIsOS42NjQ3MjI4MiBDNi41NjY0ODkwNiw5LjY2NDcyMjgyIDYuMzE5MDc2MDcsOS40NDcxMzMyMSA2LjI3MjU3NTgxLDkuMTYyMDQ1OTQgTDYuMjY0NzIyODIsOS4wNjQ3MjI4MiBMNi4yNjQsNy4zOTkyNzcxOCBMNC42LDcuNCBDNC4zMDE3NjYyNCw3LjQgNC4wNTQzNTMyNSw3LjE4MjQxMDM5IDQuMDA3ODUyOTksNi44OTczMjMxMiBMNCw2LjggQzQsNi41MDE3NjYyNCA0LjIxNzU4OTYxLDYuMjU0MzUzMjUgNC41MDI2NzY4OCw2LjIwNzg1Mjk5IEw0LjYsNi4yIEw2LjI2NCw2LjE5OTI3NzE4IEw2LjI2NDcyMjgyLDQuNTM1Mjc3MTggQzYuMjY0NzIyODIsNC4yNzAxODA1IDYuNDM2NjQ1NDgsNC4wNDUyMzg1IDYuNjc1MDc2NDIsMy45NjU4NjU1NyBMNi43NjczOTk3MSwzLjk0MzEzMDE2IEw2Ljg2NDcyMjgyLDMuOTM1Mjc3MTggWlwiXG4gICAgICAgICAgICAgICAgaWQ9XCLlvaLnirbnu5PlkIhcIlxuICAgICAgICAgICAgICAgIGZpbGwtcnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|