@plait/common 0.52.0 → 0.53.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.
@@ -0,0 +1,18 @@
1
+ import { OnInit, OnDestroy, ViewContainerRef, ChangeDetectorRef } from '@angular/core';
2
+ import { OnContextChanged, PlaitBoard, PlaitGroup, PlaitPluginElementContext } from '@plait/core';
3
+ import { GroupGenerator } from '../generators/group.generator';
4
+ import { ActiveGenerator } from '../generators';
5
+ import { CommonPluginElement } from './plugin-element';
6
+ import * as i0 from "@angular/core";
7
+ export declare class GroupComponent extends CommonPluginElement<PlaitGroup, PlaitBoard> implements OnInit, OnDestroy, OnContextChanged<PlaitGroup, PlaitBoard> {
8
+ private viewContainerRef;
9
+ protected cdr: ChangeDetectorRef;
10
+ constructor(viewContainerRef: ViewContainerRef, cdr: ChangeDetectorRef);
11
+ activeGenerator: ActiveGenerator<PlaitGroup>;
12
+ groupGenerator: GroupGenerator;
13
+ initializeGenerator(): void;
14
+ ngOnInit(): void;
15
+ onContextChanged(value: PlaitPluginElementContext<PlaitGroup, PlaitBoard>, previous: PlaitPluginElementContext<PlaitGroup, PlaitBoard>): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<GroupComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<GroupComponent, "plait-group", never, {}, {}, never, never, true, never>;
18
+ }
@@ -0,0 +1,48 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { getElementsInGroup, getRectangleByGroup, isSelectedElementOrGroup, isSelectionMoving } from '@plait/core';
3
+ import { GroupGenerator } from '../generators/group.generator';
4
+ import { ActiveGenerator } from '../generators';
5
+ import { CommonPluginElement } from './plugin-element';
6
+ import * as i0 from "@angular/core";
7
+ export class GroupComponent extends CommonPluginElement {
8
+ constructor(viewContainerRef, cdr) {
9
+ super(cdr);
10
+ this.viewContainerRef = viewContainerRef;
11
+ this.cdr = cdr;
12
+ }
13
+ initializeGenerator() {
14
+ this.activeGenerator = new ActiveGenerator(this.board, {
15
+ getRectangle: (element) => {
16
+ return getRectangleByGroup(this.board, element);
17
+ },
18
+ getStrokeWidth: () => 0,
19
+ getStrokeOpacity: () => 0,
20
+ hasResizeHandle: () => {
21
+ return !isSelectionMoving(this.board);
22
+ }
23
+ });
24
+ this.groupGenerator = new GroupGenerator(this.board);
25
+ }
26
+ ngOnInit() {
27
+ super.ngOnInit();
28
+ this.initializeGenerator();
29
+ }
30
+ onContextChanged(value, previous) {
31
+ const elementsInGroup = getElementsInGroup(this.board, value.element, false, true);
32
+ const isPartialSelectGroup = elementsInGroup.some(item => isSelectedElementOrGroup(this.board, item)) &&
33
+ !elementsInGroup.every(item => isSelectedElementOrGroup(this.board, item));
34
+ this.groupGenerator.processDrawing(value.element, this.g, isPartialSelectGroup);
35
+ }
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 }); }
37
+ 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
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: GroupComponent, decorators: [{
40
+ type: Component,
41
+ args: [{
42
+ selector: 'plait-group',
43
+ template: ``,
44
+ changeDetection: ChangeDetectionStrategy.OnPush,
45
+ standalone: true
46
+ }]
47
+ }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb3JlL2dyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBELHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBS0gsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ3BCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVF2RCxNQUFNLE9BQU8sY0FBZSxTQUFRLG1CQUEyQztJQUUzRSxZQUFvQixnQkFBa0MsRUFBWSxHQUFzQjtRQUNwRixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFESyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVksUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFFeEYsQ0FBQztJQU1ELG1CQUFtQjtRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQWEsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUMvRCxZQUFZLEVBQUUsQ0FBQyxPQUFtQixFQUFFLEVBQUU7Z0JBQ2xDLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNwRCxDQUFDO1lBQ0QsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdkIsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN6QixlQUFlLEVBQUUsR0FBRyxFQUFFO2dCQUNsQixPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLENBQUM7U0FDSixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQ1osS0FBd0QsRUFDeEQsUUFBMkQ7UUFFM0QsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuRixNQUFNLG9CQUFvQixHQUN0QixlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4RSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDcEYsQ0FBQzs4R0F0Q1EsY0FBYztrR0FBZCxjQUFjLDhGQUpiLEVBQUU7OzJGQUlILGNBQWM7a0JBTjFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQsIE9uRGVzdHJveSwgVmlld0NvbnRhaW5lclJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgT25Db250ZXh0Q2hhbmdlZCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0R3JvdXAsXG4gICAgUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCxcbiAgICBnZXRFbGVtZW50c0luR3JvdXAsXG4gICAgZ2V0UmVjdGFuZ2xlQnlHcm91cCxcbiAgICBpc1NlbGVjdGVkRWxlbWVudE9yR3JvdXAsXG4gICAgaXNTZWxlY3Rpb25Nb3Zpbmdcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgR3JvdXBHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzL2dyb3VwLmdlbmVyYXRvcic7XG5pbXBvcnQgeyBBY3RpdmVHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzJztcbmltcG9ydCB7IENvbW1vblBsdWdpbkVsZW1lbnQgfSBmcm9tICcuL3BsdWdpbi1lbGVtZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwbGFpdC1ncm91cCcsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgR3JvdXBDb21wb25lbnQgZXh0ZW5kcyBDb21tb25QbHVnaW5FbGVtZW50PFBsYWl0R3JvdXAsIFBsYWl0Qm9hcmQ+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25Db250ZXh0Q2hhbmdlZDxQbGFpdEdyb3VwLCBQbGFpdEJvYXJkPiB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICBzdXBlcihjZHIpO1xuICAgIH1cblxuICAgIGFjdGl2ZUdlbmVyYXRvciE6IEFjdGl2ZUdlbmVyYXRvcjxQbGFpdEdyb3VwPjtcblxuICAgIGdyb3VwR2VuZXJhdG9yITogR3JvdXBHZW5lcmF0b3I7XG5cbiAgICBpbml0aWFsaXplR2VuZXJhdG9yKCkge1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBBY3RpdmVHZW5lcmF0b3I8UGxhaXRHcm91cD4odGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0UmVjdGFuZ2xlOiAoZWxlbWVudDogUGxhaXRHcm91cCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRSZWN0YW5nbGVCeUdyb3VwKHRoaXMuYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFN0cm9rZVdpZHRoOiAoKSA9PiAwLFxuICAgICAgICAgICAgZ2V0U3Ryb2tlT3BhY2l0eTogKCkgPT4gMCxcbiAgICAgICAgICAgIGhhc1Jlc2l6ZUhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmdyb3VwR2VuZXJhdG9yID0gbmV3IEdyb3VwR2VuZXJhdG9yKHRoaXMuYm9hcmQpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2VkKFxuICAgICAgICB2YWx1ZTogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxQbGFpdEdyb3VwLCBQbGFpdEJvYXJkPixcbiAgICAgICAgcHJldmlvdXM6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRHcm91cCwgUGxhaXRCb2FyZD5cbiAgICApIHtcbiAgICAgICAgY29uc3QgZWxlbWVudHNJbkdyb3VwID0gZ2V0RWxlbWVudHNJbkdyb3VwKHRoaXMuYm9hcmQsIHZhbHVlLmVsZW1lbnQsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgY29uc3QgaXNQYXJ0aWFsU2VsZWN0R3JvdXAgPVxuICAgICAgICAgICAgZWxlbWVudHNJbkdyb3VwLnNvbWUoaXRlbSA9PiBpc1NlbGVjdGVkRWxlbWVudE9yR3JvdXAodGhpcy5ib2FyZCwgaXRlbSkpICYmXG4gICAgICAgICAgICAhZWxlbWVudHNJbkdyb3VwLmV2ZXJ5KGl0ZW0gPT4gaXNTZWxlY3RlZEVsZW1lbnRPckdyb3VwKHRoaXMuYm9hcmQsIGl0ZW0pKTtcbiAgICAgICAgdGhpcy5ncm91cEdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh2YWx1ZS5lbGVtZW50LCB0aGlzLmcsIGlzUGFydGlhbFNlbGVjdEdyb3VwKTtcbiAgICB9XG59XG4iXX0=
@@ -59,7 +59,7 @@ export class ImageBaseComponent {
59
59
  drawFocus() {
60
60
  if (this.initialized) {
61
61
  const activeG = PlaitBoard.getElementActiveHost(this.board);
62
- this.activeGenerator.processDrawing({}, activeG, { selected: this._isFocus });
62
+ this.activeGenerator.processDrawing(this.element, activeG, { selected: this._isFocus });
63
63
  }
64
64
  }
65
65
  ngOnDestroy() {
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
90
90
  }], hasResizeHandle: [{
91
91
  type: Input
92
92
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvcmUvaW1hZ2UtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWMsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFpQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNySSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVFoRCxNQUFNLE9BQWdCLGtCQUFrQjtJQVlwQyxJQUNJLFNBQVMsQ0FBQyxLQUFzQjtRQUNoQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBS0QsSUFDSSxPQUFPLENBQUMsS0FBYztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBUUQsWUFBc0IsVUFBbUMsRUFBUyxHQUFzQjtRQUFsRSxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBekN4RixnQkFBVyxHQUFHLEtBQUssQ0FBQztJQXlDdUUsQ0FBQztJQUU1RixRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ25ELGNBQWMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDckUsT0FBTyxtQkFBbUIsQ0FBQztnQkFDL0IsQ0FBQztxQkFBTSxDQUFDO29CQUNKLE9BQU8sbUJBQW1CLENBQUM7Z0JBQy9CLENBQUM7WUFDTCxDQUFDO1lBQ0QsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO2dCQUNuQixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoRyxPQUFPLENBQUMsQ0FBQztnQkFDYixDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxHQUFHLENBQUM7Z0JBQ2YsQ0FBQztZQUNMLENBQUM7WUFDRCxZQUFZLEVBQUUsR0FBRyxFQUFFO2dCQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9CLENBQUM7WUFDRCxlQUFlLEVBQUUsR0FBRyxFQUFFO2dCQUNsQixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztZQUN6RyxDQUFDO1NBQ0osQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLEVBQWtCLEVBQUUsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xHLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7OEdBeEZpQixrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFMdkMsU0FBUzttQkFBQztvQkFDUCxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLHVCQUF1QjtxQkFDakM7aUJBQ0o7K0dBV0csT0FBTztzQkFETixLQUFLO2dCQUlGLFNBQVM7c0JBRFosS0FBSztnQkFZTixLQUFLO3NCQURKLEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLO2dCQWdCRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFDVElWRV9TVFJPS0VfV0lEVEgsIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUmVjdGFuZ2xlQ2xpZW50LCBnZXRTZWxlY3RlZEVsZW1lbnRzLCBpc1NlbGVjdGlvbk1vdmluZyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEFjdGl2ZUdlbmVyYXRvciB9IGZyb20gJy4uL2dlbmVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tbW9uSW1hZ2VJdGVtIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAncGxhaXQtaW1hZ2UtY29udGFpbmVyJ1xuICAgIH1cbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW1hZ2VCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIF9pbWFnZUl0ZW0hOiBDb21tb25JbWFnZUl0ZW07XG5cbiAgICBfaXNGb2N1cyE6IGJvb2xlYW47XG5cbiAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgYWN0aXZlR2VuZXJhdG9yITogQWN0aXZlR2VuZXJhdG9yO1xuXG4gICAgQElucHV0KClcbiAgICBlbGVtZW50ITogUGxhaXRFbGVtZW50O1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgaW1hZ2VJdGVtKHZhbHVlOiBDb21tb25JbWFnZUl0ZW0pIHtcbiAgICAgICAgdGhpcy5hZnRlckltYWdlSXRlbUNoYW5nZSh0aGlzLl9pbWFnZUl0ZW0sIHZhbHVlKTtcbiAgICAgICAgdGhpcy5faW1hZ2VJdGVtID0gdmFsdWU7XG4gICAgICAgIHRoaXMuZHJhd0ZvY3VzKCk7XG4gICAgfVxuXG4gICAgZ2V0IGltYWdlSXRlbSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ltYWdlSXRlbTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGJvYXJkITogUGxhaXRCb2FyZDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGlzRm9jdXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNGb2N1cyA9IHZhbHVlO1xuICAgICAgICB0aGlzLmRyYXdGb2N1cygpO1xuICAgIH1cblxuICAgIGdldCBpc0ZvY3VzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNGb2N1cztcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGFic3RyYWN0IGFmdGVySW1hZ2VJdGVtQ2hhbmdlKHByZXZpb3VzOiBDb21tb25JbWFnZUl0ZW0sIGN1cnJlbnQ6IENvbW1vbkltYWdlSXRlbSk6IHZvaWQ7XG5cbiAgICBASW5wdXQoKSBnZXRSZWN0YW5nbGUhOiAoKSA9PiBSZWN0YW5nbGVDbGllbnQ7XG5cbiAgICBASW5wdXQoKSBoYXNSZXNpemVIYW5kbGUhOiAoKSA9PiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBBY3RpdmVHZW5lcmF0b3IodGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoIShzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTdHJva2VPcGFjaXR5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpIHx8ICFzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRSZWN0YW5nbGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoYXNSZXNpemVIYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICFpc1NlbGVjdGlvbk1vdmluZyh0aGlzLmJvYXJkKSkgfHwgIXNlbGVjdGVkRWxlbWVudHMubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgZHJhd0ZvY3VzKCkge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlRyA9IFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh7fSBhcyBQbGFpdEVsZW1lbnQsIGFjdGl2ZUcsIHsgc2VsZWN0ZWQ6IHRoaXMuX2lzRm9jdXMgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlR2VuZXJhdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvcmUvaW1hZ2UtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWMsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFpQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNySSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVFoRCxNQUFNLE9BQWdCLGtCQUFrQjtJQVlwQyxJQUNJLFNBQVMsQ0FBQyxLQUFzQjtRQUNoQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBS0QsSUFDSSxPQUFPLENBQUMsS0FBYztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBUUQsWUFBc0IsVUFBbUMsRUFBUyxHQUFzQjtRQUFsRSxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBekN4RixnQkFBVyxHQUFHLEtBQUssQ0FBQztJQXlDdUUsQ0FBQztJQUU1RixRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ25ELGNBQWMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDckUsT0FBTyxtQkFBbUIsQ0FBQztnQkFDL0IsQ0FBQztxQkFBTSxDQUFDO29CQUNKLE9BQU8sbUJBQW1CLENBQUM7Z0JBQy9CLENBQUM7WUFDTCxDQUFDO1lBQ0QsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO2dCQUNuQixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoRyxPQUFPLENBQUMsQ0FBQztnQkFDYixDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxHQUFHLENBQUM7Z0JBQ2YsQ0FBQztZQUNMLENBQUM7WUFDRCxZQUFZLEVBQUUsR0FBRyxFQUFFO2dCQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9CLENBQUM7WUFDRCxlQUFlLEVBQUUsR0FBRyxFQUFFO2dCQUNsQixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztZQUN6RyxDQUFDO1NBQ0osQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVM7UUFDTCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUF1QixFQUFFLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1RyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDTCxDQUFDOzhHQXhGaUIsa0JBQWtCO2tHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBTHZDLFNBQVM7bUJBQUM7b0JBQ1AsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSx1QkFBdUI7cUJBQ2pDO2lCQUNKOytHQVdHLE9BQU87c0JBRE4sS0FBSztnQkFJRixTQUFTO3NCQURaLEtBQUs7Z0JBWU4sS0FBSztzQkFESixLQUFLO2dCQUlGLE9BQU87c0JBRFYsS0FBSztnQkFnQkcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBQ1RJVkVfU1RST0tFX1dJRFRILCBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFJlY3RhbmdsZUNsaWVudCwgZ2V0U2VsZWN0ZWRFbGVtZW50cywgaXNTZWxlY3Rpb25Nb3ZpbmcgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmVHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzJztcbmltcG9ydCB7IENvbW1vbkltYWdlSXRlbSB9IGZyb20gJy4uL3V0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3BsYWl0LWltYWdlLWNvbnRhaW5lcidcbiAgICB9XG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEltYWdlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBfaW1hZ2VJdGVtITogQ29tbW9uSW1hZ2VJdGVtO1xuXG4gICAgX2lzRm9jdXMhOiBib29sZWFuO1xuXG4gICAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIGFjdGl2ZUdlbmVyYXRvciE6IEFjdGl2ZUdlbmVyYXRvcjtcblxuICAgIEBJbnB1dCgpXG4gICAgZWxlbWVudCE6IFBsYWl0RWxlbWVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGltYWdlSXRlbSh2YWx1ZTogQ29tbW9uSW1hZ2VJdGVtKSB7XG4gICAgICAgIHRoaXMuYWZ0ZXJJbWFnZUl0ZW1DaGFuZ2UodGhpcy5faW1hZ2VJdGVtLCB2YWx1ZSk7XG4gICAgICAgIHRoaXMuX2ltYWdlSXRlbSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmRyYXdGb2N1cygpO1xuICAgIH1cblxuICAgIGdldCBpbWFnZUl0ZW0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbWFnZUl0ZW07XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBib2FyZCE6IFBsYWl0Qm9hcmQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBpc0ZvY3VzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzRm9jdXMgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5kcmF3Rm9jdXMoKTtcbiAgICB9XG5cbiAgICBnZXQgaXNGb2N1cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRm9jdXM7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBhYnN0cmFjdCBhZnRlckltYWdlSXRlbUNoYW5nZShwcmV2aW91czogQ29tbW9uSW1hZ2VJdGVtLCBjdXJyZW50OiBDb21tb25JbWFnZUl0ZW0pOiB2b2lkO1xuXG4gICAgQElucHV0KCkgZ2V0UmVjdGFuZ2xlITogKCkgPT4gUmVjdGFuZ2xlQ2xpZW50O1xuXG4gICAgQElucHV0KCkgaGFzUmVzaXplSGFuZGxlITogKCkgPT4gYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IgPSBuZXcgQWN0aXZlR2VuZXJhdG9yKHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIGdldFN0cm9rZVdpZHRoOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKCEoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgIWlzU2VsZWN0aW9uTW92aW5nKHRoaXMuYm9hcmQpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQUNUSVZFX1NUUk9LRV9XSURUSDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gQUNUSVZFX1NUUk9LRV9XSURUSDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U3Ryb2tlT3BhY2l0eTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKHRoaXMuYm9hcmQpO1xuICAgICAgICAgICAgICAgIGlmICgoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgIWlzU2VsZWN0aW9uTW92aW5nKHRoaXMuYm9hcmQpKSB8fCAhc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDAuNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0UmVjdGFuZ2xlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVjdGFuZ2xlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGFzUmVzaXplSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpIHx8ICFzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGRyYXdGb2N1cygpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUcgPSBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50IGFzIFBsYWl0RWxlbWVudCwgYWN0aXZlRywgeyBzZWxlY3RlZDogdGhpcy5faXNGb2N1cyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVHZW5lcmF0b3IpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { ACTIVE_STROKE_WIDTH, drawRectangle, getRectangleByGroup } from '@plait/core';
2
+ import { Generator } from './generator';
3
+ export class GroupGenerator extends Generator {
4
+ canDraw(element) {
5
+ return true;
6
+ }
7
+ draw(element, partialSelected) {
8
+ const options = {
9
+ stroke: '',
10
+ strokeWidth: ACTIVE_STROKE_WIDTH,
11
+ strokeLineDash: [5]
12
+ };
13
+ let rectangle = { x: 0, y: 0, width: 0, height: 0 };
14
+ if (partialSelected) {
15
+ options.stroke = '#999';
16
+ rectangle = getRectangleByGroup(this.board, element, true);
17
+ }
18
+ return drawRectangle(this.board, rectangle, options);
19
+ }
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3JzL2dyb3VwLmdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQStCLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXhDLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBcUI7SUFDckQsT0FBTyxDQUFDLE9BQW1CO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBbUIsRUFBRSxlQUF3QjtRQUM5QyxNQUFNLE9BQU8sR0FBWTtZQUNyQixNQUFNLEVBQUUsRUFBRTtZQUNWLFdBQVcsRUFBRSxtQkFBbUI7WUFDaEMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RCLENBQUM7UUFDRixJQUFJLFNBQVMsR0FBb0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckUsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUN4QixTQUFTLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFDVElWRV9TVFJPS0VfV0lEVEgsIFBsYWl0R3JvdXAsIFJlY3RhbmdsZUNsaWVudCwgZHJhd1JlY3RhbmdsZSwgZ2V0UmVjdGFuZ2xlQnlHcm91cCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IEdlbmVyYXRvciB9IGZyb20gJy4vZ2VuZXJhdG9yJztcblxuZXhwb3J0IGNsYXNzIEdyb3VwR2VuZXJhdG9yIGV4dGVuZHMgR2VuZXJhdG9yPFBsYWl0R3JvdXA+IHtcbiAgICBjYW5EcmF3KGVsZW1lbnQ6IFBsYWl0R3JvdXApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50OiBQbGFpdEdyb3VwLCBwYXJ0aWFsU2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIHN0cm9rZTogJycsXG4gICAgICAgICAgICBzdHJva2VXaWR0aDogQUNUSVZFX1NUUk9LRV9XSURUSCxcbiAgICAgICAgICAgIHN0cm9rZUxpbmVEYXNoOiBbNV1cbiAgICAgICAgfTtcbiAgICAgICAgbGV0IHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50ID0geyB4OiAwLCB5OiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwIH07XG4gICAgICAgIGlmIChwYXJ0aWFsU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIG9wdGlvbnMuc3Ryb2tlID0gJyM5OTknO1xuICAgICAgICAgICAgcmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlHcm91cCh0aGlzLmJvYXJkLCBlbGVtZW50LCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZHJhd1JlY3RhbmdsZSh0aGlzLmJvYXJkLCByZWN0YW5nbGUsIG9wdGlvbnMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { createForeignObject, createG, updateForeignObject } from '@plait/core';
1
+ import { RectangleClient, createForeignObject, createG, setAngleForG, updateForeignObject } from '@plait/core';
2
2
  import { Generator } from './generator';
3
3
  import { WithCommonPluginKey } from '../constants';
4
4
  export class ImageGenerator extends Generator {
@@ -34,12 +34,16 @@ export class ImageGenerator extends Generator {
34
34
  updateImage(nodeG, previous, current) {
35
35
  if (previous !== current && this.componentRef) {
36
36
  this.componentRef.instance.imageItem = this.options.getImageItem(current);
37
+ this.componentRef.instance.element = current;
37
38
  this.componentRef.instance.getRectangle = () => {
38
39
  return this.options.getRectangle(current);
39
40
  };
40
41
  }
41
42
  const currentForeignObject = this.options.getRectangle(current);
42
43
  updateForeignObject(this.g, currentForeignObject.width, currentForeignObject.height, currentForeignObject.x, currentForeignObject.y);
44
+ if (currentForeignObject && current.angle) {
45
+ setAngleForG(this.g, RectangleClient.getCenterPoint(currentForeignObject), current.angle);
46
+ }
43
47
  // solve image lose on move node
44
48
  if (this.foreignObject.children.length === 0) {
45
49
  this.foreignObject.append(this.componentRef.instance.nativeElement);
@@ -51,4 +55,4 @@ export class ImageGenerator extends Generator {
51
55
  this.componentRef?.destroy();
52
56
  }
53
57
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3JzL2ltYWdlLmdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBS0gsbUJBQW1CLEVBQ25CLE9BQU8sRUFDUCxtQkFBbUIsRUFDdEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxhQUFhLENBQUM7QUFJMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBVW5ELE1BQU0sT0FBTyxjQUFzRCxTQUFRLFNBSTFFO0lBS0csWUFBbUIsS0FBaUIsRUFBUyxPQUFpQztRQUMxRSxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRFAsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQTBCO0lBRTlFLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBVSxFQUFFLElBQXNCO1FBQ3RDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFJLENBQUMsT0FBVSxFQUFFLGdCQUFrQztRQUMvQyxNQUFNLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxhQUFhLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0IsTUFBTSxhQUFhLEdBQUksSUFBSSxDQUFDLEtBQTJCLENBQUMsZ0JBQWdCLENBQTBCLG1CQUFtQixDQUFDO2FBQ2pILGtCQUFrQixDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRTlDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxHQUFHLEVBQUU7WUFDM0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckUsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWtCLEVBQUUsUUFBVyxFQUFFLE9BQVU7UUFDbkQsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLFlBQWEsQ0FBQyxRQUFRLENBQUMsWUFBWSxHQUFHLEdBQUcsRUFBRTtnQkFDNUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QyxDQUFDLENBQUM7UUFDTixDQUFDO1FBQ0QsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxtQkFBbUIsQ0FDZixJQUFJLENBQUMsQ0FBRSxFQUNQLG9CQUFvQixDQUFDLEtBQUssRUFDMUIsb0JBQW9CLENBQUMsTUFBTSxFQUMzQixvQkFBb0IsQ0FBQyxDQUFDLEVBQ3RCLG9CQUFvQixDQUFDLENBQUMsQ0FDekIsQ0FBQztRQUNGLGdDQUFnQztRQUNoQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPO1FBQ0gsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBQbGFpdE9wdGlvbnNCb2FyZCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgY3JlYXRlRm9yZWlnbk9iamVjdCxcbiAgICBjcmVhdGVHLFxuICAgIHVwZGF0ZUZvcmVpZ25PYmplY3Rcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgR2VuZXJhdG9yLCBHZW5lcmF0b3JPcHRpb25zIH0gZnJvbSAnLi9nZW5lcmF0b3InO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWFnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlL2ltYWdlLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbkltYWdlSXRlbSwgV2l0aENvbW1vblBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBXaXRoQ29tbW9uUGx1Z2luS2V5IH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcGVEYXRhIHtcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlR2VuZXJhdG9yT3B0aW9uczxUPiB7XG4gICAgZ2V0UmVjdGFuZ2xlOiAoZWxlbWVudDogVCkgPT4gUmVjdGFuZ2xlQ2xpZW50O1xuICAgIGdldEltYWdlSXRlbTogKGVsZW1lbnQ6IFQpID0+IENvbW1vbkltYWdlSXRlbTtcbn1cblxuZXhwb3J0IGNsYXNzIEltYWdlR2VuZXJhdG9yPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQ+IGV4dGVuZHMgR2VuZXJhdG9yPFxuICAgIFQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBJbWFnZUdlbmVyYXRvck9wdGlvbnM8VD4gJiBHZW5lcmF0b3JPcHRpb25zXG4+IHtcbiAgICBmb3JlaWduT2JqZWN0ITogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ7XG5cbiAgICBjb21wb25lbnRSZWYhOiBDb21wb25lbnRSZWY8SW1hZ2VCYXNlQ29tcG9uZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBib2FyZDogUGxhaXRCb2FyZCwgcHVibGljIG9wdGlvbnM6IEltYWdlR2VuZXJhdG9yT3B0aW9uczxUPikge1xuICAgICAgICBzdXBlcihib2FyZCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY2FuRHJhdyhlbGVtZW50OiBULCBkYXRhOiBWaWV3Q29udGFpbmVyUmVmKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMub3B0aW9ucy5nZXRJbWFnZUl0ZW0oZWxlbWVudCk7XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50OiBULCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKTogU1ZHR0VsZW1lbnQge1xuICAgICAgICBjb25zdCBnID0gY3JlYXRlRygpO1xuICAgICAgICBjb25zdCBmb3JlaWduUmVjdGFuZ2xlID0gdGhpcy5vcHRpb25zLmdldFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICAgICAgdGhpcy5mb3JlaWduT2JqZWN0ID0gY3JlYXRlRm9yZWlnbk9iamVjdChmb3JlaWduUmVjdGFuZ2xlLngsIGZvcmVpZ25SZWN0YW5nbGUueSwgZm9yZWlnblJlY3RhbmdsZS53aWR0aCwgZm9yZWlnblJlY3RhbmdsZS5oZWlnaHQpO1xuICAgICAgICBnLmFwcGVuZCh0aGlzLmZvcmVpZ25PYmplY3QpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRUeXBlID0gKHRoaXMuYm9hcmQgYXMgUGxhaXRPcHRpb25zQm9hcmQpLmdldFBsdWdpbk9wdGlvbnM8V2l0aENvbW1vblBsdWdpbk9wdGlvbnM+KFdpdGhDb21tb25QbHVnaW5LZXkpXG4gICAgICAgICAgICAuaW1hZ2VDb21wb25lbnRUeXBlO1xuICAgICAgICBpZiAoIWNvbXBvbmVudFR5cGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudCBJbWFnZUJhc2VDb21wb25lbnQgZXJyb3IuJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRUeXBlKTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuYm9hcmQgPSB0aGlzLmJvYXJkO1xuXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmltYWdlSXRlbSA9IHRoaXMub3B0aW9ucy5nZXRJbWFnZUl0ZW0oZWxlbWVudCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5nZXRSZWN0YW5nbGUgPSAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLmZvcmVpZ25PYmplY3QuYXBwZW5kKHRoaXMuY29tcG9uZW50UmVmIS5pbnN0YW5jZS5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIGc7XG4gICAgfVxuXG4gICAgdXBkYXRlSW1hZ2Uobm9kZUc6IFNWR0dFbGVtZW50LCBwcmV2aW91czogVCwgY3VycmVudDogVCkge1xuICAgICAgICBpZiAocHJldmlvdXMgIT09IGN1cnJlbnQgJiYgdGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmltYWdlSXRlbSA9IHRoaXMub3B0aW9ucy5nZXRJbWFnZUl0ZW0oY3VycmVudCk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiEuaW5zdGFuY2UuZ2V0UmVjdGFuZ2xlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKGN1cnJlbnQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50Rm9yZWlnbk9iamVjdCA9IHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoY3VycmVudCk7XG4gICAgICAgIHVwZGF0ZUZvcmVpZ25PYmplY3QoXG4gICAgICAgICAgICB0aGlzLmchLFxuICAgICAgICAgICAgY3VycmVudEZvcmVpZ25PYmplY3Qud2lkdGgsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC5oZWlnaHQsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC54LFxuICAgICAgICAgICAgY3VycmVudEZvcmVpZ25PYmplY3QueVxuICAgICAgICApO1xuICAgICAgICAvLyBzb2x2ZSBpbWFnZSBsb3NlIG9uIG1vdmUgbm9kZVxuICAgICAgICBpZiAodGhpcy5mb3JlaWduT2JqZWN0LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5mb3JlaWduT2JqZWN0LmFwcGVuZCh0aGlzLmNvbXBvbmVudFJlZiEuaW5zdGFuY2UubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmPy5kZXN0cm95KCk7XG4gICAgfVxufVxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3JzL2ltYWdlLmdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUgsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsWUFBWSxFQUNaLG1CQUFtQixFQUN0QixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLGFBQWEsQ0FBQztBQUkxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFVbkQsTUFBTSxPQUFPLGNBQXNELFNBQVEsU0FJMUU7SUFLRyxZQUFtQixLQUFpQixFQUFTLE9BQWlDO1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFEUCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7SUFFOUUsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFVLEVBQUUsSUFBc0I7UUFDdEMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFVLEVBQUUsZ0JBQWtDO1FBQy9DLE1BQU0sQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FB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WUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2pDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgUGxhaXRPcHRpb25zQm9hcmQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGNyZWF0ZUZvcmVpZ25PYmplY3QsXG4gICAgY3JlYXRlRyxcbiAgICBzZXRBbmdsZUZvckcsXG4gICAgdXBkYXRlRm9yZWlnbk9iamVjdFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBHZW5lcmF0b3IsIEdlbmVyYXRvck9wdGlvbnMgfSBmcm9tICcuL2dlbmVyYXRvcic7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEltYWdlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUvaW1hZ2UtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uSW1hZ2VJdGVtLCBXaXRoQ29tbW9uUGx1Z2luT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFdpdGhDb21tb25QbHVnaW5LZXkgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuZXhwb3J0IGludGVyZmFjZSBTaGFwZURhdGEge1xuICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VHZW5lcmF0b3JPcHRpb25zPFQ+IHtcbiAgICBnZXRSZWN0YW5nbGU6IChlbGVtZW50OiBUKSA9PiBSZWN0YW5nbGVDbGllbnQ7XG4gICAgZ2V0SW1hZ2VJdGVtOiAoZWxlbWVudDogVCkgPT4gQ29tbW9uSW1hZ2VJdGVtO1xufVxuXG5leHBvcnQgY2xhc3MgSW1hZ2VHZW5lcmF0b3I8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudD4gZXh0ZW5kcyBHZW5lcmF0b3I8XG4gICAgVCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIEltYWdlR2VuZXJhdG9yT3B0aW9uczxUPiAmIEdlbmVyYXRvck9wdGlvbnNcbj4ge1xuICAgIGZvcmVpZ25PYmplY3QhOiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDtcblxuICAgIGNvbXBvbmVudFJlZiE6IENvbXBvbmVudFJlZjxJbWFnZUJhc2VDb21wb25lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGJvYXJkOiBQbGFpdEJvYXJkLCBwdWJsaWMgb3B0aW9uczogSW1hZ2VHZW5lcmF0b3JPcHRpb25zPFQ+KSB7XG4gICAgICAgIHN1cGVyKGJvYXJkLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBjYW5EcmF3KGVsZW1lbnQ6IFQsIGRhdGE6IFZpZXdDb250YWluZXJSZWYpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5vcHRpb25zLmdldEltYWdlSXRlbShlbGVtZW50KTtcbiAgICB9XG5cbiAgICBkcmF3KGVsZW1lbnQ6IFQsIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpOiBTVkdHRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGNvbnN0IGZvcmVpZ25SZWN0YW5nbGUgPSB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLmZvcmVpZ25PYmplY3QgPSBjcmVhdGVGb3JlaWduT2JqZWN0KGZvcmVpZ25SZWN0YW5nbGUueCwgZm9yZWlnblJlY3RhbmdsZS55LCBmb3JlaWduUmVjdGFuZ2xlLndpZHRoLCBmb3JlaWduUmVjdGFuZ2xlLmhlaWdodCk7XG4gICAgICAgIGcuYXBwZW5kKHRoaXMuZm9yZWlnbk9iamVjdCk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGUgPSAodGhpcy5ib2FyZCBhcyBQbGFpdE9wdGlvbnNCb2FyZCkuZ2V0UGx1Z2luT3B0aW9uczxXaXRoQ29tbW9uUGx1Z2luT3B0aW9ucz4oV2l0aENvbW1vblBsdWdpbktleSlcbiAgICAgICAgICAgIC5pbWFnZUNvbXBvbmVudFR5cGU7XG4gICAgICAgIGlmICghY29tcG9uZW50VHlwZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50IEltYWdlQmFzZUNvbXBvbmVudCBlcnJvci4nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFR5cGUpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5ib2FyZCA9IHRoaXMuYm9hcmQ7XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuaW1hZ2VJdGVtID0gdGhpcy5vcHRpb25zLmdldEltYWdlSXRlbShlbGVtZW50KTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmdldFJlY3RhbmdsZSA9ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMuZm9yZWlnbk9iamVjdC5hcHBlbmQodGhpcy5jb21wb25lbnRSZWYhLmluc3RhbmNlLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gZztcbiAgICB9XG5cbiAgICB1cGRhdGVJbWFnZShub2RlRzogU1ZHR0VsZW1lbnQsIHByZXZpb3VzOiBULCBjdXJyZW50OiBUKSB7XG4gICAgICAgIGlmIChwcmV2aW91cyAhPT0gY3VycmVudCAmJiB0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuaW1hZ2VJdGVtID0gdGhpcy5vcHRpb25zLmdldEltYWdlSXRlbShjdXJyZW50KTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmVsZW1lbnQgPSBjdXJyZW50O1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYhLmluc3RhbmNlLmdldFJlY3RhbmdsZSA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldFJlY3RhbmdsZShjdXJyZW50KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudEZvcmVpZ25PYmplY3QgPSB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKGN1cnJlbnQpO1xuICAgICAgICB1cGRhdGVGb3JlaWduT2JqZWN0KFxuICAgICAgICAgICAgdGhpcy5nISxcbiAgICAgICAgICAgIGN1cnJlbnRGb3JlaWduT2JqZWN0LndpZHRoLFxuICAgICAgICAgICAgY3VycmVudEZvcmVpZ25PYmplY3QuaGVpZ2h0LFxuICAgICAgICAgICAgY3VycmVudEZvcmVpZ25PYmplY3QueCxcbiAgICAgICAgICAgIGN1cnJlbnRGb3JlaWduT2JqZWN0LnlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGN1cnJlbnRGb3JlaWduT2JqZWN0ICYmIGN1cnJlbnQuYW5nbGUpIHtcbiAgICAgICAgICAgIHNldEFuZ2xlRm9yRyh0aGlzLmchLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoY3VycmVudEZvcmVpZ25PYmplY3QpLCBjdXJyZW50LmFuZ2xlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzb2x2ZSBpbWFnZSBsb3NlIG9uIG1vdmUgbm9kZVxuICAgICAgICBpZiAodGhpcy5mb3JlaWduT2JqZWN0LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5mb3JlaWduT2JqZWN0LmFwcGVuZCh0aGlzLmNvbXBvbmVudFJlZiEuaW5zdGFuY2UubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmPy5kZXN0cm95KCk7XG4gICAgfVxufVxuIl19
@@ -1,3 +1,4 @@
1
1
  export * from './with-resize';
2
2
  export * from './text-options';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BsdWdpbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vd2l0aC1yZXNpemUnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0LW9wdGlvbnMnO1xuIl19
3
+ export * from './with-group';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BsdWdpbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vd2l0aC1yZXNpemUnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0LW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLWdyb3VwJzsiXX0=
@@ -0,0 +1,189 @@
1
+ import { PlaitBoard, PlaitGroupElement, toViewBoxPoint, toHostPoint, getHitElementsBySelection, createGroupRectangleG, getHighestSelectedGroups, getSelectedIsolatedElements, getSelectedGroups, Selection, Transforms, idCreator, getGroupByElement, getSelectedIsolatedElementsCanAddToGroup, getElementsInGroup, getRectangleByGroup, GroupTransforms } from '@plait/core';
2
+ import { GroupComponent } from '../core/group.component';
3
+ import { isKeyHotkey } from 'is-hotkey';
4
+ export function withGroup(board) {
5
+ let groupRectangleG;
6
+ let removeGroups;
7
+ const { drawElement, pointerMove, globalPointerUp, insertFragment, getDeletedFragment, deleteFragment, getRelatedFragment, getRectangle, keyDown } = board;
8
+ board.drawElement = (context) => {
9
+ if (PlaitGroupElement.isGroup(context.element)) {
10
+ return GroupComponent;
11
+ }
12
+ return drawElement(context);
13
+ };
14
+ board.pointerMove = (event) => {
15
+ groupRectangleG?.remove();
16
+ const point = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
17
+ let selection = { anchor: point, focus: point };
18
+ if (board.selection && !Selection.isCollapsed(board.selection)) {
19
+ selection = board.selection;
20
+ }
21
+ const hitElements = getHitElementsBySelection(board, selection);
22
+ if (hitElements.length) {
23
+ groupRectangleG = createGroupRectangleG(board, hitElements);
24
+ groupRectangleG && PlaitBoard.getElementActiveHost(board).append(groupRectangleG);
25
+ }
26
+ pointerMove(event);
27
+ };
28
+ board.globalPointerUp = (event) => {
29
+ groupRectangleG?.remove();
30
+ groupRectangleG = null;
31
+ globalPointerUp(event);
32
+ };
33
+ board.getRelatedFragment = (elements) => {
34
+ const groups = getSelectedGroups(board);
35
+ return getRelatedFragment([...elements, ...groups]);
36
+ };
37
+ board.insertFragment = (data, clipboardData, targetPoint) => {
38
+ const elements = [];
39
+ if (clipboardData?.elements?.length) {
40
+ const groups = getHighestSelectedGroups(board, clipboardData?.elements);
41
+ const selectedIsolatedElements = getSelectedIsolatedElements(board, clipboardData?.elements);
42
+ selectedIsolatedElements.forEach(item => {
43
+ elements.push(!item.groupId ? item : updateGroupId(item, undefined));
44
+ });
45
+ if (groups.length) {
46
+ groups.forEach(item => {
47
+ const newGroup = { ...updateGroupId(item, undefined), id: idCreator() };
48
+ elements.push(newGroup);
49
+ elements.push(...updateElementsGroupId(item, clipboardData.elements, newGroup.id));
50
+ });
51
+ }
52
+ clipboardData.elements = elements;
53
+ }
54
+ insertFragment(data, clipboardData, targetPoint);
55
+ const groupElements = elements?.filter(value => PlaitGroupElement.isGroup(value));
56
+ groupElements.forEach(element => {
57
+ Transforms.insertNode(board, element, [board.children.length]);
58
+ });
59
+ };
60
+ board.getDeletedFragment = (data) => {
61
+ if (removeGroups && removeGroups.length) {
62
+ data.push(...removeGroups);
63
+ }
64
+ return getDeletedFragment(data);
65
+ };
66
+ board.deleteFragment = (data) => {
67
+ removeGroups = getRemoveGroups(board);
68
+ if (removeGroups?.length) {
69
+ updateSiblingElementGroupId(board, removeGroups);
70
+ }
71
+ deleteFragment(data);
72
+ removeGroups = null;
73
+ };
74
+ board.getRectangle = (element) => {
75
+ if (PlaitGroupElement.isGroup(element)) {
76
+ return getRectangleByGroup(board, element);
77
+ }
78
+ return getRectangle(element);
79
+ };
80
+ board.keyDown = (event) => {
81
+ if (!PlaitBoard.isReadonly(board)) {
82
+ if (isKeyHotkey('mod+g', event)) {
83
+ event.preventDefault();
84
+ GroupTransforms.addGroup(board);
85
+ return;
86
+ }
87
+ if (isKeyHotkey('mod+shift+g', event)) {
88
+ event.preventDefault();
89
+ GroupTransforms.removeGroup(board);
90
+ return;
91
+ }
92
+ }
93
+ keyDown(event);
94
+ };
95
+ return board;
96
+ }
97
+ const updateGroupId = (element, groupId) => {
98
+ return {
99
+ ...element,
100
+ groupId: groupId
101
+ };
102
+ };
103
+ const updateElementsGroupId = (group, clipboardDataElements, newGroupId) => {
104
+ const elements = [];
105
+ const elementsInGroup = clipboardDataElements.filter(item => item.groupId === group.id);
106
+ if (elementsInGroup.length) {
107
+ elementsInGroup.forEach(item => {
108
+ if (PlaitGroupElement.isGroup(item)) {
109
+ const newGroup = { ...updateGroupId(item, newGroupId), id: idCreator() };
110
+ elements.push(newGroup);
111
+ elements.push(...updateElementsGroupId(item, clipboardDataElements, newGroup.id));
112
+ }
113
+ else {
114
+ elements.push(updateGroupId(item, newGroupId));
115
+ }
116
+ });
117
+ }
118
+ return elements;
119
+ };
120
+ const getRemoveGroups = (board) => {
121
+ const selectedGroups = board.getRelatedFragment([]);
122
+ const removeGroups = [...selectedGroups];
123
+ const highestSelectedGroups = getHighestSelectedGroups(board);
124
+ const selectedIsolatedElements = getSelectedIsolatedElementsCanAddToGroup(board);
125
+ const removeNodes = [...highestSelectedGroups, ...selectedIsolatedElements];
126
+ removeNodes.forEach(item => {
127
+ const hitElementGroups = getGroupByElement(board, item, true);
128
+ if (hitElementGroups.length) {
129
+ const elementsInGroup = getElementsInGroup(board, hitElementGroups[0], false, true);
130
+ const siblingElements = elementsInGroup.filter(element => ![...removeNodes, ...removeGroups].map(item => item.id).includes(element.id));
131
+ if (siblingElements.length === 1 || siblingElements.length === 0) {
132
+ if (!removeGroups.includes(hitElementGroups[0])) {
133
+ removeGroups.push(hitElementGroups[0]);
134
+ }
135
+ if (siblingElements.length === 1) {
136
+ if (hitElementGroups.length > 1) {
137
+ const aboveGroup = findAboveGroupWithAnotherElement(board, hitElementGroups.slice(1, hitElementGroups.length), [
138
+ ...removeNodes,
139
+ ...removeGroups
140
+ ]);
141
+ let index = hitElementGroups.length;
142
+ if (aboveGroup) {
143
+ index = hitElementGroups.findIndex(item => item.id === aboveGroup.id);
144
+ }
145
+ [...hitElementGroups.slice(1, index)].forEach(item => {
146
+ if (!removeGroups.includes(item)) {
147
+ removeGroups.push(item);
148
+ }
149
+ });
150
+ }
151
+ }
152
+ }
153
+ }
154
+ });
155
+ return removeGroups;
156
+ };
157
+ const findAboveGroupWithAnotherElement = (board, groups, excludeNodes) => {
158
+ let group = null;
159
+ for (let i = 0; i < groups.length; i++) {
160
+ const elementsInGroup = getElementsInGroup(board, groups[i], false, true);
161
+ const siblingElements = elementsInGroup.filter(element => !excludeNodes.map(item => item.id).includes(element.id));
162
+ if (siblingElements.length > 0) {
163
+ group = groups[i];
164
+ break;
165
+ }
166
+ }
167
+ return group;
168
+ };
169
+ const updateSiblingElementGroupId = (board, removeGroups) => {
170
+ const selectedIsolatedElements = getSelectedIsolatedElementsCanAddToGroup(board);
171
+ const highestSelectedGroups = getHighestSelectedGroups(board);
172
+ const isolatedElementsInGroup = selectedIsolatedElements.filter(item => item.groupId);
173
+ [...highestSelectedGroups, ...isolatedElementsInGroup].forEach(item => {
174
+ const hitElementGroups = getGroupByElement(board, item, true);
175
+ if (hitElementGroups.length) {
176
+ const elementsInGroup = getElementsInGroup(board, hitElementGroups[0], false, true);
177
+ const siblingElements = elementsInGroup.filter(element => element.id !== item.id);
178
+ if (siblingElements.length === 1) {
179
+ const removeGroupIds = removeGroups.map(item => item.id);
180
+ if (hitElementGroups.some(group => removeGroupIds.includes(group.id))) {
181
+ const group = hitElementGroups.find(group => !removeGroupIds.includes(group.id));
182
+ const path = PlaitBoard.findPath(board, siblingElements[0]);
183
+ Transforms.setNode(board, { groupId: group?.id || undefined }, path);
184
+ }
185
+ }
186
+ }
187
+ });
188
+ };
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
@@ -1,4 +1,4 @@
1
- import { MERGING, PlaitBoard, Transforms, getRectangleByElements, getSelectedElements } from '@plait/core';
1
+ import { MERGING, PlaitBoard, PlaitGroupElement, Transforms, getElementsInGroup, getHighestSelectedElements, getRectangleByElements } from '@plait/core';
2
2
  export const alignTop = (board) => {
3
3
  function getOffset(outerRectangle, rectangle) {
4
4
  return [0, outerRectangle.y - rectangle.y];
@@ -40,19 +40,27 @@ export const alignRight = (board) => {
40
40
  setOffset(board, getOffset);
41
41
  };
42
42
  function setOffset(board, getOffset) {
43
- let elements = getSelectedElements(board);
44
- elements = elements.filter(element => board.children.includes(element));
43
+ const elements = getHighestSelectedElements(board);
45
44
  const outerRectangle = getRectangleByElements(board, elements, false);
46
45
  elements.forEach(element => {
47
- if (!element.points)
46
+ if (!element.points && !PlaitGroupElement.isGroup(element))
48
47
  return;
49
- const path = PlaitBoard.findPath(board, element);
50
48
  const rectangle = board.getRectangle(element);
51
49
  const offset = getOffset(outerRectangle, rectangle);
52
- const newPoints = element.points.map(p => [p[0] + offset[0], p[1] + offset[1]]);
53
- Transforms.setNode(board, {
54
- points: newPoints
55
- }, path);
50
+ let updateElements = [];
51
+ if (PlaitGroupElement.isGroup(element)) {
52
+ updateElements = getElementsInGroup(board, element, true, false);
53
+ }
54
+ else if (element.points) {
55
+ updateElements = [element];
56
+ }
57
+ updateElements.forEach(item => {
58
+ const newPoints = item.points.map(p => [p[0] + offset[0], p[1] + offset[1]]);
59
+ const path = PlaitBoard.findPath(board, item);
60
+ Transforms.setNode(board, {
61
+ points: newPoints
62
+ }, path);
63
+ });
56
64
  MERGING.set(board, true);
57
65
  });
58
66
  MERGING.set(board, false);
@@ -66,11 +74,11 @@ export const distributeVertical = (board) => {
66
74
  const distribute = (board, isHorizontal) => {
67
75
  const axis = isHorizontal ? 'x' : 'y';
68
76
  const side = isHorizontal ? 'width' : 'height';
69
- const selectedElements = getSelectedElements(board).filter(element => board.children.includes(element));
70
- const refs = selectedElements.map(element => {
77
+ const highestSelectedElements = getHighestSelectedElements(board);
78
+ const refs = highestSelectedElements.map(element => {
71
79
  return { element, rectangle: board.getRectangle(element) };
72
80
  });
73
- const outerRectangle = getRectangleByElements(board, selectedElements, false);
81
+ const outerRectangle = getRectangleByElements(board, highestSelectedElements, false);
74
82
  const minRectangleRef = refs.sort((a, b) => a.rectangle[axis] - b.rectangle[axis])[0];
75
83
  const maxRectangleRef = refs.sort((a, b) => b.rectangle[axis] + b.rectangle[side] - (a.rectangle[axis] + a.rectangle[side]))[0];
76
84
  const minIndex = refs.findIndex(ref => ref === minRectangleRef);
@@ -105,4 +113,4 @@ export const AlignTransform = {
105
113
  distributeHorizontal,
106
114
  distributeVertical
107
115
  };
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RyYW5zZm9ybXMvYWxpZ24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFLLE9BQU8sRUFBRSxVQUFVLEVBQTBCLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV0SSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDMUMsU0FBUyxTQUFTLENBQUMsY0FBK0IsRUFBRSxTQUEwQjtRQUMxRSxPQUFPLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBVSxDQUFDO0lBQ3hELENBQUM7SUFDRCxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUM3QyxTQUFTLFNBQVMsQ0FBQyxjQUErQixFQUFFLFNBQTBCO1FBQzFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQVUsQ0FBQztJQUNyRyxDQUFDO0lBQ0QsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNoQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDM0MsU0FBUyxTQUFTLENBQUMsY0FBK0IsRUFBRSxTQUEwQjtRQUMxRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBVSxDQUFDO0lBQ3hELENBQUM7SUFD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Q0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBWSxDQUFDO1FBQ3RILFVBQVUsQ0FBQyxPQUFPLENBQ2QsS0FBSyxFQUNMO1lBQ0ksTUFBTSxFQUFFLFNBQVM7U0FDcEIsRUFDRCxJQUFJLENBQ1AsQ0FBQztRQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pCLFFBQVEsR0FBRyxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUNuRCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDO0FBYUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFtQjtJQUMxQyxRQUFRO0lBQ1IscUJBQXFCO0lBQ3JCLFdBQVc7SUFDWCxTQUFTO0lBQ1QsbUJBQW1CO0lBQ25CLFVBQVU7SUFDVixvQkFBb0I7SUFDcEIsa0JBQWtCO0NBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDLCBNRVJHSU5HLCBQbGFpdEJvYXJkLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBUcmFuc2Zvcm1zLCBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzLCBnZXRTZWxlY3RlZEVsZW1lbnRzIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuXG5leHBvcnQgY29uc3QgYWxpZ25Ub3AgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBmdW5jdGlvbiBnZXRPZmZzZXQob3V0ZXJSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFswLCBvdXRlclJlY3RhbmdsZS55IC0gcmVjdGFuZ2xlLnldIGFzIFBvaW50O1xuICAgIH1cbiAgICBzZXRPZmZzZXQoYm9hcmQsIGdldE9mZnNldCk7XG59O1xuXG5leHBvcnQgY29uc3QgYWxpZ25Cb3R0b20gPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBmdW5jdGlvbiBnZXRPZmZzZXQob3V0ZXJSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFswLCBvdXRlclJlY3RhbmdsZS55ICsgb3V0ZXJSZWN0YW5nbGUuaGVpZ2h0IC0gKHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCldIGFzIFBvaW50O1xuICAgIH1cbiAgICBzZXRPZmZzZXQoYm9hcmQsIGdldE9mZnNldCk7XG59O1xuXG5leHBvcnQgY29uc3QgYWxpZ25MZWZ0ID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgZnVuY3Rpb24gZ2V0T2Zmc2V0KG91dGVyUmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBbb3V0ZXJSZWN0YW5nbGUueCAtIHJlY3RhbmdsZS54LCAwXSBhcyBQb2ludDtcbiAgICB9XG4gICAgc2V0T2Zmc2V0KGJvYXJkLCBnZXRPZmZzZXQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFsaWduSG9yaXpvbnRhbENlbnRlciA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGZ1bmN0aW9uIGdldE9mZnNldChvdXRlclJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICBjb25zdCBvdXRlckNlbnRlciA9IG91dGVyUmVjdGFuZ2xlLnggKyBvdXRlclJlY3RhbmdsZS53aWR0aCAvIDI7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRDZW50ZXIgPSByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDI7XG4gICAgICAgIHJldHVybiBbb3V0ZXJDZW50ZXIgLSBlbGVtZW50Q2VudGVyLCAwXSBhcyBQb2ludDtcbiAgICB9XG4gICAgc2V0T2Zmc2V0KGJvYXJkLCBnZXRPZmZzZXQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFsaWduVmVydGljYWxDZW50ZXIgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBmdW5jdGlvbiBnZXRPZmZzZXQob3V0ZXJSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgY29uc3Qgb3V0ZXJDZW50ZXIgPSBvdXRlclJlY3RhbmdsZS55ICsgb3V0ZXJSZWN0YW5nbGUuaGVpZ2h0IC8gMjtcbiAgICAgICAgY29uc3QgZWxlbWVudENlbnRlciA9IHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDI7XG4gICAgICAgIHJldHVybiBbMCwgb3V0ZXJDZW50ZXIgLSBlbGVtZW50Q2VudGVyXSBhcyBQb2ludDtcbiAgICB9XG4gICAgc2V0T2Zmc2V0KGJvYXJkLCBnZXRPZmZzZXQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFsaWduUmlnaHQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBmdW5jdGlvbiBnZXRPZmZzZXQob3V0ZXJSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFtvdXRlclJlY3RhbmdsZS54ICsgb3V0ZXJSZWN0YW5nbGUud2lkdGggLSAocmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGgpLCAwXSBhcyBQb2ludDtcbiAgICB9XG4gICAgc2V0T2Zmc2V0KGJvYXJkLCBnZXRPZmZzZXQpO1xufTtcblxuZnVuY3Rpb24gc2V0T2Zmc2V0KGJvYXJkOiBQbGFpdEJvYXJkLCBnZXRPZmZzZXQ6IChvdXRlclJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkgPT4gUG9pbnQpIHtcbiAgICBsZXQgZWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBlbGVtZW50cyA9IGVsZW1lbnRzLmZpbHRlcihlbGVtZW50ID0+IGJvYXJkLmNoaWxkcmVuLmluY2x1ZGVzKGVsZW1lbnQpKTtcbiAgICBjb25zdCBvdXRlclJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIGVsZW1lbnRzLCBmYWxzZSk7XG4gICAgZWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgaWYgKCFlbGVtZW50LnBvaW50cykgcmV0dXJuO1xuICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IGJvYXJkLmdldFJlY3RhbmdsZShlbGVtZW50KSE7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IGdldE9mZnNldChvdXRlclJlY3RhbmdsZSwgcmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgbmV3UG9pbnRzID0gZWxlbWVudC5wb2ludHMubWFwKHAgPT4gW3BbMF0gKyBvZmZzZXRbMF0sIHBbMV0gKyBvZmZzZXRbMV1dKSBhcyBQb2ludFtdO1xuICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGUoXG4gICAgICAgICAgICBib2FyZCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwb2ludHM6IG5ld1BvaW50c1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhdGhcbiAgICAgICAgKTtcbiAgICAgICAgTUVSR0lORy5zZXQoYm9hcmQsIHRydWUpO1xuICAgIH0pO1xuICAgIE1FUkdJTkcuc2V0KGJvYXJkLCBmYWxzZSk7XG59XG5cbmV4cG9ydCBjb25zdCBkaXN0cmlidXRlSG9yaXpvbnRhbCA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGRpc3RyaWJ1dGUoYm9hcmQsIHRydWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRpc3RyaWJ1dGVWZXJ0aWNhbCA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGRpc3RyaWJ1dGUoYm9hcmQsIGZhbHNlKTtcbn07XG5cbmNvbnN0IGRpc3RyaWJ1dGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGlzSG9yaXpvbnRhbDogYm9vbGVhbikgPT4ge1xuICAgIGNvbnN0IGF4aXMgPSBpc0hvcml6b250YWwgPyAneCcgOiAneSc7XG4gICAgY29uc3Qgc2lkZSA9IGlzSG9yaXpvbnRhbCA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCkuZmlsdGVyKGVsZW1lbnQgPT4gYm9hcmQuY2hpbGRyZW4uaW5jbHVkZXMoZWxlbWVudCkpO1xuICAgIGNvbnN0IHJlZnMgPSBzZWxlY3RlZEVsZW1lbnRzLm1hcChlbGVtZW50ID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZWxlbWVudCwgcmVjdGFuZ2xlOiBib2FyZC5nZXRSZWN0YW5nbGUoZWxlbWVudCkhIH07XG4gICAgfSk7XG4gICAgY29uc3Qgb3V0ZXJSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBzZWxlY3RlZEVsZW1lbnRzLCBmYWxzZSk7XG4gICAgY29uc3QgbWluUmVjdGFuZ2xlUmVmID0gcmVmcy5zb3J0KChhLCBiKSA9PiBhLnJlY3RhbmdsZVtheGlzXSAtIGIucmVjdGFuZ2xlW2F4aXNdKVswXTtcbiAgICBjb25zdCBtYXhSZWN0YW5nbGVSZWYgPSByZWZzLnNvcnQoKGEsIGIpID0+IGIucmVjdGFuZ2xlW2F4aXNdICsgYi5yZWN0YW5nbGVbc2lkZV0gLSAoYS5yZWN0YW5nbGVbYXhpc10gKyBhLnJlY3RhbmdsZVtzaWRlXSkpWzBdO1xuICAgIGNvbnN0IG1pbkluZGV4ID0gcmVmcy5maW5kSW5kZXgocmVmID0+IHJlZiA9PT0gbWluUmVjdGFuZ2xlUmVmKTtcbiAgICBjb25zdCBtYXhJbmRleCA9IHJlZnMuZmluZEluZGV4KHJlZiA9PiByZWYgPT09IG1heFJlY3RhbmdsZVJlZik7XG4gICAgbGV0IGRpc3RyaWJ1dGVSZWZzID0gcmVmcy5maWx0ZXIoKGVsZW1lbnQsIGluZGV4KSA9PiBpbmRleCAhPT0gbWluSW5kZXggJiYgaW5kZXggIT09IG1heEluZGV4KTtcbiAgICBjb25zdCBzdW0gPSBkaXN0cmlidXRlUmVmcy5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBjdXJyZW50KSA9PiBjdXJyZW50LnJlY3RhbmdsZVtzaWRlXSArIGFjY3VtdWxhdG9yLCAwKTtcbiAgICBjb25zdCBvZmZzZXQgPVxuICAgICAgICAob3V0ZXJSZWN0YW5nbGVbc2lkZV0gLSBtaW5SZWN0YW5nbGVSZWYucmVjdGFuZ2xlW3NpZGVdIC0gbWF4UmVjdGFuZ2xlUmVmLnJlY3RhbmdsZVtzaWRlXSAtIHN1bSkgLyAoZGlzdHJpYnV0ZVJlZnMubGVuZ3RoICsgMSk7XG4gICAgZGlzdHJpYnV0ZVJlZnMgPSBkaXN0cmlidXRlUmVmcy5zb3J0KChhLCBiKSA9PiBhLnJlY3RhbmdsZVtheGlzXSAtIGIucmVjdGFuZ2xlW2F4aXNdKTtcbiAgICBsZXQgcG9zaXRpb24gPSBtaW5SZWN0YW5nbGVSZWYucmVjdGFuZ2xlW2F4aXNdICsgbWluUmVjdGFuZ2xlUmVmLnJlY3RhbmdsZVtzaWRlXSArIG9mZnNldDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpc3RyaWJ1dGVSZWZzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IGRpc3RyaWJ1dGVSZWZzW2ldLnJlY3RhbmdsZTtcbiAgICAgICAgY29uc3QgbW92ZU9mZnNldCA9IFswLCAwXTtcbiAgICAgICAgY29uc3QgbW92ZUF4aXMgPSBpc0hvcml6b250YWwgPyAwIDogMTtcbiAgICAgICAgbW92ZU9mZnNldFttb3ZlQXhpc10gPSBwb3NpdGlvbiAtIHJlY3RhbmdsZVtheGlzXTtcbiAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGRpc3RyaWJ1dGVSZWZzW2ldLmVsZW1lbnQpO1xuICAgICAgICBjb25zdCBuZXdQb2ludHMgPSBkaXN0cmlidXRlUmVmc1tpXS5lbGVtZW50LnBvaW50cyEubWFwKHAgPT4gW3BbMF0gKyBtb3ZlT2Zmc2V0WzBdLCBwWzFdICsgbW92ZU9mZnNldFsxXV0pIGFzIFBvaW50W107XG4gICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShcbiAgICAgICAgICAgIGJvYXJkLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBvaW50czogbmV3UG9pbnRzXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGF0aFxuICAgICAgICApO1xuICAgICAgICBNRVJHSU5HLnNldChib2FyZCwgdHJ1ZSk7XG4gICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb24gKyByZWN0YW5nbGVbc2lkZV0gKyBvZmZzZXQ7XG4gICAgfVxuICAgIE1FUkdJTkcuc2V0KGJvYXJkLCBmYWxzZSk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFsaWduVHJhbnNmb3JtIHtcbiAgICBhbGlnblRvcDogKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB2b2lkO1xuICAgIGFsaWduSG9yaXpvbnRhbENlbnRlcjogKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB2b2lkO1xuICAgIGFsaWduQm90dG9tOiAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHZvaWQ7XG4gICAgYWxpZ25MZWZ0OiAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHZvaWQ7XG4gICAgYWxpZ25WZXJ0aWNhbENlbnRlcjogKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB2b2lkO1xuICAgIGFsaWduUmlnaHQ6IChib2FyZDogUGxhaXRCb2FyZCkgPT4gdm9pZDtcbiAgICBkaXN0cmlidXRlSG9yaXpvbnRhbDogKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB2b2lkO1xuICAgIGRpc3RyaWJ1dGVWZXJ0aWNhbDogKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgQWxpZ25UcmFuc2Zvcm06IEFsaWduVHJhbnNmb3JtID0ge1xuICAgIGFsaWduVG9wLFxuICAgIGFsaWduSG9yaXpvbnRhbENlbnRlcixcbiAgICBhbGlnbkJvdHRvbSxcbiAgICBhbGlnbkxlZnQsXG4gICAgYWxpZ25WZXJ0aWNhbENlbnRlcixcbiAgICBhbGlnblJpZ2h0LFxuICAgIGRpc3RyaWJ1dGVIb3Jpem9udGFsLFxuICAgIGRpc3RyaWJ1dGVWZXJ0aWNhbFxufTtcbiJdfQ==
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RyYW5zZm9ybXMvYWxpZ24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILE9BQU8sRUFDUCxVQUFVLEVBRVYsaUJBQWlCLEVBR2pCLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsMEJBQTBCLEVBQzFCLHNCQUFzQixFQUN6QixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDMUMsU0FBUyxTQUFTLENBQUMsY0FBK0IsRUFBRSxTQUEwQjtRQUMxRSxPQUFPLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBVSxDQUFDO0lBQ3hELENBQUM7SUFDRCxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUM3QyxTQUFTLFNBQVMsQ0FBQyxjQUErQixFQUFFLFNBQTBCO1FBQzFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQVUsQ0FBQztJQUNyRyxDQUFDO0lBQ0QsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNoQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDM0MsU0FBUyxTQUFTLENBQUMsY0FBK0IsRUFBRSxTQUEwQjtRQUMxRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxFQUFFLENB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QUMsQ0FBQztRQUNsRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkUsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBWSxDQUFDO1FBQ3RILFVBQVUsQ0FBQyxPQUFPLENBQ2QsS0FBSyxFQUNMO1lBQ0ksTUFBTSxFQUFFLFNBQVM7U0FDcEIsRUFDRCxJQUFJLENBQ1AsQ0FBQztRQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pCLFFBQVEsR0FBRyxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUNuRCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDO0FBYUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFtQjtJQUMxQyxRQUFRO0lBQ1IscUJBQXFCO0lBQ3JCLFdBQVc7SUFDWCxTQUFTO0lBQ1QsbUJBQW1CO0lBQ25CLFVBQVU7SUFDVixvQkFBb0I7SUFDcEIsa0JBQWtCO0NBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIE1FUkdJTkcsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgUGxhaXRHcm91cEVsZW1lbnQsXG4gICAgUG9pbnQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIFRyYW5zZm9ybXMsXG4gICAgZ2V0RWxlbWVudHNJbkdyb3VwLFxuICAgIGdldEhpZ2hlc3RTZWxlY3RlZEVsZW1lbnRzLFxuICAgIGdldFJlY3RhbmdsZUJ5RWxlbWVudHNcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuXG5leHBvcnQgY29uc3QgYWxpZ25Ub3AgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBmdW5jdGlvbiBnZXRPZmZzZXQob3V0ZXJSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFswLCBvdXRlclJlY3RhbmdsZS55IC0gcmVjdGFuZ2xlLnldIGFzIFBvaW50O1xuICAgIH1cbiAgICBzZXRPZmZzZXQoYm9hcmQsIGdldE9mZnNldCk7XG59O1xuXG5leHBvcnQgY29uc3QgYWxpZ25Cb3R0b20gPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBmdW5jdGlvbiBnZXRPZmZzZXQob3V0ZXJSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFswLCBvdXRlclJlY3RhbmdsZS55ICsgb3V0ZXJSZWN0YW5nbGUuaGVpZ2h0IC0gKHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCldIGFzIFBvaW50O1xuICAgIH1cbiAgICBzZXRPZmZzZXQoYm9hcmQsIGdldE9mZnNldCk7XG59O1xuXG5leHBvcnQgY29uc3QgYWxpZ25MZWZ0ID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgZnVuY3Rpb24gZ2V0T2Zmc2V0KG91dGVyUmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBbb3V0ZXJSZWN0YW5nbGUueCAtIHJlY3RhbmdsZS54LCAwXSBhcyBQb2ludDtcbiAgICB9XG4gICAgc2V0T2Zmc2V0KGJvYXJkLCBnZXRPZmZzZXQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFsaWduSG9yaXpvbnRhbENlbnRlciA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGZ1bmN0aW9uIGdldE9mZnNldChvdXRlclJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICBjb25zdCBvdXRlckNlbnRlciA9IG91dGVyUmVjdGFuZ2xlLnggKyBvdXRlclJlY3RhbmdsZS53aWR0aCAvIDI7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRDZW50ZXIgPSByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDI7XG4gICAgICAgIHJldHVybiBbb3V0ZXJDZW50ZXIgLSBlbGVtZW50Q2VudGVyLCAwXSBhcyBQb2ludDtcbiAgICB9XG4gICAgc2V0T2Zmc2V0KGJvYXJkLCBnZXRPZmZzZXQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFsaWduVmVydGljYWxDZW50ZXIgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBmdW5jdGlvbiBnZXRPZmZzZXQob3V0ZXJSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgY29uc3Qgb3V0ZXJDZW50ZXIgPSBvdXRlclJlY3RhbmdsZS55ICsgb3V0ZXJSZWN0YW5nbGUuaGVpZ2h0IC8gMjtcbiAgICAgICAgY29uc3QgZWxlbWVudENlbnRlciA9IHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDI7XG4gICAgICAgIHJldHVybiBbMCwgb3V0ZXJDZW50ZXIgLSBlbGVtZW50Q2VudGVyXSBhcyBQb2ludDtcbiAgICB9XG4gICAgc2V0T2Zmc2V0KGJvYXJkLCBnZXRPZmZzZXQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFsaWduUmlnaHQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBmdW5jdGlvbiBnZXRPZmZzZXQob3V0ZXJSZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFtvdXRlclJlY3RhbmdsZS54ICsgb3V0ZXJSZWN0YW5nbGUud2lkdGggLSAocmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGgpLCAwXSBhcyBQb2ludDtcbiAgICB9XG4gICAgc2V0T2Zmc2V0KGJvYXJkLCBnZXRPZmZzZXQpO1xufTtcblxuZnVuY3Rpb24gc2V0T2Zmc2V0KGJvYXJkOiBQbGFpdEJvYXJkLCBnZXRPZmZzZXQ6IChvdXRlclJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkgPT4gUG9pbnQpIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IGdldEhpZ2hlc3RTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBjb25zdCBvdXRlclJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIGVsZW1lbnRzLCBmYWxzZSk7XG4gICAgZWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgaWYgKCFlbGVtZW50LnBvaW50cyAmJiAhUGxhaXRHcm91cEVsZW1lbnQuaXNHcm91cChlbGVtZW50KSkgcmV0dXJuO1xuICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBib2FyZC5nZXRSZWN0YW5nbGUoZWxlbWVudCkhO1xuICAgICAgICBjb25zdCBvZmZzZXQgPSBnZXRPZmZzZXQob3V0ZXJSZWN0YW5nbGUsIHJlY3RhbmdsZSk7XG4gICAgICAgIGxldCB1cGRhdGVFbGVtZW50czogUGxhaXRFbGVtZW50W10gPSBbXTtcbiAgICAgICAgaWYgKFBsYWl0R3JvdXBFbGVtZW50LmlzR3JvdXAoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHVwZGF0ZUVsZW1lbnRzID0gZ2V0RWxlbWVudHNJbkdyb3VwKGJvYXJkLCBlbGVtZW50LCB0cnVlLCBmYWxzZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5wb2ludHMpIHtcbiAgICAgICAgICAgIHVwZGF0ZUVsZW1lbnRzID0gW2VsZW1lbnRdO1xuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZUVsZW1lbnRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdQb2ludHMgPSBpdGVtLnBvaW50cyEubWFwKHAgPT4gW3BbMF0gKyBvZmZzZXRbMF0sIHBbMV0gKyBvZmZzZXRbMV1dKSBhcyBQb2ludFtdO1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGl0ZW0pO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlKFxuICAgICAgICAgICAgICAgIGJvYXJkLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRzOiBuZXdQb2ludHNcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHBhdGhcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICBNRVJHSU5HLnNldChib2FyZCwgdHJ1ZSk7XG4gICAgfSk7XG4gICAgTUVSR0lORy5zZXQoYm9hcmQsIGZhbHNlKTtcbn1cblxuZXhwb3J0IGNvbnN0IGRpc3RyaWJ1dGVIb3Jpem9udGFsID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgZGlzdHJpYnV0ZShib2FyZCwgdHJ1ZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGlzdHJpYnV0ZVZlcnRpY2FsID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgZGlzdHJpYnV0ZShib2FyZCwgZmFsc2UpO1xufTtcblxuY29uc3QgZGlzdHJpYnV0ZSA9IChib2FyZDogUGxhaXRCb2FyZCwgaXNIb3Jpem9udGFsOiBib29sZWFuKSA9PiB7XG4gICAgY29uc3QgYXhpcyA9IGlzSG9yaXpvbnRhbCA/ICd4JyA6ICd5JztcbiAgICBjb25zdCBzaWRlID0gaXNIb3Jpem9udGFsID8gJ3dpZHRoJyA6ICdoZWlnaHQnO1xuICAgIGNvbnN0IGhpZ2hlc3RTZWxlY3RlZEVsZW1lbnRzID0gZ2V0SGlnaGVzdFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGNvbnN0IHJlZnMgPSBoaWdoZXN0U2VsZWN0ZWRFbGVtZW50cy5tYXAoZWxlbWVudCA9PiB7XG4gICAgICAgIHJldHVybiB7IGVsZW1lbnQsIHJlY3RhbmdsZTogYm9hcmQuZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpISB9O1xuICAgIH0pO1xuICAgIGNvbnN0IG91dGVyUmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgaGlnaGVzdFNlbGVjdGVkRWxlbWVudHMsIGZhbHNlKTtcbiAgICBjb25zdCBtaW5SZWN0YW5nbGVSZWYgPSByZWZzLnNvcnQoKGEsIGIpID0+IGEucmVjdGFuZ2xlW2F4aXNdIC0gYi5yZWN0YW5nbGVbYXhpc10pWzBdO1xuICAgIGNvbnN0IG1heFJlY3RhbmdsZVJlZiA9IHJlZnMuc29ydCgoYSwgYikgPT4gYi5yZWN0YW5nbGVbYXhpc10gKyBiLnJlY3RhbmdsZVtzaWRlXSAtIChhLnJlY3RhbmdsZVtheGlzXSArIGEucmVjdGFuZ2xlW3NpZGVdKSlbMF07XG4gICAgY29uc3QgbWluSW5kZXggPSByZWZzLmZpbmRJbmRleChyZWYgPT4gcmVmID09PSBtaW5SZWN0YW5nbGVSZWYpO1xuICAgIGNvbnN0IG1heEluZGV4ID0gcmVmcy5maW5kSW5kZXgocmVmID0+IHJlZiA9PT0gbWF4UmVjdGFuZ2xlUmVmKTtcbiAgICBsZXQgZGlzdHJpYnV0ZVJlZnMgPSByZWZzLmZpbHRlcigoZWxlbWVudCwgaW5kZXgpID0+IGluZGV4ICE9PSBtaW5JbmRleCAmJiBpbmRleCAhPT0gbWF4SW5kZXgpO1xuICAgIGNvbnN0IHN1bSA9IGRpc3RyaWJ1dGVSZWZzLnJlZHVjZSgoYWNjdW11bGF0b3IsIGN1cnJlbnQpID0+IGN1cnJlbnQucmVjdGFuZ2xlW3NpZGVdICsgYWNjdW11bGF0b3IsIDApO1xuICAgIGNvbnN0IG9mZnNldCA9XG4gICAgICAgIChvdXRlclJlY3RhbmdsZVtzaWRlXSAtIG1pblJlY3RhbmdsZVJlZi5yZWN0YW5nbGVbc2lkZV0gLSBtYXhSZWN0YW5nbGVSZWYucmVjdGFuZ2xlW3NpZGVdIC0gc3VtKSAvIChkaXN0cmlidXRlUmVmcy5sZW5ndGggKyAxKTtcbiAgICBkaXN0cmlidXRlUmVmcyA9IGRpc3RyaWJ1dGVSZWZzLnNvcnQoKGEsIGIpID0+IGEucmVjdGFuZ2xlW2F4aXNdIC0gYi5yZWN0YW5nbGVbYXhpc10pO1xuICAgIGxldCBwb3NpdGlvbiA9IG1pblJlY3RhbmdsZVJlZi5yZWN0YW5nbGVbYXhpc10gKyBtaW5SZWN0YW5nbGVSZWYucmVjdGFuZ2xlW3NpZGVdICsgb2Zmc2V0O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGlzdHJpYnV0ZVJlZnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gZGlzdHJpYnV0ZVJlZnNbaV0ucmVjdGFuZ2xlO1xuICAgICAgICBjb25zdCBtb3ZlT2Zmc2V0ID0gWzAsIDBdO1xuICAgICAgICBjb25zdCBtb3ZlQXhpcyA9IGlzSG9yaXpvbnRhbCA/IDAgOiAxO1xuICAgICAgICBtb3ZlT2Zmc2V0W21vdmVBeGlzXSA9IHBvc2l0aW9uIC0gcmVjdGFuZ2xlW2F4aXNdO1xuICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZGlzdHJpYnV0ZVJlZnNbaV0uZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IG5ld1BvaW50cyA9IGRpc3RyaWJ1dGVSZWZzW2ldLmVsZW1lbnQucG9pbnRzIS5tYXAocCA9PiBbcFswXSArIG1vdmVPZmZzZXRbMF0sIHBbMV0gKyBtb3ZlT2Zmc2V0WzFdXSkgYXMgUG9pbnRbXTtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlKFxuICAgICAgICAgICAgYm9hcmQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcG9pbnRzOiBuZXdQb2ludHNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXRoXG4gICAgICAgICk7XG4gICAgICAgIE1FUkdJTkcuc2V0KGJvYXJkLCB0cnVlKTtcbiAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbiArIHJlY3RhbmdsZVtzaWRlXSArIG9mZnNldDtcbiAgICB9XG4gICAgTUVSR0lORy5zZXQoYm9hcmQsIGZhbHNlKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxpZ25UcmFuc2Zvcm0ge1xuICAgIGFsaWduVG9wOiAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHZvaWQ7XG4gICAgYWxpZ25Ib3Jpem9udGFsQ2VudGVyOiAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHZvaWQ7XG4gICAgYWxpZ25Cb3R0b206IChib2FyZDogUGxhaXRCb2FyZCkgPT4gdm9pZDtcbiAgICBhbGlnbkxlZnQ6IChib2FyZDogUGxhaXRCb2FyZCkgPT4gdm9pZDtcbiAgICBhbGlnblZlcnRpY2FsQ2VudGVyOiAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHZvaWQ7XG4gICAgYWxpZ25SaWdodDogKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB2b2lkO1xuICAgIGRpc3RyaWJ1dGVIb3Jpem9udGFsOiAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHZvaWQ7XG4gICAgZGlzdHJpYnV0ZVZlcnRpY2FsOiAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBBbGlnblRyYW5zZm9ybTogQWxpZ25UcmFuc2Zvcm0gPSB7XG4gICAgYWxpZ25Ub3AsXG4gICAgYWxpZ25Ib3Jpem9udGFsQ2VudGVyLFxuICAgIGFsaWduQm90dG9tLFxuICAgIGFsaWduTGVmdCxcbiAgICBhbGlnblZlcnRpY2FsQ2VudGVyLFxuICAgIGFsaWduUmlnaHQsXG4gICAgZGlzdHJpYnV0ZUhvcml6b250YWwsXG4gICAgZGlzdHJpYnV0ZVZlcnRpY2FsXG59O1xuIl19
@@ -11,5 +11,4 @@ export * from './memorize';
11
11
  export * from './vector';
12
12
  export * from './math';
13
13
  export * from './drawing';
14
- export * from './rotate';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNpemUnO1xuZXhwb3J0ICogZnJvbSAnLi9saW5lLXBhdGgnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LW9ydGhvZ29uYWwtcm91dGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2hvdC1rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGlvbi1tb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vZWxib3ctbGluZS1yb3V0ZSc7XG5leHBvcnQgKiBmcm9tICcuL21lbW9yaXplJztcbmV4cG9ydCAqIGZyb20gJy4vdmVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWF0aCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYXdpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3RhdGUnO1xuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNpemUnO1xuZXhwb3J0ICogZnJvbSAnLi9saW5lLXBhdGgnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LW9ydGhvZ29uYWwtcm91dGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2hvdC1rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGlvbi1tb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vZWxib3ctbGluZS1yb3V0ZSc7XG5leHBvcnQgKiBmcm9tICcuL21lbW9yaXplJztcbmV4cG9ydCAqIGZyb20gJy4vdmVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWF0aCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYXdpbmcnO1xuIl19