@plait/common 0.50.1 → 0.51.1
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/README.md +7 -6
- package/constants/default.d.ts +1 -1
- package/constants/resize.d.ts +8 -8
- package/esm2022/constants/default.mjs +2 -2
- package/esm2022/constants/resize.mjs +9 -9
- package/esm2022/core/image-base.component.mjs +4 -4
- package/esm2022/generators/active.generator.mjs +9 -10
- package/esm2022/generators/generator.mjs +6 -1
- package/esm2022/plugins/with-resize.mjs +53 -44
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/types/resize.mjs +2 -0
- package/esm2022/utils/direction.mjs +5 -25
- package/esm2022/utils/drawing/index.mjs +2 -0
- package/esm2022/utils/drawing/resize-handle.mjs +23 -0
- package/esm2022/utils/elbow-line-route.mjs +38 -36
- package/esm2022/utils/index.mjs +4 -2
- package/esm2022/utils/line-path.mjs +23 -12
- package/esm2022/utils/math.mjs +24 -0
- package/esm2022/utils/resize.mjs +36 -23
- package/esm2022/utils/vector.mjs +33 -0
- package/fesm2022/plait-common.mjs +242 -165
- package/fesm2022/plait-common.mjs.map +1 -1
- package/package.json +1 -1
- package/plugins/with-resize.d.ts +3 -21
- package/public-api.d.ts +1 -0
- package/types/resize.d.ts +30 -0
- package/utils/direction.d.ts +2 -7
- package/utils/drawing/index.d.ts +1 -0
- package/utils/drawing/resize-handle.d.ts +4 -0
- package/utils/elbow-line-route.d.ts +17 -2
- package/utils/index.d.ts +3 -1
- package/utils/line-path.d.ts +1 -1
- package/utils/math.d.ts +3 -0
- package/utils/resize.d.ts +10 -8
- package/utils/vector.d.ts +5 -0
- package/esm2022/utils/rectangle.mjs +0 -16
- package/utils/rectangle.d.ts +0 -7
package/README.md
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
# @plait/common
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
Common logic for drawing plugins. When writing drawing business code, if you find that there is some reusable logic between plugins, such as text processing, graphics rendering, image rendering, Resize interaction, Creation interaction, etc., try to write the code in `@plait /common` for easy reuse.
|
|
5
5
|
|
|
6
|
-
`core`
|
|
6
|
+
`core` core logic, currently mainly places the base class of plugin components
|
|
7
7
|
|
|
8
|
-
`generators` Generator
|
|
8
|
+
`generators` Generator is an abstract concept, mainly used for plug-in component rendering and management of drawing elements, 👉 [View more](https://plait-docs.vercel.app/guides/concepts/generator)
|
|
9
9
|
|
|
10
|
-
`plugins`
|
|
10
|
+
`plugins` places reusable plugin logic
|
|
11
11
|
|
|
12
|
-
`transforms`
|
|
12
|
+
`transforms` Common data processing logic
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
#### Dependence
|
|
15
|
+
- `@plait/core`
|
package/constants/default.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const BASE = 4;
|
|
2
2
|
export declare const PRIMARY_COLOR = "#6698FF";
|
|
3
|
-
export declare const RESIZE_HANDLE_DIAMETER =
|
|
3
|
+
export declare const RESIZE_HANDLE_DIAMETER = 9;
|
|
4
4
|
export declare const WithTextPluginKey = "plait-text-plugin-key";
|
|
5
5
|
export declare const DEFAULT_ROUTE_MARGIN = 30;
|
|
6
6
|
export declare const TRANSPARENT = "transparent";
|
package/constants/resize.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export const BASE = 4;
|
|
2
2
|
export const PRIMARY_COLOR = '#6698FF';
|
|
3
|
-
export const RESIZE_HANDLE_DIAMETER =
|
|
3
|
+
export const RESIZE_HANDLE_DIAMETER = 9;
|
|
4
4
|
export const WithTextPluginKey = 'plait-text-plugin-key';
|
|
5
5
|
export const DEFAULT_ROUTE_MARGIN = 30;
|
|
6
6
|
export const TRANSPARENT = 'transparent';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvY29uc3RhbnRzL2RlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCQVNFID0gNDtcbmV4cG9ydCBjb25zdCBQUklNQVJZX0NPTE9SID0gJyM2Njk4RkYnO1xuZXhwb3J0IGNvbnN0IFJFU0laRV9IQU5ETEVfRElBTUVURVIgPSA5O1xuZXhwb3J0IGNvbnN0IFdpdGhUZXh0UGx1Z2luS2V5ID0gJ3BsYWl0LXRleHQtcGx1Z2luLWtleSc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9ST1VURV9NQVJHSU4gPSAzMDtcbmV4cG9ydCBjb25zdCBUUkFOU1BBUkVOVCA9ICd0cmFuc3BhcmVudCc7XG4iXX0=
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export var ResizeHandle;
|
|
2
2
|
(function (ResizeHandle) {
|
|
3
|
-
ResizeHandle["
|
|
4
|
-
ResizeHandle["n"] = "
|
|
5
|
-
ResizeHandle["
|
|
6
|
-
ResizeHandle["e"] = "
|
|
7
|
-
ResizeHandle["se"] = "
|
|
8
|
-
ResizeHandle["s"] = "
|
|
9
|
-
ResizeHandle["sw"] = "
|
|
10
|
-
ResizeHandle["w"] = "
|
|
3
|
+
ResizeHandle["nw"] = "0";
|
|
4
|
+
ResizeHandle["n"] = "4";
|
|
5
|
+
ResizeHandle["ne"] = "1";
|
|
6
|
+
ResizeHandle["e"] = "5";
|
|
7
|
+
ResizeHandle["se"] = "2";
|
|
8
|
+
ResizeHandle["s"] = "6";
|
|
9
|
+
ResizeHandle["sw"] = "3";
|
|
10
|
+
ResizeHandle["w"] = "7";
|
|
11
11
|
})(ResizeHandle || (ResizeHandle = {}));
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9jb25zdGFudHMvcmVzaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFlBU1g7QUFURCxXQUFZLFlBQVk7SUFDcEIsd0JBQVEsQ0FBQTtJQUNSLHVCQUFPLENBQUE7SUFDUCx3QkFBUSxDQUFBO0lBQ1IsdUJBQU8sQ0FBQTtJQUNQLHdCQUFRLENBQUE7SUFDUix1QkFBTyxDQUFBO0lBQ1Asd0JBQVEsQ0FBQTtJQUNSLHVCQUFPLENBQUE7QUFDWCxDQUFDLEVBVFcsWUFBWSxLQUFaLFlBQVksUUFTdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSZXNpemVIYW5kbGUge1xuICAgIG53ID0gJzAnLFxuICAgIG4gPSAnNCcsXG4gICAgbmUgPSAnMScsXG4gICAgZSA9ICc1JyxcbiAgICBzZSA9ICcyJyxcbiAgICBzID0gJzYnLFxuICAgIHN3ID0gJzMnLFxuICAgIHcgPSAnNydcbn1cbiJdfQ==
|
|
@@ -67,10 +67,10 @@ export class ImageBaseComponent {
|
|
|
67
67
|
this.activeGenerator.destroy();
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
71
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: ImageBaseComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
71
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.8", type: ImageBaseComponent, inputs: { element: "element", imageItem: "imageItem", board: "board", isFocus: "isFocus", getRectangle: "getRectangle", hasResizeHandle: "hasResizeHandle" }, host: { classAttribute: "plait-image-container" }, ngImport: i0 }); }
|
|
72
72
|
}
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: ImageBaseComponent, decorators: [{
|
|
74
74
|
type: Directive,
|
|
75
75
|
args: [{
|
|
76
76
|
host: {
|
|
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
90
90
|
}], hasResizeHandle: [{
|
|
91
91
|
type: Input
|
|
92
92
|
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2NvcmUvaW1hZ2UtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWMsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFpQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNySSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVFoRCxNQUFNLE9BQWdCLGtCQUFrQjtJQVlwQyxJQUNJLFNBQVMsQ0FBQyxLQUFzQjtRQUNoQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBS0QsSUFDSSxPQUFPLENBQUMsS0FBYztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBUUQsWUFBc0IsVUFBbUMsRUFBUyxHQUFzQjtRQUFsRSxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBekN4RixnQkFBVyxHQUFHLEtBQUssQ0FBQztJQXlDdUUsQ0FBQztJQUU1RixRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ25ELGNBQWMsRUFBRSxHQUFHLEVBQUU7Z0JBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ3BFLE9BQU8sbUJBQW1CLENBQUM7aUJBQzlCO3FCQUFNO29CQUNILE9BQU8sbUJBQW1CLENBQUM7aUJBQzlCO1lBQ0wsQ0FBQztZQUNELGdCQUFnQixFQUFFLEdBQUcsRUFBRTtnQkFDbkIsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7b0JBQy9GLE9BQU8sQ0FBQyxDQUFDO2lCQUNaO3FCQUFNO29CQUNILE9BQU8sR0FBRyxDQUFDO2lCQUNkO1lBQ0wsQ0FBQztZQUNELFlBQVksRUFBRSxHQUFHLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0IsQ0FBQztZQUNELGVBQWUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xCLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1lBQ3pHLENBQUM7U0FDSixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLEVBQWtCLEVBQUUsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ2pHO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNsQztJQUNMLENBQUM7OEdBeEZpQixrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFMdkMsU0FBUzttQkFBQztvQkFDUCxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLHVCQUF1QjtxQkFDakM7aUJBQ0o7aUlBV0csT0FBTztzQkFETixLQUFLO2dCQUlGLFNBQVM7c0JBRFosS0FBSztnQkFZTixLQUFLO3NCQURKLEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLO2dCQWdCRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFDVElWRV9TVFJPS0VfV0lEVEgsIFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUmVjdGFuZ2xlQ2xpZW50LCBnZXRTZWxlY3RlZEVsZW1lbnRzLCBpc1NlbGVjdGlvbk1vdmluZyB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEFjdGl2ZUdlbmVyYXRvciB9IGZyb20gJy4uL2dlbmVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tbW9uSW1hZ2VJdGVtIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAncGxhaXQtaW1hZ2UtY29udGFpbmVyJ1xuICAgIH1cbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW1hZ2VCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIF9pbWFnZUl0ZW0hOiBDb21tb25JbWFnZUl0ZW07XG5cbiAgICBfaXNGb2N1cyE6IGJvb2xlYW47XG5cbiAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgYWN0aXZlR2VuZXJhdG9yITogQWN0aXZlR2VuZXJhdG9yO1xuXG4gICAgQElucHV0KClcbiAgICBlbGVtZW50ITogUGxhaXRFbGVtZW50O1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgaW1hZ2VJdGVtKHZhbHVlOiBDb21tb25JbWFnZUl0ZW0pIHtcbiAgICAgICAgdGhpcy5hZnRlckltYWdlSXRlbUNoYW5nZSh0aGlzLl9pbWFnZUl0ZW0sIHZhbHVlKTtcbiAgICAgICAgdGhpcy5faW1hZ2VJdGVtID0gdmFsdWU7XG4gICAgICAgIHRoaXMuZHJhd0ZvY3VzKCk7XG4gICAgfVxuXG4gICAgZ2V0IGltYWdlSXRlbSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ltYWdlSXRlbTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGJvYXJkITogUGxhaXRCb2FyZDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGlzRm9jdXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNGb2N1cyA9IHZhbHVlO1xuICAgICAgICB0aGlzLmRyYXdGb2N1cygpO1xuICAgIH1cblxuICAgIGdldCBpc0ZvY3VzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNGb2N1cztcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGFic3RyYWN0IGFmdGVySW1hZ2VJdGVtQ2hhbmdlKHByZXZpb3VzOiBDb21tb25JbWFnZUl0ZW0sIGN1cnJlbnQ6IENvbW1vbkltYWdlSXRlbSk6IHZvaWQ7XG5cbiAgICBASW5wdXQoKSBnZXRSZWN0YW5nbGUhOiAoKSA9PiBSZWN0YW5nbGVDbGllbnQ7XG5cbiAgICBASW5wdXQoKSBoYXNSZXNpemVIYW5kbGUhOiAoKSA9PiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvciA9IG5ldyBBY3RpdmVHZW5lcmF0b3IodGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgZ2V0U3Ryb2tlV2lkdGg6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoIShzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBBQ1RJVkVfU1RST0tFX1dJRFRIO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTdHJva2VPcGFjaXR5OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKChzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAhaXNTZWxlY3Rpb25Nb3ZpbmcodGhpcy5ib2FyZCkpIHx8ICFzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMC41O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRSZWN0YW5nbGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoYXNSZXNpemVIYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmICFpc1NlbGVjdGlvbk1vdmluZyh0aGlzLmJvYXJkKSkgfHwgIXNlbGVjdGVkRWxlbWVudHMubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgZHJhd0ZvY3VzKCkge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlRyA9IFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh7fSBhcyBQbGFpdEVsZW1lbnQsIGFjdGl2ZUcsIHsgc2VsZWN0ZWQ6IHRoaXMuX2lzRm9jdXMgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlR2VuZXJhdG9yKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RectangleClient, createG, drawRectangle } from '@plait/core';
|
|
2
2
|
import { Generator } from './generator';
|
|
3
|
-
import { PRIMARY_COLOR
|
|
3
|
+
import { PRIMARY_COLOR } from '../constants/default';
|
|
4
|
+
import { drawHandle } from '../utils/drawing';
|
|
4
5
|
export class ActiveGenerator extends Generator {
|
|
5
6
|
constructor(board, options) {
|
|
6
7
|
super(board, options);
|
|
@@ -29,13 +30,11 @@ export class ActiveGenerator extends Generator {
|
|
|
29
30
|
strokeG.style.opacity = `${this.options.getStrokeOpacity()}`;
|
|
30
31
|
if (this.options.hasResizeHandle()) {
|
|
31
32
|
this.hasResizeHandle = true;
|
|
32
|
-
// resize handle
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const leftBottomHandleG = drawCircle(PlaitBoard.getRoughSVG(this.board), [activeRectangle.x, activeRectangle.y + activeRectangle.height], RESIZE_HANDLE_DIAMETER, options);
|
|
38
|
-
activeG.append(...[leftTopHandleG, rightTopHandleG, rightBottomHandleG, leftBottomHandleG]);
|
|
33
|
+
// draw resize handle
|
|
34
|
+
RectangleClient.getCornerPoints(activeRectangle).forEach(corner => {
|
|
35
|
+
const cornerHandleG = drawHandle(this.board, corner);
|
|
36
|
+
activeG.append(cornerHandleG);
|
|
37
|
+
});
|
|
39
38
|
}
|
|
40
39
|
else {
|
|
41
40
|
this.hasResizeHandle = false;
|
|
@@ -43,4 +42,4 @@ export class ActiveGenerator extends Generator {
|
|
|
43
42
|
return activeG;
|
|
44
43
|
}
|
|
45
44
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLmdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvZ2VuZXJhdG9ycy9hY3RpdmUuZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsZUFBZSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEcsT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxhQUFhLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWE5QyxNQUFNLE9BQU8sZUFBdUQsU0FBUSxTQUkzRTtJQUdHLFlBQW1CLEtBQWlCLEVBQVMsT0FBa0M7UUFDM0UsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQURQLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQUYvRSxvQkFBZSxHQUFHLEtBQUssQ0FBQztJQUl4QixDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQVUsRUFBRSxJQUE4QjtRQUM5QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQztTQUNmO2FBQU07WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBVSxFQUFFLElBQThCO1FBQzNDLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQzFCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXJELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDNUMsTUFBTSxlQUFlLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbEUsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFO1lBQ3ZELE1BQU0sRUFBRSxhQUFhO1lBQ3JCLFdBQVcsRUFBRSxLQUFLO1NBQ3JCLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIscUJBQXFCO1lBQ3JCLGVBQWUsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM5RCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDckQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztTQUNoQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUmVjdGFuZ2xlQ2xpZW50LCBjcmVhdGVHLCBkcmF3UmVjdGFuZ2xlIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgR2VuZXJhdG9yLCBHZW5lcmF0b3JPcHRpb25zIH0gZnJvbSAnLi9nZW5lcmF0b3InO1xuaW1wb3J0IHsgUFJJTUFSWV9DT0xPUiB9IGZyb20gJy4uL2NvbnN0YW50cy9kZWZhdWx0JztcbmltcG9ydCB7IGRyYXdIYW5kbGUgfSBmcm9tICcuLi91dGlscy9kcmF3aW5nJztcblxuZXhwb3J0IGludGVyZmFjZSBBY3RpdmVHZW5lcmF0b3JFeHRyYURhdGEge1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2ZUdlbmVyYXRvck9wdGlvbnM8VD4ge1xuICAgIGdldFJlY3RhbmdsZTogKGVsZW1lbnQ6IFQpID0+IFJlY3RhbmdsZUNsaWVudDtcbiAgICBnZXRTdHJva2VXaWR0aDogKCkgPT4gbnVtYmVyO1xuICAgIGdldFN0cm9rZU9wYWNpdHk6ICgpID0+IG51bWJlcjtcbiAgICBoYXNSZXNpemVIYW5kbGU6ICgpID0+IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBBY3RpdmVHZW5lcmF0b3I8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudD4gZXh0ZW5kcyBHZW5lcmF0b3I8XG4gICAgVCxcbiAgICBBY3RpdmVHZW5lcmF0b3JFeHRyYURhdGEsXG4gICAgQWN0aXZlR2VuZXJhdG9yT3B0aW9uczxUPiAmIEdlbmVyYXRvck9wdGlvbnNcbj4ge1xuICAgIGhhc1Jlc2l6ZUhhbmRsZSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGJvYXJkOiBQbGFpdEJvYXJkLCBwdWJsaWMgb3B0aW9uczogQWN0aXZlR2VuZXJhdG9yT3B0aW9uczxUPikge1xuICAgICAgICBzdXBlcihib2FyZCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY2FuRHJhdyhlbGVtZW50OiBULCBkYXRhOiBBY3RpdmVHZW5lcmF0b3JFeHRyYURhdGEpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGRhdGEuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50OiBULCBkYXRhOiBBY3RpdmVHZW5lcmF0b3JFeHRyYURhdGEpOiBTVkdHRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IHRoaXMub3B0aW9ucy5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG5cbiAgICAgICAgY29uc3QgZGVsdGEgPSB0aGlzLm9wdGlvbnMuZ2V0U3Ryb2tlV2lkdGgoKTtcbiAgICAgICAgY29uc3QgYWN0aXZlUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmluZmxhdGUocmVjdGFuZ2xlLCBkZWx0YSk7XG5cbiAgICAgICAgY29uc3Qgc3Ryb2tlRyA9IGRyYXdSZWN0YW5nbGUodGhpcy5ib2FyZCwgYWN0aXZlUmVjdGFuZ2xlLCB7XG4gICAgICAgICAgICBzdHJva2U6IFBSSU1BUllfQ09MT1IsXG4gICAgICAgICAgICBzdHJva2VXaWR0aDogZGVsdGFcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYWN0aXZlRy5hcHBlbmQoc3Ryb2tlRyk7XG4gICAgICAgIHN0cm9rZUcuc3R5bGUub3BhY2l0eSA9IGAke3RoaXMub3B0aW9ucy5nZXRTdHJva2VPcGFjaXR5KCl9YDtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5oYXNSZXNpemVIYW5kbGUoKSkge1xuICAgICAgICAgICAgdGhpcy5oYXNSZXNpemVIYW5kbGUgPSB0cnVlO1xuICAgICAgICAgICAgLy8gZHJhdyByZXNpemUgaGFuZGxlXG4gICAgICAgICAgICBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKGFjdGl2ZVJlY3RhbmdsZSkuZm9yRWFjaChjb3JuZXIgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvcm5lckhhbmRsZUcgPSBkcmF3SGFuZGxlKHRoaXMuYm9hcmQsIGNvcm5lcik7XG4gICAgICAgICAgICAgICAgYWN0aXZlRy5hcHBlbmQoY29ybmVySGFuZGxlRyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGFzUmVzaXplSGFuZGxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGl2ZUc7XG4gICAgfVxufVxuIl19
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { setTransformRotate } from '@plait/core';
|
|
1
2
|
export class Generator {
|
|
2
3
|
constructor(board, options) {
|
|
3
4
|
this.board = board;
|
|
@@ -19,6 +20,10 @@ export class Generator {
|
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
this.g = g;
|
|
23
|
+
const rect = this.board.getRectangle(element);
|
|
24
|
+
if (rect && element.angle) {
|
|
25
|
+
setTransformRotate(g, rect, element.angle);
|
|
26
|
+
}
|
|
22
27
|
}
|
|
23
28
|
else {
|
|
24
29
|
this.destroy();
|
|
@@ -44,4 +49,4 @@ export function hasAfterDraw(value) {
|
|
|
44
49
|
}
|
|
45
50
|
return false;
|
|
46
51
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3JzL2dlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBUTNFLE1BQU0sT0FBZ0IsU0FBUztJQVMzQixZQUFzQixLQUFpQixFQUFFLE9BQVc7UUFBOUIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQVUsRUFBRSxPQUFvQixFQUFFLElBQVE7UUFDckQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQzdDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxFQUFFO2dCQUNILElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDcEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3pCO3FCQUFNO29CQUNILElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUU7d0JBQ3ZCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3RCO3lCQUFNO3dCQUNILE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQzFCO2lCQUNKO2dCQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNYLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO29CQUN2QixrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDOUM7YUFDSjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDbEI7WUFDRCxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMzQjtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDbEI7SUFDTCxDQUFDO0lBWUQsT0FBTztRQUNILElBQUksSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNSLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUM7U0FDdEI7SUFDTCxDQUFDO0NBQ0o7QUFNRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQVU7SUFDbkMsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBzZXRUcmFuc2Zvcm1Sb3RhdGUgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdG9yRXh0cmFEYXRhIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdG9yT3B0aW9ucyB7XG4gICAgcHJlcGVuZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHZW5lcmF0b3I8XG4gICAgVCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudCxcbiAgICBLIGV4dGVuZHMgR2VuZXJhdG9yRXh0cmFEYXRhID0gR2VuZXJhdG9yRXh0cmFEYXRhLFxuICAgIFYgZXh0ZW5kcyBHZW5lcmF0b3JPcHRpb25zID0gR2VuZXJhdG9yT3B0aW9uc1xuPiB7XG4gICAgZz86IFNWR0dFbGVtZW50O1xuXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM/OiBWO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGJvYXJkOiBQbGFpdEJvYXJkLCBvcHRpb25zPzogVikge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH1cblxuICAgIHByb2Nlc3NEcmF3aW5nKGVsZW1lbnQ6IFQsIHBhcmVudEc6IFNWR0dFbGVtZW50LCBkYXRhPzogSykge1xuICAgICAgICBpZiAodGhpcy5jYW5EcmF3ICYmIHRoaXMuY2FuRHJhdyhlbGVtZW50LCBkYXRhKSkge1xuICAgICAgICAgICAgY29uc3QgZyA9IHRoaXMuZHJhdyhlbGVtZW50LCBkYXRhKTtcbiAgICAgICAgICAgIGlmIChnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZyAmJiBwYXJlbnRHLmNvbnRhaW5zKHRoaXMuZykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nLnJlcGxhY2VXaXRoKGcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnM/LnByZXBlbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudEcucHJlcGVuZChnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudEcuYXBwZW5kQ2hpbGQoZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5nID0gZztcbiAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5ib2FyZC5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlY3QgJiYgZWxlbWVudC5hbmdsZSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRUcmFuc2Zvcm1Sb3RhdGUoZywgcmVjdCwgZWxlbWVudC5hbmdsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNBZnRlckRyYXcodGhpcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyRHJhdyhlbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYWJzdHJhY3QgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2FuRHJhdyhlbGVtZW50OiBULCBkYXRhPzogSyk6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBhYnN0cmFjdCBmdW5jdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBkcmF3KGVsZW1lbnQ6IFQsIGRhdGE/OiBLKTogU1ZHR0VsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5nKSB7XG4gICAgICAgICAgICB0aGlzLmcucmVtb3ZlKCk7XG4gICAgICAgICAgICB0aGlzLmcgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWZ0ZXJEcmF3PFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQ+IHtcbiAgICBhZnRlckRyYXcoZWxlbWVudDogVCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNBZnRlckRyYXcodmFsdWU6IGFueSk6IHZhbHVlIGlzIEFmdGVyRHJhdyB7XG4gICAgaWYgKHZhbHVlLmFmdGVyRHJhdykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuIl19
|
|
@@ -1,30 +1,35 @@
|
|
|
1
|
-
import { MERGING, PRESS_AND_MOVE_BUFFER, PlaitBoard, PlaitPointerType, distanceBetweenPointAndPoint, isMainPointer, preventTouchMove, handleTouchTarget, throttleRAF, toViewBoxPoint, toHostPoint } from '@plait/core';
|
|
1
|
+
import { MERGING, PRESS_AND_MOVE_BUFFER, PlaitBoard, PlaitPointerType, distanceBetweenPointAndPoint, isMainPointer, preventTouchMove, handleTouchTarget, throttleRAF, toViewBoxPoint, toHostPoint, isDragging } from '@plait/core';
|
|
2
2
|
import { addResizing, isResizing, removeResizing } from '../utils/resize';
|
|
3
3
|
const generalCanResize = (board, event) => {
|
|
4
4
|
return (!PlaitBoard.isReadonly(board) && !PlaitBoard.hasBeenTextEditing(board) && PlaitBoard.isPointer(board, PlaitPointerType.selection));
|
|
5
5
|
};
|
|
6
6
|
export const withResize = (board, options) => {
|
|
7
7
|
const { pointerDown, pointerMove, globalPointerUp } = board;
|
|
8
|
-
let
|
|
8
|
+
let resizeHitTestRef = null;
|
|
9
9
|
let resizeRef = null;
|
|
10
10
|
let startPoint = null;
|
|
11
|
-
let
|
|
11
|
+
let hoverHitTestRef = null;
|
|
12
12
|
board.pointerDown = (event) => {
|
|
13
13
|
if (!options.canResize() || !generalCanResize(board, event) || !isMainPointer(event)) {
|
|
14
14
|
pointerDown(event);
|
|
15
15
|
return;
|
|
16
16
|
}
|
|
17
17
|
const point = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
|
|
18
|
-
|
|
19
|
-
if (
|
|
20
|
-
if (
|
|
21
|
-
PlaitBoard.getBoardContainer(board).classList.add(`${
|
|
18
|
+
resizeHitTestRef = options.hitTest(point);
|
|
19
|
+
if (resizeHitTestRef) {
|
|
20
|
+
if (resizeHitTestRef.cursorClass) {
|
|
21
|
+
PlaitBoard.getBoardContainer(board).classList.add(`${resizeHitTestRef.cursorClass}`);
|
|
22
22
|
}
|
|
23
23
|
startPoint = [event.x, event.y];
|
|
24
|
+
const path = Array.isArray(resizeHitTestRef.element)
|
|
25
|
+
? resizeHitTestRef.element.map(el => PlaitBoard.findPath(board, el))
|
|
26
|
+
: PlaitBoard.findPath(board, resizeHitTestRef.element);
|
|
24
27
|
resizeRef = {
|
|
25
|
-
path
|
|
26
|
-
element:
|
|
27
|
-
handle:
|
|
28
|
+
path,
|
|
29
|
+
element: resizeHitTestRef.element,
|
|
30
|
+
handle: resizeHitTestRef.handle,
|
|
31
|
+
handleIndex: resizeHitTestRef.handleIndex,
|
|
32
|
+
rectangle: resizeHitTestRef.rectangle
|
|
28
33
|
};
|
|
29
34
|
preventTouchMove(board, event, true);
|
|
30
35
|
// prevent text from being selected when user pressed shift and pointer down
|
|
@@ -38,7 +43,7 @@ export const withResize = (board, options) => {
|
|
|
38
43
|
pointerMove(event);
|
|
39
44
|
return;
|
|
40
45
|
}
|
|
41
|
-
if (startPoint &&
|
|
46
|
+
if (startPoint && resizeHitTestRef && !isResizing(board)) {
|
|
42
47
|
// prevent text from being selected
|
|
43
48
|
event.preventDefault();
|
|
44
49
|
const endPoint = [event.x, event.y];
|
|
@@ -49,51 +54,55 @@ export const withResize = (board, options) => {
|
|
|
49
54
|
options.beforeResize && options.beforeResize(resizeRef);
|
|
50
55
|
}
|
|
51
56
|
}
|
|
52
|
-
if (isResizing(board) &&
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
57
|
+
if (!isResizing(board) && !isDragging(board)) {
|
|
58
|
+
const point = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
|
|
59
|
+
throttleRAF(board, options.key + '-common-resize-hit-test', () => {
|
|
60
|
+
const hitTestRef = options.hitTest(point);
|
|
61
|
+
if (hitTestRef) {
|
|
62
|
+
if (hoverHitTestRef && hitTestRef.cursorClass !== hoverHitTestRef.cursorClass) {
|
|
63
|
+
PlaitBoard.getBoardContainer(board).classList.remove(`${hoverHitTestRef.cursorClass}`);
|
|
64
|
+
}
|
|
65
|
+
hoverHitTestRef = hitTestRef;
|
|
66
|
+
if (hoverHitTestRef.cursorClass) {
|
|
67
|
+
PlaitBoard.getBoardContainer(board).classList.add(`${hoverHitTestRef.cursorClass}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
if (hoverHitTestRef) {
|
|
72
|
+
if (hoverHitTestRef.cursorClass) {
|
|
73
|
+
PlaitBoard.getBoardContainer(board).classList.remove(`${hoverHitTestRef.cursorClass}`);
|
|
74
|
+
}
|
|
75
|
+
hoverHitTestRef = null;
|
|
76
|
+
}
|
|
63
77
|
}
|
|
64
78
|
});
|
|
65
|
-
return;
|
|
66
79
|
}
|
|
67
80
|
else {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
else {
|
|
80
|
-
if (hoveDetectResult) {
|
|
81
|
-
if (hoveDetectResult.cursorClass) {
|
|
82
|
-
PlaitBoard.getBoardContainer(board).classList.remove(`${hoveDetectResult.cursorClass}`);
|
|
81
|
+
if (startPoint && isResizing(board)) {
|
|
82
|
+
event.preventDefault();
|
|
83
|
+
const endPoint = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
|
|
84
|
+
throttleRAF(board, 'with-common-resize', () => {
|
|
85
|
+
if (startPoint && resizeRef) {
|
|
86
|
+
handleTouchTarget(board);
|
|
87
|
+
options.onResize(resizeRef, {
|
|
88
|
+
startPoint: toViewBoxPoint(board, toHostPoint(board, startPoint[0], startPoint[1])),
|
|
89
|
+
endPoint,
|
|
90
|
+
isShift: !!event.shiftKey
|
|
91
|
+
});
|
|
83
92
|
}
|
|
84
|
-
|
|
85
|
-
|
|
93
|
+
});
|
|
94
|
+
return;
|
|
86
95
|
}
|
|
87
96
|
}
|
|
88
97
|
pointerMove(event);
|
|
89
98
|
};
|
|
90
99
|
board.globalPointerUp = (event) => {
|
|
91
100
|
globalPointerUp(event);
|
|
92
|
-
if (isResizing(board) ||
|
|
93
|
-
options.
|
|
101
|
+
if (isResizing(board) || resizeHitTestRef) {
|
|
102
|
+
options.afterResize && options.afterResize(resizeRef);
|
|
94
103
|
removeResizing(board, options.key);
|
|
95
104
|
startPoint = null;
|
|
96
|
-
|
|
105
|
+
resizeHitTestRef = null;
|
|
97
106
|
resizeRef = null;
|
|
98
107
|
MERGING.set(board, false);
|
|
99
108
|
preventTouchMove(board, event, false);
|
|
@@ -101,4 +110,4 @@ export const withResize = (board, options) => {
|
|
|
101
110
|
};
|
|
102
111
|
return board;
|
|
103
112
|
};
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1yZXNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BsdWdpbnMvd2l0aC1yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILE9BQU8sRUFDUCxxQkFBcUIsRUFDckIsVUFBVSxFQUVWLGdCQUFnQixFQUVoQiw0QkFBNEIsRUFDNUIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsV0FBVyxFQUVYLGNBQWMsRUFDZCxXQUFXLEVBQ2QsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFhLFdBQVcsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUF1QnJGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEtBQW1CLEVBQUUsRUFBRTtJQUNoRSxPQUFPLENBQ0gsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUNwSSxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQ3RCLEtBQWlCLEVBQ2pCLE9BQWdDLEVBQ2xDLEVBQUU7SUFDQSxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDNUQsSUFBSSxrQkFBa0IsR0FBb0MsSUFBSSxDQUFDO0lBQy9ELElBQUksU0FBUyxHQUEyQixJQUFJLENBQUM7SUFDN0MsSUFBSSxVQUFVLEdBQWlCLElBQUksQ0FBQztJQUNwQyxJQUFJLGdCQUFnQixHQUFvQyxJQUFJLENBQUM7SUFFN0QsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtR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UyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7aUJBQ3hGO2FBQ0o7aUJBQU07Z0JBQ0gsSUFBSSxnQkFBZ0IsRUFBRTtvQkFDbEIsSUFBSSxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUU7d0JBQzlCLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztxQkFDM0Y7b0JBQ0QsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2lCQUMzQjthQUNKO1NBQ0o7UUFDRCxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtRQUM1QyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksa0JBQWtCLEVBQUU7WUFDekMsT0FBTyxDQUFDLFlBQVksSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVUsQ0FBQyxDQUFDO1lBQ3pELGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDbEIsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1lBQzFCLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDMUIsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN6QztJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgTUVSR0lORyxcbiAgICBQUkVTU19BTkRfTU9WRV9CVUZGRVIsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgUGxhaXRQb2ludGVyVHlwZSxcbiAgICBQb2ludCxcbiAgICBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50LFxuICAgIGlzTWFpblBvaW50ZXIsXG4gICAgcHJldmVudFRvdWNoTW92ZSxcbiAgICBoYW5kbGVUb3VjaFRhcmdldCxcbiAgICB0aHJvdHRsZVJBRixcbiAgICBSZXNpemVDdXJzb3JDbGFzcyxcbiAgICB0b1ZpZXdCb3hQb2ludCxcbiAgICB0b0hvc3RQb2ludFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBSZXNpemVIYW5kbGUgfSBmcm9tICcuLi9jb25zdGFudHMvcmVzaXplJztcbmltcG9ydCB7IFJlc2l6ZVJlZiwgYWRkUmVzaXppbmcsIGlzUmVzaXppbmcsIHJlbW92ZVJlc2l6aW5nIH0gZnJvbSAnLi4vdXRpbHMvcmVzaXplJztcblxuZXhwb3J0IGludGVyZmFjZSBXaXRoUmVzaXplT3B0aW9uczxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50LCBLID0gUmVzaXplSGFuZGxlPiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgY2FuUmVzaXplOiAoKSA9PiBib29sZWFuO1xuICAgIGRldGVjdDogKHBvaW50OiBQb2ludCkgPT4gUmVzaXplRGV0ZWN0UmVzdWx0PFQsIEs+IHwgbnVsbDtcbiAgICBvblJlc2l6ZTogKHJlc2l6ZVJlZjogUmVzaXplUmVmPFQsIEs+LCByZXNpemVTdGF0ZTogUmVzaXplU3RhdGUpID0+IHZvaWQ7XG4gICAgYWZ0ZXJSZXNpemU/OiAocmVzaXplUmVmOiBSZXNpemVSZWY8VCwgSz4pID0+IHZvaWQ7XG4gICAgYmVmb3JlUmVzaXplPzogKHJlc2l6ZVJlZjogUmVzaXplUmVmPFQsIEs+KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2l6ZURldGVjdFJlc3VsdDxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50LCBLID0gUmVzaXplSGFuZGxlPiB7XG4gICAgZWxlbWVudDogVDtcbiAgICBoYW5kbGU6IEs7XG4gICAgY3Vyc29yQ2xhc3M/OiBSZXNpemVDdXJzb3JDbGFzcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNpemVTdGF0ZSB7XG4gICAgb2Zmc2V0WDogbnVtYmVyO1xuICAgIG9mZnNldFk6IG51bWJlcjtcbiAgICBlbmRUcmFuc2Zvcm1Qb2ludDogUG9pbnQ7XG59XG5cbmNvbnN0IGdlbmVyYWxDYW5SZXNpemUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICAhUGxhaXRCb2FyZC5pc1JlYWRvbmx5KGJvYXJkKSAmJiAhUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcoYm9hcmQpICYmIFBsYWl0Qm9hcmQuaXNQb2ludGVyKGJvYXJkLCBQbGFpdFBvaW50ZXJUeXBlLnNlbGVjdGlvbilcbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHdpdGhSZXNpemUgPSA8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudCwgSyA9IFJlc2l6ZUhhbmRsZT4oXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgb3B0aW9uczogV2l0aFJlc2l6ZU9wdGlvbnM8VCwgSz5cbikgPT4ge1xuICAgIGNvbnN0IHsgcG9pbnRlckRvd24sIHBvaW50ZXJNb3ZlLCBnbG9iYWxQb2ludGVyVXAgfSA9IGJvYXJkO1xuICAgIGxldCByZXNpemVEZXRlY3RSZXN1bHQ6IFJlc2l6ZURldGVjdFJlc3VsdDxULCBLPiB8IG51bGwgPSBudWxsO1xuICAgIGxldCByZXNpemVSZWY6IFJlc2l6ZVJlZjxULCBLPiB8IG51bGwgPSBudWxsO1xuICAgIGxldCBzdGFydFBvaW50OiBQb2ludCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBob3ZlRGV0ZWN0UmVzdWx0OiBSZXNpemVEZXRlY3RSZXN1bHQ8VCwgSz4gfCBudWxsID0gbnVsbDtcblxuICAgIGJvYXJkLnBvaW50ZXJEb3duID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmNhblJlc2l6ZSgpIHx8ICFnZW5lcmFsQ2FuUmVzaXplKGJvYXJkLCBldmVudCkgfHwgIWlzTWFpblBvaW50ZXIoZXZlbnQpKSB7XG4gICAgICAgICAgICBwb2ludGVyRG93bihldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgcmVzaXplRGV0ZWN0UmVzdWx0ID0gb3B0aW9ucy5kZXRlY3QocG9pbnQpO1xuICAgICAgICBpZiAocmVzaXplRGV0ZWN0UmVzdWx0KSB7XG4gICAgICAgICAgICBpZiAocmVzaXplRGV0ZWN0UmVzdWx0LmN1cnNvckNsYXNzKSB7XG4gICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LmFkZChgJHtyZXNpemVEZXRlY3RSZXN1bHQuY3Vyc29yQ2xhc3N9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGFydFBvaW50ID0gW2V2ZW50LngsIGV2ZW50LnldO1xuICAgICAgICAgICAgcmVzaXplUmVmID0ge1xuICAgICAgICAgICAgICAgIHBhdGg6IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIHJlc2l6ZURldGVjdFJlc3VsdC5lbGVtZW50KSxcbiAgICAgICAgICAgICAgICBlbGVtZW50OiByZXNpemVEZXRlY3RSZXN1bHQuZWxlbWVudCxcbiAgICAgICAgICAgICAgICBoYW5kbGU6IHJlc2l6ZURldGVjdFJlc3VsdC5oYW5kbGVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBwcmV2ZW50VG91Y2hNb3ZlKGJvYXJkLCBldmVudCwgdHJ1ZSk7XG4gICAgICAgICAgICAvLyBwcmV2ZW50IHRleHQgZnJvbSBiZWluZyBzZWxlY3RlZCB3aGVuIHVzZXIgcHJlc3NlZCBzaGlmdCBhbmQgcG9pbnRlciBkb3duXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHBvaW50ZXJEb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlck1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuY2FuUmVzaXplKCkgfHwgIWdlbmVyYWxDYW5SZXNpemUoYm9hcmQsIGV2ZW50KSkge1xuICAgICAgICAgICAgcG9pbnRlck1vdmUoZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFydFBvaW50ICYmIHJlc2l6ZURldGVjdFJlc3VsdCAmJiAhaXNSZXNpemluZyhib2FyZCkpIHtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgdGV4dCBmcm9tIGJlaW5nIHNlbGVjdGVkXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgZW5kUG9pbnQgPSBbZXZlbnQueCwgZXZlbnQueV07XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQoc3RhcnRQb2ludFswXSwgc3RhcnRQb2ludFsxXSwgZW5kUG9pbnRbMF0sIGVuZFBvaW50WzFdKTtcbiAgICAgICAgICAgIGlmIChkaXN0YW5jZSA+IFBSRVNTX0FORF9NT1ZFX0JVRkZFUikge1xuICAgICAgICAgICAgICAgIGFkZFJlc2l6aW5nKGJvYXJkLCByZXNpemVSZWYhLCBvcHRpb25zLmtleSk7XG4gICAgICAgICAgICAgICAgTUVSR0lORy5zZXQoYm9hcmQsIHRydWUpO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuYmVmb3JlUmVzaXplICYmIG9wdGlvbnMuYmVmb3JlUmVzaXplKHJlc2l6ZVJlZiEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzUmVzaXppbmcoYm9hcmQpICYmIHN0YXJ0UG9pbnQpIHtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgdGV4dCBmcm9tIGJlaW5nIHNlbGVjdGVkXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgZW5kVHJhbnNmb3JtUG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgICAgIHRocm90dGxlUkFGKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmRQb2ludCA9IFtldmVudC54LCBldmVudC55XTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnRQb2ludCAmJiByZXNpemVSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlVG91Y2hUYXJnZXQoYm9hcmQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRYID0gZW5kUG9pbnRbMF0gLSBzdGFydFBvaW50WzBdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRZID0gZW5kUG9pbnRbMV0gLSBzdGFydFBvaW50WzFdO1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLm9uUmVzaXplKHJlc2l6ZVJlZiwgeyBvZmZzZXRYLCBvZmZzZXRZLCBlbmRUcmFuc2Zvcm1Qb2ludCB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gdG9WaWV3Qm94UG9pbnQoYm9hcmQsIHRvSG9zdFBvaW50KGJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgICAgICBjb25zdCByZXNpemVEZXRlY3RSZXN1bHQgPSBvcHRpb25zLmRldGVjdChwb2ludCk7XG4gICAgICAgICAgICBpZiAocmVzaXplRGV0ZWN0UmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGhvdmVEZXRlY3RSZXN1bHQgJiYgcmVzaXplRGV0ZWN0UmVzdWx0LmN1cnNvckNsYXNzICE9PSBob3ZlRGV0ZWN0UmVzdWx0LmN1cnNvckNsYXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5yZW1vdmUoYCR7aG92ZURldGVjdFJlc3VsdC5jdXJzb3JDbGFzc31gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaG92ZURldGVjdFJlc3VsdCA9IHJlc2l6ZURldGVjdFJlc3VsdDtcbiAgICAgICAgICAgICAgICBpZiAoaG92ZURldGVjdFJlc3VsdC5jdXJzb3JDbGFzcykge1xuICAgICAgICAgICAgICAgICAgICBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5jbGFzc0xpc3QuYWRkKGAke2hvdmVEZXRlY3RSZXN1bHQuY3Vyc29yQ2xhc3N9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoaG92ZURldGVjdFJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaG92ZURldGVjdFJlc3VsdC5jdXJzb3JDbGFzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZShgJHtob3ZlRGV0ZWN0UmVzdWx0LmN1cnNvckNsYXNzfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGhvdmVEZXRlY3RSZXN1bHQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwb2ludGVyTW92ZShldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgICAgIGlmIChpc1Jlc2l6aW5nKGJvYXJkKSB8fCByZXNpemVEZXRlY3RSZXN1bHQpIHtcbiAgICAgICAgICAgIG9wdGlvbnMuYmVmb3JlUmVzaXplICYmIG9wdGlvbnMuYmVmb3JlUmVzaXplKHJlc2l6ZVJlZiEpO1xuICAgICAgICAgICAgcmVtb3ZlUmVzaXppbmcoYm9hcmQsIG9wdGlvbnMua2V5KTtcbiAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSBudWxsO1xuICAgICAgICAgICAgcmVzaXplRGV0ZWN0UmVzdWx0ID0gbnVsbDtcbiAgICAgICAgICAgIHJlc2l6ZVJlZiA9IG51bGw7XG4gICAgICAgICAgICBNRVJHSU5HLnNldChib2FyZCwgZmFsc2UpO1xuICAgICAgICAgICAgcHJldmVudFRvdWNoTW92ZShib2FyZCwgZXZlbnQsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuIl19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1yZXNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BsdWdpbnMvd2l0aC1yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILE9BQU8sRUFDUCxxQkFBcUIsRUFDckIsVUFBVSxFQUNWLGdCQUFnQixFQUVoQiw0QkFBNEIsRUFDNUIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLGNBQWMsRUFDZCxXQUFXLEVBQ1gsVUFBVSxFQUNiLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzFFLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEtBQW1CLEVBQUUsRUFBRTtJQUNoRSxPQUFPLENBQ0gsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUNwSSxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQ3RCLEtBQWlCLEVBQ2pCLE9BQWdDLEVBQ2xDLEVBQUU7SUFDQSxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDNUQsSUFBSSxnQkFBZ0IsR0FBa0MsSUFBSSxDQUFDO0lBQzNELElBQUksU0FBUyxHQUEyQixJQUFJLENBQUM7SUFDN0MsSUFBSSxVQUFVLEdBQWlCLElBQUksQ0FBQztJQUNwQyxJQUFJLGVBQWUsR0FBa0MsSUFBSSxDQUFDO0lBRTFELEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7UUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNsRixXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkIsT0FBTztTQUNWO1FBQ0QsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxJQUFJLGdCQUFnQixFQUFFO1lBQ2xCLElBQUksZ0JBQWdCLENBQUMsV0FBVyxFQUFFO2dCQUM5QixVQUFVLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7YUFDeEY7WUFDRCxVQUFVLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztnQkFDaEQsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDcEUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNELFNBQVMsR0FBRztnQkFDUixJQUFJO2dCQUNKLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPO2dCQUNqQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtnQkFDL0IsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7Z0JBQ3pDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO2FBQ3hDLENBQUM7WUFDRixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3JDLDRFQUE0RTtZQUM1RSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsT0FBTztTQUNWO1FBQ0QsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7UUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtZQUN6RCxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkIsT0FBTztTQUNWO1FBQ0QsSUFBSSxVQUFVLElBQUksZ0JBQWdCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdEQsbUNBQW1DO1lBQ25DLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sUUFBUSxHQUFHLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RHLElBQUksUUFBUSxHQUFHLHFCQUFxQixFQUFFO2dCQUNsQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN6QixPQUFPLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBVSxDQUFDLENBQUM7YUFDNUQ7U0FDSjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUUsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxHQUFHLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtnQkFDN0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxVQUFVLEVBQUU7b0JBQ1osSUFBSSxlQUFlLElBQUksVUFBVSxDQUFDLFdBQVcsS0FBSyxlQUFlLENBQUMsV0FBVyxFQUFFO3dCQUMzRSxVQUFVLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO3FCQUMxRjtvQkFDRCxlQUFlLEdBQUcsVUFBVSxDQUFDO29CQUM3QixJQUFJLGVBQWUsQ0FBQyxXQUFXLEVBQUU7d0JBQzdCLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7cUJBQ3ZGO2lCQUNKO3FCQUFNO29CQUNILElBQUksZUFBZSxFQUFFO3dCQUNqQixJQUFJLGVBQWUsQ0FBQyxXQUFXLEVBQUU7NEJBQzdCLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7eUJBQzFGO3dCQUNELGVBQWUsR0FBRyxJQUFJLENBQUM7cUJBQzFCO2lCQUNKO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM3RSxXQUFXLENBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtvQkFDMUMsSUFBSSxVQUFVLElBQUksU0FBUyxFQUFFO3dCQUN6QixpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDekIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7NEJBQ3hCLFVBQVUsRUFBRSxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUNuRixRQUFROzRCQUNSLE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVE7eUJBQzVCLENBQUMsQ0FBQztxQkFDTjtnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPO2FBQ1Y7U0FDSjtRQUNELFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDLENBQUM7SUFFRixLQUFLLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1FBQzVDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsRUFBRTtZQUN2QyxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBVSxDQUFDLENBQUM7WUFDdkQsY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUNsQixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDeEIsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBNRVJHSU5HLFxuICAgIFBSRVNTX0FORF9NT1ZFX0JVRkZFUixcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0UG9pbnRlclR5cGUsXG4gICAgUG9pbnQsXG4gICAgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludCxcbiAgICBpc01haW5Qb2ludGVyLFxuICAgIHByZXZlbnRUb3VjaE1vdmUsXG4gICAgaGFuZGxlVG91Y2hUYXJnZXQsXG4gICAgdGhyb3R0bGVSQUYsXG4gICAgdG9WaWV3Qm94UG9pbnQsXG4gICAgdG9Ib3N0UG9pbnQsXG4gICAgaXNEcmFnZ2luZ1xufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBSZXNpemVIYW5kbGUgfSBmcm9tICcuLi9jb25zdGFudHMvcmVzaXplJztcbmltcG9ydCB7IGFkZFJlc2l6aW5nLCBpc1Jlc2l6aW5nLCByZW1vdmVSZXNpemluZyB9IGZyb20gJy4uL3V0aWxzL3Jlc2l6ZSc7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnRPckFycmF5LCBSZXNpemVIaXRUZXN0UmVmLCBSZXNpemVSZWYsIFdpdGhSZXNpemVPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMvcmVzaXplJztcblxuY29uc3QgZ2VuZXJhbENhblJlc2l6ZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgICFQbGFpdEJvYXJkLmlzUmVhZG9ubHkoYm9hcmQpICYmICFQbGFpdEJvYXJkLmhhc0JlZW5UZXh0RWRpdGluZyhib2FyZCkgJiYgUGxhaXRCb2FyZC5pc1BvaW50ZXIoYm9hcmQsIFBsYWl0UG9pbnRlclR5cGUuc2VsZWN0aW9uKVxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3Qgd2l0aFJlc2l6ZSA9IDxUIGV4dGVuZHMgUGxhaXRFbGVtZW50T3JBcnJheSA9IFBsYWl0RWxlbWVudE9yQXJyYXksIEsgPSBSZXNpemVIYW5kbGU+KFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIG9wdGlvbnM6IFdpdGhSZXNpemVPcHRpb25zPFQsIEs+XG4pID0+IHtcbiAgICBjb25zdCB7IHBvaW50ZXJEb3duLCBwb2ludGVyTW92ZSwgZ2xvYmFsUG9pbnRlclVwIH0gPSBib2FyZDtcbiAgICBsZXQgcmVzaXplSGl0VGVzdFJlZjogUmVzaXplSGl0VGVzdFJlZjxULCBLPiB8IG51bGwgPSBudWxsO1xuICAgIGxldCByZXNpemVSZWY6IFJlc2l6ZVJlZjxULCBLPiB8IG51bGwgPSBudWxsO1xuICAgIGxldCBzdGFydFBvaW50OiBQb2ludCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBob3ZlckhpdFRlc3RSZWY6IFJlc2l6ZUhpdFRlc3RSZWY8VCwgSz4gfCBudWxsID0gbnVsbDtcblxuICAgIGJvYXJkLnBvaW50ZXJEb3duID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmNhblJlc2l6ZSgpIHx8ICFnZW5lcmFsQ2FuUmVzaXplKGJvYXJkLCBldmVudCkgfHwgIWlzTWFpblBvaW50ZXIoZXZlbnQpKSB7XG4gICAgICAgICAgICBwb2ludGVyRG93bihldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgcmVzaXplSGl0VGVzdFJlZiA9IG9wdGlvbnMuaGl0VGVzdChwb2ludCk7XG4gICAgICAgIGlmIChyZXNpemVIaXRUZXN0UmVmKSB7XG4gICAgICAgICAgICBpZiAocmVzaXplSGl0VGVzdFJlZi5jdXJzb3JDbGFzcykge1xuICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoYCR7cmVzaXplSGl0VGVzdFJlZi5jdXJzb3JDbGFzc31gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXJ0UG9pbnQgPSBbZXZlbnQueCwgZXZlbnQueV07XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gQXJyYXkuaXNBcnJheShyZXNpemVIaXRUZXN0UmVmLmVsZW1lbnQpXG4gICAgICAgICAgICAgICAgPyByZXNpemVIaXRUZXN0UmVmLmVsZW1lbnQubWFwKGVsID0+IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIGVsKSlcbiAgICAgICAgICAgICAgICA6IFBsYWl0Qm9hcmQuZmluZFBhdGgoYm9hcmQsIHJlc2l6ZUhpdFRlc3RSZWYuZWxlbWVudCk7XG4gICAgICAgICAgICByZXNpemVSZWYgPSB7XG4gICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICBlbGVtZW50OiByZXNpemVIaXRUZXN0UmVmLmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgaGFuZGxlOiByZXNpemVIaXRUZXN0UmVmLmhhbmRsZSxcbiAgICAgICAgICAgICAgICBoYW5kbGVJbmRleDogcmVzaXplSGl0VGVzdFJlZi5oYW5kbGVJbmRleCxcbiAgICAgICAgICAgICAgICByZWN0YW5nbGU6IHJlc2l6ZUhpdFRlc3RSZWYucmVjdGFuZ2xlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcHJldmVudFRvdWNoTW92ZShib2FyZCwgZXZlbnQsIHRydWUpO1xuICAgICAgICAgICAgLy8gcHJldmVudCB0ZXh0IGZyb20gYmVpbmcgc2VsZWN0ZWQgd2hlbiB1c2VyIHByZXNzZWQgc2hpZnQgYW5kIHBvaW50ZXIgZG93blxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBwb2ludGVyRG93bihldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLnBvaW50ZXJNb3ZlID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmNhblJlc2l6ZSgpIHx8ICFnZW5lcmFsQ2FuUmVzaXplKGJvYXJkLCBldmVudCkpIHtcbiAgICAgICAgICAgIHBvaW50ZXJNb3ZlKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhcnRQb2ludCAmJiByZXNpemVIaXRUZXN0UmVmICYmICFpc1Jlc2l6aW5nKGJvYXJkKSkge1xuICAgICAgICAgICAgLy8gcHJldmVudCB0ZXh0IGZyb20gYmVpbmcgc2VsZWN0ZWRcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBlbmRQb2ludCA9IFtldmVudC54LCBldmVudC55XTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludChzdGFydFBvaW50WzBdLCBzdGFydFBvaW50WzFdLCBlbmRQb2ludFswXSwgZW5kUG9pbnRbMV0pO1xuICAgICAgICAgICAgaWYgKGRpc3RhbmNlID4gUFJFU1NfQU5EX01PVkVfQlVGRkVSKSB7XG4gICAgICAgICAgICAgICAgYWRkUmVzaXppbmcoYm9hcmQsIHJlc2l6ZVJlZiEsIG9wdGlvbnMua2V5KTtcbiAgICAgICAgICAgICAgICBNRVJHSU5HLnNldChib2FyZCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5iZWZvcmVSZXNpemUgJiYgb3B0aW9ucy5iZWZvcmVSZXNpemUocmVzaXplUmVmISk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1Jlc2l6aW5nKGJvYXJkKSAmJiAhaXNEcmFnZ2luZyhib2FyZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gdG9WaWV3Qm94UG9pbnQoYm9hcmQsIHRvSG9zdFBvaW50KGJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgICAgICB0aHJvdHRsZVJBRihib2FyZCwgb3B0aW9ucy5rZXkgKyAnLWNvbW1vbi1yZXNpemUtaGl0LXRlc3QnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGl0VGVzdFJlZiA9IG9wdGlvbnMuaGl0VGVzdChwb2ludCk7XG4gICAgICAgICAgICAgICAgaWYgKGhpdFRlc3RSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhvdmVySGl0VGVzdFJlZiAmJiBoaXRUZXN0UmVmLmN1cnNvckNsYXNzICE9PSBob3ZlckhpdFRlc3RSZWYuY3Vyc29yQ2xhc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5yZW1vdmUoYCR7aG92ZXJIaXRUZXN0UmVmLmN1cnNvckNsYXNzfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGhvdmVySGl0VGVzdFJlZiA9IGhpdFRlc3RSZWY7XG4gICAgICAgICAgICAgICAgICAgIGlmIChob3ZlckhpdFRlc3RSZWYuY3Vyc29yQ2xhc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoYCR7aG92ZXJIaXRUZXN0UmVmLmN1cnNvckNsYXNzfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhvdmVySGl0VGVzdFJlZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhvdmVySGl0VGVzdFJlZi5jdXJzb3JDbGFzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5yZW1vdmUoYCR7aG92ZXJIaXRUZXN0UmVmLmN1cnNvckNsYXNzfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJIaXRUZXN0UmVmID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgJiYgaXNSZXNpemluZyhib2FyZCkpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZFBvaW50ID0gdG9WaWV3Qm94UG9pbnQoYm9hcmQsIHRvSG9zdFBvaW50KGJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgICAgICAgICAgdGhyb3R0bGVSQUYoYm9hcmQsICd3aXRoLWNvbW1vbi1yZXNpemUnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGFydFBvaW50ICYmIHJlc2l6ZVJlZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlVG91Y2hUYXJnZXQoYm9hcmQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5vblJlc2l6ZShyZXNpemVSZWYsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvaW50OiB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIHN0YXJ0UG9pbnRbMF0sIHN0YXJ0UG9pbnRbMV0pKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRQb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1NoaWZ0OiAhIWV2ZW50LnNoaWZ0S2V5XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwb2ludGVyTW92ZShldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgICAgIGlmIChpc1Jlc2l6aW5nKGJvYXJkKSB8fCByZXNpemVIaXRUZXN0UmVmKSB7XG4gICAgICAgICAgICBvcHRpb25zLmFmdGVyUmVzaXplICYmIG9wdGlvbnMuYWZ0ZXJSZXNpemUocmVzaXplUmVmISk7XG4gICAgICAgICAgICByZW1vdmVSZXNpemluZyhib2FyZCwgb3B0aW9ucy5rZXkpO1xuICAgICAgICAgICAgc3RhcnRQb2ludCA9IG51bGw7XG4gICAgICAgICAgICByZXNpemVIaXRUZXN0UmVmID0gbnVsbDtcbiAgICAgICAgICAgIHJlc2l6ZVJlZiA9IG51bGw7XG4gICAgICAgICAgICBNRVJHSU5HLnNldChib2FyZCwgZmFsc2UpO1xuICAgICAgICAgICAgcHJldmVudFRvdWNoTW92ZShib2FyZCwgZXZlbnQsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59O1xuIl19
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -10,4 +10,5 @@ export * from './utils';
|
|
|
10
10
|
export * from './core/plugin-element';
|
|
11
11
|
export * from './core/image-base.component';
|
|
12
12
|
export * from './algorithms';
|
|
13
|
-
|
|
13
|
+
export * from './types/resize';
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB1dGlsc1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vZ2VuZXJhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZm9ybXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wbHVnaW5zJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL3BsdWdpbi1lbGVtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9pbWFnZS1iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FsZ29yaXRobXMnXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL3Jlc2l6ZSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy90eXBlcy9yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhdGgsIFBsYWl0RWxlbWVudCwgUG9pbnQsIFJlY3RhbmdsZUNsaWVudCwgUmVzaXplQ3Vyc29yQ2xhc3MgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBSZXNpemVIYW5kbGUgfSBmcm9tICcuLi9jb25zdGFudHMvcmVzaXplJztcblxuZXhwb3J0IHR5cGUgUGxhaXRFbGVtZW50T3JBcnJheSA9IFBsYWl0RWxlbWVudCB8IFBsYWl0RWxlbWVudFtdO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhSZXNpemVPcHRpb25zPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnRPckFycmF5ID0gUGxhaXRFbGVtZW50T3JBcnJheSwgSyA9IFJlc2l6ZUhhbmRsZT4ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIGNhblJlc2l6ZTogKCkgPT4gYm9vbGVhbjtcbiAgICBoaXRUZXN0OiAocG9pbnQ6IFBvaW50KSA9PiBSZXNpemVIaXRUZXN0UmVmPFQsIEs+IHwgbnVsbDtcbiAgICBvblJlc2l6ZTogKHJlc2l6ZVJlZjogUmVzaXplUmVmPFQsIEs+LCByZXNpemVTdGF0ZTogUmVzaXplU3RhdGUpID0+IHZvaWQ7XG4gICAgYWZ0ZXJSZXNpemU/OiAocmVzaXplUmVmOiBSZXNpemVSZWY8VCwgSz4pID0+IHZvaWQ7XG4gICAgYmVmb3JlUmVzaXplPzogKHJlc2l6ZVJlZjogUmVzaXplUmVmPFQsIEs+KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2l6ZUhpdFRlc3RSZWY8VCBleHRlbmRzIFBsYWl0RWxlbWVudE9yQXJyYXkgPSBQbGFpdEVsZW1lbnRPckFycmF5LCBLID0gUmVzaXplSGFuZGxlPiB7XG4gICAgZWxlbWVudDogVDtcbiAgICByZWN0YW5nbGU/OiBSZWN0YW5nbGVDbGllbnQ7XG4gICAgaGFuZGxlOiBLO1xuICAgIGhhbmRsZUluZGV4PzogbnVtYmVyO1xuICAgIGN1cnNvckNsYXNzPzogUmVzaXplQ3Vyc29yQ2xhc3M7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzaXplU3RhdGUge1xuICAgIHN0YXJ0UG9pbnQ6IFBvaW50O1xuICAgIGVuZFBvaW50OiBQb2ludDtcbiAgICBpc1NoaWZ0OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2l6ZVJlZjxUIGV4dGVuZHMgUGxhaXRFbGVtZW50T3JBcnJheSA9IFBsYWl0RWxlbWVudE9yQXJyYXksIEsgPSBSZXNpemVIYW5kbGU+IHtcbiAgICBlbGVtZW50OiBUO1xuICAgIHJlY3RhbmdsZT86IFJlY3RhbmdsZUNsaWVudDtcbiAgICBwYXRoOiBQYXRoIHwgUGF0aFtdO1xuICAgIGhhbmRsZTogSztcbiAgICBoYW5kbGVJbmRleD86IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Direction
|
|
1
|
+
import { Direction } from '@plait/core';
|
|
2
2
|
const handleDirectionFactors = {
|
|
3
3
|
[Direction.left]: { x: -1, y: 0 },
|
|
4
4
|
[Direction.right]: { x: 1, y: 0 },
|
|
@@ -52,17 +52,6 @@ export function getDirectionByVector(vector) {
|
|
|
52
52
|
return Direction.left;
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
export function getPointByVector(point, vector, offset) {
|
|
56
|
-
const distance = Math.hypot(vector[0], vector[1]);
|
|
57
|
-
return [point[0] + (vector[0] / distance) * offset, point[1] + (vector[1] / distance) * offset];
|
|
58
|
-
}
|
|
59
|
-
export function rotateVectorAnti90(vector) {
|
|
60
|
-
const x = vector[0];
|
|
61
|
-
const y = vector[1];
|
|
62
|
-
const rotatedX = y;
|
|
63
|
-
const rotatedY = -x;
|
|
64
|
-
return [rotatedX, rotatedY];
|
|
65
|
-
}
|
|
66
55
|
export function getDirectionBetweenPointAndPoint(source, target) {
|
|
67
56
|
if (source[0] === target[0]) {
|
|
68
57
|
if (source[1] >= target[1]) {
|
|
@@ -85,17 +74,8 @@ export function getDirectionBetweenPointAndPoint(source, target) {
|
|
|
85
74
|
export function getDirectionFactor(direction) {
|
|
86
75
|
return handleDirectionFactors[direction];
|
|
87
76
|
}
|
|
88
|
-
export function
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
return {
|
|
92
|
-
x: 1,
|
|
93
|
-
y: 1
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
return {
|
|
97
|
-
x: (target[0] - source[0]) / distance,
|
|
98
|
-
y: (target[1] - source[1]) / distance
|
|
99
|
-
};
|
|
77
|
+
export function getDirectionFactorByVectorComponent(vectorComponent) {
|
|
78
|
+
const directionFactor = vectorComponent === 0 ? vectorComponent : vectorComponent / Math.abs(vectorComponent);
|
|
79
|
+
return directionFactor;
|
|
100
80
|
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy91dGlscy9kaXJlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0QsTUFBTSxhQUFhLENBQUM7QUFFMUYsTUFBTSxzQkFBc0IsR0FBRztJQUMzQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0lBQ2pDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0lBQ2pDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDaEMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7Q0FDckMsQ0FBQztBQUVGLE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxLQUF1QjtJQUNsRSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDaEIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO0tBQ3pCO0lBQ0QsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2hCLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQztLQUMxQjtJQUNELElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNoQixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUM7S0FDeEI7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDaEIsT0FBTyxTQUFTLENBQUMsTUFBTSxD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RyxPQUFPLGVBQWtDLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbiwgRGlyZWN0aW9uRmFjdG9yLCBQb2ludCwgUG9pbnRPZlJlY3RhbmdsZSwgVmVjdG9yIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuXG5jb25zdCBoYW5kbGVEaXJlY3Rpb25GYWN0b3JzID0ge1xuICAgIFtEaXJlY3Rpb24ubGVmdF06IHsgeDogLTEsIHk6IDAgfSxcbiAgICBbRGlyZWN0aW9uLnJpZ2h0XTogeyB4OiAxLCB5OiAwIH0sXG4gICAgW0RpcmVjdGlvbi50b3BdOiB7IHg6IDAsIHk6IC0xIH0sXG4gICAgW0RpcmVjdGlvbi5ib3R0b21dOiB7IHg6IDAsIHk6IDEgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpcmVjdGlvbkJ5UG9pbnRPZlJlY3RhbmdsZShwb2ludDogUG9pbnRPZlJlY3RhbmdsZSk6IERpcmVjdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHBvaW50WzBdID09PSAwKSB7XG4gICAgICAgIHJldHVybiBEaXJlY3Rpb24ubGVmdDtcbiAgICB9XG4gICAgaWYgKHBvaW50WzBdID09PSAxKSB7XG4gICAgICAgIHJldHVybiBEaXJlY3Rpb24ucmlnaHQ7XG4gICAgfVxuICAgIGlmIChwb2ludFsxXSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gRGlyZWN0aW9uLnRvcDtcbiAgICB9XG4gICAgaWYgKHBvaW50WzFdID09PSAxKSB7XG4gICAgICAgIHJldHVybiBEaXJlY3Rpb24uYm90dG9tO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIHRoaXMgZnVuY3Rpb24gYWNjZXB0cyB2ZWN0b3IgcGFyYW1ldGVyLCB0aGUgdmVjdG9yIHBhcmFtZXRlciB2ZWN0b3IgaXMgYmFzZWQgb24gdGhlIHNjcmVlbiBjb29yZGluYXRlIHN5c3RlbVxuICogdmVjdG9yWzBdIGFuZCB2ZWN0b3JbMV0gYXJlIHRoZSB4IGFuZCB5IGNvbXBvbmVudHMgb2YgdGhlIHZlY3RvciByZXNwZWN0aXZlbHkuXG4gKiBpZiB0aGUgdmVjdG9yIGhhcyBvbmx5IG9uZSBkaXJlY3Rpb24sIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgc3RyaW5nIGluIHRoYXQgZGlyZWN0aW9uLCBzdWNoIGFzICdyaWdodCcsICd0b3AnLCAnYm90dG9tJyBvciAnbGVmdCcuXG4gKiBpZiB0aGUgdmVjdG9yIGhhcyB0d28gZGlyZWN0aW9ucywgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHRoZSBzdHJpbmcgaW4gd2hpY2ggZGlyZWN0aW9uIGl0IGlzIGNsb3Nlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpcmVjdGlvbkJ5VmVjdG9yKHZlY3RvcjogVmVjdG9yKTogRGlyZWN0aW9uIHwgbnVsbCB7XG4gICAgY29uc3QgeCA9IHZlY3RvclswXTtcbiAgICBjb25zdCB5ID0gdmVjdG9yWzFdO1xuICAgIGlmICh4ID09PSAwICYmIHkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh4ID09PSAwKSB7XG4gICAgICAgIHJldHVybiB5ID4gMCA/IERpcmVjdGlvbi5ib3R0b20gOiBEaXJlY3Rpb24udG9wO1xuICAgIH1cbiAgICBpZiAoeSA9PT0gMCkge1xuICAgICAgICByZXR1cm4geCA+IDAgPyBEaXJlY3Rpb24ucmlnaHQgOiBEaXJlY3Rpb24ubGVmdDtcbiAgICB9XG4gICAgY29uc3QgYW5nbGUgPSBNYXRoLmF0YW4yKHksIHgpO1xuICAgIGlmIChhbmdsZSA+IC1NYXRoLlBJIC8gNCAmJiBhbmdsZSA8PSBNYXRoLlBJIC8gNCkge1xuICAgICAgICByZXR1cm4gRGlyZWN0aW9uLnJpZ2h0O1xuICAgIH0gZWxzZSBpZiAoYW5nbGUgPiBNYXRoLlBJIC8gNCAmJiBhbmdsZSA8PSAoMyAqIE1hdGguUEkpIC8gNCkge1xuICAgICAgICByZXR1cm4gRGlyZWN0aW9uLmJvdHRvbTtcbiAgICB9IGVsc2UgaWYgKGFuZ2xlID4gKC0zICogTWF0aC5QSSkgLyA0ICYmIGFuZ2xlIDw9IC1NYXRoLlBJIC8gNCkge1xuICAgICAgICByZXR1cm4gRGlyZWN0aW9uLnRvcDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gRGlyZWN0aW9uLmxlZnQ7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlyZWN0aW9uQmV0d2VlblBvaW50QW5kUG9pbnQoc291cmNlOiBQb2ludCwgdGFyZ2V0OiBQb2ludCkge1xuICAgIGlmIChzb3VyY2VbMF0gPT09IHRhcmdldFswXSkge1xuICAgICAgICBpZiAoc291cmNlWzFdID49IHRhcmdldFsxXSkge1xuICAgICAgICAgICAgcmV0dXJuIERpcmVjdGlvbi50b3A7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gRGlyZWN0aW9uLmJvdHRvbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoc291cmNlWzFdID09PSB0YXJnZXRbMV0pIHtcbiAgICAgICAgaWYgKHNvdXJjZVswXSA+PSB0YXJnZXRbMF0pIHtcbiAgICAgICAgICAgIHJldHVybiBEaXJlY3Rpb24ubGVmdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBEaXJlY3Rpb24ucmlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjYW4gbm90IG1hdGNoIGRpcmVjdGlvbicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlyZWN0aW9uRmFjdG9yKGRpcmVjdGlvbjogRGlyZWN0aW9uKSB7XG4gICAgcmV0dXJuIGhhbmRsZURpcmVjdGlvbkZhY3RvcnNbZGlyZWN0aW9uXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERpcmVjdGlvbkZhY3RvckJ5VmVjdG9yQ29tcG9uZW50KHZlY3RvckNvbXBvbmVudDogbnVtYmVyKTogRGlyZWN0aW9uRmFjdG9yIHtcbiAgICBjb25zdCBkaXJlY3Rpb25GYWN0b3IgPSB2ZWN0b3JDb21wb25lbnQgPT09IDAgPyB2ZWN0b3JDb21wb25lbnQgOiB2ZWN0b3JDb21wb25lbnQgLyBNYXRoLmFicyh2ZWN0b3JDb21wb25lbnQpO1xuICAgIHJldHVybiBkaXJlY3Rpb25GYWN0b3IgYXMgRGlyZWN0aW9uRmFjdG9yO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './resize-handle';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2RyYXdpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcmVzaXplLWhhbmRsZSc7Il19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PlaitBoard, drawCircle } from '@plait/core';
|
|
2
|
+
import { PRIMARY_COLOR, RESIZE_HANDLE_DIAMETER } from '../../constants/default';
|
|
3
|
+
export const drawHandle = (board, centerPoint) => {
|
|
4
|
+
const options = { stroke: '#99999995', strokeWidth: 2, fill: '#FFF', fillStyle: 'solid' };
|
|
5
|
+
return drawCircle(PlaitBoard.getRoughSVG(board), centerPoint, RESIZE_HANDLE_DIAMETER, options);
|
|
6
|
+
};
|
|
7
|
+
export function drawFillPrimaryHandle(board, point) {
|
|
8
|
+
return drawCircle(PlaitBoard.getRoughSVG(board), point, RESIZE_HANDLE_DIAMETER, {
|
|
9
|
+
stroke: '#FFFFFF',
|
|
10
|
+
strokeWidth: 1,
|
|
11
|
+
fill: `${PRIMARY_COLOR}`,
|
|
12
|
+
fillStyle: 'solid'
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export function drawPrimaryHandle(board, point) {
|
|
16
|
+
return drawCircle(PlaitBoard.getRoughSVG(board), point, RESIZE_HANDLE_DIAMETER, {
|
|
17
|
+
stroke: `${PRIMARY_COLOR}`,
|
|
18
|
+
strokeWidth: 2,
|
|
19
|
+
fill: `#FFFFFF`,
|
|
20
|
+
fillStyle: 'solid'
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdXRpbHMvZHJhd2luZy9yZXNpemUtaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVMsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVELE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFdBQWtCLEVBQUUsRUFBRTtJQUNoRSxNQUFNLE9BQU8sR0FBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNuRyxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNuRyxDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBaUIsRUFBRSxLQUFZO0lBQ2pFLE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFO1FBQzVFLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLFdBQVcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxFQUFFLEdBQUcsYUFBYSxFQUFFO1FBQ3hCLFNBQVMsRUFBRSxPQUFPO0tBQ3JCLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBaUIsRUFBRSxLQUFZO0lBQzdELE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFO1FBQzVFLE1BQU0sRUFBRSxHQUFHLGFBQWEsRUFBRTtRQUMxQixXQUFXLEVBQUUsQ0FBQztRQUNkLElBQUksRUFBRSxTQUFTO1FBQ2YsU0FBUyxFQUFFLE9BQU87S0FDckIsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50LCBkcmF3Q2lyY2xlIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgUFJJTUFSWV9DT0xPUiwgUkVTSVpFX0hBTkRMRV9ESUFNRVRFUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9kZWZhdWx0JztcblxuZXhwb3J0IGNvbnN0IGRyYXdIYW5kbGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGNlbnRlclBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnM6IE9wdGlvbnMgPSB7IHN0cm9rZTogJyM5OTk5OTk5NScsIHN0cm9rZVdpZHRoOiAyLCBmaWxsOiAnI0ZGRicsIGZpbGxTdHlsZTogJ3NvbGlkJyB9O1xuICAgIHJldHVybiBkcmF3Q2lyY2xlKFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpLCBjZW50ZXJQb2ludCwgUkVTSVpFX0hBTkRMRV9ESUFNRVRFUiwgb3B0aW9ucyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhd0ZpbGxQcmltYXJ5SGFuZGxlKGJvYXJkOiBQbGFpdEJvYXJkLCBwb2ludDogUG9pbnQpIHtcbiAgICByZXR1cm4gZHJhd0NpcmNsZShQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKSwgcG9pbnQsIFJFU0laRV9IQU5ETEVfRElBTUVURVIsIHtcbiAgICAgICAgc3Ryb2tlOiAnI0ZGRkZGRicsXG4gICAgICAgIHN0cm9rZVdpZHRoOiAxLFxuICAgICAgICBmaWxsOiBgJHtQUklNQVJZX0NPTE9SfWAsXG4gICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJ1xuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZHJhd1ByaW1hcnlIYW5kbGUoYm9hcmQ6IFBsYWl0Qm9hcmQsIHBvaW50OiBQb2ludCkge1xuICAgIHJldHVybiBkcmF3Q2lyY2xlKFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpLCBwb2ludCwgUkVTSVpFX0hBTkRMRV9ESUFNRVRFUiwge1xuICAgICAgICBzdHJva2U6IGAke1BSSU1BUllfQ09MT1J9YCxcbiAgICAgICAgc3Ryb2tlV2lkdGg6IDIsXG4gICAgICAgIGZpbGw6IGAjRkZGRkZGYCxcbiAgICAgICAgZmlsbFN0eWxlOiAnc29saWQnXG4gICAgfSk7XG59Il19
|