@plait/common 0.71.0 → 0.72.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,5 @@
1
1
  import { ElementFlavour, PlaitBoard, PlaitElement } from '@plait/core';
2
2
  import { PlaitCommonElementRef } from './element-ref';
3
- import { TextManage } from '../text/text-manage';
4
3
  export declare class CommonElementFlavour<T extends PlaitElement = PlaitElement, K extends PlaitBoard = PlaitBoard, R extends PlaitCommonElementRef = PlaitCommonElementRef> extends ElementFlavour<T, K, R> {
5
- private textManages;
6
4
  constructor(elementRef?: PlaitCommonElementRef);
7
- initializeWeakMap(): void;
8
- destroyWeakMap(): void;
9
- initializeTextManages(textManages: TextManage[]): void;
10
- addTextManage(textManage: TextManage): void;
11
- destroyTextManages(): void;
12
- getTextManages(): TextManage[];
13
5
  }
@@ -1,7 +1,12 @@
1
1
  import { PlaitElementRef } from '@plait/core';
2
2
  import { Generator } from '../generators';
3
+ import { TextManage } from '../text';
3
4
  export declare class PlaitCommonElementRef implements PlaitElementRef {
5
+ private textManages;
4
6
  private generatorMap;
5
7
  addGenerator<T extends Object = Generator>(key: string, generator: T): void;
6
8
  getGenerator<T extends Object = Generator>(key: string): T;
9
+ initializeTextManage(textManage: TextManage | TextManage[]): void;
10
+ getTextManages(): TextManage[];
11
+ destroyTextManage(): void;
7
12
  }
@@ -1,33 +1,8 @@
1
1
  import { ElementFlavour } from '@plait/core';
2
- import { ELEMENT_TO_TEXT_MANAGES } from '../utils/text';
3
2
  import { PlaitCommonElementRef } from './element-ref';
4
3
  export class CommonElementFlavour extends ElementFlavour {
5
4
  constructor(elementRef = new PlaitCommonElementRef()) {
6
5
  super(elementRef);
7
- this.textManages = [];
8
- }
9
- initializeWeakMap() {
10
- ELEMENT_TO_TEXT_MANAGES.set(this.element, this.textManages);
11
- }
12
- destroyWeakMap() {
13
- ELEMENT_TO_TEXT_MANAGES.delete(this.element);
14
- }
15
- initializeTextManages(textManages) {
16
- this.textManages = textManages;
17
- this.initializeWeakMap();
18
- }
19
- addTextManage(textManage) {
20
- this.textManages.push(textManage);
21
- }
22
- destroyTextManages() {
23
- this.getTextManages().forEach(manage => {
24
- manage.destroy();
25
- });
26
- this.textManages = [];
27
- this.destroyWeakMap();
28
- }
29
- getTextManages() {
30
- return this.textManages;
31
6
  }
32
7
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1mbGF2b3VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb3JlL2VsZW1lbnQtZmxhdm91ci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUE0QixNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RELE1BQU0sT0FBTyxvQkFJWCxTQUFRLGNBQXVCO0lBRzdCLFlBQVksVUFBVSxHQUFHLElBQUkscUJBQXFCLEVBQUU7UUFDaEQsS0FBSyxDQUFDLFVBQWUsQ0FBQyxDQUFDO1FBSG5CLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztJQUl2QyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsdUJBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxjQUFjO1FBQ1YsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQscUJBQXFCLENBQUMsV0FBeUI7UUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFzQjtRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudEZsYXZvdXIsIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEVMRU1FTlRfVE9fVEVYVF9NQU5BR0VTIH0gZnJvbSAnLi4vdXRpbHMvdGV4dCc7XG5pbXBvcnQgeyBQbGFpdENvbW1vbkVsZW1lbnRSZWYgfSBmcm9tICcuL2VsZW1lbnQtcmVmJztcbmltcG9ydCB7IFRleHRNYW5hZ2UgfSBmcm9tICcuLi90ZXh0L3RleHQtbWFuYWdlJztcblxuZXhwb3J0IGNsYXNzIENvbW1vbkVsZW1lbnRGbGF2b3VyPFxuICAgIFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQsXG4gICAgSyBleHRlbmRzIFBsYWl0Qm9hcmQgPSBQbGFpdEJvYXJkLFxuICAgIFIgZXh0ZW5kcyBQbGFpdENvbW1vbkVsZW1lbnRSZWYgPSBQbGFpdENvbW1vbkVsZW1lbnRSZWZcbj4gZXh0ZW5kcyBFbGVtZW50Rmxhdm91cjxULCBLLCBSPiB7XG4gICAgcHJpdmF0ZSB0ZXh0TWFuYWdlczogVGV4dE1hbmFnZVtdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmID0gbmV3IFBsYWl0Q29tbW9uRWxlbWVudFJlZigpKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYgYXMgUik7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVdlYWtNYXAoKSB7XG4gICAgICAgIEVMRU1FTlRfVE9fVEVYVF9NQU5BR0VTLnNldCh0aGlzLmVsZW1lbnQsIHRoaXMudGV4dE1hbmFnZXMpO1xuICAgIH1cblxuICAgIGRlc3Ryb3lXZWFrTWFwKCkge1xuICAgICAgICBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUy5kZWxldGUodGhpcy5lbGVtZW50KTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplVGV4dE1hbmFnZXModGV4dE1hbmFnZXM6IFRleHRNYW5hZ2VbXSkge1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2VzID0gdGV4dE1hbmFnZXM7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVdlYWtNYXAoKTtcbiAgICB9XG5cbiAgICBhZGRUZXh0TWFuYWdlKHRleHRNYW5hZ2U6IFRleHRNYW5hZ2UpIHtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlcy5wdXNoKHRleHRNYW5hZ2UpO1xuICAgIH1cblxuICAgIGRlc3Ryb3lUZXh0TWFuYWdlcygpIHtcbiAgICAgICAgdGhpcy5nZXRUZXh0TWFuYWdlcygpLmZvckVhY2gobWFuYWdlID0+IHtcbiAgICAgICAgICAgIG1hbmFnZS5kZXN0cm95KCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2VzID0gW107XG4gICAgICAgIHRoaXMuZGVzdHJveVdlYWtNYXAoKTtcbiAgICB9XG5cbiAgICBnZXRUZXh0TWFuYWdlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dE1hbmFnZXM7XG4gICAgfVxufVxuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1mbGF2b3VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb3JlL2VsZW1lbnQtZmxhdm91ci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUE0QixNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEQsTUFBTSxPQUFPLG9CQUlYLFNBQVEsY0FBdUI7SUFDN0IsWUFBWSxVQUFVLEdBQUcsSUFBSSxxQkFBcUIsRUFBRTtRQUNoRCxLQUFLLENBQUMsVUFBZSxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudEZsYXZvdXIsIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0Q29tbW9uRWxlbWVudFJlZiB9IGZyb20gJy4vZWxlbWVudC1yZWYnO1xuXG5leHBvcnQgY2xhc3MgQ29tbW9uRWxlbWVudEZsYXZvdXI8XG4gICAgVCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudCxcbiAgICBLIGV4dGVuZHMgUGxhaXRCb2FyZCA9IFBsYWl0Qm9hcmQsXG4gICAgUiBleHRlbmRzIFBsYWl0Q29tbW9uRWxlbWVudFJlZiA9IFBsYWl0Q29tbW9uRWxlbWVudFJlZlxuPiBleHRlbmRzIEVsZW1lbnRGbGF2b3VyPFQsIEssIFI+IHtcbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmID0gbmV3IFBsYWl0Q29tbW9uRWxlbWVudFJlZigpKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYgYXMgUik7XG4gICAgfVxufVxuIl19
@@ -1,5 +1,6 @@
1
1
  export class PlaitCommonElementRef {
2
2
  constructor() {
3
+ this.textManages = [];
3
4
  this.generatorMap = new Map();
4
5
  }
5
6
  addGenerator(key, generator) {
@@ -8,5 +9,23 @@ export class PlaitCommonElementRef {
8
9
  getGenerator(key) {
9
10
  return this.generatorMap.get(key);
10
11
  }
12
+ initializeTextManage(textManage) {
13
+ this.textManages = [];
14
+ if (Array.isArray(textManage)) {
15
+ this.textManages.push(...textManage);
16
+ }
17
+ else {
18
+ this.textManages.push(textManage);
19
+ }
20
+ }
21
+ getTextManages() {
22
+ return this.textManages;
23
+ }
24
+ destroyTextManage() {
25
+ this.textManages.forEach(textManage => {
26
+ textManage.destroy();
27
+ });
28
+ this.textManages = [];
29
+ }
11
30
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvcmUvZWxlbWVudC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLHFCQUFxQjtJQUFsQztRQUNZLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7SUFTakUsQ0FBQztJQVBHLFlBQVksQ0FBK0IsR0FBVyxFQUFFLFNBQVk7UUFDaEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFZLENBQStCLEdBQVc7UUFDbEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQU0sQ0FBQztJQUMzQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEVsZW1lbnRSZWYgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIFBsYWl0Q29tbW9uRWxlbWVudFJlZiBpbXBsZW1lbnRzIFBsYWl0RWxlbWVudFJlZiB7XG4gICAgcHJpdmF0ZSBnZW5lcmF0b3JNYXAgPSBuZXcgTWFwPHN0cmluZywgR2VuZXJhdG9yIHwgT2JqZWN0PigpO1xuXG4gICAgYWRkR2VuZXJhdG9yPFQgZXh0ZW5kcyBPYmplY3QgPSBHZW5lcmF0b3I+KGtleTogc3RyaW5nLCBnZW5lcmF0b3I6IFQpIHtcbiAgICAgICAgdGhpcy5nZW5lcmF0b3JNYXAuc2V0KGtleSwgZ2VuZXJhdG9yKTtcbiAgICB9XG5cbiAgICBnZXRHZW5lcmF0b3I8VCBleHRlbmRzIE9iamVjdCA9IEdlbmVyYXRvcj4oa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdG9yTWFwLmdldChrZXkpIGFzIFQ7XG4gICAgfVxufVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvcmUvZWxlbWVudC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLHFCQUFxQjtJQUFsQztRQUNZLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQUUvQixpQkFBWSxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO0lBNkJqRSxDQUFDO0lBM0JHLFlBQVksQ0FBK0IsR0FBVyxFQUFFLFNBQVk7UUFDaEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFZLENBQStCLEdBQVc7UUFDbEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQU0sQ0FBQztJQUMzQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsVUFBcUM7UUFDdEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztRQUN6QyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbEMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRFbGVtZW50UmVmIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgR2VuZXJhdG9yIH0gZnJvbSAnLi4vZ2VuZXJhdG9ycyc7XG5pbXBvcnQgeyBUZXh0TWFuYWdlIH0gZnJvbSAnLi4vdGV4dCc7XG5cbmV4cG9ydCBjbGFzcyBQbGFpdENvbW1vbkVsZW1lbnRSZWYgaW1wbGVtZW50cyBQbGFpdEVsZW1lbnRSZWYge1xuICAgIHByaXZhdGUgdGV4dE1hbmFnZXM6IFRleHRNYW5hZ2VbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBnZW5lcmF0b3JNYXAgPSBuZXcgTWFwPHN0cmluZywgR2VuZXJhdG9yIHwgT2JqZWN0PigpO1xuXG4gICAgYWRkR2VuZXJhdG9yPFQgZXh0ZW5kcyBPYmplY3QgPSBHZW5lcmF0b3I+KGtleTogc3RyaW5nLCBnZW5lcmF0b3I6IFQpIHtcbiAgICAgICAgdGhpcy5nZW5lcmF0b3JNYXAuc2V0KGtleSwgZ2VuZXJhdG9yKTtcbiAgICB9XG5cbiAgICBnZXRHZW5lcmF0b3I8VCBleHRlbmRzIE9iamVjdCA9IEdlbmVyYXRvcj4oa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdG9yTWFwLmdldChrZXkpIGFzIFQ7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVRleHRNYW5hZ2UodGV4dE1hbmFnZTogVGV4dE1hbmFnZSB8IFRleHRNYW5hZ2VbXSkge1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2VzID0gW107XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRleHRNYW5hZ2UpKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRNYW5hZ2VzLnB1c2goLi4udGV4dE1hbmFnZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRleHRNYW5hZ2VzLnB1c2godGV4dE1hbmFnZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRUZXh0TWFuYWdlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dE1hbmFnZXM7XG4gICAgfVxuXG4gICAgZGVzdHJveVRleHRNYW5hZ2UoKSB7XG4gICAgICAgIHRoaXMudGV4dE1hbmFnZXMuZm9yRWFjaCh0ZXh0TWFuYWdlID0+IHtcbiAgICAgICAgICAgIHRleHRNYW5hZ2UuZGVzdHJveSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlcyA9IFtdO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { idCreator, Transforms } from '@plait/core';
2
+ export const buildClipboardData = (board, elements, startPoint, elementBuilder) => {
3
+ return elements.map(element => {
4
+ const newElement = elementBuilder && elementBuilder(element);
5
+ if (newElement) {
6
+ return newElement;
7
+ }
8
+ if (element.points) {
9
+ const points = element.points.map(point => [point[0] - startPoint[0], point[1] - startPoint[1]]);
10
+ return { ...element, points };
11
+ }
12
+ return element;
13
+ });
14
+ };
15
+ export const insertClipboardData = (board, elements, startPoint, elementHandler) => {
16
+ const idsMap = {};
17
+ elements.forEach(element => {
18
+ idsMap[element.id] = idCreator();
19
+ });
20
+ elements.forEach(element => {
21
+ element.id = idsMap[element.id];
22
+ elementHandler && elementHandler(element, idsMap);
23
+ if (element.points) {
24
+ element.points = element.points.map(point => [startPoint[0] + point[0], startPoint[1] + point[1]]);
25
+ }
26
+ Transforms.insertNode(board, element, [board.children.length]);
27
+ });
28
+ Transforms.addSelectionWithTemporaryElements(board, elements);
29
+ };
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy91dGlscy9jbGlwYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBbUMsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQzlCLEtBQWlCLEVBQ2pCLFFBQXdCLEVBQ3hCLFVBQWlCLEVBQ2pCLGNBQW9FLEVBQ3RFLEVBQUU7SUFDQSxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDMUIsTUFBTSxVQUFVLEdBQUcsY0FBYyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2IsT0FBTyxVQUFVLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pHLE9BQU8sRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUMvQixLQUFpQixFQUNqQixRQUF3QixFQUN4QixVQUFpQixFQUNqQixjQUFnRixFQUNsRixFQUFFO0lBQ0EsTUFBTSxNQUFNLEdBQTJCLEVBQUUsQ0FBQztJQUMxQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDSCxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3ZCLE9BQU8sQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQyxjQUFjLElBQUksY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBbUIsQ0FBQztRQUN6SCxDQUFDO1FBQ0QsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQyxDQUFDO0lBQ0gsVUFBVSxDQUFDLGlDQUFpQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpZENyZWF0b3IsIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUG9pbnQsIFRyYW5zZm9ybXMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBidWlsZENsaXBib2FyZERhdGEgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdLFxuICAgIHN0YXJ0UG9pbnQ6IFBvaW50LFxuICAgIGVsZW1lbnRCdWlsZGVyPzogKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4gUGxhaXRFbGVtZW50IHwgdW5kZWZpbmVkXG4pID0+IHtcbiAgICByZXR1cm4gZWxlbWVudHMubWFwKGVsZW1lbnQgPT4ge1xuICAgICAgICBjb25zdCBuZXdFbGVtZW50ID0gZWxlbWVudEJ1aWxkZXIgJiYgZWxlbWVudEJ1aWxkZXIoZWxlbWVudCk7XG4gICAgICAgIGlmIChuZXdFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3RWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudC5wb2ludHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50cyA9IGVsZW1lbnQucG9pbnRzLm1hcChwb2ludCA9PiBbcG9pbnRbMF0gLSBzdGFydFBvaW50WzBdLCBwb2ludFsxXSAtIHN0YXJ0UG9pbnRbMV1dKTtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmVsZW1lbnQsIHBvaW50cyB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGluc2VydENsaXBib2FyZERhdGEgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdLFxuICAgIHN0YXJ0UG9pbnQ6IFBvaW50LFxuICAgIGVsZW1lbnRIYW5kbGVyPzogKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCwgaWRzTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSA9PiB2b2lkXG4pID0+IHtcbiAgICBjb25zdCBpZHNNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBpZHNNYXBbZWxlbWVudC5pZF0gPSBpZENyZWF0b3IoKTtcbiAgICB9KTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBlbGVtZW50LmlkID0gaWRzTWFwW2VsZW1lbnQuaWRdO1xuICAgICAgICBlbGVtZW50SGFuZGxlciAmJiBlbGVtZW50SGFuZGxlcihlbGVtZW50LCBpZHNNYXApO1xuICAgICAgICBpZiAoZWxlbWVudC5wb2ludHMpIHtcbiAgICAgICAgICAgIGVsZW1lbnQucG9pbnRzID0gZWxlbWVudC5wb2ludHMubWFwKHBvaW50ID0+IFtzdGFydFBvaW50WzBdICsgcG9pbnRbMF0sIHN0YXJ0UG9pbnRbMV0gKyBwb2ludFsxXV0pIGFzIFtQb2ludCwgUG9pbnRdO1xuICAgICAgICB9XG4gICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZShib2FyZCwgZWxlbWVudCwgW2JvYXJkLmNoaWxkcmVuLmxlbmd0aF0pO1xuICAgIH0pO1xuICAgIFRyYW5zZm9ybXMuYWRkU2VsZWN0aW9uV2l0aFRlbXBvcmFyeUVsZW1lbnRzKGJvYXJkLCBlbGVtZW50cyk7XG59O1xuIl19
@@ -15,4 +15,5 @@ export * from './rotate';
15
15
  export * from './elements';
16
16
  export * from './animate';
17
17
  export * from './stroke';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNpemUnO1xuZXhwb3J0ICogZnJvbSAnLi9saW5lLXBhdGgnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LW9ydGhvZ29uYWwtcm91dGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2hvdC1rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGlvbi1tb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vZWxib3ctbGluZS1yb3V0ZSc7XG5leHBvcnQgKiBmcm9tICcuL21lbW9yaXplJztcbmV4cG9ydCAqIGZyb20gJy4vdmVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWF0aCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYXdpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGVtZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2FuaW1hdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJva2UnO1xuIl19
18
+ export * from './clipboard';
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNpemUnO1xuZXhwb3J0ICogZnJvbSAnLi9saW5lLXBhdGgnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LW9ydGhvZ29uYWwtcm91dGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2hvdC1rZXknO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGlvbi1tb2RlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vZWxib3ctbGluZS1yb3V0ZSc7XG5leHBvcnQgKiBmcm9tICcuL21lbW9yaXplJztcbmV4cG9ydCAqIGZyb20gJy4vdmVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWF0aCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYXdpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGVtZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2FuaW1hdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJva2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGlwYm9hcmQnO1xuIl19
@@ -1,7 +1,8 @@
1
- import { getSelectedElements } from '@plait/core';
1
+ import { PlaitElement, getSelectedElements } from '@plait/core';
2
2
  import { Node } from 'slate';
3
3
  export const getTextManages = (element) => {
4
- return ELEMENT_TO_TEXT_MANAGES.get(element) || [];
4
+ const ref = PlaitElement.getElementRef(element);
5
+ return ref?.getTextManages() || [];
5
6
  };
6
7
  export const getFirstTextManage = (element) => {
7
8
  const textManage = getTextManages(element)[0];
@@ -101,5 +102,4 @@ export const getLineHeightByFontSize = (fontSize) => {
101
102
  }
102
103
  return fontSize * 1.5;
103
104
  };
104
- export const ELEMENT_TO_TEXT_MANAGES = new WeakMap();
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBVSxJQUFJLEVBQVcsTUFBTSxPQUFPLENBQUM7QUFZOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBcUIsRUFBRSxFQUFFO0lBQ3BELE9BQU8sdUJBQXVCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN0RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUN4RCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBNkMsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDdkcsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUF3QyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUM3RixNQUFNLFVBQVUsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsVUFBVSxFQUFFLENB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dUIsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtJQUN4RCxJQUFJLFFBQVEsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNsQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLFFBQVEsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNsQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDMUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQXdDLElBQUksT0FBTyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIGdldFNlbGVjdGVkRWxlbWVudHMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBFZGl0b3IsIE5vZGUsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUZXh0TWFuYWdlIH0gZnJvbSAnLi4vdGV4dC90ZXh0LW1hbmFnZSc7XG5pbXBvcnQgeyBBbGlnbm1lbnQsIEN1c3RvbVRleHQsIFBhcmFncmFwaEVsZW1lbnQgfSBmcm9tICcuLi90ZXh0L3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUZXh0SW50ZXJmYWNlIHtcbiAgICBnZXRUZXh0RWRpdG9yczogKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50cz86IFBsYWl0RWxlbWVudFtdKSA9PiBFZGl0b3JbXSB8IHVuZGVmaW5lZDtcbiAgICBmaW5kRmlyc3RUZXh0RWRpdG9yOiAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IG51bGw7XG4gICAgZ2V0Rmlyc3RUZXh0RWRpdG9yOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBFZGl0b3I7XG4gICAgZ2V0VGV4dEVkaXRvcnNCeUVsZW1lbnQ6IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IEVkaXRvcltdO1xuICAgIGdldEVkaXRpbmdUZXh0RWRpdG9yOiAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzPzogUGxhaXRFbGVtZW50W10pID0+IEVkaXRvciB8IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgY29uc3QgZ2V0VGV4dE1hbmFnZXMgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgcmV0dXJuIEVMRU1FTlRfVE9fVEVYVF9NQU5BR0VTLmdldChlbGVtZW50KSB8fCBbXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdFRleHRNYW5hZ2UgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgdGV4dE1hbmFnZSA9IGdldFRleHRNYW5hZ2VzKGVsZW1lbnQpWzBdO1xuICAgIGlmICghdGV4dE1hbmFnZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ2NhbiBub3QgZmluZCB0ZXh0TWFuYWdlJyk7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0TWFuYWdlO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRFZGl0b3JzQnlFbGVtZW50OiBUZXh0SW50ZXJmYWNlWydnZXRUZXh0RWRpdG9yc0J5RWxlbWVudCddID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIHJldHVybiBnZXRUZXh0TWFuYWdlcyhlbGVtZW50KS5tYXAobWFuYWdlID0+IHtcbiAgICAgICAgcmV0dXJuIG1hbmFnZS5lZGl0b3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RUZXh0RWRpdG9yOiBUZXh0SW50ZXJmYWNlWydnZXRGaXJzdFRleHRFZGl0b3InXSA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCB0ZXh0RWRpdG9yID0gZ2V0VGV4dEVkaXRvcnNCeUVsZW1lbnQoZWxlbWVudClbMF07XG4gICAgaWYgKCF0ZXh0RWRpdG9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignY2FuIG5vdCBmaW5kIHRleHRNYW5hZ2UnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRleHRFZGl0b3I7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZEZpcnN0VGV4dEVkaXRvcjogVGV4dEludGVyZmFjZVsnZmluZEZpcnN0VGV4dEVkaXRvciddID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGxldCBmaXJzdEVkaXRvcjogRWRpdG9yIHwgbnVsbCA9IG51bGw7XG4gICAgc2VsZWN0ZWRFbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBjb25zdCBlZGl0b3JzID0gZ2V0VGV4dEVkaXRvcnNCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGlmICghZmlyc3RFZGl0b3IgJiYgZWRpdG9ycyAmJiBlZGl0b3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZpcnN0RWRpdG9yID0gZWRpdG9yc1swXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmaXJzdEVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50c1RleHQgPSAoZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnRzXG4gICAgICAgIC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVkaXRvcnMgPSBnZXRUZXh0RWRpdG9yc0J5RWxlbWVudChpdGVtKTtcbiAgICAgICAgICAgICAgICBpZiAoZWRpdG9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVkaXRvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoZWRpdG9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0c0VudHJ5ID0gTm9kZS50ZXh0cyhlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRleHRzRW50cnkpLnJlZHVjZSgodG90YWwsIHRleHQpID0+ICh0b3RhbCArPSB0ZXh0WzBdLnRleHQpLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oJyAnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtKVxuICAgICAgICAuam9pbignICcpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRFZGl0b3JzOiBUZXh0SW50ZXJmYWNlWydnZXRUZXh0RWRpdG9ycyddID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50cz86IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGVsZW1lbnRzIHx8IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCB0ZXh0TWFuYWdlczogVGV4dE1hbmFnZVtdID0gW107XG4gICAgICAgIHNlbGVjdGVkRWxlbWVudHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIHRleHRNYW5hZ2VzLnB1c2goLi4uZ2V0VGV4dE1hbmFnZXMoaXRlbSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZWRpdGluZ1RleHRNYW5hZ2UgPSB0ZXh0TWFuYWdlcy5maW5kKHRleHRNYW5hZ2UgPT4gdGV4dE1hbmFnZS5pc0VkaXRpbmcpO1xuICAgICAgICBpZiAoZWRpdGluZ1RleHRNYW5hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiBbZWRpdGluZ1RleHRNYW5hZ2UuZWRpdG9yXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGV4dE1hbmFnZXMubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZWRpdG9yO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFZGl0aW5nVGV4dEVkaXRvcjogVGV4dEludGVyZmFjZVsnZ2V0RWRpdGluZ1RleHRFZGl0b3InXSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM/OiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBlbGVtZW50cyB8fCBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBjb25zdCB0ZXh0TWFuYWdlczogVGV4dE1hbmFnZVtdID0gW107XG4gICAgc2VsZWN0ZWRFbGVtZW50cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICB0ZXh0TWFuYWdlcy5wdXNoKC4uLmdldFRleHRNYW5hZ2VzKGl0ZW0pKTtcbiAgICB9KTtcbiAgICBjb25zdCBlZGl0aW5nVGV4dE1hbmFnZSA9IHRleHRNYW5hZ2VzLmZpbmQodGV4dE1hbmFnZSA9PiB0ZXh0TWFuYWdlLmlzRWRpdGluZyk7XG4gICAgaWYgKGVkaXRpbmdUZXh0TWFuYWdlKSB7XG4gICAgICAgIHJldHVybiBlZGl0aW5nVGV4dE1hbmFnZS5lZGl0b3I7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRUZXh0ID0gKHRleHQ6IHN0cmluZyB8IEVsZW1lbnQsIGFsaWduPzogQWxpZ25tZW50LCBwcm9wZXJ0aWVzPzogUGFydGlhbDxDdXN0b21UZXh0PikgPT4ge1xuICAgIHByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzIHx8IHt9O1xuICAgIGNvbnN0IHBsYWl0VGV4dCA9IHR5cGVvZiB0ZXh0ID09PSAnc3RyaW5nJyA/IHsgY2hpbGRyZW46IFt7IHRleHQsIC4uLnByb3BlcnRpZXMgfV0gfSA6IHRleHQ7XG4gICAgaWYgKGFsaWduKSB7XG4gICAgICAgIChwbGFpdFRleHQgYXMgUGFyYWdyYXBoRWxlbWVudCkuYWxpZ24gPSBhbGlnbjtcbiAgICB9XG4gICAgcmV0dXJuIHBsYWl0VGV4dDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRMaW5lSGVpZ2h0QnlGb250U2l6ZSA9IChmb250U2l6ZTogbnVtYmVyKSA9PiB7XG4gICAgaWYgKGZvbnRTaXplID09PSAxNCkge1xuICAgICAgICByZXR1cm4gMjA7XG4gICAgfVxuICAgIGlmIChmb250U2l6ZSA9PT0gMTgpIHtcbiAgICAgICAgcmV0dXJuIDI1O1xuICAgIH1cbiAgICByZXR1cm4gZm9udFNpemUgKiAxLjU7XG59O1xuXG5leHBvcnQgY29uc3QgRUxFTUVOVF9UT19URVhUX01BTkFHRVM6IFdlYWtNYXA8UGxhaXRFbGVtZW50LCBUZXh0TWFuYWdlW10+ID0gbmV3IFdlYWtNYXAoKTtcbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBVSxJQUFJLEVBQVcsTUFBTSxPQUFPLENBQUM7QUFhOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBcUIsRUFBRSxFQUFFO0lBQ3BELE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQXdCLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sR0FBRyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUN2QyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUN4RCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBNkMsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDdkcsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUF3QyxDQUFDLE9BQXFCLEVBQUUsRUFBRTtJQUM3RixNQUFNLFVBQVUsR0FBRyx1QkFBdUIsQ0FBQyxPQUFP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QUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtJQUN4RCxJQUFJLFFBQVEsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNsQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLFFBQVEsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNsQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDMUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBnZXRTZWxlY3RlZEVsZW1lbnRzIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgRWRpdG9yLCBOb2RlLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgVGV4dE1hbmFnZSB9IGZyb20gJy4uL3RleHQvdGV4dC1tYW5hZ2UnO1xuaW1wb3J0IHsgQWxpZ25tZW50LCBDdXN0b21UZXh0LCBQYXJhZ3JhcGhFbGVtZW50IH0gZnJvbSAnLi4vdGV4dC90eXBlcyc7XG5pbXBvcnQgeyBQbGFpdENvbW1vbkVsZW1lbnRSZWYgfSBmcm9tICcuLi9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBUZXh0SW50ZXJmYWNlIHtcbiAgICBnZXRUZXh0RWRpdG9yczogKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50cz86IFBsYWl0RWxlbWVudFtdKSA9PiBFZGl0b3JbXSB8IHVuZGVmaW5lZDtcbiAgICBmaW5kRmlyc3RUZXh0RWRpdG9yOiAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IG51bGw7XG4gICAgZ2V0Rmlyc3RUZXh0RWRpdG9yOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBFZGl0b3I7XG4gICAgZ2V0VGV4dEVkaXRvcnNCeUVsZW1lbnQ6IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IEVkaXRvcltdO1xuICAgIGdldEVkaXRpbmdUZXh0RWRpdG9yOiAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzPzogUGxhaXRFbGVtZW50W10pID0+IEVkaXRvciB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGNvbnN0IGdldFRleHRNYW5hZ2VzID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHJlZiA9IFBsYWl0RWxlbWVudC5nZXRFbGVtZW50UmVmPFBsYWl0Q29tbW9uRWxlbWVudFJlZj4oZWxlbWVudCk7XG4gICAgcmV0dXJuIHJlZj8uZ2V0VGV4dE1hbmFnZXMoKSB8fCBbXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdFRleHRNYW5hZ2UgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgdGV4dE1hbmFnZSA9IGdldFRleHRNYW5hZ2VzKGVsZW1lbnQpWzBdO1xuICAgIGlmICghdGV4dE1hbmFnZSkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ2NhbiBub3QgZmluZCB0ZXh0TWFuYWdlJyk7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0TWFuYWdlO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRFZGl0b3JzQnlFbGVtZW50OiBUZXh0SW50ZXJmYWNlWydnZXRUZXh0RWRpdG9yc0J5RWxlbWVudCddID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIHJldHVybiBnZXRUZXh0TWFuYWdlcyhlbGVtZW50KS5tYXAobWFuYWdlID0+IHtcbiAgICAgICAgcmV0dXJuIG1hbmFnZS5lZGl0b3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rmlyc3RUZXh0RWRpdG9yOiBUZXh0SW50ZXJmYWNlWydnZXRGaXJzdFRleHRFZGl0b3InXSA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCB0ZXh0RWRpdG9yID0gZ2V0VGV4dEVkaXRvcnNCeUVsZW1lbnQoZWxlbWVudClbMF07XG4gICAgaWYgKCF0ZXh0RWRpdG9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignY2FuIG5vdCBmaW5kIHRleHRNYW5hZ2UnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRleHRFZGl0b3I7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZEZpcnN0VGV4dEVkaXRvcjogVGV4dEludGVyZmFjZVsnZmluZEZpcnN0VGV4dEVkaXRvciddID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGxldCBmaXJzdEVkaXRvcjogRWRpdG9yIHwgbnVsbCA9IG51bGw7XG4gICAgc2VsZWN0ZWRFbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBjb25zdCBlZGl0b3JzID0gZ2V0VGV4dEVkaXRvcnNCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGlmICghZmlyc3RFZGl0b3IgJiYgZWRpdG9ycyAmJiBlZGl0b3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZpcnN0RWRpdG9yID0gZWRpdG9yc1swXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmaXJzdEVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50c1RleHQgPSAoZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnRzXG4gICAgICAgIC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVkaXRvcnMgPSBnZXRUZXh0RWRpdG9yc0J5RWxlbWVudChpdGVtKTtcbiAgICAgICAgICAgICAgICBpZiAoZWRpdG9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVkaXRvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoZWRpdG9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0c0VudHJ5ID0gTm9kZS50ZXh0cyhlZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRleHRzRW50cnkpLnJlZHVjZSgodG90YWwsIHRleHQpID0+ICh0b3RhbCArPSB0ZXh0WzBdLnRleHQpLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oJyAnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtKVxuICAgICAgICAuam9pbignICcpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRFZGl0b3JzOiBUZXh0SW50ZXJmYWNlWydnZXRUZXh0RWRpdG9ycyddID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50cz86IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGVsZW1lbnRzIHx8IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGlmIChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCB0ZXh0TWFuYWdlczogVGV4dE1hbmFnZVtdID0gW107XG4gICAgICAgIHNlbGVjdGVkRWxlbWVudHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgIHRleHRNYW5hZ2VzLnB1c2goLi4uZ2V0VGV4dE1hbmFnZXMoaXRlbSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZWRpdGluZ1RleHRNYW5hZ2UgPSB0ZXh0TWFuYWdlcy5maW5kKHRleHRNYW5hZ2UgPT4gdGV4dE1hbmFnZS5pc0VkaXRpbmcpO1xuICAgICAgICBpZiAoZWRpdGluZ1RleHRNYW5hZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiBbZWRpdGluZ1RleHRNYW5hZ2UuZWRpdG9yXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGV4dE1hbmFnZXMubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZWRpdG9yO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFZGl0aW5nVGV4dEVkaXRvcjogVGV4dEludGVyZmFjZVsnZ2V0RWRpdGluZ1RleHRFZGl0b3InXSA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM/OiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBlbGVtZW50cyB8fCBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBjb25zdCB0ZXh0TWFuYWdlczogVGV4dE1hbmFnZVtdID0gW107XG4gICAgc2VsZWN0ZWRFbGVtZW50cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICB0ZXh0TWFuYWdlcy5wdXNoKC4uLmdldFRleHRNYW5hZ2VzKGl0ZW0pKTtcbiAgICB9KTtcbiAgICBjb25zdCBlZGl0aW5nVGV4dE1hbmFnZSA9IHRleHRNYW5hZ2VzLmZpbmQodGV4dE1hbmFnZSA9PiB0ZXh0TWFuYWdlLmlzRWRpdGluZyk7XG4gICAgaWYgKGVkaXRpbmdUZXh0TWFuYWdlKSB7XG4gICAgICAgIHJldHVybiBlZGl0aW5nVGV4dE1hbmFnZS5lZGl0b3I7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRUZXh0ID0gKHRleHQ6IHN0cmluZyB8IEVsZW1lbnQsIGFsaWduPzogQWxpZ25tZW50LCBwcm9wZXJ0aWVzPzogUGFydGlhbDxDdXN0b21UZXh0PikgPT4ge1xuICAgIHByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzIHx8IHt9O1xuICAgIGNvbnN0IHBsYWl0VGV4dCA9IHR5cGVvZiB0ZXh0ID09PSAnc3RyaW5nJyA/IHsgY2hpbGRyZW46IFt7IHRleHQsIC4uLnByb3BlcnRpZXMgfV0gfSA6IHRleHQ7XG4gICAgaWYgKGFsaWduKSB7XG4gICAgICAgIChwbGFpdFRleHQgYXMgUGFyYWdyYXBoRWxlbWVudCkuYWxpZ24gPSBhbGlnbjtcbiAgICB9XG4gICAgcmV0dXJuIHBsYWl0VGV4dDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRMaW5lSGVpZ2h0QnlGb250U2l6ZSA9IChmb250U2l6ZTogbnVtYmVyKSA9PiB7XG4gICAgaWYgKGZvbnRTaXplID09PSAxNCkge1xuICAgICAgICByZXR1cm4gMjA7XG4gICAgfVxuICAgIGlmIChmb250U2l6ZSA9PT0gMTgpIHtcbiAgICAgICAgcmV0dXJuIDI1O1xuICAgIH1cbiAgICByZXR1cm4gZm9udFNpemUgKiAxLjU7XG59O1xuIl19
@@ -1,4 +1,4 @@
1
- import { PlaitGroupElement, getSelectionAngle, getElementsInGroup, setAngleForG, RectangleClient, drawCircle, PlaitBoard, RESIZE_HANDLE_CLASS_NAME, DEFAULT_COLOR, createG, setStrokeLinecap, drawRectangle, SELECTION_RECTANGLE_CLASS_NAME, ResizeCursorClass, RESIZE_CURSORS, setDragging, rotatePoints, isSelectionMoving, getSelectedElements, distanceBetweenPointAndPoint, Point, Direction, hotkeys, createDebugGenerator, createForeignObject, ACTIVE_STROKE_WIDTH, updateForeignObject, Transforms, getHighestSelectedElements, getRectangleByElements, MERGING, PlaitPointerType, isMainPointer, toViewBoxPoint, toHostPoint, PRESS_AND_MOVE_BUFFER, isDragging, throttleRAF, getRectangleByGroup, ElementFlavour, isSelectedElementOrGroup, Selection, isMovingElements, getHitElementsBySelection, createGroupRectangleG, getSelectedGroups, getHighestSelectedGroups, getSelectedIsolatedElements, idCreator, getSelectedIsolatedElementsCanAddToGroup, getGroupByElement, updateForeignObjectWidth, IS_TEXT_EDITABLE } from '@plait/core';
1
+ import { PlaitGroupElement, getSelectionAngle, getElementsInGroup, setAngleForG, RectangleClient, drawCircle, PlaitBoard, RESIZE_HANDLE_CLASS_NAME, DEFAULT_COLOR, createG, setStrokeLinecap, drawRectangle, SELECTION_RECTANGLE_CLASS_NAME, ResizeCursorClass, RESIZE_CURSORS, setDragging, rotatePoints, isSelectionMoving, getSelectedElements, distanceBetweenPointAndPoint, Point, Direction, hotkeys, PlaitElement, createDebugGenerator, idCreator, Transforms, createForeignObject, ACTIVE_STROKE_WIDTH, updateForeignObject, getHighestSelectedElements, getRectangleByElements, MERGING, PlaitPointerType, isMainPointer, toViewBoxPoint, toHostPoint, PRESS_AND_MOVE_BUFFER, isDragging, throttleRAF, getRectangleByGroup, ElementFlavour, isSelectedElementOrGroup, Selection, isMovingElements, getHitElementsBySelection, createGroupRectangleG, getSelectedGroups, getHighestSelectedGroups, getSelectedIsolatedElements, getSelectedIsolatedElementsCanAddToGroup, getGroupByElement, updateForeignObjectWidth, IS_TEXT_EDITABLE } from '@plait/core';
2
2
  import { isKeyHotkey } from 'is-hotkey';
3
3
  import { Node, Operation, Transforms as Transforms$1, Range, Editor } from 'slate';
4
4
  import { fromEvent, timer } from 'rxjs';
@@ -689,7 +689,8 @@ const isDrawingMode = (board) => {
689
689
  };
690
690
 
691
691
  const getTextManages = (element) => {
692
- return ELEMENT_TO_TEXT_MANAGES.get(element) || [];
692
+ const ref = PlaitElement.getElementRef(element);
693
+ return ref?.getTextManages() || [];
693
694
  };
694
695
  const getFirstTextManage = (element) => {
695
696
  const textManage = getTextManages(element)[0];
@@ -789,7 +790,6 @@ const getLineHeightByFontSize = (fontSize) => {
789
790
  }
790
791
  return fontSize * 1.5;
791
792
  };
792
- const ELEMENT_TO_TEXT_MANAGES = new WeakMap();
793
793
 
794
794
  const selectImage = (board, defaultImageWidth, handle, acceptImageTypes = ['png', 'jpeg', 'gif', 'bmp']) => {
795
795
  const inputFile = document.createElement('input');
@@ -1301,6 +1301,35 @@ const getStrokeLineDash = (strokeStyle, strokeWidth) => {
1301
1301
  }
1302
1302
  };
1303
1303
 
1304
+ const buildClipboardData = (board, elements, startPoint, elementBuilder) => {
1305
+ return elements.map(element => {
1306
+ const newElement = elementBuilder && elementBuilder(element);
1307
+ if (newElement) {
1308
+ return newElement;
1309
+ }
1310
+ if (element.points) {
1311
+ const points = element.points.map(point => [point[0] - startPoint[0], point[1] - startPoint[1]]);
1312
+ return { ...element, points };
1313
+ }
1314
+ return element;
1315
+ });
1316
+ };
1317
+ const insertClipboardData = (board, elements, startPoint, elementHandler) => {
1318
+ const idsMap = {};
1319
+ elements.forEach(element => {
1320
+ idsMap[element.id] = idCreator();
1321
+ });
1322
+ elements.forEach(element => {
1323
+ element.id = idsMap[element.id];
1324
+ elementHandler && elementHandler(element, idsMap);
1325
+ if (element.points) {
1326
+ element.points = element.points.map(point => [startPoint[0] + point[0], startPoint[1] + point[1]]);
1327
+ }
1328
+ Transforms.insertNode(board, element, [board.children.length]);
1329
+ });
1330
+ Transforms.addSelectionWithTemporaryElements(board, elements);
1331
+ };
1332
+
1304
1333
  const FOREIGN_OBJECT_IMAGE_CLASS_NAME = 'foreign-object-image';
1305
1334
  class ImageGenerator extends Generator {
1306
1335
  static { this.key = 'image-generator'; }
@@ -1692,6 +1721,7 @@ class GroupGenerator extends Generator {
1692
1721
 
1693
1722
  class PlaitCommonElementRef {
1694
1723
  constructor() {
1724
+ this.textManages = [];
1695
1725
  this.generatorMap = new Map();
1696
1726
  }
1697
1727
  addGenerator(key, generator) {
@@ -1700,35 +1730,29 @@ class PlaitCommonElementRef {
1700
1730
  getGenerator(key) {
1701
1731
  return this.generatorMap.get(key);
1702
1732
  }
1703
- }
1704
-
1705
- class CommonElementFlavour extends ElementFlavour {
1706
- constructor(elementRef = new PlaitCommonElementRef()) {
1707
- super(elementRef);
1733
+ initializeTextManage(textManage) {
1708
1734
  this.textManages = [];
1735
+ if (Array.isArray(textManage)) {
1736
+ this.textManages.push(...textManage);
1737
+ }
1738
+ else {
1739
+ this.textManages.push(textManage);
1740
+ }
1709
1741
  }
1710
- initializeWeakMap() {
1711
- ELEMENT_TO_TEXT_MANAGES.set(this.element, this.textManages);
1712
- }
1713
- destroyWeakMap() {
1714
- ELEMENT_TO_TEXT_MANAGES.delete(this.element);
1715
- }
1716
- initializeTextManages(textManages) {
1717
- this.textManages = textManages;
1718
- this.initializeWeakMap();
1719
- }
1720
- addTextManage(textManage) {
1721
- this.textManages.push(textManage);
1742
+ getTextManages() {
1743
+ return this.textManages;
1722
1744
  }
1723
- destroyTextManages() {
1724
- this.getTextManages().forEach(manage => {
1725
- manage.destroy();
1745
+ destroyTextManage() {
1746
+ this.textManages.forEach(textManage => {
1747
+ textManage.destroy();
1726
1748
  });
1727
1749
  this.textManages = [];
1728
- this.destroyWeakMap();
1729
1750
  }
1730
- getTextManages() {
1731
- return this.textManages;
1751
+ }
1752
+
1753
+ class CommonElementFlavour extends ElementFlavour {
1754
+ constructor(elementRef = new PlaitCommonElementRef()) {
1755
+ super(elementRef);
1732
1756
  }
1733
1757
  }
1734
1758
 
@@ -2203,5 +2227,5 @@ const withImage = (board) => {
2203
2227
  * Generated bundle index. Do not edit.
2204
2228
  */
2205
2229
 
2206
- export { AStar, ActiveGenerator, AlignTransform, Alignment, BASE, BoardCreationMode, CommonElementFlavour, DEFAULT_FILL, DEFAULT_FONT_FAMILY, DEFAULT_ROUTE_MARGIN, ELEMENT_TO_TEXT_MANAGES, FOREIGN_OBJECT_IMAGE_CLASS_NAME, Generator, GroupComponent, IS_RESIZING, IS_ROTATING, ImageBaseComponent, ImageGenerator, MediaKeys, PICTURE_ACCEPTED_UPLOAD_SIZE, PRIMARY_COLOR, PlaitCommonElementRef, PointGraph, PointNode, PriorityQueue, PropertyTransforms, RESIZE_HANDLE_DIAMETER, ROTATE_HANDLE_DISTANCE_TO_ELEMENT, ROTATE_HANDLE_SIZE, ResizeHandle, StrokeStyle, TRANSPARENT, TextManage, WithCommonPluginKey, WithTextPluginKey, acceptImageTypes, addElementOfFocusedImage, addResizing, addRotating, alignBottom, alignHorizontalCenter, alignLeft, alignRight, alignTop, alignVerticalCenter, animate, buildCompositionData, buildImage, buildText, calculatePolylineLength, canResize, createGraph, distributeHorizontal, distributeVertical, drawFillPrimaryHandle, drawHandle, drawPrimaryHandle, drawRotateHandle, findFirstTextEditor, generateElbowLineRoute, getCreationMode, getCrossingPointsBetweenPointAndSegment, getDirectionBetweenPointAndPoint, getDirectionByPointOfRectangle, getDirectionByVector, getDirectionFactor, getDirectionFactorByDirectionComponent, getEditingTextEditor, getElementArea, getElementOfFocusedImage, getElementsText, getExtendPoint, getFirstTextEditor, getFirstTextManage, getGraphPoints, getIndexByResizeHandle, getLineHeightByFontSize, getMemorizedLatest, getNextPoint, getOppositeDirection, getPointByVectorComponent, getPointByVectorDirectionComponent, getPointOnPolyline, getPoints, getRatioByPoint, getRectangleResizeHandleRefs, getResizeHandleByIndex, getResizeHandlePointByIndex, getRotatedResizeCursorClassByAngle, getSourceAndTargetOuterRectangle, getStrokeLineDash, getSymmetricHandleIndex, getTextEditors, getTextEditorsByElement, getTextManages, getTimestamp, getUnitVectorByPointAndPoint, hasAfterDraw, isCornerHandle, isDelete, isDndMode, isDrawingMode, isEdgeHandle, isEnterHotkey, isExpandHotkey, isFilled, isPointOnSegment, isResizing, isResizingByCondition, isRotating, isSourceAndTargetIntersect, isSpaceHotkey, isTabHotkey, isVirtualKey, linear, measureElement, memorizeLatest, normalizeShapePoints, reduceRouteMargin, removeDuplicatePoints, removeElementOfFocusedImage, removeResizing, removeRotating, resetPointsAfterResize, rotateVector, rotateVectorAnti90, routeAdjust, selectImage, setCreationMode, setProperty, simplifyOrthogonalPoints, sortElementsByArea, withGroup, withImage, withResize, withText };
2230
+ export { AStar, ActiveGenerator, AlignTransform, Alignment, BASE, BoardCreationMode, CommonElementFlavour, DEFAULT_FILL, DEFAULT_FONT_FAMILY, DEFAULT_ROUTE_MARGIN, FOREIGN_OBJECT_IMAGE_CLASS_NAME, Generator, GroupComponent, IS_RESIZING, IS_ROTATING, ImageBaseComponent, ImageGenerator, MediaKeys, PICTURE_ACCEPTED_UPLOAD_SIZE, PRIMARY_COLOR, PlaitCommonElementRef, PointGraph, PointNode, PriorityQueue, PropertyTransforms, RESIZE_HANDLE_DIAMETER, ROTATE_HANDLE_DISTANCE_TO_ELEMENT, ROTATE_HANDLE_SIZE, ResizeHandle, StrokeStyle, TRANSPARENT, TextManage, WithCommonPluginKey, WithTextPluginKey, acceptImageTypes, addElementOfFocusedImage, addResizing, addRotating, alignBottom, alignHorizontalCenter, alignLeft, alignRight, alignTop, alignVerticalCenter, animate, buildClipboardData, buildCompositionData, buildImage, buildText, calculatePolylineLength, canResize, createGraph, distributeHorizontal, distributeVertical, drawFillPrimaryHandle, drawHandle, drawPrimaryHandle, drawRotateHandle, findFirstTextEditor, generateElbowLineRoute, getCreationMode, getCrossingPointsBetweenPointAndSegment, getDirectionBetweenPointAndPoint, getDirectionByPointOfRectangle, getDirectionByVector, getDirectionFactor, getDirectionFactorByDirectionComponent, getEditingTextEditor, getElementArea, getElementOfFocusedImage, getElementsText, getExtendPoint, getFirstTextEditor, getFirstTextManage, getGraphPoints, getIndexByResizeHandle, getLineHeightByFontSize, getMemorizedLatest, getNextPoint, getOppositeDirection, getPointByVectorComponent, getPointByVectorDirectionComponent, getPointOnPolyline, getPoints, getRatioByPoint, getRectangleResizeHandleRefs, getResizeHandleByIndex, getResizeHandlePointByIndex, getRotatedResizeCursorClassByAngle, getSourceAndTargetOuterRectangle, getStrokeLineDash, getSymmetricHandleIndex, getTextEditors, getTextEditorsByElement, getTextManages, getTimestamp, getUnitVectorByPointAndPoint, hasAfterDraw, insertClipboardData, isCornerHandle, isDelete, isDndMode, isDrawingMode, isEdgeHandle, isEnterHotkey, isExpandHotkey, isFilled, isPointOnSegment, isResizing, isResizingByCondition, isRotating, isSourceAndTargetIntersect, isSpaceHotkey, isTabHotkey, isVirtualKey, linear, measureElement, memorizeLatest, normalizeShapePoints, reduceRouteMargin, removeDuplicatePoints, removeElementOfFocusedImage, removeResizing, removeRotating, resetPointsAfterResize, rotateVector, rotateVectorAnti90, routeAdjust, selectImage, setCreationMode, setProperty, simplifyOrthogonalPoints, sortElementsByArea, withGroup, withImage, withResize, withText };
2207
2231
  //# sourceMappingURL=plait-common.mjs.map