@plait/common 0.62.0-next.0 → 0.62.0-next.10

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.
@@ -7,3 +7,4 @@ export declare const TRANSPARENT = "transparent";
7
7
  export declare const ROTATE_HANDLE_DISTANCE_TO_ELEMENT = 20;
8
8
  export declare const ROTATE_HANDLE_SIZE = 18;
9
9
  export declare const DEFAULT_FONT_FAMILY = "PingFangSC-Regular, \"PingFang SC\"";
10
+ export declare const DEFAULT_FILL = "none";
@@ -7,4 +7,5 @@ export const TRANSPARENT = 'transparent';
7
7
  export const ROTATE_HANDLE_DISTANCE_TO_ELEMENT = 20;
8
8
  export const ROTATE_HANDLE_SIZE = 18;
9
9
  export const DEFAULT_FONT_FAMILY = 'PingFangSC-Regular, "PingFang SC"';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29uc3RhbnRzL2RlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxFQUFFLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEJBU0UgPSA0O1xuZXhwb3J0IGNvbnN0IFBSSU1BUllfQ09MT1IgPSAnIzY2OThGRic7XG5leHBvcnQgY29uc3QgUkVTSVpFX0hBTkRMRV9ESUFNRVRFUiA9IDk7XG5leHBvcnQgY29uc3QgV2l0aFRleHRQbHVnaW5LZXkgPSAncGxhaXQtdGV4dC1wbHVnaW4ta2V5JztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JPVVRFX01BUkdJTiA9IDMwO1xuZXhwb3J0IGNvbnN0IFRSQU5TUEFSRU5UID0gJ3RyYW5zcGFyZW50JztcbmV4cG9ydCBjb25zdCBST1RBVEVfSEFORExFX0RJU1RBTkNFX1RPX0VMRU1FTlQgPSAyMDtcbmV4cG9ydCBjb25zdCBST1RBVEVfSEFORExFX1NJWkUgPSAxODtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZPTlRfRkFNSUxZID0gJ1BpbmdGYW5nU0MtUmVndWxhciwgXCJQaW5nRmFuZyBTQ1wiJztcbiJdfQ==
10
+ export const DEFAULT_FILL = 'none';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29uc3RhbnRzL2RlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxFQUFFLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLG1DQUFtQyxDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQkFTRSA9IDQ7XG5leHBvcnQgY29uc3QgUFJJTUFSWV9DT0xPUiA9ICcjNjY5OEZGJztcbmV4cG9ydCBjb25zdCBSRVNJWkVfSEFORExFX0RJQU1FVEVSID0gOTtcbmV4cG9ydCBjb25zdCBXaXRoVGV4dFBsdWdpbktleSA9ICdwbGFpdC10ZXh0LXBsdWdpbi1rZXknO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUk9VVEVfTUFSR0lOID0gMzA7XG5leHBvcnQgY29uc3QgVFJBTlNQQVJFTlQgPSAndHJhbnNwYXJlbnQnO1xuZXhwb3J0IGNvbnN0IFJPVEFURV9IQU5ETEVfRElTVEFOQ0VfVE9fRUxFTUVOVCA9IDIwO1xuZXhwb3J0IGNvbnN0IFJPVEFURV9IQU5ETEVfU0laRSA9IDE4O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRk9OVF9GQU1JTFkgPSAnUGluZ0ZhbmdTQy1SZWd1bGFyLCBcIlBpbmdGYW5nIFNDXCInO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRklMTCA9ICdub25lJztcbiJdfQ==
@@ -1,26 +1,9 @@
1
1
  export class ImageBaseComponent {
2
- constructor() {
3
- this.initialized = false;
4
- }
5
- set imageItem(value) {
6
- this._imageItem = value;
7
- if (this.initialized) {
8
- this.afterImageItemChange(this._imageItem, value);
9
- }
10
- }
11
- get imageItem() {
12
- return this._imageItem;
13
- }
14
2
  set isFocus(value) {
15
3
  this._isFocus = value;
16
4
  }
17
5
  get isFocus() {
18
6
  return this._isFocus;
19
7
  }
20
- initialize() {
21
- this.initialized = true;
22
- }
23
- destroy() {
24
- }
25
8
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2ltYWdlL2ltYWdlLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBZ0Isa0JBQWtCO0lBQXhDO1FBS0ksZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFtQ3hCLENBQUM7SUEvQkcsSUFBSSxTQUFTLENBQUMsS0FBc0I7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUlELElBQUksT0FBTyxDQUFDLEtBQWM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBTUQsVUFBVTtRQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uSW1hZ2VJdGVtIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW1hZ2VCYXNlQ29tcG9uZW50IHtcbiAgICBfaW1hZ2VJdGVtITogQ29tbW9uSW1hZ2VJdGVtO1xuXG4gICAgX2lzRm9jdXMhOiBib29sZWFuO1xuXG4gICAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIGVsZW1lbnQhOiBQbGFpdEVsZW1lbnQ7XG5cbiAgICBzZXQgaW1hZ2VJdGVtKHZhbHVlOiBDb21tb25JbWFnZUl0ZW0pIHtcbiAgICAgICAgdGhpcy5faW1hZ2VJdGVtID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmFmdGVySW1hZ2VJdGVtQ2hhbmdlKHRoaXMuX2ltYWdlSXRlbSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGltYWdlSXRlbSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ltYWdlSXRlbTtcbiAgICB9XG5cbiAgICBib2FyZCE6IFBsYWl0Qm9hcmQ7XG5cbiAgICBzZXQgaXNGb2N1cyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc0ZvY3VzID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9jdXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ZvY3VzO1xuICAgIH1cblxuICAgIGFic3RyYWN0IGFmdGVySW1hZ2VJdGVtQ2hhbmdlKHByZXZpb3VzOiBDb21tb25JbWFnZUl0ZW0sIGN1cnJlbnQ6IENvbW1vbkltYWdlSXRlbSk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBuYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50O1xuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB9XG59XG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2ltYWdlL2ltYWdlLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBZ0Isa0JBQWtCO0lBT3BDLElBQUksT0FBTyxDQUFDLEtBQWM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0NBR0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJbWFnZUJhc2VDb21wb25lbnQge1xuICAgIF9pc0ZvY3VzITogYm9vbGVhbjtcblxuICAgIGVsZW1lbnQhOiBQbGFpdEVsZW1lbnQ7XG5cbiAgICBib2FyZCE6IFBsYWl0Qm9hcmQ7XG5cbiAgICBzZXQgaXNGb2N1cyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc0ZvY3VzID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9jdXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ZvY3VzO1xuICAgIH1cblxuICAgIGFic3RyYWN0IG5hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQ7XG59XG4iXX0=
@@ -2,6 +2,7 @@ import { ACTIVE_STROKE_WIDTH, PlaitBoard, RectangleClient, createForeignObject,
2
2
  import { Generator } from '../generators/generator';
3
3
  import { canResize, getElementOfFocusedImage } from '../utils';
4
4
  import { ActiveGenerator } from '../generators/active.generator';
5
+ export const FOREIGN_OBJECT_IMAGE_CLASS_NAME = 'foreign-object-image';
5
6
  export class ImageGenerator extends Generator {
6
7
  static { this.key = 'image-generator'; }
7
8
  constructor(board, options) {
@@ -18,6 +19,7 @@ export class ImageGenerator extends Generator {
18
19
  const g = createG();
19
20
  const foreignRectangle = this.options.getRectangle(element);
20
21
  this.foreignObject = createForeignObject(foreignRectangle.x, foreignRectangle.y, foreignRectangle.width, foreignRectangle.height);
22
+ this.foreignObject.classList.add(FOREIGN_OBJECT_IMAGE_CLASS_NAME);
21
23
  g.append(this.foreignObject);
22
24
  const props = {
23
25
  board: this.board,
@@ -93,4 +95,4 @@ export class ImageGenerator extends Generator {
93
95
  this.activeGenerator?.destroy();
94
96
  }
95
97
  }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9pbWFnZS9pbWFnZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILG1CQUFtQixFQUNuQixVQUFVLEVBRVYsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osbUJBQW1CLEVBQ3RCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxTQUFTLEVBQXdDLE1BQU0seUJBQXlCLENBQUM7QUFDMUYsT0FBTyxFQUFtQixTQUFTLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBUWpFLE1BQU0sT0FBTyxjQUFzRCxTQUFRLFNBSTFFO2FBQ1UsUUFBRyxHQUFHLGlCQUFpQixBQUFwQixDQUFxQjtJQVkvQixZQUFtQixLQUFpQixFQUFTLE9BQWlDO1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFEUCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFKOUUsWUFBTyxHQUFHLEtBQUssQ0FBQztJQU1oQixDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQVU7UUFDZCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVU7UUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixNQUFNLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FB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QXdCO1lBQy9CLE9BQU87U0FDVixDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsT0FBTztRQUNILEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBjcmVhdGVGb3JlaWduT2JqZWN0LFxuICAgIGNyZWF0ZUcsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBpc1NlbGVjdGlvbk1vdmluZyxcbiAgICBzZXRBbmdsZUZvckcsXG4gICAgdXBkYXRlRm9yZWlnbk9iamVjdFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBHZW5lcmF0b3IsIEdlbmVyYXRvckV4dHJhRGF0YSwgR2VuZXJhdG9yT3B0aW9ucyB9IGZyb20gJy4uL2dlbmVyYXRvcnMvZ2VuZXJhdG9yJztcbmltcG9ydCB7IENvbW1vbkltYWdlSXRlbSwgY2FuUmVzaXplLCBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBBY3RpdmVHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzL2FjdGl2ZS5nZW5lcmF0b3InO1xuaW1wb3J0IHsgUGxhaXRJbWFnZUJvYXJkLCBJbWFnZUNvbXBvbmVudFJlZiwgSW1hZ2VQcm9wcyB9IGZyb20gJy4vd2l0aC1pbWFnZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VHZW5lcmF0b3JPcHRpb25zPFQ+IHtcbiAgICBnZXRSZWN0YW5nbGU6IChlbGVtZW50OiBUKSA9PiBSZWN0YW5nbGVDbGllbnQ7XG4gICAgZ2V0SW1hZ2VJdGVtOiAoZWxlbWVudDogVCkgPT4gQ29tbW9uSW1hZ2VJdGVtO1xufVxuXG5leHBvcnQgY2xhc3MgSW1hZ2VHZW5lcmF0b3I8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudD4gZXh0ZW5kcyBHZW5lcmF0b3I8XG4gICAgVCxcbiAgICBHZW5lcmF0b3JFeHRyYURhdGEsXG4gICAgSW1hZ2VHZW5lcmF0b3JPcHRpb25zPFQ+ICYgR2VuZXJhdG9yT3B0aW9uc1xuPiB7XG4gICAgc3RhdGljIGtleSA9ICdpbWFnZS1nZW5lcmF0b3InO1xuXG4gICAgZm9yZWlnbk9iamVjdCE6IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50O1xuXG4gICAgaW1hZ2VDb21wb25lbnRSZWYhOiBJbWFnZUNvbXBvbmVudFJlZjtcblxuICAgIGFjdGl2ZUdlbmVyYXRvciE6IEFjdGl2ZUdlbmVyYXRvcjtcblxuICAgIGlzRm9jdXMgPSBmYWxzZTtcblxuICAgIGVsZW1lbnQhOiBUO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGJvYXJkOiBQbGFpdEJvYXJkLCBwdWJsaWMgb3B0aW9uczogSW1hZ2VHZW5lcmF0b3JPcHRpb25zPFQ+KSB7XG4gICAgICAgIHN1cGVyKGJvYXJkLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBjYW5EcmF3KGVsZW1lbnQ6IFQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5vcHRpb25zLmdldEltYWdlSXRlbShlbGVtZW50KTtcbiAgICB9XG5cbiAgICBkcmF3KGVsZW1lbnQ6IFQpOiBTVkdHRWxlbWVudCB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGNvbnN0IGZvcmVpZ25SZWN0YW5nbGUgPSB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLmZvcmVpZ25PYmplY3QgPSBjcmVhdGVGb3JlaWduT2JqZWN0KGZvcmVpZ25SZWN0YW5nbGUueCwgZm9yZWlnblJlY3RhbmdsZS55LCBmb3JlaWduUmVjdGFuZ2xlLndpZHRoLCBmb3JlaWduUmVjdGFuZ2xlLmhlaWdodCk7XG4gICAgICAgIGcuYXBwZW5kKHRoaXMuZm9yZWlnbk9iamVjdCk7XG4gICAgICAgIGNvbnN0IHByb3BzOiBJbWFnZVByb3BzID0ge1xuICAgICAgICAgICAgYm9hcmQ6IHRoaXMuYm9hcmQsXG4gICAgICAgICAgICBpbWFnZUl0ZW06IHRoaXMub3B0aW9ucy5nZXRJbWFnZUl0ZW0oZWxlbWVudCksXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgZ2V0UmVjdGFuZ2xlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaW1hZ2VDb21wb25lbnRSZWYgPSAoKHRoaXMuYm9hcmQgYXMgdW5rbm93bikgYXMgUGxhaXRJbWFnZUJvYXJkKS5yZW5kZXJJbWFnZSh0aGlzLmZvcmVpZ25PYmplY3QsIHByb3BzKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBBY3RpdmVHZW5lcmF0b3IodGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoIShzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTdHJva2VPcGFjaXR5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpIHx8ICFzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldFJlY3RhbmdsZSh0aGlzLmVsZW1lbnQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhhc1Jlc2l6ZUhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWRJbWFnZUVsZW1lbnQgPSBjYW5SZXNpemUodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkSW1hZ2UgPSAhIWdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZSh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNTZWxlY3RlZEltYWdlIHx8IGlzU2VsZWN0ZWRJbWFnZUVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZztcbiAgICB9XG5cbiAgICB1cGRhdGVJbWFnZShub2RlRzogU1ZHR0VsZW1lbnQsIHByZXZpb3VzOiBULCBjdXJyZW50OiBUKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGN1cnJlbnQ7XG4gICAgICAgIGlmIChwcmV2aW91cyAhPT0gY3VycmVudCAmJiB0aGlzLmltYWdlQ29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgICAgICAgICBpbWFnZUl0ZW06IHRoaXMub3B0aW9ucy5nZXRJbWFnZUl0ZW0oY3VycmVudCksXG4gICAgICAgICAgICAgICAgZWxlbWVudDogY3VycmVudCxcbiAgICAgICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoY3VycmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VDb21wb25lbnRSZWYudXBkYXRlKHByb3BzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50Rm9yZWlnbk9iamVjdCA9IHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoY3VycmVudCk7XG4gICAgICAgIHVwZGF0ZUZvcmVpZ25PYmplY3QoXG4gICAgICAgICAgICB0aGlzLmchLFxuICAgICAgICAgICAgY3VycmVudEZvcmVpZ25PYmplY3Qud2lkdGgsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC5oZWlnaHQsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC54LFxuICAgICAgICAgICAgY3VycmVudEZvcmVpZ25PYmplY3QueVxuICAgICAgICApO1xuICAgICAgICBpZiAoY3VycmVudEZvcmVpZ25PYmplY3QgJiYgY3VycmVudC5hbmdsZSkge1xuICAgICAgICAgICAgc2V0QW5nbGVGb3JHKHRoaXMuZyEsIFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludChjdXJyZW50Rm9yZWlnbk9iamVjdCksIGN1cnJlbnQuYW5nbGUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGl2ZUcgPSBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyhjdXJyZW50LCBhY3RpdmVHLCB7IHNlbGVjdGVkOiB0aGlzLmlzRm9jdXMgfSk7XG4gICAgfVxuXG4gICAgc2V0Rm9jdXMoZWxlbWVudDogUGxhaXRFbGVtZW50LCBpc0ZvY3VzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNGb2N1cyA9IGlzRm9jdXM7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUcgPSBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyhlbGVtZW50LCBhY3RpdmVHLCB7IHNlbGVjdGVkOiBpc0ZvY3VzIH0pO1xuICAgICAgICBjb25zdCBwcm9wczogUGFydGlhbDxJbWFnZVByb3BzPiA9IHtcbiAgICAgICAgICAgIGlzRm9jdXNcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5pbWFnZUNvbXBvbmVudFJlZi51cGRhdGUocHJvcHMpO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5pbWFnZUNvbXBvbmVudFJlZj8uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvcj8uZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9pbWFnZS9pbWFnZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILG1CQUFtQixFQUNuQixVQUFVLEVBRVYsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osbUJBQW1CLEVBQ3RCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxTQUFTLEVBQXdDLE1BQU0seUJBQXlCLENBQUM7QUFDMUYsT0FBTyxFQUFtQixTQUFTLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2pFLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLHNCQUFzQixDQUFDO0FBT3RFLE1BQU0sT0FBTyxjQUFzRCxTQUFRLFNBSTFFO2FBQ1UsUUFBRyxHQUFHLGlCQUFpQixBQUFwQixDQUFxQjtJQVkvQixZQUFtQixLQUFpQixFQUFTLE9BQWlDO1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFEUCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFKOUUsWUFBTyxHQUFHLEtBQUssQ0FBQztJQU1oQixDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQVU7UUFDZCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVU7UUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixNQUFNLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxhQUFhLEdBQUcsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEksSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0IsTUFBTSxLQUFLLEdBQWU7WUFDdEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7WUFDN0MsT0FBTztZQUNQLFlBQVksRUFBRSxHQUFHLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QyxDQUFDO1NBQ0osQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBSyxJQUFJLENBQUMsS0FBcUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU3RyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDbkQsY0FBYyxFQUFFLEdBQUcsRUFBRTtnQkFDakIsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNyRSxPQUFPLG1CQUFtQixDQUFDO2dCQUMvQixDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxtQkFBbUIsQ0FBQztnQkFDL0IsQ0FBQztZQUNMLENBQUM7WUFDRCxnQkFBZ0IsRUFBRSxHQUFHLEVBQUU7Z0JBQ25CLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2hHLE9BQU8sQ0FBQyxDQUFDO2dCQUNiLENBQUM7cUJBQU0sQ0FBQztvQkFDSixPQUFPLEdBQUcsQ0FBQztnQkFDZixDQUFDO1lBQ0wsQ0FBQztZQUNELFlBQVksRUFBRSxHQUFHLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkQsQ0FBQztZQUNELGVBQWUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xCLE1BQU0sc0JBQXNCLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNuRSxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvRCxPQUFPLGVBQWUsSUFBSSxzQkFBc0IsQ0FBQztZQUNyRCxDQUFDO1NBQ0osQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWtCLEVBQUUsUUFBVyxFQUFFLE9BQVU7UUFDbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2pELE1BQU0sS0FBSyxHQUFHO2dCQUNWLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7Z0JBQzdDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixZQUFZLEVBQUUsR0FBRyxFQUFFO29CQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzlDLENBQUM7YUFDSixDQUFDO1lBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxtQkFBbUIsQ0FDZixJQUFJLENBQUMsQ0FBRSxFQUNQLG9CQUFvQixDQUFDLEtBQUssRUFDMUIsb0JBQW9CLENBQUMsTUFBTSxFQUMzQixvQkFBb0IsQ0FBQyxDQUFDLEVBQ3RCLG9CQUFvQixDQUFDLENBQUMsQ0FDekIsQ0FBQztRQUNGLElBQUksb0JBQW9CLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBRSxFQUFFLGVBQWUsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0YsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQXFCLEVBQUUsT0FBZ0I7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0UsTUFBTSxLQUFLLEdBQXdCO1lBQy9CLE9BQU87U0FDVixDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsT0FBTztRQUNILEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBjcmVhdGVGb3JlaWduT2JqZWN0LFxuICAgIGNyZWF0ZUcsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBpc1NlbGVjdGlvbk1vdmluZyxcbiAgICBzZXRBbmdsZUZvckcsXG4gICAgdXBkYXRlRm9yZWlnbk9iamVjdFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBHZW5lcmF0b3IsIEdlbmVyYXRvckV4dHJhRGF0YSwgR2VuZXJhdG9yT3B0aW9ucyB9IGZyb20gJy4uL2dlbmVyYXRvcnMvZ2VuZXJhdG9yJztcbmltcG9ydCB7IENvbW1vbkltYWdlSXRlbSwgY2FuUmVzaXplLCBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBBY3RpdmVHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzL2FjdGl2ZS5nZW5lcmF0b3InO1xuaW1wb3J0IHsgUGxhaXRJbWFnZUJvYXJkLCBJbWFnZUNvbXBvbmVudFJlZiwgSW1hZ2VQcm9wcyB9IGZyb20gJy4vd2l0aC1pbWFnZSc7XG5cbmV4cG9ydCBjb25zdCBGT1JFSUdOX09CSkVDVF9JTUFHRV9DTEFTU19OQU1FID0gJ2ZvcmVpZ24tb2JqZWN0LWltYWdlJztcblxuZXhwb3J0IGludGVyZmFjZSBJbWFnZUdlbmVyYXRvck9wdGlvbnM8VD4ge1xuICAgIGdldFJlY3RhbmdsZTogKGVsZW1lbnQ6IFQpID0+IFJlY3RhbmdsZUNsaWVudDtcbiAgICBnZXRJbWFnZUl0ZW06IChlbGVtZW50OiBUKSA9PiBDb21tb25JbWFnZUl0ZW07XG59XG5cbmV4cG9ydCBjbGFzcyBJbWFnZUdlbmVyYXRvcjxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50PiBleHRlbmRzIEdlbmVyYXRvcjxcbiAgICBULFxuICAgIEdlbmVyYXRvckV4dHJhRGF0YSxcbiAgICBJbWFnZUdlbmVyYXRvck9wdGlvbnM8VD4gJiBHZW5lcmF0b3JPcHRpb25zXG4+IHtcbiAgICBzdGF0aWMga2V5ID0gJ2ltYWdlLWdlbmVyYXRvcic7XG5cbiAgICBmb3JlaWduT2JqZWN0ITogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ7XG5cbiAgICBpbWFnZUNvbXBvbmVudFJlZiE6IEltYWdlQ29tcG9uZW50UmVmO1xuXG4gICAgYWN0aXZlR2VuZXJhdG9yITogQWN0aXZlR2VuZXJhdG9yO1xuXG4gICAgaXNGb2N1cyA9IGZhbHNlO1xuXG4gICAgZWxlbWVudCE6IFQ7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgYm9hcmQ6IFBsYWl0Qm9hcmQsIHB1YmxpYyBvcHRpb25zOiBJbWFnZUdlbmVyYXRvck9wdGlvbnM8VD4pIHtcbiAgICAgICAgc3VwZXIoYm9hcmQsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNhbkRyYXcoZWxlbWVudDogVCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLm9wdGlvbnMuZ2V0SW1hZ2VJdGVtKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGRyYXcoZWxlbWVudDogVCk6IFNWR0dFbGVtZW50IHtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgY29uc3QgZyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgY29uc3QgZm9yZWlnblJlY3RhbmdsZSA9IHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgIHRoaXMuZm9yZWlnbk9iamVjdCA9IGNyZWF0ZUZvcmVpZ25PYmplY3QoZm9yZWlnblJlY3RhbmdsZS54LCBmb3JlaWduUmVjdGFuZ2xlLnksIGZvcmVpZ25SZWN0YW5nbGUud2lkdGgsIGZvcmVpZ25SZWN0YW5nbGUuaGVpZ2h0KTtcbiAgICAgICAgdGhpcy5mb3JlaWduT2JqZWN0LmNsYXNzTGlzdC5hZGQoRk9SRUlHTl9PQkpFQ1RfSU1BR0VfQ0xBU1NfTkFNRSk7XG4gICAgICAgIGcuYXBwZW5kKHRoaXMuZm9yZWlnbk9iamVjdCk7XG4gICAgICAgIGNvbnN0IHByb3BzOiBJbWFnZVByb3BzID0ge1xuICAgICAgICAgICAgYm9hcmQ6IHRoaXMuYm9hcmQsXG4gICAgICAgICAgICBpbWFnZUl0ZW06IHRoaXMub3B0aW9ucy5nZXRJbWFnZUl0ZW0oZWxlbWVudCksXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgZ2V0UmVjdGFuZ2xlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaW1hZ2VDb21wb25lbnRSZWYgPSAoKHRoaXMuYm9hcmQgYXMgdW5rbm93bikgYXMgUGxhaXRJbWFnZUJvYXJkKS5yZW5kZXJJbWFnZSh0aGlzLmZvcmVpZ25PYmplY3QsIHByb3BzKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBBY3RpdmVHZW5lcmF0b3IodGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoIShzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTdHJva2VPcGFjaXR5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpIHx8ICFzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldFJlY3RhbmdsZSh0aGlzLmVsZW1lbnQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhhc1Jlc2l6ZUhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWRJbWFnZUVsZW1lbnQgPSBjYW5SZXNpemUodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkSW1hZ2UgPSAhIWdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZSh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNTZWxlY3RlZEltYWdlIHx8IGlzU2VsZWN0ZWRJbWFnZUVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZztcbiAgICB9XG5cbiAgICB1cGRhdGVJbWFnZShub2RlRzogU1ZHR0VsZW1lbnQsIHByZXZpb3VzOiBULCBjdXJyZW50OiBUKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGN1cnJlbnQ7XG4gICAgICAgIGlmIChwcmV2aW91cyAhPT0gY3VycmVudCAmJiB0aGlzLmltYWdlQ29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgICAgICAgICBpbWFnZUl0ZW06IHRoaXMub3B0aW9ucy5nZXRJbWFnZUl0ZW0oY3VycmVudCksXG4gICAgICAgICAgICAgICAgZWxlbWVudDogY3VycmVudCxcbiAgICAgICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoY3VycmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VDb21wb25lbnRSZWYudXBkYXRlKHByb3BzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50Rm9yZWlnbk9iamVjdCA9IHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoY3VycmVudCk7XG4gICAgICAgIHVwZGF0ZUZvcmVpZ25PYmplY3QoXG4gICAgICAgICAgICB0aGlzLmchLFxuICAgICAgICAgICAgY3VycmVudEZvcmVpZ25PYmplY3Qud2lkdGgsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC5oZWlnaHQsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC54LFxuICAgICAgICAgICAgY3VycmVudEZvcmVpZ25PYmplY3QueVxuICAgICAgICApO1xuICAgICAgICBpZiAoY3VycmVudEZvcmVpZ25PYmplY3QgJiYgY3VycmVudC5hbmdsZSkge1xuICAgICAgICAgICAgc2V0QW5nbGVGb3JHKHRoaXMuZyEsIFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludChjdXJyZW50Rm9yZWlnbk9iamVjdCksIGN1cnJlbnQuYW5nbGUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGl2ZUcgPSBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyhjdXJyZW50LCBhY3RpdmVHLCB7IHNlbGVjdGVkOiB0aGlzLmlzRm9jdXMgfSk7XG4gICAgfVxuXG4gICAgc2V0Rm9jdXMoZWxlbWVudDogUGxhaXRFbGVtZW50LCBpc0ZvY3VzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNGb2N1cyA9IGlzRm9jdXM7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUcgPSBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyhlbGVtZW50LCBhY3RpdmVHLCB7IHNlbGVjdGVkOiBpc0ZvY3VzIH0pO1xuICAgICAgICBjb25zdCBwcm9wczogUGFydGlhbDxJbWFnZVByb3BzPiA9IHtcbiAgICAgICAgICAgIGlzRm9jdXNcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5pbWFnZUNvbXBvbmVudFJlZi51cGRhdGUocHJvcHMpO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5pbWFnZUNvbXBvbmVudFJlZj8uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvcj8uZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { IS_TEXT_EDITABLE, MERGING, RectangleClient, createForeignObject, createG, setAngleForG, toHostPoint, toViewBoxPoint, updateForeignObject, updateForeignObjectWidth } from '@plait/core';
1
+ import { IS_TEXT_EDITABLE, MERGING, RectangleClient, createForeignObject, createG, debounce, setAngleForG, toHostPoint, toViewBoxPoint, updateForeignObject, updateForeignObjectWidth } from '@plait/core';
2
2
  import { fromEvent, timer } from 'rxjs';
3
3
  import { Editor, Range, Node, Transforms, Operation } from 'slate';
4
4
  import { measureElement } from './text-measure';
@@ -7,6 +7,15 @@ export class TextManage {
7
7
  this.board = board;
8
8
  this.options = options;
9
9
  this.isEditing = false;
10
+ // add debounce to avoid trigger more times(from onChange and onComposition) onChange when user is typing chinese
11
+ // be going to attract board children are overwritten when fired more times onChange(eg: board is embed in editor)
12
+ this.textChange = debounce((data) => {
13
+ if (!data) {
14
+ return;
15
+ }
16
+ this.options.onChange && this.options.onChange({ ...data });
17
+ MERGING.set(this.board, true);
18
+ }, 0);
10
19
  this.getSize = (element) => {
11
20
  const computedStyle = window.getComputedStyle(this.foreignObject.children[0]);
12
21
  const fontFamily = computedStyle.fontFamily;
@@ -37,8 +46,7 @@ export class TextManage {
37
46
  onChange: (data) => {
38
47
  if (data.operations.some(op => !Operation.isSelectionOperation(op))) {
39
48
  const { width, height } = this.getSize();
40
- this.options.onChange && this.options.onChange({ ...data, width, height });
41
- MERGING.set(this.board, true);
49
+ this.textChange({ ...data, width, height });
42
50
  }
43
51
  },
44
52
  afterInit: (editor) => {
@@ -48,8 +56,7 @@ export class TextManage {
48
56
  const fakeRoot = buildCompositionData(this.editor, event.data);
49
57
  if (fakeRoot) {
50
58
  const sizeData = this.getSize(fakeRoot.children[0]);
51
- this.options.onChange && this.options.onChange(sizeData);
52
- MERGING.set(this.board, true);
59
+ this.textChange(sizeData);
53
60
  }
54
61
  }
55
62
  };
@@ -71,7 +78,7 @@ export class TextManage {
71
78
  };
72
79
  this.textComponentRef.update(props);
73
80
  }
74
- edit(callback) {
81
+ edit(callback, exitEdit) {
75
82
  this.isEditing = true;
76
83
  IS_TEXT_EDITABLE.set(this.board, true);
77
84
  const props = {
@@ -95,7 +102,7 @@ export class TextManage {
95
102
  if (event.isComposing) {
96
103
  return;
97
104
  }
98
- if (event.key === 'Escape' || (event.key === 'Enter' && !event.shiftKey) || event.key === 'Tab') {
105
+ if (event.key === 'Escape' || event.key === 'Tab' || (exitEdit ? exitEdit(event) : false)) {
99
106
  event.preventDefault();
100
107
  event.stopPropagation();
101
108
  exitCallback();
@@ -135,4 +142,4 @@ export const buildCompositionData = (editor, data) => {
135
142
  }
136
143
  return null;
137
144
  };
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1tYW5hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RleHQvdGV4dC1tYW5hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGdCQUFnQixFQUNoQixPQUFPLEVBR1AsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsWUFBWSxFQUNaLFdBQVcsRUFDWCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUMzQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFzQixLQUFLLEVBQVEsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBVWhELE1BQU0sT0FBTyxVQUFVO0lBV25CLFlBQ1ksS0FBaUIsRUFDakIsT0FNUDtRQVBPLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FNZDtRQWxCTCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBNEhsQixZQUFPLEdBQUcsQ0FBQyxPQUFpQixFQUFFLEVBQUU7WUFDNUIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUUsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUM1QyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sTUFBTSxHQUFHLE9BQU8sSUFBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQWEsQ0FBQztZQUMvRCxPQUFP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TUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFvQixDQUFDO1FBQ3RGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM5QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckUsTUFBTSxJQUFJLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENBQVMsQ0FBQztRQUN4RCxjQUFjLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJU19URVhUX0VESVRBQkxFLFxuICAgIE1FUkdJTkcsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQb2ludCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgY3JlYXRlRm9yZWlnbk9iamVjdCxcbiAgICBjcmVhdGVHLFxuICAgIHNldEFuZ2xlRm9yRyxcbiAgICB0b0hvc3RQb2ludCxcbiAgICB0b1ZpZXdCb3hQb2ludCxcbiAgICB1cGRhdGVGb3JlaWduT2JqZWN0LFxuICAgIHVwZGF0ZUZvcmVpZ25PYmplY3RXaWR0aFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQsIE5vZGVFbnRyeSwgUmFuZ2UsIFRleHQsIE5vZGUsIFRyYW5zZm9ybXMsIE9wZXJhdGlvbiB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFBsYWl0VGV4dEJvYXJkLCBUZXh0UGx1Z2luIH0gZnJvbSAnLi93aXRoLXRleHQnO1xuaW1wb3J0IHsgbWVhc3VyZUVsZW1lbnQgfSBmcm9tICcuL3RleHQtbWVhc3VyZSc7XG5pbXBvcnQgeyBUZXh0Q2hhbmdlRGF0YSwgVGV4dENvbXBvbmVudFJlZiwgVGV4dFByb3BzIH0gZnJvbSAnLi93aXRoLXRleHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRNYW5hZ2VDaGFuZ2VEYXRhIHtcbiAgICBuZXdUZXh0PzogRWxlbWVudDtcbiAgICBvcGVyYXRpb25zPzogT3BlcmF0aW9uW107XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFRleHRNYW5hZ2Uge1xuICAgIGlzRWRpdGluZyA9IGZhbHNlO1xuXG4gICAgZWRpdG9yITogRWRpdG9yO1xuXG4gICAgZyE6IFNWR0dFbGVtZW50O1xuXG4gICAgZm9yZWlnbk9iamVjdCE6IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50O1xuXG4gICAgdGV4dENvbXBvbmVudFJlZiE6IFRleHRDb21wb25lbnRSZWY7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBib2FyZDogUGxhaXRCb2FyZCxcbiAgICAgICAgcHJpdmF0ZSBvcHRpb25zOiB7XG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IFJlY3RhbmdsZUNsaWVudDtcbiAgICAgICAgICAgIG9uQ2hhbmdlPzogKGRhdGE6IFRleHRNYW5hZ2VDaGFuZ2VEYXRhKSA9PiB2b2lkO1xuICAgICAgICAgICAgZ2V0UmVuZGVyUmVjdGFuZ2xlPzogKCkgPT4gUmVjdGFuZ2xlQ2xpZW50O1xuICAgICAgICAgICAgZ2V0TWF4V2lkdGg/OiAoKSA9PiBudW1iZXI7XG4gICAgICAgICAgICB0ZXh0UGx1Z2lucz86IFRleHRQbHVnaW5bXTtcbiAgICAgICAgfVxuICAgICkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5nZXRNYXhXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLmdldE1heFdpZHRoID0gKCkgPT4gOTk5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhdyh0ZXh0OiBFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IF9yZWN0YW5nbGUgPSB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKCk7XG4gICAgICAgIHRoaXMuZyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgdGhpcy5mb3JlaWduT2JqZWN0ID0gY3JlYXRlRm9yZWlnbk9iamVjdChfcmVjdGFuZ2xlLngsIF9yZWN0YW5nbGUueSwgX3JlY3RhbmdsZS53aWR0aCwgX3JlY3RhbmdsZS5oZWlnaHQpO1xuICAgICAgICB0aGlzLmcuYXBwZW5kKHRoaXMuZm9yZWlnbk9iamVjdCk7XG4gICAgICAgIHRoaXMuZy5jbGFzc0xpc3QuYWRkKCd0ZXh0Jyk7XG4gICAgICAgIGNvbnN0IHByb3BzOiBUZXh0UHJvcHMgPSB7XG4gICAgICAgICAgICBib2FyZDogdGhpcy5ib2FyZCxcbiAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICB0ZXh0UGx1Z2luczogdGhpcy5vcHRpb25zLnRleHRQbHVnaW5zLFxuICAgICAgICAgICAgb25DaGFuZ2U6IChkYXRhOiBUZXh0Q2hhbmdlRGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhLm9wZXJhdGlvbnMuc29tZShvcCA9PiAhT3BlcmF0aW9uLmlzU2VsZWN0aW9uT3BlcmF0aW9uKG9wKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSB0aGlzLmdldFNpemUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLm9uQ2hhbmdlICYmIHRoaXMub3B0aW9ucy5vbkNoYW5nZSh7IC4uLmRhdGEsIHdpZHRoLCBoZWlnaHQgfSk7XG4gICAgICAgICAgICAgICAgICAgIE1FUkdJTkcuc2V0KHRoaXMuYm9hcmQsIHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhZnRlckluaXQ6IChlZGl0b3I6IEVkaXRvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yID0gZWRpdG9yO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uQ29tcG9zaXRpb246IChldmVudDogQ29tcG9zaXRpb25FdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZha2VSb290ID0gYnVpbGRDb21wb3NpdGlvbkRhdGEodGhpcy5lZGl0b3IsIGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgICAgIGlmIChmYWtlUm9vdCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplRGF0YSA9IHRoaXMuZ2V0U2l6ZShmYWtlUm9vdC5jaGlsZHJlblswXSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vbkNoYW5nZSAmJiB0aGlzLm9wdGlvbnMub25DaGFuZ2Uoc2l6ZURhdGEpO1xuICAgICAgICAgICAgICAgICAgICBNRVJHSU5HLnNldCh0aGlzLmJvYXJkLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudGV4dENvbXBvbmVudFJlZiA9ICgodGhpcy5ib2FyZCBhcyB1bmtub3duKSBhcyBQbGFpdFRleHRCb2FyZCkucmVuZGVyVGV4dCh0aGlzLmZvcmVpZ25PYmplY3QsIHByb3BzKTtcbiAgICB9XG5cbiAgICB1cGRhdGVSZWN0YW5nbGVXaWR0aCh3aWR0aDogbnVtYmVyKSB7XG4gICAgICAgIHVwZGF0ZUZvcmVpZ25PYmplY3RXaWR0aCh0aGlzLmcsIHdpZHRoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVBbmdsZShjZW50ZXJQb2ludDogUG9pbnQsIGFuZ2xlOiBudW1iZXIgPSAwKSB7XG4gICAgICAgIHNldEFuZ2xlRm9yRyh0aGlzLmcsIGNlbnRlclBvaW50LCBhbmdsZSk7XG4gICAgfVxuXG4gICAgdXBkYXRlUmVjdGFuZ2xlKHJlY3RhbmdsZT86IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICBjb25zdCB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfSA9IHJlY3RhbmdsZSB8fCB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKCk7XG4gICAgICAgIHVwZGF0ZUZvcmVpZ25PYmplY3QodGhpcy5nLCB3aWR0aCwgaGVpZ2h0LCB4LCB5KTtcbiAgICB9XG5cbiAgICB1cGRhdGVUZXh0KG5ld1RleHQ6IEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgICAgICB0ZXh0OiBuZXdUZXh0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudGV4dENvbXBvbmVudFJlZi51cGRhdGUocHJvcHMpO1xuICAgIH1cblxuICAgIGVkaXQoY2FsbGJhY2s/OiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuaXNFZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgSVNfVEVYVF9FRElUQUJMRS5zZXQodGhpcy5ib2FyZCwgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IHByb3BzOiBQYXJ0aWFsPFRleHRQcm9wcz4gPSB7XG4gICAgICAgICAgICByZWFkb25seTogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy50ZXh0Q29tcG9uZW50UmVmLnVwZGF0ZShwcm9wcyk7XG4gICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KHRoaXMuZWRpdG9yLCBbMF0pO1xuICAgICAgICBjb25zdCBtb3VzZWRvd24kID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnbW91c2Vkb3duJykuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSB0b1ZpZXdCb3hQb2ludCh0aGlzLmJvYXJkLCB0b0hvc3RQb2ludCh0aGlzLmJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgICAgICBjb25zdCB0ZXh0UmVjID0gdGhpcy5vcHRpb25zLmdldFJlbmRlclJlY3RhbmdsZSA/IHRoaXMub3B0aW9ucy5nZXRSZW5kZXJSZWN0YW5nbGUoKSA6IHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoKTtcbiAgICAgICAgICAgIGNvbnN0IGNsaWNrSW5UZXh0ID0gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSksIHRleHRSZWMpO1xuICAgICAgICAgICAgY29uc3QgaXNBdHRhY2hlZCA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5wbGFpdC1ib2FyZC1hdHRhY2hlZCcpO1xuICAgICAgICAgICAgaWYgKCFjbGlja0luVGV4dCAmJiAhaXNBdHRhY2hlZCkge1xuICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBjb21wb3NpdGlvbiBpbnB1dCBzdGF0ZSwgbGlrZTogQ2hpbmVzZSBJTUUgQ29tcG9zaXRpb24gSW5wdXRcbiAgICAgICAgICAgICAgICB0aW1lcigwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBleGl0Q2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGtleWRvd24kID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5ZG93bicpLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5pc0NvbXBvc2luZykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8IChldmVudC5rZXkgPT09ICdFbnRlcicgJiYgIWV2ZW50LnNoaWZ0S2V5KSB8fCBldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBleGl0Q2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBleGl0Q2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJlY3RhbmdsZSgpO1xuICAgICAgICAgICAgbW91c2Vkb3duJC51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAga2V5ZG93biQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIElTX1RFWFRfRURJVEFCTEUuc2V0KHRoaXMuYm9hcmQsIGZhbHNlKTtcbiAgICAgICAgICAgIE1FUkdJTkcuc2V0KHRoaXMuYm9hcmQsIGZhbHNlKTtcbiAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgICAgICAgICByZWFkb25seTogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMudGV4dENvbXBvbmVudFJlZi51cGRhdGUocHJvcHMpO1xuICAgICAgICAgICAgdGhpcy5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGV4aXRDYWxsYmFjaztcbiAgICB9XG5cbiAgICBnZXRTaXplID0gKGVsZW1lbnQ/OiBFbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmZvcmVpZ25PYmplY3QuY2hpbGRyZW5bMF0pO1xuICAgICAgICBjb25zdCBmb250RmFtaWx5ID0gY29tcHV0ZWRTdHlsZS5mb250RmFtaWx5O1xuICAgICAgICBjb25zdCBmb250U2l6ZSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5mb250U2l6ZSk7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGVsZW1lbnQgfHwgKHRoaXMuZWRpdG9yLmNoaWxkcmVuWzBdIGFzIEVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbWVhc3VyZUVsZW1lbnQoXG4gICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZm9udFNpemU6IGZvbnRTaXplLFxuICAgICAgICAgICAgICAgIGZvbnRGYW1pbHlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuZ2V0TWF4V2lkdGghKClcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgZ2V0VGV4dCA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yLmNoaWxkcmVuWzBdO1xuICAgIH07XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICB0aGlzLmc/LnJlbW92ZSgpO1xuICAgICAgICB0aGlzLnRleHRDb21wb25lbnRSZWY/LmRlc3Ryb3koKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZENvbXBvc2l0aW9uRGF0YSA9IChlZGl0b3I6IEVkaXRvciwgZGF0YTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGVkaXRvci5zZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQoZWRpdG9yLnNlbGVjdGlvbikpIHtcbiAgICAgICAgY29uc3QgW3RleHROb2RlLCB0ZXh0UGF0aF0gPSBFZGl0b3Iubm9kZShlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24pIGFzIE5vZGVFbnRyeTxUZXh0PjtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gZWRpdG9yLnNlbGVjdGlvbi5hbmNob3Iub2Zmc2V0O1xuICAgICAgICBjb25zdCBjbG9uZWRFbGVtZW50ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlZGl0b3IuY2hpbGRyZW5bMF0pKTtcbiAgICAgICAgY29uc3Qgcm9vdCA9IHsgY2hpbGRyZW46IFtjbG9uZWRFbGVtZW50XSB9O1xuICAgICAgICBjb25zdCBuZXdUZXh0U3RyaW5nID0gdGV4dE5vZGUudGV4dC5zbGljZSgwLCBvZmZzZXQgKyAxKSArIGRhdGEgKyB0ZXh0Tm9kZS50ZXh0LnNsaWNlKG9mZnNldCArIDEpO1xuICAgICAgICBjb25zdCBjbG9uZWRUZXh0Tm9kZSA9IE5vZGUuZ2V0KHJvb3QsIHRleHRQYXRoKSBhcyBUZXh0O1xuICAgICAgICBjbG9uZWRUZXh0Tm9kZS50ZXh0ID0gbmV3VGV4dFN0cmluZztcbiAgICAgICAgcmV0dXJuIHJvb3Q7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcbiJdfQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1tYW5hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RleHQvdGV4dC1tYW5hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGdCQUFnQixFQUNoQixPQUFPLEVBR1AsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsUUFBUSxFQUNSLFlBQVksRUFDWixXQUFXLEVBQ1gsY0FBYyxFQUNkLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDM0IsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBc0IsS0FBSyxFQUFRLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVVoRCxNQUFNLE9BQU8sVUFBVTtJQXFCbkIsWUFDWSxLQUFpQixFQUNqQixPQU1QO1FBUE8sVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQU1kO1FBNUJMLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFVbEIsaUhBQWlIO1FBQ2pILGtIQUFrSDtRQUNsSCxlQUFVLEdBQUcsUUFBUSxDQUF1QixDQUFDLElBQTJCLEVBQUUsRUFBRTtZQUN4RSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1IsT0FBTztZQUNYLENBQUM7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxFQUFFLENBQUMs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LEVBQUUsQ0FBQztJQUNyQyxDQUFDO0NBQ0o7QUFFRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE1BQWMsRUFBRSxJQUFZLEVBQUUsRUFBRTtJQUNqRSxJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUMxRCxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQW9CLENBQUM7UUFDdEYsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzlDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRSxNQUFNLElBQUksR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDM0MsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xHLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBUyxDQUFDO1FBQ3hELGNBQWMsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIElTX1RFWFRfRURJVEFCTEUsXG4gICAgTUVSR0lORyxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBvaW50LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBjcmVhdGVGb3JlaWduT2JqZWN0LFxuICAgIGNyZWF0ZUcsXG4gICAgZGVib3VuY2UsXG4gICAgc2V0QW5nbGVGb3JHLFxuICAgIHRvSG9zdFBvaW50LFxuICAgIHRvVmlld0JveFBvaW50LFxuICAgIHVwZGF0ZUZvcmVpZ25PYmplY3QsXG4gICAgdXBkYXRlRm9yZWlnbk9iamVjdFdpZHRoXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVkaXRvciwgRWxlbWVudCwgTm9kZUVudHJ5LCBSYW5nZSwgVGV4dCwgTm9kZSwgVHJhbnNmb3JtcywgT3BlcmF0aW9uIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgUGxhaXRUZXh0Qm9hcmQsIFRleHRQbHVnaW4gfSBmcm9tICcuL3dpdGgtdGV4dCc7XG5pbXBvcnQgeyBtZWFzdXJlRWxlbWVudCB9IGZyb20gJy4vdGV4dC1tZWFzdXJlJztcbmltcG9ydCB7IFRleHRDaGFuZ2VEYXRhLCBUZXh0Q29tcG9uZW50UmVmLCBUZXh0UHJvcHMgfSBmcm9tICcuL3dpdGgtdGV4dCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dE1hbmFnZUNoYW5nZURhdGEge1xuICAgIG5ld1RleHQ/OiBFbGVtZW50O1xuICAgIG9wZXJhdGlvbnM/OiBPcGVyYXRpb25bXTtcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgVGV4dE1hbmFnZSB7XG4gICAgaXNFZGl0aW5nID0gZmFsc2U7XG5cbiAgICBlZGl0b3IhOiBFZGl0b3I7XG5cbiAgICBnITogU1ZHR0VsZW1lbnQ7XG5cbiAgICBmb3JlaWduT2JqZWN0ITogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ7XG5cbiAgICB0ZXh0Q29tcG9uZW50UmVmITogVGV4dENvbXBvbmVudFJlZjtcblxuICAgIC8vIGFkZCBkZWJvdW5jZSB0byBhdm9pZCB0cmlnZ2VyIG1vcmUgdGltZXMoZnJvbSBvbkNoYW5nZSBhbmQgb25Db21wb3NpdGlvbikgb25DaGFuZ2Ugd2hlbiB1c2VyIGlzIHR5cGluZyBjaGluZXNlXG4gICAgLy8gYmUgZ29pbmcgdG8gYXR0cmFjdCBib2FyZCBjaGlsZHJlbiBhcmUgb3ZlcndyaXR0ZW4gd2hlbiBmaXJlZCBtb3JlIHRpbWVzIG9uQ2hhbmdlKGVnOiBib2FyZCBpcyBlbWJlZCBpbiBlZGl0b3IpXG4gICAgdGV4dENoYW5nZSA9IGRlYm91bmNlPFRleHRNYW5hZ2VDaGFuZ2VEYXRhPigoZGF0YT86IFRleHRNYW5hZ2VDaGFuZ2VEYXRhKSA9PiB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3B0aW9ucy5vbkNoYW5nZSAmJiB0aGlzLm9wdGlvbnMub25DaGFuZ2UoeyAuLi5kYXRhIH0pO1xuICAgICAgICBNRVJHSU5HLnNldCh0aGlzLmJvYXJkLCB0cnVlKTtcbiAgICB9LCAwKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgICAgICBwcml2YXRlIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKCkgPT4gUmVjdGFuZ2xlQ2xpZW50O1xuICAgICAgICAgICAgb25DaGFuZ2U/OiAoZGF0YTogVGV4dE1hbmFnZUNoYW5nZURhdGEpID0+IHZvaWQ7XG4gICAgICAgICAgICBnZXRSZW5kZXJSZWN0YW5nbGU/OiAoKSA9PiBSZWN0YW5nbGVDbGllbnQ7XG4gICAgICAgICAgICBnZXRNYXhXaWR0aD86ICgpID0+IG51bWJlcjtcbiAgICAgICAgICAgIHRleHRQbHVnaW5zPzogVGV4dFBsdWdpbltdO1xuICAgICAgICB9XG4gICAgKSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLmdldE1heFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuZ2V0TWF4V2lkdGggPSAoKSA9PiA5OTk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkcmF3KHRleHQ6IEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgX3JlY3RhbmdsZSA9IHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoKTtcbiAgICAgICAgdGhpcy5nID0gY3JlYXRlRygpO1xuICAgICAgICB0aGlzLmZvcmVpZ25PYmplY3QgPSBjcmVhdGVGb3JlaWduT2JqZWN0KF9yZWN0YW5nbGUueCwgX3JlY3RhbmdsZS55LCBfcmVjdGFuZ2xlLndpZHRoLCBfcmVjdGFuZ2xlLmhlaWdodCk7XG4gICAgICAgIHRoaXMuZy5hcHBlbmQodGhpcy5mb3JlaWduT2JqZWN0KTtcbiAgICAgICAgdGhpcy5nLmNsYXNzTGlzdC5hZGQoJ3RleHQnKTtcbiAgICAgICAgY29uc3QgcHJvcHM6IFRleHRQcm9wcyA9IHtcbiAgICAgICAgICAgIGJvYXJkOiB0aGlzLmJvYXJkLFxuICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgIHRleHRQbHVnaW5zOiB0aGlzLm9wdGlvbnMudGV4dFBsdWdpbnMsXG4gICAgICAgICAgICBvbkNoYW5nZTogKGRhdGE6IFRleHRDaGFuZ2VEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEub3BlcmF0aW9ucy5zb21lKG9wID0+ICFPcGVyYXRpb24uaXNTZWxlY3Rpb25PcGVyYXRpb24ob3ApKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMuZ2V0U2l6ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHRDaGFuZ2UoeyAuLi5kYXRhLCB3aWR0aCwgaGVpZ2h0IH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhZnRlckluaXQ6IChlZGl0b3I6IEVkaXRvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yID0gZWRpdG9yO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uQ29tcG9zaXRpb246IChldmVudDogQ29tcG9zaXRpb25FdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZha2VSb290ID0gYnVpbGRDb21wb3NpdGlvbkRhdGEodGhpcy5lZGl0b3IsIGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgICAgIGlmIChmYWtlUm9vdCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplRGF0YSA9IHRoaXMuZ2V0U2l6ZShmYWtlUm9vdC5jaGlsZHJlblswXSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dENoYW5nZShzaXplRGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnRleHRDb21wb25lbnRSZWYgPSAoKHRoaXMuYm9hcmQgYXMgdW5rbm93bikgYXMgUGxhaXRUZXh0Qm9hcmQpLnJlbmRlclRleHQodGhpcy5mb3JlaWduT2JqZWN0LCBwcm9wcyk7XG4gICAgfVxuXG4gICAgdXBkYXRlUmVjdGFuZ2xlV2lkdGgod2lkdGg6IG51bWJlcikge1xuICAgICAgICB1cGRhdGVGb3JlaWduT2JqZWN0V2lkdGgodGhpcy5nLCB3aWR0aCk7XG4gICAgfVxuXG4gICAgdXBkYXRlQW5nbGUoY2VudGVyUG9pbnQ6IFBvaW50LCBhbmdsZTogbnVtYmVyID0gMCkge1xuICAgICAgICBzZXRBbmdsZUZvckcodGhpcy5nLCBjZW50ZXJQb2ludCwgYW5nbGUpO1xuICAgIH1cblxuICAgIHVwZGF0ZVJlY3RhbmdsZShyZWN0YW5nbGU/OiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSByZWN0YW5nbGUgfHwgdGhpcy5vcHRpb25zLmdldFJlY3RhbmdsZSgpO1xuICAgICAgICB1cGRhdGVGb3JlaWduT2JqZWN0KHRoaXMuZywgd2lkdGgsIGhlaWdodCwgeCwgeSk7XG4gICAgfVxuXG4gICAgdXBkYXRlVGV4dChuZXdUZXh0OiBFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgICAgICAgdGV4dDogbmV3VGV4dFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnRleHRDb21wb25lbnRSZWYudXBkYXRlKHByb3BzKTtcbiAgICB9XG5cbiAgICBlZGl0KGNhbGxiYWNrPzogKCkgPT4gdm9pZCwgZXhpdEVkaXQ/OiAoZXZlbnQ6IEV2ZW50KSA9PiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNFZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgSVNfVEVYVF9FRElUQUJMRS5zZXQodGhpcy5ib2FyZCwgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IHByb3BzOiBQYXJ0aWFsPFRleHRQcm9wcz4gPSB7XG4gICAgICAgICAgICByZWFkb25seTogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy50ZXh0Q29tcG9uZW50UmVmLnVwZGF0ZShwcm9wcyk7XG4gICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KHRoaXMuZWRpdG9yLCBbMF0pO1xuICAgICAgICBjb25zdCBtb3VzZWRvd24kID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnbW91c2Vkb3duJykuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSB0b1ZpZXdCb3hQb2ludCh0aGlzLmJvYXJkLCB0b0hvc3RQb2ludCh0aGlzLmJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgICAgICBjb25zdCB0ZXh0UmVjID0gdGhpcy5vcHRpb25zLmdldFJlbmRlclJlY3RhbmdsZSA/IHRoaXMub3B0aW9ucy5nZXRSZW5kZXJSZWN0YW5nbGUoKSA6IHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoKTtcbiAgICAgICAgICAgIGNvbnN0IGNsaWNrSW5UZXh0ID0gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSksIHRleHRSZWMpO1xuICAgICAgICAgICAgY29uc3QgaXNBdHRhY2hlZCA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5wbGFpdC1ib2FyZC1hdHRhY2hlZCcpO1xuICAgICAgICAgICAgaWYgKCFjbGlja0luVGV4dCAmJiAhaXNBdHRhY2hlZCkge1xuICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBjb21wb3NpdGlvbiBpbnB1dCBzdGF0ZSwgbGlrZTogQ2hpbmVzZSBJTUUgQ29tcG9zaXRpb24gSW5wdXRcbiAgICAgICAgICAgICAgICB0aW1lcigwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBleGl0Q2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGtleWRvd24kID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5ZG93bicpLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5pc0NvbXBvc2luZykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8IGV2ZW50LmtleSA9PT0gJ1RhYicgfHwgKGV4aXRFZGl0ID8gZXhpdEVkaXQoZXZlbnQpIDogZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBleGl0Q2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBleGl0Q2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJlY3RhbmdsZSgpO1xuICAgICAgICAgICAgbW91c2Vkb3duJC51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAga2V5ZG93biQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIElTX1RFWFRfRURJVEFCTEUuc2V0KHRoaXMuYm9hcmQsIGZhbHNlKTtcbiAgICAgICAgICAgIE1FUkdJTkcuc2V0KHRoaXMuYm9hcmQsIGZhbHNlKTtcbiAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgICAgICAgICByZWFkb25seTogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMudGV4dENvbXBvbmVudFJlZi51cGRhdGUocHJvcHMpO1xuICAgICAgICAgICAgdGhpcy5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGV4aXRDYWxsYmFjaztcbiAgICB9XG5cbiAgICBnZXRTaXplID0gKGVsZW1lbnQ/OiBFbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmZvcmVpZ25PYmplY3QuY2hpbGRyZW5bMF0pO1xuICAgICAgICBjb25zdCBmb250RmFtaWx5ID0gY29tcHV0ZWRTdHlsZS5mb250RmFtaWx5O1xuICAgICAgICBjb25zdCBmb250U2l6ZSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5mb250U2l6ZSk7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGVsZW1lbnQgfHwgKHRoaXMuZWRpdG9yLmNoaWxkcmVuWzBdIGFzIEVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbWVhc3VyZUVsZW1lbnQoXG4gICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZm9udFNpemU6IGZvbnRTaXplLFxuICAgICAgICAgICAgICAgIGZvbnRGYW1pbHlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuZ2V0TWF4V2lkdGghKClcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgZ2V0VGV4dCA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yLmNoaWxkcmVuWzBdO1xuICAgIH07XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICB0aGlzLmc/LnJlbW92ZSgpO1xuICAgICAgICB0aGlzLnRleHRDb21wb25lbnRSZWY/LmRlc3Ryb3koKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZENvbXBvc2l0aW9uRGF0YSA9IChlZGl0b3I6IEVkaXRvciwgZGF0YTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGVkaXRvci5zZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQoZWRpdG9yLnNlbGVjdGlvbikpIHtcbiAgICAgICAgY29uc3QgW3RleHROb2RlLCB0ZXh0UGF0aF0gPSBFZGl0b3Iubm9kZShlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24pIGFzIE5vZGVFbnRyeTxUZXh0PjtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gZWRpdG9yLnNlbGVjdGlvbi5hbmNob3Iub2Zmc2V0O1xuICAgICAgICBjb25zdCBjbG9uZWRFbGVtZW50ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlZGl0b3IuY2hpbGRyZW5bMF0pKTtcbiAgICAgICAgY29uc3Qgcm9vdCA9IHsgY2hpbGRyZW46IFtjbG9uZWRFbGVtZW50XSB9O1xuICAgICAgICBjb25zdCBuZXdUZXh0U3RyaW5nID0gdGV4dE5vZGUudGV4dC5zbGljZSgwLCBvZmZzZXQgKyAxKSArIGRhdGEgKyB0ZXh0Tm9kZS50ZXh0LnNsaWNlKG9mZnNldCArIDEpO1xuICAgICAgICBjb25zdCBjbG9uZWRUZXh0Tm9kZSA9IE5vZGUuZ2V0KHJvb3QsIHRleHRQYXRoKSBhcyBUZXh0O1xuICAgICAgICBjbG9uZWRUZXh0Tm9kZS50ZXh0ID0gbmV3VGV4dFN0cmluZztcbiAgICAgICAgcmV0dXJuIHJvb3Q7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcbiJdfQ==
@@ -0,0 +1,38 @@
1
+ export function animate(tween, duration, ease, callback) {
2
+ const start = getTimestamp();
3
+ let stopAnimation = false;
4
+ function tick(now) {
5
+ if (stopAnimation) {
6
+ return;
7
+ }
8
+ const elapsed = now - start;
9
+ const t = Math.min(elapsed / duration, 1);
10
+ tween(ease(t));
11
+ if (t < 1) {
12
+ requestAnimationFrame(tick);
13
+ }
14
+ else if (callback) {
15
+ callback();
16
+ }
17
+ }
18
+ requestAnimationFrame(tick);
19
+ return {
20
+ stop: () => (stopAnimation = true),
21
+ start: () => {
22
+ stopAnimation = false;
23
+ requestAnimationFrame(tick);
24
+ }
25
+ };
26
+ }
27
+ export function getTimestamp() {
28
+ if (window.performance && window.performance.now) {
29
+ return window.performance.now();
30
+ }
31
+ else {
32
+ return Date.now();
33
+ }
34
+ }
35
+ export function linear(t) {
36
+ return t;
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvYW5pbWF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsT0FBTyxDQUFDLEtBQTBCLEVBQUUsUUFBZ0IsRUFBRSxJQUFjLEVBQUUsUUFBa0I7SUFDcEcsTUFBTSxLQUFLLEdBQUcsWUFBWSxFQUFFLENBQUM7SUFDN0IsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBRTFCLFNBQVMsSUFBSSxDQUFDLEdBQVc7UUFDckIsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1gsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDNUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ1IscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQzthQUFNLElBQUksUUFBUSxFQUFFLENBQUM7WUFDbEIsUUFBUSxFQUFFLENBQUM7UUFDZixDQUFDO0lBQ0wsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLE9BQU87UUFDSCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDUixhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7S0FDSixDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZO0lBQ3hCLElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9DLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNwQyxDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxDQUFTO0lBQzVCLE9BQU8sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFuaW1hdGVPcHRpb24gPSB7IHN0b3A6ICgpID0+IHZvaWQ7IHN0YXJ0OiAoKSA9PiB2b2lkIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBhbmltYXRlKHR3ZWVuOiAodDogbnVtYmVyKSA9PiB2b2lkLCBkdXJhdGlvbjogbnVtYmVyLCBlYXNlOiBGdW5jdGlvbiwgY2FsbGJhY2s6IEZ1bmN0aW9uKTogQW5pbWF0ZU9wdGlvbiB7XG4gICAgY29uc3Qgc3RhcnQgPSBnZXRUaW1lc3RhbXAoKTtcbiAgICBsZXQgc3RvcEFuaW1hdGlvbiA9IGZhbHNlO1xuXG4gICAgZnVuY3Rpb24gdGljayhub3c6IG51bWJlcikge1xuICAgICAgICBpZiAoc3RvcEFuaW1hdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVsYXBzZWQgPSBub3cgLSBzdGFydDtcbiAgICAgICAgY29uc3QgdCA9IE1hdGgubWluKGVsYXBzZWQgLyBkdXJhdGlvbiwgMSk7XG4gICAgICAgIHR3ZWVuKGVhc2UodCkpO1xuICAgICAgICBpZiAodCA8IDEpIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aWNrKTtcbiAgICAgICAgfSBlbHNlIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aWNrKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBzdG9wOiAoKSA9PiAoc3RvcEFuaW1hdGlvbiA9IHRydWUpLFxuICAgICAgICBzdGFydDogKCkgPT4ge1xuICAgICAgICAgICAgc3RvcEFuaW1hdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2spO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRpbWVzdGFtcCgpIHtcbiAgICBpZiAod2luZG93LnBlcmZvcm1hbmNlICYmIHdpbmRvdy5wZXJmb3JtYW5jZS5ub3cpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gRGF0ZS5ub3coKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsaW5lYXIodDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHQ7XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { DEFAULT_FILL, TRANSPARENT } from '../constants';
2
+ export const getElementArea = (board, element) => {
3
+ const rectangle = board.getRectangle(element);
4
+ if (rectangle) {
5
+ return rectangle.width * rectangle.height;
6
+ }
7
+ return 0;
8
+ };
9
+ export const sortElementsByArea = (board, elements, direction = 'asc') => {
10
+ return elements.sort((a, b) => {
11
+ const areaA = getElementArea(board, a);
12
+ const areaB = getElementArea(board, b);
13
+ return direction === 'asc' ? areaA - areaB : areaB - areaA;
14
+ });
15
+ };
16
+ export const isFilled = (fill) => {
17
+ return fill && fill !== DEFAULT_FILL && fill !== TRANSPARENT;
18
+ };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2VsZW1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBcUIsRUFBRSxFQUFFO0lBQ3ZFLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNaLE9BQU8sU0FBUyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO0lBQzlDLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBaUIsRUFBRSxRQUF3QixFQUFFLFlBQTRCLEtBQUssRUFBRSxFQUFFO0lBQ2pILE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMxQixNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkMsT0FBTyxTQUFTLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQy9ELENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDckMsT0FBTyxJQUFJLElBQUksSUFBSSxLQUFLLFlBQVksSUFBSSxJQUFJLEtBQUssV0FBVyxDQUFDO0FBQ2pFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IERFRkFVTFRfRklMTCwgVFJBTlNQQVJFTlQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudEFyZWEgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IGJvYXJkLmdldFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICBpZiAocmVjdGFuZ2xlKSB7XG4gICAgICAgIHJldHVybiByZWN0YW5nbGUud2lkdGggKiByZWN0YW5nbGUuaGVpZ2h0O1xuICAgIH1cbiAgICByZXR1cm4gMDtcbn07XG5cbmV4cG9ydCBjb25zdCBzb3J0RWxlbWVudHNCeUFyZWEgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSwgZGlyZWN0aW9uOiAnZGVzYycgfCAnYXNjJyA9ICdhc2MnKSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnRzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgY29uc3QgYXJlYUEgPSBnZXRFbGVtZW50QXJlYShib2FyZCwgYSk7XG4gICAgICAgIGNvbnN0IGFyZWFCID0gZ2V0RWxlbWVudEFyZWEoYm9hcmQsIGIpO1xuICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09PSAnYXNjJyA/IGFyZWFBIC0gYXJlYUIgOiBhcmVhQiAtIGFyZWFBO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRmlsbGVkID0gKGZpbGw6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiBmaWxsICYmIGZpbGwgIT09IERFRkFVTFRfRklMTCAmJiBmaWxsICE9PSBUUkFOU1BBUkVOVDtcbn07XG4iXX0=
@@ -47,4 +47,4 @@ export const addElementOfFocusedImage = (board, element) => {
47
47
  export const removeElementOfFocusedImage = (board) => {
48
48
  BOARD_TO_ELEMENT_OF_FOCUSED_IMAGE.delete(board);
49
49
  };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsVUFBVSxFQUFnQixNQUFNLGFBQWEsQ0FBQztBQVN0RSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FDdkIsS0FBaUIsRUFDakIsaUJBQXlCLEVBQ3pCLE1BQThDLEVBQzlDLG1CQUE2QixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUM1RCxFQUFFO0lBQ0EsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2QyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUN6RCxTQUFTLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7UUFDbEMsVUFBVSxDQUFDLEtBQUssRUFBRyxLQUFLLENBQUMsTUFBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRixDQUFDLENBQUM7SUFDRixTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEtBQUssRUFDM0IsS0FBaUIsRUFDakIsU0FBZSxFQUNmLGlCQUF5QixFQUN6QixNQUE4QyxFQUNoRCxFQUFFO0lBQ0EsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUNULE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDZixNQUFNLFlBQVksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUF3QyxFQUFFLEVBQUU7UUFDL0YsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDckIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUVuRCxTQUFTLEdBQUc7UUFDUixHQUFHO1FBQ0gsS0FBSztRQUNMLE1BQU07S0FDVCxDQUFDO0lBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQUVGLFNBQVMsWUFBWSxDQUFDLElBQVUsRUFBRSxpQkFBeUI7SUFDdkQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzFCLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QyxLQUFLLENBQUMsTUFBTSxHQUFHO1lBQ1gsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUM7WUFDaEMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUM5RSxPQUFPLENBQ0gsS0FBSyxDQUFDLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FDMUgsQ0FBQztRQUNOLENBQUMsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELE1BQU0saUNBQWlDLEdBQUcsSUFBSSxPQUFPLEVBQTRCLENBQUM7QUFFbEYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDMUQsT0FBTyxpQ0FBaUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQXFCLEVBQUUsRUFBRTtJQUNqRixpQ0FBaUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzFELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQzdELGlDQUFpQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNwRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlLCBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBJbWFnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS9pbWFnZS1iYXNlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uSW1hZ2VJdGVtIHtcbiAgICB1cmw6IHN0cmluZztcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0SW1hZ2UgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgZGVmYXVsdEltYWdlV2lkdGg6IG51bWJlcixcbiAgICBoYW5kbGU6IChjb21tb25JbWFnZTogQ29tbW9uSW1hZ2VJdGVtKSA9PiB2b2lkLFxuICAgIGFjY2VwdEltYWdlVHlwZXM6IHN0cmluZ1tdID0gWydwbmcnLCAnanBlZycsICdnaWYnLCAnYm1wJ11cbikgPT4ge1xuICAgIGNvbnN0IGlucHV0RmlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgaW5wdXRGaWxlLnNldEF0dHJpYnV0ZSgndHlwZScsICdmaWxlJyk7XG4gICAgY29uc3QgYWNjZXB0SW1hZ2VUeXBlc1N0cmluZyA9ICcuJyArIGFjY2VwdEltYWdlVHlwZXMuam9pbignLC4nKTtcbiAgICBpbnB1dEZpbGUuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCBhY2NlcHRJbWFnZVR5cGVzU3RyaW5nKTtcbiAgICBpbnB1dEZpbGUub25jaGFuZ2UgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgIGJ1aWxkSW1hZ2UoYm9hcmQsIChldmVudC50YXJnZXQgYXMgYW55KS5maWxlc1swXSwgZGVmYXVsdEltYWdlV2lkdGgsIGhhbmRsZSk7XG4gICAgfTtcbiAgICBpbnB1dEZpbGUuY2xpY2soKTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEltYWdlID0gYXN5bmMgKFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIGltYWdlRmlsZTogRmlsZSxcbiAgICBkZWZhdWx0SW1hZ2VXaWR0aDogbnVtYmVyLFxuICAgIGhhbmRsZTogKGNvbW1vbkltYWdlOiBDb21tb25JbWFnZUl0ZW0pID0+IHZvaWRcbikgPT4ge1xuICAgIGxldCB3aWR0aCA9IDAsXG4gICAgICAgIGhlaWdodCA9IDA7XG4gICAgYXdhaXQgZ2V0SW1hZ2VTaXplKGltYWdlRmlsZSwgZGVmYXVsdEltYWdlV2lkdGgpLnRoZW4oKHZhbHVlOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0pID0+IHtcbiAgICAgICAgd2lkdGggPSB2YWx1ZS53aWR0aDtcbiAgICAgICAgaGVpZ2h0ID0gdmFsdWUuaGVpZ2h0O1xuICAgIH0pO1xuXG4gICAgbGV0IGltYWdlSXRlbSA9IG51bGw7XG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChpbWFnZUZpbGUpO1xuICAgIGNvbnN0IGNvbnRleHQgPSBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGV4dChib2FyZCk7XG4gICAgY29udGV4dC5zZXRVcGxvYWRpbmdGaWxlKHsgdXJsLCBmaWxlOiBpbWFnZUZpbGUgfSk7XG5cbiAgICBpbWFnZUl0ZW0gPSB7XG4gICAgICAgIHVybCxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodFxuICAgIH07XG4gICAgaGFuZGxlKGltYWdlSXRlbSk7XG59O1xuXG5mdW5jdGlvbiBnZXRJbWFnZVNpemUoZmlsZTogRmlsZSwgZGVmYXVsdEltYWdlV2lkdGg6IG51bWJlcik6IFByb21pc2U8eyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICAgICAgaW1hZ2Uuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcblxuICAgICAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gZGVmYXVsdEltYWdlV2lkdGg7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSAoZGVmYXVsdEltYWdlV2lkdGggKiBpbWFnZS5uYXR1cmFsSGVpZ2h0KSAvIGltYWdlLm5hdHVyYWxXaWR0aDtcbiAgICAgICAgICAgIHJlc29sdmUoXG4gICAgICAgICAgICAgICAgaW1hZ2UubmF0dXJhbFdpZHRoID4gZGVmYXVsdEltYWdlV2lkdGggPyB7IHdpZHRoLCBoZWlnaHQgfSA6IHsgd2lkdGg6IGltYWdlLm5hdHVyYWxXaWR0aCwgaGVpZ2h0OiBpbWFnZS5uYXR1cmFsSGVpZ2h0IH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH07XG4gICAgfSk7XG59XG5cbmNvbnN0IEJPQVJEX1RPX0VMRU1FTlRfT0ZfRk9DVVNFRF9JTUFHRSA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudD4oKTtcblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZSA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIHJldHVybiBCT0FSRF9UT19FTEVNRU5UX09GX0ZPQ1VTRURfSU1BR0UuZ2V0KGJvYXJkKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIEJPQVJEX1RPX0VMRU1FTlRfT0ZfRk9DVVNFRF9JTUFHRS5zZXQoYm9hcmQsIGVsZW1lbnQpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUVsZW1lbnRPZkZvY3VzZWRJbWFnZSA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIEJPQVJEX1RPX0VMRU1FTlRfT0ZfRk9DVVNFRF9JTUFHRS5kZWxldGUoYm9hcmQpO1xufTtcbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sYUFBYSxDQUFDO0FBUXZELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUN2QixLQUFpQixFQUNqQixpQkFBeUIsRUFDekIsTUFBOEMsRUFDOUMsbUJBQTZCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQzVELEVBQUU7SUFDQSxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRSxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3pELFNBQVMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtRQUNsQyxVQUFVLENBQUMsS0FBSyxFQUFHLEtBQUssQ0FBQyxNQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pGLENBQUMsQ0FBQztJQUNGLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUMzQixLQUFpQixFQUNqQixTQUFlLEVBQ2YsaUJBQXlCLEVBQ3pCLE1BQThDLEVBQ2hELEVBQUU7SUFDQSxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQ1QsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNmLE1BQU0sWUFBWSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQXdDLEVBQUUsRUFBRTtRQUMvRixLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksU0FBUyxHQUFHLElBQUksQ0FBQztJQUNyQixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRW5ELFNBQVMsR0FBRztRQUNSLEdBQUc7UUFDSCxLQUFLO1FBQ0wsTUFBTTtLQUNULENBQUM7SUFDRixNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBRUYsU0FBUyxZQUFZLENBQUMsSUFBVSxFQUFFLGlCQUF5QjtJQUN2RCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7UUFDMUIsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRDLEtBQUssQ0FBQyxNQUFNLEdBQUc7WUFDWCxNQUFNLEtBQUssR0FBRyxpQkFBaUIsQ0FBQztZQUNoQyxNQUFNLE1BQU0sR0FBRyxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQzlFLE9BQU8sQ0FDSCxLQUFLLENBQUMsWUFBWSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUMxSCxDQUFDO1FBQ04sQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsTUFBTSxpQ0FBaUMsR0FBRyxJQUFJLE9BQU8sRUFBNEIsQ0FBQztBQUVsRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUMxRCxPQUFPLGlDQUFpQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBcUIsRUFBRSxFQUFFO0lBQ2pGLGlDQUFpQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDMUQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDN0QsaUNBQWlDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBDb21tb25JbWFnZUl0ZW0ge1xuICAgIHVybDogc3RyaW5nO1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RJbWFnZSA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBkZWZhdWx0SW1hZ2VXaWR0aDogbnVtYmVyLFxuICAgIGhhbmRsZTogKGNvbW1vbkltYWdlOiBDb21tb25JbWFnZUl0ZW0pID0+IHZvaWQsXG4gICAgYWNjZXB0SW1hZ2VUeXBlczogc3RyaW5nW10gPSBbJ3BuZycsICdqcGVnJywgJ2dpZicsICdibXAnXVxuKSA9PiB7XG4gICAgY29uc3QgaW5wdXRGaWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICBpbnB1dEZpbGUuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2ZpbGUnKTtcbiAgICBjb25zdCBhY2NlcHRJbWFnZVR5cGVzU3RyaW5nID0gJy4nICsgYWNjZXB0SW1hZ2VUeXBlcy5qb2luKCcsLicpO1xuICAgIGlucHV0RmlsZS5zZXRBdHRyaWJ1dGUoJ2FjY2VwdCcsIGFjY2VwdEltYWdlVHlwZXNTdHJpbmcpO1xuICAgIGlucHV0RmlsZS5vbmNoYW5nZSA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgYnVpbGRJbWFnZShib2FyZCwgKGV2ZW50LnRhcmdldCBhcyBhbnkpLmZpbGVzWzBdLCBkZWZhdWx0SW1hZ2VXaWR0aCwgaGFuZGxlKTtcbiAgICB9O1xuICAgIGlucHV0RmlsZS5jbGljaygpO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkSW1hZ2UgPSBhc3luYyAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgaW1hZ2VGaWxlOiBGaWxlLFxuICAgIGRlZmF1bHRJbWFnZVdpZHRoOiBudW1iZXIsXG4gICAgaGFuZGxlOiAoY29tbW9uSW1hZ2U6IENvbW1vbkltYWdlSXRlbSkgPT4gdm9pZFxuKSA9PiB7XG4gICAgbGV0IHdpZHRoID0gMCxcbiAgICAgICAgaGVpZ2h0ID0gMDtcbiAgICBhd2FpdCBnZXRJbWFnZVNpemUoaW1hZ2VGaWxlLCBkZWZhdWx0SW1hZ2VXaWR0aCkudGhlbigodmFsdWU6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICB3aWR0aCA9IHZhbHVlLndpZHRoO1xuICAgICAgICBoZWlnaHQgPSB2YWx1ZS5oZWlnaHQ7XG4gICAgfSk7XG5cbiAgICBsZXQgaW1hZ2VJdGVtID0gbnVsbDtcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGltYWdlRmlsZSk7XG4gICAgY29uc3QgY29udGV4dCA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250ZXh0KGJvYXJkKTtcbiAgICBjb250ZXh0LnNldFVwbG9hZGluZ0ZpbGUoeyB1cmwsIGZpbGU6IGltYWdlRmlsZSB9KTtcblxuICAgIGltYWdlSXRlbSA9IHtcbiAgICAgICAgdXJsLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0XG4gICAgfTtcbiAgICBoYW5kbGUoaW1hZ2VJdGVtKTtcbn07XG5cbmZ1bmN0aW9uIGdldEltYWdlU2l6ZShmaWxlOiBGaWxlLCBkZWZhdWx0SW1hZ2VXaWR0aDogbnVtYmVyKTogUHJvbWlzZTx7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgICAgICBpbWFnZS5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpO1xuXG4gICAgICAgIGltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBkZWZhdWx0SW1hZ2VXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IChkZWZhdWx0SW1hZ2VXaWR0aCAqIGltYWdlLm5hdHVyYWxIZWlnaHQpIC8gaW1hZ2UubmF0dXJhbFdpZHRoO1xuICAgICAgICAgICAgcmVzb2x2ZShcbiAgICAgICAgICAgICAgICBpbWFnZS5uYXR1cmFsV2lkdGggPiBkZWZhdWx0SW1hZ2VXaWR0aCA/IHsgd2lkdGgsIGhlaWdodCB9IDogeyB3aWR0aDogaW1hZ2UubmF0dXJhbFdpZHRoLCBoZWlnaHQ6IGltYWdlLm5hdHVyYWxIZWlnaHQgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfTtcbiAgICB9KTtcbn1cblxuY29uc3QgQk9BUkRfVE9fRUxFTUVOVF9PRl9GT0NVU0VEX0lNQUdFID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50PigpO1xuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudE9mRm9jdXNlZEltYWdlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgcmV0dXJuIEJPQVJEX1RPX0VMRU1FTlRfT0ZfRk9DVVNFRF9JTUFHRS5nZXQoYm9hcmQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZEVsZW1lbnRPZkZvY3VzZWRJbWFnZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgQk9BUkRfVE9fRUxFTUVOVF9PRl9GT0NVU0VEX0lNQUdFLnNldChib2FyZCwgZWxlbWVudCk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlRWxlbWVudE9mRm9jdXNlZEltYWdlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgQk9BUkRfVE9fRUxFTUVOVF9PRl9GT0NVU0VEX0lNQUdFLmRlbGV0ZShib2FyZCk7XG59O1xuIl19
@@ -12,4 +12,6 @@ export * from './vector';
12
12
  export * from './math';
13
13
  export * from './drawing';
14
14
  export * from './rotate';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNpemUnO1xuZXhwb3J0ICogZnJvbSAnLi9saW5lLXBhdGgnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LW9ydGhvZ29uYWwtcm91dGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2hvdC1rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGlvbi1tb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vZWxib3ctbGluZS1yb3V0ZSc7XG5leHBvcnQgKiBmcm9tICcuL21lbW9yaXplJztcbmV4cG9ydCAqIGZyb20gJy4vdmVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWF0aCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYXdpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3RhdGUnO1xuIl19
15
+ export * from './elements';
16
+ export * from './animate';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNpemUnO1xuZXhwb3J0ICogZnJvbSAnLi9saW5lLXBhdGgnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LW9ydGhvZ29uYWwtcm91dGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2hvdC1rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGlvbi1tb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vZWxib3ctbGluZS1yb3V0ZSc7XG5leHBvcnQgKiBmcm9tICcuL21lbW9yaXplJztcbmV4cG9ydCAqIGZyb20gJy4vdmVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWF0aCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYXdpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGVtZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2FuaW1hdGUnO1xuIl19
@@ -102,4 +102,4 @@ export const getLineHeightByFontSize = (fontSize) => {
102
102
  return fontSize * 1.5;
103
103
  };
104
104
  export const ELEMENT_TO_TEXT_MANAGES = new WeakMap();
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBVSxJQUFJLEVBQVcsTUFBTSxPQUFPLENBQUM7QUFJOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBcUIsRUFBRSxFQUFFO0lBQ3BELE9BQU8sdUJBQXVCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUN4RCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUM3RCxPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDeEMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDeEQsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFD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QUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7SUFDeEQsSUFBSSxRQUFRLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDbEIsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxRQUFRLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDbEIsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQzFCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUF3QyxJQUFJLE9BQU8sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBnZXRTZWxlY3RlZEVsZW1lbnRzIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgRWRpdG9yLCBOb2RlLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgVGV4dE1hbmFnZSB9IGZyb20gJy4uL3RleHQvdGV4dC1tYW5hZ2UnO1xuaW1wb3J0IHsgQWxpZ25tZW50LCBDdXN0b21UZXh0LCBQYXJhZ3JhcGhFbGVtZW50IH0gZnJvbSAnLi4vdGV4dC90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRUZXh0TWFuYWdlcyA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICByZXR1cm4gRUxFTUVOVF9UT19URVhUX01BTkFHRVMuZ2V0KGVsZW1lbnQpIHx8IFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZpcnN0VGV4dE1hbmFnZSA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCB0ZXh0TWFuYWdlID0gZ2V0VGV4dE1hbmFnZXMoZWxlbWVudClbMF07XG4gICAgaWYgKCF0ZXh0TWFuYWdlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignY2FuIG5vdCBmaW5kIHRleHRNYW5hZ2UnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRleHRNYW5hZ2U7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGV4dEVkaXRvcnNCeUVsZW1lbnQgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgcmV0dXJuIGdldFRleHRNYW5hZ2VzKGVsZW1lbnQpLm1hcChtYW5hZ2UgPT4ge1xuICAgICAgICByZXR1cm4gbWFuYWdlLmVkaXRvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdFRleHRFZGl0b3IgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgdGV4dEVkaXRvciA9IGdldFRleHRFZGl0b3JzQnlFbGVtZW50KGVsZW1lbnQpWzBdO1xuICAgIGlmICghdGV4dEVkaXRvcikge1xuICAgICAgICBjb25zb2xlLndhcm4oJ2NhbiBub3QgZmluZCB0ZXh0TWFuYWdlJyk7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0RWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRGaXJzdFRleHRFZGl0b3IgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgbGV0IGZpcnN0RWRpdG9yOiBFZGl0b3IgfCBudWxsID0gbnVsbDtcbiAgICBzZWxlY3RlZEVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIGNvbnN0IGVkaXRvcnMgPSBnZXRUZXh0RWRpdG9yc0J5RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgaWYgKCFmaXJzdEVkaXRvciAmJiBlZGl0b3JzICYmIGVkaXRvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZmlyc3RFZGl0b3IgPSBlZGl0b3JzWzBdO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZpcnN0RWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRzVGV4dCA9IChlbGVtZW50czogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICByZXR1cm4gZWxlbWVudHNcbiAgICAgICAgLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWRpdG9ycyA9IGdldFRleHRFZGl0b3JzQnlFbGVtZW50KGl0ZW0pO1xuICAgICAgICAgICAgICAgIGlmIChlZGl0b3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZWRpdG9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChlZGl0b3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHRzRW50cnkgPSBOb2RlLnRleHRzKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGV4dHNFbnRyeSkucmVkdWNlKCh0b3RhbCwgdGV4dCkgPT4gKHRvdGFsICs9IHRleHRbMF0udGV4dCksICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAuam9pbignICcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0pXG4gICAgICAgIC5qb2luKCcgJyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGV4dEVkaXRvcnMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzPzogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZWxlbWVudHMgfHwgZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHRleHRNYW5hZ2VzOiBUZXh0TWFuYWdlW10gPSBbXTtcbiAgICAgICAgc2VsZWN0ZWRFbGVtZW50cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgdGV4dE1hbmFnZXMucHVzaCguLi5nZXRUZXh0TWFuYWdlcyhpdGVtKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBlZGl0aW5nVGV4dE1hbmFnZSA9IHRleHRNYW5hZ2VzLmZpbmQodGV4dE1hbmFnZSA9PiB0ZXh0TWFuYWdlLmlzRWRpdGluZyk7XG4gICAgICAgIGlmIChlZGl0aW5nVGV4dE1hbmFnZSkge1xuICAgICAgICAgICAgcmV0dXJuIFtlZGl0aW5nVGV4dE1hbmFnZS5lZGl0b3JdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZXh0TWFuYWdlcy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS5lZGl0b3I7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVkaXRpbmdUZXh0RWRpdG9yID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50cz86IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGVsZW1lbnRzIHx8IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGNvbnN0IHRleHRNYW5hZ2VzOiBUZXh0TWFuYWdlW10gPSBbXTtcbiAgICBzZWxlY3RlZEVsZW1lbnRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIHRleHRNYW5hZ2VzLnB1c2goLi4uZ2V0VGV4dE1hbmFnZXMoaXRlbSkpO1xuICAgIH0pO1xuICAgIGNvbnN0IGVkaXRpbmdUZXh0TWFuYWdlID0gdGV4dE1hbmFnZXMuZmluZCh0ZXh0TWFuYWdlID0+IHRleHRNYW5hZ2UuaXNFZGl0aW5nKTtcbiAgICBpZiAoZWRpdGluZ1RleHRNYW5hZ2UpIHtcbiAgICAgICAgcmV0dXJuIGVkaXRpbmdUZXh0TWFuYWdlLmVkaXRvcjtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFRleHQgPSAodGV4dDogc3RyaW5nIHwgRWxlbWVudCwgYWxpZ24/OiBBbGlnbm1lbnQsIHByb3BlcnRpZXM/OiBQYXJ0aWFsPEN1c3RvbVRleHQ+KSA9PiB7XG4gICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXMgfHwge307XG4gICAgY29uc3QgcGxhaXRUZXh0ID0gdHlwZW9mIHRleHQgPT09ICdzdHJpbmcnID8geyBjaGlsZHJlbjogW3sgdGV4dCwgLi4ucHJvcGVydGllcyB9XSB9IDogdGV4dDtcbiAgICBpZiAoYWxpZ24pIHtcbiAgICAgICAgKHBsYWl0VGV4dCBhcyBQYXJhZ3JhcGhFbGVtZW50KS5hbGlnbiA9IGFsaWduO1xuICAgIH1cbiAgICByZXR1cm4gcGxhaXRUZXh0O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldExpbmVIZWlnaHRCeUZvbnRTaXplID0gKGZvbnRTaXplOiBudW1iZXIpID0+IHtcbiAgICBpZiAoZm9udFNpemUgPT09IDE0KSB7XG4gICAgICAgIHJldHVybiAyMDtcbiAgICB9XG4gICAgaWYgKGZvbnRTaXplID09PSAxOCkge1xuICAgICAgICByZXR1cm4gMjU7XG4gICAgfVxuICAgIHJldHVybiBmb250U2l6ZSAqIDEuNTtcbn07XG5cbmV4cG9ydCBjb25zdCBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUzogV2Vha01hcDxQbGFpdEVsZW1lbnQsIFRleHRNYW5hZ2VbXT4gPSBuZXcgV2Vha01hcCgpO1xuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBVSxJQUFJLEVBQVcsTUFBTSxPQUFPLENBQUM7QUFZOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBcUIsRUFBRSxFQUFFO0lBQ3BELE9BQU8sdUJBQXVCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUN4RCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBNkMsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDdkcsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUF3QyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUM3RixNQUFNLFVBQVUsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsVUFBVSxFQUFFLENB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dUIsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtJQUN4RCxJQUFJLFFBQVEsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNsQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLFFBQVEsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNsQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDMUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQXdDLElBQUksT0FBTyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIGdldFNlbGVjdGVkRWxlbWVudHMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBFZGl0b3IsIE5vZGUsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUZXh0TWFuYWdlIH0gZnJvbSAnLi4vdGV4dC90ZXh0LW1hbmFnZSc7XG5pbXBvcnQgeyBBbGlnbm1lbnQsIEN1c3RvbVRleHQsIFBhcmFncmFwaEVsZW1lbnQgfSBmcm9tICcuLi90ZXh0L3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUZXh0SW50ZXJmYWNlIHtcbiAgICBnZXRUZXh0RWRpdG9yczogKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50cz86IFBsYWl0RWxlbWVudFtdKSA9PiBFZGl0b3JbXSB8IHVuZGVmaW5lZDtcbiAgICBmaW5kRmlyc3RUZXh0RWRpdG9yOiAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IG51bGw7XG4gICAgZ2V0Rmlyc3RUZXh0RWRpdG9yOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBFZGl0b3I7XG4gICAgZ2V0VGV4dEVkaXRvcnNCeUVsZW1lbnQ6IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IEVkaXRvcltdO1xuICAgIGdldEVkaXRpbmdUZXh0RWRpdG9yOiAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzPzogUGxhaXRFbGVtZW50W10pID0+IEVkaXRvciB8IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgY29uc3QgZ2V0VGV4dE1hbmFnZXMgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgcmV0dXJuIEVMRU1FTlRfVE9fVEVYVF9NQU5BR0VTLmdldChlbGVtZW50KSB8fCBbXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdFRleHRNYW5hZ2UgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgdGV4dE1hbmFnZSA9IGdldFRleHRNYW5hZ2VzKGVsZW1lbnQpWzBdO1xuICAgIGlmICghdGV4dE1hbmFnZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ2NhbiBub3QgZmluZCB0ZXh0TWFuYWdlJyk7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0TWFuYWdlO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRFZGl0b3JzQnlFbGVtZW50OiBUZXh0SW50ZXJmYWNlWydnZXRUZXh0RWRpdG9yc0J5RWxlbWVudCddID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIHJldHVybiBnZXRUZXh0TWFuYWdlcyhlbGVtZW50KS5tYXAobWFuYWdlID0+IHtcbiAgICAgICAgcmV0dXJuIG1hbmFnZS5lZGl0b3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RUZXh0RWRpdG9yOiBUZXh0SW50ZXJmYWNlWydnZXRGaXJzdFRleHRFZGl0b3InXSA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCB0ZXh0RWRpdG9yID0gZ2V0VGV4dEVkaXRvcnNCeUVsZW1lbnQoZWxlbWVudClbMF07XG4gICAgaWYgKCF0ZXh0RWRpdG9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignY2FuIG5vdCBmaW5kIHRleHRNYW5hZ2UnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRleHRFZGl0b3I7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZEZpcnN0VGV4dEVkaXRvcjogVGV4dEludGVyZmFjZVsnZmluZEZpcnN0VGV4dEVkaXRvciddID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGxldCBmaXJzdEVkaXRvcjogRWRpdG9yIHwgbnVsbCA9IG51bGw7XG4gICAgc2VsZWN0ZWRFbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBjb25zdCBlZGl0b3JzID0gZ2V0VGV4dEVkaXRvcnNCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGlmICghZmlyc3RFZGl0b3IgJiYgZWRpdG9ycyAmJiBlZGl0b3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZpcnN0RWRpdG9yID0gZWRpdG9yc1swXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmaXJzdEVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50c1RleHQgPSAoZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnRzXG4gICAgICAgIC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVkaXRvcnMgPSBnZXRUZXh0RWRpdG9yc0J5RWxlbWVudChpdGVtKTtcbiAgICAgICAgICAgICAgICBpZiAoZWRpdG9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVkaXRvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoZWRpdG9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0c0VudHJ5ID0gTm9kZS50ZXh0cyhlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRleHRzRW50cnkpLnJlZHVjZSgodG90YWwsIHRleHQpID0+ICh0b3RhbCArPSB0ZXh0WzBdLnRleHQpLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oJyAnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtKVxuICAgICAgICAuam9pbignICcpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRFZGl0b3JzOiBUZXh0SW50ZXJmYWNlWydnZXRUZXh0RWRpdG9ycyddID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50cz86IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGVsZW1lbnRzIHx8IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCB0ZXh0TWFuYWdlczogVGV4dE1hbmFnZVtdID0gW107XG4gICAgICAgIHNlbGVjdGVkRWxlbWVudHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIHRleHRNYW5hZ2VzLnB1c2goLi4uZ2V0VGV4dE1hbmFnZXMoaXRlbSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZWRpdGluZ1RleHRNYW5hZ2UgPSB0ZXh0TWFuYWdlcy5maW5kKHRleHRNYW5hZ2UgPT4gdGV4dE1hbmFnZS5pc0VkaXRpbmcpO1xuICAgICAgICBpZiAoZWRpdGluZ1RleHRNYW5hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiBbZWRpdGluZ1RleHRNYW5hZ2UuZWRpdG9yXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGV4dE1hbmFnZXMubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZWRpdG9yO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFZGl0aW5nVGV4dEVkaXRvcjogVGV4dEludGVyZmFjZVsnZ2V0RWRpdGluZ1RleHRFZGl0b3InXSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM/OiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBlbGVtZW50cyB8fCBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBjb25zdCB0ZXh0TWFuYWdlczogVGV4dE1hbmFnZVtdID0gW107XG4gICAgc2VsZWN0ZWRFbGVtZW50cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICB0ZXh0TWFuYWdlcy5wdXNoKC4uLmdldFRleHRNYW5hZ2VzKGl0ZW0pKTtcbiAgICB9KTtcbiAgICBjb25zdCBlZGl0aW5nVGV4dE1hbmFnZSA9IHRleHRNYW5hZ2VzLmZpbmQodGV4dE1hbmFnZSA9PiB0ZXh0TWFuYWdlLmlzRWRpdGluZyk7XG4gICAgaWYgKGVkaXRpbmdUZXh0TWFuYWdlKSB7XG4gICAgICAgIHJldHVybiBlZGl0aW5nVGV4dE1hbmFnZS5lZGl0b3I7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRUZXh0ID0gKHRleHQ6IHN0cmluZyB8IEVsZW1lbnQsIGFsaWduPzogQWxpZ25tZW50LCBwcm9wZXJ0aWVzPzogUGFydGlhbDxDdXN0b21UZXh0PikgPT4ge1xuICAgIHByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzIHx8IHt9O1xuICAgIGNvbnN0IHBsYWl0VGV4dCA9IHR5cGVvZiB0ZXh0ID09PSAnc3RyaW5nJyA/IHsgY2hpbGRyZW46IFt7IHRleHQsIC4uLnByb3BlcnRpZXMgfV0gfSA6IHRleHQ7XG4gICAgaWYgKGFsaWduKSB7XG4gICAgICAgIChwbGFpdFRleHQgYXMgUGFyYWdyYXBoRWxlbWVudCkuYWxpZ24gPSBhbGlnbjtcbiAgICB9XG4gICAgcmV0dXJuIHBsYWl0VGV4dDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRMaW5lSGVpZ2h0QnlGb250U2l6ZSA9IChmb250U2l6ZTogbnVtYmVyKSA9PiB7XG4gICAgaWYgKGZvbnRTaXplID09PSAxNCkge1xuICAgICAgICByZXR1cm4gMjA7XG4gICAgfVxuICAgIGlmIChmb250U2l6ZSA9PT0gMTgpIHtcbiAgICAgICAgcmV0dXJuIDI1O1xuICAgIH1cbiAgICByZXR1cm4gZm9udFNpemUgKiAxLjU7XG59O1xuXG5leHBvcnQgY29uc3QgRUxFTUVOVF9UT19URVhUX01BTkFHRVM6IFdlYWtNYXA8UGxhaXRFbGVtZW50LCBUZXh0TWFuYWdlW10+ID0gbmV3IFdlYWtNYXAoKTtcbiJdfQ==