@plait/common 0.55.1 → 0.56.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/core/element-ref.d.ts +7 -0
- package/core/group.component.d.ts +2 -3
- package/core/plugin-element.d.ts +8 -1
- package/esm2022/core/element-ref.mjs +12 -0
- package/esm2022/core/group.component.mjs +5 -6
- package/esm2022/core/image-base.component.mjs +5 -3
- package/esm2022/core/plugin-element.mjs +20 -2
- package/esm2022/generators/generator.mjs +1 -1
- package/esm2022/generators/image.generator.mjs +2 -1
- package/esm2022/plugins/with-group.mjs +11 -7
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/utils/resize.mjs +9 -2
- package/esm2022/utils/text.mjs +5 -6
- package/fesm2022/plait-common.mjs +57 -20
- package/fesm2022/plait-common.mjs.map +1 -1
- package/generators/image.generator.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/utils/resize.d.ts +2 -1
- package/utils/text.d.ts +4 -3
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PlaitElementRef } from '@plait/core';
|
|
2
|
+
import { Generator } from '../generators';
|
|
3
|
+
export declare class PlaitCommonElementRef implements PlaitElementRef {
|
|
4
|
+
private generatorMap;
|
|
5
|
+
addGenerator<T extends Object = Generator>(key: string, generator: T): void;
|
|
6
|
+
getGenerator<T extends Object = Generator>(key: string): T;
|
|
7
|
+
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { OnInit, OnDestroy,
|
|
1
|
+
import { OnInit, OnDestroy, DestroyRef } from '@angular/core';
|
|
2
2
|
import { OnContextChanged, PlaitBoard, PlaitContextService, PlaitGroup, PlaitPluginElementContext } from '@plait/core';
|
|
3
3
|
import { GroupGenerator } from '../generators/group.generator';
|
|
4
4
|
import { ActiveGenerator } from '../generators';
|
|
5
5
|
import { CommonPluginElement } from './plugin-element';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class GroupComponent extends CommonPluginElement<PlaitGroup, PlaitBoard> implements OnInit, OnDestroy, OnContextChanged<PlaitGroup, PlaitBoard> {
|
|
8
|
-
protected cdr: ChangeDetectorRef;
|
|
9
8
|
private destroyRef;
|
|
10
9
|
contextService: PlaitContextService;
|
|
11
|
-
constructor(
|
|
10
|
+
constructor(destroyRef: DestroyRef);
|
|
12
11
|
activeGenerator: ActiveGenerator<PlaitGroup>;
|
|
13
12
|
groupGenerator: GroupGenerator;
|
|
14
13
|
initializeGenerator(): void;
|
package/core/plugin-element.d.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { PlaitBoard, PlaitElement, PlaitPluginElementComponent } from '@plait/core';
|
|
2
2
|
import { TextManage } from '@plait/text';
|
|
3
|
-
|
|
3
|
+
import { PlaitCommonElementRef } from './element-ref';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare abstract class CommonPluginElement<T extends PlaitElement = PlaitElement, K extends PlaitBoard = PlaitBoard, R extends PlaitCommonElementRef = PlaitCommonElementRef> extends PlaitPluginElementComponent<T, K, R> {
|
|
4
6
|
private textManages;
|
|
7
|
+
constructor();
|
|
8
|
+
initializeWeakMap(): void;
|
|
9
|
+
destroyWeakMap(): void;
|
|
5
10
|
initializeTextManages(textManages: TextManage[]): void;
|
|
6
11
|
addTextManage(textManage: TextManage): void;
|
|
7
12
|
destroyTextManages(): void;
|
|
8
13
|
getTextManages(): TextManage[];
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CommonPluginElement<any, any, any>, never>;
|
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<CommonPluginElement<any, any, any>, never, never, {}, {}, never, never, false, never>;
|
|
9
16
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class PlaitCommonElementRef {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.generatorMap = new Map();
|
|
4
|
+
}
|
|
5
|
+
addGenerator(key, generator) {
|
|
6
|
+
this.generatorMap.set(key, generator);
|
|
7
|
+
}
|
|
8
|
+
getGenerator(key) {
|
|
9
|
+
return this.generatorMap.get(key);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvcmUvZWxlbWVudC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLHFCQUFxQjtJQUFsQztRQUNZLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7SUFTakUsQ0FBQztJQVBHLFlBQVksQ0FBK0IsR0FBVyxFQUFFLFNBQVk7UUFDaEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFZLENBQStCLEdBQVc7UUFDbEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQU0sQ0FBQztJQUMzQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEVsZW1lbnRSZWYgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIFBsYWl0Q29tbW9uRWxlbWVudFJlZiBpbXBsZW1lbnRzIFBsYWl0RWxlbWVudFJlZiB7XG4gICAgcHJpdmF0ZSBnZW5lcmF0b3JNYXAgPSBuZXcgTWFwPHN0cmluZywgR2VuZXJhdG9yIHwgT2JqZWN0PigpO1xuXG4gICAgYWRkR2VuZXJhdG9yPFQgZXh0ZW5kcyBPYmplY3QgPSBHZW5lcmF0b3I+KGtleTogc3RyaW5nLCBnZW5lcmF0b3I6IFQpIHtcbiAgICAgICAgdGhpcy5nZW5lcmF0b3JNYXAuc2V0KGtleSwgZ2VuZXJhdG9yKTtcbiAgICB9XG5cbiAgICBnZXRHZW5lcmF0b3I8VCBleHRlbmRzIE9iamVjdCA9IEdlbmVyYXRvcj4oa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdG9yTWFwLmdldChrZXkpIGFzIFQ7XG4gICAgfVxufVxuIl19
|
|
@@ -6,9 +6,8 @@ import { ActiveGenerator } from '../generators';
|
|
|
6
6
|
import { CommonPluginElement } from './plugin-element';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class GroupComponent extends CommonPluginElement {
|
|
9
|
-
constructor(
|
|
10
|
-
super(
|
|
11
|
-
this.cdr = cdr;
|
|
9
|
+
constructor(destroyRef) {
|
|
10
|
+
super();
|
|
12
11
|
this.destroyRef = destroyRef;
|
|
13
12
|
this.contextService = inject(PlaitContextService);
|
|
14
13
|
}
|
|
@@ -39,7 +38,7 @@ export class GroupComponent extends CommonPluginElement {
|
|
|
39
38
|
});
|
|
40
39
|
}
|
|
41
40
|
onContextChanged(value, previous) { }
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GroupComponent, deps: [{ token: i0.
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GroupComponent, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
42
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: GroupComponent, isStandalone: true, selector: "plait-group", usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
44
43
|
}
|
|
45
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GroupComponent, decorators: [{
|
|
@@ -50,5 +49,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
50
49
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
51
50
|
standalone: true
|
|
52
51
|
}]
|
|
53
|
-
}], ctorParameters: () => [{ type: i0.
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
}], ctorParameters: () => [{ type: i0.DestroyRef }] });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb3JlL2dyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDN0gsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUdILG1CQUFtQixFQUduQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDcEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBUXZELE1BQU0sT0FBTyxjQUFlLFNBQVEsbUJBQTJDO0lBSTNFLFlBQW9CLFVBQXNCO1FBQ3RDLEtBQUssRUFBRSxDQUFDO1FBRFEsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUYxQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBSTdDLENBQUM7SUFNRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFhLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDL0QsWUFBWSxFQUFFLENBQUMsT0FBbUIsRUFBRSxFQUFFO2dCQUNsQyxPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDcEQsQ0FBQztZQUNELGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDekIsZUFBZSxFQUFFLEdBQUcsRUFBRTtnQkFDbEIsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxDQUFDO1NBQ0osQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWM7YUFDZCxRQUFRLEVBQUU7YUFDVixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xGLE1BQU0sb0JBQW9CLEdBQ3RCLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN4RSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUMvRixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxnQkFBZ0IsQ0FDWixLQUF3RCxFQUN4RCxRQUEyRCxJQUM1RCxDQUFDOzhHQTVDSyxjQUFjO2tHQUFkLGNBQWMsOEZBSmIsRUFBRTs7MkZBSUgsY0FBYztrQkFOMUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBEZXN0cm95UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICAgIE9uQ29udGV4dENoYW5nZWQsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdENvbnRleHRTZXJ2aWNlLFxuICAgIFBsYWl0R3JvdXAsXG4gICAgUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCxcbiAgICBnZXRFbGVtZW50c0luR3JvdXAsXG4gICAgZ2V0UmVjdGFuZ2xlQnlHcm91cCxcbiAgICBpc1NlbGVjdGVkRWxlbWVudE9yR3JvdXAsXG4gICAgaXNTZWxlY3Rpb25Nb3Zpbmdcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgR3JvdXBHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzL2dyb3VwLmdlbmVyYXRvcic7XG5pbXBvcnQgeyBBY3RpdmVHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzJztcbmltcG9ydCB7IENvbW1vblBsdWdpbkVsZW1lbnQgfSBmcm9tICcuL3BsdWdpbi1lbGVtZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwbGFpdC1ncm91cCcsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgR3JvdXBDb21wb25lbnQgZXh0ZW5kcyBDb21tb25QbHVnaW5FbGVtZW50PFBsYWl0R3JvdXAsIFBsYWl0Qm9hcmQ+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25Db250ZXh0Q2hhbmdlZDxQbGFpdEdyb3VwLCBQbGFpdEJvYXJkPiB7XG4gICAgY29udGV4dFNlcnZpY2UgPSBpbmplY3QoUGxhaXRDb250ZXh0U2VydmljZSk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBhY3RpdmVHZW5lcmF0b3IhOiBBY3RpdmVHZW5lcmF0b3I8UGxhaXRHcm91cD47XG5cbiAgICBncm91cEdlbmVyYXRvciE6IEdyb3VwR2VuZXJhdG9yO1xuXG4gICAgaW5pdGlhbGl6ZUdlbmVyYXRvcigpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IgPSBuZXcgQWN0aXZlR2VuZXJhdG9yPFBsYWl0R3JvdXA+KHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKGVsZW1lbnQ6IFBsYWl0R3JvdXApID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0UmVjdGFuZ2xlQnlHcm91cCh0aGlzLmJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTdHJva2VXaWR0aDogKCkgPT4gMCxcbiAgICAgICAgICAgIGdldFN0cm9rZU9wYWNpdHk6ICgpID0+IDAsXG4gICAgICAgICAgICBoYXNSZXNpemVIYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWlzU2VsZWN0aW9uTW92aW5nKHRoaXMuYm9hcmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ncm91cEdlbmVyYXRvciA9IG5ldyBHcm91cEdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplR2VuZXJhdG9yKCk7XG4gICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2VcbiAgICAgICAgICAgIC5vblN0YWJsZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzSW5Hcm91cCA9IGdldEVsZW1lbnRzSW5Hcm91cCh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1BhcnRpYWxTZWxlY3RHcm91cCA9XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzSW5Hcm91cC5zb21lKGl0ZW0gPT4gaXNTZWxlY3RlZEVsZW1lbnRPckdyb3VwKHRoaXMuYm9hcmQsIGl0ZW0pKSAmJlxuICAgICAgICAgICAgICAgICAgICAhZWxlbWVudHNJbkdyb3VwLmV2ZXJ5KGl0ZW0gPT4gaXNTZWxlY3RlZEVsZW1lbnRPckdyb3VwKHRoaXMuYm9hcmQsIGl0ZW0pKTtcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgdGhpcy5nZXRFbGVtZW50RygpLCBpc1BhcnRpYWxTZWxlY3RHcm91cCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2VkKFxuICAgICAgICB2YWx1ZTogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxQbGFpdEdyb3VwLCBQbGFpdEJvYXJkPixcbiAgICAgICAgcHJldmlvdXM6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRHcm91cCwgUGxhaXRCb2FyZD5cbiAgICApIHt9XG59XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Directive, Input } from '@angular/core';
|
|
2
2
|
import { ACTIVE_STROKE_WIDTH, PlaitBoard, getSelectedElements, isSelectionMoving } from '@plait/core';
|
|
3
3
|
import { ActiveGenerator } from '../generators';
|
|
4
|
+
import { canResize, getElementOfFocusedImage } from '../utils';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export class ImageBaseComponent {
|
|
6
7
|
set imageItem(value) {
|
|
@@ -50,8 +51,9 @@ export class ImageBaseComponent {
|
|
|
50
51
|
return this.getRectangle();
|
|
51
52
|
},
|
|
52
53
|
hasResizeHandle: () => {
|
|
53
|
-
const
|
|
54
|
-
|
|
54
|
+
const isSelectedImageElement = canResize(this.board, this.element);
|
|
55
|
+
const isSelectedImage = !!getElementOfFocusedImage(this.board);
|
|
56
|
+
return isSelectedImage || isSelectedImageElement;
|
|
55
57
|
}
|
|
56
58
|
});
|
|
57
59
|
this.initialized = true;
|
|
@@ -90,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
90
92
|
}], hasResizeHandle: [{
|
|
91
93
|
type: Input
|
|
92
94
|
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvcmUvaW1hZ2UtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWMsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFpQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNySSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBbUIsU0FBUyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQU9oRixNQUFNLE9BQWdCLGtCQUFrQjtJQVlwQyxJQUNJLFNBQVMsQ0FBQyxLQUFzQjtRQUNoQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBS0QsSUFDSSxPQUFPLENBQUMsS0FBYztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBUUQsWUFBc0IsVUFBbUMsRUFBUyxHQUFzQjtRQUFsRSxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBekN4RixnQkFBVyxHQUFHLEtBQUssQ0FBQztJQXlDdUUsQ0FBQztJQUU1RixRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ25ELGNBQWMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDckUsT0FBTyxtQkFBbUIsQ0FBQztnQkFDL0IsQ0FBQztxQkFBTSxDQUFDO29CQUNKLE9BQU8sbUJBQW1CLENBQUM7Z0JBQy9CLENBQUM7WUFDTCxDQUFDO1lBQ0QsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO2dCQUNuQixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoRyxPQUFPLENBQUMsQ0FBQztnQkFDYixDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxHQUFHLENBQUM7Z0JBQ2YsQ0FBQztZQUNMLENBQUM7WUFDRCxZQUFZLEVBQUUsR0FBRyxFQUFFO2dCQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9CLENBQUM7WUFDRCxlQUFlLEVBQUUsR0FBRyxFQUFFO2dCQUNsQixNQUFNLHNCQUFzQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbkUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0QsT0FBTyxlQUFlLElBQUksc0JBQXNCLENBQUM7WUFDckQsQ0FBQztTQUNKLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBdUIsRUFBRSxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDNUcsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxDQUFDO0lBQ0wsQ0FBQzs4R0F6RmlCLGtCQUFrQjtrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUx2QyxTQUFTO21CQUFDO29CQUNQLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsdUJBQXVCO3FCQUNqQztpQkFDSjsrR0FXRyxPQUFPO3NCQUROLEtBQUs7Z0JBSUYsU0FBUztzQkFEWixLQUFLO2dCQVlOLEtBQUs7c0JBREosS0FBSztnQkFJRixPQUFPO3NCQURWLEtBQUs7Z0JBZ0JHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUNUSVZFX1NUUk9LRV9XSURUSCwgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBSZWN0YW5nbGVDbGllbnQsIGdldFNlbGVjdGVkRWxlbWVudHMsIGlzU2VsZWN0aW9uTW92aW5nIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZlR2VuZXJhdG9yIH0gZnJvbSAnLi4vZ2VuZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21tb25JbWFnZUl0ZW0sIGNhblJlc2l6ZSwgZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAncGxhaXQtaW1hZ2UtY29udGFpbmVyJ1xuICAgIH1cbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW1hZ2VCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIF9pbWFnZUl0ZW0hOiBDb21tb25JbWFnZUl0ZW07XG5cbiAgICBfaXNGb2N1cyE6IGJvb2xlYW47XG5cbiAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgYWN0aXZlR2VuZXJhdG9yITogQWN0aXZlR2VuZXJhdG9yO1xuXG4gICAgQElucHV0KClcbiAgICBlbGVtZW50ITogUGxhaXRFbGVtZW50O1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgaW1hZ2VJdGVtKHZhbHVlOiBDb21tb25JbWFnZUl0ZW0pIHtcbiAgICAgICAgdGhpcy5hZnRlckltYWdlSXRlbUNoYW5nZSh0aGlzLl9pbWFnZUl0ZW0sIHZhbHVlKTtcbiAgICAgICAgdGhpcy5faW1hZ2VJdGVtID0gdmFsdWU7XG4gICAgICAgIHRoaXMuZHJhd0ZvY3VzKCk7XG4gICAgfVxuXG4gICAgZ2V0IGltYWdlSXRlbSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ltYWdlSXRlbTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGJvYXJkITogUGxhaXRCb2FyZDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGlzRm9jdXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNGb2N1cyA9IHZhbHVlO1xuICAgICAgICB0aGlzLmRyYXdGb2N1cygpO1xuICAgIH1cblxuICAgIGdldCBpc0ZvY3VzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNGb2N1cztcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGFic3RyYWN0IGFmdGVySW1hZ2VJdGVtQ2hhbmdlKHByZXZpb3VzOiBDb21tb25JbWFnZUl0ZW0sIGN1cnJlbnQ6IENvbW1vbkltYWdlSXRlbSk6IHZvaWQ7XG5cbiAgICBASW5wdXQoKSBnZXRSZWN0YW5nbGUhOiAoKSA9PiBSZWN0YW5nbGVDbGllbnQ7XG5cbiAgICBASW5wdXQoKSBoYXNSZXNpemVIYW5kbGUhOiAoKSA9PiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBBY3RpdmVHZW5lcmF0b3IodGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoIShzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTdHJva2VPcGFjaXR5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpIHx8ICFzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRSZWN0YW5nbGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoYXNSZXNpemVIYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkSW1hZ2VFbGVtZW50ID0gY2FuUmVzaXplKHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNTZWxlY3RlZEltYWdlID0gISFnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UodGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzU2VsZWN0ZWRJbWFnZSB8fCBpc1NlbGVjdGVkSW1hZ2VFbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgZHJhd0ZvY3VzKCkge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlRyA9IFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQgYXMgUGxhaXRFbGVtZW50LCBhY3RpdmVHLCB7IHNlbGVjdGVkOiB0aGlzLl9pc0ZvY3VzIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUdlbmVyYXRvcikge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
import { PlaitPluginElementComponent } from '@plait/core';
|
|
2
|
+
import { ELEMENT_TO_TEXT_MANAGES } from '../utils/text';
|
|
3
|
+
import { PlaitCommonElementRef } from './element-ref';
|
|
4
|
+
import { Directive } from '@angular/core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
2
6
|
export class CommonPluginElement extends PlaitPluginElementComponent {
|
|
3
7
|
constructor() {
|
|
4
|
-
|
|
8
|
+
const elementRef = new PlaitCommonElementRef();
|
|
9
|
+
super(elementRef);
|
|
5
10
|
this.textManages = [];
|
|
6
11
|
}
|
|
12
|
+
initializeWeakMap() {
|
|
13
|
+
ELEMENT_TO_TEXT_MANAGES.set(this.element, this.textManages);
|
|
14
|
+
}
|
|
15
|
+
destroyWeakMap() {
|
|
16
|
+
ELEMENT_TO_TEXT_MANAGES.delete(this.element);
|
|
17
|
+
}
|
|
7
18
|
initializeTextManages(textManages) {
|
|
8
19
|
this.textManages = textManages;
|
|
20
|
+
this.initializeWeakMap();
|
|
9
21
|
}
|
|
10
22
|
addTextManage(textManage) {
|
|
11
23
|
this.textManages.push(textManage);
|
|
@@ -15,9 +27,15 @@ export class CommonPluginElement extends PlaitPluginElementComponent {
|
|
|
15
27
|
manage.destroy();
|
|
16
28
|
});
|
|
17
29
|
this.textManages = [];
|
|
30
|
+
this.destroyWeakMap();
|
|
18
31
|
}
|
|
19
32
|
getTextManages() {
|
|
20
33
|
return this.textManages;
|
|
21
34
|
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CommonPluginElement, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
36
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.4", type: CommonPluginElement, usesInheritance: true, ngImport: i0 }); }
|
|
22
37
|
}
|
|
23
|
-
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CommonPluginElement, decorators: [{
|
|
39
|
+
type: Directive
|
|
40
|
+
}], ctorParameters: () => [] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvcmUvcGx1Z2luLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QywyQkFBMkIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzFDLE1BQU0sT0FBZ0IsbUJBSXBCLFNBQVEsMkJBQW9DO0lBRzFDO1FBQ0ksTUFBTSxVQUFVLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQy9DLEtBQUssQ0FBQyxVQUFlLENBQUMsQ0FBQztRQUpuQixnQkFBVyxHQUFpQixFQUFFLENBQUM7SUFLdkMsQ0FBQztJQUVELGlCQUFpQjtRQUNiLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsY0FBYztRQUNWLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELHFCQUFxQixDQUFDLFdBQXlCO1FBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxhQUFhLENBQUMsVUFBc0I7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7OEdBdkNpQixtQkFBbUI7a0dBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVMRU1FTlRfVE9fUkVGLCBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFBsYWl0UGx1Z2luRWxlbWVudENvbXBvbmVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFRleHRNYW5hZ2UgfSBmcm9tICdAcGxhaXQvdGV4dCc7XG5pbXBvcnQgeyBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUyB9IGZyb20gJy4uL3V0aWxzL3RleHQnO1xuaW1wb3J0IHsgUGxhaXRDb21tb25FbGVtZW50UmVmIH0gZnJvbSAnLi9lbGVtZW50LXJlZic7XG5pbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29tbW9uUGx1Z2luRWxlbWVudDxcbiAgICBUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50LFxuICAgIEsgZXh0ZW5kcyBQbGFpdEJvYXJkID0gUGxhaXRCb2FyZCxcbiAgICBSIGV4dGVuZHMgUGxhaXRDb21tb25FbGVtZW50UmVmID0gUGxhaXRDb21tb25FbGVtZW50UmVmXG4+IGV4dGVuZHMgUGxhaXRQbHVnaW5FbGVtZW50Q29tcG9uZW50PFQsIEssIFI+IHtcbiAgICBwcml2YXRlIHRleHRNYW5hZ2VzOiBUZXh0TWFuYWdlW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCBlbGVtZW50UmVmID0gbmV3IFBsYWl0Q29tbW9uRWxlbWVudFJlZigpO1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmIGFzIFIpO1xuICAgIH1cblxuICAgIGluaXRpYWxpemVXZWFrTWFwKCkge1xuICAgICAgICBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUy5zZXQodGhpcy5lbGVtZW50LCB0aGlzLnRleHRNYW5hZ2VzKTtcbiAgICB9XG5cbiAgICBkZXN0cm95V2Vha01hcCgpIHtcbiAgICAgICAgRUxFTUVOVF9UT19URVhUX01BTkFHRVMuZGVsZXRlKHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVRleHRNYW5hZ2VzKHRleHRNYW5hZ2VzOiBUZXh0TWFuYWdlW10pIHtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlcyA9IHRleHRNYW5hZ2VzO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVXZWFrTWFwKCk7XG4gICAgfVxuXG4gICAgYWRkVGV4dE1hbmFnZSh0ZXh0TWFuYWdlOiBUZXh0TWFuYWdlKSB7XG4gICAgICAgIHRoaXMudGV4dE1hbmFnZXMucHVzaCh0ZXh0TWFuYWdlKTtcbiAgICB9XG5cbiAgICBkZXN0cm95VGV4dE1hbmFnZXMoKSB7XG4gICAgICAgIHRoaXMuZ2V0VGV4dE1hbmFnZXMoKS5mb3JFYWNoKG1hbmFnZSA9PiB7XG4gICAgICAgICAgICBtYW5hZ2UuZGVzdHJveSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlcyA9IFtdO1xuICAgICAgICB0aGlzLmRlc3Ryb3lXZWFrTWFwKCk7XG4gICAgfVxuXG4gICAgZ2V0VGV4dE1hbmFnZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRNYW5hZ2VzO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -58,4 +58,4 @@ export function hasAfterDraw(value) {
|
|
|
58
58
|
}
|
|
59
59
|
return false;
|
|
60
60
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3JzL2dlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFlBQVksRUFDZixNQUFNLGFBQWEsQ0FBQztBQVNyQixNQUFNLE9BQWdCLFNBQVM7SUFTM0IsWUFBc0IsS0FBaUIsRUFBRSxPQUFXO1FBQTlCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFVLEVBQUUsT0FBb0IsRUFBRSxJQUFRO1FBQ3JELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzlDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ0osSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixDQUFDO3FCQUFNLENBQUM7b0JBQ0osSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO3dCQUN4QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2QixDQUFDO3lCQUFNLENBQUM7d0JBQ0osT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0IsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNYLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNQLElBQUksS0FBSyxDQUFDO29CQUNWLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7d0JBQ3JDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUM3RSxDQUFDO3lCQUFNLENBQUM7d0JBQ0osS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQzFCLENBQUM7b0JBQ0QsSUFBSSxLQUFLLEVBQUUsQ0FBQzt3QkFDUixZQUFZLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ2pFLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsQ0FBQztZQUNELElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUIsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDTCxDQUFDO0lBWUQsT0FBTztRQUNILElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN2QixDQUFDO0lBQ0wsQ0FBQztDQUNKO0FBTUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFVO0lBQ25DLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBQbGFpdEdyb3VwRWxlbWVudCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0RWxlbWVudHNJbkdyb3VwLFxuICAgIGdldFNlbGVjdGlvbkFuZ2xlLFxuICAgIHNldEFuZ2xlRm9yR1xufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdENvbW1vbkVsZW1lbnRSZWYgfSBmcm9tICcuLi9jb3JlL2VsZW1lbnQtcmVmJztcblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0b3JFeHRyYURhdGEge31cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0b3JPcHRpb25zIHtcbiAgICBwcmVwZW5kPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEdlbmVyYXRvcjxcbiAgICBUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50LFxuICAgIEsgZXh0ZW5kcyBHZW5lcmF0b3JFeHRyYURhdGEgPSBHZW5lcmF0b3JFeHRyYURhdGEsXG4gICAgViBleHRlbmRzIEdlbmVyYXRvck9wdGlvbnMgPSBHZW5lcmF0b3JPcHRpb25zXG4+IHtcbiAgICBnPzogU1ZHR0VsZW1lbnQ7XG5cbiAgICBwcm90ZWN0ZWQgb3B0aW9ucz86IFY7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYm9hcmQ6IFBsYWl0Qm9hcmQsIG9wdGlvbnM/OiBWKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0RyYXdpbmcoZWxlbWVudDogVCwgcGFyZW50RzogU1ZHR0VsZW1lbnQsIGRhdGE/OiBLKSB7XG4gICAgICAgIGlmICh0aGlzLmNhbkRyYXcgJiYgdGhpcy5jYW5EcmF3KGVsZW1lbnQsIGRhdGEpKSB7XG4gICAgICAgICAgICBjb25zdCBnID0gdGhpcy5kcmF3KGVsZW1lbnQsIGRhdGEpO1xuICAgICAgICAgICAgaWYgKGcpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5nICYmIHBhcmVudEcuY29udGFpbnModGhpcy5nKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmcucmVwbGFjZVdpdGgoZyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucz8ucHJlcGVuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Ry5wcmVwZW5kKGcpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Ry5hcHBlbmRDaGlsZChnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmcgPSBnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLmJvYXJkLmdldFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICAgICAgICAgICAgICBpZiAocmVjdCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgYW5nbGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChQbGFpdEdyb3VwRWxlbWVudC5pc0dyb3VwKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmdsZSA9IGdldFNlbGVjdGlvbkFuZ2xlKGdldEVsZW1lbnRzSW5Hcm91cCh0aGlzLmJvYXJkLCBlbGVtZW50LCB0cnVlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmdsZSA9IGVsZW1lbnQuYW5nbGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFuZ2xlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRBbmdsZUZvckcoZywgUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KHJlY3QpLCBhbmdsZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhhc0FmdGVyRHJhdyh0aGlzKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJEcmF3KGVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBhYnN0cmFjdCBmdW5jdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBjYW5EcmF3KGVsZW1lbnQ6IFQsIGRhdGE/OiBLKTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIGFic3RyYWN0IGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGRyYXcoZWxlbWVudDogVCwgZGF0YT86IEspOiBTVkdHRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmcpIHtcbiAgICAgICAgICAgIHRoaXMuZy5yZW1vdmUoKTtcbiAgICAgICAgICAgIHRoaXMuZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZnRlckRyYXc8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudD4ge1xuICAgIGFmdGVyRHJhdyhlbGVtZW50OiBUKTogdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0FmdGVyRHJhdyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQWZ0ZXJEcmF3IHtcbiAgICBpZiAodmFsdWUuYWZ0ZXJEcmF3KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG4iXX0=
|
|
@@ -2,6 +2,7 @@ import { RectangleClient, createForeignObject, createG, setAngleForG, updateFore
|
|
|
2
2
|
import { Generator } from './generator';
|
|
3
3
|
import { WithCommonPluginKey } from '../constants';
|
|
4
4
|
export class ImageGenerator extends Generator {
|
|
5
|
+
static { this.key = 'image-generator'; }
|
|
5
6
|
constructor(board, options) {
|
|
6
7
|
super(board, options);
|
|
7
8
|
this.board = board;
|
|
@@ -55,4 +56,4 @@ export class ImageGenerator extends Generator {
|
|
|
55
56
|
this.componentRef?.destroy();
|
|
56
57
|
}
|
|
57
58
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3JzL2ltYWdlLmdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUgsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsWUFBWSxFQUNaLG1CQUFtQixFQUN0QixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLGFBQWEsQ0FBQztBQUkxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFVbkQsTUFBTSxPQUFPLGNBQXNELFNBQVEsU0FJMUU7YUFDVSxRQUFHLEdBQUcsaUJBQWlCLENBQUM7SUFNL0IsWUFBbUIsS0FBaUIsRUFBUyxPQUFpQztRQUMxRSxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRFAsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQTBCO0lBRTlFLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBVSxFQUFFLElBQXNCO1FBQ3RDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFJLENBQUMsT0FBVSxFQUFFLGdCQUFrQztRQUMvQyxNQUFNLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxhQUFhLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEks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TyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBQbGFpdE9wdGlvbnNCb2FyZCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgY3JlYXRlRm9yZWlnbk9iamVjdCxcbiAgICBjcmVhdGVHLFxuICAgIHNldEFuZ2xlRm9yRyxcbiAgICB1cGRhdGVGb3JlaWduT2JqZWN0XG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEdlbmVyYXRvciwgR2VuZXJhdG9yT3B0aW9ucyB9IGZyb20gJy4vZ2VuZXJhdG9yJztcbmltcG9ydCB7IENvbXBvbmVudFJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS9pbWFnZS1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25JbWFnZUl0ZW0sIFdpdGhDb21tb25QbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgV2l0aENvbW1vblBsdWdpbktleSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5leHBvcnQgaW50ZXJmYWNlIFNoYXBlRGF0YSB7XG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbWFnZUdlbmVyYXRvck9wdGlvbnM8VD4ge1xuICAgIGdldFJlY3RhbmdsZTogKGVsZW1lbnQ6IFQpID0+IFJlY3RhbmdsZUNsaWVudDtcbiAgICBnZXRJbWFnZUl0ZW06IChlbGVtZW50OiBUKSA9PiBDb21tb25JbWFnZUl0ZW07XG59XG5cbmV4cG9ydCBjbGFzcyBJbWFnZUdlbmVyYXRvcjxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50PiBleHRlbmRzIEdlbmVyYXRvcjxcbiAgICBULFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgSW1hZ2VHZW5lcmF0b3JPcHRpb25zPFQ+ICYgR2VuZXJhdG9yT3B0aW9uc1xuPiB7XG4gICAgc3RhdGljIGtleSA9ICdpbWFnZS1nZW5lcmF0b3InO1xuXG4gICAgZm9yZWlnbk9iamVjdCE6IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50O1xuXG4gICAgY29tcG9uZW50UmVmITogQ29tcG9uZW50UmVmPEltYWdlQmFzZUNvbXBvbmVudD47XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgYm9hcmQ6IFBsYWl0Qm9hcmQsIHB1YmxpYyBvcHRpb25zOiBJbWFnZUdlbmVyYXRvck9wdGlvbnM8VD4pIHtcbiAgICAgICAgc3VwZXIoYm9hcmQsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNhbkRyYXcoZWxlbWVudDogVCwgZGF0YTogVmlld0NvbnRhaW5lclJlZik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLm9wdGlvbnMuZ2V0SW1hZ2VJdGVtKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGRyYXcoZWxlbWVudDogVCwgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZik6IFNWR0dFbGVtZW50IHtcbiAgICAgICAgY29uc3QgZyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgY29uc3QgZm9yZWlnblJlY3RhbmdsZSA9IHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgIHRoaXMuZm9yZWlnbk9iamVjdCA9IGNyZWF0ZUZvcmVpZ25PYmplY3QoZm9yZWlnblJlY3RhbmdsZS54LCBmb3JlaWduUmVjdGFuZ2xlLnksIGZvcmVpZ25SZWN0YW5nbGUud2lkdGgsIGZvcmVpZ25SZWN0YW5nbGUuaGVpZ2h0KTtcbiAgICAgICAgZy5hcHBlbmQodGhpcy5mb3JlaWduT2JqZWN0KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50VHlwZSA9ICh0aGlzLmJvYXJkIGFzIFBsYWl0T3B0aW9uc0JvYXJkKS5nZXRQbHVnaW5PcHRpb25zPFdpdGhDb21tb25QbHVnaW5PcHRpb25zPihXaXRoQ29tbW9uUGx1Z2luS2V5KVxuICAgICAgICAgICAgLmltYWdlQ29tcG9uZW50VHlwZTtcbiAgICAgICAgaWYgKCFjb21wb25lbnRUeXBlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnQgSW1hZ2VCYXNlQ29tcG9uZW50IGVycm9yLicpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50VHlwZSk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmJvYXJkID0gdGhpcy5ib2FyZDtcblxuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5pbWFnZUl0ZW0gPSB0aGlzLm9wdGlvbnMuZ2V0SW1hZ2VJdGVtKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuZ2V0UmVjdGFuZ2xlID0gKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5mb3JlaWduT2JqZWN0LmFwcGVuZCh0aGlzLmNvbXBvbmVudFJlZiEuaW5zdGFuY2UubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHJldHVybiBnO1xuICAgIH1cblxuICAgIHVwZGF0ZUltYWdlKG5vZGVHOiBTVkdHRWxlbWVudCwgcHJldmlvdXM6IFQsIGN1cnJlbnQ6IFQpIHtcbiAgICAgICAgaWYgKHByZXZpb3VzICE9PSBjdXJyZW50ICYmIHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5pbWFnZUl0ZW0gPSB0aGlzLm9wdGlvbnMuZ2V0SW1hZ2VJdGVtKGN1cnJlbnQpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuZWxlbWVudCA9IGN1cnJlbnQ7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiEuaW5zdGFuY2UuZ2V0UmVjdGFuZ2xlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKGN1cnJlbnQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50Rm9yZWlnbk9iamVjdCA9IHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoY3VycmVudCk7XG4gICAgICAgIHVwZGF0ZUZvcmVpZ25PYmplY3QoXG4gICAgICAgICAgICB0aGlzLmchLFxuICAgICAgICAgICAgY3VycmVudEZvcmVpZ25PYmplY3Qud2lkdGgsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC5oZWlnaHQsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC54LFxuICAgICAgICAgICAgY3VycmVudEZvcmVpZ25PYmplY3QueVxuICAgICAgICApO1xuICAgICAgICBpZiAoY3VycmVudEZvcmVpZ25PYmplY3QgJiYgY3VycmVudC5hbmdsZSkge1xuICAgICAgICAgICAgc2V0QW5nbGVGb3JHKHRoaXMuZyEsIFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludChjdXJyZW50Rm9yZWlnbk9iamVjdCksIGN1cnJlbnQuYW5nbGUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNvbHZlIGltYWdlIGxvc2Ugb24gbW92ZSBub2RlXG4gICAgICAgIGlmICh0aGlzLmZvcmVpZ25PYmplY3QuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmZvcmVpZ25PYmplY3QuYXBwZW5kKHRoaXMuY29tcG9uZW50UmVmIS5pbnN0YW5jZS5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZj8uaW5zdGFuY2UuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWY/LmRlc3Ryb3koKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { PlaitBoard, PlaitGroupElement, toViewBoxPoint, toHostPoint, getHitElementsBySelection, createGroupRectangleG, getHighestSelectedGroups, getSelectedIsolatedElements, getSelectedGroups, Selection, Transforms, idCreator, getGroupByElement, getSelectedIsolatedElementsCanAddToGroup, getElementsInGroup, getRectangleByGroup } from '@plait/core';
|
|
1
|
+
import { PlaitBoard, PlaitGroupElement, toViewBoxPoint, toHostPoint, getHitElementsBySelection, createGroupRectangleG, getHighestSelectedGroups, getSelectedIsolatedElements, getSelectedGroups, Selection, Transforms, idCreator, getGroupByElement, getSelectedIsolatedElementsCanAddToGroup, getElementsInGroup, getRectangleByGroup, PlaitPointerType } from '@plait/core';
|
|
2
2
|
import { GroupComponent } from '../core/group.component';
|
|
3
3
|
import { isKeyHotkey } from 'is-hotkey';
|
|
4
|
+
import { isResizing } from '../utils';
|
|
4
5
|
export function withGroup(board) {
|
|
5
6
|
let groupRectangleG;
|
|
6
7
|
let removeGroups;
|
|
@@ -18,10 +19,13 @@ export function withGroup(board) {
|
|
|
18
19
|
if (board.selection && !Selection.isCollapsed(board.selection)) {
|
|
19
20
|
selection = board.selection;
|
|
20
21
|
}
|
|
21
|
-
const
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
const pointer = PlaitBoard.getPointer(board);
|
|
23
|
+
if (!isResizing(board) && pointer === PlaitPointerType.selection) {
|
|
24
|
+
const hitElements = getHitElementsBySelection(board, selection);
|
|
25
|
+
if (hitElements.length) {
|
|
26
|
+
groupRectangleG = createGroupRectangleG(board, hitElements);
|
|
27
|
+
groupRectangleG && PlaitBoard.getElementActiveHost(board).append(groupRectangleG);
|
|
28
|
+
}
|
|
25
29
|
}
|
|
26
30
|
pointerMove(event);
|
|
27
31
|
};
|
|
@@ -31,7 +35,7 @@ export function withGroup(board) {
|
|
|
31
35
|
globalPointerUp(event);
|
|
32
36
|
};
|
|
33
37
|
board.getRelatedFragment = (elements, originData) => {
|
|
34
|
-
const groups = getSelectedGroups(board, originData);
|
|
38
|
+
const groups = getSelectedGroups(board, elements, originData);
|
|
35
39
|
return getRelatedFragment([...elements, ...groups], originData);
|
|
36
40
|
};
|
|
37
41
|
board.insertFragment = (clipboardData, targetPoint) => {
|
|
@@ -189,4 +193,4 @@ const updateSiblingElementGroupId = (board, removeGroups) => {
|
|
|
189
193
|
}
|
|
190
194
|
});
|
|
191
195
|
};
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcGx1Z2lucy93aXRoLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBRVYsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxXQUFXLEVBQ1gseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUVyQix3QkFBd0IsRUFDeEIsMkJBQTJCLEVBRzNCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsVUFBVSxFQUNWLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsd0NBQXdDLEVBQ3hDLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDdEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFpQjtJQUN2QyxJQUFJLGVBQW1DLENBQUM7SUFDeEMsSUFBSSxZQUFpQyxDQUFDO0lBRXRDLE1BQU0sRUFDRixXQUFXLEVBQ1gsV0FBVyxFQUNYLGVBQWUsRUFDZixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLE9BQU8sRUFDVixHQUFHLEtBQUssQ0FBQztJQUVWLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxPQUFrQyxFQUFFLEVBQUU7UUFDdkQsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDN0MsT0FBTyxjQUFjLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7UUFDeEMsZUFBZSxF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LEVBQUUsSUFBSSxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDekUsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCxcbiAgICBQbGFpdEdyb3VwRWxlbWVudCxcbiAgICB0b1ZpZXdCb3hQb2ludCxcbiAgICB0b0hvc3RQb2ludCxcbiAgICBnZXRIaXRFbGVtZW50c0J5U2VsZWN0aW9uLFxuICAgIGNyZWF0ZUdyb3VwUmVjdGFuZ2xlRyxcbiAgICBDbGlwYm9hcmREYXRhLFxuICAgIGdldEhpZ2hlc3RTZWxlY3RlZEdyb3VwcyxcbiAgICBnZXRTZWxlY3RlZElzb2xhdGVkRWxlbWVudHMsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFBsYWl0R3JvdXAsXG4gICAgZ2V0U2VsZWN0ZWRHcm91cHMsXG4gICAgU2VsZWN0aW9uLFxuICAgIFBvaW50LFxuICAgIFRyYW5zZm9ybXMsXG4gICAgaWRDcmVhdG9yLFxuICAgIGdldEdyb3VwQnlFbGVtZW50LFxuICAgIGdldFNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50c0NhbkFkZFRvR3JvdXAsXG4gICAgZ2V0RWxlbWVudHNJbkdyb3VwLFxuICAgIGdldFJlY3RhbmdsZUJ5R3JvdXBcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlL2dyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc0tleUhvdGtleSB9IGZyb20gJ2lzLWhvdGtleSc7XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoR3JvdXAoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBsZXQgZ3JvdXBSZWN0YW5nbGVHOiBTVkdHRWxlbWVudCB8IG51bGw7XG4gICAgbGV0IHJlbW92ZUdyb3VwczogUGxhaXRHcm91cFtdIHwgbnVsbDtcblxuICAgIGNvbnN0IHtcbiAgICAgICAgZHJhd0VsZW1lbnQsXG4gICAgICAgIHBvaW50ZXJNb3ZlLFxuICAgICAgICBnbG9iYWxQb2ludGVyVXAsXG4gICAgICAgIGluc2VydEZyYWdtZW50LFxuICAgICAgICBnZXREZWxldGVkRnJhZ21lbnQsXG4gICAgICAgIGRlbGV0ZUZyYWdtZW50LFxuICAgICAgICBnZXRSZWxhdGVkRnJhZ21lbnQsXG4gICAgICAgIGdldFJlY3RhbmdsZSxcbiAgICAgICAga2V5RG93blxuICAgIH0gPSBib2FyZDtcblxuICAgIGJvYXJkLmRyYXdFbGVtZW50ID0gKGNvbnRleHQ6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQpID0+IHtcbiAgICAgICAgaWYgKFBsYWl0R3JvdXBFbGVtZW50LmlzR3JvdXAoY29udGV4dC5lbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIEdyb3VwQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkcmF3RWxlbWVudChjb250ZXh0KTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlck1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBncm91cFJlY3RhbmdsZUc/LnJlbW92ZSgpO1xuICAgICAgICBjb25zdCBwb2ludCA9IHRvVmlld0JveFBvaW50KGJvYXJkLCB0b0hvc3RQb2ludChib2FyZCwgZXZlbnQueCwgZXZlbnQueSkpO1xuICAgICAgICBsZXQgc2VsZWN0aW9uOiBTZWxlY3Rpb24gPSB7IGFuY2hvcjogcG9pbnQsIGZvY3VzOiBwb2ludCB9O1xuICAgICAgICBpZiAoYm9hcmQuc2VsZWN0aW9uICYmICFTZWxlY3Rpb24uaXNDb2xsYXBzZWQoYm9hcmQuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgc2VsZWN0aW9uID0gYm9hcmQuc2VsZWN0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGhpdEVsZW1lbnRzID0gZ2V0SGl0RWxlbWVudHNCeVNlbGVjdGlvbihib2FyZCwgc2VsZWN0aW9uKTtcbiAgICAgICAgaWYgKGhpdEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgZ3JvdXBSZWN0YW5nbGVHID0gY3JlYXRlR3JvdXBSZWN0YW5nbGVHKGJvYXJkLCBoaXRFbGVtZW50cyk7XG4gICAgICAgICAgICBncm91cFJlY3RhbmdsZUcgJiYgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdChib2FyZCkuYXBwZW5kKGdyb3VwUmVjdGFuZ2xlRyk7XG4gICAgICAgIH1cblxuICAgICAgICBwb2ludGVyTW92ZShldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGdyb3VwUmVjdGFuZ2xlRz8ucmVtb3ZlKCk7XG4gICAgICAgIGdyb3VwUmVjdGFuZ2xlRyA9IG51bGw7XG4gICAgICAgIGdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdldFJlbGF0ZWRGcmFnbWVudCA9IChlbGVtZW50czogUGxhaXRFbGVtZW50W10sIG9yaWdpbkRhdGE/OiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgICAgICBjb25zdCBncm91cHMgPSBnZXRTZWxlY3RlZEdyb3Vwcyhib2FyZCwgb3JpZ2luRGF0YSk7XG4gICAgICAgIHJldHVybiBnZXRSZWxhdGVkRnJhZ21lbnQoWy4uLmVsZW1lbnRzLCAuLi5ncm91cHNdLCBvcmlnaW5EYXRhKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuaW5zZXJ0RnJhZ21lbnQgPSAoY2xpcGJvYXJkRGF0YTogQ2xpcGJvYXJkRGF0YSB8IG51bGwsIHRhcmdldFBvaW50OiBQb2ludCkgPT4ge1xuICAgICAgICBsZXQgZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdID0gW107XG4gICAgICAgIGlmIChjbGlwYm9hcmREYXRhPy5lbGVtZW50cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBlbGVtZW50cyA9IG5ldyBBcnJheShjbGlwYm9hcmREYXRhPy5lbGVtZW50cz8ubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IGdldEhpZ2hlc3RTZWxlY3RlZEdyb3Vwcyhib2FyZCwgY2xpcGJvYXJkRGF0YT8uZWxlbWVudHMpO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJc29sYXRlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRJc29sYXRlZEVsZW1lbnRzKGJvYXJkLCBjbGlwYm9hcmREYXRhPy5lbGVtZW50cyk7XG4gICAgICAgICAgICBzZWxlY3RlZElzb2xhdGVkRWxlbWVudHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGNsaXBib2FyZERhdGEuZWxlbWVudHMhLm1hcChlbGVtZW50ID0+IGVsZW1lbnQuaWQpLmluZGV4T2YoaXRlbS5pZCk7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMuc3BsaWNlKGluZGV4LCAxLCAhaXRlbS5ncm91cElkID8gaXRlbSA6IHVwZGF0ZUdyb3VwSWQoaXRlbSwgdW5kZWZpbmVkKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChncm91cHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gY2xpcGJvYXJkRGF0YS5lbGVtZW50cyEubWFwKGVsZW1lbnQgPT4gZWxlbWVudC5pZCkuaW5kZXhPZihpdGVtLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3R3JvdXAgPSB7IC4uLnVwZGF0ZUdyb3VwSWQoaXRlbSwgdW5kZWZpbmVkKSwgaWQ6IGlkQ3JlYXRvcigpIH07XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLnNwbGljZShpbmRleCwgMSwgbmV3R3JvdXApO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVFbGVtZW50c0dyb3VwSWQoaXRlbSwgY2xpcGJvYXJkRGF0YS5lbGVtZW50cyEsIG5ld0dyb3VwLmlkLCBlbGVtZW50cyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbGlwYm9hcmREYXRhLmVsZW1lbnRzID0gZWxlbWVudHM7XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0RnJhZ21lbnQoY2xpcGJvYXJkRGF0YSwgdGFyZ2V0UG9pbnQpO1xuICAgICAgICBjb25zdCBncm91cEVsZW1lbnRzID0gZWxlbWVudHM/LmZpbHRlcih2YWx1ZSA9PiBQbGFpdEdyb3VwRWxlbWVudC5pc0dyb3VwKHZhbHVlKSkgYXMgUGxhaXRFbGVtZW50W107XG4gICAgICAgIGdyb3VwRWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZShib2FyZCwgZWxlbWVudCwgW2JvYXJkLmNoaWxkcmVuLmxlbmd0aF0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2V0RGVsZXRlZEZyYWdtZW50ID0gKGRhdGE6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgICAgIHJlbW92ZUdyb3VwcyA9IGdldFJlbW92ZUdyb3Vwcyhib2FyZCk7XG4gICAgICAgIGlmIChyZW1vdmVHcm91cHMgJiYgcmVtb3ZlR3JvdXBzLmxlbmd0aCkge1xuICAgICAgICAgICAgZGF0YS5wdXNoKC4uLnJlbW92ZUdyb3Vwcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldERlbGV0ZWRGcmFnbWVudChkYXRhKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZGVsZXRlRnJhZ21lbnQgPSAoZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgICAgIGlmIChyZW1vdmVHcm91cHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdXBkYXRlU2libGluZ0VsZW1lbnRHcm91cElkKGJvYXJkLCByZW1vdmVHcm91cHMpO1xuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZUZyYWdtZW50KGVsZW1lbnRzKTtcbiAgICAgICAgcmVtb3ZlR3JvdXBzID0gbnVsbDtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2V0UmVjdGFuZ2xlID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoUGxhaXRHcm91cEVsZW1lbnQuaXNHcm91cChlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIGdldFJlY3RhbmdsZUJ5R3JvdXAoYm9hcmQsIGVsZW1lbnQsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmtleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpKSB7XG4gICAgICAgICAgICBpZiAoaXNLZXlIb3RrZXkoJ21vZCtnJywgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmFkZEdyb3VwKGJvYXJkKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNLZXlIb3RrZXkoJ21vZCtzaGlmdCtnJywgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZUdyb3VwKGJvYXJkKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAga2V5RG93bihldmVudCk7XG4gICAgfTtcblxuICAgIHJldHVybiBib2FyZDtcbn1cblxuY29uc3QgdXBkYXRlR3JvdXBJZCA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQsIGdyb3VwSWQ/OiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5lbGVtZW50LFxuICAgICAgICBncm91cElkOiBncm91cElkXG4gICAgfTtcbn07XG5cbmNvbnN0IHVwZGF0ZUVsZW1lbnRzR3JvdXBJZCA9IChncm91cDogUGxhaXRHcm91cCwgY2xpcGJvYXJkRGF0YUVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSwgbmV3R3JvdXBJZDogc3RyaW5nLCBlbGVtZW50czogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBlbGVtZW50c0luR3JvdXAgPSBjbGlwYm9hcmREYXRhRWxlbWVudHMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5ncm91cElkID09PSBncm91cC5pZCk7XG4gICAgaWYgKGVsZW1lbnRzSW5Hcm91cC5sZW5ndGgpIHtcbiAgICAgICAgZWxlbWVudHNJbkdyb3VwLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGNsaXBib2FyZERhdGFFbGVtZW50cy5tYXAoaXRlbSA9PiBpdGVtLmlkKS5pbmRleE9mKGl0ZW0uaWQpO1xuICAgICAgICAgICAgaWYgKFBsYWl0R3JvdXBFbGVtZW50LmlzR3JvdXAoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdHcm91cCA9IHsgLi4udXBkYXRlR3JvdXBJZChpdGVtLCBuZXdHcm91cElkKSwgaWQ6IGlkQ3JlYXRvcigpIH07XG4gICAgICAgICAgICAgICAgZWxlbWVudHMuc3BsaWNlKGluZGV4LCAxLCBuZXdHcm91cCk7XG4gICAgICAgICAgICAgICAgdXBkYXRlRWxlbWVudHNHcm91cElkKGl0ZW0sIGNsaXBib2FyZERhdGFFbGVtZW50cywgbmV3R3JvdXAuaWQsIGVsZW1lbnRzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMuc3BsaWNlKGluZGV4LCAxLCB1cGRhdGVHcm91cElkKGl0ZW0sIG5ld0dyb3VwSWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50cztcbn07XG5cbmNvbnN0IGdldFJlbW92ZUdyb3VwcyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkR3JvdXBzID0gYm9hcmQuZ2V0UmVsYXRlZEZyYWdtZW50KFtdKSBhcyBQbGFpdEdyb3VwW107XG4gICAgY29uc3QgcmVtb3ZlR3JvdXBzID0gWy4uLnNlbGVjdGVkR3JvdXBzXTtcbiAgICBjb25zdCBoaWdoZXN0U2VsZWN0ZWRHcm91cHMgPSBnZXRIaWdoZXN0U2VsZWN0ZWRHcm91cHMoYm9hcmQpO1xuICAgIGNvbnN0IHNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50c0NhbkFkZFRvR3JvdXAoYm9hcmQpO1xuICAgIGNvbnN0IHJlbW92ZU5vZGVzID0gWy4uLmhpZ2hlc3RTZWxlY3RlZEdyb3VwcywgLi4uc2VsZWN0ZWRJc29sYXRlZEVsZW1lbnRzXTtcbiAgICByZW1vdmVOb2Rlcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBoaXRFbGVtZW50R3JvdXBzID0gZ2V0R3JvdXBCeUVsZW1lbnQoYm9hcmQsIGl0ZW0sIHRydWUpIGFzIFBsYWl0R3JvdXBbXTtcbiAgICAgICAgaWYgKGhpdEVsZW1lbnRHcm91cHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50c0luR3JvdXAgPSBnZXRFbGVtZW50c0luR3JvdXAoYm9hcmQsIGhpdEVsZW1lbnRHcm91cHNbMF0sIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IHNpYmxpbmdFbGVtZW50cyA9IGVsZW1lbnRzSW5Hcm91cC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgZWxlbWVudCA9PiAhWy4uLnJlbW92ZU5vZGVzLCAuLi5yZW1vdmVHcm91cHNdLm1hcChpdGVtID0+IGl0ZW0uaWQpLmluY2x1ZGVzKGVsZW1lbnQuaWQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKHNpYmxpbmdFbGVtZW50cy5sZW5ndGggPT09IDEgfHwgc2libGluZ0VsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmICghcmVtb3ZlR3JvdXBzLmluY2x1ZGVzKGhpdEVsZW1lbnRHcm91cHNbMF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUdyb3Vwcy5wdXNoKGhpdEVsZW1lbnRHcm91cHNbMF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc2libGluZ0VsZW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGl0RWxlbWVudEdyb3Vwcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhYm92ZUdyb3VwID0gZmluZEFib3ZlR3JvdXBXaXRoQW5vdGhlckVsZW1lbnQoYm9hcmQsIGhpdEVsZW1lbnRHcm91cHMuc2xpY2UoMSwgaGl0RWxlbWVudEdyb3Vwcy5sZW5ndGgpLCBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVtb3ZlTm9kZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVtb3ZlR3JvdXBzXG4gICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IGhpdEVsZW1lbnRHcm91cHMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFib3ZlR3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGhpdEVsZW1lbnRHcm91cHMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gYWJvdmVHcm91cC5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBbLi4uaGl0RWxlbWVudEdyb3Vwcy5zbGljZSgxLCBpbmRleCldLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZW1vdmVHcm91cHMuaW5jbHVkZXMoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlR3JvdXBzLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVtb3ZlR3JvdXBzO1xufTtcblxuY29uc3QgZmluZEFib3ZlR3JvdXBXaXRoQW5vdGhlckVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGdyb3VwczogUGxhaXRHcm91cFtdLCBleGNsdWRlTm9kZXM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgbGV0IGdyb3VwOiBQbGFpdEdyb3VwIHwgbnVsbCA9IG51bGw7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZWxlbWVudHNJbkdyb3VwID0gZ2V0RWxlbWVudHNJbkdyb3VwKGJvYXJkLCBncm91cHNbaV0sIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgY29uc3Qgc2libGluZ0VsZW1lbnRzID0gZWxlbWVudHNJbkdyb3VwLmZpbHRlcihlbGVtZW50ID0+ICFleGNsdWRlTm9kZXMubWFwKGl0ZW0gPT4gaXRlbS5pZCkuaW5jbHVkZXMoZWxlbWVudC5pZCkpO1xuICAgICAgICBpZiAoc2libGluZ0VsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGdyb3VwID0gZ3JvdXBzW2ldO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGdyb3VwO1xufTtcblxuY29uc3QgdXBkYXRlU2libGluZ0VsZW1lbnRHcm91cElkID0gKGJvYXJkOiBQbGFpdEJvYXJkLCByZW1vdmVHcm91cHM6IFBsYWl0R3JvdXBbXSkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50c0NhbkFkZFRvR3JvdXAoYm9hcmQpO1xuICAgIGNvbnN0IGhpZ2hlc3RTZWxlY3RlZEdyb3VwcyA9IGdldEhpZ2hlc3RTZWxlY3RlZEdyb3Vwcyhib2FyZCk7XG4gICAgY29uc3QgaXNvbGF0ZWRFbGVtZW50c0luR3JvdXAgPSBzZWxlY3RlZElzb2xhdGVkRWxlbWVudHMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5ncm91cElkKTtcbiAgICBbLi4uaGlnaGVzdFNlbGVjdGVkR3JvdXBzLCAuLi5pc29sYXRlZEVsZW1lbnRzSW5Hcm91cF0uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgY29uc3QgaGl0RWxlbWVudEdyb3VwcyA9IGdldEdyb3VwQnlFbGVtZW50KGJvYXJkLCBpdGVtLCB0cnVlKSBhcyBQbGFpdEdyb3VwW107XG4gICAgICAgIGlmIChoaXRFbGVtZW50R3JvdXBzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHNJbkdyb3VwID0gZ2V0RWxlbWVudHNJbkdyb3VwKGJvYXJkLCBoaXRFbGVtZW50R3JvdXBzWzBdLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCBzaWJsaW5nRWxlbWVudHMgPSBlbGVtZW50c0luR3JvdXAuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudC5pZCAhPT0gaXRlbS5pZCk7XG4gICAgICAgICAgICBpZiAoc2libGluZ0VsZW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZUdyb3VwSWRzID0gcmVtb3ZlR3JvdXBzLm1hcChpdGVtID0+IGl0ZW0uaWQpO1xuICAgICAgICAgICAgICAgIGlmIChoaXRFbGVtZW50R3JvdXBzLnNvbWUoZ3JvdXAgPT4gcmVtb3ZlR3JvdXBJZHMuaW5jbHVkZXMoZ3JvdXAuaWQpKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IGhpdEVsZW1lbnRHcm91cHMuZmluZChncm91cCA9PiAhcmVtb3ZlR3JvdXBJZHMuaW5jbHVkZXMoZ3JvdXAuaWQpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIHNpYmxpbmdFbGVtZW50c1swXSk7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBncm91cElkOiBncm91cD8uaWQgfHwgdW5kZWZpbmVkIH0sIHBhdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufTtcbiJdfQ==
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcGx1Z2lucy93aXRoLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBRVYsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxXQUFXLEVBQ1gseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUVyQix3QkFBd0IsRUFDeEIsMkJBQTJCLEVBRzNCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsVUFBVSxFQUNWLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsd0NBQXdDLEVBQ3hDLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ25CLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFdEMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFpQjtJQUN2QyxJQUFJLGVBQW1DLENBQUM7SUFDeEMsSUFBSSxZQUFpQyxDQUFDO0lBRXRDLE1BQU0sRUFDRixXQUFXLEVBQ1gsV0FBVyxFQUNYLGVBQWUsRUFDZixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLE9BQU8sRUFDVixHQUFHLEtBQUssQ0FBQztJQUVWLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxPQUFrQyxFQUFFLEVBQUU7UUFDdkQsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDN0MsT0FBTyxjQUFjLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQztJQUVG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QyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNqRixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDNUQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDekUsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCxcbiAgICBQbGFpdEdyb3VwRWxlbWVudCxcbiAgICB0b1ZpZXdCb3hQb2ludCxcbiAgICB0b0hvc3RQb2ludCxcbiAgICBnZXRIaXRFbGVtZW50c0J5U2VsZWN0aW9uLFxuICAgIGNyZWF0ZUdyb3VwUmVjdGFuZ2xlRyxcbiAgICBDbGlwYm9hcmREYXRhLFxuICAgIGdldEhpZ2hlc3RTZWxlY3RlZEdyb3VwcyxcbiAgICBnZXRTZWxlY3RlZElzb2xhdGVkRWxlbWVudHMsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFBsYWl0R3JvdXAsXG4gICAgZ2V0U2VsZWN0ZWRHcm91cHMsXG4gICAgU2VsZWN0aW9uLFxuICAgIFBvaW50LFxuICAgIFRyYW5zZm9ybXMsXG4gICAgaWRDcmVhdG9yLFxuICAgIGdldEdyb3VwQnlFbGVtZW50LFxuICAgIGdldFNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50c0NhbkFkZFRvR3JvdXAsXG4gICAgZ2V0RWxlbWVudHNJbkdyb3VwLFxuICAgIGdldFJlY3RhbmdsZUJ5R3JvdXAsXG4gICAgUGxhaXRQb2ludGVyVHlwZVxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBHcm91cENvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUvZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IGlzS2V5SG90a2V5IH0gZnJvbSAnaXMtaG90a2V5JztcbmltcG9ydCB7IGlzUmVzaXppbmcgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoR3JvdXAoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBsZXQgZ3JvdXBSZWN0YW5nbGVHOiBTVkdHRWxlbWVudCB8IG51bGw7XG4gICAgbGV0IHJlbW92ZUdyb3VwczogUGxhaXRHcm91cFtdIHwgbnVsbDtcblxuICAgIGNvbnN0IHtcbiAgICAgICAgZHJhd0VsZW1lbnQsXG4gICAgICAgIHBvaW50ZXJNb3ZlLFxuICAgICAgICBnbG9iYWxQb2ludGVyVXAsXG4gICAgICAgIGluc2VydEZyYWdtZW50LFxuICAgICAgICBnZXREZWxldGVkRnJhZ21lbnQsXG4gICAgICAgIGRlbGV0ZUZyYWdtZW50LFxuICAgICAgICBnZXRSZWxhdGVkRnJhZ21lbnQsXG4gICAgICAgIGdldFJlY3RhbmdsZSxcbiAgICAgICAga2V5RG93blxuICAgIH0gPSBib2FyZDtcblxuICAgIGJvYXJkLmRyYXdFbGVtZW50ID0gKGNvbnRleHQ6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQpID0+IHtcbiAgICAgICAgaWYgKFBsYWl0R3JvdXBFbGVtZW50LmlzR3JvdXAoY29udGV4dC5lbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIEdyb3VwQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkcmF3RWxlbWVudChjb250ZXh0KTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlck1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBncm91cFJlY3RhbmdsZUc/LnJlbW92ZSgpO1xuICAgICAgICBjb25zdCBwb2ludCA9IHRvVmlld0JveFBvaW50KGJvYXJkLCB0b0hvc3RQb2ludChib2FyZCwgZXZlbnQueCwgZXZlbnQueSkpO1xuICAgICAgICBsZXQgc2VsZWN0aW9uOiBTZWxlY3Rpb24gPSB7IGFuY2hvcjogcG9pbnQsIGZvY3VzOiBwb2ludCB9O1xuICAgICAgICBpZiAoYm9hcmQuc2VsZWN0aW9uICYmICFTZWxlY3Rpb24uaXNDb2xsYXBzZWQoYm9hcmQuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgc2VsZWN0aW9uID0gYm9hcmQuc2VsZWN0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvaW50ZXIgPSBQbGFpdEJvYXJkLmdldFBvaW50ZXIoYm9hcmQpO1xuICAgICAgICBpZiAoIWlzUmVzaXppbmcoYm9hcmQpICYmIHBvaW50ZXIgPT09IFBsYWl0UG9pbnRlclR5cGUuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBoaXRFbGVtZW50cyA9IGdldEhpdEVsZW1lbnRzQnlTZWxlY3Rpb24oYm9hcmQsIHNlbGVjdGlvbik7XG4gICAgICAgICAgICBpZiAoaGl0RWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBSZWN0YW5nbGVHID0gY3JlYXRlR3JvdXBSZWN0YW5nbGVHKGJvYXJkLCBoaXRFbGVtZW50cyk7XG4gICAgICAgICAgICAgICAgZ3JvdXBSZWN0YW5nbGVHICYmIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QoYm9hcmQpLmFwcGVuZChncm91cFJlY3RhbmdsZUcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBvaW50ZXJNb3ZlKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2xvYmFsUG9pbnRlclVwID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgZ3JvdXBSZWN0YW5nbGVHPy5yZW1vdmUoKTtcbiAgICAgICAgZ3JvdXBSZWN0YW5nbGVHID0gbnVsbDtcbiAgICAgICAgZ2xvYmFsUG9pbnRlclVwKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2V0UmVsYXRlZEZyYWdtZW50ID0gKGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSwgb3JpZ2luRGF0YT86IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgICAgIGNvbnN0IGdyb3VwcyA9IGdldFNlbGVjdGVkR3JvdXBzKGJvYXJkLCBlbGVtZW50cywgb3JpZ2luRGF0YSk7XG4gICAgICAgIHJldHVybiBnZXRSZWxhdGVkRnJhZ21lbnQoWy4uLmVsZW1lbnRzLCAuLi5ncm91cHNdLCBvcmlnaW5EYXRhKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuaW5zZXJ0RnJhZ21lbnQgPSAoY2xpcGJvYXJkRGF0YTogQ2xpcGJvYXJkRGF0YSB8IG51bGwsIHRhcmdldFBvaW50OiBQb2ludCkgPT4ge1xuICAgICAgICBsZXQgZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdID0gW107XG4gICAgICAgIGlmIChjbGlwYm9hcmREYXRhPy5lbGVtZW50cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBlbGVtZW50cyA9IG5ldyBBcnJheShjbGlwYm9hcmREYXRhPy5lbGVtZW50cz8ubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IGdldEhpZ2hlc3RTZWxlY3RlZEdyb3Vwcyhib2FyZCwgY2xpcGJvYXJkRGF0YT8uZWxlbWVudHMpO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJc29sYXRlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRJc29sYXRlZEVsZW1lbnRzKGJvYXJkLCBjbGlwYm9hcmREYXRhPy5lbGVtZW50cyk7XG4gICAgICAgICAgICBzZWxlY3RlZElzb2xhdGVkRWxlbWVudHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGNsaXBib2FyZERhdGEuZWxlbWVudHMhLm1hcChlbGVtZW50ID0+IGVsZW1lbnQuaWQpLmluZGV4T2YoaXRlbS5pZCk7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMuc3BsaWNlKGluZGV4LCAxLCAhaXRlbS5ncm91cElkID8gaXRlbSA6IHVwZGF0ZUdyb3VwSWQoaXRlbSwgdW5kZWZpbmVkKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChncm91cHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gY2xpcGJvYXJkRGF0YS5lbGVtZW50cyEubWFwKGVsZW1lbnQgPT4gZWxlbWVudC5pZCkuaW5kZXhPZihpdGVtLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3R3JvdXAgPSB7IC4uLnVwZGF0ZUdyb3VwSWQoaXRlbSwgdW5kZWZpbmVkKSwgaWQ6IGlkQ3JlYXRvcigpIH07XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLnNwbGljZShpbmRleCwgMSwgbmV3R3JvdXApO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVFbGVtZW50c0dyb3VwSWQoaXRlbSwgY2xpcGJvYXJkRGF0YS5lbGVtZW50cyEsIG5ld0dyb3VwLmlkLCBlbGVtZW50cyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbGlwYm9hcmREYXRhLmVsZW1lbnRzID0gZWxlbWVudHM7XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0RnJhZ21lbnQoY2xpcGJvYXJkRGF0YSwgdGFyZ2V0UG9pbnQpO1xuICAgICAgICBjb25zdCBncm91cEVsZW1lbnRzID0gZWxlbWVudHM/LmZpbHRlcih2YWx1ZSA9PiBQbGFpdEdyb3VwRWxlbWVudC5pc0dyb3VwKHZhbHVlKSkgYXMgUGxhaXRFbGVtZW50W107XG4gICAgICAgIGdyb3VwRWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZShib2FyZCwgZWxlbWVudCwgW2JvYXJkLmNoaWxkcmVuLmxlbmd0aF0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2V0RGVsZXRlZEZyYWdtZW50ID0gKGRhdGE6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgICAgIHJlbW92ZUdyb3VwcyA9IGdldFJlbW92ZUdyb3Vwcyhib2FyZCk7XG4gICAgICAgIGlmIChyZW1vdmVHcm91cHMgJiYgcmVtb3ZlR3JvdXBzLmxlbmd0aCkge1xuICAgICAgICAgICAgZGF0YS5wdXNoKC4uLnJlbW92ZUdyb3Vwcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldERlbGV0ZWRGcmFnbWVudChkYXRhKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZGVsZXRlRnJhZ21lbnQgPSAoZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgICAgIGlmIChyZW1vdmVHcm91cHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdXBkYXRlU2libGluZ0VsZW1lbnRHcm91cElkKGJvYXJkLCByZW1vdmVHcm91cHMpO1xuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZUZyYWdtZW50KGVsZW1lbnRzKTtcbiAgICAgICAgcmVtb3ZlR3JvdXBzID0gbnVsbDtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2V0UmVjdGFuZ2xlID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoUGxhaXRHcm91cEVsZW1lbnQuaXNHcm91cChlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIGdldFJlY3RhbmdsZUJ5R3JvdXAoYm9hcmQsIGVsZW1lbnQsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmtleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpKSB7XG4gICAgICAgICAgICBpZiAoaXNLZXlIb3RrZXkoJ21vZCtnJywgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmFkZEdyb3VwKGJvYXJkKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNLZXlIb3RrZXkoJ21vZCtzaGlmdCtnJywgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZUdyb3VwKGJvYXJkKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAga2V5RG93bihldmVudCk7XG4gICAgfTtcblxuICAgIHJldHVybiBib2FyZDtcbn1cblxuY29uc3QgdXBkYXRlR3JvdXBJZCA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQsIGdyb3VwSWQ/OiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5lbGVtZW50LFxuICAgICAgICBncm91cElkOiBncm91cElkXG4gICAgfTtcbn07XG5cbmNvbnN0IHVwZGF0ZUVsZW1lbnRzR3JvdXBJZCA9IChncm91cDogUGxhaXRHcm91cCwgY2xpcGJvYXJkRGF0YUVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSwgbmV3R3JvdXBJZDogc3RyaW5nLCBlbGVtZW50czogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBlbGVtZW50c0luR3JvdXAgPSBjbGlwYm9hcmREYXRhRWxlbWVudHMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5ncm91cElkID09PSBncm91cC5pZCk7XG4gICAgaWYgKGVsZW1lbnRzSW5Hcm91cC5sZW5ndGgpIHtcbiAgICAgICAgZWxlbWVudHNJbkdyb3VwLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGNsaXBib2FyZERhdGFFbGVtZW50cy5tYXAoaXRlbSA9PiBpdGVtLmlkKS5pbmRleE9mKGl0ZW0uaWQpO1xuICAgICAgICAgICAgaWYgKFBsYWl0R3JvdXBFbGVtZW50LmlzR3JvdXAoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdHcm91cCA9IHsgLi4udXBkYXRlR3JvdXBJZChpdGVtLCBuZXdHcm91cElkKSwgaWQ6IGlkQ3JlYXRvcigpIH07XG4gICAgICAgICAgICAgICAgZWxlbWVudHMuc3BsaWNlKGluZGV4LCAxLCBuZXdHcm91cCk7XG4gICAgICAgICAgICAgICAgdXBkYXRlRWxlbWVudHNHcm91cElkKGl0ZW0sIGNsaXBib2FyZERhdGFFbGVtZW50cywgbmV3R3JvdXAuaWQsIGVsZW1lbnRzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMuc3BsaWNlKGluZGV4LCAxLCB1cGRhdGVHcm91cElkKGl0ZW0sIG5ld0dyb3VwSWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50cztcbn07XG5cbmNvbnN0IGdldFJlbW92ZUdyb3VwcyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkR3JvdXBzID0gYm9hcmQuZ2V0UmVsYXRlZEZyYWdtZW50KFtdKSBhcyBQbGFpdEdyb3VwW107XG4gICAgY29uc3QgcmVtb3ZlR3JvdXBzID0gWy4uLnNlbGVjdGVkR3JvdXBzXTtcbiAgICBjb25zdCBoaWdoZXN0U2VsZWN0ZWRHcm91cHMgPSBnZXRIaWdoZXN0U2VsZWN0ZWRHcm91cHMoYm9hcmQpO1xuICAgIGNvbnN0IHNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50c0NhbkFkZFRvR3JvdXAoYm9hcmQpO1xuICAgIGNvbnN0IHJlbW92ZU5vZGVzID0gWy4uLmhpZ2hlc3RTZWxlY3RlZEdyb3VwcywgLi4uc2VsZWN0ZWRJc29sYXRlZEVsZW1lbnRzXTtcbiAgICByZW1vdmVOb2Rlcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBoaXRFbGVtZW50R3JvdXBzID0gZ2V0R3JvdXBCeUVsZW1lbnQoYm9hcmQsIGl0ZW0sIHRydWUpIGFzIFBsYWl0R3JvdXBbXTtcbiAgICAgICAgaWYgKGhpdEVsZW1lbnRHcm91cHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50c0luR3JvdXAgPSBnZXRFbGVtZW50c0luR3JvdXAoYm9hcmQsIGhpdEVsZW1lbnRHcm91cHNbMF0sIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IHNpYmxpbmdFbGVtZW50cyA9IGVsZW1lbnRzSW5Hcm91cC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgZWxlbWVudCA9PiAhWy4uLnJlbW92ZU5vZGVzLCAuLi5yZW1vdmVHcm91cHNdLm1hcChpdGVtID0+IGl0ZW0uaWQpLmluY2x1ZGVzKGVsZW1lbnQuaWQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKHNpYmxpbmdFbGVtZW50cy5sZW5ndGggPT09IDEgfHwgc2libGluZ0VsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmICghcmVtb3ZlR3JvdXBzLmluY2x1ZGVzKGhpdEVsZW1lbnRHcm91cHNbMF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUdyb3Vwcy5wdXNoKGhpdEVsZW1lbnRHcm91cHNbMF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc2libGluZ0VsZW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGl0RWxlbWVudEdyb3Vwcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhYm92ZUdyb3VwID0gZmluZEFib3ZlR3JvdXBXaXRoQW5vdGhlckVsZW1lbnQoYm9hcmQsIGhpdEVsZW1lbnRHcm91cHMuc2xpY2UoMSwgaGl0RWxlbWVudEdyb3Vwcy5sZW5ndGgpLCBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVtb3ZlTm9kZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVtb3ZlR3JvdXBzXG4gICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IGhpdEVsZW1lbnRHcm91cHMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFib3ZlR3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGhpdEVsZW1lbnRHcm91cHMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gYWJvdmVHcm91cC5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBbLi4uaGl0RWxlbWVudEdyb3Vwcy5zbGljZSgxLCBpbmRleCldLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZW1vdmVHcm91cHMuaW5jbHVkZXMoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlR3JvdXBzLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVtb3ZlR3JvdXBzO1xufTtcblxuY29uc3QgZmluZEFib3ZlR3JvdXBXaXRoQW5vdGhlckVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGdyb3VwczogUGxhaXRHcm91cFtdLCBleGNsdWRlTm9kZXM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgbGV0IGdyb3VwOiBQbGFpdEdyb3VwIHwgbnVsbCA9IG51bGw7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZWxlbWVudHNJbkdyb3VwID0gZ2V0RWxlbWVudHNJbkdyb3VwKGJvYXJkLCBncm91cHNbaV0sIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgY29uc3Qgc2libGluZ0VsZW1lbnRzID0gZWxlbWVudHNJbkdyb3VwLmZpbHRlcihlbGVtZW50ID0+ICFleGNsdWRlTm9kZXMubWFwKGl0ZW0gPT4gaXRlbS5pZCkuaW5jbHVkZXMoZWxlbWVudC5pZCkpO1xuICAgICAgICBpZiAoc2libGluZ0VsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGdyb3VwID0gZ3JvdXBzW2ldO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGdyb3VwO1xufTtcblxuY29uc3QgdXBkYXRlU2libGluZ0VsZW1lbnRHcm91cElkID0gKGJvYXJkOiBQbGFpdEJvYXJkLCByZW1vdmVHcm91cHM6IFBsYWl0R3JvdXBbXSkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50c0NhbkFkZFRvR3JvdXAoYm9hcmQpO1xuICAgIGNvbnN0IGhpZ2hlc3RTZWxlY3RlZEdyb3VwcyA9IGdldEhpZ2hlc3RTZWxlY3RlZEdyb3Vwcyhib2FyZCk7XG4gICAgY29uc3QgaXNvbGF0ZWRFbGVtZW50c0luR3JvdXAgPSBzZWxlY3RlZElzb2xhdGVkRWxlbWVudHMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5ncm91cElkKTtcbiAgICBbLi4uaGlnaGVzdFNlbGVjdGVkR3JvdXBzLCAuLi5pc29sYXRlZEVsZW1lbnRzSW5Hcm91cF0uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgY29uc3QgaGl0RWxlbWVudEdyb3VwcyA9IGdldEdyb3VwQnlFbGVtZW50KGJvYXJkLCBpdGVtLCB0cnVlKSBhcyBQbGFpdEdyb3VwW107XG4gICAgICAgIGlmIChoaXRFbGVtZW50R3JvdXBzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHNJbkdyb3VwID0gZ2V0RWxlbWVudHNJbkdyb3VwKGJvYXJkLCBoaXRFbGVtZW50R3JvdXBzWzBdLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCBzaWJsaW5nRWxlbWVudHMgPSBlbGVtZW50c0luR3JvdXAuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudC5pZCAhPT0gaXRlbS5pZCk7XG4gICAgICAgICAgICBpZiAoc2libGluZ0VsZW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZUdyb3VwSWRzID0gcmVtb3ZlR3JvdXBzLm1hcChpdGVtID0+IGl0ZW0uaWQpO1xuICAgICAgICAgICAgICAgIGlmIChoaXRFbGVtZW50R3JvdXBzLnNvbWUoZ3JvdXAgPT4gcmVtb3ZlR3JvdXBJZHMuaW5jbHVkZXMoZ3JvdXAuaWQpKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cCA9IGhpdEVsZW1lbnRHcm91cHMuZmluZChncm91cCA9PiAhcmVtb3ZlR3JvdXBJZHMuaW5jbHVkZXMoZ3JvdXAuaWQpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIHNpYmxpbmdFbGVtZW50c1swXSk7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBncm91cElkOiBncm91cD8uaWQgfHwgdW5kZWZpbmVkIH0sIHBhdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufTtcbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -9,6 +9,7 @@ export * from './plugins';
|
|
|
9
9
|
export * from './utils';
|
|
10
10
|
export * from './core/plugin-element';
|
|
11
11
|
export * from './core/image-base.component';
|
|
12
|
+
export * from './core/element-ref';
|
|
12
13
|
export * from './algorithms';
|
|
13
14
|
export * from './types';
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB1dGlsc1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vZ2VuZXJhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZm9ybXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wbHVnaW5zJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL3BsdWdpbi1lbGVtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9pbWFnZS1iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvZWxlbWVudC1yZWYnO1xuZXhwb3J0ICogZnJvbSAnLi9hbGdvcml0aG1zJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuIl19
|
package/esm2022/utils/resize.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PlaitBoard, RectangleClient, ResizeCursorClass, setDragging, RESIZE_CURSORS, rotatePoints } from '@plait/core';
|
|
1
|
+
import { PlaitBoard, RectangleClient, ResizeCursorClass, setDragging, RESIZE_CURSORS, rotatePoints, getSelectedElements, isSelectionMoving } from '@plait/core';
|
|
2
2
|
export const getResizeHandleByIndex = (index) => {
|
|
3
3
|
return `${index}`;
|
|
4
4
|
};
|
|
@@ -123,4 +123,11 @@ export const resetPointsAfterResize = (originRectangle, currentRectangle, origin
|
|
|
123
123
|
const rotatedPoints = rotatePoints(currentPoints, originRectangleCenterPoint, angle);
|
|
124
124
|
return rotatePoints(rotatedPoints, correctElementCenterPoint, -angle);
|
|
125
125
|
};
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy91dGlscy9yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJL0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUNwRCxPQUFPLEdBQUcsS0FBSyxFQUFrQixDQUFDO0FBQ3RDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsWUFBMEIsRUFBRSxFQUFFO0lBQ2pFLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBaUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtJQUN4RSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMzRixJQUFJLDBCQUEwQixHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDakQsSUFBSSwwQkFBMEIsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQywwQkFBMEIsR0FBRywwQkFBMEIsR0FBRyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO0FBQzVILENBQUMsQ0FBQztBQUVGLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUNsRCxRQUFRLEtBQUssRUFBRSxDQUFDO1FBQ1osS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLENBQUM7WUFDRixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUNsQyxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssQ0FBQztZQUNGLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxDQUFDO1FBQ1AsS0FBSyxDQUFDO1lBQ0YsT0FBTyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDaEMsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLENBQUM7WUFDRixPQUFPLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztRQUNoQztZQUNJLE9BQU8sSUFBSSxDQUFDO0lBQ3BCLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLE1BQXlCLEVBQUUsS0FBYSxFQUFFLEVBQUU7SUFDM0YsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sR0FBRyxjQUFjLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBc0IsQ0FBQztJQUN6RixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxTQUEwQixFQUFFLFFBQWdCLEVBQUUsRUFBRTtJQUN6RixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBYSxFQUFFLEVBQUU7UUFDL0MsT0FBTztZQUNILFNBQVMsRUFBRTtnQkFDUCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxDQUFDO2dCQUMzQixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxDQUFDO2dCQUMzQixLQUFLLEVBQUUsUUFBUTtnQkFDZixNQUFNLEVBQUUsUUFBUTthQUNuQjtZQUNELE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxLQUFLLENBQWlCO1lBQ3JELFdBQVcsRUFBRSwyQkFBMkIsQ0FBQyxLQUFLLENBQXNCO1NBQ3ZFLENBQUM7SUFDTixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sVUFBVSxHQUFHLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEUsSUFBSSxDQUFDLElBQUksQ0FDTCxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDbkMsT0FBTztZQUNILFNBQVM7WUFDVCxNQUFNLEVBQUUsc0JBQXNCLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBaUI7WUFDekQsV0FBVyxFQUFFLDJCQUEyQixDQUFDLEtBQUssR0FBRyxDQUFDLENBQXNCO1NBQzNFLENBQUM7SUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ0YsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxTQUEwQixFQUFFLEtBQWEsRUFBRSxFQUFFO0lBQ3JGLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2IsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO1NBQU0sQ0FBQztRQUNKLE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLHVCQUF1QixHQUFHLENBQUMsWUFBcUIsRUFBRSxNQUFjLEVBQXFCLEVBQUU7SUFDekYsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDM0MsSUFBSSxTQUFTLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkcsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLFNBQVMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksT0FBTyxFQUFtQyxDQUFDO0FBRTFFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUM1QyxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQ2pDLEtBQWlCLEVBQ2pCLEtBQThDLEVBQ2hELEVBQUU7SUFDQSxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUUsQ0FBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFtQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsR0FBVyxFQUFFLEVBQUU7SUFDeEgsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBaUIsRUFBRSxHQUFXLEVBQUUsRUFBRTtJQUM3RCxVQUFVLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUM7SUFDeEUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEtBQWlCLEVBQUUsTUFBb0IsRUFBRSxFQUFFO0lBQ3BFLE1BQU0sS0FBSyxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBaUIsRUFBRSxNQUFvQixFQUFFLEVBQUU7SUFDdEUsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEMsQ0FBQyxDQUFDO0FBRUYsd0JBQXdCO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQ2xDLGVBQWdDLEVBQ2hDLGdCQUFpQyxFQUNqQywwQkFBaUMsRUFDakMsMkJBQWtDLEVBQ2xDLEtBQWEsRUFDQyxFQUFFO0lBQ2hCLE1BQU0sMkJBQTJCLEdBQUcsWUFBWSxDQUFDLENBQUMsMkJBQTJCLENBQUMsRUFBRSwwQkFBMEIsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0SCxNQUFNLHlCQUF5QixHQUFHLFlBQVksQ0FDMUMsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFVLENBQUMsRUFDM0QsMEJBQTBCLEVBQzFCLEtBQUssQ0FDUixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRUwsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sMEJBQTBCLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUVuRixNQUFNLHlCQUF5QixHQUFHLFlBQVksQ0FBQyxDQUFDLHlCQUF5QixDQUFDLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVwSCxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsYUFBYSxFQUFFLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JGLE9BQU8sWUFBWSxDQUFDLGFBQWEsRUFBRSx5QkFBeUIsRUFBRSxDQUFDLEtBQUssQ0FBbUIsQ0FBQztBQUM1RixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBSZXNpemVDdXJzb3JDbGFzcywgc2V0RHJhZ2dpbmcsIFJFU0laRV9DVVJTT1JTLCByb3RhdGVQb2ludHMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBSZXNpemVIYW5kbGUgfSBmcm9tICcuLi9jb25zdGFudHMvcmVzaXplJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudE9yQXJyYXksIFJlc2l6ZVJlZiB9IGZyb20gJy4uL3R5cGVzL3Jlc2l6ZSc7XG5cbmV4cG9ydCBjb25zdCBnZXRSZXNpemVIYW5kbGVCeUluZGV4ID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICByZXR1cm4gYCR7aW5kZXh9YCBhcyBSZXNpemVIYW5kbGU7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SW5kZXhCeVJlc2l6ZUhhbmRsZSA9IChyZXNpemVIYW5kbGU6IFJlc2l6ZUhhbmRsZSkgPT4ge1xuICAgIHJldHVybiBOdW1iZXIocmVzaXplSGFuZGxlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTeW1tZXRyaWNIYW5kbGVJbmRleCA9IChib2FyZDogUGxhaXRCb2FyZCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IG9yaWdpbkluZGV4ID0gaXNFZGdlSGFuZGxlKGJvYXJkLCBnZXRSZXNpemVIYW5kbGVCeUluZGV4KGluZGV4KSkgPyBpbmRleCAtIDQgOiBpbmRleDtcbiAgICBsZXQgb3JpZ2luU3ltbWV0cmljSGFuZGxlSW5kZXggPSBvcmlnaW5JbmRleCArIDI7XG4gICAgaWYgKG9yaWdpblN5bW1ldHJpY0hhbmRsZUluZGV4ID49IDQpIHtcbiAgICAgICAgb3JpZ2luU3ltbWV0cmljSGFuZGxlSW5kZXggPSBvcmlnaW5TeW1tZXRyaWNIYW5kbGVJbmRleCAtIDQ7XG4gICAgfVxuICAgIHJldHVybiBpc0VkZ2VIYW5kbGUoYm9hcmQsIGdldFJlc2l6ZUhhbmRsZUJ5SW5kZXgoaW5kZXgpKSA/IG9yaWdpblN5bW1ldHJpY0hhbmRsZUluZGV4ICsgNCA6IG9yaWdpblN5bW1ldHJpY0hhbmRsZUluZGV4O1xufTtcblxuY29uc3QgZ2V0UmVzaXplQ3Vyc29yQ2xhc3NCeUluZGV4ID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBzd2l0Y2ggKGluZGV4KSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZUN1cnNvckNsYXNzLm53c2U7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZUN1cnNvckNsYXNzLm5lc3c7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZUN1cnNvckNsYXNzLm5zO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIHJldHVybiBSZXNpemVDdXJzb3JDbGFzcy5ldztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSb3RhdGVkUmVzaXplQ3Vyc29yQ2xhc3NCeUFuZ2xlID0gKGN1cnNvcjogUmVzaXplQ3Vyc29yQ2xhc3MsIGFuZ2xlOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBpbmRleCA9IFJFU0laRV9DVVJTT1JTLmluZGV4T2YoY3Vyc29yKTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCB0ZW1wID0gTWF0aC5yb3VuZChhbmdsZSAvIChNYXRoLlBJIC8gNCkpO1xuICAgICAgICBjdXJzb3IgPSBSRVNJWkVfQ1VSU09SU1soaW5kZXggKyB0ZW1wKSAlIFJFU0laRV9DVVJTT1JTLmxlbmd0aF0gYXMgUmVzaXplQ3Vyc29yQ2xhc3M7XG4gICAgfVxuICAgIHJldHVybiBjdXJzb3I7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVjdGFuZ2xlUmVzaXplSGFuZGxlUmVmcyA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgZGlhbWV0ZXI6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGNvcm5lcnMgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgY29uc3QgcmVmcyA9IGNvcm5lcnMubWFwKChjb3JuZXIsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlY3RhbmdsZToge1xuICAgICAgICAgICAgICAgIHg6IGNvcm5lclswXSAtIGRpYW1ldGVyIC8gMixcbiAgICAgICAgICAgICAgICB5OiBjb3JuZXJbMV0gLSBkaWFtZXRlciAvIDIsXG4gICAgICAgICAgICAgICAgd2lkdGg6IGRpYW1ldGVyLFxuICAgICAgICAgICAgICAgIGhlaWdodDogZGlhbWV0ZXJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoYW5kbGU6IGdldFJlc2l6ZUhhbmRsZUJ5SW5kZXgoaW5kZXgpIGFzIFJlc2l6ZUhhbmRsZSxcbiAgICAgICAgICAgIGN1cnNvckNsYXNzOiBnZXRSZXNpemVDdXJzb3JDbGFzc0J5SW5kZXgoaW5kZXgpIGFzIFJlc2l6ZUN1cnNvckNsYXNzXG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgY29uc3QgcmVjdGFuZ2xlcyA9IGdldFJlc2l6ZVNpZGVSZWN0YW5nbGVzKGNvcm5lcnMsIGRpYW1ldGVyIC8gMik7XG4gICAgcmVmcy5wdXNoKFxuICAgICAgICAuLi5yZWN0YW5nbGVzLm1hcCgocmVjdGFuZ2xlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWN0YW5nbGUsXG4gICAgICAgICAgICAgICAgaGFuZGxlOiBnZXRSZXNpemVIYW5kbGVCeUluZGV4KGluZGV4ICsgNCkgYXMgUmVzaXplSGFuZGxlLFxuICAgICAgICAgICAgICAgIGN1cnNvckNsYXNzOiBnZXRSZXNpemVDdXJzb3JDbGFzc0J5SW5kZXgoaW5kZXggKyA0KSBhcyBSZXNpemVDdXJzb3JDbGFzc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiByZWZzO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlc2l6ZUhhbmRsZVBvaW50QnlJbmRleCA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGlmIChpbmRleCA8PSAzKSB7XG4gICAgICAgIGNvbnN0IGNvcm5lcnMgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIHJldHVybiBjb3JuZXJzW2luZGV4XTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBlZGdlQ2VudGVyUG9pbnRzID0gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgcmV0dXJuIGVkZ2VDZW50ZXJQb2ludHNbaW5kZXggLSA0XTtcbiAgICB9XG59O1xuXG5jb25zdCBnZXRSZXNpemVTaWRlUmVjdGFuZ2xlcyA9IChjb3JuZXJQb2ludHM6IFBvaW50W10sIG9mZnNldDogbnVtYmVyKTogUmVjdGFuZ2xlQ2xpZW50W10gPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29ybmVyUG9pbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW2Nvcm5lclBvaW50c1tpXSwgY29ybmVyUG9pbnRzWyhpICsgMSkgJSA0XV0pO1xuICAgICAgICBjb25zdCBhcnIgPSBuZXcgQXJyYXkoMikuZmlsbCgwKTtcbiAgICAgICAgYXJyWyhpICsgMSkgJSAyXSA9IG9mZnNldCAvIDI7XG4gICAgICAgIHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5leHBhbmQocmVjdGFuZ2xlLCBhcnJbMF0sIGFyclsxXSk7XG4gICAgICAgIHJlc3VsdC5wdXNoKHJlY3RhbmdsZSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgSVNfUkVTSVpJTkcgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBSZXNpemVSZWY8YW55LCBhbnk+PigpO1xuXG5leHBvcnQgY29uc3QgaXNSZXNpemluZyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIHJldHVybiAhIUlTX1JFU0laSU5HLmdldChib2FyZCk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNSZXNpemluZ0J5Q29uZGl0aW9uID0gPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnRPckFycmF5LCBLPihcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBtYXRjaDogKHJlc2l6ZVJlZjogUmVzaXplUmVmPFQsIEs+KSA9PiBib29sZWFuXG4pID0+IHtcbiAgICByZXR1cm4gaXNSZXNpemluZyhib2FyZCkgJiYgbWF0Y2goSVNfUkVTSVpJTkcuZ2V0KGJvYXJkKSEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFJlc2l6aW5nID0gPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnRPckFycmF5LCBLPihib2FyZDogUGxhaXRCb2FyZCwgcmVzaXplUmVmOiBSZXNpemVSZWY8VCwgSz4sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LmFkZChgJHtrZXl9LXJlc2l6aW5nYCk7XG4gICAgSVNfUkVTSVpJTkcuc2V0KGJvYXJkLCByZXNpemVSZWYpO1xuICAgIHNldERyYWdnaW5nKGJvYXJkLCB0cnVlKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVSZXNpemluZyA9IChib2FyZDogUGxhaXRCb2FyZCwga2V5OiBzdHJpbmcpID0+IHtcbiAgICBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5jbGFzc0xpc3QucmVtb3ZlKGAke2tleX0tcmVzaXppbmdgKTtcbiAgICBJU19SRVNJWklORy5kZWxldGUoYm9hcmQpO1xuICAgIHNldERyYWdnaW5nKGJvYXJkLCBmYWxzZSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNFZGdlSGFuZGxlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBoYW5kbGU6IFJlc2l6ZUhhbmRsZSkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gZ2V0SW5kZXhCeVJlc2l6ZUhhbmRsZShoYW5kbGUpO1xuICAgIGlmIChpbmRleCA+PSA0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNDb3JuZXJIYW5kbGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGhhbmRsZTogUmVzaXplSGFuZGxlKSA9PiB7XG4gICAgcmV0dXJuICFpc0VkZ2VIYW5kbGUoYm9hcmQsIGhhbmRsZSk7XG59O1xuXG4vLyDlpITnkIblhYPntKDlhYjml4vovazlkI5yZXNpemXlr7zoh7TnmoTkvY3nva7lgY/np7tcbmV4cG9ydCBjb25zdCByZXNldFBvaW50c0FmdGVyUmVzaXplID0gKFxuICAgIG9yaWdpblJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGN1cnJlbnRSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCxcbiAgICBvcmlnaW5TZWxlY3Rpb25DZW50ZXJQb2ludDogUG9pbnQsXG4gICAgY3VycmVudFNlbGVjdGlvbkNlbnRlclBvaW50OiBQb2ludCxcbiAgICBhbmdsZTogbnVtYmVyXG4pOiBbUG9pbnQsIFBvaW50XSA9PiB7XG4gICAgY29uc3QgY29ycmVjdFNlbGVjdGlvbkNlbnRlclBvaW50ID0gcm90YXRlUG9pbnRzKFtjdXJyZW50U2VsZWN0aW9uQ2VudGVyUG9pbnRdLCBvcmlnaW5TZWxlY3Rpb25DZW50ZXJQb2ludCwgYW5nbGUpWzBdO1xuICAgIGNvbnN0IHJvdGF0ZWRFbGVtZW50Q2VudGVyUG9pbnQgPSByb3RhdGVQb2ludHMoXG4gICAgICAgIFtSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoY3VycmVudFJlY3RhbmdsZSkgYXMgUG9pbnRdLFxuICAgICAgICBvcmlnaW5TZWxlY3Rpb25DZW50ZXJQb2ludCxcbiAgICAgICAgYW5nbGVcbiAgICApWzBdO1xuXG4gICAgY29uc3QgY3VycmVudFBvaW50cyA9IFJlY3RhbmdsZUNsaWVudC5nZXRQb2ludHMoY3VycmVudFJlY3RhbmdsZSk7XG4gICAgY29uc3Qgb3JpZ2luUmVjdGFuZ2xlQ2VudGVyUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQob3JpZ2luUmVjdGFuZ2xlKTtcblxuICAgIGNvbnN0IGNvcnJlY3RFbGVtZW50Q2VudGVyUG9pbnQgPSByb3RhdGVQb2ludHMoW3JvdGF0ZWRFbGVtZW50Q2VudGVyUG9pbnRdLCBjb3JyZWN0U2VsZWN0aW9uQ2VudGVyUG9pbnQsIC1hbmdsZSlbMF07XG5cbiAgICBjb25zdCByb3RhdGVkUG9pbnRzID0gcm90YXRlUG9pbnRzKGN1cnJlbnRQb2ludHMsIG9yaWdpblJlY3RhbmdsZUNlbnRlclBvaW50LCBhbmdsZSk7XG4gICAgcmV0dXJuIHJvdGF0ZVBvaW50cyhyb3RhdGVkUG9pbnRzLCBjb3JyZWN0RWxlbWVudENlbnRlclBvaW50LCAtYW5nbGUpIGFzIFtQb2ludCwgUG9pbnRdO1xufTtcbiJdfQ==
|
|
126
|
+
export const canResize = (board, element) => {
|
|
127
|
+
if (PlaitBoard.hasBeenTextEditing(board) || isSelectionMoving(board)) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
const selectedElements = getSelectedElements(board);
|
|
131
|
+
return selectedElements.length === 1 && selectedElements[0] === element;
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy91dGlscy9yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFFVixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxjQUFjLEVBQ2QsWUFBWSxFQUVaLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDcEIsTUFBTSxhQUFhLENBQUM7QUFJckIsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUNwRCxPQUFPLEdBQUcsS0FBSyxFQUFrQixDQUFDO0FBQ3RDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsWUFBMEIsRUFBRSxFQUFFO0lBQ2pFLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBaUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtJQUN4RSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMzRixJQUFJLDBCQUEwQixHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDakQsSUFBSSwwQkFBMEIsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQywwQkFBMEIsR0FBRywwQkFBMEIsR0FBRyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO0FBQzVILENB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Q0FBbUIsQ0FBQztBQUM1RixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQXFCLEVBQUUsRUFBRTtJQUNsRSxJQUFJLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ25FLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUM7QUFDNUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBvaW50LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBSZXNpemVDdXJzb3JDbGFzcyxcbiAgICBzZXREcmFnZ2luZyxcbiAgICBSRVNJWkVfQ1VSU09SUyxcbiAgICByb3RhdGVQb2ludHMsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIGdldFNlbGVjdGVkRWxlbWVudHMsXG4gICAgaXNTZWxlY3Rpb25Nb3Zpbmdcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUmVzaXplSGFuZGxlIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Jlc2l6ZSc7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnRPckFycmF5LCBSZXNpemVSZWYgfSBmcm9tICcuLi90eXBlcy9yZXNpemUnO1xuXG5leHBvcnQgY29uc3QgZ2V0UmVzaXplSGFuZGxlQnlJbmRleCA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgcmV0dXJuIGAke2luZGV4fWAgYXMgUmVzaXplSGFuZGxlO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEluZGV4QnlSZXNpemVIYW5kbGUgPSAocmVzaXplSGFuZGxlOiBSZXNpemVIYW5kbGUpID0+IHtcbiAgICByZXR1cm4gTnVtYmVyKHJlc2l6ZUhhbmRsZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3ltbWV0cmljSGFuZGxlSW5kZXggPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBvcmlnaW5JbmRleCA9IGlzRWRnZUhhbmRsZShib2FyZCwgZ2V0UmVzaXplSGFuZGxlQnlJbmRleChpbmRleCkpID8gaW5kZXggLSA0IDogaW5kZXg7XG4gICAgbGV0IG9yaWdpblN5bW1ldHJpY0hhbmRsZUluZGV4ID0gb3JpZ2luSW5kZXggKyAyO1xuICAgIGlmIChvcmlnaW5TeW1tZXRyaWNIYW5kbGVJbmRleCA+PSA0KSB7XG4gICAgICAgIG9yaWdpblN5bW1ldHJpY0hhbmRsZUluZGV4ID0gb3JpZ2luU3ltbWV0cmljSGFuZGxlSW5kZXggLSA0O1xuICAgIH1cbiAgICByZXR1cm4gaXNFZGdlSGFuZGxlKGJvYXJkLCBnZXRSZXNpemVIYW5kbGVCeUluZGV4KGluZGV4KSkgPyBvcmlnaW5TeW1tZXRyaWNIYW5kbGVJbmRleCArIDQgOiBvcmlnaW5TeW1tZXRyaWNIYW5kbGVJbmRleDtcbn07XG5cbmNvbnN0IGdldFJlc2l6ZUN1cnNvckNsYXNzQnlJbmRleCA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgc3dpdGNoIChpbmRleCkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBSZXNpemVDdXJzb3JDbGFzcy5ud3NlO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiBSZXNpemVDdXJzb3JDbGFzcy5uZXN3O1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgIHJldHVybiBSZXNpemVDdXJzb3JDbGFzcy5ucztcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICByZXR1cm4gUmVzaXplQ3Vyc29yQ2xhc3MuZXc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Um90YXRlZFJlc2l6ZUN1cnNvckNsYXNzQnlBbmdsZSA9IChjdXJzb3I6IFJlc2l6ZUN1cnNvckNsYXNzLCBhbmdsZTogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBSRVNJWkVfQ1VSU09SUy5pbmRleE9mKGN1cnNvcik7XG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgY29uc3QgdGVtcCA9IE1hdGgucm91bmQoYW5nbGUgLyAoTWF0aC5QSSAvIDQpKTtcbiAgICAgICAgY3Vyc29yID0gUkVTSVpFX0NVUlNPUlNbKGluZGV4ICsgdGVtcCkgJSBSRVNJWkVfQ1VSU09SUy5sZW5ndGhdIGFzIFJlc2l6ZUN1cnNvckNsYXNzO1xuICAgIH1cbiAgICByZXR1cm4gY3Vyc29yO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlY3RhbmdsZVJlc2l6ZUhhbmRsZVJlZnMgPSAocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIGRpYW1ldGVyOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBjb3JuZXJzID0gUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIGNvbnN0IHJlZnMgPSBjb3JuZXJzLm1hcCgoY29ybmVyLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZWN0YW5nbGU6IHtcbiAgICAgICAgICAgICAgICB4OiBjb3JuZXJbMF0gLSBkaWFtZXRlciAvIDIsXG4gICAgICAgICAgICAgICAgeTogY29ybmVyWzFdIC0gZGlhbWV0ZXIgLyAyLFxuICAgICAgICAgICAgICAgIHdpZHRoOiBkaWFtZXRlcixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGRpYW1ldGVyXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGFuZGxlOiBnZXRSZXNpemVIYW5kbGVCeUluZGV4KGluZGV4KSBhcyBSZXNpemVIYW5kbGUsXG4gICAgICAgICAgICBjdXJzb3JDbGFzczogZ2V0UmVzaXplQ3Vyc29yQ2xhc3NCeUluZGV4KGluZGV4KSBhcyBSZXNpemVDdXJzb3JDbGFzc1xuICAgICAgICB9O1xuICAgIH0pO1xuICAgIGNvbnN0IHJlY3RhbmdsZXMgPSBnZXRSZXNpemVTaWRlUmVjdGFuZ2xlcyhjb3JuZXJzLCBkaWFtZXRlciAvIDIpO1xuICAgIHJlZnMucHVzaChcbiAgICAgICAgLi4ucmVjdGFuZ2xlcy5tYXAoKHJlY3RhbmdsZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVjdGFuZ2xlLFxuICAgICAgICAgICAgICAgIGhhbmRsZTogZ2V0UmVzaXplSGFuZGxlQnlJbmRleChpbmRleCArIDQpIGFzIFJlc2l6ZUhhbmRsZSxcbiAgICAgICAgICAgICAgICBjdXJzb3JDbGFzczogZ2V0UmVzaXplQ3Vyc29yQ2xhc3NCeUluZGV4KGluZGV4ICsgNCkgYXMgUmVzaXplQ3Vyc29yQ2xhc3NcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcmVmcztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZXNpemVIYW5kbGVQb2ludEJ5SW5kZXggPSAocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBpZiAoaW5kZXggPD0gMykge1xuICAgICAgICBjb25zdCBjb3JuZXJzID0gUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgICAgICByZXR1cm4gY29ybmVyc1tpbmRleF07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZWRnZUNlbnRlclBvaW50cyA9IFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIHJldHVybiBlZGdlQ2VudGVyUG9pbnRzW2luZGV4IC0gNF07XG4gICAgfVxufTtcblxuY29uc3QgZ2V0UmVzaXplU2lkZVJlY3RhbmdsZXMgPSAoY29ybmVyUG9pbnRzOiBQb2ludFtdLCBvZmZzZXQ6IG51bWJlcik6IFJlY3RhbmdsZUNsaWVudFtdID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvcm5lclBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgcmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtjb3JuZXJQb2ludHNbaV0sIGNvcm5lclBvaW50c1soaSArIDEpICUgNF1dKTtcbiAgICAgICAgY29uc3QgYXJyID0gbmV3IEFycmF5KDIpLmZpbGwoMCk7XG4gICAgICAgIGFyclsoaSArIDEpICUgMl0gPSBvZmZzZXQgLyAyO1xuICAgICAgICByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZXhwYW5kKHJlY3RhbmdsZSwgYXJyWzBdLCBhcnJbMV0pO1xuICAgICAgICByZXN1bHQucHVzaChyZWN0YW5nbGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IElTX1JFU0laSU5HID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUmVzaXplUmVmPGFueSwgYW55Pj4oKTtcblxuZXhwb3J0IGNvbnN0IGlzUmVzaXppbmcgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICByZXR1cm4gISFJU19SRVNJWklORy5nZXQoYm9hcmQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUmVzaXppbmdCeUNvbmRpdGlvbiA9IDxUIGV4dGVuZHMgUGxhaXRFbGVtZW50T3JBcnJheSwgSz4oXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgbWF0Y2g6IChyZXNpemVSZWY6IFJlc2l6ZVJlZjxULCBLPikgPT4gYm9vbGVhblxuKSA9PiB7XG4gICAgcmV0dXJuIGlzUmVzaXppbmcoYm9hcmQpICYmIG1hdGNoKElTX1JFU0laSU5HLmdldChib2FyZCkhKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRSZXNpemluZyA9IDxUIGV4dGVuZHMgUGxhaXRFbGVtZW50T3JBcnJheSwgSz4oYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlc2l6ZVJlZjogUmVzaXplUmVmPFQsIEs+LCBrZXk6IHN0cmluZykgPT4ge1xuICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoYCR7a2V5fS1yZXNpemluZ2ApO1xuICAgIElTX1JFU0laSU5HLnNldChib2FyZCwgcmVzaXplUmVmKTtcbiAgICBzZXREcmFnZ2luZyhib2FyZCwgdHJ1ZSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlUmVzaXppbmcgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZShgJHtrZXl9LXJlc2l6aW5nYCk7XG4gICAgSVNfUkVTSVpJTkcuZGVsZXRlKGJvYXJkKTtcbiAgICBzZXREcmFnZ2luZyhib2FyZCwgZmFsc2UpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRWRnZUhhbmRsZSA9IChib2FyZDogUGxhaXRCb2FyZCwgaGFuZGxlOiBSZXNpemVIYW5kbGUpID0+IHtcbiAgICBjb25zdCBpbmRleCA9IGdldEluZGV4QnlSZXNpemVIYW5kbGUoaGFuZGxlKTtcbiAgICBpZiAoaW5kZXggPj0gNCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzQ29ybmVySGFuZGxlID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBoYW5kbGU6IFJlc2l6ZUhhbmRsZSkgPT4ge1xuICAgIHJldHVybiAhaXNFZGdlSGFuZGxlKGJvYXJkLCBoYW5kbGUpO1xufTtcblxuLy8g5aSE55CG5YWD57Sg5YWI5peL6L2s5ZCOcmVzaXpl5a+86Ie055qE5L2N572u5YGP56e7XG5leHBvcnQgY29uc3QgcmVzZXRQb2ludHNBZnRlclJlc2l6ZSA9IChcbiAgICBvcmlnaW5SZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCxcbiAgICBjdXJyZW50UmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsXG4gICAgb3JpZ2luU2VsZWN0aW9uQ2VudGVyUG9pbnQ6IFBvaW50LFxuICAgIGN1cnJlbnRTZWxlY3Rpb25DZW50ZXJQb2ludDogUG9pbnQsXG4gICAgYW5nbGU6IG51bWJlclxuKTogW1BvaW50LCBQb2ludF0gPT4ge1xuICAgIGNvbnN0IGNvcnJlY3RTZWxlY3Rpb25DZW50ZXJQb2ludCA9IHJvdGF0ZVBvaW50cyhbY3VycmVudFNlbGVjdGlvbkNlbnRlclBvaW50XSwgb3JpZ2luU2VsZWN0aW9uQ2VudGVyUG9pbnQsIGFuZ2xlKVswXTtcbiAgICBjb25zdCByb3RhdGVkRWxlbWVudENlbnRlclBvaW50ID0gcm90YXRlUG9pbnRzKFxuICAgICAgICBbUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KGN1cnJlbnRSZWN0YW5nbGUpIGFzIFBvaW50XSxcbiAgICAgICAgb3JpZ2luU2VsZWN0aW9uQ2VudGVyUG9pbnQsXG4gICAgICAgIGFuZ2xlXG4gICAgKVswXTtcblxuICAgIGNvbnN0IGN1cnJlbnRQb2ludHMgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UG9pbnRzKGN1cnJlbnRSZWN0YW5nbGUpO1xuICAgIGNvbnN0IG9yaWdpblJlY3RhbmdsZUNlbnRlclBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KG9yaWdpblJlY3RhbmdsZSk7XG5cbiAgICBjb25zdCBjb3JyZWN0RWxlbWVudENlbnRlclBvaW50ID0gcm90YXRlUG9pbnRzKFtyb3RhdGVkRWxlbWVudENlbnRlclBvaW50XSwgY29ycmVjdFNlbGVjdGlvbkNlbnRlclBvaW50LCAtYW5nbGUpWzBdO1xuXG4gICAgY29uc3Qgcm90YXRlZFBvaW50cyA9IHJvdGF0ZVBvaW50cyhjdXJyZW50UG9pbnRzLCBvcmlnaW5SZWN0YW5nbGVDZW50ZXJQb2ludCwgYW5nbGUpO1xuICAgIHJldHVybiByb3RhdGVQb2ludHMocm90YXRlZFBvaW50cywgY29ycmVjdEVsZW1lbnRDZW50ZXJQb2ludCwgLWFuZ2xlKSBhcyBbUG9pbnQsIFBvaW50XTtcbn07XG5cbmV4cG9ydCBjb25zdCBjYW5SZXNpemUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGlmIChQbGFpdEJvYXJkLmhhc0JlZW5UZXh0RWRpdGluZyhib2FyZCkgfHwgaXNTZWxlY3Rpb25Nb3ZpbmcoYm9hcmQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIHJldHVybiBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBzZWxlY3RlZEVsZW1lbnRzWzBdID09PSBlbGVtZW50O1xufTtcbiJdfQ==
|