@plait/common 0.1.0-next.8 → 0.28.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.
@@ -1,3 +1,6 @@
1
1
  export declare enum MediaKeys {
2
2
  image = "image"
3
3
  }
4
+ export declare const PICTURE_ACCEPTED_UPLOAD_SIZE = 20;
5
+ export declare const acceptImageTypes: string[];
6
+ export declare const WithCommonPluginKey = "plait-common-plugin-key";
@@ -0,0 +1,29 @@
1
+ import { ChangeDetectorRef, ElementRef, OnDestroy, OnInit } from '@angular/core';
2
+ import { PlaitBoard, PlaitElement, RectangleClient } from '@plait/core';
3
+ import { ActiveGenerator } from '../generators';
4
+ import { CommonImageItem } from '../utils';
5
+ import * as i0 from "@angular/core";
6
+ export declare abstract class ImageBaseComponent implements OnInit, OnDestroy {
7
+ protected elementRef: ElementRef<HTMLElement>;
8
+ cdr: ChangeDetectorRef;
9
+ _imageItem: CommonImageItem;
10
+ _isFocus: boolean;
11
+ initialized: boolean;
12
+ activeGenerator: ActiveGenerator;
13
+ element: PlaitElement;
14
+ set imageItem(value: CommonImageItem);
15
+ get imageItem(): CommonImageItem;
16
+ board: PlaitBoard;
17
+ set isFocus(value: boolean);
18
+ get isFocus(): boolean;
19
+ get nativeElement(): HTMLElement;
20
+ abstract afterImageItemChange(previous: CommonImageItem, current: CommonImageItem): void;
21
+ getRectangle: () => RectangleClient;
22
+ hasResizeHandle: () => boolean;
23
+ constructor(elementRef: ElementRef<HTMLElement>, cdr: ChangeDetectorRef);
24
+ ngOnInit(): void;
25
+ drawFocus(): void;
26
+ ngOnDestroy(): void;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<ImageBaseComponent, never>;
28
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ImageBaseComponent, never, never, { "element": { "alias": "element"; "required": false; }; "imageItem": { "alias": "imageItem"; "required": false; }; "board": { "alias": "board"; "required": false; }; "isFocus": { "alias": "isFocus"; "required": false; }; "getRectangle": { "alias": "getRectangle"; "required": false; }; "hasResizeHandle": { "alias": "hasResizeHandle"; "required": false; }; }, {}, never, never, false, never>;
29
+ }
@@ -2,4 +2,7 @@ export var MediaKeys;
2
2
  (function (MediaKeys) {
3
3
  MediaKeys["image"] = "image";
4
4
  })(MediaKeys || (MediaKeys = {}));
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbnN0YW50cy9tZWRpYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxTQUVYO0FBRkQsV0FBWSxTQUFTO0lBQ2pCLDRCQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUZXLFNBQVMsS0FBVCxTQUFTLFFBRXBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTWVkaWFLZXlzIHtcbiAgICBpbWFnZSA9ICdpbWFnZSdcbn1cbiJdfQ==
5
+ export const PICTURE_ACCEPTED_UPLOAD_SIZE = 20;
6
+ export const acceptImageTypes = ['png', 'jpeg', 'gif', 'bmp'];
7
+ export const WithCommonPluginKey = 'plait-common-plugin-key';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvbnN0YW50cy9tZWRpYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxTQUVYO0FBRkQsV0FBWSxTQUFTO0lBQ2pCLDRCQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUZXLFNBQVMsS0FBVCxTQUFTLFFBRXBCO0FBRUQsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsRUFBRSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBNZWRpYUtleXMge1xuICAgIGltYWdlID0gJ2ltYWdlJ1xufVxuXG5leHBvcnQgY29uc3QgUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfU0laRSA9IDIwO1xuXG5leHBvcnQgY29uc3QgYWNjZXB0SW1hZ2VUeXBlcyA9IFsncG5nJywgJ2pwZWcnLCAnZ2lmJywgJ2JtcCddO1xuXG5leHBvcnQgY29uc3QgV2l0aENvbW1vblBsdWdpbktleSA9ICdwbGFpdC1jb21tb24tcGx1Z2luLWtleSc7XG4iXX0=
@@ -16,4 +16,4 @@ export var ResizeHandle;
16
16
  ResizeHandle["sw"] = "sw";
17
17
  ResizeHandle["w"] = "w";
18
18
  })(ResizeHandle || (ResizeHandle = {}));
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb25zdGFudHMvcmVzaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGlCQUtYO0FBTEQsV0FBWSxpQkFBaUI7SUFDekIscUNBQWdCLENBQUE7SUFDaEIscUNBQWdCLENBQUE7SUFDaEIseUNBQW9CLENBQUE7SUFDcEIseUNBQW9CLENBQUE7QUFDeEIsQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUI7QUFFRCxNQUFNLENBQU4sSUFBWSxZQVNYO0FBVEQsV0FBWSxZQUFZO0lBQ3BCLHlCQUFTLENBQUE7SUFDVCx1QkFBTyxDQUFBO0lBQ1AseUJBQVMsQ0FBQTtJQUNULHVCQUFPLENBQUE7SUFDUCx5QkFBUyxDQUFBO0lBQ1QsdUJBQU8sQ0FBQTtJQUNQLHlCQUFTLENBQUE7SUFDVCx1QkFBTyxDQUFBO0FBQ1gsQ0FBQyxFQVRXLFlBQVksS0FBWixZQUFZLFFBU3ZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUmVzaXplQ3Vyc29yQ2xhc3Mge1xuICAgIGV3ID0gJ2V3LXJlc2l6ZScsXG4gICAgbnMgPSAnbnMtcmVzaXplJyxcbiAgICBuZXN3ID0gJ25lc3ctcmVzaXplJyxcbiAgICBud3NlID0gJ253c2UtcmVzaXplJ1xufVxuXG5leHBvcnQgZW51bSBSZXNpemVIYW5kbGUge1xuICAgIG5lID0gJ25lJyxcbiAgICBuID0gJ24nLFxuICAgIG53ID0gJ253JyxcbiAgICBlID0gJ3cnLFxuICAgIHNlID0gJ3NlJyxcbiAgICBzID0gJ3MnLFxuICAgIHN3ID0gJ3N3JyxcbiAgICB3ID0gJ3cnXG59Il19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb25zdGFudHMvcmVzaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGlCQUtYO0FBTEQsV0FBWSxpQkFBaUI7SUFDekIscUNBQWdCLENBQUE7SUFDaEIscUNBQWdCLENBQUE7SUFDaEIseUNBQW9CLENBQUE7SUFDcEIseUNBQW9CLENBQUE7QUFDeEIsQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUI7QUFFRCxNQUFNLENBQU4sSUFBWSxZQVNYO0FBVEQsV0FBWSxZQUFZO0lBQ3BCLHlCQUFTLENBQUE7SUFDVCx1QkFBTyxDQUFBO0lBQ1AseUJBQVMsQ0FBQTtJQUNULHVCQUFPLENBQUE7SUFDUCx5QkFBUyxDQUFBO0lBQ1QsdUJBQU8sQ0FBQTtJQUNQLHlCQUFTLENBQUE7SUFDVCx1QkFBTyxDQUFBO0FBQ1gsQ0FBQyxFQVRXLFlBQVksS0FBWixZQUFZLFFBU3ZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUmVzaXplQ3Vyc29yQ2xhc3Mge1xuICAgIGV3ID0gJ2V3LXJlc2l6ZScsXG4gICAgbnMgPSAnbnMtcmVzaXplJyxcbiAgICBuZXN3ID0gJ25lc3ctcmVzaXplJyxcbiAgICBud3NlID0gJ253c2UtcmVzaXplJ1xufVxuXG5leHBvcnQgZW51bSBSZXNpemVIYW5kbGUge1xuICAgIG5lID0gJ25lJyxcbiAgICBuID0gJ24nLFxuICAgIG53ID0gJ253JyxcbiAgICBlID0gJ3cnLFxuICAgIHNlID0gJ3NlJyxcbiAgICBzID0gJ3MnLFxuICAgIHN3ID0gJ3N3JyxcbiAgICB3ID0gJ3cnXG59XG4iXX0=
@@ -0,0 +1,93 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { ACTIVE_STROKE_WIDTH, PlaitBoard, getSelectedElements, isSelectionMoving } from '@plait/core';
3
+ import { ActiveGenerator } from '../generators';
4
+ import * as i0 from "@angular/core";
5
+ export class ImageBaseComponent {
6
+ set imageItem(value) {
7
+ this.afterImageItemChange(this._imageItem, value);
8
+ this._imageItem = value;
9
+ this.drawFocus();
10
+ }
11
+ get imageItem() {
12
+ return this._imageItem;
13
+ }
14
+ set isFocus(value) {
15
+ this._isFocus = value;
16
+ this.drawFocus();
17
+ }
18
+ get isFocus() {
19
+ return this._isFocus;
20
+ }
21
+ get nativeElement() {
22
+ return this.elementRef.nativeElement;
23
+ }
24
+ constructor(elementRef, cdr) {
25
+ this.elementRef = elementRef;
26
+ this.cdr = cdr;
27
+ this.initialized = false;
28
+ }
29
+ ngOnInit() {
30
+ this.activeGenerator = new ActiveGenerator(this.board, {
31
+ getStrokeWidth: () => {
32
+ const selectedElements = getSelectedElements(this.board);
33
+ if (!(selectedElements.length === 1 && !isSelectionMoving(this.board))) {
34
+ return ACTIVE_STROKE_WIDTH;
35
+ }
36
+ else {
37
+ return ACTIVE_STROKE_WIDTH;
38
+ }
39
+ },
40
+ getStrokeOpacity: () => {
41
+ const selectedElements = getSelectedElements(this.board);
42
+ if ((selectedElements.length === 1 && !isSelectionMoving(this.board)) || !selectedElements.length) {
43
+ return 1;
44
+ }
45
+ else {
46
+ return 0.5;
47
+ }
48
+ },
49
+ getRectangle: () => {
50
+ return this.getRectangle();
51
+ },
52
+ hasResizeHandle: () => {
53
+ const selectedElements = getSelectedElements(this.board);
54
+ return (selectedElements.length === 1 && !isSelectionMoving(this.board)) || !selectedElements.length;
55
+ }
56
+ });
57
+ this.initialized = true;
58
+ }
59
+ drawFocus() {
60
+ if (this.initialized) {
61
+ const activeG = PlaitBoard.getElementActiveHost(this.board);
62
+ this.activeGenerator.draw({}, activeG, { selected: this._isFocus });
63
+ }
64
+ }
65
+ ngOnDestroy() {
66
+ if (this.activeGenerator) {
67
+ this.activeGenerator.destroy();
68
+ }
69
+ }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ImageBaseComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
71
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: ImageBaseComponent, inputs: { element: "element", imageItem: "imageItem", board: "board", isFocus: "isFocus", getRectangle: "getRectangle", hasResizeHandle: "hasResizeHandle" }, host: { classAttribute: "plait-image-container" }, ngImport: i0 }); }
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ImageBaseComponent, decorators: [{
74
+ type: Directive,
75
+ args: [{
76
+ host: {
77
+ class: 'plait-image-container'
78
+ }
79
+ }]
80
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { element: [{
81
+ type: Input
82
+ }], imageItem: [{
83
+ type: Input
84
+ }], board: [{
85
+ type: Input
86
+ }], isFocus: [{
87
+ type: Input
88
+ }], getRectangle: [{
89
+ type: Input
90
+ }], hasResizeHandle: [{
91
+ type: Input
92
+ }] } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvcmUvaW1hZ2UtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWMsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFpQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNySSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVFoRCxNQUFNLE9BQWdCLGtCQUFrQjtJQVlwQyxJQUNJLFNBQVMsQ0FBQyxLQUFzQjtRQUNoQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBS0QsSUFDSSxPQUFPLENBQUMsS0FBYztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBUUQsWUFBc0IsVUFBbUMsRUFBUyxHQUFzQjtRQUFsRSxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBekN4RixnQkFBVyxHQUFHLEtBQUssQ0FBQztJQXlDdUUsQ0FBQztJQUU1RixRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ25ELGNBQWMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ3BFLE9BQU8sbUJBQW1CLENBQUM7aUJBQzlCO3FCQUFNO29CQUNILE9BQU8sbUJBQW1CLENBQUM7aUJBQzlCO1lBQ0wsQ0FBQztZQUNELGdCQUFnQixFQUFFLEdBQUcsRUFBRTtnQkFDbkIsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7b0JBQy9GLE9BQU8sQ0FBQyxDQUFDO2lCQUNaO3FCQUFNO29CQUNILE9BQU8sR0FBRyxDQUFDO2lCQUNkO1lBQ0wsQ0FBQztZQUNELFlBQVksRUFBRSxHQUFHLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0IsQ0FBQztZQUNELGVBQWUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xCLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1lBQ3pHLENBQUM7U0FDSixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQWtCLEVBQUUsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZGO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNsQztJQUNMLENBQUM7OEdBeEZpQixrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFMdkMsU0FBUzttQkFBQztvQkFDUCxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLHVCQUF1QjtxQkFDakM7aUJBQ0o7aUlBV0csT0FBTztzQkFETixLQUFLO2dCQUlGLFNBQVM7c0JBRFosS0FBSztnQkFZTixLQUFLO3NCQURKLEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLO2dCQWdCRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFDVElWRV9TVFJPS0VfV0lEVEgsIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUmVjdGFuZ2xlQ2xpZW50LCBnZXRTZWxlY3RlZEVsZW1lbnRzLCBpc1NlbGVjdGlvbk1vdmluZyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEFjdGl2ZUdlbmVyYXRvciB9IGZyb20gJy4uL2dlbmVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tbW9uSW1hZ2VJdGVtIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAncGxhaXQtaW1hZ2UtY29udGFpbmVyJ1xuICAgIH1cbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW1hZ2VCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIF9pbWFnZUl0ZW0hOiBDb21tb25JbWFnZUl0ZW07XG5cbiAgICBfaXNGb2N1cyE6IGJvb2xlYW47XG5cbiAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgYWN0aXZlR2VuZXJhdG9yITogQWN0aXZlR2VuZXJhdG9yO1xuXG4gICAgQElucHV0KClcbiAgICBlbGVtZW50ITogUGxhaXRFbGVtZW50O1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgaW1hZ2VJdGVtKHZhbHVlOiBDb21tb25JbWFnZUl0ZW0pIHtcbiAgICAgICAgdGhpcy5hZnRlckltYWdlSXRlbUNoYW5nZSh0aGlzLl9pbWFnZUl0ZW0sIHZhbHVlKTtcbiAgICAgICAgdGhpcy5faW1hZ2VJdGVtID0gdmFsdWU7XG4gICAgICAgIHRoaXMuZHJhd0ZvY3VzKCk7XG4gICAgfVxuXG4gICAgZ2V0IGltYWdlSXRlbSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ltYWdlSXRlbTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGJvYXJkITogUGxhaXRCb2FyZDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGlzRm9jdXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNGb2N1cyA9IHZhbHVlO1xuICAgICAgICB0aGlzLmRyYXdGb2N1cygpO1xuICAgIH1cblxuICAgIGdldCBpc0ZvY3VzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNGb2N1cztcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGFic3RyYWN0IGFmdGVySW1hZ2VJdGVtQ2hhbmdlKHByZXZpb3VzOiBDb21tb25JbWFnZUl0ZW0sIGN1cnJlbnQ6IENvbW1vbkltYWdlSXRlbSk6IHZvaWQ7XG5cbiAgICBASW5wdXQoKSBnZXRSZWN0YW5nbGUhOiAoKSA9PiBSZWN0YW5nbGVDbGllbnQ7XG5cbiAgICBASW5wdXQoKSBoYXNSZXNpemVIYW5kbGUhOiAoKSA9PiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBBY3RpdmVHZW5lcmF0b3IodGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoIShzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTdHJva2VPcGFjaXR5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpIHx8ICFzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRSZWN0YW5nbGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoYXNSZXNpemVIYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICFpc1NlbGVjdGlvbk1vdmluZyh0aGlzLmJvYXJkKSkgfHwgIXNlbGVjdGVkRWxlbWVudHMubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgZHJhd0ZvY3VzKCkge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlRyA9IFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5kcmF3KHt9IGFzIFBsYWl0RWxlbWVudCwgYWN0aXZlRywgeyBzZWxlY3RlZDogdGhpcy5faXNGb2N1cyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVHZW5lcmF0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  export class Generator {
2
2
  constructor(board, options) {
3
3
  this.board = board;
4
+ this.options = options;
4
5
  }
5
6
  draw(element, parentG, data) {
6
7
  if (this.canDraw && this.canDraw(element, data)) {
@@ -38,4 +39,4 @@ export function hasAfterDraw(value) {
38
39
  }
39
40
  return false;
40
41
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3JzL2dlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQWdCLFNBQVM7SUFPM0IsWUFBc0IsS0FBaUIsRUFBRSxPQUFXO1FBQTlCLFVBQUssR0FBTCxLQUFLLENBQVk7SUFBZ0IsQ0FBQztJQUV4RCxJQUFJLENBQUMsT0FBVSxFQUFFLE9BQW9CLEVBQUUsSUFBUTtRQUMzQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDN0MsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLEVBQUU7Z0JBQ0gsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFO29CQUNSLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN6QjtxQkFBTTtvQkFDSCxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUMxQjtnQkFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNkO2lCQUFNO2dCQUNILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNsQjtZQUNELElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzNCO1NBQ0o7YUFBTTtZQUNILElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNsQjtJQUNMLENBQUM7SUFNRCxPQUFPO1FBQ0gsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztTQUN0QjtJQUNMLENBQUM7Q0FDSjtBQU1ELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBVTtJQUNuQyxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7UUFDakIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdG9yRXh0cmFEYXRhIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdG9yT3B0aW9ucyB7fVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2VuZXJhdG9yPFxuICAgIFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQsXG4gICAgSyBleHRlbmRzIEdlbmVyYXRvckV4dHJhRGF0YSA9IEdlbmVyYXRvckV4dHJhRGF0YSxcbiAgICBWIGV4dGVuZHMgR2VuZXJhdG9yT3B0aW9ucyA9IEdlbmVyYXRvck9wdGlvbnNcbj4ge1xuICAgIGc/OiBTVkdHRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBib2FyZDogUGxhaXRCb2FyZCwgb3B0aW9ucz86IFYpIHt9XG5cbiAgICBkcmF3KGVsZW1lbnQ6IFQsIHBhcmVudEc6IFNWR0dFbGVtZW50LCBkYXRhPzogSykge1xuICAgICAgICBpZiAodGhpcy5jYW5EcmF3ICYmIHRoaXMuY2FuRHJhdyhlbGVtZW50LCBkYXRhKSkge1xuICAgICAgICAgICAgY29uc3QgZyA9IHRoaXMuYmFzZURyYXcoZWxlbWVudCwgZGF0YSk7XG4gICAgICAgICAgICBpZiAoZykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nLnJlcGxhY2VXaXRoKGcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudEcuYXBwZW5kQ2hpbGQoZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZyA9IGc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpOyAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNBZnRlckRyYXcodGhpcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyRHJhdyhlbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgY2FuRHJhdyhlbGVtZW50OiBULCBkYXRhPzogSyk6IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCBiYXNlRHJhdyhlbGVtZW50OiBULCBkYXRhPzogSyk6IFNWR0dFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZykge1xuICAgICAgICAgICAgdGhpcy5nLnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5nID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFmdGVyRHJhdzxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50PiB7XG4gICAgYWZ0ZXJEcmF3KGVsZW1lbnQ6IFQpOiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzQWZ0ZXJEcmF3KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBBZnRlckRyYXcge1xuICAgIGlmICh2YWx1ZS5hZnRlckRyYXcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3JzL2dlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQWdCLFNBQVM7SUFTM0IsWUFBc0IsS0FBaUIsRUFBRSxPQUFXO1FBQTlCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFVLEVBQUUsT0FBb0IsRUFBRSxJQUFRO1FBQzNDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRTtZQUM3QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsRUFBRTtnQkFDSCxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUU7b0JBQ1IsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3pCO3FCQUFNO29CQUNILE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzFCO2dCQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2Q7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2xCO1lBQ0QsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDM0I7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2xCO0lBQ0wsQ0FBQztJQU1ELE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDUixJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQztDQUNKO0FBTUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFVO0lBQ25DLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtRQUNqQixPQUFPLElBQUksQ0FBQztLQUNmO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0b3JFeHRyYURhdGEge31cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0b3JPcHRpb25zIHt9XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHZW5lcmF0b3I8XG4gICAgVCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudCxcbiAgICBLIGV4dGVuZHMgR2VuZXJhdG9yRXh0cmFEYXRhID0gR2VuZXJhdG9yRXh0cmFEYXRhLFxuICAgIFYgZXh0ZW5kcyBHZW5lcmF0b3JPcHRpb25zID0gR2VuZXJhdG9yT3B0aW9uc1xuPiB7XG4gICAgZz86IFNWR0dFbGVtZW50O1xuXG4gICAgb3B0aW9ucz86IFY7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYm9hcmQ6IFBsYWl0Qm9hcmQsIG9wdGlvbnM/OiBWKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50OiBULCBwYXJlbnRHOiBTVkdHRWxlbWVudCwgZGF0YT86IEspIHtcbiAgICAgICAgaWYgKHRoaXMuY2FuRHJhdyAmJiB0aGlzLmNhbkRyYXcoZWxlbWVudCwgZGF0YSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGcgPSB0aGlzLmJhc2VEcmF3KGVsZW1lbnQsIGRhdGEpO1xuICAgICAgICAgICAgaWYgKGcpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZy5yZXBsYWNlV2l0aChnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnRHLmFwcGVuZENoaWxkKGcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmcgPSBnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNBZnRlckRyYXcodGhpcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyRHJhdyhlbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgY2FuRHJhdyhlbGVtZW50OiBULCBkYXRhPzogSyk6IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCBiYXNlRHJhdyhlbGVtZW50OiBULCBkYXRhPzogSyk6IFNWR0dFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZykge1xuICAgICAgICAgICAgdGhpcy5nLnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5nID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFmdGVyRHJhdzxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50PiB7XG4gICAgYWZ0ZXJEcmF3KGVsZW1lbnQ6IFQpOiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzQWZ0ZXJEcmF3KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBBZnRlckRyYXcge1xuICAgIGlmICh2YWx1ZS5hZnRlckRyYXcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
@@ -0,0 +1,54 @@
1
+ import { createForeignObject, createG, updateForeignObject } from '@plait/core';
2
+ import { Generator } from './generator';
3
+ import { WithCommonPluginKey } from '../constants';
4
+ export class ImageGenerator extends Generator {
5
+ constructor(board, options) {
6
+ super(board, options);
7
+ this.board = board;
8
+ this.options = options;
9
+ }
10
+ canDraw(element, data) {
11
+ return !!this.options.getImageItem(element);
12
+ }
13
+ baseDraw(element, viewContainerRef) {
14
+ const g = createG();
15
+ const foreignRectangle = this.options.getRectangle(element);
16
+ this.foreignObject = createForeignObject(foreignRectangle.x, foreignRectangle.y, foreignRectangle.width, foreignRectangle.height);
17
+ g.append(this.foreignObject);
18
+ const componentType = this.board.getPluginOptions(WithCommonPluginKey)
19
+ .imageComponentType;
20
+ if (!componentType) {
21
+ throw new Error('Not implement ImageBaseComponent error.');
22
+ }
23
+ this.componentRef = viewContainerRef.createComponent(componentType);
24
+ this.componentRef.instance.board = this.board;
25
+ this.componentRef.instance.imageItem = this.options.getImageItem(element);
26
+ this.componentRef.instance.element = element;
27
+ this.componentRef.instance.getRectangle = () => {
28
+ return this.options.getRectangle(element);
29
+ };
30
+ this.componentRef.instance.cdr.markForCheck();
31
+ this.foreignObject.append(this.componentRef.instance.nativeElement);
32
+ return g;
33
+ }
34
+ updateImage(nodeG, previous, current) {
35
+ if (previous !== current && this.componentRef) {
36
+ this.componentRef.instance.imageItem = this.options.getImageItem(current);
37
+ this.componentRef.instance.getRectangle = () => {
38
+ return this.options.getRectangle(current);
39
+ };
40
+ }
41
+ const currentForeignObject = this.options.getRectangle(current);
42
+ updateForeignObject(this.g, currentForeignObject.width, currentForeignObject.height, currentForeignObject.x, currentForeignObject.y);
43
+ // solve image lose on move node
44
+ if (this.foreignObject.children.length === 0) {
45
+ this.foreignObject.append(this.componentRef.instance.nativeElement);
46
+ }
47
+ this.componentRef?.instance.cdr.markForCheck();
48
+ }
49
+ destroy() {
50
+ super.destroy();
51
+ this.componentRef?.destroy();
52
+ }
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3JzL2ltYWdlLmdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBS0gsbUJBQW1CLEVBQ25CLE9BQU8sRUFHUCxtQkFBbUIsRUFDdEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQU14QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFVbkQsTUFBTSxPQUFPLGNBQXNELFNBQVEsU0FBd0Q7SUFLL0gsWUFBbUIsS0FBaUIsRUFBUyxPQUFpQztRQUMxRSxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRFAsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQTBCO0lBRTlFLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBVSxFQUFFLElBQXNCO1FBQ3RDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxRQUFRLENBQUMsT0FBVSxFQUFFLGdCQUFrQztRQUNuRCxNQUFNLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxhQUFhLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0IsTUFBTSxhQUFhLEdBQUksSUFBSSxDQUFDLEtBQTJCLENBQUMsZ0JBQWdCLENBQTBCLG1CQUFtQixDQUFDO2FBQ2pILGtCQUFrQixDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQzlEO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxHQUFHLEdBQUcsRUFBRTtZQUMzQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRSxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBa0IsRUFBRSxRQUFXLEVBQUUsT0FBVTtRQUNuRCxJQUFJLFFBQVEsS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUMzQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLFlBQWEsQ0FBQyxRQUFRLENBQUMsWUFBWSxHQUFHLEdBQUcsRUFBRTtnQkFDNUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QyxDQUFDLENBQUM7U0FDTDtRQUNELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEUsbUJBQW1CLENBQ2YsSUFBSSxDQUFDLENBQUUsRUFDUCxvQkFBb0IsQ0FBQyxLQUFLLEVBQzFCLG9CQUFvQixDQUFDLE1BQU0sRUFDM0Isb0JBQW9CLENBQUMsQ0FBQyxFQUN0QixvQkFBb0IsQ0FBQyxDQUFDLENBQ3pCLENBQUM7UUFDRixnQ0FBZ0M7UUFDaEMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPO1FBQ0gsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBQbGFpdE9wdGlvbnNCb2FyZCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgY3JlYXRlRm9yZWlnbk9iamVjdCxcbiAgICBjcmVhdGVHLFxuICAgIGRyYXdDaXJjbGUsXG4gICAgZHJhd1JlY3RhbmdsZSxcbiAgICB1cGRhdGVGb3JlaWduT2JqZWN0XG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEdlbmVyYXRvciB9IGZyb20gJy4vZ2VuZXJhdG9yJztcbmltcG9ydCB7IFBSSU1BUllfQ09MT1IsIFJFU0laRV9IQU5ETEVfRElBTUVURVIgfSBmcm9tICcuLi9jb25zdGFudHMvZGVmYXVsdCc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEltYWdlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUvaW1hZ2UtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uSW1hZ2VJdGVtLCBXaXRoQ29tbW9uUGx1Z2luT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFdpdGhDb21tb25QbHVnaW5LZXkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuZXhwb3J0IGludGVyZmFjZSBTaGFwZURhdGEge1xuICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VHZW5lcmF0b3JPcHRpb25zPFQ+IHtcbiAgICBnZXRSZWN0YW5nbGU6IChlbGVtZW50OiBUKSA9PiBSZWN0YW5nbGVDbGllbnQ7XG4gICAgZ2V0SW1hZ2VJdGVtOiAoZWxlbWVudDogVCkgPT4gQ29tbW9uSW1hZ2VJdGVtO1xufVxuXG5leHBvcnQgY2xhc3MgSW1hZ2VHZW5lcmF0b3I8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudD4gZXh0ZW5kcyBHZW5lcmF0b3I8VCwgVmlld0NvbnRhaW5lclJlZiwgSW1hZ2VHZW5lcmF0b3JPcHRpb25zPFQ+PiB7XG4gICAgZm9yZWlnbk9iamVjdCE6IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50O1xuXG4gICAgY29tcG9uZW50UmVmITogQ29tcG9uZW50UmVmPEltYWdlQmFzZUNvbXBvbmVudD47XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgYm9hcmQ6IFBsYWl0Qm9hcmQsIHB1YmxpYyBvcHRpb25zOiBJbWFnZUdlbmVyYXRvck9wdGlvbnM8VD4pIHtcbiAgICAgICAgc3VwZXIoYm9hcmQsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNhbkRyYXcoZWxlbWVudDogVCwgZGF0YTogVmlld0NvbnRhaW5lclJlZik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLm9wdGlvbnMuZ2V0SW1hZ2VJdGVtKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGJhc2VEcmF3KGVsZW1lbnQ6IFQsIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpOiBTVkdHRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGNvbnN0IGZvcmVpZ25SZWN0YW5nbGUgPSB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLmZvcmVpZ25PYmplY3QgPSBjcmVhdGVGb3JlaWduT2JqZWN0KGZvcmVpZ25SZWN0YW5nbGUueCwgZm9yZWlnblJlY3RhbmdsZS55LCBmb3JlaWduUmVjdGFuZ2xlLndpZHRoLCBmb3JlaWduUmVjdGFuZ2xlLmhlaWdodCk7XG4gICAgICAgIGcuYXBwZW5kKHRoaXMuZm9yZWlnbk9iamVjdCk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSAodGhpcy5ib2FyZCBhcyBQbGFpdE9wdGlvbnNCb2FyZCkuZ2V0UGx1Z2luT3B0aW9uczxXaXRoQ29tbW9uUGx1Z2luT3B0aW9ucz4oV2l0aENvbW1vblBsdWdpbktleSlcbiAgICAgICAgICAgIC5pbWFnZUNvbXBvbmVudFR5cGU7XG4gICAgICAgIGlmICghY29tcG9uZW50VHlwZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50IEltYWdlQmFzZUNvbXBvbmVudCBlcnJvci4nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFR5cGUpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5ib2FyZCA9IHRoaXMuYm9hcmQ7XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuaW1hZ2VJdGVtID0gdGhpcy5vcHRpb25zLmdldEltYWdlSXRlbShlbGVtZW50KTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmdldFJlY3RhbmdsZSA9ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMuZm9yZWlnbk9iamVjdC5hcHBlbmQodGhpcy5jb21wb25lbnRSZWYhLmluc3RhbmNlLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gZztcbiAgICB9XG5cbiAgICB1cGRhdGVJbWFnZShub2RlRzogU1ZHR0VsZW1lbnQsIHByZXZpb3VzOiBULCBjdXJyZW50OiBUKSB7XG4gICAgICAgIGlmIChwcmV2aW91cyAhPT0gY3VycmVudCAmJiB0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuaW1hZ2VJdGVtID0gdGhpcy5vcHRpb25zLmdldEltYWdlSXRlbShjdXJyZW50KTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmIS5pbnN0YW5jZS5nZXRSZWN0YW5nbGUgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoY3VycmVudCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRGb3JlaWduT2JqZWN0ID0gdGhpcy5vcHRpb25zLmdldFJlY3RhbmdsZShjdXJyZW50KTtcbiAgICAgICAgdXBkYXRlRm9yZWlnbk9iamVjdChcbiAgICAgICAgICAgIHRoaXMuZyEsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC53aWR0aCxcbiAgICAgICAgICAgIGN1cnJlbnRGb3JlaWduT2JqZWN0LmhlaWdodCxcbiAgICAgICAgICAgIGN1cnJlbnRGb3JlaWduT2JqZWN0LngsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC55XG4gICAgICAgICk7XG4gICAgICAgIC8vIHNvbHZlIGltYWdlIGxvc2Ugb24gbW92ZSBub2RlXG4gICAgICAgIGlmICh0aGlzLmZvcmVpZ25PYmplY3QuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmZvcmVpZ25PYmplY3QuYXBwZW5kKHRoaXMuY29tcG9uZW50UmVmIS5pbnN0YW5jZS5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZj8uaW5zdGFuY2UuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWY/LmRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
1
  export * from './generator';
2
2
  export * from './active.generator';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2dlbmVyYXRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ2VuZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZlLmdlbmVyYXRvcic7XG4iXX0=
3
+ export * from './image.generator';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2dlbmVyYXRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9nZW5lcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9hY3RpdmUuZ2VuZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UuZ2VuZXJhdG9yJztcbiJdfQ==
@@ -45,7 +45,7 @@ export const withResize = (board, options) => {
45
45
  const endPoint = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
46
46
  const distance = distanceBetweenPointAndPoint(startPoint[0], startPoint[1], endPoint[0], endPoint[1]);
47
47
  if (distance > PRESS_AND_MOVE_BUFFER) {
48
- addResizing(board, resizeDetectResult.element, options.key);
48
+ addResizing(board, resizeRef, options.key);
49
49
  }
50
50
  }
51
51
  if (isResizing(board) && startPoint) {
@@ -98,4 +98,4 @@ export const withResize = (board, options) => {
98
98
  };
99
99
  return board;
100
100
  };
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1yZXNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BsdWdpbnMvd2l0aC1yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILE9BQU8sRUFDUCxxQkFBcUIsRUFFckIsVUFBVSxFQUVWLGdCQUFnQixFQUVoQiw0QkFBNEIsRUFDNUIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLE9BQU8sRUFDUCxjQUFjLEVBQ2pCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBNEIxRSxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBaUIsRUFBRSxLQUFtQixFQUFFLEVBQUU7SUFDaEUsT0FBTyxDQUNILFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQzVCLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDcEMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7UUFDbkQsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQ3hCLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FDdEIsS0FBaUIsRUFDakIsT0FBZ0MsRUFDbEMsRUFBRTtJQUNBLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUM1RCxJQUFJLGtCQUFrQixHQUFvQyxJQUFJLENBQUM7SUFDL0QsSUFBSSxTQUFTLEdBQTJCLElBQUksQ0FBQztJQUM3QyxJQUFJLFVBQVUsR0FBaUIsSUFBSSxDQUFDO0lBQ3BDLElBQUksZ0JBQWdCLEdBQW9DLElBQUksQ0FBQztJQUU3RCxLQUFLLENBQUMsV0FB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QkFDOUIsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO3FCQUMzRjtvQkFDRCxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7aUJBQzNCO2FBQ0o7U0FDSjtRQUNELFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDLENBQUM7SUFFRixLQUFLLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1FBQzVDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxrQkFBa0IsRUFBRTtZQUN6QyxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBVSxDQUFDLENBQUM7WUFDbkQsY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUNsQixrQkFBa0IsR0FBRyxJQUFJLENBQUM7WUFDMUIsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBNRVJHSU5HLFxuICAgIFBSRVNTX0FORF9NT1ZFX0JVRkZFUixcbiAgICBQYXRoLFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFBsYWl0UG9pbnRlclR5cGUsXG4gICAgUG9pbnQsXG4gICAgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludCxcbiAgICBpc01haW5Qb2ludGVyLFxuICAgIHByZXZlbnRUb3VjaE1vdmUsXG4gICAgaGFuZGxlVG91Y2hUYXJnZXQsXG4gICAgdGhyb3R0bGVSQUYsXG4gICAgdG9Qb2ludCxcbiAgICB0cmFuc2Zvcm1Qb2ludFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBSZXNpemVIYW5kbGUsIFJlc2l6ZUN1cnNvckNsYXNzIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Jlc2l6ZSc7XG5pbXBvcnQgeyBhZGRSZXNpemluZywgaXNSZXNpemluZywgcmVtb3ZlUmVzaXppbmcgfSBmcm9tICcuLi91dGlscy9yZXNpemUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhSZXNpemVPcHRpb25zPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQsIEsgPSBSZXNpemVIYW5kbGU+IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBjYW5SZXNpemU6ICgpID0+IGJvb2xlYW47XG4gICAgZGV0ZWN0OiAocG9pbnQ6IFBvaW50KSA9PiBSZXNpemVEZXRlY3RSZXN1bHQ8VCwgSz4gfCBudWxsO1xuICAgIG9uUmVzaXplOiAocmVzaXplUmVmOiBSZXNpemVSZWY8VCwgSz4sIHJlc2l6ZVN0YXRlOiBSZXNpemVTdGF0ZSkgPT4gdm9pZDtcbiAgICBlbmRSZXNpemU/OiAocmVzaXplUmVmOiBSZXNpemVSZWY8VCwgSz4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzaXplRGV0ZWN0UmVzdWx0PFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQsIEsgPSBSZXNpemVIYW5kbGU+IHtcbiAgICBlbGVtZW50OiBUO1xuICAgIGhhbmRsZTogSztcbiAgICBjdXJzb3JDbGFzcz86IFJlc2l6ZUN1cnNvckNsYXNzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2l6ZVJlZjxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50LCBLID0gUmVzaXplSGFuZGxlPiB7XG4gICAgZWxlbWVudDogVDtcbiAgICBwYXRoOiBQYXRoO1xuICAgIGhhbmRsZTogSztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNpemVTdGF0ZSB7XG4gICAgb2Zmc2V0WDogbnVtYmVyO1xuICAgIG9mZnNldFk6IG51bWJlcjtcbiAgICBlbmRUcmFuc2Zvcm1Qb2ludDogUG9pbnQ7XG59XG5cbmNvbnN0IGdlbmVyYWxDYW5SZXNpemUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICBQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpIHx8XG4gICAgICAgIFBsYWl0Qm9hcmQuaGFzQmVlblRleHRFZGl0aW5nKGJvYXJkKSB8fFxuICAgICAgICAhUGxhaXRCb2FyZC5pc1BvaW50ZXIoYm9hcmQsIFBsYWl0UG9pbnRlclR5cGUuaGFuZCkgfHxcbiAgICAgICAgIWlzTWFpblBvaW50ZXIoZXZlbnQpXG4gICAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCB3aXRoUmVzaXplID0gPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQsIEsgPSBSZXNpemVIYW5kbGU+KFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIG9wdGlvbnM6IFdpdGhSZXNpemVPcHRpb25zPFQsIEs+XG4pID0+IHtcbiAgICBjb25zdCB7IHBvaW50ZXJEb3duLCBwb2ludGVyTW92ZSwgZ2xvYmFsUG9pbnRlclVwIH0gPSBib2FyZDtcbiAgICBsZXQgcmVzaXplRGV0ZWN0UmVzdWx0OiBSZXNpemVEZXRlY3RSZXN1bHQ8VCwgSz4gfCBudWxsID0gbnVsbDtcbiAgICBsZXQgcmVzaXplUmVmOiBSZXNpemVSZWY8VCwgSz4gfCBudWxsID0gbnVsbDtcbiAgICBsZXQgc3RhcnRQb2ludDogUG9pbnQgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgaG92ZURldGVjdFJlc3VsdDogUmVzaXplRGV0ZWN0UmVzdWx0PFQsIEs+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBib2FyZC5wb2ludGVyRG93biA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5jYW5SZXNpemUoKSB8fCAhZ2VuZXJhbENhblJlc2l6ZShib2FyZCwgZXZlbnQpKSB7XG4gICAgICAgICAgICBwb2ludGVyRG93bihldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9pbnQgPSB0cmFuc2Zvcm1Qb2ludChib2FyZCwgdG9Qb2ludChldmVudC54LCBldmVudC55LCBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpKSk7XG4gICAgICAgIHJlc2l6ZURldGVjdFJlc3VsdCA9IG9wdGlvbnMuZGV0ZWN0KHBvaW50KTtcbiAgICAgICAgaWYgKHJlc2l6ZURldGVjdFJlc3VsdCkge1xuICAgICAgICAgICAgaWYgKHJlc2l6ZURldGVjdFJlc3VsdC5jdXJzb3JDbGFzcykge1xuICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoYCR7cmVzaXplRGV0ZWN0UmVzdWx0LmN1cnNvckNsYXNzfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhcnRQb2ludCA9IFtldmVudC54LCBldmVudC55XTtcbiAgICAgICAgICAgIHJlc2l6ZVJlZiA9IHtcbiAgICAgICAgICAgICAgICBwYXRoOiBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCByZXNpemVEZXRlY3RSZXN1bHQuZWxlbWVudCksXG4gICAgICAgICAgICAgICAgZWxlbWVudDogcmVzaXplRGV0ZWN0UmVzdWx0LmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgaGFuZGxlOiByZXNpemVEZXRlY3RSZXN1bHQuaGFuZGxlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcHJldmVudFRvdWNoTW92ZShib2FyZCwgZXZlbnQsIHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHBvaW50ZXJEb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlck1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuY2FuUmVzaXplKCkgfHwgIWdlbmVyYWxDYW5SZXNpemUoYm9hcmQsIGV2ZW50KSkge1xuICAgICAgICAgICAgcG9pbnRlck1vdmUoZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFydFBvaW50ICYmIHJlc2l6ZURldGVjdFJlc3VsdCAmJiAhaXNSZXNpemluZyhib2FyZCkpIHtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgdGV4dCBmcm9tIGJlaW5nIHNlbGVjdGVkXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICBjb25zdCBlbmRQb2ludCA9IHRyYW5zZm9ybVBvaW50KGJvYXJkLCB0b1BvaW50KGV2ZW50LngsIGV2ZW50LnksIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkpKTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludChzdGFydFBvaW50WzBdLCBzdGFydFBvaW50WzFdLCBlbmRQb2ludFswXSwgZW5kUG9pbnRbMV0pO1xuICAgICAgICAgICAgaWYgKGRpc3RhbmNlID4gUFJFU1NfQU5EX01PVkVfQlVGRkVSKSB7XG4gICAgICAgICAgICAgICAgYWRkUmVzaXppbmcoYm9hcmQsIHJlc2l6ZURldGVjdFJlc3VsdC5lbGVtZW50LCBvcHRpb25zLmtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNSZXNpemluZyhib2FyZCkgJiYgc3RhcnRQb2ludCkge1xuICAgICAgICAgICAgLy8gcHJldmVudCB0ZXh0IGZyb20gYmVpbmcgc2VsZWN0ZWRcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBlbmRUcmFuc2Zvcm1Qb2ludCA9IHRyYW5zZm9ybVBvaW50KGJvYXJkLCB0b1BvaW50KGV2ZW50LngsIGV2ZW50LnksIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkpKTtcbiAgICAgICAgICAgIHRocm90dGxlUkFGKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRQb2ludCA9IFtldmVudC54LCBldmVudC55XTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCAmJiByZXNpemVSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlVG91Y2hUYXJnZXQoYm9hcmQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRYID0gZW5kUG9pbnRbMF0gLSBzdGFydFBvaW50WzBdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRZID0gZW5kUG9pbnRbMV0gLSBzdGFydFBvaW50WzFdO1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLm9uUmVzaXplKHJlc2l6ZVJlZiwgeyBvZmZzZXRYLCBvZmZzZXRZLCBlbmRUcmFuc2Zvcm1Qb2ludCB9KTtcbiAgICAgICAgICAgICAgICAgICAgTUVSR0lORy5zZXQoYm9hcmQsIHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSB0cmFuc2Zvcm1Qb2ludChib2FyZCwgdG9Qb2ludChldmVudC54LCBldmVudC55LCBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpKSk7XG4gICAgICAgICAgICBjb25zdCByZXNpemVEZXRlY3RSZXN1bHQgPSBvcHRpb25zLmRldGVjdChwb2ludCk7XG4gICAgICAgICAgICBpZiAocmVzaXplRGV0ZWN0UmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgaG92ZURldGVjdFJlc3VsdCA9IHJlc2l6ZURldGVjdFJlc3VsdDtcbiAgICAgICAgICAgICAgICBpZiAoaG92ZURldGVjdFJlc3VsdC5jdXJzb3JDbGFzcykge1xuICAgICAgICAgICAgICAgICAgICBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5jbGFzc0xpc3QuYWRkKGAke2hvdmVEZXRlY3RSZXN1bHQuY3Vyc29yQ2xhc3N9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoaG92ZURldGVjdFJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaG92ZURldGVjdFJlc3VsdC5jdXJzb3JDbGFzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZShgJHtob3ZlRGV0ZWN0UmVzdWx0LmN1cnNvckNsYXNzfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGhvdmVEZXRlY3RSZXN1bHQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwb2ludGVyTW92ZShldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgICAgIGlmIChpc1Jlc2l6aW5nKGJvYXJkKSB8fCByZXNpemVEZXRlY3RSZXN1bHQpIHtcbiAgICAgICAgICAgIG9wdGlvbnMuZW5kUmVzaXplICYmIG9wdGlvbnMuZW5kUmVzaXplKHJlc2l6ZVJlZiEpO1xuICAgICAgICAgICAgcmVtb3ZlUmVzaXppbmcoYm9hcmQsIG9wdGlvbnMua2V5KTtcbiAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSBudWxsO1xuICAgICAgICAgICAgcmVzaXplRGV0ZWN0UmVzdWx0ID0gbnVsbDtcbiAgICAgICAgICAgIHJlc2l6ZVJlZiA9IG51bGw7XG4gICAgICAgICAgICBNRVJHSU5HLnNldChib2FyZCwgZmFsc2UpO1xuICAgICAgICAgICAgcHJldmVudFRvdWNoTW92ZShib2FyZCwgZXZlbnQsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuIl19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1yZXNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BsdWdpbnMvd2l0aC1yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILE9BQU8sRUFDUCxxQkFBcUIsRUFFckIsVUFBVSxFQUVWLGdCQUFnQixFQUVoQiw0QkFBNEIsRUFDNUIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLE9BQU8sRUFDUCxjQUFjLEVBQ2pCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBYSxXQUFXLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBc0JyRixNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBaUIsRUFBRSxLQUFtQixFQUFFLEVBQUU7SUFDaEUsT0FBTyxDQUNILFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQzVCLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDcEMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7UUFDbkQsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQ3hCLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FDdEIsS0FBaUIsRUFDakIsT0FBZ0MsRUFDbEMsRUFBRTtJQUNBLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUM1RCxJQUFJLGtCQUFrQixHQUFvQyxJQUFJLENBQUM7SUFDL0QsSUFBSSxTQUFTLEdBQTJCLElBQUksQ0FBQztJQUM3QyxJQUFJLFVBQVUsR0FBaUIsSUFBSSxDQUFDO0lBQ3BDLElBQUksZ0JBQWdCLEdBQW9DLElBQUksQ0FBQztJQUU3RCxLQUFLLENBQUMsV0FB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QUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO3FCQUMzRjtvQkFDRCxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7aUJBQzNCO2FBQ0o7U0FDSjtRQUNELFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDLENBQUM7SUFFRixLQUFLLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1FBQzVDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxrQkFBa0IsRUFBRTtZQUN6QyxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBVSxDQUFDLENBQUM7WUFDbkQsY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUNsQixrQkFBa0IsR0FBRyxJQUFJLENBQUM7WUFDMUIsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBNRVJHSU5HLFxuICAgIFBSRVNTX0FORF9NT1ZFX0JVRkZFUixcbiAgICBQYXRoLFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFBsYWl0UG9pbnRlclR5cGUsXG4gICAgUG9pbnQsXG4gICAgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludCxcbiAgICBpc01haW5Qb2ludGVyLFxuICAgIHByZXZlbnRUb3VjaE1vdmUsXG4gICAgaGFuZGxlVG91Y2hUYXJnZXQsXG4gICAgdGhyb3R0bGVSQUYsXG4gICAgdG9Qb2ludCxcbiAgICB0cmFuc2Zvcm1Qb2ludFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBSZXNpemVIYW5kbGUsIFJlc2l6ZUN1cnNvckNsYXNzIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Jlc2l6ZSc7XG5pbXBvcnQgeyBSZXNpemVSZWYsIGFkZFJlc2l6aW5nLCBpc1Jlc2l6aW5nLCByZW1vdmVSZXNpemluZyB9IGZyb20gJy4uL3V0aWxzL3Jlc2l6ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2l0aFJlc2l6ZU9wdGlvbnM8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudCwgSyA9IFJlc2l6ZUhhbmRsZT4ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIGNhblJlc2l6ZTogKCkgPT4gYm9vbGVhbjtcbiAgICBkZXRlY3Q6IChwb2ludDogUG9pbnQpID0+IFJlc2l6ZURldGVjdFJlc3VsdDxULCBLPiB8IG51bGw7XG4gICAgb25SZXNpemU6IChyZXNpemVSZWY6IFJlc2l6ZVJlZjxULCBLPiwgcmVzaXplU3RhdGU6IFJlc2l6ZVN0YXRlKSA9PiB2b2lkO1xuICAgIGVuZFJlc2l6ZT86IChyZXNpemVSZWY6IFJlc2l6ZVJlZjxULCBLPikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNpemVEZXRlY3RSZXN1bHQ8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudCwgSyA9IFJlc2l6ZUhhbmRsZT4ge1xuICAgIGVsZW1lbnQ6IFQ7XG4gICAgaGFuZGxlOiBLO1xuICAgIGN1cnNvckNsYXNzPzogUmVzaXplQ3Vyc29yQ2xhc3M7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzaXplU3RhdGUge1xuICAgIG9mZnNldFg6IG51bWJlcjtcbiAgICBvZmZzZXRZOiBudW1iZXI7XG4gICAgZW5kVHJhbnNmb3JtUG9pbnQ6IFBvaW50O1xufVxuXG5jb25zdCBnZW5lcmFsQ2FuUmVzaXplID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgUGxhaXRCb2FyZC5pc1JlYWRvbmx5KGJvYXJkKSB8fFxuICAgICAgICBQbGFpdEJvYXJkLmhhc0JlZW5UZXh0RWRpdGluZyhib2FyZCkgfHxcbiAgICAgICAgIVBsYWl0Qm9hcmQuaXNQb2ludGVyKGJvYXJkLCBQbGFpdFBvaW50ZXJUeXBlLmhhbmQpIHx8XG4gICAgICAgICFpc01haW5Qb2ludGVyKGV2ZW50KVxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3Qgd2l0aFJlc2l6ZSA9IDxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50LCBLID0gUmVzaXplSGFuZGxlPihcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBvcHRpb25zOiBXaXRoUmVzaXplT3B0aW9uczxULCBLPlxuKSA9PiB7XG4gICAgY29uc3QgeyBwb2ludGVyRG93biwgcG9pbnRlck1vdmUsIGdsb2JhbFBvaW50ZXJVcCB9ID0gYm9hcmQ7XG4gICAgbGV0IHJlc2l6ZURldGVjdFJlc3VsdDogUmVzaXplRGV0ZWN0UmVzdWx0PFQsIEs+IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHJlc2l6ZVJlZjogUmVzaXplUmVmPFQsIEs+IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHN0YXJ0UG9pbnQ6IFBvaW50IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGhvdmVEZXRlY3RSZXN1bHQ6IFJlc2l6ZURldGVjdFJlc3VsdDxULCBLPiB8IG51bGwgPSBudWxsO1xuXG4gICAgYm9hcmQucG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuY2FuUmVzaXplKCkgfHwgIWdlbmVyYWxDYW5SZXNpemUoYm9hcmQsIGV2ZW50KSkge1xuICAgICAgICAgICAgcG9pbnRlckRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvaW50ID0gdHJhbnNmb3JtUG9pbnQoYm9hcmQsIHRvUG9pbnQoZXZlbnQueCwgZXZlbnQueSwgUGxhaXRCb2FyZC5nZXRIb3N0KGJvYXJkKSkpO1xuICAgICAgICByZXNpemVEZXRlY3RSZXN1bHQgPSBvcHRpb25zLmRldGVjdChwb2ludCk7XG4gICAgICAgIGlmIChyZXNpemVEZXRlY3RSZXN1bHQpIHtcbiAgICAgICAgICAgIGlmIChyZXNpemVEZXRlY3RSZXN1bHQuY3Vyc29yQ2xhc3MpIHtcbiAgICAgICAgICAgICAgICBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5jbGFzc0xpc3QuYWRkKGAke3Jlc2l6ZURldGVjdFJlc3VsdC5jdXJzb3JDbGFzc31gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSBbZXZlbnQueCwgZXZlbnQueV07XG4gICAgICAgICAgICByZXNpemVSZWYgPSB7XG4gICAgICAgICAgICAgICAgcGF0aDogUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgcmVzaXplRGV0ZWN0UmVzdWx0LmVsZW1lbnQpLFxuICAgICAgICAgICAgICAgIGVsZW1lbnQ6IHJlc2l6ZURldGVjdFJlc3VsdC5lbGVtZW50LFxuICAgICAgICAgICAgICAgIGhhbmRsZTogcmVzaXplRGV0ZWN0UmVzdWx0LmhhbmRsZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHByZXZlbnRUb3VjaE1vdmUoYm9hcmQsIGV2ZW50LCB0cnVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBwb2ludGVyRG93bihldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLnBvaW50ZXJNb3ZlID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmNhblJlc2l6ZSgpIHx8ICFnZW5lcmFsQ2FuUmVzaXplKGJvYXJkLCBldmVudCkpIHtcbiAgICAgICAgICAgIHBvaW50ZXJNb3ZlKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhcnRQb2ludCAmJiByZXNpemVEZXRlY3RSZXN1bHQgJiYgIWlzUmVzaXppbmcoYm9hcmQpKSB7XG4gICAgICAgICAgICAvLyBwcmV2ZW50IHRleHQgZnJvbSBiZWluZyBzZWxlY3RlZFxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgY29uc3QgZW5kUG9pbnQgPSB0cmFuc2Zvcm1Qb2ludChib2FyZCwgdG9Qb2ludChldmVudC54LCBldmVudC55LCBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpKSk7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQoc3RhcnRQb2ludFswXSwgc3RhcnRQb2ludFsxXSwgZW5kUG9pbnRbMF0sIGVuZFBvaW50WzFdKTtcbiAgICAgICAgICAgIGlmIChkaXN0YW5jZSA+IFBSRVNTX0FORF9NT1ZFX0JVRkZFUikge1xuICAgICAgICAgICAgICAgIGFkZFJlc2l6aW5nKGJvYXJkLCByZXNpemVSZWYhLCBvcHRpb25zLmtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNSZXNpemluZyhib2FyZCkgJiYgc3RhcnRQb2ludCkge1xuICAgICAgICAgICAgLy8gcHJldmVudCB0ZXh0IGZyb20gYmVpbmcgc2VsZWN0ZWRcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBlbmRUcmFuc2Zvcm1Qb2ludCA9IHRyYW5zZm9ybVBvaW50KGJvYXJkLCB0b1BvaW50KGV2ZW50LngsIGV2ZW50LnksIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkpKTtcbiAgICAgICAgICAgIHRocm90dGxlUkFGKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRQb2ludCA9IFtldmVudC54LCBldmVudC55XTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCAmJiByZXNpemVSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlVG91Y2hUYXJnZXQoYm9hcmQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRYID0gZW5kUG9pbnRbMF0gLSBzdGFydFBvaW50WzBdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRZID0gZW5kUG9pbnRbMV0gLSBzdGFydFBvaW50WzFdO1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLm9uUmVzaXplKHJlc2l6ZVJlZiwgeyBvZmZzZXRYLCBvZmZzZXRZLCBlbmRUcmFuc2Zvcm1Qb2ludCB9KTtcbiAgICAgICAgICAgICAgICAgICAgTUVSR0lORy5zZXQoYm9hcmQsIHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSB0cmFuc2Zvcm1Qb2ludChib2FyZCwgdG9Qb2ludChldmVudC54LCBldmVudC55LCBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpKSk7XG4gICAgICAgICAgICBjb25zdCByZXNpemVEZXRlY3RSZXN1bHQgPSBvcHRpb25zLmRldGVjdChwb2ludCk7XG4gICAgICAgICAgICBpZiAocmVzaXplRGV0ZWN0UmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgaG92ZURldGVjdFJlc3VsdCA9IHJlc2l6ZURldGVjdFJlc3VsdDtcbiAgICAgICAgICAgICAgICBpZiAoaG92ZURldGVjdFJlc3VsdC5jdXJzb3JDbGFzcykge1xuICAgICAgICAgICAgICAgICAgICBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5jbGFzc0xpc3QuYWRkKGAke2hvdmVEZXRlY3RSZXN1bHQuY3Vyc29yQ2xhc3N9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoaG92ZURldGVjdFJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaG92ZURldGVjdFJlc3VsdC5jdXJzb3JDbGFzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZShgJHtob3ZlRGV0ZWN0UmVzdWx0LmN1cnNvckNsYXNzfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGhvdmVEZXRlY3RSZXN1bHQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwb2ludGVyTW92ZShldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgICAgIGlmIChpc1Jlc2l6aW5nKGJvYXJkKSB8fCByZXNpemVEZXRlY3RSZXN1bHQpIHtcbiAgICAgICAgICAgIG9wdGlvbnMuZW5kUmVzaXplICYmIG9wdGlvbnMuZW5kUmVzaXplKHJlc2l6ZVJlZiEpO1xuICAgICAgICAgICAgcmVtb3ZlUmVzaXppbmcoYm9hcmQsIG9wdGlvbnMua2V5KTtcbiAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSBudWxsO1xuICAgICAgICAgICAgcmVzaXplRGV0ZWN0UmVzdWx0ID0gbnVsbDtcbiAgICAgICAgICAgIHJlc2l6ZVJlZiA9IG51bGw7XG4gICAgICAgICAgICBNRVJHSU5HLnNldChib2FyZCwgZmFsc2UpO1xuICAgICAgICAgICAgcHJldmVudFRvdWNoTW92ZShib2FyZCwgZXZlbnQsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuIl19
@@ -8,4 +8,5 @@ export * from './shapes';
8
8
  export * from './plugins';
9
9
  export * from './utils';
10
10
  export * from './core/plugin-element';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHV0aWxzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNmb3Jtcyc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbnMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvcGx1Z2luLWVsZW1lbnQnO1xuIl19
11
+ export * from './core/image-base.component';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdXRpbHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2dlbmVyYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2Zvcm1zJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcGVzJztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2lucyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9wbHVnaW4tZWxlbWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvaW1hZ2UtYmFzZS5jb21wb25lbnQnO1xuIl19
@@ -1,18 +1,11 @@
1
- import { distanceBetweenPointAndPoint } from '@plait/core';
2
- export var Direction;
3
- (function (Direction) {
4
- Direction["left"] = "left";
5
- Direction["top"] = "top";
6
- Direction["right"] = "right";
7
- Direction["bottom"] = "bottom";
8
- })(Direction || (Direction = {}));
1
+ import { Direction, distanceBetweenPointAndPoint } from '@plait/core';
9
2
  const handleDirectionFactors = {
10
3
  [Direction.left]: { x: -1, y: 0 },
11
4
  [Direction.right]: { x: 1, y: 0 },
12
5
  [Direction.top]: { x: 0, y: -1 },
13
6
  [Direction.bottom]: { x: 0, y: 1 }
14
7
  };
15
- export function getDirectionByPoint(point, defaultDirection) {
8
+ export function getDirectionByPointOfRectangle(point) {
16
9
  if (point[0] === 0) {
17
10
  return Direction.left;
18
11
  }
@@ -25,7 +18,50 @@ export function getDirectionByPoint(point, defaultDirection) {
25
18
  if (point[1] === 1) {
26
19
  return Direction.bottom;
27
20
  }
28
- return defaultDirection;
21
+ return undefined;
22
+ }
23
+ /**
24
+ * this function accepts vector parameter, the vector parameter vector is based on the screen coordinate system
25
+ * vector[0] and vector[1] are the x and y components of the vector respectively.
26
+ * if the vector has only one direction, the function returns a string in that direction, such as 'right', 'top', 'bottom' or 'left'.
27
+ * if the vector has two directions, the function will return the string in which direction it is closer.
28
+ */
29
+ export function getDirectionByVector(vector) {
30
+ const x = vector[0];
31
+ const y = vector[1];
32
+ if (x === 0 && y === 0) {
33
+ return null;
34
+ }
35
+ if (x === 0) {
36
+ return y > 0 ? Direction.bottom : Direction.top;
37
+ }
38
+ if (y === 0) {
39
+ return x > 0 ? Direction.right : Direction.left;
40
+ }
41
+ const angle = Math.atan2(y, x);
42
+ if (angle > -Math.PI / 4 && angle <= Math.PI / 4) {
43
+ return Direction.right;
44
+ }
45
+ else if (angle > Math.PI / 4 && angle <= (3 * Math.PI) / 4) {
46
+ return Direction.bottom;
47
+ }
48
+ else if (angle > (-3 * Math.PI) / 4 && angle <= -Math.PI / 4) {
49
+ return Direction.top;
50
+ }
51
+ else {
52
+ return Direction.left;
53
+ }
54
+ }
55
+ export function getPointByVector(point, vector, offset) {
56
+ const distance = Math.hypot(vector[0], vector[1]);
57
+ return [point[0] + (vector[0] / distance) * offset, point[1] + (vector[1] / distance) * offset];
58
+ }
59
+ export function rotateVectorAnti90(vector) {
60
+ const x = vector[0];
61
+ const y = vector[1];
62
+ const rotatedX = y;
63
+ const rotatedY = -x;
64
+ return [rotatedX, rotatedY];
29
65
  }
30
66
  export function getDirectionBetweenPointAndPoint(source, target) {
31
67
  if (source[0] === target[0]) {
@@ -56,4 +92,4 @@ export function getFactorByPoints(source, target) {
56
92
  y: (target[1] - source[1]) / distance
57
93
  };
58
94
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy91dGlscy9kaXJlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLDRCQUE0QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxFLE1BQU0sQ0FBTixJQUFZLFNBS1g7QUFMRCxXQUFZLFNBQVM7SUFDakIsMEJBQWEsQ0FBQTtJQUNiLHdCQUFXLENBQUE7SUFDWCw0QkFBZSxDQUFBO0lBQ2YsOEJBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUxXLFNBQVMsS0FBVCxTQUFTLFFBS3BCO0FBRUQsTUFBTSxzQkFBc0IsR0FBRztJQUMzQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0lBQ2pDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0lBQ2pDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDaEMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7Q0FDckMsQ0FBQztBQUVGLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFZLEVBQUUsZ0JBQTJCO0lBQ3pFLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNoQixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7S0FDekI7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDaEIsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDO0tBQzFCO0lBQ0QsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2hCLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQztLQUN4QjtJQUNELElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNoQixPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUM7S0FDM0I7SUFDRCxPQUFPLGdCQUFnQixDQUFDO0FBQzVCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQUMsTUFBYSxFQUFFLE1BQWE7SUFDekUsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3pCLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUM7U0FDeEI7YUFBTTtZQUNILE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztTQUMzQjtLQUNKO0lBQ0QsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3pCLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7U0FDekI7YUFBTTtZQUNILE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQztTQUMxQjtLQUNKO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBb0I7SUFDbkQsT0FBTyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQWEsRUFBRSxNQUFhO0lBQzFELE1BQU0sUUFBUSxHQUFHLDRCQUE0QixDQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDcEUsT0FBTztRQUNILENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRO1FBQ3JDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRO0tBQ3hDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9pbnQsIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBlbnVtIERpcmVjdGlvbiB7XG4gICAgbGVmdCA9ICdsZWZ0JyxcbiAgICB0b3AgPSAndG9wJyxcbiAgICByaWdodCA9ICdyaWdodCcsXG4gICAgYm90dG9tID0gJ2JvdHRvbSdcbn1cblxuY29uc3QgaGFuZGxlRGlyZWN0aW9uRmFjdG9ycyA9IHtcbiAgICBbRGlyZWN0aW9uLmxlZnRdOiB7IHg6IC0xLCB5OiAwIH0sXG4gICAgW0RpcmVjdGlvbi5yaWdodF06IHsgeDogMSwgeTogMCB9LFxuICAgIFtEaXJlY3Rpb24udG9wXTogeyB4OiAwLCB5OiAtMSB9LFxuICAgIFtEaXJlY3Rpb24uYm90dG9tXTogeyB4OiAwLCB5OiAxIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXJlY3Rpb25CeVBvaW50KHBvaW50OiBQb2ludCwgZGVmYXVsdERpcmVjdGlvbjogRGlyZWN0aW9uKSB7XG4gICAgaWYgKHBvaW50WzBdID09PSAwKSB7XG4gICAgICAgIHJldHVybiBEaXJlY3Rpb24ubGVmdDtcbiAgICB9XG4gICAgaWYgKHBvaW50WzBdID09PSAxKSB7XG4gICAgICAgIHJldHVybiBEaXJlY3Rpb24ucmlnaHQ7XG4gICAgfVxuICAgIGlmIChwb2ludFsxXSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gRGlyZWN0aW9uLnRvcDtcbiAgICB9XG4gICAgaWYgKHBvaW50WzFdID09PSAxKSB7XG4gICAgICAgIHJldHVybiBEaXJlY3Rpb24uYm90dG9tO1xuICAgIH1cbiAgICByZXR1cm4gZGVmYXVsdERpcmVjdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpcmVjdGlvbkJldHdlZW5Qb2ludEFuZFBvaW50KHNvdXJjZTogUG9pbnQsIHRhcmdldDogUG9pbnQpIHtcbiAgICBpZiAoc291cmNlWzBdID09PSB0YXJnZXRbMF0pIHtcbiAgICAgICAgaWYgKHNvdXJjZVsxXSA+PSB0YXJnZXRbMV0pIHtcbiAgICAgICAgICAgIHJldHVybiBEaXJlY3Rpb24udG9wO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIERpcmVjdGlvbi5ib3R0b207XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHNvdXJjZVsxXSA9PT0gdGFyZ2V0WzFdKSB7XG4gICAgICAgIGlmIChzb3VyY2VbMF0gPj0gdGFyZ2V0WzBdKSB7XG4gICAgICAgICAgICByZXR1cm4gRGlyZWN0aW9uLmxlZnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gRGlyZWN0aW9uLnJpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignY2FuIG5vdCBtYXRjaCBkaXJlY3Rpb24nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpcmVjdGlvbkZhY3RvcihkaXJlY3Rpb246IERpcmVjdGlvbikge1xuICAgIHJldHVybiBoYW5kbGVEaXJlY3Rpb25GYWN0b3JzW2RpcmVjdGlvbl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGYWN0b3JCeVBvaW50cyhzb3VyY2U6IFBvaW50LCB0YXJnZXQ6IFBvaW50KSB7XG4gICAgY29uc3QgZGlzdGFuY2UgPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50KC4uLnNvdXJjZSwgLi4udGFyZ2V0KTtcbiAgICByZXR1cm4ge1xuICAgICAgICB4OiAodGFyZ2V0WzBdIC0gc291cmNlWzBdKSAvIGRpc3RhbmNlLFxuICAgICAgICB5OiAodGFyZ2V0WzFdIC0gc291cmNlWzFdKSAvIGRpc3RhbmNlXG4gICAgfTtcbn1cbiJdfQ==
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy91dGlscy9kaXJlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBbUMsNEJBQTRCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkcsTUFBTSxzQkFBc0IsR0FBRztJQUMzQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0lBQ2pDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0lBQ2pDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDaEMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7Q0FDckMsQ0FBQztBQUVGLE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxLQUF1QjtJQUNsRSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDaEIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO0tBQ3pCO0lBQ0QsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2hCLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQztLQUMxQjtJQUNELElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNoQixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUM7S0FDeEI7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDaEIsT0FBTyxTQUFT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Q0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUM7U0FDeEI7YUFBTTtZQUNILE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztTQUMzQjtLQUNKO0lBQ0QsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3pCLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7U0FDekI7YUFBTTtZQUNILE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQztTQUMxQjtLQUNKO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsU0FBb0I7SUFDbkQsT0FBTyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQWEsRUFBRSxNQUFhO0lBQzFELE1BQU0sUUFBUSxHQUFHLDRCQUE0QixDQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDcEUsT0FBTztRQUNILENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRO1FBQ3JDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRO0tBQ3hDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uLCBQb2ludCwgUG9pbnRPZlJlY3RhbmdsZSwgVmVjdG9yLCBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuXG5jb25zdCBoYW5kbGVEaXJlY3Rpb25GYWN0b3JzID0ge1xuICAgIFtEaXJlY3Rpb24ubGVmdF06IHsgeDogLTEsIHk6IDAgfSxcbiAgICBbRGlyZWN0aW9uLnJpZ2h0XTogeyB4OiAxLCB5OiAwIH0sXG4gICAgW0RpcmVjdGlvbi50b3BdOiB7IHg6IDAsIHk6IC0xIH0sXG4gICAgW0RpcmVjdGlvbi5ib3R0b21dOiB7IHg6IDAsIHk6IDEgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpcmVjdGlvbkJ5UG9pbnRPZlJlY3RhbmdsZShwb2ludDogUG9pbnRPZlJlY3RhbmdsZSk6IERpcmVjdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHBvaW50WzBdID09PSAwKSB7XG4gICAgICAgIHJldHVybiBEaXJlY3Rpb24ubGVmdDtcbiAgICB9XG4gICAgaWYgKHBvaW50WzBdID09PSAxKSB7XG4gICAgICAgIHJldHVybiBEaXJlY3Rpb24ucmlnaHQ7XG4gICAgfVxuICAgIGlmIChwb2ludFsxXSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gRGlyZWN0aW9uLnRvcDtcbiAgICB9XG4gICAgaWYgKHBvaW50WzFdID09PSAxKSB7XG4gICAgICAgIHJldHVybiBEaXJlY3Rpb24uYm90dG9tO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIHRoaXMgZnVuY3Rpb24gYWNjZXB0cyB2ZWN0b3IgcGFyYW1ldGVyLCB0aGUgdmVjdG9yIHBhcmFtZXRlciB2ZWN0b3IgaXMgYmFzZWQgb24gdGhlIHNjcmVlbiBjb29yZGluYXRlIHN5c3RlbVxuICogdmVjdG9yWzBdIGFuZCB2ZWN0b3JbMV0gYXJlIHRoZSB4IGFuZCB5IGNvbXBvbmVudHMgb2YgdGhlIHZlY3RvciByZXNwZWN0aXZlbHkuXG4gKiBpZiB0aGUgdmVjdG9yIGhhcyBvbmx5IG9uZSBkaXJlY3Rpb24sIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgc3RyaW5nIGluIHRoYXQgZGlyZWN0aW9uLCBzdWNoIGFzICdyaWdodCcsICd0b3AnLCAnYm90dG9tJyBvciAnbGVmdCcuXG4gKiBpZiB0aGUgdmVjdG9yIGhhcyB0d28gZGlyZWN0aW9ucywgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBzdHJpbmcgaW4gd2hpY2ggZGlyZWN0aW9uIGl0IGlzIGNsb3Nlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpcmVjdGlvbkJ5VmVjdG9yKHZlY3RvcjogVmVjdG9yKTogRGlyZWN0aW9uIHwgbnVsbCB7XG4gICAgY29uc3QgeCA9IHZlY3RvclswXTtcbiAgICBjb25zdCB5ID0gdmVjdG9yWzFdO1xuICAgIGlmICh4ID09PSAwICYmIHkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh4ID09PSAwKSB7XG4gICAgICAgIHJldHVybiB5ID4gMCA/IERpcmVjdGlvbi5ib3R0b20gOiBEaXJlY3Rpb24udG9wO1xuICAgIH1cbiAgICBpZiAoeSA9PT0gMCkge1xuICAgICAgICByZXR1cm4geCA+IDAgPyBEaXJlY3Rpb24ucmlnaHQgOiBEaXJlY3Rpb24ubGVmdDtcbiAgICB9XG4gICAgY29uc3QgYW5nbGUgPSBNYXRoLmF0YW4yKHksIHgpO1xuICAgIGlmIChhbmdsZSA+IC1NYXRoLlBJIC8gNCAmJiBhbmdsZSA8PSBNYXRoLlBJIC8gNCkge1xuICAgICAgICByZXR1cm4gRGlyZWN0aW9uLnJpZ2h0O1xuICAgIH0gZWxzZSBpZiAoYW5nbGUgPiBNYXRoLlBJIC8gNCAmJiBhbmdsZSA8PSAoMyAqIE1hdGguUEkpIC8gNCkge1xuICAgICAgICByZXR1cm4gRGlyZWN0aW9uLmJvdHRvbTtcbiAgICB9IGVsc2UgaWYgKGFuZ2xlID4gKC0zICogTWF0aC5QSSkgLyA0ICYmIGFuZ2xlIDw9IC1NYXRoLlBJIC8gNCkge1xuICAgICAgICByZXR1cm4gRGlyZWN0aW9uLnRvcDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gRGlyZWN0aW9uLmxlZnQ7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9pbnRCeVZlY3Rvcihwb2ludDogUG9pbnQsIHZlY3RvcjogVmVjdG9yLCBvZmZzZXQ6IG51bWJlcik6IFBvaW50IHtcbiAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguaHlwb3QodmVjdG9yWzBdLCB2ZWN0b3JbMV0pO1xuICAgIHJldHVybiBbcG9pbnRbMF0gKyAodmVjdG9yWzBdIC8gZGlzdGFuY2UpICogb2Zmc2V0LCBwb2ludFsxXSArICh2ZWN0b3JbMV0gLyBkaXN0YW5jZSkgKiBvZmZzZXRdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcm90YXRlVmVjdG9yQW50aTkwKHZlY3RvcjogVmVjdG9yKTogVmVjdG9yIHtcbiAgICBjb25zdCB4ID0gdmVjdG9yWzBdO1xuICAgIGNvbnN0IHkgPSB2ZWN0b3JbMV07XG4gICAgY29uc3Qgcm90YXRlZFggPSB5O1xuICAgIGNvbnN0IHJvdGF0ZWRZID0gLXg7XG4gICAgcmV0dXJuIFtyb3RhdGVkWCwgcm90YXRlZFldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlyZWN0aW9uQmV0d2VlblBvaW50QW5kUG9pbnQoc291cmNlOiBQb2ludCwgdGFyZ2V0OiBQb2ludCkge1xuICAgIGlmIChzb3VyY2VbMF0gPT09IHRhcmdldFswXSkge1xuICAgICAgICBpZiAoc291cmNlWzFdID49IHRhcmdldFsxXSkge1xuICAgICAgICAgICAgcmV0dXJuIERpcmVjdGlvbi50b3A7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gRGlyZWN0aW9uLmJvdHRvbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoc291cmNlWzFdID09PSB0YXJnZXRbMV0pIHtcbiAgICAgICAgaWYgKHNvdXJjZVswXSA+PSB0YXJnZXRbMF0pIHtcbiAgICAgICAgICAgIHJldHVybiBEaXJlY3Rpb24ubGVmdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBEaXJlY3Rpb24ucmlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjYW4gbm90IG1hdGNoIGRpcmVjdGlvbicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlyZWN0aW9uRmFjdG9yKGRpcmVjdGlvbjogRGlyZWN0aW9uKSB7XG4gICAgcmV0dXJuIGhhbmRsZURpcmVjdGlvbkZhY3RvcnNbZGlyZWN0aW9uXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZhY3RvckJ5UG9pbnRzKHNvdXJjZTogUG9pbnQsIHRhcmdldDogUG9pbnQpIHtcbiAgICBjb25zdCBkaXN0YW5jZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQoLi4uc291cmNlLCAuLi50YXJnZXQpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHg6ICh0YXJnZXRbMF0gLSBzb3VyY2VbMF0pIC8gZGlzdGFuY2UsXG4gICAgICAgIHk6ICh0YXJnZXRbMV0gLSBzb3VyY2VbMV0pIC8gZGlzdGFuY2VcbiAgICB9O1xufVxuIl19
@@ -26,4 +26,4 @@ export const isSpaceHotkey = (event) => {
26
26
  export const isDelete = (event) => {
27
27
  return hotkeys.isDeleteBackward(event) || hotkeys.isDeleteForward(event);
28
28
  };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LWtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvaG90LWtleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEMsTUFBTSxVQUFVLFlBQVksQ0FBQyxDQUFnQjtJQUN6QyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDckMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwQyxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN2RCxPQUFPLFVBQVUsSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLE9BQU8sSUFBSSxPQUFPLElBQUksS0FBSyxJQUFJLEtBQUssSUFBSSxHQUFHLENBQUM7QUFDdkYsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtJQUNuRCxPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQ2hELE9BQU8sS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUM7QUFDL0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQ2xELE9BQU8sS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQ2xELE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQzdDLE9BQU8sT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDNUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaG90a2V5cyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IGlzS2V5SG90a2V5IH0gZnJvbSAnaXMtaG90a2V5JztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmlydHVhbEtleShlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3QgaXNNb2QgPSBlLmN0cmxLZXkgfHwgZS5tZXRhS2V5O1xuICAgIGNvbnN0IGlzQWx0ID0gaXNLZXlIb3RrZXkoJ2FsdCcsIGUpO1xuICAgIGNvbnN0IGlzU2hpZnQgPSBpc0tleUhvdGtleSgnc2hpZnQnLCBlKTtcbiAgICBjb25zdCBpc0NhcHNMb2NrID0gZS5rZXkuaW5jbHVkZXMoJ0NhcHNMb2NrJyk7XG4gICAgY29uc3QgaXNUYWIgPSBlLmtleS5pbmNsdWRlcygnVGFiJyk7XG4gICAgY29uc3QgaXNFc2MgPSBlLmtleS5pbmNsdWRlcygnRXNjYXBlJyk7XG4gICAgY29uc3QgaXNGID0gZS5rZXkuc3RhcnRzV2l0aCgnRicpO1xuICAgIGNvbnN0IGlzQXJyb3cgPSBlLmtleS5pbmNsdWRlcygnQXJyb3cnKSA/IHRydWUgOiBmYWxzZTtcbiAgICByZXR1cm4gaXNDYXBzTG9jayB8fCBpc01vZCB8fCBpc0FsdCB8fCBpc0Fycm93IHx8IGlzU2hpZnQgfHwgaXNUYWIgfHwgaXNFc2MgfHwgaXNGO1xufVxuXG5leHBvcnQgY29uc3QgaXNFeHBhbmRIb3RrZXkgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICByZXR1cm4gaXNLZXlIb3RrZXkoJ21vZCsvJywgZXZlbnQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVGFiSG90a2V5ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgcmV0dXJuIGV2ZW50LmtleSA9PT0gJ1RhYic7XG59O1xuXG5leHBvcnQgY29uc3QgaXNFbnRlckhvdGtleSA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIHJldHVybiBldmVudC5rZXkgPT09ICdFbnRlcic7XG59O1xuXG5leHBvcnQgY29uc3QgaXNTcGFjZUhvdGtleSA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIHJldHVybiBldmVudC5jb2RlID09PSAnU3BhY2UnO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRGVsZXRlID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgcmV0dXJuIGhvdGtleXMuaXNEZWxldGVCYWNrd2FyZChldmVudCkgfHwgaG90a2V5cy5pc0RlbGV0ZUZvcndhcmQoZXZlbnQpXG59O1xuIl19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90LWtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvaG90LWtleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEMsTUFBTSxVQUFVLFlBQVksQ0FBQyxDQUFnQjtJQUN6QyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDckMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwQyxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN2RCxPQUFPLFVBQVUsSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLE9BQU8sSUFBSSxPQUFPLElBQUksS0FBSyxJQUFJLEtBQUssSUFBSSxHQUFHLENBQUM7QUFDdkYsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtJQUNuRCxPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQ2hELE9BQU8sS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUM7QUFDL0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQ2xELE9BQU8sS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQ2xELE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7QUFDbEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQzdDLE9BQU8sT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0UsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaG90a2V5cyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IGlzS2V5SG90a2V5IH0gZnJvbSAnaXMtaG90a2V5JztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmlydHVhbEtleShlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3QgaXNNb2QgPSBlLmN0cmxLZXkgfHwgZS5tZXRhS2V5O1xuICAgIGNvbnN0IGlzQWx0ID0gaXNLZXlIb3RrZXkoJ2FsdCcsIGUpO1xuICAgIGNvbnN0IGlzU2hpZnQgPSBpc0tleUhvdGtleSgnc2hpZnQnLCBlKTtcbiAgICBjb25zdCBpc0NhcHNMb2NrID0gZS5rZXkuaW5jbHVkZXMoJ0NhcHNMb2NrJyk7XG4gICAgY29uc3QgaXNUYWIgPSBlLmtleS5pbmNsdWRlcygnVGFiJyk7XG4gICAgY29uc3QgaXNFc2MgPSBlLmtleS5pbmNsdWRlcygnRXNjYXBlJyk7XG4gICAgY29uc3QgaXNGID0gZS5rZXkuc3RhcnRzV2l0aCgnRicpO1xuICAgIGNvbnN0IGlzQXJyb3cgPSBlLmtleS5pbmNsdWRlcygnQXJyb3cnKSA/IHRydWUgOiBmYWxzZTtcbiAgICByZXR1cm4gaXNDYXBzTG9jayB8fCBpc01vZCB8fCBpc0FsdCB8fCBpc0Fycm93IHx8IGlzU2hpZnQgfHwgaXNUYWIgfHwgaXNFc2MgfHwgaXNGO1xufVxuXG5leHBvcnQgY29uc3QgaXNFeHBhbmRIb3RrZXkgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICByZXR1cm4gaXNLZXlIb3RrZXkoJ21vZCsvJywgZXZlbnQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVGFiSG90a2V5ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgcmV0dXJuIGV2ZW50LmtleSA9PT0gJ1RhYic7XG59O1xuXG5leHBvcnQgY29uc3QgaXNFbnRlckhvdGtleSA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIHJldHVybiBldmVudC5rZXkgPT09ICdFbnRlcic7XG59O1xuXG5leHBvcnQgY29uc3QgaXNTcGFjZUhvdGtleSA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgIHJldHVybiBldmVudC5jb2RlID09PSAnU3BhY2UnO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRGVsZXRlID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgcmV0dXJuIGhvdGtleXMuaXNEZWxldGVCYWNrd2FyZChldmVudCkgfHwgaG90a2V5cy5pc0RlbGV0ZUZvcndhcmQoZXZlbnQpO1xufTtcbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { PlaitBoard, PlaitContextService } from '@plait/core';
2
+ export const selectImage = (board, defaultImageWidth, handle, acceptImageTypes = ['png', 'jpeg', 'gif', 'bmp']) => {
3
+ const inputFile = document.createElement('input');
4
+ inputFile.setAttribute('type', 'file');
5
+ const acceptImageTypesString = '.' + acceptImageTypes.join(',.');
6
+ inputFile.setAttribute('accept', acceptImageTypesString);
7
+ inputFile.onchange = (event) => {
8
+ buildImage(board, event.target.files[0], defaultImageWidth, handle);
9
+ };
10
+ inputFile.click();
11
+ };
12
+ export const buildImage = async (board, imageFile, defaultImageWidth, handle) => {
13
+ let width = 0, height = 0;
14
+ await getImageSize(imageFile, defaultImageWidth).then((value) => {
15
+ width = value.width;
16
+ height = value.height;
17
+ });
18
+ let imageItem = null;
19
+ const url = URL.createObjectURL(imageFile);
20
+ const context = PlaitBoard.getComponent(board).viewContainerRef.injector.get(PlaitContextService);
21
+ context.setUploadingFile({ url, file: imageFile });
22
+ imageItem = {
23
+ url,
24
+ width,
25
+ height
26
+ };
27
+ handle(imageItem);
28
+ };
29
+ function getImageSize(file, defaultImageWidth) {
30
+ return new Promise((resolve, reject) => {
31
+ const image = new Image();
32
+ image.src = URL.createObjectURL(file);
33
+ image.onload = function () {
34
+ const width = defaultImageWidth;
35
+ const height = (defaultImageWidth * image.naturalHeight) / image.naturalWidth;
36
+ resolve(image.naturalWidth > defaultImageWidth ? { width, height } : { width: image.naturalWidth, height: image.naturalHeight });
37
+ };
38
+ });
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsVUFBVSxFQUFFLG1CQUFtQixFQUF1QixNQUFNLGFBQWEsQ0FBQztBQWFsRyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FDdkIsS0FBaUIsRUFDakIsaUJBQXlCLEVBQ3pCLE1BQThDLEVBQzlDLG1CQUE2QixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUM1RCxFQUFFO0lBQ0EsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2QyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUN6RCxTQUFTLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7UUFDbEMsVUFBVSxDQUFDLEtBQUssRUFBRyxLQUFLLENBQUMsTUFBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRixDQUFDLENBQUM7SUFDRixTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEtBQUssRUFDM0IsS0FBaUIsRUFDakIsU0FBZSxFQUNmLGlCQUF5QixFQUN6QixNQUE4QyxFQUNoRCxFQUFFO0lBQ0EsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUNULE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDZixNQUFNLFlBQVksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUF3QyxFQUFFLEVBQUU7UUFDL0YsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDckIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNsRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFFbkQsU0FBUyxHQUFHO1FBQ1IsR0FBRztRQUNILEtBQUs7UUFDTCxNQUFNO0tBQ1QsQ0FBQztJQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixTQUFTLFlBQVksQ0FBQyxJQUFVLEVBQUUsaUJBQXlCO0lBQ3ZELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMxQixLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsS0FBSyxDQUFDLE1BQU0sR0FBRztZQUNYLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDOUUsT0FBTyxDQUNILEtBQUssQ0FBQyxZQUFZLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLENBQzFILENBQUM7UUFDTixDQUFDLENBQUM7SUFDTixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlLCBQbGFpdEJvYXJkLCBQbGFpdENvbnRleHRTZXJ2aWNlLCBnZXRTZWxlY3RlZEVsZW1lbnRzIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS9pbWFnZS1iYXNlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uSW1hZ2VJdGVtIHtcbiAgICB1cmw6IHN0cmluZztcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhDb21tb25QbHVnaW5PcHRpb25zIHtcbiAgICBpbWFnZUNvbXBvbmVudFR5cGU/OiBDb21wb25lbnRUeXBlPEltYWdlQmFzZUNvbXBvbmVudD47XG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RJbWFnZSA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBkZWZhdWx0SW1hZ2VXaWR0aDogbnVtYmVyLFxuICAgIGhhbmRsZTogKGNvbW1vbkltYWdlOiBDb21tb25JbWFnZUl0ZW0pID0+IHZvaWQsXG4gICAgYWNjZXB0SW1hZ2VUeXBlczogc3RyaW5nW10gPSBbJ3BuZycsICdqcGVnJywgJ2dpZicsICdibXAnXVxuKSA9PiB7XG4gICAgY29uc3QgaW5wdXRGaWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICBpbnB1dEZpbGUuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2ZpbGUnKTtcbiAgICBjb25zdCBhY2NlcHRJbWFnZVR5cGVzU3RyaW5nID0gJy4nICsgYWNjZXB0SW1hZ2VUeXBlcy5qb2luKCcsLicpO1xuICAgIGlucHV0RmlsZS5zZXRBdHRyaWJ1dGUoJ2FjY2VwdCcsIGFjY2VwdEltYWdlVHlwZXNTdHJpbmcpO1xuICAgIGlucHV0RmlsZS5vbmNoYW5nZSA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgYnVpbGRJbWFnZShib2FyZCwgKGV2ZW50LnRhcmdldCBhcyBhbnkpLmZpbGVzWzBdLCBkZWZhdWx0SW1hZ2VXaWR0aCwgaGFuZGxlKTtcbiAgICB9O1xuICAgIGlucHV0RmlsZS5jbGljaygpO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkSW1hZ2UgPSBhc3luYyAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgaW1hZ2VGaWxlOiBGaWxlLFxuICAgIGRlZmF1bHRJbWFnZVdpZHRoOiBudW1iZXIsXG4gICAgaGFuZGxlOiAoY29tbW9uSW1hZ2U6IENvbW1vbkltYWdlSXRlbSkgPT4gdm9pZFxuKSA9PiB7XG4gICAgbGV0IHdpZHRoID0gMCxcbiAgICAgICAgaGVpZ2h0ID0gMDtcbiAgICBhd2FpdCBnZXRJbWFnZVNpemUoaW1hZ2VGaWxlLCBkZWZhdWx0SW1hZ2VXaWR0aCkudGhlbigodmFsdWU6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICB3aWR0aCA9IHZhbHVlLndpZHRoO1xuICAgICAgICBoZWlnaHQgPSB2YWx1ZS5oZWlnaHQ7XG4gICAgfSk7XG5cbiAgICBsZXQgaW1hZ2VJdGVtID0gbnVsbDtcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGltYWdlRmlsZSk7XG4gICAgY29uc3QgY29udGV4dCA9IFBsYWl0Qm9hcmQuZ2V0Q29tcG9uZW50KGJvYXJkKS52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLmdldChQbGFpdENvbnRleHRTZXJ2aWNlKTtcbiAgICBjb250ZXh0LnNldFVwbG9hZGluZ0ZpbGUoeyB1cmwsIGZpbGU6IGltYWdlRmlsZSB9KTtcblxuICAgIGltYWdlSXRlbSA9IHtcbiAgICAgICAgdXJsLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0XG4gICAgfTtcbiAgICBoYW5kbGUoaW1hZ2VJdGVtKTtcbn07XG5cbmZ1bmN0aW9uIGdldEltYWdlU2l6ZShmaWxlOiBGaWxlLCBkZWZhdWx0SW1hZ2VXaWR0aDogbnVtYmVyKTogUHJvbWlzZTx7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgICAgICBpbWFnZS5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpO1xuXG4gICAgICAgIGltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBkZWZhdWx0SW1hZ2VXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IChkZWZhdWx0SW1hZ2VXaWR0aCAqIGltYWdlLm5hdHVyYWxIZWlnaHQpIC8gaW1hZ2UubmF0dXJhbFdpZHRoO1xuICAgICAgICAgICAgcmVzb2x2ZShcbiAgICAgICAgICAgICAgICBpbWFnZS5uYXR1cmFsV2lkdGggPiBkZWZhdWx0SW1hZ2VXaWR0aCA/IHsgd2lkdGgsIGhlaWdodCB9IDogeyB3aWR0aDogaW1hZ2UubmF0dXJhbFdpZHRoLCBoZWlnaHQ6IGltYWdlLm5hdHVyYWxIZWlnaHQgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfTtcbiAgICB9KTtcbn1cbiJdfQ==
@@ -5,4 +5,5 @@ export * from './rectangle';
5
5
  export * from './creation-mode';
6
6
  export * from './direction';
7
7
  export * from './text';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Jlc2l6ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpbmUtcGF0aCc7XG5leHBvcnQgKiBmcm9tICcuL2hvdC1rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9yZWN0YW5nbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGlvbi1tb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dCc7XG4iXX0=
8
+ export * from './image';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Jlc2l6ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpbmUtcGF0aCc7XG5leHBvcnQgKiBmcm9tICcuL2hvdC1rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9yZWN0YW5nbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGlvbi1tb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlJztcbiJdfQ==