@plait/common 0.53.0 → 0.55.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.
@@ -4,3 +4,5 @@ export declare const RESIZE_HANDLE_DIAMETER = 9;
4
4
  export declare const WithTextPluginKey = "plait-text-plugin-key";
5
5
  export declare const DEFAULT_ROUTE_MARGIN = 30;
6
6
  export declare const TRANSPARENT = "transparent";
7
+ export declare const ROTATE_HANDLE_DISTANCE_TO_ELEMENT = 20;
8
+ export declare const ROTATE_HANDLE_SIZE = 18;
@@ -1,13 +1,12 @@
1
- import { OnInit, OnDestroy, ViewContainerRef, ChangeDetectorRef } from '@angular/core';
1
+ import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
2
2
  import { OnContextChanged, PlaitBoard, 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
- private viewContainerRef;
9
8
  protected cdr: ChangeDetectorRef;
10
- constructor(viewContainerRef: ViewContainerRef, cdr: ChangeDetectorRef);
9
+ constructor(cdr: ChangeDetectorRef);
11
10
  activeGenerator: ActiveGenerator<PlaitGroup>;
12
11
  groupGenerator: GroupGenerator;
13
12
  initializeGenerator(): void;
@@ -4,4 +4,6 @@ export const RESIZE_HANDLE_DIAMETER = 9;
4
4
  export const WithTextPluginKey = 'plait-text-plugin-key';
5
5
  export const DEFAULT_ROUTE_MARGIN = 30;
6
6
  export const TRANSPARENT = 'transparent';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29uc3RhbnRzL2RlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCQVNFID0gNDtcbmV4cG9ydCBjb25zdCBQUklNQVJZX0NPTE9SID0gJyM2Njk4RkYnO1xuZXhwb3J0IGNvbnN0IFJFU0laRV9IQU5ETEVfRElBTUVURVIgPSA5O1xuZXhwb3J0IGNvbnN0IFdpdGhUZXh0UGx1Z2luS2V5ID0gJ3BsYWl0LXRleHQtcGx1Z2luLWtleSc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9ST1VURV9NQVJHSU4gPSAzMDtcbmV4cG9ydCBjb25zdCBUUkFOU1BBUkVOVCA9ICd0cmFuc3BhcmVudCc7XG4iXX0=
7
+ export const ROTATE_HANDLE_DISTANCE_TO_ELEMENT = 20;
8
+ export const ROTATE_HANDLE_SIZE = 18;
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29uc3RhbnRzL2RlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxFQUFFLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEJBU0UgPSA0O1xuZXhwb3J0IGNvbnN0IFBSSU1BUllfQ09MT1IgPSAnIzY2OThGRic7XG5leHBvcnQgY29uc3QgUkVTSVpFX0hBTkRMRV9ESUFNRVRFUiA9IDk7XG5leHBvcnQgY29uc3QgV2l0aFRleHRQbHVnaW5LZXkgPSAncGxhaXQtdGV4dC1wbHVnaW4ta2V5JztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JPVVRFX01BUkdJTiA9IDMwO1xuZXhwb3J0IGNvbnN0IFRSQU5TUEFSRU5UID0gJ3RyYW5zcGFyZW50JztcbmV4cG9ydCBjb25zdCBST1RBVEVfSEFORExFX0RJU1RBTkNFX1RPX0VMRU1FTlQgPSAyMDtcbmV4cG9ydCBjb25zdCBST1RBVEVfSEFORExFX1NJWkUgPSAxODtcbiJdfQ==
@@ -5,9 +5,8 @@ import { ActiveGenerator } from '../generators';
5
5
  import { CommonPluginElement } from './plugin-element';
6
6
  import * as i0 from "@angular/core";
7
7
  export class GroupComponent extends CommonPluginElement {
8
- constructor(viewContainerRef, cdr) {
8
+ constructor(cdr) {
9
9
  super(cdr);
10
- this.viewContainerRef = viewContainerRef;
11
10
  this.cdr = cdr;
12
11
  }
13
12
  initializeGenerator() {
@@ -31,9 +30,9 @@ export class GroupComponent extends CommonPluginElement {
31
30
  const elementsInGroup = getElementsInGroup(this.board, value.element, false, true);
32
31
  const isPartialSelectGroup = elementsInGroup.some(item => isSelectedElementOrGroup(this.board, item)) &&
33
32
  !elementsInGroup.every(item => isSelectedElementOrGroup(this.board, item));
34
- this.groupGenerator.processDrawing(value.element, this.g, isPartialSelectGroup);
33
+ this.groupGenerator.processDrawing(value.element, this.getElementG(), isPartialSelectGroup);
35
34
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GroupComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
37
36
  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 }); }
38
37
  }
39
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GroupComponent, decorators: [{
@@ -44,5 +43,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
44
43
  changeDetection: ChangeDetectionStrategy.OnPush,
45
44
  standalone: true
46
45
  }]
47
- }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb3JlL2dyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBELHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBS0gsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ3BCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVF2RCxNQUFNLE9BQU8sY0FBZSxTQUFRLG1CQUEyQztJQUUzRSxZQUFvQixnQkFBa0MsRUFBWSxHQUFzQjtRQUNwRixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFESyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVksUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFFeEYsQ0FBQztJQU1ELG1CQUFtQjtRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQWEsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUMvRCxZQUFZLEVBQUUsQ0FBQyxPQUFtQixFQUFFLEVBQUU7Z0JBQ2xDLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNwRCxDQUFDO1lBQ0QsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdkIsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN6QixlQUFlLEVBQUUsR0FBRyxFQUFFO2dCQUNsQixPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLENBQUM7U0FDSixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQ1osS0FBd0QsRUFDeEQsUUFBMkQ7UUFFM0QsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuRixNQUFNLG9CQUFvQixHQUN0QixlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4RSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDcEYsQ0FBQzs4R0F0Q1EsY0FBYztrR0FBZCxjQUFjLDhGQUpiLEVBQUU7OzJGQUlILGNBQWM7a0JBTjFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQsIE9uRGVzdHJveSwgVmlld0NvbnRhaW5lclJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgT25Db250ZXh0Q2hhbmdlZCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0R3JvdXAsXG4gICAgUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCxcbiAgICBnZXRFbGVtZW50c0luR3JvdXAsXG4gICAgZ2V0UmVjdGFuZ2xlQnlHcm91cCxcbiAgICBpc1NlbGVjdGVkRWxlbWVudE9yR3JvdXAsXG4gICAgaXNTZWxlY3Rpb25Nb3Zpbmdcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgR3JvdXBHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzL2dyb3VwLmdlbmVyYXRvcic7XG5pbXBvcnQgeyBBY3RpdmVHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzJztcbmltcG9ydCB7IENvbW1vblBsdWdpbkVsZW1lbnQgfSBmcm9tICcuL3BsdWdpbi1lbGVtZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwbGFpdC1ncm91cCcsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgR3JvdXBDb21wb25lbnQgZXh0ZW5kcyBDb21tb25QbHVnaW5FbGVtZW50PFBsYWl0R3JvdXAsIFBsYWl0Qm9hcmQ+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25Db250ZXh0Q2hhbmdlZDxQbGFpdEdyb3VwLCBQbGFpdEJvYXJkPiB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcihjZHIpO1xuICAgIH1cblxuICAgIGFjdGl2ZUdlbmVyYXRvciE6IEFjdGl2ZUdlbmVyYXRvcjxQbGFpdEdyb3VwPjtcblxuICAgIGdyb3VwR2VuZXJhdG9yITogR3JvdXBHZW5lcmF0b3I7XG5cbiAgICBpbml0aWFsaXplR2VuZXJhdG9yKCkge1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBBY3RpdmVHZW5lcmF0b3I8UGxhaXRHcm91cD4odGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0UmVjdGFuZ2xlOiAoZWxlbWVudDogUGxhaXRHcm91cCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGVCeUdyb3VwKHRoaXMuYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFN0cm9rZVdpZHRoOiAoKSA9PiAwLFxuICAgICAgICAgICAgZ2V0U3Ryb2tlT3BhY2l0eTogKCkgPT4gMCxcbiAgICAgICAgICAgIGhhc1Jlc2l6ZUhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmdyb3VwR2VuZXJhdG9yID0gbmV3IEdyb3VwR2VuZXJhdG9yKHRoaXMuYm9hcmQpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2VkKFxuICAgICAgICB2YWx1ZTogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxQbGFpdEdyb3VwLCBQbGFpdEJvYXJkPixcbiAgICAgICAgcHJldmlvdXM6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRHcm91cCwgUGxhaXRCb2FyZD5cbiAgICApIHtcbiAgICAgICAgY29uc3QgZWxlbWVudHNJbkdyb3VwID0gZ2V0RWxlbWVudHNJbkdyb3VwKHRoaXMuYm9hcmQsIHZhbHVlLmVsZW1lbnQsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgY29uc3QgaXNQYXJ0aWFsU2VsZWN0R3JvdXAgPVxuICAgICAgICAgICAgZWxlbWVudHNJbkdyb3VwLnNvbWUoaXRlbSA9PiBpc1NlbGVjdGVkRWxlbWVudE9yR3JvdXAodGhpcy5ib2FyZCwgaXRlbSkpICYmXG4gICAgICAgICAgICAhZWxlbWVudHNJbkdyb3VwLmV2ZXJ5KGl0ZW0gPT4gaXNTZWxlY3RlZEVsZW1lbnRPckdyb3VwKHRoaXMuYm9hcmQsIGl0ZW0pKTtcbiAgICAgICAgdGhpcy5ncm91cEdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh2YWx1ZS5lbGVtZW50LCB0aGlzLmcsIGlzUGFydGlhbFNlbGVjdEdyb3VwKTtcbiAgICB9XG59XG4iXX0=
46
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb3JlL2dyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBELHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBS0gsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ3BCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVF2RCxNQUFNLE9BQU8sY0FBZSxTQUFRLG1CQUEyQztJQUUzRSxZQUFzQixHQUFzQjtRQUN4QyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFETyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUU1QyxDQUFDO0lBTUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBYSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQy9ELFlBQVksRUFBRSxDQUFDLE9BQW1CLEVBQUUsRUFBRTtnQkFDbEMsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELENBQUM7WUFDRCxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN2QixnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLGVBQWUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsQ0FBQztTQUNKLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxnQkFBZ0IsQ0FDWixLQUF3RCxFQUN4RCxRQUEyRDtRQUUzRCxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25GLE1BQU0sb0JBQW9CLEdBQ3RCLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hFLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7OEdBdENRLGNBQWM7a0dBQWQsY0FBYyw4RkFKYixFQUFFOzsyRkFJSCxjQUFjO2tCQU4xQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYsIENoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIE9uQ29udGV4dENoYW5nZWQsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdEdyb3VwLFxuICAgIFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQsXG4gICAgZ2V0RWxlbWVudHNJbkdyb3VwLFxuICAgIGdldFJlY3RhbmdsZUJ5R3JvdXAsXG4gICAgaXNTZWxlY3RlZEVsZW1lbnRPckdyb3VwLFxuICAgIGlzU2VsZWN0aW9uTW92aW5nXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEdyb3VwR2VuZXJhdG9yIH0gZnJvbSAnLi4vZ2VuZXJhdG9ycy9ncm91cC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgQWN0aXZlR2VuZXJhdG9yIH0gZnJvbSAnLi4vZ2VuZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21tb25QbHVnaW5FbGVtZW50IH0gZnJvbSAnLi9wbHVnaW4tZWxlbWVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGxhaXQtZ3JvdXAnLFxuICAgIHRlbXBsYXRlOiBgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEdyb3VwQ29tcG9uZW50IGV4dGVuZHMgQ29tbW9uUGx1Z2luRWxlbWVudDxQbGFpdEdyb3VwLCBQbGFpdEJvYXJkPlxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ29udGV4dENoYW5nZWQ8UGxhaXRHcm91cCwgUGxhaXRCb2FyZD4ge1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKGNkcik7XG4gICAgfVxuXG4gICAgYWN0aXZlR2VuZXJhdG9yITogQWN0aXZlR2VuZXJhdG9yPFBsYWl0R3JvdXA+O1xuXG4gICAgZ3JvdXBHZW5lcmF0b3IhOiBHcm91cEdlbmVyYXRvcjtcblxuICAgIGluaXRpYWxpemVHZW5lcmF0b3IoKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yID0gbmV3IEFjdGl2ZUdlbmVyYXRvcjxQbGFpdEdyb3VwPih0aGlzLmJvYXJkLCB7XG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6IChlbGVtZW50OiBQbGFpdEdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldFJlY3RhbmdsZUJ5R3JvdXAodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGg6ICgpID0+IDAsXG4gICAgICAgICAgICBnZXRTdHJva2VPcGFjaXR5OiAoKSA9PiAwLFxuICAgICAgICAgICAgaGFzUmVzaXplSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc1NlbGVjdGlvbk1vdmluZyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZ3JvdXBHZW5lcmF0b3IgPSBuZXcgR3JvdXBHZW5lcmF0b3IodGhpcy5ib2FyZCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUdlbmVyYXRvcigpO1xuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZWQoXG4gICAgICAgIHZhbHVlOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0R3JvdXAsIFBsYWl0Qm9hcmQ+LFxuICAgICAgICBwcmV2aW91czogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxQbGFpdEdyb3VwLCBQbGFpdEJvYXJkPlxuICAgICkge1xuICAgICAgICBjb25zdCBlbGVtZW50c0luR3JvdXAgPSBnZXRFbGVtZW50c0luR3JvdXAodGhpcy5ib2FyZCwgdmFsdWUuZWxlbWVudCwgZmFsc2UsIHRydWUpO1xuICAgICAgICBjb25zdCBpc1BhcnRpYWxTZWxlY3RHcm91cCA9XG4gICAgICAgICAgICBlbGVtZW50c0luR3JvdXAuc29tZShpdGVtID0+IGlzU2VsZWN0ZWRFbGVtZW50T3JHcm91cCh0aGlzLmJvYXJkLCBpdGVtKSkgJiZcbiAgICAgICAgICAgICFlbGVtZW50c0luR3JvdXAuZXZlcnkoaXRlbSA9PiBpc1NlbGVjdGVkRWxlbWVudE9yR3JvdXAodGhpcy5ib2FyZCwgaXRlbSkpO1xuICAgICAgICB0aGlzLmdyb3VwR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHZhbHVlLmVsZW1lbnQsIHRoaXMuZ2V0RWxlbWVudEcoKSwgaXNQYXJ0aWFsU2VsZWN0R3JvdXApO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { RectangleClient, createG, drawRectangle } from '@plait/core';
1
+ import { RectangleClient, SELECTION_RECTANGLE_CLASS_NAME, createG, drawRectangle } from '@plait/core';
2
2
  import { Generator } from './generator';
3
3
  import { PRIMARY_COLOR } from '../constants/default';
4
4
  import { drawHandle } from '../utils/drawing';
@@ -27,6 +27,7 @@ export class ActiveGenerator extends Generator {
27
27
  strokeWidth: delta
28
28
  });
29
29
  activeG.append(strokeG);
30
+ strokeG.classList.add(SELECTION_RECTANGLE_CLASS_NAME);
30
31
  strokeG.style.opacity = `${this.options.getStrokeOpacity()}`;
31
32
  if (this.options.hasResizeHandle()) {
32
33
  this.hasResizeHandle = true;
@@ -42,4 +43,4 @@ export class ActiveGenerator extends Generator {
42
43
  return activeG;
43
44
  }
44
45
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLmdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvZ2VuZXJhdG9ycy9hY3RpdmUuZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsZUFBZSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEcsT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxhQUFhLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWE5QyxNQUFNLE9BQU8sZUFBdUQsU0FBUSxTQUkzRTtJQUdHLFlBQW1CLEtBQWlCLEVBQVMsT0FBa0M7UUFDM0UsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQURQLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUYvRSxvQkFBZSxHQUFHLEtBQUssQ0FBQztJQUl4QixDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQVUsRUFBRSxJQUE4QjtRQUM5QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVUsRUFBRSxJQUE4QjtRQUMzQyxNQUFNLE9BQU8sR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUMxQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVyRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVDLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWxFLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRTtZQUN2RCxNQUFNLEVBQUUsYUFBYTtZQUNyQixXQUFXLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIscUJBQXFCO1lBQ3JCLGVBQWUsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM5RCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDckQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUmVjdGFuZ2xlQ2xpZW50LCBjcmVhdGVHLCBkcmF3UmVjdGFuZ2xlIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgR2VuZXJhdG9yLCBHZW5lcmF0b3JPcHRpb25zIH0gZnJvbSAnLi9nZW5lcmF0b3InO1xuaW1wb3J0IHsgUFJJTUFSWV9DT0xPUiB9IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IGRyYXdIYW5kbGUgfSBmcm9tICcuLi91dGlscy9kcmF3aW5nJztcblxuZXhwb3J0IGludGVyZmFjZSBBY3RpdmVHZW5lcmF0b3JFeHRyYURhdGEge1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2ZUdlbmVyYXRvck9wdGlvbnM8VD4ge1xuICAgIGdldFJlY3RhbmdsZTogKGVsZW1lbnQ6IFQpID0+IFJlY3RhbmdsZUNsaWVudDtcbiAgICBnZXRTdHJva2VXaWR0aDogKCkgPT4gbnVtYmVyO1xuICAgIGdldFN0cm9rZU9wYWNpdHk6ICgpID0+IG51bWJlcjtcbiAgICBoYXNSZXNpemVIYW5kbGU6ICgpID0+IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBBY3RpdmVHZW5lcmF0b3I8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudD4gZXh0ZW5kcyBHZW5lcmF0b3I8XG4gICAgVCxcbiAgICBBY3RpdmVHZW5lcmF0b3JFeHRyYURhdGEsXG4gICAgQWN0aXZlR2VuZXJhdG9yT3B0aW9uczxUPiAmIEdlbmVyYXRvck9wdGlvbnNcbj4ge1xuICAgIGhhc1Jlc2l6ZUhhbmRsZSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGJvYXJkOiBQbGFpdEJvYXJkLCBwdWJsaWMgb3B0aW9uczogQWN0aXZlR2VuZXJhdG9yT3B0aW9uczxUPikge1xuICAgICAgICBzdXBlcihib2FyZCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY2FuRHJhdyhlbGVtZW50OiBULCBkYXRhOiBBY3RpdmVHZW5lcmF0b3JFeHRyYURhdGEpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGRhdGEuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50OiBULCBkYXRhOiBBY3RpdmVHZW5lcmF0b3JFeHRyYURhdGEpOiBTVkdHRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG5cbiAgICAgICAgY29uc3QgZGVsdGEgPSB0aGlzLm9wdGlvbnMuZ2V0U3Ryb2tlV2lkdGgoKTtcbiAgICAgICAgY29uc3QgYWN0aXZlUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmluZmxhdGUocmVjdGFuZ2xlLCBkZWx0YSk7XG5cbiAgICAgICAgY29uc3Qgc3Ryb2tlRyA9IGRyYXdSZWN0YW5nbGUodGhpcy5ib2FyZCwgYWN0aXZlUmVjdGFuZ2xlLCB7XG4gICAgICAgICAgICBzdHJva2U6IFBSSU1BUllfQ09MT1IsXG4gICAgICAgICAgICBzdHJva2VXaWR0aDogZGVsdGFcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYWN0aXZlRy5hcHBlbmQoc3Ryb2tlRyk7XG4gICAgICAgIHN0cm9rZUcuc3R5bGUub3BhY2l0eSA9IGAke3RoaXMub3B0aW9ucy5nZXRTdHJva2VPcGFjaXR5KCl9YDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5oYXNSZXNpemVIYW5kbGUoKSkge1xuICAgICAgICAgICAgdGhpcy5oYXNSZXNpemVIYW5kbGUgPSB0cnVlO1xuICAgICAgICAgICAgLy8gZHJhdyByZXNpemUgaGFuZGxlXG4gICAgICAgICAgICBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKGFjdGl2ZVJlY3RhbmdsZSkuZm9yRWFjaChjb3JuZXIgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvcm5lckhhbmRsZUcgPSBkcmF3SGFuZGxlKHRoaXMuYm9hcmQsIGNvcm5lcik7XG4gICAgICAgICAgICAgICAgYWN0aXZlRy5hcHBlbmQoY29ybmVySGFuZGxlRyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGFzUmVzaXplSGFuZGxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGl2ZUc7XG4gICAgfVxufVxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLmdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvZ2VuZXJhdG9ycy9hY3RpdmUuZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsZUFBZSxFQUFFLDhCQUE4QixFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEksT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxhQUFhLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWE5QyxNQUFNLE9BQU8sZUFBdUQsU0FBUSxTQUkzRTtJQUdHLFlBQW1CLEtBQWlCLEVBQVMsT0FBa0M7UUFDM0UsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQURQLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUYvRSxvQkFBZSxHQUFHLEtBQUssQ0FBQztJQUl4QixDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQVUsRUFBRSxJQUE4QjtRQUM5QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVUsRUFBRSxJQUE4QjtRQUMzQyxNQUFNLE9BQU8sR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUMxQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVyRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVDLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWxFLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRTtZQUN2RCxNQUFNLEVBQUUsYUFBYTtZQUNyQixXQUFXLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM1QixxQkFBcUI7WUFDckIsZUFBZSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzlELE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNyRCxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUNqQyxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBSZWN0YW5nbGVDbGllbnQsIFNFTEVDVElPTl9SRUNUQU5HTEVfQ0xBU1NfTkFNRSwgY3JlYXRlRywgZHJhd1JlY3RhbmdsZSB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEdlbmVyYXRvciwgR2VuZXJhdG9yT3B0aW9ucyB9IGZyb20gJy4vZ2VuZXJhdG9yJztcbmltcG9ydCB7IFBSSU1BUllfQ09MT1IgfSBmcm9tICcuLi9jb25zdGFudHMvZGVmYXVsdCc7XG5pbXBvcnQgeyBkcmF3SGFuZGxlIH0gZnJvbSAnLi4vdXRpbHMvZHJhd2luZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhIHtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3RpdmVHZW5lcmF0b3JPcHRpb25zPFQ+IHtcbiAgICBnZXRSZWN0YW5nbGU6IChlbGVtZW50OiBUKSA9PiBSZWN0YW5nbGVDbGllbnQ7XG4gICAgZ2V0U3Ryb2tlV2lkdGg6ICgpID0+IG51bWJlcjtcbiAgICBnZXRTdHJva2VPcGFjaXR5OiAoKSA9PiBudW1iZXI7XG4gICAgaGFzUmVzaXplSGFuZGxlOiAoKSA9PiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQWN0aXZlR2VuZXJhdG9yPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQ+IGV4dGVuZHMgR2VuZXJhdG9yPFxuICAgIFQsXG4gICAgQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhLFxuICAgIEFjdGl2ZUdlbmVyYXRvck9wdGlvbnM8VD4gJiBHZW5lcmF0b3JPcHRpb25zXG4+IHtcbiAgICBoYXNSZXNpemVIYW5kbGUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBib2FyZDogUGxhaXRCb2FyZCwgcHVibGljIG9wdGlvbnM6IEFjdGl2ZUdlbmVyYXRvck9wdGlvbnM8VD4pIHtcbiAgICAgICAgc3VwZXIoYm9hcmQsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNhbkRyYXcoZWxlbWVudDogVCwgZGF0YTogQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChkYXRhLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYXcoZWxlbWVudDogVCwgZGF0YTogQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhKTogU1ZHR0VsZW1lbnQge1xuICAgICAgICBjb25zdCBhY3RpdmVHID0gY3JlYXRlRygpO1xuICAgICAgICBjb25zdCByZWN0YW5nbGUgPSB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuXG4gICAgICAgIGNvbnN0IGRlbHRhID0gdGhpcy5vcHRpb25zLmdldFN0cm9rZVdpZHRoKCk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5pbmZsYXRlKHJlY3RhbmdsZSwgZGVsdGEpO1xuXG4gICAgICAgIGNvbnN0IHN0cm9rZUcgPSBkcmF3UmVjdGFuZ2xlKHRoaXMuYm9hcmQsIGFjdGl2ZVJlY3RhbmdsZSwge1xuICAgICAgICAgICAgc3Ryb2tlOiBQUklNQVJZX0NPTE9SLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IGRlbHRhXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFjdGl2ZUcuYXBwZW5kKHN0cm9rZUcpO1xuICAgICAgICBzdHJva2VHLmNsYXNzTGlzdC5hZGQoU0VMRUNUSU9OX1JFQ1RBTkdMRV9DTEFTU19OQU1FKTtcbiAgICAgICAgc3Ryb2tlRy5zdHlsZS5vcGFjaXR5ID0gYCR7dGhpcy5vcHRpb25zLmdldFN0cm9rZU9wYWNpdHkoKX1gO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmhhc1Jlc2l6ZUhhbmRsZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmhhc1Jlc2l6ZUhhbmRsZSA9IHRydWU7XG4gICAgICAgICAgICAvLyBkcmF3IHJlc2l6ZSBoYW5kbGVcbiAgICAgICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMoYWN0aXZlUmVjdGFuZ2xlKS5mb3JFYWNoKGNvcm5lciA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29ybmVySGFuZGxlRyA9IGRyYXdIYW5kbGUodGhpcy5ib2FyZCwgY29ybmVyKTtcbiAgICAgICAgICAgICAgICBhY3RpdmVHLmFwcGVuZChjb3JuZXJIYW5kbGVHKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oYXNSZXNpemVIYW5kbGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWN0aXZlRztcbiAgICB9XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { RectangleClient, setAngleForG } from '@plait/core';
1
+ import { PlaitGroupElement, RectangleClient, getElementsInGroup, getSelectionAngle, setAngleForG } from '@plait/core';
2
2
  export class Generator {
3
3
  constructor(board, options) {
4
4
  this.board = board;
@@ -21,8 +21,17 @@ export class Generator {
21
21
  }
22
22
  this.g = g;
23
23
  const rect = this.board.getRectangle(element);
24
- if (rect && element.angle) {
25
- setAngleForG(g, RectangleClient.getCenterPoint(rect), element.angle);
24
+ if (rect) {
25
+ let angle;
26
+ if (PlaitGroupElement.isGroup(element)) {
27
+ angle = getSelectionAngle(getElementsInGroup(this.board, element, true));
28
+ }
29
+ else {
30
+ angle = element.angle;
31
+ }
32
+ if (angle) {
33
+ setAngleForG(g, RectangleClient.getCenterPoint(rect), angle);
34
+ }
26
35
  }
27
36
  }
28
37
  else {
@@ -49,4 +58,4 @@ export function hasAfterDraw(value) {
49
58
  }
50
59
  return false;
51
60
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3JzL2dlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFRdEYsTUFBTSxPQUFnQixTQUFTO0lBUzNCLFlBQXNCLEtBQWlCLEVBQUUsT0FBVztRQUE5QixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBVSxFQUFFLE9BQW9CLEVBQUUsSUFBUTtRQUNyRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNKLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNyQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUIsQ0FBQztxQkFBTSxDQUFDO29CQUNKLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQzt3QkFDeEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkIsQ0FBQzt5QkFBTSxDQUFDO3dCQUNKLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzNCLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDWCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN4QixZQUFZLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RSxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixDQUFDO1lBQ0QsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QixDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsQ0FBQztJQUNMLENBQUM7SUFZRCxPQUFPO1FBQ0gsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDO0NBQ0o7QUFNRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQVU7SUFDbkMsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFJlY3RhbmdsZUNsaWVudCwgc2V0QW5nbGVGb3JHIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRvckV4dHJhRGF0YSB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRvck9wdGlvbnMge1xuICAgIHByZXBlbmQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2VuZXJhdG9yPFxuICAgIFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQsXG4gICAgSyBleHRlbmRzIEdlbmVyYXRvckV4dHJhRGF0YSA9IEdlbmVyYXRvckV4dHJhRGF0YSxcbiAgICBWIGV4dGVuZHMgR2VuZXJhdG9yT3B0aW9ucyA9IEdlbmVyYXRvck9wdGlvbnNcbj4ge1xuICAgIGc/OiBTVkdHRWxlbWVudDtcblxuICAgIHByb3RlY3RlZCBvcHRpb25zPzogVjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBib2FyZDogUGxhaXRCb2FyZCwgb3B0aW9ucz86IFYpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG5cbiAgICBwcm9jZXNzRHJhd2luZyhlbGVtZW50OiBULCBwYXJlbnRHOiBTVkdHRWxlbWVudCwgZGF0YT86IEspIHtcbiAgICAgICAgaWYgKHRoaXMuY2FuRHJhdyAmJiB0aGlzLmNhbkRyYXcoZWxlbWVudCwgZGF0YSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGcgPSB0aGlzLmRyYXcoZWxlbWVudCwgZGF0YSk7XG4gICAgICAgICAgICBpZiAoZykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmcgJiYgcGFyZW50Ry5jb250YWlucyh0aGlzLmcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZy5yZXBsYWNlV2l0aChnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zPy5wcmVwZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRHLnByZXBlbmQoZyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRHLmFwcGVuZENoaWxkKGcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZyA9IGc7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMuYm9hcmQuZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGlmIChyZWN0ICYmIGVsZW1lbnQuYW5nbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0QW5nbGVGb3JHKGcsIFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludChyZWN0KSwgZWxlbWVudC5hbmdsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNBZnRlckRyYXcodGhpcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyRHJhdyhlbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYWJzdHJhY3QgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2FuRHJhdyhlbGVtZW50OiBULCBkYXRhPzogSyk6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBhYnN0cmFjdCBmdW5jdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBkcmF3KGVsZW1lbnQ6IFQsIGRhdGE/OiBLKTogU1ZHR0VsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5nKSB7XG4gICAgICAgICAgICB0aGlzLmcucmVtb3ZlKCk7XG4gICAgICAgICAgICB0aGlzLmcgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWZ0ZXJEcmF3PFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQ+IHtcbiAgICBhZnRlckRyYXcoZWxlbWVudDogVCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNBZnRlckRyYXcodmFsdWU6IGFueSk6IHZhbHVlIGlzIEFmdGVyRHJhdyB7XG4gICAgaWYgKHZhbHVlLmFmdGVyRHJhdykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3JzL2dlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFlBQVksRUFDZixNQUFNLGFBQWEsQ0FBQztBQVFyQixNQUFNLE9BQWdCLFNBQVM7SUFTM0IsWUFBc0IsS0FBaUIsRUFBRSxPQUFXO1FBQTlCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFVLEVBQUUsT0FBb0IsRUFBRSxJQUFRO1FBQ3JELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzlDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ0osSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixDQUFDO3FCQUFNLENBQUM7b0JBQ0osSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO3dCQUN4QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2QixDQUFDO3lCQUFNLENBQUM7d0JBQ0osT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0IsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNYLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNQLElBQUksS0FBSyxDQUFDO29CQUNWLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7d0JBQ3JDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUM3RSxDQUFDO3lCQUFNLENBQUM7d0JBQ0osS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQzFCLENBQUM7b0JBQ0QsSUFBSSxLQUFLLEVBQUUsQ0FBQzt3QkFDUixZQUFZLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ2pFLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsQ0FBQztZQUNELElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUIsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDTCxDQUFDO0lBWUQsT0FBTztRQUNILElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN2QixDQUFDO0lBQ0wsQ0FBQztDQUNKO0FBTUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFVO0lBQ25DLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBQbGFpdEdyb3VwRWxlbWVudCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0RWxlbWVudHNJbkdyb3VwLFxuICAgIGdldFNlbGVjdGlvbkFuZ2xlLFxuICAgIHNldEFuZ2xlRm9yR1xufSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdG9yRXh0cmFEYXRhIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdG9yT3B0aW9ucyB7XG4gICAgcHJlcGVuZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHZW5lcmF0b3I8XG4gICAgVCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudCxcbiAgICBLIGV4dGVuZHMgR2VuZXJhdG9yRXh0cmFEYXRhID0gR2VuZXJhdG9yRXh0cmFEYXRhLFxuICAgIFYgZXh0ZW5kcyBHZW5lcmF0b3JPcHRpb25zID0gR2VuZXJhdG9yT3B0aW9uc1xuPiB7XG4gICAgZz86IFNWR0dFbGVtZW50O1xuXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM/OiBWO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGJvYXJkOiBQbGFpdEJvYXJkLCBvcHRpb25zPzogVikge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH1cblxuICAgIHByb2Nlc3NEcmF3aW5nKGVsZW1lbnQ6IFQsIHBhcmVudEc6IFNWR0dFbGVtZW50LCBkYXRhPzogSykge1xuICAgICAgICBpZiAodGhpcy5jYW5EcmF3ICYmIHRoaXMuY2FuRHJhdyhlbGVtZW50LCBkYXRhKSkge1xuICAgICAgICAgICAgY29uc3QgZyA9IHRoaXMuZHJhdyhlbGVtZW50LCBkYXRhKTtcbiAgICAgICAgICAgIGlmIChnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZyAmJiBwYXJlbnRHLmNvbnRhaW5zKHRoaXMuZykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nLnJlcGxhY2VXaXRoKGcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnM/LnByZXBlbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudEcucHJlcGVuZChnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudEcuYXBwZW5kQ2hpbGQoZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5nID0gZztcbiAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5ib2FyZC5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFuZ2xlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoUGxhaXRHcm91cEVsZW1lbnQuaXNHcm91cChlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGUgPSBnZXRTZWxlY3Rpb25BbmdsZShnZXRFbGVtZW50c0luR3JvdXAodGhpcy5ib2FyZCwgZWxlbWVudCwgdHJ1ZSkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGUgPSBlbGVtZW50LmFuZ2xlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChhbmdsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0QW5nbGVGb3JHKGcsIFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludChyZWN0KSwgYW5nbGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNBZnRlckRyYXcodGhpcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyRHJhdyhlbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYWJzdHJhY3QgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2FuRHJhdyhlbGVtZW50OiBULCBkYXRhPzogSyk6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBhYnN0cmFjdCBmdW5jdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBkcmF3KGVsZW1lbnQ6IFQsIGRhdGE/OiBLKTogU1ZHR0VsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5nKSB7XG4gICAgICAgICAgICB0aGlzLmcucmVtb3ZlKCk7XG4gICAgICAgICAgICB0aGlzLmcgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWZ0ZXJEcmF3PFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQ+IHtcbiAgICBhZnRlckRyYXcoZWxlbWVudDogVCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNBZnRlckRyYXcodmFsdWU6IGFueSk6IHZhbHVlIGlzIEFmdGVyRHJhdyB7XG4gICAgaWYgKHZhbHVlLmFmdGVyRHJhdykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { PlaitBoard, PlaitGroupElement, toViewBoxPoint, toHostPoint, getHitElementsBySelection, createGroupRectangleG, getHighestSelectedGroups, getSelectedIsolatedElements, getSelectedGroups, Selection, Transforms, idCreator, getGroupByElement, getSelectedIsolatedElementsCanAddToGroup, getElementsInGroup, getRectangleByGroup, GroupTransforms } from '@plait/core';
1
+ import { PlaitBoard, PlaitGroupElement, toViewBoxPoint, toHostPoint, getHitElementsBySelection, createGroupRectangleG, getHighestSelectedGroups, getSelectedIsolatedElements, getSelectedGroups, Selection, Transforms, idCreator, getGroupByElement, getSelectedIsolatedElementsCanAddToGroup, getElementsInGroup, getRectangleByGroup } from '@plait/core';
2
2
  import { GroupComponent } from '../core/group.component';
3
3
  import { isKeyHotkey } from 'is-hotkey';
4
4
  export function withGroup(board) {
@@ -30,50 +30,53 @@ export function withGroup(board) {
30
30
  groupRectangleG = null;
31
31
  globalPointerUp(event);
32
32
  };
33
- board.getRelatedFragment = (elements) => {
34
- const groups = getSelectedGroups(board);
35
- return getRelatedFragment([...elements, ...groups]);
33
+ board.getRelatedFragment = (elements, originData) => {
34
+ const groups = getSelectedGroups(board, originData);
35
+ return getRelatedFragment([...elements, ...groups], originData);
36
36
  };
37
- board.insertFragment = (data, clipboardData, targetPoint) => {
38
- const elements = [];
37
+ board.insertFragment = (clipboardData, targetPoint) => {
38
+ let elements = [];
39
39
  if (clipboardData?.elements?.length) {
40
+ elements = new Array(clipboardData?.elements?.length);
40
41
  const groups = getHighestSelectedGroups(board, clipboardData?.elements);
41
42
  const selectedIsolatedElements = getSelectedIsolatedElements(board, clipboardData?.elements);
42
43
  selectedIsolatedElements.forEach(item => {
43
- elements.push(!item.groupId ? item : updateGroupId(item, undefined));
44
+ const index = clipboardData.elements.map(element => element.id).indexOf(item.id);
45
+ elements.splice(index, 1, !item.groupId ? item : updateGroupId(item, undefined));
44
46
  });
45
47
  if (groups.length) {
46
48
  groups.forEach(item => {
49
+ const index = clipboardData.elements.map(element => element.id).indexOf(item.id);
47
50
  const newGroup = { ...updateGroupId(item, undefined), id: idCreator() };
48
- elements.push(newGroup);
49
- elements.push(...updateElementsGroupId(item, clipboardData.elements, newGroup.id));
51
+ elements.splice(index, 1, newGroup);
52
+ updateElementsGroupId(item, clipboardData.elements, newGroup.id, elements);
50
53
  });
51
54
  }
52
55
  clipboardData.elements = elements;
53
56
  }
54
- insertFragment(data, clipboardData, targetPoint);
57
+ insertFragment(clipboardData, targetPoint);
55
58
  const groupElements = elements?.filter(value => PlaitGroupElement.isGroup(value));
56
59
  groupElements.forEach(element => {
57
60
  Transforms.insertNode(board, element, [board.children.length]);
58
61
  });
59
62
  };
60
63
  board.getDeletedFragment = (data) => {
64
+ removeGroups = getRemoveGroups(board);
61
65
  if (removeGroups && removeGroups.length) {
62
66
  data.push(...removeGroups);
63
67
  }
64
68
  return getDeletedFragment(data);
65
69
  };
66
- board.deleteFragment = (data) => {
67
- removeGroups = getRemoveGroups(board);
70
+ board.deleteFragment = (elements) => {
68
71
  if (removeGroups?.length) {
69
72
  updateSiblingElementGroupId(board, removeGroups);
70
73
  }
71
- deleteFragment(data);
74
+ deleteFragment(elements);
72
75
  removeGroups = null;
73
76
  };
74
77
  board.getRectangle = (element) => {
75
78
  if (PlaitGroupElement.isGroup(element)) {
76
- return getRectangleByGroup(board, element);
79
+ return getRectangleByGroup(board, element, true);
77
80
  }
78
81
  return getRectangle(element);
79
82
  };
@@ -81,12 +84,12 @@ export function withGroup(board) {
81
84
  if (!PlaitBoard.isReadonly(board)) {
82
85
  if (isKeyHotkey('mod+g', event)) {
83
86
  event.preventDefault();
84
- GroupTransforms.addGroup(board);
87
+ Transforms.addGroup(board);
85
88
  return;
86
89
  }
87
90
  if (isKeyHotkey('mod+shift+g', event)) {
88
91
  event.preventDefault();
89
- GroupTransforms.removeGroup(board);
92
+ Transforms.removeGroup(board);
90
93
  return;
91
94
  }
92
95
  }
@@ -100,18 +103,18 @@ const updateGroupId = (element, groupId) => {
100
103
  groupId: groupId
101
104
  };
102
105
  };
103
- const updateElementsGroupId = (group, clipboardDataElements, newGroupId) => {
104
- const elements = [];
106
+ const updateElementsGroupId = (group, clipboardDataElements, newGroupId, elements) => {
105
107
  const elementsInGroup = clipboardDataElements.filter(item => item.groupId === group.id);
106
108
  if (elementsInGroup.length) {
107
109
  elementsInGroup.forEach(item => {
110
+ const index = clipboardDataElements.map(item => item.id).indexOf(item.id);
108
111
  if (PlaitGroupElement.isGroup(item)) {
109
112
  const newGroup = { ...updateGroupId(item, newGroupId), id: idCreator() };
110
- elements.push(newGroup);
111
- elements.push(...updateElementsGroupId(item, clipboardDataElements, newGroup.id));
113
+ elements.splice(index, 1, newGroup);
114
+ updateElementsGroupId(item, clipboardDataElements, newGroup.id, elements);
112
115
  }
113
116
  else {
114
- elements.push(updateGroupId(item, newGroupId));
117
+ elements.splice(index, 1, updateGroupId(item, newGroupId));
115
118
  }
116
119
  });
117
120
  }
@@ -186,4 +189,4 @@ const updateSiblingElementGroupId = (board, removeGroups) => {
186
189
  }
187
190
  });
188
191
  };
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcGx1Z2lucy93aXRoLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBRVYsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxXQUFXLEVBQ1gseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUVyQix3QkFBd0IsRUFDeEIsMkJBQTJCLEVBRzNCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsVUFBVSxFQUNWLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsd0NBQXdDLEVBQ3hDLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNsQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV4QyxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWlCO0lBQ3ZDLElBQUksZUFBbUMsQ0FBQztJQUN4QyxJQUFJLFlBQWlDLENBQUM7SUFFdEMsTUFBTSxFQUNGLFdBQVcsRUFDWCxXQUFXLEVBQ1gsZUFBZSxFQUNmLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osT0FBTyxFQUNWLEdBQUcsS0FBSyxDQUFDO0lBRVYsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLE9BQWtDLEVBQUUsRUFBRTtRQUN2RCxJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxPQUFPLGNBQWMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtR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QUMsSUFBSSxDQUFBLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNwRSxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ2pGLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1RCxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN6RSxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LFxuICAgIFBsYWl0R3JvdXBFbGVtZW50LFxuICAgIHRvVmlld0JveFBvaW50LFxuICAgIHRvSG9zdFBvaW50LFxuICAgIGdldEhpdEVsZW1lbnRzQnlTZWxlY3Rpb24sXG4gICAgY3JlYXRlR3JvdXBSZWN0YW5nbGVHLFxuICAgIENsaXBib2FyZERhdGEsXG4gICAgZ2V0SGlnaGVzdFNlbGVjdGVkR3JvdXBzLFxuICAgIGdldFNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50cyxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgUGxhaXRHcm91cCxcbiAgICBnZXRTZWxlY3RlZEdyb3VwcyxcbiAgICBTZWxlY3Rpb24sXG4gICAgUG9pbnQsXG4gICAgVHJhbnNmb3JtcyxcbiAgICBpZENyZWF0b3IsXG4gICAgZ2V0R3JvdXBCeUVsZW1lbnQsXG4gICAgZ2V0U2VsZWN0ZWRJc29sYXRlZEVsZW1lbnRzQ2FuQWRkVG9Hcm91cCxcbiAgICBnZXRFbGVtZW50c0luR3JvdXAsXG4gICAgZ2V0UmVjdGFuZ2xlQnlHcm91cCxcbiAgICBHcm91cFRyYW5zZm9ybXNcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlL2dyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc0tleUhvdGtleSB9IGZyb20gJ2lzLWhvdGtleSc7XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoR3JvdXAoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBsZXQgZ3JvdXBSZWN0YW5nbGVHOiBTVkdHRWxlbWVudCB8IG51bGw7XG4gICAgbGV0IHJlbW92ZUdyb3VwczogUGxhaXRHcm91cFtdIHwgbnVsbDtcblxuICAgIGNvbnN0IHtcbiAgICAgICAgZHJhd0VsZW1lbnQsXG4gICAgICAgIHBvaW50ZXJNb3ZlLFxuICAgICAgICBnbG9iYWxQb2ludGVyVXAsXG4gICAgICAgIGluc2VydEZyYWdtZW50LFxuICAgICAgICBnZXREZWxldGVkRnJhZ21lbnQsXG4gICAgICAgIGRlbGV0ZUZyYWdtZW50LFxuICAgICAgICBnZXRSZWxhdGVkRnJhZ21lbnQsXG4gICAgICAgIGdldFJlY3RhbmdsZSxcbiAgICAgICAga2V5RG93blxuICAgIH0gPSBib2FyZDtcblxuICAgIGJvYXJkLmRyYXdFbGVtZW50ID0gKGNvbnRleHQ6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQpID0+IHtcbiAgICAgICAgaWYgKFBsYWl0R3JvdXBFbGVtZW50LmlzR3JvdXAoY29udGV4dC5lbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIEdyb3VwQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkcmF3RWxlbWVudChjb250ZXh0KTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlck1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBncm91cFJlY3RhbmdsZUc/LnJlbW92ZSgpO1xuICAgICAgICBjb25zdCBwb2ludCA9IHRvVmlld0JveFBvaW50KGJvYXJkLCB0b0hvc3RQb2ludChib2FyZCwgZXZlbnQueCwgZXZlbnQueSkpO1xuICAgICAgICBsZXQgc2VsZWN0aW9uOiBTZWxlY3Rpb24gPSB7IGFuY2hvcjogcG9pbnQsIGZvY3VzOiBwb2ludCB9O1xuICAgICAgICBpZiAoYm9hcmQuc2VsZWN0aW9uICYmICFTZWxlY3Rpb24uaXNDb2xsYXBzZWQoYm9hcmQuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgc2VsZWN0aW9uID0gYm9hcmQuc2VsZWN0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGhpdEVsZW1lbnRzID0gZ2V0SGl0RWxlbWVudHNCeVNlbGVjdGlvbihib2FyZCwgc2VsZWN0aW9uKTtcbiAgICAgICAgaWYgKGhpdEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgZ3JvdXBSZWN0YW5nbGVHID0gY3JlYXRlR3JvdXBSZWN0YW5nbGVHKGJvYXJkLCBoaXRFbGVtZW50cyk7XG4gICAgICAgICAgICBncm91cFJlY3RhbmdsZUcgJiYgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdChib2FyZCkuYXBwZW5kKGdyb3VwUmVjdGFuZ2xlRyk7XG4gICAgICAgIH1cblxuICAgICAgICBwb2ludGVyTW92ZShldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGdyb3VwUmVjdGFuZ2xlRz8ucmVtb3ZlKCk7XG4gICAgICAgIGdyb3VwUmVjdGFuZ2xlRyA9IG51bGw7XG4gICAgICAgIGdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdldFJlbGF0ZWRGcmFnbWVudCA9IChlbGVtZW50czogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gZ2V0U2VsZWN0ZWRHcm91cHMoYm9hcmQpO1xuICAgICAgICByZXR1cm4gZ2V0UmVsYXRlZEZyYWdtZW50KFsuLi5lbGVtZW50cywgLi4uZ3JvdXBzXSk7XG4gICAgfTtcblxuICAgIGJvYXJkLmluc2VydEZyYWdtZW50ID0gKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwsIGNsaXBib2FyZERhdGE6IENsaXBib2FyZERhdGEgfCBudWxsLCB0YXJnZXRQb2ludDogUG9pbnQpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdID0gW107XG4gICAgICAgIGlmIChjbGlwYm9hcmREYXRhPy5lbGVtZW50cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cHMgPSBnZXRIaWdoZXN0U2VsZWN0ZWRHcm91cHMoYm9hcmQsIGNsaXBib2FyZERhdGE/LmVsZW1lbnRzKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50cyhib2FyZCwgY2xpcGJvYXJkRGF0YT8uZWxlbWVudHMpO1xuICAgICAgICAgICAgc2VsZWN0ZWRJc29sYXRlZEVsZW1lbnRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaCghaXRlbS5ncm91cElkID8gaXRlbSA6IHVwZGF0ZUdyb3VwSWQoaXRlbSwgdW5kZWZpbmVkKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChncm91cHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0dyb3VwID0geyAuLi51cGRhdGVHcm91cElkKGl0ZW0sIHVuZGVmaW5lZCksIGlkOiBpZENyZWF0b3IoKSB9O1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKG5ld0dyb3VwKTtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaCguLi51cGRhdGVFbGVtZW50c0dyb3VwSWQoaXRlbSwgY2xpcGJvYXJkRGF0YS5lbGVtZW50cyEsIG5ld0dyb3VwLmlkKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjbGlwYm9hcmREYXRhLmVsZW1lbnRzID0gZWxlbWVudHM7XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0RnJhZ21lbnQoZGF0YSwgY2xpcGJvYXJkRGF0YSwgdGFyZ2V0UG9pbnQpO1xuICAgICAgICBjb25zdCBncm91cEVsZW1lbnRzID0gZWxlbWVudHM/LmZpbHRlcih2YWx1ZSA9PiBQbGFpdEdyb3VwRWxlbWVudC5pc0dyb3VwKHZhbHVlKSkgYXMgUGxhaXRFbGVtZW50W107XG4gICAgICAgIGdyb3VwRWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZShib2FyZCwgZWxlbWVudCwgW2JvYXJkLmNoaWxkcmVuLmxlbmd0aF0pO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2V0RGVsZXRlZEZyYWdtZW50ID0gKGRhdGE6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgICAgIGlmIChyZW1vdmVHcm91cHMgJiYgcmVtb3ZlR3JvdXBzLmxlbmd0aCkge1xuICAgICAgICAgICAgZGF0YS5wdXNoKC4uLnJlbW92ZUdyb3Vwcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldERlbGV0ZWRGcmFnbWVudChkYXRhKTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZGVsZXRlRnJhZ21lbnQgPSAoZGF0YTogRGF0YVRyYW5zZmVyIHwgbnVsbCkgPT4ge1xuICAgICAgICByZW1vdmVHcm91cHMgPSBnZXRSZW1vdmVHcm91cHMoYm9hcmQpO1xuICAgICAgICBpZiAocmVtb3ZlR3JvdXBzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHVwZGF0ZVNpYmxpbmdFbGVtZW50R3JvdXBJZChib2FyZCwgcmVtb3ZlR3JvdXBzKTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGVGcmFnbWVudChkYXRhKTtcbiAgICAgICAgcmVtb3ZlR3JvdXBzID0gbnVsbDtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2V0UmVjdGFuZ2xlID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoUGxhaXRHcm91cEVsZW1lbnQuaXNHcm91cChlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIGdldFJlY3RhbmdsZUJ5R3JvdXAoYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmtleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpKSB7XG4gICAgICAgICAgICBpZiAoaXNLZXlIb3RrZXkoJ21vZCtnJywgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBHcm91cFRyYW5zZm9ybXMuYWRkR3JvdXAoYm9hcmQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0tleUhvdGtleSgnbW9kK3NoaWZ0K2cnLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIEdyb3VwVHJhbnNmb3Jtcy5yZW1vdmVHcm91cChib2FyZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGtleURvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59XG5cbmNvbnN0IHVwZGF0ZUdyb3VwSWQgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50LCBncm91cElkPzogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZWxlbWVudCxcbiAgICAgICAgZ3JvdXBJZDogZ3JvdXBJZFxuICAgIH07XG59O1xuXG5jb25zdCB1cGRhdGVFbGVtZW50c0dyb3VwSWQgPSAoZ3JvdXA6IFBsYWl0R3JvdXAsIGNsaXBib2FyZERhdGFFbGVtZW50czogUGxhaXRFbGVtZW50W10sIG5ld0dyb3VwSWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSA9IFtdO1xuICAgIGNvbnN0IGVsZW1lbnRzSW5Hcm91cCA9IGNsaXBib2FyZERhdGFFbGVtZW50cy5maWx0ZXIoaXRlbSA9PiBpdGVtLmdyb3VwSWQgPT09IGdyb3VwLmlkKTtcbiAgICBpZiAoZWxlbWVudHNJbkdyb3VwLmxlbmd0aCkge1xuICAgICAgICBlbGVtZW50c0luR3JvdXAuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmIChQbGFpdEdyb3VwRWxlbWVudC5pc0dyb3VwKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3R3JvdXAgPSB7IC4uLnVwZGF0ZUdyb3VwSWQoaXRlbSwgbmV3R3JvdXBJZCksIGlkOiBpZENyZWF0b3IoKSB9O1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2gobmV3R3JvdXApO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goLi4udXBkYXRlRWxlbWVudHNHcm91cElkKGl0ZW0sIGNsaXBib2FyZERhdGFFbGVtZW50cywgbmV3R3JvdXAuaWQpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaCh1cGRhdGVHcm91cElkKGl0ZW0sIG5ld0dyb3VwSWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50cztcbn07XG5cbmNvbnN0IGdldFJlbW92ZUdyb3VwcyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkR3JvdXBzID0gYm9hcmQuZ2V0UmVsYXRlZEZyYWdtZW50KFtdKSBhcyBQbGFpdEdyb3VwW107XG4gICAgY29uc3QgcmVtb3ZlR3JvdXBzID0gWy4uLnNlbGVjdGVkR3JvdXBzXTtcbiAgICBjb25zdCBoaWdoZXN0U2VsZWN0ZWRHcm91cHMgPSBnZXRIaWdoZXN0U2VsZWN0ZWRHcm91cHMoYm9hcmQpO1xuICAgIGNvbnN0IHNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50c0NhbkFkZFRvR3JvdXAoYm9hcmQpO1xuICAgIGNvbnN0IHJlbW92ZU5vZGVzID0gWy4uLmhpZ2hlc3RTZWxlY3RlZEdyb3VwcywgLi4uc2VsZWN0ZWRJc29sYXRlZEVsZW1lbnRzXTtcbiAgICByZW1vdmVOb2Rlcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBoaXRFbGVtZW50R3JvdXBzID0gZ2V0R3JvdXBCeUVsZW1lbnQoYm9hcmQsIGl0ZW0sIHRydWUpIGFzIFBsYWl0R3JvdXBbXTtcbiAgICAgICAgaWYgKGhpdEVsZW1lbnRHcm91cHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50c0luR3JvdXAgPSBnZXRFbGVtZW50c0luR3JvdXAoYm9hcmQsIGhpdEVsZW1lbnRHcm91cHNbMF0sIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IHNpYmxpbmdFbGVtZW50cyA9IGVsZW1lbnRzSW5Hcm91cC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgZWxlbWVudCA9PiAhWy4uLnJlbW92ZU5vZGVzLCAuLi5yZW1vdmVHcm91cHNdLm1hcChpdGVtID0+IGl0ZW0uaWQpLmluY2x1ZGVzKGVsZW1lbnQuaWQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKHNpYmxpbmdFbGVtZW50cy5sZW5ndGggPT09IDEgfHwgc2libGluZ0VsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmICghcmVtb3ZlR3JvdXBzLmluY2x1ZGVzKGhpdEVsZW1lbnRHcm91cHNbMF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUdyb3Vwcy5wdXNoKGhpdEVsZW1lbnRHcm91cHNbMF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc2libGluZ0VsZW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGl0RWxlbWVudEdyb3Vwcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhYm92ZUdyb3VwID0gZmluZEFib3ZlR3JvdXBXaXRoQW5vdGhlckVsZW1lbnQoYm9hcmQsIGhpdEVsZW1lbnRHcm91cHMuc2xpY2UoMSwgaGl0RWxlbWVudEdyb3Vwcy5sZW5ndGgpLCBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVtb3ZlTm9kZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVtb3ZlR3JvdXBzXG4gICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IGhpdEVsZW1lbnRHcm91cHMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFib3ZlR3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGhpdEVsZW1lbnRHcm91cHMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gYWJvdmVHcm91cC5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBbLi4uaGl0RWxlbWVudEdyb3Vwcy5zbGljZSgxLCBpbmRleCldLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZW1vdmVHcm91cHMuaW5jbHVkZXMoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlR3JvdXBzLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVtb3ZlR3JvdXBzO1xufTtcblxuY29uc3QgZmluZEFib3ZlR3JvdXBXaXRoQW5vdGhlckVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGdyb3VwczogUGxhaXRHcm91cFtdLCBleGNsdWRlTm9kZXM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgbGV0IGdyb3VwOiBQbGFpdEdyb3VwIHwgbnVsbCA9IG51bGw7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZWxlbWVudHNJbkdyb3VwID0gZ2V0RWxlbWVudHNJbkdyb3VwKGJvYXJkLCBncm91cHNbaV0sIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgY29uc3Qgc2libGluZ0VsZW1lbnRzID0gZWxlbWVudHNJbkdyb3VwLmZpbHRlcihlbGVtZW50ID0+ICFleGNsdWRlTm9kZXMubWFwKGl0ZW0gPT4gaXRlbS5pZCkuaW5jbHVkZXMoZWxlbWVudC5pZCkpO1xuICAgICAgICBpZiAoc2libGluZ0VsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGdyb3VwID0gZ3JvdXBzW2ldO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGdyb3VwO1xufTtcblxuY29uc3QgdXBkYXRlU2libGluZ0VsZW1lbnRHcm91cElkID0gKGJvYXJkOiBQbGFpdEJvYXJkLCByZW1vdmVHcm91cHM6IFBsYWl0R3JvdXBbXSkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkSXNvbGF0ZWRFbGVtZW50c0NhbkFkZFRvR3JvdXAoYm9hcmQpO1xuICAgIGNvbnN0IGhpZ2hlc3RTZWxlY3RlZEdyb3VwcyA9IGdldEhpZ2hlc3RTZWxlY3RlZEdyb3Vwcyhib2FyZCk7XG4gICAgY29uc3QgaXNvbGF0ZWRFbGVtZW50c0luR3JvdXAgPSBzZWxlY3RlZElzb2xhdGVkRWxlbWVudHMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5ncm91cElkKTtcbiAgICBbLi4uaGlnaGVzdFNlbGVjdGVkR3JvdXBzLCAuLi5pc29sYXRlZEVsZW1lbnRzSW5Hcm91cF0uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgY29uc3QgaGl0RWxlbWVudEdyb3VwcyA9IGdldEdyb3VwQnlFbGVtZW50KGJvYXJkLCBpdGVtLCB0cnVlKSBhcyBQbGFpdEdyb3VwW107XG4gICAgICAgIGlmIChoaXRFbGVtZW50R3JvdXBzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHNJbkdyb3VwID0gZ2V0RWxlbWVudHNJbkdyb3VwKGJvYXJkLCBoaXRFbGVtZW50R3JvdXBzWzBdLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCBzaWJsaW5nRWxlbWVudHMgPSBlbGVtZW50c0luR3JvdXAuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudC5pZCAhPT0gaXRlbS5pZCk7XG4gICAgICAgICAgICBpZiAoc2libGluZ0VsZW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZUdyb3VwSWRzID0gcmVtb3ZlR3JvdXBzLm1hcChpdGVtPT4gaXRlbS5pZCk7XG4gICAgICAgICAgICAgICAgaWYgKGhpdEVsZW1lbnRHcm91cHMuc29tZShncm91cCA9PiByZW1vdmVHcm91cElkcy5pbmNsdWRlcyhncm91cC5pZCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gaGl0RWxlbWVudEdyb3Vwcy5maW5kKGdyb3VwID0+ICFyZW1vdmVHcm91cElkcy5pbmNsdWRlcyhncm91cC5pZCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgc2libGluZ0VsZW1lbnRzWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlKGJvYXJkLCB7IGdyb3VwSWQ6IGdyb3VwPy5pZCB8fCB1bmRlZmluZWQgfSwgcGF0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG59O1xuIl19
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==
@@ -10,5 +10,5 @@ export * from './utils';
10
10
  export * from './core/plugin-element';
11
11
  export * from './core/image-base.component';
12
12
  export * from './algorithms';
13
- export * from './types/resize';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB1dGlsc1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vZ2VuZXJhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZm9ybXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wbHVnaW5zJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL3BsdWdpbi1lbGVtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9pbWFnZS1iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FsZ29yaXRobXMnXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL3Jlc2l6ZSc7XG4iXX0=
13
+ export * from './types';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdXRpbHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2dlbmVyYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2Zvcm1zJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcGVzJztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2lucyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9wbHVnaW4tZWxlbWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvaW1hZ2UtYmFzZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hbGdvcml0aG1zJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuIl19
@@ -1,4 +1,4 @@
1
1
  export * from './property';
2
2
  export * from './align';
3
3
  export * from './text';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RyYW5zZm9ybXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5JztcbmV4cG9ydCAqIGZyb20gJy4vYWxpZ24nO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0JztcbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RyYW5zZm9ybXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5JztcbmV4cG9ydCAqIGZyb20gJy4vYWxpZ24nO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0JzsiXX0=
@@ -0,0 +1,3 @@
1
+ export * from './resize';
2
+ export * from './rotate';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNpemUnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3RhdGUnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm90YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy90eXBlcy9yb3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0RWxlbWVudCwgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm90YXRlUmVmPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQ+IHtcbiAgICBlbGVtZW50czogVFtdO1xuICAgIHN0YXJ0UG9pbnQ6IFBvaW50O1xuICAgIGFuZ2xlPzogbnVtYmVyO1xufVxuIl19
@@ -1,2 +1,3 @@
1
1
  export * from './resize-handle';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2RyYXdpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcmVzaXplLWhhbmRsZSc7Il19
2
+ export * from './rotate-handle';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2RyYXdpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNpemUtaGFuZGxlJztcbmV4cG9ydCAqIGZyb20gJy4vcm90YXRlLWhhbmRsZSc7XG4iXX0=
@@ -1,8 +1,10 @@
1
- import { PlaitBoard, drawCircle } from '@plait/core';
1
+ import { RESIZE_HANDLE_CLASS_NAME, PlaitBoard, drawCircle } from '@plait/core';
2
2
  import { PRIMARY_COLOR, RESIZE_HANDLE_DIAMETER } from '../../constants/default';
3
3
  export const drawHandle = (board, centerPoint) => {
4
4
  const options = { stroke: '#99999995', strokeWidth: 2, fill: '#FFF', fillStyle: 'solid' };
5
- return drawCircle(PlaitBoard.getRoughSVG(board), centerPoint, RESIZE_HANDLE_DIAMETER, options);
5
+ const handleG = drawCircle(PlaitBoard.getRoughSVG(board), centerPoint, RESIZE_HANDLE_DIAMETER, options);
6
+ handleG.classList.add(RESIZE_HANDLE_CLASS_NAME);
7
+ return handleG;
6
8
  };
7
9
  export function drawFillPrimaryHandle(board, point) {
8
10
  return drawCircle(PlaitBoard.getRoughSVG(board), point, RESIZE_HANDLE_DIAMETER, {
@@ -20,4 +22,4 @@ export function drawPrimaryHandle(board, point) {
20
22
  fillStyle: 'solid'
21
23
  });
22
24
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvZHJhd2luZy9yZXNpemUtaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVMsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVELE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFdBQWtCLEVBQUUsRUFBRTtJQUNoRSxNQUFNLE9BQU8sR0FBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNuRyxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNuRyxDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBaUIsRUFBRSxLQUFZO0lBQ2pFLE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFO1FBQzVFLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLFdBQVcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxFQUFFLEdBQUcsYUFBYSxFQUFFO1FBQ3hCLFNBQVMsRUFBRSxPQUFPO0tBQ3JCLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBaUIsRUFBRSxLQUFZO0lBQzdELE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFO1FBQzVFLE1BQU0sRUFBRSxHQUFHLGFBQWEsRUFBRTtRQUMxQixXQUFXLEVBQUUsQ0FBQztRQUNkLElBQUksRUFBRSxTQUFTO1FBQ2YsU0FBUyxFQUFFLE9BQU87S0FDckIsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50LCBkcmF3Q2lyY2xlIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgUFJJTUFSWV9DT0xPUiwgUkVTSVpFX0hBTkRMRV9ESUFNRVRFUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9kZWZhdWx0JztcblxuZXhwb3J0IGNvbnN0IGRyYXdIYW5kbGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGNlbnRlclBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnM6IE9wdGlvbnMgPSB7IHN0cm9rZTogJyM5OTk5OTk5NScsIHN0cm9rZVdpZHRoOiAyLCBmaWxsOiAnI0ZGRicsIGZpbGxTdHlsZTogJ3NvbGlkJyB9O1xuICAgIHJldHVybiBkcmF3Q2lyY2xlKFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpLCBjZW50ZXJQb2ludCwgUkVTSVpFX0hBTkRMRV9ESUFNRVRFUiwgb3B0aW9ucyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhd0ZpbGxQcmltYXJ5SGFuZGxlKGJvYXJkOiBQbGFpdEJvYXJkLCBwb2ludDogUG9pbnQpIHtcbiAgICByZXR1cm4gZHJhd0NpcmNsZShQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKSwgcG9pbnQsIFJFU0laRV9IQU5ETEVfRElBTUVURVIsIHtcbiAgICAgICAgc3Ryb2tlOiAnI0ZGRkZGRicsXG4gICAgICAgIHN0cm9rZVdpZHRoOiAxLFxuICAgICAgICBmaWxsOiBgJHtQUklNQVJZX0NPTE9SfWAsXG4gICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJ1xuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZHJhd1ByaW1hcnlIYW5kbGUoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBvaW50OiBQb2ludCkge1xuICAgIHJldHVybiBkcmF3Q2lyY2xlKFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpLCBwb2ludCwgUkVTSVpFX0hBTkRMRV9ESUFNRVRFUiwge1xuICAgICAgICBzdHJva2U6IGAke1BSSU1BUllfQ09MT1J9YCxcbiAgICAgICAgc3Ryb2tlV2lkdGg6IDIsXG4gICAgICAgIGZpbGw6IGAjRkZGRkZGYCxcbiAgICAgICAgZmlsbFN0eWxlOiAnc29saWQnXG4gICAgfSk7XG59Il19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvZHJhd2luZy9yZXNpemUtaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQVMsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFdBQWtCLEVBQUUsRUFBRTtJQUNoRSxNQUFNLE9BQU8sR0FBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNuRyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUNoRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBaUIsRUFBRSxLQUFZO0lBQ2pFLE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFO1FBQzVFLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLFdBQVcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxFQUFFLEdBQUcsYUFBYSxFQUFFO1FBQ3hCLFNBQVMsRUFBRSxPQUFPO0tBQ3JCLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBaUIsRUFBRSxLQUFZO0lBQzdELE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFO1FBQzVFLE1BQU0sRUFBRSxHQUFHLGFBQWEsRUFBRTtRQUMxQixXQUFXLEVBQUUsQ0FBQztRQUNkLElBQUksRUFBRSxTQUFTO1FBQ2YsU0FBUyxFQUFFLE9BQU87S0FDckIsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJFU0laRV9IQU5ETEVfQ0xBU1NfTkFNRSwgUGxhaXRCb2FyZCwgUG9pbnQsIGRyYXdDaXJjbGUgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBQUklNQVJZX0NPTE9SLCBSRVNJWkVfSEFORExFX0RJQU1FVEVSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RlZmF1bHQnO1xuXG5leHBvcnQgY29uc3QgZHJhd0hhbmRsZSA9IChib2FyZDogUGxhaXRCb2FyZCwgY2VudGVyUG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgY29uc3Qgb3B0aW9uczogT3B0aW9ucyA9IHsgc3Ryb2tlOiAnIzk5OTk5OTk1Jywgc3Ryb2tlV2lkdGg6IDIsIGZpbGw6ICcjRkZGJywgZmlsbFN0eWxlOiAnc29saWQnIH07XG4gICAgY29uc3QgaGFuZGxlRyA9IGRyYXdDaXJjbGUoUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCksIGNlbnRlclBvaW50LCBSRVNJWkVfSEFORExFX0RJQU1FVEVSLCBvcHRpb25zKTtcbiAgICBoYW5kbGVHLmNsYXNzTGlzdC5hZGQoUkVTSVpFX0hBTkRMRV9DTEFTU19OQU1FKTtcbiAgICByZXR1cm4gaGFuZGxlRztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkcmF3RmlsbFByaW1hcnlIYW5kbGUoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBvaW50OiBQb2ludCkge1xuICAgIHJldHVybiBkcmF3Q2lyY2xlKFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpLCBwb2ludCwgUkVTSVpFX0hBTkRMRV9ESUFNRVRFUiwge1xuICAgICAgICBzdHJva2U6ICcjRkZGRkZGJyxcbiAgICAgICAgc3Ryb2tlV2lkdGg6IDEsXG4gICAgICAgIGZpbGw6IGAke1BSSU1BUllfQ09MT1J9YCxcbiAgICAgICAgZmlsbFN0eWxlOiAnc29saWQnXG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkcmF3UHJpbWFyeUhhbmRsZShib2FyZDogUGxhaXRCb2FyZCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgcmV0dXJuIGRyYXdDaXJjbGUoUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCksIHBvaW50LCBSRVNJWkVfSEFORExFX0RJQU1FVEVSLCB7XG4gICAgICAgIHN0cm9rZTogYCR7UFJJTUFSWV9DT0xPUn1gLFxuICAgICAgICBzdHJva2VXaWR0aDogMixcbiAgICAgICAgZmlsbDogYCNGRkZGRkZgLFxuICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { PlaitBoard, createG, setStrokeLinecap } from '@plait/core';
2
+ import { ROTATE_HANDLE_DISTANCE_TO_ELEMENT, ROTATE_HANDLE_SIZE } from '../../constants';
3
+ const rotateHandleRadius = 6;
4
+ export const drawRotateHandle = (board, rectangle) => {
5
+ const options = { stroke: '#333', strokeWidth: 1, fillStyle: 'solid' };
6
+ const handleCenterPoint = [
7
+ rectangle.x - ROTATE_HANDLE_DISTANCE_TO_ELEMENT - ROTATE_HANDLE_SIZE / 2,
8
+ rectangle.y + rectangle.height + ROTATE_HANDLE_DISTANCE_TO_ELEMENT + ROTATE_HANDLE_SIZE / 2
9
+ ];
10
+ const rs = PlaitBoard.getRoughSVG(board);
11
+ const handleG = createG();
12
+ const line = rs.path(`M ${handleCenterPoint[0] + rotateHandleRadius} ${handleCenterPoint[1]} A ${rotateHandleRadius} ${rotateHandleRadius}, 0, 1, 0, ${handleCenterPoint[0]} ${handleCenterPoint[1] + rotateHandleRadius}`, options);
13
+ const arrow = rs.polygon([
14
+ [handleCenterPoint[0], handleCenterPoint[1] + rotateHandleRadius - 2],
15
+ [handleCenterPoint[0], handleCenterPoint[1] + rotateHandleRadius + 2],
16
+ [handleCenterPoint[0] + 4.5, handleCenterPoint[1] + rotateHandleRadius]
17
+ ], { ...options, fill: '#333' });
18
+ setStrokeLinecap(arrow, 'round');
19
+ handleG.append(line, arrow);
20
+ return handleG;
21
+ };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm90YXRlLWhhbmRsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvZHJhd2luZy9yb3RhdGUtaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQW1CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RixNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQztBQUU3QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsU0FBMEIsRUFBRSxFQUFFO0lBQzlFLE1BQU0sT0FBTyxHQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNoRixNQUFNLGlCQUFpQixHQUFHO1FBQ3RCLFNBQVMsQ0FBQyxDQUFDLEdBQUcsaUNBQWlDLEdBQUcsa0JBQWtCLEdBQUcsQ0FBQztRQUN4RSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsaUNBQWlDLEdBQUcsa0JBQWtCLEdBQUcsQ0FBQztLQUM5RixDQUFDO0lBQ0YsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxNQUFNLE9BQU8sR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUMxQixNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUNoQixLQUFLLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLGtCQUFrQixJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxNQUFNLGtCQUFrQixJQUFJLGtCQUFrQixjQUNoSCxpQkFBaUIsQ0FBQyxDQUFDLENBQ3ZCLElBQUksaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsRUFDL0MsT0FBTyxDQUNWLENBQUM7SUFDRixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsT0FBTyxDQUNwQjtRQUNJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO0tBQzFFLEVBQ0QsRUFBRSxHQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQy9CLENBQUM7SUFDRixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUIsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUmVjdGFuZ2xlQ2xpZW50LCBjcmVhdGVHLCBzZXRTdHJva2VMaW5lY2FwIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgUk9UQVRFX0hBTkRMRV9ESVNUQU5DRV9UT19FTEVNRU5ULCBST1RBVEVfSEFORExFX1NJWkUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5jb25zdCByb3RhdGVIYW5kbGVSYWRpdXMgPSA2O1xuXG5leHBvcnQgY29uc3QgZHJhd1JvdGF0ZUhhbmRsZSA9IChib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpID0+IHtcbiAgICBjb25zdCBvcHRpb25zOiBPcHRpb25zID0geyBzdHJva2U6ICcjMzMzJywgc3Ryb2tlV2lkdGg6IDEsIGZpbGxTdHlsZTogJ3NvbGlkJyB9O1xuICAgIGNvbnN0IGhhbmRsZUNlbnRlclBvaW50ID0gW1xuICAgICAgICByZWN0YW5nbGUueCAtIFJPVEFURV9IQU5ETEVfRElTVEFOQ0VfVE9fRUxFTUVOVCAtIFJPVEFURV9IQU5ETEVfU0laRSAvIDIsXG4gICAgICAgIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCArIFJPVEFURV9IQU5ETEVfRElTVEFOQ0VfVE9fRUxFTUVOVCArIFJPVEFURV9IQU5ETEVfU0laRSAvIDJcbiAgICBdO1xuICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgY29uc3QgaGFuZGxlRyA9IGNyZWF0ZUcoKTtcbiAgICBjb25zdCBsaW5lID0gcnMucGF0aChcbiAgICAgICAgYE0gJHtoYW5kbGVDZW50ZXJQb2ludFswXSArIHJvdGF0ZUhhbmRsZVJhZGl1c30gJHtoYW5kbGVDZW50ZXJQb2ludFsxXX0gQSAke3JvdGF0ZUhhbmRsZVJhZGl1c30gJHtyb3RhdGVIYW5kbGVSYWRpdXN9LCAwLCAxLCAwLCAke1xuICAgICAgICAgICAgaGFuZGxlQ2VudGVyUG9pbnRbMF1cbiAgICAgICAgfSAke2hhbmRsZUNlbnRlclBvaW50WzFdICsgcm90YXRlSGFuZGxlUmFkaXVzfWAsXG4gICAgICAgIG9wdGlvbnNcbiAgICApO1xuICAgIGNvbnN0IGFycm93ID0gcnMucG9seWdvbihcbiAgICAgICAgW1xuICAgICAgICAgICAgW2hhbmRsZUNlbnRlclBvaW50WzBdLCBoYW5kbGVDZW50ZXJQb2ludFsxXSArIHJvdGF0ZUhhbmRsZVJhZGl1cyAtIDJdLFxuICAgICAgICAgICAgW2hhbmRsZUNlbnRlclBvaW50WzBdLCBoYW5kbGVDZW50ZXJQb2ludFsxXSArIHJvdGF0ZUhhbmRsZVJhZGl1cyArIDJdLFxuICAgICAgICAgICAgW2hhbmRsZUNlbnRlclBvaW50WzBdICsgNC41LCBoYW5kbGVDZW50ZXJQb2ludFsxXSArIHJvdGF0ZUhhbmRsZVJhZGl1c11cbiAgICAgICAgXSxcbiAgICAgICAgeyAuLi5vcHRpb25zLCBmaWxsOiAnIzMzMycgfVxuICAgICk7XG4gICAgc2V0U3Ryb2tlTGluZWNhcChhcnJvdywgJ3JvdW5kJyk7XG4gICAgaGFuZGxlRy5hcHBlbmQobGluZSwgYXJyb3cpO1xuICAgIHJldHVybiBoYW5kbGVHO1xufTtcbiJdfQ==