@plait/common 0.60.0 → 0.62.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/constants/default.d.ts +1 -0
- package/core/element-flavour.d.ts +1 -1
- package/core/index.d.ts +4 -0
- package/core/render-component.d.ts +4 -0
- package/esm2022/constants/default.mjs +2 -1
- package/esm2022/core/element-flavour.mjs +1 -1
- package/esm2022/core/group.component.mjs +3 -3
- package/esm2022/core/index.mjs +5 -0
- package/esm2022/core/render-component.mjs +2 -0
- package/esm2022/generators/generator.mjs +1 -1
- package/esm2022/generators/index.mjs +2 -2
- package/esm2022/image/image-base.component.mjs +26 -0
- package/esm2022/image/image.generator.mjs +96 -0
- package/esm2022/image/index.mjs +4 -0
- package/esm2022/image/with-image.mjs +8 -0
- package/esm2022/plugins/index.mjs +1 -2
- package/esm2022/public-api.mjs +5 -4
- package/esm2022/text/index.mjs +5 -0
- package/esm2022/text/text-manage.mjs +138 -0
- package/esm2022/text/text-measure.mjs +61 -0
- package/esm2022/text/types.mjs +7 -0
- package/esm2022/text/with-text.mjs +8 -0
- package/esm2022/transforms/index.mjs +1 -2
- package/esm2022/utils/image.mjs +3 -3
- package/esm2022/utils/text.mjs +22 -20
- package/fesm2022/plait-common.mjs +337 -214
- package/fesm2022/plait-common.mjs.map +1 -1
- package/generators/index.d.ts +1 -1
- package/image/image-base.component.d.ts +17 -0
- package/{generators → image}/image.generator.d.ts +11 -10
- package/image/index.d.ts +3 -0
- package/image/with-image.d.ts +15 -0
- package/package.json +1 -3
- package/plugins/index.d.ts +0 -1
- package/public-api.d.ts +4 -3
- package/text/index.d.ts +4 -0
- package/text/text-manage.d.ts +41 -0
- package/text/text-measure.d.ts +8 -0
- package/text/types.d.ts +24 -0
- package/text/with-text.d.ts +25 -0
- package/transforms/index.d.ts +0 -1
- package/utils/image.d.ts +1 -5
- package/utils/text.d.ts +9 -6
- package/core/image-base.component.d.ts +0 -29
- package/esm2022/core/image-base.component.mjs +0 -95
- package/esm2022/generators/image.generator.mjs +0 -59
- package/esm2022/plugins/text-options.mjs +0 -2
- package/esm2022/transforms/text.mjs +0 -71
- package/plugins/text-options.d.ts +0 -5
- package/transforms/text.d.ts +0 -9
package/constants/default.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export declare const DEFAULT_ROUTE_MARGIN = 30;
|
|
|
6
6
|
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
|
+
export declare const DEFAULT_FONT_FAMILY = "PingFangSC-Regular, \"PingFang SC\"";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ElementFlavour, PlaitBoard, PlaitElement } from '@plait/core';
|
|
2
|
-
import { TextManage } from '@plait/text';
|
|
3
2
|
import { PlaitCommonElementRef } from './element-ref';
|
|
3
|
+
import { TextManage } from '../text/text-manage';
|
|
4
4
|
export declare class CommonElementFlavour<T extends PlaitElement = PlaitElement, K extends PlaitBoard = PlaitBoard, R extends PlaitCommonElementRef = PlaitCommonElementRef> extends ElementFlavour<T, K, R> {
|
|
5
5
|
private textManages;
|
|
6
6
|
constructor(elementRef?: PlaitCommonElementRef);
|
package/core/index.d.ts
ADDED
|
@@ -6,4 +6,5 @@ export const DEFAULT_ROUTE_MARGIN = 30;
|
|
|
6
6
|
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==
|
|
@@ -30,4 +30,4 @@ export class CommonElementFlavour extends ElementFlavour {
|
|
|
30
30
|
return this.textManages;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1mbGF2b3VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb3JlL2VsZW1lbnQtZmxhdm91ci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUE0QixNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RELE1BQU0sT0FBTyxvQkFJWCxTQUFRLGNBQXVCO0lBRzdCLFlBQVksVUFBVSxHQUFHLElBQUkscUJBQXFCLEVBQUU7UUFDaEQsS0FBSyxDQUFDLFVBQWUsQ0FBQyxDQUFDO1FBSG5CLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztJQUl2QyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsdUJBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxjQUFjO1FBQ1YsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQscUJBQXFCLENBQUMsV0FBeUI7UUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFzQjtRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudEZsYXZvdXIsIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEVMRU1FTlRfVE9fVEVYVF9NQU5BR0VTIH0gZnJvbSAnLi4vdXRpbHMvdGV4dCc7XG5pbXBvcnQgeyBQbGFpdENvbW1vbkVsZW1lbnRSZWYgfSBmcm9tICcuL2VsZW1lbnQtcmVmJztcbmltcG9ydCB7IFRleHRNYW5hZ2UgfSBmcm9tICcuLi90ZXh0L3RleHQtbWFuYWdlJztcblxuZXhwb3J0IGNsYXNzIENvbW1vbkVsZW1lbnRGbGF2b3VyPFxuICAgIFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQsXG4gICAgSyBleHRlbmRzIFBsYWl0Qm9hcmQgPSBQbGFpdEJvYXJkLFxuICAgIFIgZXh0ZW5kcyBQbGFpdENvbW1vbkVsZW1lbnRSZWYgPSBQbGFpdENvbW1vbkVsZW1lbnRSZWZcbj4gZXh0ZW5kcyBFbGVtZW50Rmxhdm91cjxULCBLLCBSPiB7XG4gICAgcHJpdmF0ZSB0ZXh0TWFuYWdlczogVGV4dE1hbmFnZVtdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmID0gbmV3IFBsYWl0Q29tbW9uRWxlbWVudFJlZigpKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYgYXMgUik7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVdlYWtNYXAoKSB7XG4gICAgICAgIEVMRU1FTlRfVE9fVEVYVF9NQU5BR0VTLnNldCh0aGlzLmVsZW1lbnQsIHRoaXMudGV4dE1hbmFnZXMpO1xuICAgIH1cblxuICAgIGRlc3Ryb3lXZWFrTWFwKCkge1xuICAgICAgICBFTEVNRU5UX1RPX1RFWFRfTUFOQUdFUy5kZWxldGUodGhpcy5lbGVtZW50KTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplVGV4dE1hbmFnZXModGV4dE1hbmFnZXM6IFRleHRNYW5hZ2VbXSkge1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2VzID0gdGV4dE1hbmFnZXM7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVdlYWtNYXAoKTtcbiAgICB9XG5cbiAgICBhZGRUZXh0TWFuYWdlKHRleHRNYW5hZ2U6IFRleHRNYW5hZ2UpIHtcbiAgICAgICAgdGhpcy50ZXh0TWFuYWdlcy5wdXNoKHRleHRNYW5hZ2UpO1xuICAgIH1cblxuICAgIGRlc3Ryb3lUZXh0TWFuYWdlcygpIHtcbiAgICAgICAgdGhpcy5nZXRUZXh0TWFuYWdlcygpLmZvckVhY2gobWFuYWdlID0+IHtcbiAgICAgICAgICAgIG1hbmFnZS5kZXN0cm95KCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnRleHRNYW5hZ2VzID0gW107XG4gICAgICAgIHRoaXMuZGVzdHJveVdlYWtNYXAoKTtcbiAgICB9XG5cbiAgICBnZXRUZXh0TWFuYWdlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dE1hbmFnZXM7XG4gICAgfVxufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PlaitBoard,
|
|
1
|
+
import { PlaitBoard, getElementsInGroup, getRectangleByGroup, isSelectedElementOrGroup, isSelectionMoving } from '@plait/core';
|
|
2
2
|
import { GroupGenerator } from '../generators/group.generator';
|
|
3
3
|
import { ActiveGenerator } from '../generators';
|
|
4
4
|
import { CommonElementFlavour } from './element-flavour';
|
|
@@ -22,7 +22,7 @@ export class GroupComponent extends CommonElementFlavour {
|
|
|
22
22
|
initialize() {
|
|
23
23
|
super.initialize();
|
|
24
24
|
this.initializeGenerator();
|
|
25
|
-
const contextService = PlaitBoard.
|
|
25
|
+
const contextService = PlaitBoard.getBoardContext(this.board);
|
|
26
26
|
this.onStableSubscription = contextService.onStable().subscribe(() => {
|
|
27
27
|
const elementsInGroup = getElementsInGroup(this.board, this.element, false, true);
|
|
28
28
|
const isPartialSelectGroup = elementsInGroup.some(item => isSelectedElementOrGroup(this.board, item)) &&
|
|
@@ -36,4 +36,4 @@ export class GroupComponent extends CommonElementFlavour {
|
|
|
36
36
|
this.onStableSubscription?.unsubscribe();
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb3JlL2dyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsVUFBVSxFQUdWLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsd0JBQXdCLEVBQ3hCLGlCQUFpQixFQUNwQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUd6RCxNQUFNLE9BQU8sY0FBZSxTQUFRLG9CQUE0QztJQUc1RTtRQUNJLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQztJQU1ELG1CQUFtQjtRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQWEsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUMvRCxZQUFZLEVBQUUsQ0FBQyxPQUFtQixFQUFFLEVBQUU7Z0JBQ2xDLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNwRCxDQUFDO1lBQ0QsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdkIsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN6QixlQUFlLEVBQUUsR0FBRyxFQUFFO2dCQUNsQixPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLENBQUM7U0FDSixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsVUFBVTtRQUNOLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakUsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsRixNQUFNLG9CQUFvQixHQUN0QixlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDeEUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQy9FLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDL0YsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZ0JBQWdCLENBQ1osS0FBd0QsRUFDeEQsUUFBMkQsSUFDNUQsQ0FBQztJQUVKLE9BQU87UUFDSCxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQzdDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgT25Db250ZXh0Q2hhbmdlZCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0R3JvdXAsXG4gICAgUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCxcbiAgICBnZXRFbGVtZW50c0luR3JvdXAsXG4gICAgZ2V0UmVjdGFuZ2xlQnlHcm91cCxcbiAgICBpc1NlbGVjdGVkRWxlbWVudE9yR3JvdXAsXG4gICAgaXNTZWxlY3Rpb25Nb3Zpbmdcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgR3JvdXBHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzL2dyb3VwLmdlbmVyYXRvcic7XG5pbXBvcnQgeyBBY3RpdmVHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzJztcbmltcG9ydCB7IENvbW1vbkVsZW1lbnRGbGF2b3VyIH0gZnJvbSAnLi9lbGVtZW50LWZsYXZvdXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBHcm91cENvbXBvbmVudCBleHRlbmRzIENvbW1vbkVsZW1lbnRGbGF2b3VyPFBsYWl0R3JvdXAsIFBsYWl0Qm9hcmQ+IGltcGxlbWVudHMgT25Db250ZXh0Q2hhbmdlZDxQbGFpdEdyb3VwLCBQbGFpdEJvYXJkPiB7XG4gICAgb25TdGFibGVTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBhY3RpdmVHZW5lcmF0b3IhOiBBY3RpdmVHZW5lcmF0b3I8UGxhaXRHcm91cD47XG5cbiAgICBncm91cEdlbmVyYXRvciE6IEdyb3VwR2VuZXJhdG9yO1xuXG4gICAgaW5pdGlhbGl6ZUdlbmVyYXRvcigpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IgPSBuZXcgQWN0aXZlR2VuZXJhdG9yPFBsYWl0R3JvdXA+KHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKGVsZW1lbnQ6IFBsYWl0R3JvdXApID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0UmVjdGFuZ2xlQnlHcm91cCh0aGlzLmJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTdHJva2VXaWR0aDogKCkgPT4gMCxcbiAgICAgICAgICAgIGdldFN0cm9rZU9wYWNpdHk6ICgpID0+IDAsXG4gICAgICAgICAgICBoYXNSZXNpemVIYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWlzU2VsZWN0aW9uTW92aW5nKHRoaXMuYm9hcmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ncm91cEdlbmVyYXRvciA9IG5ldyBHcm91cEdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUdlbmVyYXRvcigpO1xuICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250ZXh0KHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLm9uU3RhYmxlU3Vic2NyaXB0aW9uID0gY29udGV4dFNlcnZpY2Uub25TdGFibGUoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHNJbkdyb3VwID0gZ2V0RWxlbWVudHNJbkdyb3VwKHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudCwgZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgY29uc3QgaXNQYXJ0aWFsU2VsZWN0R3JvdXAgPVxuICAgICAgICAgICAgICAgIGVsZW1lbnRzSW5Hcm91cC5zb21lKGl0ZW0gPT4gaXNTZWxlY3RlZEVsZW1lbnRPckdyb3VwKHRoaXMuYm9hcmQsIGl0ZW0pKSAmJlxuICAgICAgICAgICAgICAgICFlbGVtZW50c0luR3JvdXAuZXZlcnkoaXRlbSA9PiBpc1NlbGVjdGVkRWxlbWVudE9yR3JvdXAodGhpcy5ib2FyZCwgaXRlbSkpO1xuICAgICAgICAgICAgdGhpcy5ncm91cEdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIHRoaXMuZ2V0RWxlbWVudEcoKSwgaXNQYXJ0aWFsU2VsZWN0R3JvdXApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2VkKFxuICAgICAgICB2YWx1ZTogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxQbGFpdEdyb3VwLCBQbGFpdEJvYXJkPixcbiAgICAgICAgcHJldmlvdXM6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRHcm91cCwgUGxhaXRCb2FyZD5cbiAgICApIHt9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMub25TdGFibGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './element-flavour';
|
|
2
|
+
export * from './element-ref';
|
|
3
|
+
export * from './group.component';
|
|
4
|
+
export * from './render-component';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VsZW1lbnQtZmxhdm91cic7XG5leHBvcnQgKiBmcm9tICcuL2VsZW1lbnQtcmVmJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcmVuZGVyLWNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29yZS9yZW5kZXItY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFJlbmRlckNvbXBvbmVudFJlZjxUPiB7XG4gICAgZGVzdHJveTogKCkgPT4gdm9pZDtcbiAgICB1cGRhdGU6IChwcm9wczogUGFydGlhbDxUPikgPT4gdm9pZDtcbn1cbiJdfQ==
|
|
@@ -61,4 +61,4 @@ export function hasAfterDraw(value) {
|
|
|
61
61
|
}
|
|
62
62
|
return false;
|
|
63
63
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3JzL2dlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFlBQVksRUFDZixNQUFNLGFBQWEsQ0FBQztBQVFyQixNQUFNLE9BQWdCLFNBQVM7SUFVM0IsWUFBc0IsS0FBUSxFQUFFLE9BQVc7UUFBckIsVUFBSyxHQUFMLEtBQUssQ0FBRztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQVUsRUFBRSxPQUFvQixFQUFFLElBQVE7UUFDckQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDOUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDSixJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDckMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLENBQUM7cUJBQU0sQ0FBQztvQkFDSixJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDVCxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNwQixDQUFDO29CQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQzt3QkFDeEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdkIsQ0FBQzt5QkFBTSxDQUFDO3dCQUNKLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzNCLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDWCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDUCxJQUFJLEtBQUssQ0FBQztvQkFDVixJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO3dCQUNyQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDN0UsQ0FBQzt5QkFBTSxDQUFDO3dCQUNKLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO29CQUMxQixDQUFDO29CQUNELElBQUksS0FBSyxFQUFFLENBQUM7d0JBQ1IsWUFBWSxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUNqRSxDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLENBQUM7WUFDRCxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVCLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0wsQ0FBQztJQVlELE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQU1ELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBVTtJQUNuQyxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgUGxhaXRHcm91cEVsZW1lbnQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGdldEVsZW1lbnRzSW5Hcm91cCxcbiAgICBnZXRTZWxlY3Rpb25BbmdsZSxcbiAgICBzZXRBbmdsZUZvckdcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRvckV4dHJhRGF0YSB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRvck9wdGlvbnMge1xuICAgIHByZXBlbmQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2VuZXJhdG9yPFxuICAgIFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQsXG4gICAgSyBleHRlbmRzIEdlbmVyYXRvckV4dHJhRGF0YSA9IEdlbmVyYXRvckV4dHJhRGF0YSxcbiAgICBWIGV4dGVuZHMgR2VuZXJhdG9yT3B0aW9ucyA9IEdlbmVyYXRvck9wdGlvbnMsXG4gICAgUCBleHRlbmRzIFBsYWl0Qm9hcmQgPSBQbGFpdEJvYXJkXG4+IHtcbiAgICBnPzogU1ZHR0VsZW1lbnQ7XG5cbiAgICBwcm90ZWN0ZWQgb3B0aW9ucz86IFY7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYm9hcmQ6IFAsIG9wdGlvbnM/OiBWKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0RyYXdpbmcoZWxlbWVudDogVCwgcGFyZW50RzogU1ZHR0VsZW1lbnQsIGRhdGE/OiBLKSB7XG4gICAgICAgIGlmICh0aGlzLmNhbkRyYXcgJiYgdGhpcy5jYW5EcmF3KGVsZW1lbnQsIGRhdGEpKSB7XG4gICAgICAgICAgICBjb25zdCBnID0gdGhpcy5kcmF3KGVsZW1lbnQsIGRhdGEpO1xuICAgICAgICAgICAgaWYgKGcpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5nICYmIHBhcmVudEcuY29udGFpbnModGhpcy5nKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmcucmVwbGFjZVdpdGgoZyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnM/LnByZXBlbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudEcucHJlcGVuZChnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudEcuYXBwZW5kQ2hpbGQoZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5nID0gZztcbiAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5ib2FyZC5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFuZ2xlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoUGxhaXRHcm91cEVsZW1lbnQuaXNHcm91cChlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGUgPSBnZXRTZWxlY3Rpb25BbmdsZShnZXRFbGVtZW50c0luR3JvdXAodGhpcy5ib2FyZCwgZWxlbWVudCwgdHJ1ZSkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGUgPSBlbGVtZW50LmFuZ2xlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChhbmdsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0QW5nbGVGb3JHKGcsIFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludChyZWN0KSwgYW5nbGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNBZnRlckRyYXcodGhpcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyRHJhdyhlbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYWJzdHJhY3QgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2FuRHJhdyhlbGVtZW50OiBULCBkYXRhPzogSyk6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBhYnN0cmFjdCBmdW5jdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBkcmF3KGVsZW1lbnQ6IFQsIGRhdGE/OiBLKTogU1ZHR0VsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5nKSB7XG4gICAgICAgICAgICB0aGlzLmcucmVtb3ZlKCk7XG4gICAgICAgICAgICB0aGlzLmcgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWZ0ZXJEcmF3PFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQ+IHtcbiAgICBhZnRlckRyYXcoZWxlbWVudDogVCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNBZnRlckRyYXcodmFsdWU6IGFueSk6IHZhbHVlIGlzIEFmdGVyRHJhdyB7XG4gICAgaWYgKHZhbHVlLmFmdGVyRHJhdykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './generator';
|
|
2
2
|
export * from './active.generator';
|
|
3
|
-
export * from '
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
export * from '../image/image.generator';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2dlbmVyYXRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9nZW5lcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9hY3RpdmUuZ2VuZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4uL2ltYWdlL2ltYWdlLmdlbmVyYXRvcic7XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
set isFocus(value) {
|
|
15
|
+
this._isFocus = value;
|
|
16
|
+
}
|
|
17
|
+
get isFocus() {
|
|
18
|
+
return this._isFocus;
|
|
19
|
+
}
|
|
20
|
+
initialize() {
|
|
21
|
+
this.initialized = true;
|
|
22
|
+
}
|
|
23
|
+
destroy() {
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2ltYWdlL2ltYWdlLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBZ0Isa0JBQWtCO0lBQXhDO1FBS0ksZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFtQ3hCLENBQUM7SUEvQkcsSUFBSSxTQUFTLENBQUMsS0FBc0I7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUlELElBQUksT0FBTyxDQUFDLEtBQWM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBTUQsVUFBVTtRQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uSW1hZ2VJdGVtIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW1hZ2VCYXNlQ29tcG9uZW50IHtcbiAgICBfaW1hZ2VJdGVtITogQ29tbW9uSW1hZ2VJdGVtO1xuXG4gICAgX2lzRm9jdXMhOiBib29sZWFuO1xuXG4gICAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIGVsZW1lbnQhOiBQbGFpdEVsZW1lbnQ7XG5cbiAgICBzZXQgaW1hZ2VJdGVtKHZhbHVlOiBDb21tb25JbWFnZUl0ZW0pIHtcbiAgICAgICAgdGhpcy5faW1hZ2VJdGVtID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLmFmdGVySW1hZ2VJdGVtQ2hhbmdlKHRoaXMuX2ltYWdlSXRlbSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGltYWdlSXRlbSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ltYWdlSXRlbTtcbiAgICB9XG5cbiAgICBib2FyZCE6IFBsYWl0Qm9hcmQ7XG5cbiAgICBzZXQgaXNGb2N1cyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc0ZvY3VzID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9jdXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ZvY3VzO1xuICAgIH1cblxuICAgIGFic3RyYWN0IGFmdGVySW1hZ2VJdGVtQ2hhbmdlKHByZXZpb3VzOiBDb21tb25JbWFnZUl0ZW0sIGN1cnJlbnQ6IENvbW1vbkltYWdlSXRlbSk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBuYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50O1xuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { ACTIVE_STROKE_WIDTH, PlaitBoard, RectangleClient, createForeignObject, createG, getSelectedElements, isSelectionMoving, setAngleForG, updateForeignObject } from '@plait/core';
|
|
2
|
+
import { Generator } from '../generators/generator';
|
|
3
|
+
import { canResize, getElementOfFocusedImage } from '../utils';
|
|
4
|
+
import { ActiveGenerator } from '../generators/active.generator';
|
|
5
|
+
export class ImageGenerator extends Generator {
|
|
6
|
+
static { this.key = 'image-generator'; }
|
|
7
|
+
constructor(board, options) {
|
|
8
|
+
super(board, options);
|
|
9
|
+
this.board = board;
|
|
10
|
+
this.options = options;
|
|
11
|
+
this.isFocus = false;
|
|
12
|
+
}
|
|
13
|
+
canDraw(element) {
|
|
14
|
+
return !!this.options.getImageItem(element);
|
|
15
|
+
}
|
|
16
|
+
draw(element) {
|
|
17
|
+
this.element = element;
|
|
18
|
+
const g = createG();
|
|
19
|
+
const foreignRectangle = this.options.getRectangle(element);
|
|
20
|
+
this.foreignObject = createForeignObject(foreignRectangle.x, foreignRectangle.y, foreignRectangle.width, foreignRectangle.height);
|
|
21
|
+
g.append(this.foreignObject);
|
|
22
|
+
const props = {
|
|
23
|
+
board: this.board,
|
|
24
|
+
imageItem: this.options.getImageItem(element),
|
|
25
|
+
element,
|
|
26
|
+
getRectangle: () => {
|
|
27
|
+
return this.options.getRectangle(element);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
this.imageComponentRef = this.board.renderImage(this.foreignObject, props);
|
|
31
|
+
this.activeGenerator = new ActiveGenerator(this.board, {
|
|
32
|
+
getStrokeWidth: () => {
|
|
33
|
+
const selectedElements = getSelectedElements(this.board);
|
|
34
|
+
if (!(selectedElements.length === 1 && !isSelectionMoving(this.board))) {
|
|
35
|
+
return ACTIVE_STROKE_WIDTH;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return ACTIVE_STROKE_WIDTH;
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
getStrokeOpacity: () => {
|
|
42
|
+
const selectedElements = getSelectedElements(this.board);
|
|
43
|
+
if ((selectedElements.length === 1 && !isSelectionMoving(this.board)) || !selectedElements.length) {
|
|
44
|
+
return 1;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return 0.5;
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
getRectangle: () => {
|
|
51
|
+
return this.options.getRectangle(this.element);
|
|
52
|
+
},
|
|
53
|
+
hasResizeHandle: () => {
|
|
54
|
+
const isSelectedImageElement = canResize(this.board, this.element);
|
|
55
|
+
const isSelectedImage = !!getElementOfFocusedImage(this.board);
|
|
56
|
+
return isSelectedImage || isSelectedImageElement;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
return g;
|
|
60
|
+
}
|
|
61
|
+
updateImage(nodeG, previous, current) {
|
|
62
|
+
this.element = current;
|
|
63
|
+
if (previous !== current && this.imageComponentRef) {
|
|
64
|
+
const props = {
|
|
65
|
+
imageItem: this.options.getImageItem(current),
|
|
66
|
+
element: current,
|
|
67
|
+
getRectangle: () => {
|
|
68
|
+
return this.options.getRectangle(current);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
this.imageComponentRef.update(props);
|
|
72
|
+
}
|
|
73
|
+
const currentForeignObject = this.options.getRectangle(current);
|
|
74
|
+
updateForeignObject(this.g, currentForeignObject.width, currentForeignObject.height, currentForeignObject.x, currentForeignObject.y);
|
|
75
|
+
if (currentForeignObject && current.angle) {
|
|
76
|
+
setAngleForG(this.g, RectangleClient.getCenterPoint(currentForeignObject), current.angle);
|
|
77
|
+
}
|
|
78
|
+
const activeG = PlaitBoard.getElementActiveHost(this.board);
|
|
79
|
+
this.activeGenerator.processDrawing(current, activeG, { selected: this.isFocus });
|
|
80
|
+
}
|
|
81
|
+
setFocus(element, isFocus) {
|
|
82
|
+
this.isFocus = isFocus;
|
|
83
|
+
const activeG = PlaitBoard.getElementActiveHost(this.board);
|
|
84
|
+
this.activeGenerator.processDrawing(element, activeG, { selected: isFocus });
|
|
85
|
+
const props = {
|
|
86
|
+
isFocus
|
|
87
|
+
};
|
|
88
|
+
this.imageComponentRef.update(props);
|
|
89
|
+
}
|
|
90
|
+
destroy() {
|
|
91
|
+
super.destroy();
|
|
92
|
+
this.imageComponentRef?.destroy();
|
|
93
|
+
this.activeGenerator?.destroy();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9pbWFnZS9pbWFnZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILG1CQUFtQixFQUNuQixVQUFVLEVBRVYsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osbUJBQW1CLEVBQ3RCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxTQUFTLEVBQXdDLE1BQU0seUJBQXlCLENBQUM7QUFDMUYsT0FBTyxFQUFtQixTQUFTLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBUWpFLE1BQU0sT0FBTyxjQUFzRCxTQUFRLFNBSTFFO2FBQ1UsUUFBRyxHQUFHLGlCQUFpQixBQUFwQixDQUFxQjtJQVkvQixZQUFtQixLQUFpQixFQUFTLE9BQWlDO1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFEUCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFKOUUsWUFBTyxHQUFHLEtBQUssQ0FBQztJQU1oQixDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQVU7UUFDZCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVU7UUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixNQUFNLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUNwQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FB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QXdCO1lBQy9CLE9BQU87U0FDVixDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsT0FBTztRQUNILEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUGxhaXRFbGVtZW50LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBjcmVhdGVGb3JlaWduT2JqZWN0LFxuICAgIGNyZWF0ZUcsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBpc1NlbGVjdGlvbk1vdmluZyxcbiAgICBzZXRBbmdsZUZvckcsXG4gICAgdXBkYXRlRm9yZWlnbk9iamVjdFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBHZW5lcmF0b3IsIEdlbmVyYXRvckV4dHJhRGF0YSwgR2VuZXJhdG9yT3B0aW9ucyB9IGZyb20gJy4uL2dlbmVyYXRvcnMvZ2VuZXJhdG9yJztcbmltcG9ydCB7IENvbW1vbkltYWdlSXRlbSwgY2FuUmVzaXplLCBnZXRFbGVtZW50T2ZGb2N1c2VkSW1hZ2UgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBBY3RpdmVHZW5lcmF0b3IgfSBmcm9tICcuLi9nZW5lcmF0b3JzL2FjdGl2ZS5nZW5lcmF0b3InO1xuaW1wb3J0IHsgUGxhaXRJbWFnZUJvYXJkLCBJbWFnZUNvbXBvbmVudFJlZiwgSW1hZ2VQcm9wcyB9IGZyb20gJy4vd2l0aC1pbWFnZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VHZW5lcmF0b3JPcHRpb25zPFQ+IHtcbiAgICBnZXRSZWN0YW5nbGU6IChlbGVtZW50OiBUKSA9PiBSZWN0YW5nbGVDbGllbnQ7XG4gICAgZ2V0SW1hZ2VJdGVtOiAoZWxlbWVudDogVCkgPT4gQ29tbW9uSW1hZ2VJdGVtO1xufVxuXG5leHBvcnQgY2xhc3MgSW1hZ2VHZW5lcmF0b3I8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudD4gZXh0ZW5kcyBHZW5lcmF0b3I8XG4gICAgVCxcbiAgICBHZW5lcmF0b3JFeHRyYURhdGEsXG4gICAgSW1hZ2VHZW5lcmF0b3JPcHRpb25zPFQ+ICYgR2VuZXJhdG9yT3B0aW9uc1xuPiB7XG4gICAgc3RhdGljIGtleSA9ICdpbWFnZS1nZW5lcmF0b3InO1xuXG4gICAgZm9yZWlnbk9iamVjdCE6IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50O1xuXG4gICAgaW1hZ2VDb21wb25lbnRSZWYhOiBJbWFnZUNvbXBvbmVudFJlZjtcblxuICAgIGFjdGl2ZUdlbmVyYXRvciE6IEFjdGl2ZUdlbmVyYXRvcjtcblxuICAgIGlzRm9jdXMgPSBmYWxzZTtcblxuICAgIGVsZW1lbnQhOiBUO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGJvYXJkOiBQbGFpdEJvYXJkLCBwdWJsaWMgb3B0aW9uczogSW1hZ2VHZW5lcmF0b3JPcHRpb25zPFQ+KSB7XG4gICAgICAgIHN1cGVyKGJvYXJkLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBjYW5EcmF3KGVsZW1lbnQ6IFQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5vcHRpb25zLmdldEltYWdlSXRlbShlbGVtZW50KTtcbiAgICB9XG5cbiAgICBkcmF3KGVsZW1lbnQ6IFQpOiBTVkdHRWxlbWVudCB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGNvbnN0IGZvcmVpZ25SZWN0YW5nbGUgPSB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLmZvcmVpZ25PYmplY3QgPSBjcmVhdGVGb3JlaWduT2JqZWN0KGZvcmVpZ25SZWN0YW5nbGUueCwgZm9yZWlnblJlY3RhbmdsZS55LCBmb3JlaWduUmVjdGFuZ2xlLndpZHRoLCBmb3JlaWduUmVjdGFuZ2xlLmhlaWdodCk7XG4gICAgICAgIGcuYXBwZW5kKHRoaXMuZm9yZWlnbk9iamVjdCk7XG4gICAgICAgIGNvbnN0IHByb3BzOiBJbWFnZVByb3BzID0ge1xuICAgICAgICAgICAgYm9hcmQ6IHRoaXMuYm9hcmQsXG4gICAgICAgICAgICBpbWFnZUl0ZW06IHRoaXMub3B0aW9ucy5nZXRJbWFnZUl0ZW0oZWxlbWVudCksXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgZ2V0UmVjdGFuZ2xlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaW1hZ2VDb21wb25lbnRSZWYgPSAoKHRoaXMuYm9hcmQgYXMgdW5rbm93bikgYXMgUGxhaXRJbWFnZUJvYXJkKS5yZW5kZXJJbWFnZSh0aGlzLmZvcmVpZ25PYmplY3QsIHByb3BzKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBBY3RpdmVHZW5lcmF0b3IodGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoIShzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTdHJva2VPcGFjaXR5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpIHx8ICFzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldFJlY3RhbmdsZSh0aGlzLmVsZW1lbnQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhhc1Jlc2l6ZUhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzU2VsZWN0ZWRJbWFnZUVsZW1lbnQgPSBjYW5SZXNpemUodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkSW1hZ2UgPSAhIWdldEVsZW1lbnRPZkZvY3VzZWRJbWFnZSh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNTZWxlY3RlZEltYWdlIHx8IGlzU2VsZWN0ZWRJbWFnZUVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZztcbiAgICB9XG5cbiAgICB1cGRhdGVJbWFnZShub2RlRzogU1ZHR0VsZW1lbnQsIHByZXZpb3VzOiBULCBjdXJyZW50OiBUKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGN1cnJlbnQ7XG4gICAgICAgIGlmIChwcmV2aW91cyAhPT0gY3VycmVudCAmJiB0aGlzLmltYWdlQ29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgICAgICAgICBpbWFnZUl0ZW06IHRoaXMub3B0aW9ucy5nZXRJbWFnZUl0ZW0oY3VycmVudCksXG4gICAgICAgICAgICAgICAgZWxlbWVudDogY3VycmVudCxcbiAgICAgICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoY3VycmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VDb21wb25lbnRSZWYudXBkYXRlKHByb3BzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50Rm9yZWlnbk9iamVjdCA9IHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoY3VycmVudCk7XG4gICAgICAgIHVwZGF0ZUZvcmVpZ25PYmplY3QoXG4gICAgICAgICAgICB0aGlzLmchLFxuICAgICAgICAgICAgY3VycmVudEZvcmVpZ25PYmplY3Qud2lkdGgsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC5oZWlnaHQsXG4gICAgICAgICAgICBjdXJyZW50Rm9yZWlnbk9iamVjdC54LFxuICAgICAgICAgICAgY3VycmVudEZvcmVpZ25PYmplY3QueVxuICAgICAgICApO1xuICAgICAgICBpZiAoY3VycmVudEZvcmVpZ25PYmplY3QgJiYgY3VycmVudC5hbmdsZSkge1xuICAgICAgICAgICAgc2V0QW5nbGVGb3JHKHRoaXMuZyEsIFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludChjdXJyZW50Rm9yZWlnbk9iamVjdCksIGN1cnJlbnQuYW5nbGUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGl2ZUcgPSBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyhjdXJyZW50LCBhY3RpdmVHLCB7IHNlbGVjdGVkOiB0aGlzLmlzRm9jdXMgfSk7XG4gICAgfVxuXG4gICAgc2V0Rm9jdXMoZWxlbWVudDogUGxhaXRFbGVtZW50LCBpc0ZvY3VzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNGb2N1cyA9IGlzRm9jdXM7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUcgPSBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyhlbGVtZW50LCBhY3RpdmVHLCB7IHNlbGVjdGVkOiBpc0ZvY3VzIH0pO1xuICAgICAgICBjb25zdCBwcm9wczogUGFydGlhbDxJbWFnZVByb3BzPiA9IHtcbiAgICAgICAgICAgIGlzRm9jdXNcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5pbWFnZUNvbXBvbmVudFJlZi51cGRhdGUocHJvcHMpO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5pbWFnZUNvbXBvbmVudFJlZj8uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvcj8uZGVzdHJveSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './image-base.component';
|
|
2
|
+
export * from './image.generator';
|
|
3
|
+
export * from './with-image';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2ltYWdlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW1hZ2UtYmFzZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS5nZW5lcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLWltYWdlJztcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const withImage = (board) => {
|
|
2
|
+
const newBoard = board;
|
|
3
|
+
newBoard.renderImage = (container, props) => {
|
|
4
|
+
throw new Error('No implementation for renderImage method.');
|
|
5
|
+
};
|
|
6
|
+
return newBoard;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1pbWFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvaW1hZ2Uvd2l0aC1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBb0MsS0FBUSxFQUFFLEVBQUU7SUFDckUsTUFBTSxRQUFRLEdBQUcsS0FBNEIsQ0FBQztJQUU5QyxRQUFRLENBQUMsV0FBVyxHQUFHLENBQUMsU0FBcUMsRUFBRSxLQUFpQixFQUFFLEVBQUU7UUFDaEYsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0lBQ2pFLENBQUMsQ0FBQztJQUNGLE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUmVuZGVyQ29tcG9uZW50UmVmIH0gZnJvbSAnLi4vY29yZS9yZW5kZXItY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbkltYWdlSXRlbSB9IGZyb20gJy4uL3V0aWxzL2ltYWdlJztcblxuZXhwb3J0IGludGVyZmFjZSBQbGFpdEltYWdlQm9hcmQge1xuICAgIHJlbmRlckltYWdlOiAoY29udGFpbmVyOiBFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCwgcHJvcHM6IEltYWdlUHJvcHMpID0+IEltYWdlQ29tcG9uZW50UmVmO1xufVxuXG5leHBvcnQgY29uc3Qgd2l0aEltYWdlID0gPFQgZXh0ZW5kcyBQbGFpdEJvYXJkID0gUGxhaXRCb2FyZD4oYm9hcmQ6IFQpID0+IHtcbiAgICBjb25zdCBuZXdCb2FyZCA9IGJvYXJkIGFzIFQgJiBQbGFpdEltYWdlQm9hcmQ7XG5cbiAgICBuZXdCb2FyZC5yZW5kZXJJbWFnZSA9IChjb250YWluZXI6IEVsZW1lbnQgfCBEb2N1bWVudEZyYWdtZW50LCBwcm9wczogSW1hZ2VQcm9wcykgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGltcGxlbWVudGF0aW9uIGZvciByZW5kZXJJbWFnZSBtZXRob2QuJyk7XG4gICAgfTtcbiAgICByZXR1cm4gbmV3Qm9hcmQ7XG59O1xuXG5leHBvcnQgdHlwZSBJbWFnZUNvbXBvbmVudFJlZiA9IFJlbmRlckNvbXBvbmVudFJlZjxJbWFnZVByb3BzPjtcblxuZXhwb3J0IGludGVyZmFjZSBJbWFnZVByb3BzIHtcbiAgICBib2FyZDogUGxhaXRCb2FyZDtcbiAgICBpbWFnZUl0ZW06IENvbW1vbkltYWdlSXRlbTtcbiAgICBlbGVtZW50OiBQbGFpdEVsZW1lbnQ7XG4gICAgaXNGb2N1cz86IGJvb2xlYW47XG4gICAgZ2V0UmVjdGFuZ2xlOiAoKSA9PiBSZWN0YW5nbGVDbGllbnQ7XG59XG4iXX0=
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export * from './with-resize';
|
|
2
|
-
export * from './text-options';
|
|
3
2
|
export * from './with-group';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BsdWdpbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3dpdGgtcmVzaXplJztcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1ncm91cCc7XG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -7,9 +7,10 @@ export * from './transforms';
|
|
|
7
7
|
export * from './shapes';
|
|
8
8
|
export * from './plugins';
|
|
9
9
|
export * from './utils';
|
|
10
|
-
export * from './
|
|
11
|
-
export * from './core
|
|
12
|
-
export * from './core/element-ref';
|
|
10
|
+
export * from './image/image-base.component';
|
|
11
|
+
export * from './core';
|
|
13
12
|
export * from './algorithms';
|
|
13
|
+
export * from './text';
|
|
14
|
+
export * from './image';
|
|
14
15
|
export * from './types';
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHV0aWxzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNmb3Jtcyc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbnMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlL2ltYWdlLWJhc2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZSc7XG5leHBvcnQgKiBmcm9tICcuL2FsZ29yaXRobXMnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './text-manage';
|
|
2
|
+
export * from './with-text';
|
|
3
|
+
export * from './text-measure';
|
|
4
|
+
export * from './types';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RleHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGV4dC1tYW5hZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLXRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0LW1lYXN1cmUnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG4iXX0=
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { IS_TEXT_EDITABLE, MERGING, RectangleClient, createForeignObject, createG, setAngleForG, toHostPoint, toViewBoxPoint, updateForeignObject, updateForeignObjectWidth } from '@plait/core';
|
|
2
|
+
import { fromEvent, timer } from 'rxjs';
|
|
3
|
+
import { Editor, Range, Node, Transforms, Operation } from 'slate';
|
|
4
|
+
import { measureElement } from './text-measure';
|
|
5
|
+
export class TextManage {
|
|
6
|
+
constructor(board, options) {
|
|
7
|
+
this.board = board;
|
|
8
|
+
this.options = options;
|
|
9
|
+
this.isEditing = false;
|
|
10
|
+
this.getSize = (element) => {
|
|
11
|
+
const computedStyle = window.getComputedStyle(this.foreignObject.children[0]);
|
|
12
|
+
const fontFamily = computedStyle.fontFamily;
|
|
13
|
+
const fontSize = parseFloat(computedStyle.fontSize);
|
|
14
|
+
const target = element || this.editor.children[0];
|
|
15
|
+
return measureElement(target, {
|
|
16
|
+
fontSize: fontSize,
|
|
17
|
+
fontFamily
|
|
18
|
+
}, this.options.getMaxWidth());
|
|
19
|
+
};
|
|
20
|
+
this.getText = () => {
|
|
21
|
+
return this.editor.children[0];
|
|
22
|
+
};
|
|
23
|
+
if (!this.options.getMaxWidth) {
|
|
24
|
+
this.options.getMaxWidth = () => 999;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
draw(text) {
|
|
28
|
+
const _rectangle = this.options.getRectangle();
|
|
29
|
+
this.g = createG();
|
|
30
|
+
this.foreignObject = createForeignObject(_rectangle.x, _rectangle.y, _rectangle.width, _rectangle.height);
|
|
31
|
+
this.g.append(this.foreignObject);
|
|
32
|
+
this.g.classList.add('text');
|
|
33
|
+
const props = {
|
|
34
|
+
board: this.board,
|
|
35
|
+
text,
|
|
36
|
+
textPlugins: this.options.textPlugins,
|
|
37
|
+
onChange: (data) => {
|
|
38
|
+
if (data.operations.some(op => !Operation.isSelectionOperation(op))) {
|
|
39
|
+
const { width, height } = this.getSize();
|
|
40
|
+
this.options.onChange && this.options.onChange({ ...data, width, height });
|
|
41
|
+
MERGING.set(this.board, true);
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
afterInit: (editor) => {
|
|
45
|
+
this.editor = editor;
|
|
46
|
+
},
|
|
47
|
+
onComposition: (event) => {
|
|
48
|
+
const fakeRoot = buildCompositionData(this.editor, event.data);
|
|
49
|
+
if (fakeRoot) {
|
|
50
|
+
const sizeData = this.getSize(fakeRoot.children[0]);
|
|
51
|
+
this.options.onChange && this.options.onChange(sizeData);
|
|
52
|
+
MERGING.set(this.board, true);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
this.textComponentRef = this.board.renderText(this.foreignObject, props);
|
|
57
|
+
}
|
|
58
|
+
updateRectangleWidth(width) {
|
|
59
|
+
updateForeignObjectWidth(this.g, width);
|
|
60
|
+
}
|
|
61
|
+
updateAngle(centerPoint, angle = 0) {
|
|
62
|
+
setAngleForG(this.g, centerPoint, angle);
|
|
63
|
+
}
|
|
64
|
+
updateRectangle(rectangle) {
|
|
65
|
+
const { x, y, width, height } = rectangle || this.options.getRectangle();
|
|
66
|
+
updateForeignObject(this.g, width, height, x, y);
|
|
67
|
+
}
|
|
68
|
+
updateText(newText) {
|
|
69
|
+
const props = {
|
|
70
|
+
text: newText
|
|
71
|
+
};
|
|
72
|
+
this.textComponentRef.update(props);
|
|
73
|
+
}
|
|
74
|
+
edit(callback) {
|
|
75
|
+
this.isEditing = true;
|
|
76
|
+
IS_TEXT_EDITABLE.set(this.board, true);
|
|
77
|
+
const props = {
|
|
78
|
+
readonly: false
|
|
79
|
+
};
|
|
80
|
+
this.textComponentRef.update(props);
|
|
81
|
+
Transforms.select(this.editor, [0]);
|
|
82
|
+
const mousedown$ = fromEvent(document, 'mousedown').subscribe((event) => {
|
|
83
|
+
const point = toViewBoxPoint(this.board, toHostPoint(this.board, event.x, event.y));
|
|
84
|
+
const textRec = this.options.getRenderRectangle ? this.options.getRenderRectangle() : this.options.getRectangle();
|
|
85
|
+
const clickInText = RectangleClient.isHit(RectangleClient.getRectangleByPoints([point, point]), textRec);
|
|
86
|
+
const isAttached = event.target.closest('.plait-board-attached');
|
|
87
|
+
if (!clickInText && !isAttached) {
|
|
88
|
+
// handle composition input state, like: Chinese IME Composition Input
|
|
89
|
+
timer(0).subscribe(() => {
|
|
90
|
+
exitCallback();
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
const keydown$ = fromEvent(document, 'keydown').subscribe((event) => {
|
|
95
|
+
if (event.isComposing) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (event.key === 'Escape' || (event.key === 'Enter' && !event.shiftKey) || event.key === 'Tab') {
|
|
99
|
+
event.preventDefault();
|
|
100
|
+
event.stopPropagation();
|
|
101
|
+
exitCallback();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
const exitCallback = () => {
|
|
106
|
+
this.updateRectangle();
|
|
107
|
+
mousedown$.unsubscribe();
|
|
108
|
+
keydown$.unsubscribe();
|
|
109
|
+
IS_TEXT_EDITABLE.set(this.board, false);
|
|
110
|
+
MERGING.set(this.board, false);
|
|
111
|
+
callback && callback();
|
|
112
|
+
const props = {
|
|
113
|
+
readonly: true
|
|
114
|
+
};
|
|
115
|
+
this.textComponentRef.update(props);
|
|
116
|
+
this.isEditing = false;
|
|
117
|
+
};
|
|
118
|
+
return exitCallback;
|
|
119
|
+
}
|
|
120
|
+
destroy() {
|
|
121
|
+
this.g?.remove();
|
|
122
|
+
this.textComponentRef?.destroy();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
export const buildCompositionData = (editor, data) => {
|
|
126
|
+
if (editor.selection && Range.isCollapsed(editor.selection)) {
|
|
127
|
+
const [textNode, textPath] = Editor.node(editor, editor.selection);
|
|
128
|
+
const offset = editor.selection.anchor.offset;
|
|
129
|
+
const clonedElement = JSON.parse(JSON.stringify(editor.children[0]));
|
|
130
|
+
const root = { children: [clonedElement] };
|
|
131
|
+
const newTextString = textNode.text.slice(0, offset + 1) + data + textNode.text.slice(offset + 1);
|
|
132
|
+
const clonedTextNode = Node.get(root, textPath);
|
|
133
|
+
clonedTextNode.text = newTextString;
|
|
134
|
+
return root;
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1tYW5hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RleHQvdGV4dC1tYW5hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGdCQUFnQixFQUNoQixPQUFPLEVBR1AsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixPQUFPLEVBQ1AsWUFBWSxFQUNaLFdBQVcsRUFDWCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUMzQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFzQixLQUFLLEVBQVEsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBVWhELE1BQU0sT0FBTyxVQUFVO0lBV25CLFlBQ1ksS0FBaUIsRUFDakIsT0FNUDtRQVBPLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FNZDtRQWxCTCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBNEhsQixZQUFPLEdBQUcsQ0FBQyxPQUFpQixFQUFFLEVBQUU7WUFDNUIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUUsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUM1QyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sTUFBTSxHQUFHLE9BQU8sSUFBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQWEsQ0FBQztZQUMvRCxPQUFP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TUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFvQixDQUFDO1FBQ3RGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM5QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckUsTUFBTSxJQUFJLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENBQVMsQ0FBQztRQUN4RCxjQUFjLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJU19URVhUX0VESVRBQkxFLFxuICAgIE1FUkdJTkcsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQb2ludCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgY3JlYXRlRm9yZWlnbk9iamVjdCxcbiAgICBjcmVhdGVHLFxuICAgIHNldEFuZ2xlRm9yRyxcbiAgICB0b0hvc3RQb2ludCxcbiAgICB0b1ZpZXdCb3hQb2ludCxcbiAgICB1cGRhdGVGb3JlaWduT2JqZWN0LFxuICAgIHVwZGF0ZUZvcmVpZ25PYmplY3RXaWR0aFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQsIE5vZGVFbnRyeSwgUmFuZ2UsIFRleHQsIE5vZGUsIFRyYW5zZm9ybXMsIE9wZXJhdGlvbiB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFBsYWl0VGV4dEJvYXJkLCBUZXh0UGx1Z2luIH0gZnJvbSAnLi93aXRoLXRleHQnO1xuaW1wb3J0IHsgbWVhc3VyZUVsZW1lbnQgfSBmcm9tICcuL3RleHQtbWVhc3VyZSc7XG5pbXBvcnQgeyBUZXh0Q2hhbmdlRGF0YSwgVGV4dENvbXBvbmVudFJlZiwgVGV4dFByb3BzIH0gZnJvbSAnLi93aXRoLXRleHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRNYW5hZ2VDaGFuZ2VEYXRhIHtcbiAgICBuZXdUZXh0PzogRWxlbWVudDtcbiAgICBvcGVyYXRpb25zPzogT3BlcmF0aW9uW107XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFRleHRNYW5hZ2Uge1xuICAgIGlzRWRpdGluZyA9IGZhbHNlO1xuXG4gICAgZWRpdG9yITogRWRpdG9yO1xuXG4gICAgZyE6IFNWR0dFbGVtZW50O1xuXG4gICAgZm9yZWlnbk9iamVjdCE6IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50O1xuXG4gICAgdGV4dENvbXBvbmVudFJlZiE6IFRleHRDb21wb25lbnRSZWY7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBib2FyZDogUGxhaXRCb2FyZCxcbiAgICAgICAgcHJpdmF0ZSBvcHRpb25zOiB7XG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IFJlY3RhbmdsZUNsaWVudDtcbiAgICAgICAgICAgIG9uQ2hhbmdlPzogKGRhdGE6IFRleHRNYW5hZ2VDaGFuZ2VEYXRhKSA9PiB2b2lkO1xuICAgICAgICAgICAgZ2V0UmVuZGVyUmVjdGFuZ2xlPzogKCkgPT4gUmVjdGFuZ2xlQ2xpZW50O1xuICAgICAgICAgICAgZ2V0TWF4V2lkdGg/OiAoKSA9PiBudW1iZXI7XG4gICAgICAgICAgICB0ZXh0UGx1Z2lucz86IFRleHRQbHVnaW5bXTtcbiAgICAgICAgfVxuICAgICkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5nZXRNYXhXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLmdldE1heFdpZHRoID0gKCkgPT4gOTk5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhdyh0ZXh0OiBFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IF9yZWN0YW5nbGUgPSB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKCk7XG4gICAgICAgIHRoaXMuZyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgdGhpcy5mb3JlaWduT2JqZWN0ID0gY3JlYXRlRm9yZWlnbk9iamVjdChfcmVjdGFuZ2xlLngsIF9yZWN0YW5nbGUueSwgX3JlY3RhbmdsZS53aWR0aCwgX3JlY3RhbmdsZS5oZWlnaHQpO1xuICAgICAgICB0aGlzLmcuYXBwZW5kKHRoaXMuZm9yZWlnbk9iamVjdCk7XG4gICAgICAgIHRoaXMuZy5jbGFzc0xpc3QuYWRkKCd0ZXh0Jyk7XG4gICAgICAgIGNvbnN0IHByb3BzOiBUZXh0UHJvcHMgPSB7XG4gICAgICAgICAgICBib2FyZDogdGhpcy5ib2FyZCxcbiAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICB0ZXh0UGx1Z2luczogdGhpcy5vcHRpb25zLnRleHRQbHVnaW5zLFxuICAgICAgICAgICAgb25DaGFuZ2U6IChkYXRhOiBUZXh0Q2hhbmdlRGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkYXRhLm9wZXJhdGlvbnMuc29tZShvcCA9PiAhT3BlcmF0aW9uLmlzU2VsZWN0aW9uT3BlcmF0aW9uKG9wKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSB0aGlzLmdldFNpemUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLm9uQ2hhbmdlICYmIHRoaXMub3B0aW9ucy5vbkNoYW5nZSh7IC4uLmRhdGEsIHdpZHRoLCBoZWlnaHQgfSk7XG4gICAgICAgICAgICAgICAgICAgIE1FUkdJTkcuc2V0KHRoaXMuYm9hcmQsIHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhZnRlckluaXQ6IChlZGl0b3I6IEVkaXRvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yID0gZWRpdG9yO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uQ29tcG9zaXRpb246IChldmVudDogQ29tcG9zaXRpb25FdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZha2VSb290ID0gYnVpbGRDb21wb3NpdGlvbkRhdGEodGhpcy5lZGl0b3IsIGV2ZW50LmRhdGEpO1xuICAgICAgICAgICAgICAgIGlmIChmYWtlUm9vdCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplRGF0YSA9IHRoaXMuZ2V0U2l6ZShmYWtlUm9vdC5jaGlsZHJlblswXSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vbkNoYW5nZSAmJiB0aGlzLm9wdGlvbnMub25DaGFuZ2Uoc2l6ZURhdGEpO1xuICAgICAgICAgICAgICAgICAgICBNRVJHSU5HLnNldCh0aGlzLmJvYXJkLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudGV4dENvbXBvbmVudFJlZiA9ICgodGhpcy5ib2FyZCBhcyB1bmtub3duKSBhcyBQbGFpdFRleHRCb2FyZCkucmVuZGVyVGV4dCh0aGlzLmZvcmVpZ25PYmplY3QsIHByb3BzKTtcbiAgICB9XG5cbiAgICB1cGRhdGVSZWN0YW5nbGVXaWR0aCh3aWR0aDogbnVtYmVyKSB7XG4gICAgICAgIHVwZGF0ZUZvcmVpZ25PYmplY3RXaWR0aCh0aGlzLmcsIHdpZHRoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVBbmdsZShjZW50ZXJQb2ludDogUG9pbnQsIGFuZ2xlOiBudW1iZXIgPSAwKSB7XG4gICAgICAgIHNldEFuZ2xlRm9yRyh0aGlzLmcsIGNlbnRlclBvaW50LCBhbmdsZSk7XG4gICAgfVxuXG4gICAgdXBkYXRlUmVjdGFuZ2xlKHJlY3RhbmdsZT86IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICBjb25zdCB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfSA9IHJlY3RhbmdsZSB8fCB0aGlzLm9wdGlvbnMuZ2V0UmVjdGFuZ2xlKCk7XG4gICAgICAgIHVwZGF0ZUZvcmVpZ25PYmplY3QodGhpcy5nLCB3aWR0aCwgaGVpZ2h0LCB4LCB5KTtcbiAgICB9XG5cbiAgICB1cGRhdGVUZXh0KG5ld1RleHQ6IEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgICAgICB0ZXh0OiBuZXdUZXh0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudGV4dENvbXBvbmVudFJlZi51cGRhdGUocHJvcHMpO1xuICAgIH1cblxuICAgIGVkaXQoY2FsbGJhY2s/OiAoKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuaXNFZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgSVNfVEVYVF9FRElUQUJMRS5zZXQodGhpcy5ib2FyZCwgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IHByb3BzOiBQYXJ0aWFsPFRleHRQcm9wcz4gPSB7XG4gICAgICAgICAgICByZWFkb25seTogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy50ZXh0Q29tcG9uZW50UmVmLnVwZGF0ZShwcm9wcyk7XG4gICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KHRoaXMuZWRpdG9yLCBbMF0pO1xuICAgICAgICBjb25zdCBtb3VzZWRvd24kID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnbW91c2Vkb3duJykuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSB0b1ZpZXdCb3hQb2ludCh0aGlzLmJvYXJkLCB0b0hvc3RQb2ludCh0aGlzLmJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgICAgICBjb25zdCB0ZXh0UmVjID0gdGhpcy5vcHRpb25zLmdldFJlbmRlclJlY3RhbmdsZSA/IHRoaXMub3B0aW9ucy5nZXRSZW5kZXJSZWN0YW5nbGUoKSA6IHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoKTtcbiAgICAgICAgICAgIGNvbnN0IGNsaWNrSW5UZXh0ID0gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSksIHRleHRSZWMpO1xuICAgICAgICAgICAgY29uc3QgaXNBdHRhY2hlZCA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5wbGFpdC1ib2FyZC1hdHRhY2hlZCcpO1xuICAgICAgICAgICAgaWYgKCFjbGlja0luVGV4dCAmJiAhaXNBdHRhY2hlZCkge1xuICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBjb21wb3NpdGlvbiBpbnB1dCBzdGF0ZSwgbGlrZTogQ2hpbmVzZSBJTUUgQ29tcG9zaXRpb24gSW5wdXRcbiAgICAgICAgICAgICAgICB0aW1lcigwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBleGl0Q2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGtleWRvd24kID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5ZG93bicpLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5pc0NvbXBvc2luZykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8IChldmVudC5rZXkgPT09ICdFbnRlcicgJiYgIWV2ZW50LnNoaWZ0S2V5KSB8fCBldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBleGl0Q2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBleGl0Q2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJlY3RhbmdsZSgpO1xuICAgICAgICAgICAgbW91c2Vkb3duJC51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAga2V5ZG93biQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIElTX1RFWFRfRURJVEFCTEUuc2V0KHRoaXMuYm9hcmQsIGZhbHNlKTtcbiAgICAgICAgICAgIE1FUkdJTkcuc2V0KHRoaXMuYm9hcmQsIGZhbHNlKTtcbiAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgICAgICAgICByZWFkb25seTogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMudGV4dENvbXBvbmVudFJlZi51cGRhdGUocHJvcHMpO1xuICAgICAgICAgICAgdGhpcy5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGV4aXRDYWxsYmFjaztcbiAgICB9XG5cbiAgICBnZXRTaXplID0gKGVsZW1lbnQ/OiBFbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmZvcmVpZ25PYmplY3QuY2hpbGRyZW5bMF0pO1xuICAgICAgICBjb25zdCBmb250RmFtaWx5ID0gY29tcHV0ZWRTdHlsZS5mb250RmFtaWx5O1xuICAgICAgICBjb25zdCBmb250U2l6ZSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5mb250U2l6ZSk7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGVsZW1lbnQgfHwgKHRoaXMuZWRpdG9yLmNoaWxkcmVuWzBdIGFzIEVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbWVhc3VyZUVsZW1lbnQoXG4gICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZm9udFNpemU6IGZvbnRTaXplLFxuICAgICAgICAgICAgICAgIGZvbnRGYW1pbHlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuZ2V0TWF4V2lkdGghKClcbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgZ2V0VGV4dCA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yLmNoaWxkcmVuWzBdO1xuICAgIH07XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICB0aGlzLmc/LnJlbW92ZSgpO1xuICAgICAgICB0aGlzLnRleHRDb21wb25lbnRSZWY/LmRlc3Ryb3koKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZENvbXBvc2l0aW9uRGF0YSA9IChlZGl0b3I6IEVkaXRvciwgZGF0YTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGVkaXRvci5zZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQoZWRpdG9yLnNlbGVjdGlvbikpIHtcbiAgICAgICAgY29uc3QgW3RleHROb2RlLCB0ZXh0UGF0aF0gPSBFZGl0b3Iubm9kZShlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24pIGFzIE5vZGVFbnRyeTxUZXh0PjtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gZWRpdG9yLnNlbGVjdGlvbi5hbmNob3Iub2Zmc2V0O1xuICAgICAgICBjb25zdCBjbG9uZWRFbGVtZW50ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlZGl0b3IuY2hpbGRyZW5bMF0pKTtcbiAgICAgICAgY29uc3Qgcm9vdCA9IHsgY2hpbGRyZW46IFtjbG9uZWRFbGVtZW50XSB9O1xuICAgICAgICBjb25zdCBuZXdUZXh0U3RyaW5nID0gdGV4dE5vZGUudGV4dC5zbGljZSgwLCBvZmZzZXQgKyAxKSArIGRhdGEgKyB0ZXh0Tm9kZS50ZXh0LnNsaWNlKG9mZnNldCArIDEpO1xuICAgICAgICBjb25zdCBjbG9uZWRUZXh0Tm9kZSA9IE5vZGUuZ2V0KHJvb3QsIHRleHRQYXRoKSBhcyBUZXh0O1xuICAgICAgICBjbG9uZWRUZXh0Tm9kZS50ZXh0ID0gbmV3VGV4dFN0cmluZztcbiAgICAgICAgcmV0dXJuIHJvb3Q7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Node } from 'slate';
|
|
2
|
+
import { getLineHeightByFontSize } from '../utils/text';
|
|
3
|
+
export function measureElement(element, options, containerMaxWidth = 10000) {
|
|
4
|
+
const canvas = document.createElement('canvas');
|
|
5
|
+
const ctx = canvas.getContext('2d');
|
|
6
|
+
const textEntries = Node.texts(element);
|
|
7
|
+
const lines = [[]];
|
|
8
|
+
for (const textEntry of textEntries) {
|
|
9
|
+
const [text] = textEntry;
|
|
10
|
+
const textString = Node.string(text);
|
|
11
|
+
const textArray = textString.split('\n');
|
|
12
|
+
textArray.forEach((segmentTextString, index) => {
|
|
13
|
+
const segmentText = { ...text, text: segmentTextString };
|
|
14
|
+
if (index === 0) {
|
|
15
|
+
const currentLine = lines[lines.length - 1];
|
|
16
|
+
currentLine.push(segmentText);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const newLine = [];
|
|
20
|
+
newLine.push(segmentText);
|
|
21
|
+
lines.push(newLine);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
let width = 0;
|
|
26
|
+
let height = 0;
|
|
27
|
+
lines.forEach((lineTexts, index) => {
|
|
28
|
+
let lineWidth = 0;
|
|
29
|
+
let maxLineHeight = getLineHeightByFontSize(options.fontSize);
|
|
30
|
+
lineTexts.forEach((text, index) => {
|
|
31
|
+
const font = getFont(text, { fontFamily: options.fontFamily, fontSize: options.fontSize });
|
|
32
|
+
ctx.font = font;
|
|
33
|
+
const textMetrics = ctx.measureText(text.text);
|
|
34
|
+
lineWidth += textMetrics.width;
|
|
35
|
+
const isLast = index === lineTexts.length - 1;
|
|
36
|
+
// skip when text is empty and is not last text of line
|
|
37
|
+
if (text['font-size'] && (isLast || text.text !== '')) {
|
|
38
|
+
const lineHeight = getLineHeightByFontSize(parseFloat(text['font-size']));
|
|
39
|
+
if (lineHeight > maxLineHeight) {
|
|
40
|
+
maxLineHeight = lineHeight;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
if (lineWidth <= containerMaxWidth) {
|
|
45
|
+
if (lineWidth > width) {
|
|
46
|
+
width = lineWidth;
|
|
47
|
+
}
|
|
48
|
+
height += maxLineHeight;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
width = containerMaxWidth;
|
|
52
|
+
const lineWrapNumber = Math.ceil(lineWidth / containerMaxWidth);
|
|
53
|
+
height += maxLineHeight * lineWrapNumber;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return { width, height };
|
|
57
|
+
}
|
|
58
|
+
const getFont = (text, options) => {
|
|
59
|
+
return `${text.italic ? 'italic ' : ''} ${text.bold ? 'bold ' : ''} ${text['font-size'] || options.fontSize}px ${options.fontFamily} `;
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1tZWFzdXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy90ZXh0L3RleHQtbWVhc3VyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTdCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxNQUFNLFVBQVUsY0FBYyxDQUMxQixPQUF5QixFQUN6QixPQUdDLEVBQ0Qsb0JBQTRCLEtBQUs7SUFFakMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBNkIsQ0FBQztJQUNoRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sS0FBSyxHQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLEtBQUssTUFBTSxTQUFTLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN6QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGlCQUF5QixFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQzNELE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUM7WUFDekQsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE1BQU0sT0FBTyxHQUFpQixFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzFCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNkLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNmLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUF1QixFQUFFLEtBQWEsRUFBRSxFQUFFO1FBQ3JELElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLGFBQWEsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWdCLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDbEQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMzRixHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNoQixNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQyxTQUFTLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQztZQUMvQixNQUFNLE1BQU0sR0FBRyxLQUFLLEtBQUssU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDOUMsdURBQXVEO1lBQ3ZELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDcEQsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFFLElBQUksVUFBVSxHQUFHLGFBQWEsRUFBRSxDQUFDO29CQUM3QixhQUFhLEdBQUcsVUFBVSxDQUFDO2dCQUMvQixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxTQUFTLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUNqQyxJQUFJLFNBQVMsR0FBRyxLQUFLLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUN0QixDQUFDO1lBQ0QsTUFBTSxJQUFJLGFBQWEsQ0FBQztRQUM1QixDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssR0FBRyxpQkFBaUIsQ0FBQztZQUMxQixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sSUFBSSxhQUFhLEdBQUcsY0FBYyxDQUFDO1FBQzdDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sT0FBTyxHQUFHLENBQ1osSUFBZ0IsRUFDaEIsT0FHQyxFQUNILEVBQUU7SUFDQSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLE1BQU0sT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDO0FBQzNJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGUgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBDdXN0b21UZXh0LCBQYXJhZ3JhcGhFbGVtZW50IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRMaW5lSGVpZ2h0QnlGb250U2l6ZSB9IGZyb20gJy4uL3V0aWxzL3RleHQnO1xuXG5leHBvcnQgZnVuY3Rpb24gbWVhc3VyZUVsZW1lbnQoXG4gICAgZWxlbWVudDogUGFyYWdyYXBoRWxlbWVudCxcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIGZvbnRTaXplOiBudW1iZXI7XG4gICAgICAgIGZvbnRGYW1pbHk6IHN0cmluZztcbiAgICB9LFxuICAgIGNvbnRhaW5lck1heFdpZHRoOiBudW1iZXIgPSAxMDAwMFxuKSB7XG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJykgYXMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEO1xuICAgIGNvbnN0IHRleHRFbnRyaWVzID0gTm9kZS50ZXh0cyhlbGVtZW50KTtcbiAgICBjb25zdCBsaW5lczogQ3VzdG9tVGV4dFtdW10gPSBbW11dO1xuICAgIGZvciAoY29uc3QgdGV4dEVudHJ5IG9mIHRleHRFbnRyaWVzKSB7XG4gICAgICAgIGNvbnN0IFt0ZXh0XSA9IHRleHRFbnRyeTtcbiAgICAgICAgY29uc3QgdGV4dFN0cmluZyA9IE5vZGUuc3RyaW5nKHRleHQpO1xuICAgICAgICBjb25zdCB0ZXh0QXJyYXkgPSB0ZXh0U3RyaW5nLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgdGV4dEFycmF5LmZvckVhY2goKHNlZ21lbnRUZXh0U3RyaW5nOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnRUZXh0ID0geyAuLi50ZXh0LCB0ZXh0OiBzZWdtZW50VGV4dFN0cmluZyB9O1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudExpbmUgPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICBjdXJyZW50TGluZS5wdXNoKHNlZ21lbnRUZXh0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3TGluZTogQ3VzdG9tVGV4dFtdID0gW107XG4gICAgICAgICAgICAgICAgbmV3TGluZS5wdXNoKHNlZ21lbnRUZXh0KTtcbiAgICAgICAgICAgICAgICBsaW5lcy5wdXNoKG5ld0xpbmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgbGV0IHdpZHRoID0gMDtcbiAgICBsZXQgaGVpZ2h0ID0gMDtcbiAgICBsaW5lcy5mb3JFYWNoKChsaW5lVGV4dHM6IEN1c3RvbVRleHRbXSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBsZXQgbGluZVdpZHRoID0gMDtcbiAgICAgICAgbGV0IG1heExpbmVIZWlnaHQgPSBnZXRMaW5lSGVpZ2h0QnlGb250U2l6ZShvcHRpb25zLmZvbnRTaXplKTtcbiAgICAgICAgbGluZVRleHRzLmZvckVhY2goKHRleHQ6IEN1c3RvbVRleHQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvbnQgPSBnZXRGb250KHRleHQsIHsgZm9udEZhbWlseTogb3B0aW9ucy5mb250RmFtaWx5LCBmb250U2l6ZTogb3B0aW9ucy5mb250U2l6ZSB9KTtcbiAgICAgICAgICAgIGN0eC5mb250ID0gZm9udDtcbiAgICAgICAgICAgIGNvbnN0IHRleHRNZXRyaWNzID0gY3R4Lm1lYXN1cmVUZXh0KHRleHQudGV4dCk7XG4gICAgICAgICAgICBsaW5lV2lkdGggKz0gdGV4dE1ldHJpY3Mud2lkdGg7XG4gICAgICAgICAgICBjb25zdCBpc0xhc3QgPSBpbmRleCA9PT0gbGluZVRleHRzLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAvLyBza2lwIHdoZW4gdGV4dCBpcyBlbXB0eSBhbmQgaXMgbm90IGxhc3QgdGV4dCBvZiBsaW5lXG4gICAgICAgICAgICBpZiAodGV4dFsnZm9udC1zaXplJ10gJiYgKGlzTGFzdCB8fCB0ZXh0LnRleHQgIT09ICcnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmVIZWlnaHQgPSBnZXRMaW5lSGVpZ2h0QnlGb250U2l6ZShwYXJzZUZsb2F0KHRleHRbJ2ZvbnQtc2l6ZSddKSk7XG4gICAgICAgICAgICAgICAgaWYgKGxpbmVIZWlnaHQgPiBtYXhMaW5lSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIG1heExpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChsaW5lV2lkdGggPD0gY29udGFpbmVyTWF4V2lkdGgpIHtcbiAgICAgICAgICAgIGlmIChsaW5lV2lkdGggPiB3aWR0aCkge1xuICAgICAgICAgICAgICAgIHdpZHRoID0gbGluZVdpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGVpZ2h0ICs9IG1heExpbmVIZWlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aWR0aCA9IGNvbnRhaW5lck1heFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgbGluZVdyYXBOdW1iZXIgPSBNYXRoLmNlaWwobGluZVdpZHRoIC8gY29udGFpbmVyTWF4V2lkdGgpO1xuICAgICAgICAgICAgaGVpZ2h0ICs9IG1heExpbmVIZWlnaHQgKiBsaW5lV3JhcE51bWJlcjtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB7IHdpZHRoLCBoZWlnaHQgfTtcbn1cblxuY29uc3QgZ2V0Rm9udCA9IChcbiAgICB0ZXh0OiBDdXN0b21UZXh0LFxuICAgIG9wdGlvbnM6IHtcbiAgICAgICAgZm9udFNpemU6IG51bWJlcjtcbiAgICAgICAgZm9udEZhbWlseTogc3RyaW5nO1xuICAgIH1cbikgPT4ge1xuICAgIHJldHVybiBgJHt0ZXh0Lml0YWxpYyA/ICdpdGFsaWMgJyA6ICcnfSAke3RleHQuYm9sZCA/ICdib2xkICcgOiAnJ30gJHt0ZXh0Wydmb250LXNpemUnXSB8fCBvcHRpb25zLmZvbnRTaXplfXB4ICR7b3B0aW9ucy5mb250RmFtaWx5fSBgO1xufTtcbiJdfQ==
|