@plait/draw 0.66.0 → 0.67.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/esm2022/generators/line-active.generator.mjs +3 -4
- package/esm2022/plugins/with-draw-resize.mjs +4 -4
- package/esm2022/plugins/with-draw-rotate.mjs +4 -4
- package/fesm2022/plait-draw.mjs +8 -9
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/styles.scss +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PlaitBoard, createG, drawRectangle, getSelectedElements } from '@plait/core';
|
|
1
|
+
import { PlaitBoard, SELECTION_RECTANGLE_CLASS_NAME, createG, drawRectangle, getSelectedElements } from '@plait/core';
|
|
2
2
|
import { ArrowLineShape, PlaitArrowLine, PlaitDrawElement } from '../interfaces';
|
|
3
3
|
import { Generator, PRIMARY_COLOR, drawFillPrimaryHandle, drawPrimaryHandle } from '@plait/common';
|
|
4
4
|
import { getMiddlePoints } from '../utils/line';
|
|
@@ -24,8 +24,7 @@ export class LineActiveGenerator extends Generator {
|
|
|
24
24
|
const selectedElements = getSelectedElements(this.board);
|
|
25
25
|
this.onlySelectedCurrentLine = selectedElements.length === 1;
|
|
26
26
|
if (this.onlySelectedCurrentLine) {
|
|
27
|
-
activeG.classList.add(
|
|
28
|
-
activeG.classList.add('line-handle');
|
|
27
|
+
activeG.classList.add(SELECTION_RECTANGLE_CLASS_NAME);
|
|
29
28
|
const points = PlaitDrawElement.isArrowLine(element) ? PlaitArrowLine.getPoints(this.board, element) : element.points;
|
|
30
29
|
let updatePoints = [...points];
|
|
31
30
|
let elbowNextRenderPoints = [];
|
|
@@ -78,4 +77,4 @@ export class LineActiveGenerator extends Generator {
|
|
|
78
77
|
return onlySelectedCurrentLine !== this.onlySelectedCurrentLine;
|
|
79
78
|
}
|
|
80
79
|
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1hY3RpdmUuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy9saW5lLWFjdGl2ZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUyxPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBUXRELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUFnQztJQUF6RTs7UUFDSSw0QkFBdUIsR0FBRyxLQUFLLENBQUM7SUEwRXBDLENBQUM7SUF4RUcsT0FBTyxDQUFDLE9BQWtCLEVBQUUsSUFBZ0I7UUFDeEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFrQixFQUFFLElBQWdCO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQzFC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QUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6RCxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksZUFBZSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDOUQsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDcEIsQ0FBQztnQkFDRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUU7b0JBQ3ZELE1BQU0sRUFBRSxhQUFhO29CQUNyQixXQUFXLEVBQUUsc0JBQXNCLENBQUMsb0JBQW9CO2lCQUMzRCxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO2dCQUNoQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVELFVBQVU7UUFDTixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxNQUFNLHVCQUF1QixHQUFHLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDOUQsT0FBTyx1QkFBdUIsS0FBSyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDcEUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUG9pbnQsIGNyZWF0ZUcsIGRyYXdSZWN0YW5nbGUsIGdldFNlbGVjdGVkRWxlbWVudHMgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBBcnJvd0xpbmVTaGFwZSwgUGxhaXRBcnJvd0xpbmUsIFBsYWl0RHJhd0VsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEdlbmVyYXRvciwgUFJJTUFSWV9DT0xPUiwgZHJhd0ZpbGxQcmltYXJ5SGFuZGxlLCBkcmF3UHJpbWFyeUhhbmRsZSB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgZ2V0TWlkZGxlUG9pbnRzIH0gZnJvbSAnLi4vdXRpbHMvbGluZSc7XG5pbXBvcnQgeyBnZXROZXh0UmVuZGVyUG9pbnRzIH0gZnJvbSAnLi4vdXRpbHMvYXJyb3ctbGluZS9lbGJvdyc7XG5pbXBvcnQgeyBpc1VwZGF0ZWRIYW5kbGVJbmRleCB9IGZyb20gJy4uL3V0aWxzL2Fycm93LWxpbmUnO1xuaW1wb3J0IHsgZ2V0SGl0UG9pbnRJbmRleCB9IGZyb20gJy4uL3V0aWxzL3Bvc2l0aW9uL2xpbmUnO1xuaW1wb3J0IHsgRGVmYXVsdERyYXdBY3RpdmVTdHlsZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQbGFpdExpbmUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2xpbmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2ZURhdGEge1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgIGxpbmVQb2ludHM6IFBvaW50W107XG59XG5cbmV4cG9ydCBjbGFzcyBMaW5lQWN0aXZlR2VuZXJhdG9yIGV4dGVuZHMgR2VuZXJhdG9yPFBsYWl0TGluZSwgQWN0aXZlRGF0YT4ge1xuICAgIG9ubHlTZWxlY3RlZEN1cnJlbnRMaW5lID0gZmFsc2U7XG5cbiAgICBjYW5EcmF3KGVsZW1lbnQ6IFBsYWl0TGluZSwgZGF0YTogQWN0aXZlRGF0YSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoZGF0YS5zZWxlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkcmF3KGVsZW1lbnQ6IFBsYWl0TGluZSwgZGF0YTogQWN0aXZlRGF0YSk6IFNWR0dFbGVtZW50IHtcbiAgICAgICAgY29uc3QgYWN0aXZlRyA9IGNyZWF0ZUcoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgIHRoaXMub25seVNlbGVjdGVkQ3VycmVudExpbmUgPSBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMTtcbiAgICAgICAgaWYgKHRoaXMub25seVNlbGVjdGVkQ3VycmVudExpbmUpIHtcbiAgICAgICAgICAgIGFjdGl2ZUcuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG4gICAgICAgICAgICBhY3RpdmVHLmNsYXNzTGlzdC5hZGQoJ2xpbmUtaGFuZGxlJyk7XG4gICAgICAgICAgICBjb25zdCBwb2ludHMgPSBQbGFpdERyYXdFbGVtZW50LmlzQXJyb3dMaW5lKGVsZW1lbnQpID8gUGxhaXRBcnJvd0xpbmUuZ2V0UG9pbnRzKHRoaXMuYm9hcmQsIGVsZW1lbnQpIDogZWxlbWVudC5wb2ludHM7XG4gICAgICAgICAgICBsZXQgdXBkYXRlUG9pbnRzID0gWy4uLnBvaW50c107XG4gICAgICAgICAgICBsZXQgZWxib3dOZXh0UmVuZGVyUG9pbnRzOiBQb2ludFtdID0gW107XG4gICAgICAgICAgICBpZiAoZWxlbWVudC5zaGFwZSA9PT0gQXJyb3dMaW5lU2hhcGUuZWxib3cpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVQb2ludHMgPSBwb2ludHMuc2xpY2UoMCwgMSkuY29uY2F0KHBvaW50cy5zbGljZSgtMSkpO1xuICAgICAgICAgICAgICAgIGVsYm93TmV4dFJlbmRlclBvaW50cyA9IGdldE5leHRSZW5kZXJQb2ludHModGhpcy5ib2FyZCwgZWxlbWVudCwgZGF0YS5saW5lUG9pbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVwZGF0ZVBvaW50cy5mb3JFYWNoKHBvaW50ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVIYW5kbGUgPSBkcmF3UHJpbWFyeUhhbmRsZSh0aGlzLmJvYXJkLCBwb2ludCk7XG4gICAgICAgICAgICAgICAgYWN0aXZlRy5hcHBlbmRDaGlsZCh1cGRhdGVIYW5kbGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBtaWRkbGVQb2ludHMgPSBnZXRNaWRkbGVQb2ludHModGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoIVBsYWl0Qm9hcmQuaGFzQmVlblRleHRFZGl0aW5nKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtaWRkbGVQb2ludHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9pbnQgPSBtaWRkbGVQb2ludHNbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnNoYXBlID09PSBBcnJvd0xpbmVTaGFwZS5lbGJvdyAmJiBlbGJvd05leHRSZW5kZXJQb2ludHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoYW5kbGVJbmRleCA9IGdldEhpdFBvaW50SW5kZXgobWlkZGxlUG9pbnRzLCBwb2ludCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1VwZGF0ZUhhbmRsZUluZGV4ID0gaXNVcGRhdGVkSGFuZGxlSW5kZXgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ib2FyZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsuLi5wb2ludHNdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsYm93TmV4dFJlbmRlclBvaW50cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVJbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1VwZGF0ZUhhbmRsZUluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlSGFuZGxlID0gZHJhd1ByaW1hcnlIYW5kbGUodGhpcy5ib2FyZCwgcG9pbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUcuYXBwZW5kQ2hpbGQodXBkYXRlSGFuZGxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaXJjbGUgPSBkcmF3RmlsbFByaW1hcnlIYW5kbGUodGhpcy5ib2FyZCwgcG9pbnQpO1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmVHLmFwcGVuZENoaWxkKGNpcmNsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlUmVjdGFuZ2xlID0gdGhpcy5ib2FyZC5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoYWN0aXZlUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICAgICAgbGV0IG9wYWNpdHkgPSAnMC41JztcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlUmVjdGFuZ2xlLmhlaWdodCA9PT0gMCB8fCBhY3RpdmVSZWN0YW5nbGUud2lkdGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSA9ICcwLjgnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzdHJva2VHID0gZHJhd1JlY3RhbmdsZSh0aGlzLmJvYXJkLCBhY3RpdmVSZWN0YW5nbGUsIHtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBQUklNQVJZX0NPTE9SLFxuICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogRGVmYXVsdERyYXdBY3RpdmVTdHlsZS5zZWxlY3Rpb25TdHJva2VXaWR0aFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHN0cm9rZUcuc3R5bGUub3BhY2l0eSA9IG9wYWNpdHk7XG4gICAgICAgICAgICAgICAgYWN0aXZlRy5hcHBlbmRDaGlsZChzdHJva2VHKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWN0aXZlRztcbiAgICB9XG5cbiAgICBuZWVkVXBkYXRlKCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgY29uc3Qgb25seVNlbGVjdGVkQ3VycmVudExpbmUgPSBzZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMTtcbiAgICAgICAgcmV0dXJuIG9ubHlTZWxlY3RlZEN1cnJlbnRMaW5lICE9PSB0aGlzLm9ubHlTZWxlY3RlZEN1cnJlbnRMaW5lO1xuICAgIH1cbn1cbiJdfQ==
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1hY3RpdmUuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy9saW5lLWFjdGl2ZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUyw4QkFBOEIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdILE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBUXRELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUFnQztJQUF6RTs7UUFDSSw0QkFBdUIsR0FBRyxLQUFLLENBQUM7SUF5RXBDLENBQUM7SUF2RUcsT0FBTyxDQUFDLE9BQWtCLEVBQUUsSUFBZ0I7UUFDeEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFrQixFQUFFLElBQWdCO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFB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QyxDQUFDO1lBQ3pELElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDcEIsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxlQUFlLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUM5RCxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNwQixDQUFDO2dCQUNELE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRTtvQkFDdkQsTUFBTSxFQUFFLGFBQWE7b0JBQ3JCLFdBQVcsRUFBRSxzQkFBc0IsQ0FBQyxvQkFBb0I7aUJBQzNELENBQUMsQ0FBQztnQkFDSCxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7Z0JBQ2hDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsVUFBVTtRQUNOLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELE1BQU0sdUJBQXVCLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUM5RCxPQUFPLHVCQUF1QixLQUFLLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUNwRSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgU0VMRUNUSU9OX1JFQ1RBTkdMRV9DTEFTU19OQU1FLCBjcmVhdGVHLCBkcmF3UmVjdGFuZ2xlLCBnZXRTZWxlY3RlZEVsZW1lbnRzIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQXJyb3dMaW5lU2hhcGUsIFBsYWl0QXJyb3dMaW5lLCBQbGFpdERyYXdFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBHZW5lcmF0b3IsIFBSSU1BUllfQ09MT1IsIGRyYXdGaWxsUHJpbWFyeUhhbmRsZSwgZHJhd1ByaW1hcnlIYW5kbGUgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IGdldE1pZGRsZVBvaW50cyB9IGZyb20gJy4uL3V0aWxzL2xpbmUnO1xuaW1wb3J0IHsgZ2V0TmV4dFJlbmRlclBvaW50cyB9IGZyb20gJy4uL3V0aWxzL2Fycm93LWxpbmUvZWxib3cnO1xuaW1wb3J0IHsgaXNVcGRhdGVkSGFuZGxlSW5kZXggfSBmcm9tICcuLi91dGlscy9hcnJvdy1saW5lJztcbmltcG9ydCB7IGdldEhpdFBvaW50SW5kZXggfSBmcm9tICcuLi91dGlscy9wb3NpdGlvbi9saW5lJztcbmltcG9ydCB7IERlZmF1bHREcmF3QWN0aXZlU3R5bGUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgUGxhaXRMaW5lIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9saW5lJztcblxuZXhwb3J0IGludGVyZmFjZSBBY3RpdmVEYXRhIHtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICBsaW5lUG9pbnRzOiBQb2ludFtdO1xufVxuXG5leHBvcnQgY2xhc3MgTGluZUFjdGl2ZUdlbmVyYXRvciBleHRlbmRzIEdlbmVyYXRvcjxQbGFpdExpbmUsIEFjdGl2ZURhdGE+IHtcbiAgICBvbmx5U2VsZWN0ZWRDdXJyZW50TGluZSA9IGZhbHNlO1xuXG4gICAgY2FuRHJhdyhlbGVtZW50OiBQbGFpdExpbmUsIGRhdGE6IEFjdGl2ZURhdGEpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGRhdGEuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50OiBQbGFpdExpbmUsIGRhdGE6IEFjdGl2ZURhdGEpOiBTVkdHRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLm9ubHlTZWxlY3RlZEN1cnJlbnRMaW5lID0gc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDE7XG4gICAgICAgIGlmICh0aGlzLm9ubHlTZWxlY3RlZEN1cnJlbnRMaW5lKSB7XG4gICAgICAgICAgICBhY3RpdmVHLmNsYXNzTGlzdC5hZGQoU0VMRUNUSU9OX1JFQ1RBTkdMRV9DTEFTU19OQU1FKTtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50cyA9IFBsYWl0RHJhd0VsZW1lbnQuaXNBcnJvd0xpbmUoZWxlbWVudCkgPyBQbGFpdEFycm93TGluZS5nZXRQb2ludHModGhpcy5ib2FyZCwgZWxlbWVudCkgOiBlbGVtZW50LnBvaW50cztcbiAgICAgICAgICAgIGxldCB1cGRhdGVQb2ludHMgPSBbLi4ucG9pbnRzXTtcbiAgICAgICAgICAgIGxldCBlbGJvd05leHRSZW5kZXJQb2ludHM6IFBvaW50W10gPSBbXTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50LnNoYXBlID09PSBBcnJvd0xpbmVTaGFwZS5lbGJvdykge1xuICAgICAgICAgICAgICAgIHVwZGF0ZVBvaW50cyA9IHBvaW50cy5zbGljZSgwLCAxKS5jb25jYXQocG9pbnRzLnNsaWNlKC0xKSk7XG4gICAgICAgICAgICAgICAgZWxib3dOZXh0UmVuZGVyUG9pbnRzID0gZ2V0TmV4dFJlbmRlclBvaW50cyh0aGlzLmJvYXJkLCBlbGVtZW50LCBkYXRhLmxpbmVQb2ludHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXBkYXRlUG9pbnRzLmZvckVhY2gocG9pbnQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUhhbmRsZSA9IGRyYXdQcmltYXJ5SGFuZGxlKHRoaXMuYm9hcmQsIHBvaW50KTtcbiAgICAgICAgICAgICAgICBhY3RpdmVHLmFwcGVuZENoaWxkKHVwZGF0ZUhhbmRsZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IG1pZGRsZVBvaW50cyA9IGdldE1pZGRsZVBvaW50cyh0aGlzLmJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgICAgIGlmICghUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcodGhpcy5ib2FyZCkpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1pZGRsZVBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb2ludCA9IG1pZGRsZVBvaW50c1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuc2hhcGUgPT09IEFycm93TGluZVNoYXBlLmVsYm93ICYmIGVsYm93TmV4dFJlbmRlclBvaW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZUluZGV4ID0gZ2V0SGl0UG9pbnRJbmRleChtaWRkbGVQb2ludHMsIHBvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzVXBkYXRlSGFuZGxlSW5kZXggPSBpc1VwZGF0ZWRIYW5kbGVJbmRleChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWy4uLnBvaW50c10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxib3dOZXh0UmVuZGVyUG9pbnRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzVXBkYXRlSGFuZGxlSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVIYW5kbGUgPSBkcmF3UHJpbWFyeUhhbmRsZSh0aGlzLmJvYXJkLCBwb2ludCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlRy5hcHBlbmRDaGlsZCh1cGRhdGVIYW5kbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNpcmNsZSA9IGRyYXdGaWxsUHJpbWFyeUhhbmRsZSh0aGlzLmJvYXJkLCBwb2ludCk7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUcuYXBwZW5kQ2hpbGQoY2lyY2xlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmVSZWN0YW5nbGUgPSB0aGlzLmJvYXJkLmdldFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChhY3RpdmVSZWN0YW5nbGUpIHtcbiAgICAgICAgICAgICAgICBsZXQgb3BhY2l0eSA9ICcwLjUnO1xuICAgICAgICAgICAgICAgIGlmIChhY3RpdmVSZWN0YW5nbGUuaGVpZ2h0ID09PSAwIHx8IGFjdGl2ZVJlY3RhbmdsZS53aWR0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5ID0gJzAuOCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHN0cm9rZUcgPSBkcmF3UmVjdGFuZ2xlKHRoaXMuYm9hcmQsIGFjdGl2ZVJlY3RhbmdsZSwge1xuICAgICAgICAgICAgICAgICAgICBzdHJva2U6IFBSSU1BUllfQ09MT1IsXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBEZWZhdWx0RHJhd0FjdGl2ZVN0eWxlLnNlbGVjdGlvblN0cm9rZVdpZHRoXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgc3Ryb2tlRy5zdHlsZS5vcGFjaXR5ID0gb3BhY2l0eTtcbiAgICAgICAgICAgICAgICBhY3RpdmVHLmFwcGVuZENoaWxkKHN0cm9rZUcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY3RpdmVHO1xuICAgIH1cblxuICAgIG5lZWRVcGRhdGUoKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKHRoaXMuYm9hcmQpO1xuICAgICAgICBjb25zdCBvbmx5U2VsZWN0ZWRDdXJyZW50TGluZSA9IHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxO1xuICAgICAgICByZXR1cm4gb25seVNlbGVjdGVkQ3VycmVudExpbmUgIT09IHRoaXMub25seVNlbGVjdGVkQ3VycmVudExpbmU7XG4gICAgfVxufVxuIl19
|
|
@@ -8,7 +8,7 @@ import { isGeometryIncludeText } from '../utils';
|
|
|
8
8
|
const debugKey = 'debug:plait:resize-for-rotation';
|
|
9
9
|
const debugGenerator = createDebugGenerator(debugKey);
|
|
10
10
|
export function withDrawResize(board) {
|
|
11
|
-
const { afterChange,
|
|
11
|
+
const { afterChange, drawSelectionRectangle } = board;
|
|
12
12
|
let snapG;
|
|
13
13
|
let handleG;
|
|
14
14
|
let needCustomActiveRectangle = false;
|
|
@@ -173,7 +173,7 @@ export function withDrawResize(board) {
|
|
|
173
173
|
PlaitBoard.getElementActiveHost(board).append(handleG);
|
|
174
174
|
}
|
|
175
175
|
};
|
|
176
|
-
board.
|
|
176
|
+
board.drawSelectionRectangle = () => {
|
|
177
177
|
if (needCustomActiveRectangle) {
|
|
178
178
|
const rectangle = RectangleClient.getRectangleByPoints(resizeActivePoints);
|
|
179
179
|
return drawRectangle(board, RectangleClient.inflate(rectangle, ACTIVE_STROKE_WIDTH), {
|
|
@@ -181,7 +181,7 @@ export function withDrawResize(board) {
|
|
|
181
181
|
strokeWidth: ACTIVE_STROKE_WIDTH
|
|
182
182
|
});
|
|
183
183
|
}
|
|
184
|
-
return
|
|
184
|
+
return drawSelectionRectangle();
|
|
185
185
|
};
|
|
186
186
|
return board;
|
|
187
187
|
}
|
|
@@ -254,4 +254,4 @@ export const getResizePointsByOtherwiseAxis = (board, points, resizeOriginPoint,
|
|
|
254
254
|
const newRectangle = RectangleClient.getRectangleByPoints(resultPoints);
|
|
255
255
|
return rotatePoints(resultPoints, RectangleClient.getCenterPoint(newRectangle), -(1 / 2) * Math.PI);
|
|
256
256
|
};
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kcmF3LXJlc2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL3BsdWdpbnMvd2l0aC1kcmF3LXJlc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUgsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsMkJBQTJCLEVBQzNCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsVUFBVSxFQUNWLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDdkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFVBQVUsRUFDVixLQUFLLEVBQ0wsZUFBZSxFQUNmLFVBQVUsRUFDVixPQUFPLEVBQ1Asc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixzQkFBc0IsRUFFekIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpELE1BQU0sUUFBUSxHQUFHLGlDQUFpQyxDQUFDO0FBQ25ELE1BQU0sY0FBYyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBU3RELE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBaUI7SUFDNUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxH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LFlBQVksRUFBRSxlQUFlLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxjQUFjLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRyxZQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNoQyxPQUFPLDZCQUE2QixDQUFDLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0UsQ0FBQyxDQUFDLENBQUM7SUFDSCxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDOUUsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sWUFBWSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3hHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUmVzaXplUmVmLFxuICAgIFJlc2l6ZVN0YXRlLFxuICAgIFdpdGhSZXNpemVPcHRpb25zLFxuICAgIGRyYXdIYW5kbGUsXG4gICAgZ2V0Rmlyc3RUZXh0TWFuYWdlLFxuICAgIGdldEluZGV4QnlSZXNpemVIYW5kbGUsXG4gICAgZ2V0UmVzaXplSGFuZGxlUG9pbnRCeUluZGV4LFxuICAgIGdldFN5bW1ldHJpY0hhbmRsZUluZGV4LFxuICAgIGlzQ29ybmVySGFuZGxlLFxuICAgIHdpdGhSZXNpemUsXG4gICAgcmVzZXRQb2ludHNBZnRlclJlc2l6ZSxcbiAgICBub3JtYWxpemVTaGFwZVBvaW50c1xufSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQb2ludCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgVHJhbnNmb3JtcyxcbiAgICBjcmVhdGVHLFxuICAgIGdldFJlY3RhbmdsZUJ5RWxlbWVudHMsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBpc1NlbGVjdGlvbk1vdmluZyxcbiAgICBnZXRTZWxlY3Rpb25BbmdsZSxcbiAgICByb3RhdGVQb2ludHMsXG4gICAgcm90YXRlZERhdGFQb2ludHMsXG4gICAgY3JlYXRlRGVidWdHZW5lcmF0b3IsXG4gICAgaGFzVmFsaWRBbmdsZSxcbiAgICBpc0F4aXNDaGFuZ2VkQnlBbmdsZSxcbiAgICBkcmF3UmVjdGFuZ2xlLFxuICAgIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgU0VMRUNUSU9OX0JPUkRFUl9DT0xPUixcbiAgICBQYXRoXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0RHJhd0VsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IERyYXdUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBnZXRIaXRSZWN0YW5nbGVSZXNpemVIYW5kbGVSZWYgfSBmcm9tICcuLi91dGlscy9wb3NpdGlvbi9nZW9tZXRyeSc7XG5pbXBvcnQgeyBnZXRTbmFwUmVzaXppbmdSZWZPcHRpb25zLCBnZXRTbmFwUmVzaXppbmdSZWYgfSBmcm9tICcuLi91dGlscy9zbmFwLXJlc2l6aW5nJztcbmltcG9ydCB7IGlzR2VvbWV0cnlJbmNsdWRlVGV4dCB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgZGVidWdLZXkgPSAnZGVidWc6cGxhaXQ6cmVzaXplLWZvci1yb3RhdGlvbic7XG5jb25zdCBkZWJ1Z0dlbmVyYXRvciA9IGNyZWF0ZURlYnVnR2VuZXJhdG9yKGRlYnVnS2V5KTtcblxuZXhwb3J0IGludGVyZmFjZSBCdWxrUm90YXRpb25SZWYge1xuICAgIGFuZ2xlOiBudW1iZXI7XG4gICAgb2Zmc2V0WDogbnVtYmVyO1xuICAgIG9mZnNldFk6IG51bWJlcjtcbiAgICBuZXdDZW50ZXJQb2ludDogUG9pbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoRHJhd1Jlc2l6ZShib2FyZDogUGxhaXRCb2FyZCkge1xuICAgIGNvbnN0IHsgYWZ0ZXJDaGFuZ2UsIGRyYXdBY3RpdmVSZWN0YW5nbGUgfSA9IGJvYXJkO1xuICAgIGxldCBzbmFwRzogU1ZHR0VsZW1lbnQgfCBudWxsO1xuICAgIGxldCBoYW5kbGVHOiBTVkdHRWxlbWVudCB8IG51bGw7XG4gICAgbGV0IG5lZWRDdXN0b21BY3RpdmVSZWN0YW5nbGUgPSBmYWxzZTtcbiAgICBsZXQgcmVzaXplQWN0aXZlUG9pbnRzOiBQb2ludFtdIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdCBjYW5SZXNpemUgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgICAgIHJldHVybiBlbGVtZW50cy5sZW5ndGggPiAxICYmIGVsZW1lbnRzLmV2ZXJ5KGVsID0+IFBsYWl0RHJhd0VsZW1lbnQuaXNEcmF3RWxlbWVudChlbCkpO1xuICAgIH07XG5cbiAgICBjb25zdCBvcHRpb25zOiBXaXRoUmVzaXplT3B0aW9uczxQbGFpdERyYXdFbGVtZW50W10+ID0ge1xuICAgICAgICBrZXk6ICdkcmF3LWVsZW1lbnRzJyxcbiAgICAgICAgY2FuUmVzaXplLFxuICAgICAgICBoaXRUZXN0OiAocG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpIGFzIFBsYWl0RHJhd0VsZW1lbnRbXTtcbiAgICAgICAgICAgIGNvbnN0IGJvdW5kaW5nUmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgZWxlbWVudHMsIGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnN0IGFuZ2xlID0gZ2V0U2VsZWN0aW9uQW5nbGUoZWxlbWVudHMpO1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlUmVmID0gZ2V0SGl0UmVjdGFuZ2xlUmVzaXplSGFuZGxlUmVmKGJvYXJkLCBib3VuZGluZ1JlY3RhbmdsZSwgcG9pbnQsIGFuZ2xlKTtcbiAgICAgICAgICAgIGlmIChoYW5kbGVSZWYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBbLi4uZWxlbWVudHNdLFxuICAgICAgICAgICAgICAgICAgICByZWN0YW5nbGU6IGJvdW5kaW5nUmVjdGFuZ2xlLFxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU6IGhhbmRsZVJlZi5oYW5kbGUsXG4gICAgICAgICAgICAgICAgICAgIGN1cnNvckNsYXNzOiBoYW5kbGVSZWYuY3Vyc29yQ2xhc3NcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0sXG4gICAgICAgIG9uUmVzaXplOiAocmVzaXplUmVmOiBSZXNpemVSZWY8UGxhaXREcmF3RWxlbWVudFtdPiwgcmVzaXplU3RhdGU6IFJlc2l6ZVN0YXRlKSA9PiB7XG4gICAgICAgICAgICBzbmFwRz8ucmVtb3ZlKCk7XG4gICAgICAgICAgICBkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgZGVidWdHZW5lcmF0b3IuY2xlYXIoKTtcbiAgICAgICAgICAgIGNvbnN0IGlzRnJvbUNvcm5lciA9IGlzQ29ybmVySGFuZGxlKGJvYXJkLCByZXNpemVSZWYuaGFuZGxlKTtcbiAgICAgICAgICAgIGNvbnN0IGlzQXNwZWN0UmF0aW8gPSByZXNpemVTdGF0ZS5pc1NoaWZ0IHx8IGlzRnJvbUNvcm5lcjtcbiAgICAgICAgICAgIGNvbnN0IGNlbnRlclBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KHJlc2l6ZVJlZi5yZWN0YW5nbGUhKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUluZGV4ID0gZ2V0SW5kZXhCeVJlc2l6ZUhhbmRsZShyZXNpemVSZWYuaGFuZGxlKTtcbiAgICAgICAgICAgIGNvbnN0IHsgb3JpZ2luUG9pbnQsIGhhbmRsZVBvaW50IH0gPSBnZXRSZXNpemVPcmlnaW5Qb2ludEFuZEhhbmRsZVBvaW50KGJvYXJkLCBoYW5kbGVJbmRleCwgcmVzaXplUmVmLnJlY3RhbmdsZSEpO1xuICAgICAgICAgICAgY29uc3QgYW5nbGUgPSBnZXRTZWxlY3Rpb25BbmdsZShyZXNpemVSZWYuZWxlbWVudCk7XG4gICAgICAgICAgICBsZXQgYnVsa1JvdGF0aW9uUmVmOiBCdWxrUm90YXRpb25SZWYgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAoYW5nbGUpIHtcbiAgICAgICAgICAgICAgICBidWxrUm90YXRpb25SZWYgPSB7XG4gICAgICAgICAgICAgICAgICAgIGFuZ2xlOiBhbmdsZSxcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WDogMCxcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WTogMCxcbiAgICAgICAgICAgICAgICAgICAgbmV3Q2VudGVyUG9pbnQ6IFswLCAwXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgW3JvdGF0ZWRTdGFydFBvaW50LCByb3RhdGVFbmRQb2ludF0gPSByb3RhdGVQb2ludHMoXG4gICAgICAgICAgICAgICAgICAgIFtyZXNpemVTdGF0ZS5zdGFydFBvaW50LCByZXNpemVTdGF0ZS5lbmRQb2ludF0sXG4gICAgICAgICAgICAgICAgICAgIGNlbnRlclBvaW50LFxuICAgICAgICAgICAgICAgICAgICAtYnVsa1JvdGF0aW9uUmVmLmFuZ2xlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXNpemVTdGF0ZS5zdGFydFBvaW50ID0gcm90YXRlZFN0YXJ0UG9pbnQ7XG4gICAgICAgICAgICAgICAgcmVzaXplU3RhdGUuZW5kUG9pbnQgPSByb3RhdGVFbmRQb2ludDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlc2l6ZVNuYXBSZWZPcHRpb25zID0gZ2V0U25hcFJlc2l6aW5nUmVmT3B0aW9ucyhcbiAgICAgICAgICAgICAgICBib2FyZCxcbiAgICAgICAgICAgICAgICByZXNpemVSZWYsXG4gICAgICAgICAgICAgICAgcmVzaXplU3RhdGUsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvcmlnaW5Qb2ludCxcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlUG9pbnRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzQXNwZWN0UmF0aW8sXG4gICAgICAgICAgICAgICAgaXNGcm9tQ29ybmVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgcmVzaXplU25hcFJlZiA9IGdldFNuYXBSZXNpemluZ1JlZihib2FyZCwgcmVzaXplUmVmLmVsZW1lbnQsIHJlc2l6ZVNuYXBSZWZPcHRpb25zKTtcbiAgICAgICAgICAgIHJlc2l6ZUFjdGl2ZVBvaW50cyA9IHJlc2l6ZVNuYXBSZWYuYWN0aXZlUG9pbnRzO1xuICAgICAgICAgICAgc25hcEcgPSByZXNpemVTbmFwUmVmLnNuYXBHO1xuICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdChib2FyZCkuYXBwZW5kKHNuYXBHKTtcblxuICAgICAgICAgICAgaWYgKGJ1bGtSb3RhdGlvblJlZikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJvdW5kaW5nQm94Q29ybmVyUG9pbnRzID0gUmVjdGFuZ2xlQ2xpZW50LmdldFBvaW50cyhyZXNpemVSZWYucmVjdGFuZ2xlISk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzaXplZEJvdW5kaW5nQm94Q29ybmVyUG9pbnRzID0gYm91bmRpbmdCb3hDb3JuZXJQb2ludHMubWFwKHAgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW92ZVBvaW50Qnlab29tQW5kT3JpZ2luUG9pbnQocCwgb3JpZ2luUG9pbnQsIHJlc2l6ZVNuYXBSZWYueFpvb20sIHJlc2l6ZVNuYXBSZWYueVpvb20pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0JvdW5kaW5nQm94ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKHJlc2l6ZWRCb3VuZGluZ0JveENvcm5lclBvaW50cyk7XG5cbiAgICAgICAgICAgICAgICBkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgZGVidWdHZW5lcmF0b3IuZHJhd1JlY3RhbmdsZShib2FyZCwgbmV3Qm91bmRpbmdCb3gsIHsgc3Ryb2tlOiAnYmx1ZScgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBuZXdCb3VuZGluZ0JveENlbnRlciA9IFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludChuZXdCb3VuZGluZ0JveCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYWRqdXN0ZWROZXdCb3VuZGluZ0JveFBvaW50cyA9IHJlc2V0UG9pbnRzQWZ0ZXJSZXNpemUoXG4gICAgICAgICAgICAgICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhib3VuZGluZ0JveENvcm5lclBvaW50cyksXG4gICAgICAgICAgICAgICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhyZXNpemVkQm91bmRpbmdCb3hDb3JuZXJQb2ludHMpLFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXJQb2ludCxcbiAgICAgICAgICAgICAgICAgICAgbmV3Qm91bmRpbmdCb3hDZW50ZXIsXG4gICAgICAgICAgICAgICAgICAgIGJ1bGtSb3RhdGlvblJlZi5hbmdsZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q2VudGVyID0gUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhhZGp1c3RlZE5ld0JvdW5kaW5nQm94UG9pbnRzKSk7XG4gICAgICAgICAgICAgICAgYnVsa1JvdGF0aW9uUmVmID0gT2JqZWN0LmFzc2lnbihidWxrUm90YXRpb25SZWYsIHtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WDogbmV3Q2VudGVyWzBdIC0gbmV3Qm91bmRpbmdCb3hDZW50ZXJbMF0sXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFk6IG5ld0NlbnRlclsxXSAtIG5ld0JvdW5kaW5nQm94Q2VudGVyWzFdLFxuICAgICAgICAgICAgICAgICAgICBuZXdDZW50ZXJQb2ludDogbmV3Q2VudGVyXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgZGVidWdHZW5lcmF0b3IuZHJhd1JlY3RhbmdsZShib2FyZCwgYWRqdXN0ZWROZXdCb3VuZGluZ0JveFBvaW50cyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc2l6ZVJlZi5lbGVtZW50LmZvckVhY2godGFyZ2V0ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgdGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBsZXQgcG9pbnRzO1xuICAgICAgICAgICAgICAgIGlmIChidWxrUm90YXRpb25SZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmV2ZXJzZWRQb2ludHMgPSByb3RhdGVkRGF0YVBvaW50cyh0YXJnZXQucG9pbnRzLCBjZW50ZXJQb2ludCwgLWJ1bGtSb3RhdGlvblJlZi5hbmdsZSk7XG4gICAgICAgICAgICAgICAgICAgIHBvaW50cyA9IHJldmVyc2VkUG9pbnRzLm1hcCgocDogUG9pbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtb3ZlUG9pbnRCeVpvb21BbmRPcmlnaW5Qb2ludChwLCBvcmlnaW5Qb2ludCwgcmVzaXplU25hcFJlZi54Wm9vbSwgcmVzaXplU25hcFJlZi55Wm9vbSk7XG4gICAgICAgICAgICAgICAgICAgIH0pIGFzIFtQb2ludCwgUG9pbnRdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGp1c3RUYXJnZXRQb2ludHMgPSBwb2ludHMubWFwKHAgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgcFswXSArIGJ1bGtSb3RhdGlvblJlZiEub2Zmc2V0WCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBbMV0gKyBidWxrUm90YXRpb25SZWYhLm9mZnNldFlcbiAgICAgICAgICAgICAgICAgICAgXSkgYXMgUG9pbnRbXTtcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRzID0gcm90YXRlZERhdGFQb2ludHMoYWRqdXN0VGFyZ2V0UG9pbnRzLCBidWxrUm90YXRpb25SZWYubmV3Q2VudGVyUG9pbnQsIGJ1bGtSb3RhdGlvblJlZi5hbmdsZSkgYXMgW1BvaW50LCBQb2ludF07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1ZhbGlkQW5nbGUodGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZEN1c3RvbUFjdGl2ZVJlY3RhbmdsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1ZhbGlkQW5nbGUodGFyZ2V0KSAmJiBpc0F4aXNDaGFuZ2VkQnlBbmdsZSh0YXJnZXQuYW5nbGUhKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzID0gZ2V0UmVzaXplUG9pbnRzQnlPdGhlcndpc2VBeGlzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvYXJkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wb2ludHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luUG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaXplU25hcFJlZi54Wm9vbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpemVTbmFwUmVmLnlab29tXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzID0gdGFyZ2V0LnBvaW50cy5tYXAocCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vdmVQb2ludEJ5Wm9vbUFuZE9yaWdpblBvaW50KHAsIG9yaWdpblBvaW50LCByZXNpemVTbmFwUmVmLnhab29tLCByZXNpemVTbmFwUmVmLnlab29tKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNHZW9tZXRyeSh0YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0dlb21ldHJ5SW5jbHVkZVRleHQodGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBoZWlnaHQ6IHRleHRIZWlnaHQgfSA9IGdldEZpcnN0VGV4dE1hbmFnZSh0YXJnZXQpLmdldFNpemUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIERyYXdUcmFuc2Zvcm1zLnJlc2l6ZUdlb21ldHJ5KGJvYXJkLCBwb2ludHMgYXMgW1BvaW50LCBQb2ludF0sIHRleHRIZWlnaHQsIHBhdGgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzID0gbm9ybWFsaXplU2hhcGVQb2ludHMocG9pbnRzIGFzIFtQb2ludCwgUG9pbnRdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBwb2ludHMgfSwgcGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNBcnJvd0xpbmUodGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIHsgcG9pbnRzIH0sIHBhdGgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKHRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQXNwZWN0UmF0aW8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBwb2ludHMgfSwgcGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgaW1hZ2UgZWxlbWVudCBkb2VzIG5vdCBmb2xsb3cgdGhlIHJlc2l6ZSwgYnV0IG1vdmVzIGJhc2VkIG9uIHRoZSBjZW50ZXIgcG9pbnQuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHModGFyZ2V0LnBvaW50cyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjZW50ZXJQb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludCh0YXJnZXRSZWN0YW5nbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3Q2VudGVyUG9pbnQgPSBtb3ZlUG9pbnRCeVpvb21BbmRPcmlnaW5Qb2ludChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJQb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5Qb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpemVTbmFwUmVmLnhab29tLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6ZVNuYXBSZWYueVpvb21cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdUYXJnZXRSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlDZW50ZXJQb2ludChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDZW50ZXJQb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRSZWN0YW5nbGUud2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0UmVjdGFuZ2xlLmhlaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBwb2ludHM6IFJlY3RhbmdsZUNsaWVudC5nZXRQb2ludHMobmV3VGFyZ2V0UmVjdGFuZ2xlKSB9LCBwYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBhZnRlclJlc2l6ZTogKHJlc2l6ZVJlZjogUmVzaXplUmVmPFBsYWl0RHJhd0VsZW1lbnRbXT4pID0+IHtcbiAgICAgICAgICAgIHNuYXBHPy5yZW1vdmUoKTtcbiAgICAgICAgICAgIHNuYXBHID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChuZWVkQ3VzdG9tQWN0aXZlUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICAgICAgbmVlZEN1c3RvbUFjdGl2ZVJlY3RhbmdsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJlc2l6ZUFjdGl2ZVBvaW50cyA9IG51bGw7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuYWRkU2VsZWN0aW9uV2l0aFRlbXBvcmFyeUVsZW1lbnRzKGJvYXJkLCBzZWxlY3RlZEVsZW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB3aXRoUmVzaXplPFBsYWl0RHJhd0VsZW1lbnRbXT4oYm9hcmQsIG9wdGlvbnMpO1xuXG4gICAgYm9hcmQuYWZ0ZXJDaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgIGFmdGVyQ2hhbmdlKCk7XG4gICAgICAgIGlmIChoYW5kbGVHKSB7XG4gICAgICAgICAgICBoYW5kbGVHLnJlbW92ZSgpO1xuICAgICAgICAgICAgaGFuZGxlRyA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhblJlc2l6ZSgpICYmICFpc1NlbGVjdGlvbk1vdmluZyhib2FyZCkpIHtcbiAgICAgICAgICAgIGhhbmRsZUcgPSBjcmVhdGVHKCk7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpIGFzIFBsYWl0RHJhd0VsZW1lbnRbXTtcbiAgICAgICAgICAgIGNvbnN0IGJvdW5kaW5nUmVjdGFuZ2xlID0gbmVlZEN1c3RvbUFjdGl2ZVJlY3RhbmdsZVxuICAgICAgICAgICAgICAgID8gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKHJlc2l6ZUFjdGl2ZVBvaW50cyEpXG4gICAgICAgICAgICAgICAgOiBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBlbGVtZW50cywgZmFsc2UpO1xuICAgICAgICAgICAgbGV0IGNvcm5lcnMgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKGJvdW5kaW5nUmVjdGFuZ2xlKTtcbiAgICAgICAgICAgIGNvbnN0IGFuZ2xlID0gZ2V0U2VsZWN0aW9uQW5nbGUoZWxlbWVudHMpO1xuICAgICAgICAgICAgaWYgKGFuZ2xlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VudGVyUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoYm91bmRpbmdSZWN0YW5nbGUpO1xuICAgICAgICAgICAgICAgIGNvcm5lcnMgPSByb3RhdGVQb2ludHMoY29ybmVycywgY2VudGVyUG9pbnQsIGFuZ2xlKSBhcyBbUG9pbnQsIFBvaW50LCBQb2ludCwgUG9pbnRdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29ybmVycy5mb3JFYWNoKGNvcm5lciA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZyA9IGRyYXdIYW5kbGUoYm9hcmQsIGNvcm5lcik7XG4gICAgICAgICAgICAgICAgaGFuZGxlRyAmJiBoYW5kbGVHLmFwcGVuZChnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdChib2FyZCkuYXBwZW5kKGhhbmRsZUcpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGJvYXJkLmRyYXdBY3RpdmVSZWN0YW5nbGUgPSAoKSA9PiB7XG4gICAgICAgIGlmIChuZWVkQ3VzdG9tQWN0aXZlUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMocmVzaXplQWN0aXZlUG9pbnRzISk7XG4gICAgICAgICAgICByZXR1cm4gZHJhd1JlY3RhbmdsZShib2FyZCwgUmVjdGFuZ2xlQ2xpZW50LmluZmxhdGUocmVjdGFuZ2xlLCBBQ1RJVkVfU1RST0tFX1dJRFRIKSwge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogU0VMRUNUSU9OX0JPUkRFUl9DT0xPUixcbiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogQUNUSVZFX1NUUk9LRV9XSURUSFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRyYXdBY3RpdmVSZWN0YW5nbGUoKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0UmVzaXplT3JpZ2luUG9pbnRBbmRIYW5kbGVQb2ludCA9IChib2FyZDogUGxhaXRCb2FyZCwgaGFuZGxlSW5kZXg6IG51bWJlciwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpID0+IHtcbiAgICBjb25zdCBzeW1tZXRyaWNIYW5kbGVJbmRleCA9IGdldFN5bW1ldHJpY0hhbmRsZUluZGV4KGJvYXJkLCBoYW5kbGVJbmRleCk7XG4gICAgY29uc3Qgb3JpZ2luUG9pbnQgPSBnZXRSZXNpemVIYW5kbGVQb2ludEJ5SW5kZXgocmVjdGFuZ2xlIGFzIFJlY3RhbmdsZUNsaWVudCwgc3ltbWV0cmljSGFuZGxlSW5kZXgpO1xuICAgIGNvbnN0IGhhbmRsZVBvaW50ID0gZ2V0UmVzaXplSGFuZGxlUG9pbnRCeUluZGV4KHJlY3RhbmdsZSBhcyBSZWN0YW5nbGVDbGllbnQsIGhhbmRsZUluZGV4KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcmlnaW5Qb2ludCxcbiAgICAgICAgaGFuZGxlUG9pbnRcbiAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlc2l6ZVpvb20gPSAoXG4gICAgcmVzaXplU3RhcnRBbmRFbmQ6IFtQb2ludCwgUG9pbnRdLFxuICAgIHJlc2l6ZU9yaWdpblBvaW50OiBQb2ludCxcbiAgICByZXNpemVIYW5kbGVQb2ludDogUG9pbnQsXG4gICAgaXNGcm9tQ29ybmVyOiBib29sZWFuLFxuICAgIGlzQXNwZWN0UmF0aW86IGJvb2xlYW5cbikgPT4ge1xuICAgIGNvbnN0IFtzdGFydFBvaW50LCBlbmRQb2ludF0gPSByZXNpemVTdGFydEFuZEVuZDtcbiAgICBsZXQgeFpvb20gPSAwO1xuICAgIGxldCB5Wm9vbSA9IDA7XG4gICAgaWYgKGlzRnJvbUNvcm5lcikge1xuICAgICAgICBpZiAoaXNBc3BlY3RSYXRpbykge1xuICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWRPZmZzZXRYID0gUG9pbnQuZ2V0T2Zmc2V0WChzdGFydFBvaW50LCBlbmRQb2ludCk7XG4gICAgICAgICAgICB4Wm9vbSA9IG5vcm1hbGl6ZWRPZmZzZXRYIC8gKHJlc2l6ZUhhbmRsZVBvaW50WzBdIC0gcmVzaXplT3JpZ2luUG9pbnRbMF0pO1xuICAgICAgICAgICAgeVpvb20gPSB4Wm9vbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBub3JtYWxpemVkT2Zmc2V0WCA9IFBvaW50LmdldE9mZnNldFgoc3RhcnRQb2ludCwgZW5kUG9pbnQpO1xuICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWRPZmZzZXRZID0gUG9pbnQuZ2V0T2Zmc2V0WShzdGFydFBvaW50LCBlbmRQb2ludCk7XG4gICAgICAgICAgICB4Wm9vbSA9IG5vcm1hbGl6ZWRPZmZzZXRYIC8gKHJlc2l6ZUhhbmRsZVBvaW50WzBdIC0gcmVzaXplT3JpZ2luUG9pbnRbMF0pO1xuICAgICAgICAgICAgeVpvb20gPSBub3JtYWxpemVkT2Zmc2V0WSAvIChyZXNpemVIYW5kbGVQb2ludFsxXSAtIHJlc2l6ZU9yaWdpblBvaW50WzFdKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGlzSG9yaXpvbnRhbCA9IFBvaW50LmlzSG9yaXpvbnRhbChyZXNpemVPcmlnaW5Qb2ludCwgcmVzaXplSGFuZGxlUG9pbnQsIDAuMSkgfHwgZmFsc2U7XG4gICAgICAgIGxldCBub3JtYWxpemVkT2Zmc2V0ID0gaXNIb3Jpem9udGFsID8gUG9pbnQuZ2V0T2Zmc2V0WChzdGFydFBvaW50LCBlbmRQb2ludCkgOiBQb2ludC5nZXRPZmZzZXRZKHN0YXJ0UG9pbnQsIGVuZFBvaW50KTtcbiAgICAgICAgbGV0IGJlbmNobWFya09mZnNldCA9IGlzSG9yaXpvbnRhbCA/IHJlc2l6ZUhhbmRsZVBvaW50WzBdIC0gcmVzaXplT3JpZ2luUG9pbnRbMF0gOiByZXNpemVIYW5kbGVQb2ludFsxXSAtIHJlc2l6ZU9yaWdpblBvaW50WzFdO1xuICAgICAgICBjb25zdCB6b29tID0gbm9ybWFsaXplZE9mZnNldCAvIGJlbmNobWFya09mZnNldDtcbiAgICAgICAgaWYgKGlzQXNwZWN0UmF0aW8pIHtcbiAgICAgICAgICAgIHhab29tID0gem9vbTtcbiAgICAgICAgICAgIHlab29tID0gem9vbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgICAgICAgICB4Wm9vbSA9IHpvb207XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHlab29tID0gem9vbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyB4Wm9vbSwgeVpvb20gfTtcbn07XG5cbmV4cG9ydCBjb25zdCBtb3ZlUG9pbnRCeVpvb21BbmRPcmlnaW5Qb2ludCA9IChwOiBQb2ludCwgcmVzaXplT3JpZ2luUG9pbnQ6IFBvaW50LCB4Wm9vbTogbnVtYmVyLCB5Wm9vbTogbnVtYmVyKSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0WCA9IChwWzBdIC0gcmVzaXplT3JpZ2luUG9pbnRbMF0pICogeFpvb207XG4gICAgY29uc3Qgb2Zmc2V0WSA9IChwWzFdIC0gcmVzaXplT3JpZ2luUG9pbnRbMV0pICogeVpvb207XG4gICAgcmV0dXJuIFtwWzBdICsgb2Zmc2V0WCwgcFsxXSArIG9mZnNldFldIGFzIFBvaW50O1xufTtcblxuLyoqXG4gKiAxLiBSb3RhdGUgOTDCsFxuICogMi4gU2NhbGUgYmFzZWQgb24gdGhlIHJvdGF0ZWQgcG9pbnRzXG4gKiAzLiBSZXZlcnNlIHJvdGF0ZSB0aGUgc2NhbGVkIHBvaW50cyBieSA5MMKwXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRSZXNpemVQb2ludHNCeU90aGVyd2lzZUF4aXMgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgcG9pbnRzOiBQb2ludFtdLFxuICAgIHJlc2l6ZU9yaWdpblBvaW50OiBQb2ludCxcbiAgICB4Wm9vbTogbnVtYmVyLFxuICAgIHlab29tOiBudW1iZXJcbikgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMocG9pbnRzKTtcbiAgICBkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgZGVidWdHZW5lcmF0b3IuZHJhd1JlY3RhbmdsZShib2FyZCwgY3VycmVudFJlY3RhbmdsZSwgeyBzdHJva2U6ICdibGFjaycgfSk7XG4gICAgbGV0IHJlc3VsdFBvaW50cyA9IHBvaW50cztcbiAgICByZXN1bHRQb2ludHMgPSByb3RhdGVQb2ludHMocmVzdWx0UG9pbnRzLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoY3VycmVudFJlY3RhbmdsZSksICgxIC8gMikgKiBNYXRoLlBJKTtcbiAgICBkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgZGVidWdHZW5lcmF0b3IuZHJhd1JlY3RhbmdsZShib2FyZCwgcmVzdWx0UG9pbnRzLCB7IHN0cm9rZTogJ2JsdWUnIH0pO1xuICAgIHJlc3VsdFBvaW50cyA9IHJlc3VsdFBvaW50cy5tYXAocCA9PiB7XG4gICAgICAgIHJldHVybiBtb3ZlUG9pbnRCeVpvb21BbmRPcmlnaW5Qb2ludChwLCByZXNpemVPcmlnaW5Qb2ludCwgeFpvb20sIHlab29tKTtcbiAgICB9KTtcbiAgICBkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgZGVidWdHZW5lcmF0b3IuZHJhd1JlY3RhbmdsZShib2FyZCwgcmVzdWx0UG9pbnRzKTtcbiAgICBjb25zdCBuZXdSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMocmVzdWx0UG9pbnRzKTtcbiAgICByZXR1cm4gcm90YXRlUG9pbnRzKHJlc3VsdFBvaW50cywgUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KG5ld1JlY3RhbmdsZSksIC0oMSAvIDIpICogTWF0aC5QSSk7XG59O1xuIl19
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kcmF3LXJlc2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL3BsdWdpbnMvd2l0aC1kcmF3LXJlc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUgsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsMkJBQTJCLEVBQzNCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsVUFBVSxFQUNWLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDdkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILFVBQVUsRUFDVixLQUFLLEVBQ0wsZUFBZSxFQUNmLFVBQVUsRUFDVixPQUFPLEVBQ1Asc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixzQkFBc0IsRUFFekIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpELE1BQU0sUUFBUSxHQUFHLGlDQUFpQyxDQUFDO0FBQ25ELE1BQU0sY0FBYyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBU3RELE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBaUI7SUFDNUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUN0RCxJQUFJLEtBQXlCLENBQUM7SUFDOUIsSUFBSSxPQUEyQixDQUFDO0lBQ2hDLElBQUkseUJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBQ3RDLElBQUksa0JBQWtCLEdBQW1CLElBQUksQ0FBQztJQUU5QyxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUU7UUFDbkIsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsT0FBTyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQyxDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQTBDO1FBQ25ELEdBQUcsRUFBRSxlQUFlO1FBQ3BCLFNBQVM7UUFDVCxPQUFPLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUN0QixNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQXVCLENBQUM7WUFDbEUsTUFBTSxpQkFBaUIsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sU0FBUyxHQUFHLDhCQUE4QixDQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekYsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixPQUFPO29CQUNILE9BQU8sRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO29CQUN0QixTQUFTLEVBQUUsaUJBQWlCO29CQUM1QixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07b0JBQ3hCLFdBQVcsRUFBRSxTQUFTLENBQUMsV0FBVztpQkFDckMsQ0FBQztZQUNOLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBQ0QsUUFBUSxFQUFFLENBQUMsU0FBd0MsRUFBRSxXQUF3QixFQUFFLEVBQUU7WUFDN0UsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkQsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0QsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLE9BQU8sSUFBSSxZQUFZLENBQUM7WUFDMUQsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsU0FBVSxDQUFDLENBQUM7WUFDekUsTUFBTSxXQUFXLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdELE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEdBQUcsa0NBQWtDLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsU0FBVSxDQUFDLENBQUM7WUFDbEgsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25ELElBQUksZUFBNEMsQ0FBQztZQUNqRCxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNSLGVBQWUsR0FBRztvQkFDZCxLQUFLLEVBQUUsS0FBSztvQkFDWixPQUFPLEVBQUUsQ0FBQztvQkFDVixPQUFPLEVBQUUsQ0FBQztvQkFDVixjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUN6QixDQUFDO2dCQUNGLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUMsR0FBRyxZQUFZLENBQ3BELENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQzlDLFdBQVcsRUFDWCxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQ3pCLENBQUM7Z0JBQ0YsV0FBVyxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQztnQkFDM0MsV0FBVyxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUM7WUFDMUMsQ0FBQztZQUNELE1BQU0sb0JBQW9CLEdBQUcseUJBQXlCLENBQ2xELEtBQUssRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYO2dCQUNJLFdBQVc7Z0JBQ1gsV0FBVzthQUNkLEVBQ0QsYUFBYSxFQUNiLFlBQVksQ0FDZixDQUFDO1lBQ0YsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUN6RixrQkFBa0IsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQ2hELEtBQUssR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDO1lBQzVCLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFckQsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSx1QkFBdUIsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFVLENBQUMsQ0FBQztnQkFDaEYsTUFBTSw4QkFBOEIsR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ25FLE9BQU8sNkJBQTZCLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkcsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLDhCQUE4QixDQUFDLENBQUM7Z0JBRTVGLGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxjQUFjLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFFcEcsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM1RSxNQUFNLDRCQUE0QixHQUFHLHNCQUFzQixDQUN2RCxlQUFlLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsRUFDN0QsZUFBZSxDQUFDLG9CQUFvQixDQUFDLDhCQUE4QixDQUFDLEVBQ3BFLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsZUFBZSxDQUFDLEtBQUssQ0FDeEIsQ0FBQztnQkFDRixNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JILGVBQWUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRTtvQkFDN0MsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7b0JBQy9DLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO29CQUMvQyxjQUFjLEVBQUUsU0FBUztpQkFDNUIsQ0FBQyxDQUFDO2dCQUVILGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxjQUFjLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO1lBQ2xHLENBQUM7WUFFRCxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDL0IsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2hELElBQUksTUFBTSxDQUFDO2dCQUNYLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ2xCLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM3RixNQUFNLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQVEsRUFBRSxFQUFFO3dCQUNyQyxPQUFPLDZCQUE2QixDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ25HLENBQUMsQ0FBbUIsQ0FBQztvQkFDckIsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3ZDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxlQUFnQixDQUFDLE9BQU87d0JBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxlQUFnQixDQUFDLE9BQU87cUJBQ2xDLENBQVksQ0FBQztvQkFDZCxNQUFNLEdBQUcsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLGNBQWMsRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFtQixDQUFDO2dCQUM1SCxDQUFDO3FCQUFNLENBQUM7b0JBQ0osSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQzt3QkFDeEIseUJBQXlCLEdBQUcsSUFBSSxDQUFDO29CQUNyQyxDQUFDO29CQUNELElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxLQUFNLENBQUMsRUFBRSxDQUFDO3dCQUMvRCxNQUFNLEdBQUcsOEJBQThCLENBQ25DLEtBQUssRUFDTCxNQUFNLENBQUMsTUFBTSxFQUNiLFdBQVcsRUFDWCxhQUFhLENBQUMsS0FBSyxFQUNuQixhQUFhLENBQUMsS0FBSyxDQUN0QixDQUFDO29CQUNOLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzNCLE9BQU8sNkJBQTZCLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDbkcsQ0FBQyxDQUFDLENBQUM7b0JBQ1AsQ0FBQztnQkFDTCxDQUFDO2dCQUVELElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3RDLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQzt3QkFDaEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzt3QkFDcEUsY0FBYyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsTUFBd0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3JGLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixNQUFNLEdBQUcsb0JBQW9CLENBQUMsTUFBd0IsQ0FBQyxDQUFDO3dCQUN4RCxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUNoRCxDQUFDO2dCQUNMLENBQUM7cUJBQU0sSUFBSSxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDOUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztxQkFBTSxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUMxQyxJQUFJLGFBQWEsRUFBRSxDQUFDO3dCQUNoQixVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUNoRCxDQUFDO3lCQUFNLENBQUM7d0JBQ0oscUZBQXFGO3dCQUNyRixNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUM1RSxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO3dCQUNwRSxNQUFNLGNBQWMsR0FBRyw2QkFBNkIsQ0FDaEQsV0FBVyxFQUNYLFdBQVcsRUFDWCxhQUFhLENBQUMsS0FBSyxFQUNuQixhQUFhLENBQUMsS0FBSyxDQUN0QixDQUFDO3dCQUNGLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDLHlCQUF5QixDQUNoRSxjQUFjLEVBQ2QsZUFBZSxDQUFDLEtBQUssRUFDckIsZUFBZSxDQUFDLE1BQU0sQ0FDekIsQ0FBQzt3QkFDRixVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDL0YsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsV0FBVyxFQUFFLENBQUMsU0FBd0MsRUFBRSxFQUFFO1lBQ3RELEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNoQixLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2IsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO2dCQUM1Qix5QkFBeUIsR0FBRyxLQUFLLENBQUM7Z0JBQ2xDLGtCQUFrQixHQUFHLElBQUksQ0FBQztnQkFDMUIsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEQsVUFBVSxDQUFDLGlDQUFpQyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzFFLENBQUM7UUFDTCxDQUFDO0tBQ0osQ0FBQztJQUVGLFVBQVUsQ0FBcUIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRS9DLEtBQUssQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFO1FBQ3JCLFdBQVcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUM7UUFDRCxJQUFJLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxPQUFPLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDcEIsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUF1QixDQUFDO1lBQ2xFLE1BQU0saUJBQWlCLEdBQUcseUJBQXlCO2dCQUMvQyxDQUFDLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLGtCQUFtQixDQUFDO2dCQUMzRCxDQUFDLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNyRCxJQUFJLE9BQU8sR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDakUsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDUixNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3RFLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQWlDLENBQUM7WUFDeEYsQ0FBQztZQUNELE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3BDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsVUFBVSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLHNCQUFzQixHQUFHLEdBQUcsRUFBRTtRQUNoQyxJQUFJLHlCQUF5QixFQUFFLENBQUM7WUFDNUIsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLGtCQUFtQixDQUFDLENBQUM7WUFDNUUsT0FBTyxhQUFhLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLEVBQUU7Z0JBQ2pGLE1BQU0sRUFBRSxzQkFBc0I7Z0JBQzlCLFdBQVcsRUFBRSxtQkFBbUI7YUFDbkMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELE9BQU8sc0JBQXNCLEVBQUUsQ0FBQztJQUNwQyxDQUFDLENBQUM7SUFFRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFdBQW1CLEVBQUUsU0FBMEIsRUFBRSxFQUFFO0lBQ3JILE1BQU0sb0JBQW9CLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sV0FBVyxHQUFHLDJCQUEyQixDQUFDLFNBQTRCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUNwRyxNQUFNLFdBQVcsR0FBRywyQkFBMkIsQ0FBQyxTQUE0QixFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzNGLE9BQU87UUFDSCxXQUFXO1FBQ1gsV0FBVztLQUNkLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FDekIsaUJBQWlDLEVBQ2pDLGlCQUF3QixFQUN4QixpQkFBd0IsRUFDeEIsWUFBcUIsRUFDckIsYUFBc0IsRUFDeEIsRUFBRTtJQUNBLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7SUFDakQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNmLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsSUFBSSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMvRCxLQUFLLEdBQUcsaUJBQWlCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFFLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9ELElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0QsS0FBSyxHQUFHLGlCQUFpQixHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRSxLQUFLLEdBQUcsaUJBQWlCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlFLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNKLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDO1FBQzVGLElBQUksZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdEgsSUFBSSxlQUFlLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0gsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO1FBQ2hELElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNiLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDakIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNmLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDakIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDakIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLENBQVEsRUFBRSxpQkFBd0IsRUFBRSxLQUFhLEVBQUUsS0FBYSxFQUFFLEVBQUU7SUFDOUcsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDdEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDdEQsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBVSxDQUFDO0FBQ3JELENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUMxQyxLQUFpQixFQUNqQixNQUFlLEVBQ2YsaUJBQXdCLEVBQ3hCLEtBQWEsRUFDYixLQUFhLEVBQ2YsRUFBRTtJQUNBLE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RFLGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxjQUFjLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZHLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQztJQUMxQixZQUFZLEdBQUcsWUFBWSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxjQUFjLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRyxZQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNoQyxPQUFPLDZCQUE2QixDQUFDLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0UsQ0FBQyxDQUFDLENBQUM7SUFDSCxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDOUUsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sWUFBWSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3hHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUmVzaXplUmVmLFxuICAgIFJlc2l6ZVN0YXRlLFxuICAgIFdpdGhSZXNpemVPcHRpb25zLFxuICAgIGRyYXdIYW5kbGUsXG4gICAgZ2V0Rmlyc3RUZXh0TWFuYWdlLFxuICAgIGdldEluZGV4QnlSZXNpemVIYW5kbGUsXG4gICAgZ2V0UmVzaXplSGFuZGxlUG9pbnRCeUluZGV4LFxuICAgIGdldFN5bW1ldHJpY0hhbmRsZUluZGV4LFxuICAgIGlzQ29ybmVySGFuZGxlLFxuICAgIHdpdGhSZXNpemUsXG4gICAgcmVzZXRQb2ludHNBZnRlclJlc2l6ZSxcbiAgICBub3JtYWxpemVTaGFwZVBvaW50c1xufSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQb2ludCxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgVHJhbnNmb3JtcyxcbiAgICBjcmVhdGVHLFxuICAgIGdldFJlY3RhbmdsZUJ5RWxlbWVudHMsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICBpc1NlbGVjdGlvbk1vdmluZyxcbiAgICBnZXRTZWxlY3Rpb25BbmdsZSxcbiAgICByb3RhdGVQb2ludHMsXG4gICAgcm90YXRlZERhdGFQb2ludHMsXG4gICAgY3JlYXRlRGVidWdHZW5lcmF0b3IsXG4gICAgaGFzVmFsaWRBbmdsZSxcbiAgICBpc0F4aXNDaGFuZ2VkQnlBbmdsZSxcbiAgICBkcmF3UmVjdGFuZ2xlLFxuICAgIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgU0VMRUNUSU9OX0JPUkRFUl9DT0xPUixcbiAgICBQYXRoXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0RHJhd0VsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IERyYXdUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBnZXRIaXRSZWN0YW5nbGVSZXNpemVIYW5kbGVSZWYgfSBmcm9tICcuLi91dGlscy9wb3NpdGlvbi9nZW9tZXRyeSc7XG5pbXBvcnQgeyBnZXRTbmFwUmVzaXppbmdSZWZPcHRpb25zLCBnZXRTbmFwUmVzaXppbmdSZWYgfSBmcm9tICcuLi91dGlscy9zbmFwLXJlc2l6aW5nJztcbmltcG9ydCB7IGlzR2VvbWV0cnlJbmNsdWRlVGV4dCB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgZGVidWdLZXkgPSAnZGVidWc6cGxhaXQ6cmVzaXplLWZvci1yb3RhdGlvbic7XG5jb25zdCBkZWJ1Z0dlbmVyYXRvciA9IGNyZWF0ZURlYnVnR2VuZXJhdG9yKGRlYnVnS2V5KTtcblxuZXhwb3J0IGludGVyZmFjZSBCdWxrUm90YXRpb25SZWYge1xuICAgIGFuZ2xlOiBudW1iZXI7XG4gICAgb2Zmc2V0WDogbnVtYmVyO1xuICAgIG9mZnNldFk6IG51bWJlcjtcbiAgICBuZXdDZW50ZXJQb2ludDogUG9pbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoRHJhd1Jlc2l6ZShib2FyZDogUGxhaXRCb2FyZCkge1xuICAgIGNvbnN0IHsgYWZ0ZXJDaGFuZ2UsIGRyYXdTZWxlY3Rpb25SZWN0YW5nbGUgfSA9IGJvYXJkO1xuICAgIGxldCBzbmFwRzogU1ZHR0VsZW1lbnQgfCBudWxsO1xuICAgIGxldCBoYW5kbGVHOiBTVkdHRWxlbWVudCB8IG51bGw7XG4gICAgbGV0IG5lZWRDdXN0b21BY3RpdmVSZWN0YW5nbGUgPSBmYWxzZTtcbiAgICBsZXQgcmVzaXplQWN0aXZlUG9pbnRzOiBQb2ludFtdIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdCBjYW5SZXNpemUgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgICAgIHJldHVybiBlbGVtZW50cy5sZW5ndGggPiAxICYmIGVsZW1lbnRzLmV2ZXJ5KGVsID0+IFBsYWl0RHJhd0VsZW1lbnQuaXNEcmF3RWxlbWVudChlbCkpO1xuICAgIH07XG5cbiAgICBjb25zdCBvcHRpb25zOiBXaXRoUmVzaXplT3B0aW9uczxQbGFpdERyYXdFbGVtZW50W10+ID0ge1xuICAgICAgICBrZXk6ICdkcmF3LWVsZW1lbnRzJyxcbiAgICAgICAgY2FuUmVzaXplLFxuICAgICAgICBoaXRUZXN0OiAocG9pbnQ6IFBvaW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpIGFzIFBsYWl0RHJhd0VsZW1lbnRbXTtcbiAgICAgICAgICAgIGNvbnN0IGJvdW5kaW5nUmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgZWxlbWVudHMsIGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnN0IGFuZ2xlID0gZ2V0U2VsZWN0aW9uQW5nbGUoZWxlbWVudHMpO1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlUmVmID0gZ2V0SGl0UmVjdGFuZ2xlUmVzaXplSGFuZGxlUmVmKGJvYXJkLCBib3VuZGluZ1JlY3RhbmdsZSwgcG9pbnQsIGFuZ2xlKTtcbiAgICAgICAgICAgIGlmIChoYW5kbGVSZWYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBbLi4uZWxlbWVudHNdLFxuICAgICAgICAgICAgICAgICAgICByZWN0YW5nbGU6IGJvdW5kaW5nUmVjdGFuZ2xlLFxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU6IGhhbmRsZVJlZi5oYW5kbGUsXG4gICAgICAgICAgICAgICAgICAgIGN1cnNvckNsYXNzOiBoYW5kbGVSZWYuY3Vyc29yQ2xhc3NcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0sXG4gICAgICAgIG9uUmVzaXplOiAocmVzaXplUmVmOiBSZXNpemVSZWY8UGxhaXREcmF3RWxlbWVudFtdPiwgcmVzaXplU3RhdGU6IFJlc2l6ZVN0YXRlKSA9PiB7XG4gICAgICAgICAgICBzbmFwRz8ucmVtb3ZlKCk7XG4gICAgICAgICAgICBkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgZGVidWdHZW5lcmF0b3IuY2xlYXIoKTtcbiAgICAgICAgICAgIGNvbnN0IGlzRnJvbUNvcm5lciA9IGlzQ29ybmVySGFuZGxlKGJvYXJkLCByZXNpemVSZWYuaGFuZGxlKTtcbiAgICAgICAgICAgIGNvbnN0IGlzQXNwZWN0UmF0aW8gPSByZXNpemVTdGF0ZS5pc1NoaWZ0IHx8IGlzRnJvbUNvcm5lcjtcbiAgICAgICAgICAgIGNvbnN0IGNlbnRlclBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KHJlc2l6ZVJlZi5yZWN0YW5nbGUhKTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUluZGV4ID0gZ2V0SW5kZXhCeVJlc2l6ZUhhbmRsZShyZXNpemVSZWYuaGFuZGxlKTtcbiAgICAgICAgICAgIGNvbnN0IHsgb3JpZ2luUG9pbnQsIGhhbmRsZVBvaW50IH0gPSBnZXRSZXNpemVPcmlnaW5Qb2ludEFuZEhhbmRsZVBvaW50KGJvYXJkLCBoYW5kbGVJbmRleCwgcmVzaXplUmVmLnJlY3RhbmdsZSEpO1xuICAgICAgICAgICAgY29uc3QgYW5nbGUgPSBnZXRTZWxlY3Rpb25BbmdsZShyZXNpemVSZWYuZWxlbWVudCk7XG4gICAgICAgICAgICBsZXQgYnVsa1JvdGF0aW9uUmVmOiBCdWxrUm90YXRpb25SZWYgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAoYW5nbGUpIHtcbiAgICAgICAgICAgICAgICBidWxrUm90YXRpb25SZWYgPSB7XG4gICAgICAgICAgICAgICAgICAgIGFuZ2xlOiBhbmdsZSxcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WDogMCxcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WTogMCxcbiAgICAgICAgICAgICAgICAgICAgbmV3Q2VudGVyUG9pbnQ6IFswLCAwXVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgW3JvdGF0ZWRTdGFydFBvaW50LCByb3RhdGVFbmRQb2ludF0gPSByb3RhdGVQb2ludHMoXG4gICAgICAgICAgICAgICAgICAgIFtyZXNpemVTdGF0ZS5zdGFydFBvaW50LCByZXNpemVTdGF0ZS5lbmRQb2ludF0sXG4gICAgICAgICAgICAgICAgICAgIGNlbnRlclBvaW50LFxuICAgICAgICAgICAgICAgICAgICAtYnVsa1JvdGF0aW9uUmVmLmFuZ2xlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXNpemVTdGF0ZS5zdGFydFBvaW50ID0gcm90YXRlZFN0YXJ0UG9pbnQ7XG4gICAgICAgICAgICAgICAgcmVzaXplU3RhdGUuZW5kUG9pbnQgPSByb3RhdGVFbmRQb2ludDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlc2l6ZVNuYXBSZWZPcHRpb25zID0gZ2V0U25hcFJlc2l6aW5nUmVmT3B0aW9ucyhcbiAgICAgICAgICAgICAgICBib2FyZCxcbiAgICAgICAgICAgICAgICByZXNpemVSZWYsXG4gICAgICAgICAgICAgICAgcmVzaXplU3RhdGUsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvcmlnaW5Qb2ludCxcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlUG9pbnRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzQXNwZWN0UmF0aW8sXG4gICAgICAgICAgICAgICAgaXNGcm9tQ29ybmVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgcmVzaXplU25hcFJlZiA9IGdldFNuYXBSZXNpemluZ1JlZihib2FyZCwgcmVzaXplUmVmLmVsZW1lbnQsIHJlc2l6ZVNuYXBSZWZPcHRpb25zKTtcbiAgICAgICAgICAgIHJlc2l6ZUFjdGl2ZVBvaW50cyA9IHJlc2l6ZVNuYXBSZWYuYWN0aXZlUG9pbnRzO1xuICAgICAgICAgICAgc25hcEcgPSByZXNpemVTbmFwUmVmLnNuYXBHO1xuICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdChib2FyZCkuYXBwZW5kKHNuYXBHKTtcblxuICAgICAgICAgICAgaWYgKGJ1bGtSb3RhdGlvblJlZikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJvdW5kaW5nQm94Q29ybmVyUG9pbnRzID0gUmVjdGFuZ2xlQ2xpZW50LmdldFBvaW50cyhyZXNpemVSZWYucmVjdGFuZ2xlISk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzaXplZEJvdW5kaW5nQm94Q29ybmVyUG9pbnRzID0gYm91bmRpbmdCb3hDb3JuZXJQb2ludHMubWFwKHAgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW92ZVBvaW50Qnlab29tQW5kT3JpZ2luUG9pbnQocCwgb3JpZ2luUG9pbnQsIHJlc2l6ZVNuYXBSZWYueFpvb20sIHJlc2l6ZVNuYXBSZWYueVpvb20pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0JvdW5kaW5nQm94ID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKHJlc2l6ZWRCb3VuZGluZ0JveENvcm5lclBvaW50cyk7XG5cbiAgICAgICAgICAgICAgICBkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgZGVidWdHZW5lcmF0b3IuZHJhd1JlY3RhbmdsZShib2FyZCwgbmV3Qm91bmRpbmdCb3gsIHsgc3Ryb2tlOiAnYmx1ZScgfSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBuZXdCb3VuZGluZ0JveENlbnRlciA9IFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludChuZXdCb3VuZGluZ0JveCk7XG4gICAgICAgICAgICAgICAgY29uc3QgYWRqdXN0ZWROZXdCb3VuZGluZ0JveFBvaW50cyA9IHJlc2V0UG9pbnRzQWZ0ZXJSZXNpemUoXG4gICAgICAgICAgICAgICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhib3VuZGluZ0JveENvcm5lclBvaW50cyksXG4gICAgICAgICAgICAgICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhyZXNpemVkQm91bmRpbmdCb3hDb3JuZXJQb2ludHMpLFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXJQb2ludCxcbiAgICAgICAgICAgICAgICAgICAgbmV3Qm91bmRpbmdCb3hDZW50ZXIsXG4gICAgICAgICAgICAgICAgICAgIGJ1bGtSb3RhdGlvblJlZi5hbmdsZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q2VudGVyID0gUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhhZGp1c3RlZE5ld0JvdW5kaW5nQm94UG9pbnRzKSk7XG4gICAgICAgICAgICAgICAgYnVsa1JvdGF0aW9uUmVmID0gT2JqZWN0LmFzc2lnbihidWxrUm90YXRpb25SZWYsIHtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0WDogbmV3Q2VudGVyWzBdIC0gbmV3Qm91bmRpbmdCb3hDZW50ZXJbMF0sXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldFk6IG5ld0NlbnRlclsxXSAtIG5ld0JvdW5kaW5nQm94Q2VudGVyWzFdLFxuICAgICAgICAgICAgICAgICAgICBuZXdDZW50ZXJQb2ludDogbmV3Q2VudGVyXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgZGVidWdHZW5lcmF0b3IuZHJhd1JlY3RhbmdsZShib2FyZCwgYWRqdXN0ZWROZXdCb3VuZGluZ0JveFBvaW50cyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc2l6ZVJlZi5lbGVtZW50LmZvckVhY2godGFyZ2V0ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgdGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBsZXQgcG9pbnRzO1xuICAgICAgICAgICAgICAgIGlmIChidWxrUm90YXRpb25SZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmV2ZXJzZWRQb2ludHMgPSByb3RhdGVkRGF0YVBvaW50cyh0YXJnZXQucG9pbnRzLCBjZW50ZXJQb2ludCwgLWJ1bGtSb3RhdGlvblJlZi5hbmdsZSk7XG4gICAgICAgICAgICAgICAgICAgIHBvaW50cyA9IHJldmVyc2VkUG9pbnRzLm1hcCgocDogUG9pbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtb3ZlUG9pbnRCeVpvb21BbmRPcmlnaW5Qb2ludChwLCBvcmlnaW5Qb2ludCwgcmVzaXplU25hcFJlZi54Wm9vbSwgcmVzaXplU25hcFJlZi55Wm9vbSk7XG4gICAgICAgICAgICAgICAgICAgIH0pIGFzIFtQb2ludCwgUG9pbnRdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGp1c3RUYXJnZXRQb2ludHMgPSBwb2ludHMubWFwKHAgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgcFswXSArIGJ1bGtSb3RhdGlvblJlZiEub2Zmc2V0WCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBbMV0gKyBidWxrUm90YXRpb25SZWYhLm9mZnNldFlcbiAgICAgICAgICAgICAgICAgICAgXSkgYXMgUG9pbnRbXTtcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRzID0gcm90YXRlZERhdGFQb2ludHMoYWRqdXN0VGFyZ2V0UG9pbnRzLCBidWxrUm90YXRpb25SZWYubmV3Q2VudGVyUG9pbnQsIGJ1bGtSb3RhdGlvblJlZi5hbmdsZSkgYXMgW1BvaW50LCBQb2ludF07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1ZhbGlkQW5nbGUodGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZEN1c3RvbUFjdGl2ZVJlY3RhbmdsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1ZhbGlkQW5nbGUodGFyZ2V0KSAmJiBpc0F4aXNDaGFuZ2VkQnlBbmdsZSh0YXJnZXQuYW5nbGUhKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzID0gZ2V0UmVzaXplUG9pbnRzQnlPdGhlcndpc2VBeGlzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvYXJkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5wb2ludHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luUG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaXplU25hcFJlZi54Wm9vbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpemVTbmFwUmVmLnlab29tXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzID0gdGFyZ2V0LnBvaW50cy5tYXAocCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vdmVQb2ludEJ5Wm9vbUFuZE9yaWdpblBvaW50KHAsIG9yaWdpblBvaW50LCByZXNpemVTbmFwUmVmLnhab29tLCByZXNpemVTbmFwUmVmLnlab29tKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNHZW9tZXRyeSh0YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0dlb21ldHJ5SW5jbHVkZVRleHQodGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBoZWlnaHQ6IHRleHRIZWlnaHQgfSA9IGdldEZpcnN0VGV4dE1hbmFnZSh0YXJnZXQpLmdldFNpemUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIERyYXdUcmFuc2Zvcm1zLnJlc2l6ZUdlb21ldHJ5KGJvYXJkLCBwb2ludHMgYXMgW1BvaW50LCBQb2ludF0sIHRleHRIZWlnaHQsIHBhdGgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRzID0gbm9ybWFsaXplU2hhcGVQb2ludHMocG9pbnRzIGFzIFtQb2ludCwgUG9pbnRdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBwb2ludHMgfSwgcGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNBcnJvd0xpbmUodGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGUoYm9hcmQsIHsgcG9pbnRzIH0sIHBhdGgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKHRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQXNwZWN0UmF0aW8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBwb2ludHMgfSwgcGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgaW1hZ2UgZWxlbWVudCBkb2VzIG5vdCBmb2xsb3cgdGhlIHJlc2l6ZSwgYnV0IG1vdmVzIGJhc2VkIG9uIHRoZSBjZW50ZXIgcG9pbnQuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHModGFyZ2V0LnBvaW50cyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjZW50ZXJQb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludCh0YXJnZXRSZWN0YW5nbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3Q2VudGVyUG9pbnQgPSBtb3ZlUG9pbnRCeVpvb21BbmRPcmlnaW5Qb2ludChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZW50ZXJQb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5Qb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpemVTbmFwUmVmLnhab29tLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6ZVNuYXBSZWYueVpvb21cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdUYXJnZXRSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlDZW50ZXJQb2ludChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDZW50ZXJQb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRSZWN0YW5nbGUud2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0UmVjdGFuZ2xlLmhlaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZShib2FyZCwgeyBwb2ludHM6IFJlY3RhbmdsZUNsaWVudC5nZXRQb2ludHMobmV3VGFyZ2V0UmVjdGFuZ2xlKSB9LCBwYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBhZnRlclJlc2l6ZTogKHJlc2l6ZVJlZjogUmVzaXplUmVmPFBsYWl0RHJhd0VsZW1lbnRbXT4pID0+IHtcbiAgICAgICAgICAgIHNuYXBHPy5yZW1vdmUoKTtcbiAgICAgICAgICAgIHNuYXBHID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChuZWVkQ3VzdG9tQWN0aXZlUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICAgICAgbmVlZEN1c3RvbUFjdGl2ZVJlY3RhbmdsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJlc2l6ZUFjdGl2ZVBvaW50cyA9IG51bGw7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuYWRkU2VsZWN0aW9uV2l0aFRlbXBvcmFyeUVsZW1lbnRzKGJvYXJkLCBzZWxlY3RlZEVsZW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB3aXRoUmVzaXplPFBsYWl0RHJhd0VsZW1lbnRbXT4oYm9hcmQsIG9wdGlvbnMpO1xuXG4gICAgYm9hcmQuYWZ0ZXJDaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgIGFmdGVyQ2hhbmdlKCk7XG4gICAgICAgIGlmIChoYW5kbGVHKSB7XG4gICAgICAgICAgICBoYW5kbGVHLnJlbW92ZSgpO1xuICAgICAgICAgICAgaGFuZGxlRyA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhblJlc2l6ZSgpICYmICFpc1NlbGVjdGlvbk1vdmluZyhib2FyZCkpIHtcbiAgICAgICAgICAgIGhhbmRsZUcgPSBjcmVhdGVHKCk7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpIGFzIFBsYWl0RHJhd0VsZW1lbnRbXTtcbiAgICAgICAgICAgIGNvbnN0IGJvdW5kaW5nUmVjdGFuZ2xlID0gbmVlZEN1c3RvbUFjdGl2ZVJlY3RhbmdsZVxuICAgICAgICAgICAgICAgID8gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKHJlc2l6ZUFjdGl2ZVBvaW50cyEpXG4gICAgICAgICAgICAgICAgOiBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBlbGVtZW50cywgZmFsc2UpO1xuICAgICAgICAgICAgbGV0IGNvcm5lcnMgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKGJvdW5kaW5nUmVjdGFuZ2xlKTtcbiAgICAgICAgICAgIGNvbnN0IGFuZ2xlID0gZ2V0U2VsZWN0aW9uQW5nbGUoZWxlbWVudHMpO1xuICAgICAgICAgICAgaWYgKGFuZ2xlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2VudGVyUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoYm91bmRpbmdSZWN0YW5nbGUpO1xuICAgICAgICAgICAgICAgIGNvcm5lcnMgPSByb3RhdGVQb2ludHMoY29ybmVycywgY2VudGVyUG9pbnQsIGFuZ2xlKSBhcyBbUG9pbnQsIFBvaW50LCBQb2ludCwgUG9pbnRdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29ybmVycy5mb3JFYWNoKGNvcm5lciA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZyA9IGRyYXdIYW5kbGUoYm9hcmQsIGNvcm5lcik7XG4gICAgICAgICAgICAgICAgaGFuZGxlRyAmJiBoYW5kbGVHLmFwcGVuZChnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdChib2FyZCkuYXBwZW5kKGhhbmRsZUcpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGJvYXJkLmRyYXdTZWxlY3Rpb25SZWN0YW5nbGUgPSAoKSA9PiB7XG4gICAgICAgIGlmIChuZWVkQ3VzdG9tQWN0aXZlUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMocmVzaXplQWN0aXZlUG9pbnRzISk7XG4gICAgICAgICAgICByZXR1cm4gZHJhd1JlY3RhbmdsZShib2FyZCwgUmVjdGFuZ2xlQ2xpZW50LmluZmxhdGUocmVjdGFuZ2xlLCBBQ1RJVkVfU1RST0tFX1dJRFRIKSwge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogU0VMRUNUSU9OX0JPUkRFUl9DT0xPUixcbiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aDogQUNUSVZFX1NUUk9LRV9XSURUSFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRyYXdTZWxlY3Rpb25SZWN0YW5nbGUoKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0UmVzaXplT3JpZ2luUG9pbnRBbmRIYW5kbGVQb2ludCA9IChib2FyZDogUGxhaXRCb2FyZCwgaGFuZGxlSW5kZXg6IG51bWJlciwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpID0+IHtcbiAgICBjb25zdCBzeW1tZXRyaWNIYW5kbGVJbmRleCA9IGdldFN5bW1ldHJpY0hhbmRsZUluZGV4KGJvYXJkLCBoYW5kbGVJbmRleCk7XG4gICAgY29uc3Qgb3JpZ2luUG9pbnQgPSBnZXRSZXNpemVIYW5kbGVQb2ludEJ5SW5kZXgocmVjdGFuZ2xlIGFzIFJlY3RhbmdsZUNsaWVudCwgc3ltbWV0cmljSGFuZGxlSW5kZXgpO1xuICAgIGNvbnN0IGhhbmRsZVBvaW50ID0gZ2V0UmVzaXplSGFuZGxlUG9pbnRCeUluZGV4KHJlY3RhbmdsZSBhcyBSZWN0YW5nbGVDbGllbnQsIGhhbmRsZUluZGV4KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBvcmlnaW5Qb2ludCxcbiAgICAgICAgaGFuZGxlUG9pbnRcbiAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlc2l6ZVpvb20gPSAoXG4gICAgcmVzaXplU3RhcnRBbmRFbmQ6IFtQb2ludCwgUG9pbnRdLFxuICAgIHJlc2l6ZU9yaWdpblBvaW50OiBQb2ludCxcbiAgICByZXNpemVIYW5kbGVQb2ludDogUG9pbnQsXG4gICAgaXNGcm9tQ29ybmVyOiBib29sZWFuLFxuICAgIGlzQXNwZWN0UmF0aW86IGJvb2xlYW5cbikgPT4ge1xuICAgIGNvbnN0IFtzdGFydFBvaW50LCBlbmRQb2ludF0gPSByZXNpemVTdGFydEFuZEVuZDtcbiAgICBsZXQgeFpvb20gPSAwO1xuICAgIGxldCB5Wm9vbSA9IDA7XG4gICAgaWYgKGlzRnJvbUNvcm5lcikge1xuICAgICAgICBpZiAoaXNBc3BlY3RSYXRpbykge1xuICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWRPZmZzZXRYID0gUG9pbnQuZ2V0T2Zmc2V0WChzdGFydFBvaW50LCBlbmRQb2ludCk7XG4gICAgICAgICAgICB4Wm9vbSA9IG5vcm1hbGl6ZWRPZmZzZXRYIC8gKHJlc2l6ZUhhbmRsZVBvaW50WzBdIC0gcmVzaXplT3JpZ2luUG9pbnRbMF0pO1xuICAgICAgICAgICAgeVpvb20gPSB4Wm9vbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBub3JtYWxpemVkT2Zmc2V0WCA9IFBvaW50LmdldE9mZnNldFgoc3RhcnRQb2ludCwgZW5kUG9pbnQpO1xuICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWRPZmZzZXRZID0gUG9pbnQuZ2V0T2Zmc2V0WShzdGFydFBvaW50LCBlbmRQb2ludCk7XG4gICAgICAgICAgICB4Wm9vbSA9IG5vcm1hbGl6ZWRPZmZzZXRYIC8gKHJlc2l6ZUhhbmRsZVBvaW50WzBdIC0gcmVzaXplT3JpZ2luUG9pbnRbMF0pO1xuICAgICAgICAgICAgeVpvb20gPSBub3JtYWxpemVkT2Zmc2V0WSAvIChyZXNpemVIYW5kbGVQb2ludFsxXSAtIHJlc2l6ZU9yaWdpblBvaW50WzFdKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGlzSG9yaXpvbnRhbCA9IFBvaW50LmlzSG9yaXpvbnRhbChyZXNpemVPcmlnaW5Qb2ludCwgcmVzaXplSGFuZGxlUG9pbnQsIDAuMSkgfHwgZmFsc2U7XG4gICAgICAgIGxldCBub3JtYWxpemVkT2Zmc2V0ID0gaXNIb3Jpem9udGFsID8gUG9pbnQuZ2V0T2Zmc2V0WChzdGFydFBvaW50LCBlbmRQb2ludCkgOiBQb2ludC5nZXRPZmZzZXRZKHN0YXJ0UG9pbnQsIGVuZFBvaW50KTtcbiAgICAgICAgbGV0IGJlbmNobWFya09mZnNldCA9IGlzSG9yaXpvbnRhbCA/IHJlc2l6ZUhhbmRsZVBvaW50WzBdIC0gcmVzaXplT3JpZ2luUG9pbnRbMF0gOiByZXNpemVIYW5kbGVQb2ludFsxXSAtIHJlc2l6ZU9yaWdpblBvaW50WzFdO1xuICAgICAgICBjb25zdCB6b29tID0gbm9ybWFsaXplZE9mZnNldCAvIGJlbmNobWFya09mZnNldDtcbiAgICAgICAgaWYgKGlzQXNwZWN0UmF0aW8pIHtcbiAgICAgICAgICAgIHhab29tID0gem9vbTtcbiAgICAgICAgICAgIHlab29tID0gem9vbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpc0hvcml6b250YWwpIHtcbiAgICAgICAgICAgICAgICB4Wm9vbSA9IHpvb207XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHlab29tID0gem9vbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyB4Wm9vbSwgeVpvb20gfTtcbn07XG5cbmV4cG9ydCBjb25zdCBtb3ZlUG9pbnRCeVpvb21BbmRPcmlnaW5Qb2ludCA9IChwOiBQb2ludCwgcmVzaXplT3JpZ2luUG9pbnQ6IFBvaW50LCB4Wm9vbTogbnVtYmVyLCB5Wm9vbTogbnVtYmVyKSA9PiB7XG4gICAgY29uc3Qgb2Zmc2V0WCA9IChwWzBdIC0gcmVzaXplT3JpZ2luUG9pbnRbMF0pICogeFpvb207XG4gICAgY29uc3Qgb2Zmc2V0WSA9IChwWzFdIC0gcmVzaXplT3JpZ2luUG9pbnRbMV0pICogeVpvb207XG4gICAgcmV0dXJuIFtwWzBdICsgb2Zmc2V0WCwgcFsxXSArIG9mZnNldFldIGFzIFBvaW50O1xufTtcblxuLyoqXG4gKiAxLiBSb3RhdGUgOTDCsFxuICogMi4gU2NhbGUgYmFzZWQgb24gdGhlIHJvdGF0ZWQgcG9pbnRzXG4gKiAzLiBSZXZlcnNlIHJvdGF0ZSB0aGUgc2NhbGVkIHBvaW50cyBieSA5MMKwXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRSZXNpemVQb2ludHNCeU90aGVyd2lzZUF4aXMgPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgcG9pbnRzOiBQb2ludFtdLFxuICAgIHJlc2l6ZU9yaWdpblBvaW50OiBQb2ludCxcbiAgICB4Wm9vbTogbnVtYmVyLFxuICAgIHlab29tOiBudW1iZXJcbikgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMocG9pbnRzKTtcbiAgICBkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgZGVidWdHZW5lcmF0b3IuZHJhd1JlY3RhbmdsZShib2FyZCwgY3VycmVudFJlY3RhbmdsZSwgeyBzdHJva2U6ICdibGFjaycgfSk7XG4gICAgbGV0IHJlc3VsdFBvaW50cyA9IHBvaW50cztcbiAgICByZXN1bHRQb2ludHMgPSByb3RhdGVQb2ludHMocmVzdWx0UG9pbnRzLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoY3VycmVudFJlY3RhbmdsZSksICgxIC8gMikgKiBNYXRoLlBJKTtcbiAgICBkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgZGVidWdHZW5lcmF0b3IuZHJhd1JlY3RhbmdsZShib2FyZCwgcmVzdWx0UG9pbnRzLCB7IHN0cm9rZTogJ2JsdWUnIH0pO1xuICAgIHJlc3VsdFBvaW50cyA9IHJlc3VsdFBvaW50cy5tYXAocCA9PiB7XG4gICAgICAgIHJldHVybiBtb3ZlUG9pbnRCeVpvb21BbmRPcmlnaW5Qb2ludChwLCByZXNpemVPcmlnaW5Qb2ludCwgeFpvb20sIHlab29tKTtcbiAgICB9KTtcbiAgICBkZWJ1Z0dlbmVyYXRvci5pc0RlYnVnKCkgJiYgZGVidWdHZW5lcmF0b3IuZHJhd1JlY3RhbmdsZShib2FyZCwgcmVzdWx0UG9pbnRzKTtcbiAgICBjb25zdCBuZXdSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMocmVzdWx0UG9pbnRzKTtcbiAgICByZXR1cm4gcm90YXRlUG9pbnRzKHJlc3VsdFBvaW50cywgUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KG5ld1JlY3RhbmdsZSksIC0oMSAvIDIpICogTWF0aC5QSSk7XG59O1xuIl19
|
|
@@ -3,7 +3,7 @@ import { addRotating, removeRotating, drawRotateHandle } from '@plait/common';
|
|
|
3
3
|
import { PlaitDrawElement } from '../interfaces';
|
|
4
4
|
import { getRotateHandleRectangle } from '../utils/position/geometry';
|
|
5
5
|
export const withDrawRotate = (board) => {
|
|
6
|
-
const { pointerDown, pointerMove, globalPointerUp, afterChange,
|
|
6
|
+
const { pointerDown, pointerMove, globalPointerUp, afterChange, drawSelectionRectangle } = board;
|
|
7
7
|
let rotateRef = null;
|
|
8
8
|
let rotateHandleG;
|
|
9
9
|
let needCustomActiveRectangle = false;
|
|
@@ -106,7 +106,7 @@ export const withDrawRotate = (board) => {
|
|
|
106
106
|
PlaitBoard.getElementActiveHost(board).append(rotateHandleG);
|
|
107
107
|
}
|
|
108
108
|
};
|
|
109
|
-
board.
|
|
109
|
+
board.drawSelectionRectangle = () => {
|
|
110
110
|
if (needCustomActiveRectangle && rotateRef) {
|
|
111
111
|
const rectangle = getRectangleByElements(board, rotateRef.elements, false);
|
|
112
112
|
const rectangleG = drawRectangle(board, RectangleClient.inflate(rectangle, ACTIVE_STROKE_WIDTH), {
|
|
@@ -119,8 +119,8 @@ export const withDrawRotate = (board) => {
|
|
|
119
119
|
}
|
|
120
120
|
return rectangleG;
|
|
121
121
|
}
|
|
122
|
-
return
|
|
122
|
+
return drawSelectionRectangle();
|
|
123
123
|
};
|
|
124
124
|
return board;
|
|
125
125
|
};
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kcmF3LXJvdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL3BsdWdpbnMvd2l0aC1kcmF3LXJvdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsT0FBTyxFQUNQLFVBQVUsRUFDVixlQUFlLEVBQ2YsVUFBVSxFQUVWLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixXQUFXLEVBQ1gsV0FBVyxFQUNYLGNBQWMsRUFDZCxhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osY0FBYyxFQUNkLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsOEJBQThCLEVBQzlCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDbkIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQWMsZ0JBQWdCLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDaEQsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUM5RixJQUFJLFNBQVMsR0FBcUIsSUFBSSxDQUFDO0lBQ3ZDLElBQUksYUFBaUMsQ0FBQztJQUN0QyxJQUFJLHlCQUF5QixHQUFHLEtBQUssQ0FBQztJQUV0QyxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUU7UUFDbkIsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsT0FBTyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hILENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7UUFDeEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEgsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUF1QixDQUFDO1FBQ2xFLE1BQU0saUJBQWlCLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RSxNQUFNLGVBQWUsR0FBRyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3BILElBQUksZUFBZSxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUNoSSxTQUFTLEdBQUc7Z0JBQ1IsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFVBQVUsRUFBRSxLQUFLO2FBQ3BCLENBQUM7UUFDTixDQUFDO1FBQ0QsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxLQUFtQixFQUFFLEVBQUU7UUFDeEMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNqQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdFLE1BQU0sa0JBQWtCLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEYsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDaEYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDMUUseUJBQXlCLEdBQUcsSUFBSSxDQUFDO1lBQ3JDLENBQUM7WUFFRCxXQUFXLENBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtnQkFDMUMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNwQyxJQUFJLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO29CQUN4RixNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzdELEtBQUssR0FBRyxjQUFjLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDO29CQUMvQyxJQUFJLE9BQU8sRUFBRSxDQUFDO3dCQUNWLEtBQUssSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQzFCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO29CQUNwQyxDQUFDO29CQUVELElBQUksU0FBUyxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLElBQUksSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsU0FBUyxJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ2pELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQzt3QkFDMUMsS0FBSyxJQUFJLFNBQVMsQ0FBQztvQkFDdkIsQ0FBQztvQkFFRCxJQUFJLFNBQVMsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNuQyxNQUFNLFNBQVMsR0FBRyxDQUFDLFNBQVMsQ0FBQzt3QkFDN0IsS0FBSyxJQUFJLFNBQVMsQ0FBQztvQkFDdkIsQ0FBQztvQkFFRCxTQUFTLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM5RCxjQUFjLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMzRCxVQUFVLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUMxRSxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPO1FBQ1gsQ0FBQztRQUVELFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDLENBQUM7SUFFRixLQUFLLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBbUIsRUFBRSxFQUFFO1FBQzVDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLHlCQUF5QixFQUFFLENBQUM7WUFDNUIseUJBQXlCLEdBQUcsS0FBSyxDQUFDO1lBQ2xDLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsVUFBVSxDQUFDLGlDQUFpQyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzFFLENBQUM7UUFDRCxVQUFVLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3pFLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLFdBQVcsR0FBRyxHQUFHLEVBQUU7UUFDckIsV0FBVyxFQUFFLENBQUM7UUFDZCxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QixhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxJQUFJLHlCQUF5QixJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUN6QyxNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNuRixhQUFhLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLENBQUM7Z0JBQzNELGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7Z0JBQ3RELElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNsQixZQUFZLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BHLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUF1QixDQUFDO2dCQUNsRSxNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3pFLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztnQkFDM0QsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztnQkFDdEQsWUFBWSxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNoSCxDQUFDO1lBQ0QsVUFBVSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLG1CQUFtQixHQUFHLEdBQUcsRUFBRTtRQUM3QixJQUFJLHlCQUF5QixJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNFLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsRUFBRTtnQkFDN0YsTUFBTSxFQUFFLHNCQUFzQjtnQkFDOUIsV0FBVyxFQUFFLG1CQUFtQjthQUNuQyxDQUFDLENBQUM7WUFDSCxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1lBQ3pELElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsQixZQUFZLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pGLENBQUM7WUFDRCxPQUFPLFVBQVUsQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTyxtQkFBbUIsRUFBRSxDQUFDO0lBQ2pDLENBQUMsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgTUVSR0lORyxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBUcmFuc2Zvcm1zLFxuICAgIGNyZWF0ZUcsXG4gICAgZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyxcbiAgICBnZXRTZWxlY3RlZEVsZW1lbnRzLFxuICAgIGdldFNlbGVjdGlvbkFuZ2xlLFxuICAgIGlzTWFpblBvaW50ZXIsXG4gICAgaXNTZWxlY3Rpb25Nb3ZpbmcsXG4gICAgcHJldmVudFRvdWNoTW92ZSxcbiAgICByb3RhdGVQb2ludHMsXG4gICAgdGhyb3R0bGVSQUYsXG4gICAgdG9Ib3N0UG9pbnQsXG4gICAgdG9WaWV3Qm94UG9pbnQsXG4gICAgZHJhd1JlY3RhbmdsZSxcbiAgICBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIFNFTEVDVElPTl9CT1JERVJfQ09MT1IsXG4gICAgc2V0QW5nbGVGb3JHLFxuICAgIHJvdGF0ZUVsZW1lbnRzLFxuICAgIGdldEFuZ2xlQmV0d2VlblBvaW50cyxcbiAgICBST1RBVEVfSEFORExFX0NMQVNTX05BTUUsXG4gICAgU0VMRUNUSU9OX1JFQ1RBTkdMRV9DTEFTU19OQU1FLFxuICAgIG5vcm1hbGl6ZUFuZ2xlLFxuICAgIGRlZ3JlZXNUb1JhZGlhbnNcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgYWRkUm90YXRpbmcsIHJlbW92ZVJvdGF0aW5nLCBkcmF3SGFuZGxlLCBkcmF3Um90YXRlSGFuZGxlLCBpc1JvdGF0aW5nLCBSb3RhdGVSZWYgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IFBsYWl0RHJhd0VsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldFJvdGF0ZUhhbmRsZVJlY3RhbmdsZSB9IGZyb20gJy4uL3V0aWxzL3Bvc2l0aW9uL2dlb21ldHJ5JztcblxuZXhwb3J0IGNvbnN0IHdpdGhEcmF3Um90YXRlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgeyBwb2ludGVyRG93biwgcG9pbnRlck1vdmUsIGdsb2JhbFBvaW50ZXJVcCwgYWZ0ZXJDaGFuZ2UsIGRyYXdBY3RpdmVSZWN0YW5nbGUgfSA9IGJvYXJkO1xuICAgIGxldCByb3RhdGVSZWY6IFJvdGF0ZVJlZiB8IG51bGwgPSBudWxsO1xuICAgIGxldCByb3RhdGVIYW5kbGVHOiBTVkdHRWxlbWVudCB8IG51bGw7XG4gICAgbGV0IG5lZWRDdXN0b21BY3RpdmVSZWN0YW5nbGUgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNhblJvdGF0ZSA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmxlbmd0aCA+IDAgJiYgZWxlbWVudHMuZXZlcnkoZWwgPT4gUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KGVsKSB8fCBQbGFpdERyYXdFbGVtZW50LmlzSW1hZ2UoZWwpKTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIWNhblJvdGF0ZSgpIHx8IFBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkgfHwgUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcoYm9hcmQpIHx8ICFpc01haW5Qb2ludGVyKGV2ZW50KSkge1xuICAgICAgICAgICAgcG9pbnRlckRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvaW50ID0gdG9WaWV3Qm94UG9pbnQoYm9hcmQsIHRvSG9zdFBvaW50KGJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCkgYXMgUGxhaXREcmF3RWxlbWVudFtdO1xuICAgICAgICBjb25zdCBib3VuZGluZ1JlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIGVsZW1lbnRzLCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IGhhbmRsZVJlY3RhbmdsZSA9IGdldFJvdGF0ZUhhbmRsZVJlY3RhbmdsZShib3VuZGluZ1JlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IGFuZ2xlID0gZ2V0U2VsZWN0aW9uQW5nbGUoZWxlbWVudHMpO1xuICAgICAgICBjb25zdCByb3RhdGVkUG9pbnQgPSBhbmdsZSA/IHJvdGF0ZVBvaW50cyhwb2ludCwgUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KGJvdW5kaW5nUmVjdGFuZ2xlKSwgLWFuZ2xlKSA6IHBvaW50O1xuICAgICAgICBpZiAoaGFuZGxlUmVjdGFuZ2xlICYmIFJlY3RhbmdsZUNsaWVudC5pc0hpdChSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3JvdGF0ZWRQb2ludCwgcm90YXRlZFBvaW50XSksIGhhbmRsZVJlY3RhbmdsZSkpIHtcbiAgICAgICAgICAgIHJvdGF0ZVJlZiA9IHtcbiAgICAgICAgICAgICAgICBlbGVtZW50czogZWxlbWVudHMsXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludDogcG9pbnRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcG9pbnRlckRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5wb2ludGVyTW92ZSA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChyb3RhdGVSZWYpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBpc1NoaWZ0ID0gISFldmVudC5zaGlmdEtleTtcbiAgICAgICAgICAgIGFkZFJvdGF0aW5nKGJvYXJkLCByb3RhdGVSZWYpO1xuICAgICAgICAgICAgY29uc3QgZW5kUG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvblJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIHJvdGF0ZVJlZi5lbGVtZW50cywgZmFsc2UpO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uQ2VudGVyUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoc2VsZWN0aW9uUmVjdGFuZ2xlKTtcbiAgICAgICAgICAgIGlmICghZ2V0U2VsZWN0aW9uQW5nbGUocm90YXRlUmVmLmVsZW1lbnRzKSAmJiByb3RhdGVSZWYuZWxlbWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIG5lZWRDdXN0b21BY3RpdmVSZWN0YW5nbGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aHJvdHRsZVJBRihib2FyZCwgJ3dpdGgtY29tbW9uLXJvdGF0ZScsICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocm90YXRlUmVmICYmIHJvdGF0ZVJlZi5zdGFydFBvaW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBhbmdsZSA9IGdldEFuZ2xlQmV0d2VlblBvaW50cyhyb3RhdGVSZWYuc3RhcnRQb2ludCwgZW5kUG9pbnQsIHNlbGVjdGlvbkNlbnRlclBvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uQW5nbGUgPSBnZXRTZWxlY3Rpb25BbmdsZShyb3RhdGVSZWYuZWxlbWVudHMpO1xuICAgICAgICAgICAgICAgICAgICBhbmdsZSA9IG5vcm1hbGl6ZUFuZ2xlKHNlbGVjdGlvbkFuZ2xlICsgYW5nbGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNTaGlmdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGUgKz0gTWF0aC5QSSAvIDEyIC8gMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZ2xlIC09IGFuZ2xlICUgKE1hdGguUEkgLyAxMik7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsZXQgcmVtYWluZGVyID0gYW5nbGUgJSAoTWF0aC5QSSAvIDIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoTWF0aC5QSSAvIDIgLSByZW1haW5kZXIgPD0gZGVncmVlc1RvUmFkaWFucyg1KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc25hcEFuZ2xlID0gTWF0aC5QSSAvIDIgLSByZW1haW5kZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmdsZSArPSBzbmFwQW5nbGU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVtYWluZGVyIDw9IGRlZ3JlZXNUb1JhZGlhbnMoNSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNuYXBBbmdsZSA9IC1yZW1haW5kZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmdsZSArPSBzbmFwQW5nbGU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByb3RhdGVSZWYuYW5nbGUgPSBub3JtYWxpemVBbmdsZShhbmdsZSAtIHNlbGVjdGlvbkFuZ2xlKSB8fCAwO1xuICAgICAgICAgICAgICAgICAgICByb3RhdGVFbGVtZW50cyhib2FyZCwgcm90YXRlUmVmLmVsZW1lbnRzLCByb3RhdGVSZWYuYW5nbGUpO1xuICAgICAgICAgICAgICAgICAgICBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5jbGFzc0xpc3QuYWRkKCdlbGVtZW50LXJvdGF0aW5nJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBwb2ludGVyTW92ZShldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgICAgIGlmIChuZWVkQ3VzdG9tQWN0aXZlUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICBuZWVkQ3VzdG9tQWN0aXZlUmVjdGFuZ2xlID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmFkZFNlbGVjdGlvbldpdGhUZW1wb3JhcnlFbGVtZW50cyhib2FyZCwgc2VsZWN0ZWRFbGVtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZSgnZWxlbWVudC1yb3RhdGluZycpO1xuICAgICAgICByZW1vdmVSb3RhdGluZyhib2FyZCk7XG4gICAgICAgIHJvdGF0ZVJlZiA9IG51bGw7XG4gICAgICAgIE1FUkdJTkcuc2V0KGJvYXJkLCBmYWxzZSk7XG4gICAgICAgIHByZXZlbnRUb3VjaE1vdmUoYm9hcmQsIGV2ZW50LCBmYWxzZSk7XG4gICAgfTtcblxuICAgIGJvYXJkLmFmdGVyQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgICBhZnRlckNoYW5nZSgpO1xuICAgICAgICBpZiAocm90YXRlSGFuZGxlRykge1xuICAgICAgICAgICAgcm90YXRlSGFuZGxlRy5yZW1vdmUoKTtcbiAgICAgICAgICAgIHJvdGF0ZUhhbmRsZUcgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNhblJvdGF0ZSgpICYmICFpc1NlbGVjdGlvbk1vdmluZyhib2FyZCkpIHtcbiAgICAgICAgICAgIGlmIChuZWVkQ3VzdG9tQWN0aXZlUmVjdGFuZ2xlICYmIHJvdGF0ZVJlZikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJvdW5kaW5nUmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgcm90YXRlUmVmLmVsZW1lbnRzLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgcm90YXRlSGFuZGxlRyA9IGRyYXdSb3RhdGVIYW5kbGUoYm9hcmQsIGJvdW5kaW5nUmVjdGFuZ2xlKTtcbiAgICAgICAgICAgICAgICByb3RhdGVIYW5kbGVHLmNsYXNzTGlzdC5hZGQoUk9UQVRFX0hBTkRMRV9DTEFTU19OQU1FKTtcbiAgICAgICAgICAgICAgICBpZiAocm90YXRlUmVmLmFuZ2xlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldEFuZ2xlRm9yRyhyb3RhdGVIYW5kbGVHLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoYm91bmRpbmdSZWN0YW5nbGUpLCByb3RhdGVSZWYuYW5nbGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKSBhcyBQbGFpdERyYXdFbGVtZW50W107XG4gICAgICAgICAgICAgICAgY29uc3QgYm91bmRpbmdSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBlbGVtZW50cywgZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJvdGF0ZUhhbmRsZUcgPSBkcmF3Um90YXRlSGFuZGxlKGJvYXJkLCBib3VuZGluZ1JlY3RhbmdsZSk7XG4gICAgICAgICAgICAgICAgcm90YXRlSGFuZGxlRy5jbGFzc0xpc3QuYWRkKFJPVEFURV9IQU5ETEVfQ0xBU1NfTkFNRSk7XG4gICAgICAgICAgICAgICAgc2V0QW5nbGVGb3JHKHJvdGF0ZUhhbmRsZUcsIFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludChib3VuZGluZ1JlY3RhbmdsZSksIGdldFNlbGVjdGlvbkFuZ2xlKGVsZW1lbnRzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KGJvYXJkKS5hcHBlbmQocm90YXRlSGFuZGxlRyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgYm9hcmQuZHJhd0FjdGl2ZVJlY3RhbmdsZSA9ICgpID0+IHtcbiAgICAgICAgaWYgKG5lZWRDdXN0b21BY3RpdmVSZWN0YW5nbGUgJiYgcm90YXRlUmVmKSB7XG4gICAgICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCByb3RhdGVSZWYuZWxlbWVudHMsIGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnN0IHJlY3RhbmdsZUcgPSBkcmF3UmVjdGFuZ2xlKGJvYXJkLCBSZWN0YW5nbGVDbGllbnQuaW5mbGF0ZShyZWN0YW5nbGUsIEFDVElWRV9TVFJPS0VfV0lEVEgpLCB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiBTRUxFQ1RJT05fQk9SREVSX0NPTE9SLFxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBBQ1RJVkVfU1RST0tFX1dJRFRIXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlY3RhbmdsZUcuY2xhc3NMaXN0LmFkZChTRUxFQ1RJT05fUkVDVEFOR0xFX0NMQVNTX05BTUUpO1xuICAgICAgICAgICAgaWYgKHJvdGF0ZVJlZi5hbmdsZSkge1xuICAgICAgICAgICAgICAgIHNldEFuZ2xlRm9yRyhyZWN0YW5nbGVHLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQocmVjdGFuZ2xlKSwgcm90YXRlUmVmLmFuZ2xlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZWN0YW5nbGVHO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkcmF3QWN0aXZlUmVjdGFuZ2xlKCk7XG4gICAgfTtcblxuICAgIHJldHVybiBib2FyZDtcbn07XG4iXX0=
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kcmF3LXJvdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL3BsdWdpbnMvd2l0aC1kcmF3LXJvdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsT0FBTyxFQUNQLFVBQVUsRUFDVixlQUFlLEVBQ2YsVUFBVSxFQUVWLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixXQUFXLEVBQ1gsV0FBVyxFQUNYLGNBQWMsRUFDZCxhQUFhLEVBQ2IsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osY0FBYyxFQUNkLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsOEJBQThCLEVBQzlCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDbkIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQWMsZ0JBQWdCLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDaEQsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNqRyxJQUFJLFNBQVMsR0FBcUIsSUFBSSxDQUFDO0lBQ3ZDLElBQUksYUFBaUMsQ0FBQztJQUN0QyxJQUFJLHlCQUF5QixHQUFHLEtBQUssQ0FBQztJQUV0QyxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUU7UUFDbkIsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxD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QUFzQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNFLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsRUFBRTtnQkFDN0YsTUFBTSxFQUFFLHNCQUFzQjtnQkFDOUIsV0FBVyxFQUFFLG1CQUFtQjthQUNuQyxDQUFDLENBQUM7WUFDSCxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1lBQ3pELElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNsQixZQUFZLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pGLENBQUM7WUFDRCxPQUFPLFVBQVUsQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3BDLENBQUMsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgTUVSR0lORyxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBUcmFuc2Zvcm1zLFxuICAgIGNyZWF0ZUcsXG4gICAgZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyxcbiAgICBnZXRTZWxlY3RlZEVsZW1lbnRzLFxuICAgIGdldFNlbGVjdGlvbkFuZ2xlLFxuICAgIGlzTWFpblBvaW50ZXIsXG4gICAgaXNTZWxlY3Rpb25Nb3ZpbmcsXG4gICAgcHJldmVudFRvdWNoTW92ZSxcbiAgICByb3RhdGVQb2ludHMsXG4gICAgdGhyb3R0bGVSQUYsXG4gICAgdG9Ib3N0UG9pbnQsXG4gICAgdG9WaWV3Qm94UG9pbnQsXG4gICAgZHJhd1JlY3RhbmdsZSxcbiAgICBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIFNFTEVDVElPTl9CT1JERVJfQ09MT1IsXG4gICAgc2V0QW5nbGVGb3JHLFxuICAgIHJvdGF0ZUVsZW1lbnRzLFxuICAgIGdldEFuZ2xlQmV0d2VlblBvaW50cyxcbiAgICBST1RBVEVfSEFORExFX0NMQVNTX05BTUUsXG4gICAgU0VMRUNUSU9OX1JFQ1RBTkdMRV9DTEFTU19OQU1FLFxuICAgIG5vcm1hbGl6ZUFuZ2xlLFxuICAgIGRlZ3JlZXNUb1JhZGlhbnNcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgYWRkUm90YXRpbmcsIHJlbW92ZVJvdGF0aW5nLCBkcmF3SGFuZGxlLCBkcmF3Um90YXRlSGFuZGxlLCBpc1JvdGF0aW5nLCBSb3RhdGVSZWYgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IFBsYWl0RHJhd0VsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldFJvdGF0ZUhhbmRsZVJlY3RhbmdsZSB9IGZyb20gJy4uL3V0aWxzL3Bvc2l0aW9uL2dlb21ldHJ5JztcblxuZXhwb3J0IGNvbnN0IHdpdGhEcmF3Um90YXRlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3QgeyBwb2ludGVyRG93biwgcG9pbnRlck1vdmUsIGdsb2JhbFBvaW50ZXJVcCwgYWZ0ZXJDaGFuZ2UsIGRyYXdTZWxlY3Rpb25SZWN0YW5nbGUgfSA9IGJvYXJkO1xuICAgIGxldCByb3RhdGVSZWY6IFJvdGF0ZVJlZiB8IG51bGwgPSBudWxsO1xuICAgIGxldCByb3RhdGVIYW5kbGVHOiBTVkdHRWxlbWVudCB8IG51bGw7XG4gICAgbGV0IG5lZWRDdXN0b21BY3RpdmVSZWN0YW5nbGUgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNhblJvdGF0ZSA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmxlbmd0aCA+IDAgJiYgZWxlbWVudHMuZXZlcnkoZWwgPT4gUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KGVsKSB8fCBQbGFpdERyYXdFbGVtZW50LmlzSW1hZ2UoZWwpKTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIWNhblJvdGF0ZSgpIHx8IFBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkgfHwgUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcoYm9hcmQpIHx8ICFpc01haW5Qb2ludGVyKGV2ZW50KSkge1xuICAgICAgICAgICAgcG9pbnRlckRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvaW50ID0gdG9WaWV3Qm94UG9pbnQoYm9hcmQsIHRvSG9zdFBvaW50KGJvYXJkLCBldmVudC54LCBldmVudC55KSk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCkgYXMgUGxhaXREcmF3RWxlbWVudFtdO1xuICAgICAgICBjb25zdCBib3VuZGluZ1JlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIGVsZW1lbnRzLCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IGhhbmRsZVJlY3RhbmdsZSA9IGdldFJvdGF0ZUhhbmRsZVJlY3RhbmdsZShib3VuZGluZ1JlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IGFuZ2xlID0gZ2V0U2VsZWN0aW9uQW5nbGUoZWxlbWVudHMpO1xuICAgICAgICBjb25zdCByb3RhdGVkUG9pbnQgPSBhbmdsZSA/IHJvdGF0ZVBvaW50cyhwb2ludCwgUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KGJvdW5kaW5nUmVjdGFuZ2xlKSwgLWFuZ2xlKSA6IHBvaW50O1xuICAgICAgICBpZiAoaGFuZGxlUmVjdGFuZ2xlICYmIFJlY3RhbmdsZUNsaWVudC5pc0hpdChSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3JvdGF0ZWRQb2ludCwgcm90YXRlZFBvaW50XSksIGhhbmRsZVJlY3RhbmdsZSkpIHtcbiAgICAgICAgICAgIHJvdGF0ZVJlZiA9IHtcbiAgICAgICAgICAgICAgICBlbGVtZW50czogZWxlbWVudHMsXG4gICAgICAgICAgICAgICAgc3RhcnRQb2ludDogcG9pbnRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcG9pbnRlckRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5wb2ludGVyTW92ZSA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChyb3RhdGVSZWYpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBpc1NoaWZ0ID0gISFldmVudC5zaGlmdEtleTtcbiAgICAgICAgICAgIGFkZFJvdGF0aW5nKGJvYXJkLCByb3RhdGVSZWYpO1xuICAgICAgICAgICAgY29uc3QgZW5kUG9pbnQgPSB0b1ZpZXdCb3hQb2ludChib2FyZCwgdG9Ib3N0UG9pbnQoYm9hcmQsIGV2ZW50LngsIGV2ZW50LnkpKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvblJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIHJvdGF0ZVJlZi5lbGVtZW50cywgZmFsc2UpO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uQ2VudGVyUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoc2VsZWN0aW9uUmVjdGFuZ2xlKTtcbiAgICAgICAgICAgIGlmICghZ2V0U2VsZWN0aW9uQW5nbGUocm90YXRlUmVmLmVsZW1lbnRzKSAmJiByb3RhdGVSZWYuZWxlbWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIG5lZWRDdXN0b21BY3RpdmVSZWN0YW5nbGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aHJvdHRsZVJBRihib2FyZCwgJ3dpdGgtY29tbW9uLXJvdGF0ZScsICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocm90YXRlUmVmICYmIHJvdGF0ZVJlZi5zdGFydFBvaW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBhbmdsZSA9IGdldEFuZ2xlQmV0d2VlblBvaW50cyhyb3RhdGVSZWYuc3RhcnRQb2ludCwgZW5kUG9pbnQsIHNlbGVjdGlvbkNlbnRlclBvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uQW5nbGUgPSBnZXRTZWxlY3Rpb25BbmdsZShyb3RhdGVSZWYuZWxlbWVudHMpO1xuICAgICAgICAgICAgICAgICAgICBhbmdsZSA9IG5vcm1hbGl6ZUFuZ2xlKHNlbGVjdGlvbkFuZ2xlICsgYW5nbGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNTaGlmdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGUgKz0gTWF0aC5QSSAvIDEyIC8gMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZ2xlIC09IGFuZ2xlICUgKE1hdGguUEkgLyAxMik7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsZXQgcmVtYWluZGVyID0gYW5nbGUgJSAoTWF0aC5QSSAvIDIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoTWF0aC5QSSAvIDIgLSByZW1haW5kZXIgPD0gZGVncmVlc1RvUmFkaWFucyg1KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc25hcEFuZ2xlID0gTWF0aC5QSSAvIDIgLSByZW1haW5kZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmdsZSArPSBzbmFwQW5nbGU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVtYWluZGVyIDw9IGRlZ3JlZXNUb1JhZGlhbnMoNSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNuYXBBbmdsZSA9IC1yZW1haW5kZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmdsZSArPSBzbmFwQW5nbGU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByb3RhdGVSZWYuYW5nbGUgPSBub3JtYWxpemVBbmdsZShhbmdsZSAtIHNlbGVjdGlvbkFuZ2xlKSB8fCAwO1xuICAgICAgICAgICAgICAgICAgICByb3RhdGVFbGVtZW50cyhib2FyZCwgcm90YXRlUmVmLmVsZW1lbnRzLCByb3RhdGVSZWYuYW5nbGUpO1xuICAgICAgICAgICAgICAgICAgICBQbGFpdEJvYXJkLmdldEJvYXJkQ29udGFpbmVyKGJvYXJkKS5jbGFzc0xpc3QuYWRkKCdlbGVtZW50LXJvdGF0aW5nJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBwb2ludGVyTW92ZShldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLmdsb2JhbFBvaW50ZXJVcCA9IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgIGdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgICAgIGlmIChuZWVkQ3VzdG9tQWN0aXZlUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICBuZWVkQ3VzdG9tQWN0aXZlUmVjdGFuZ2xlID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLmFkZFNlbGVjdGlvbldpdGhUZW1wb3JhcnlFbGVtZW50cyhib2FyZCwgc2VsZWN0ZWRFbGVtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZSgnZWxlbWVudC1yb3RhdGluZycpO1xuICAgICAgICByZW1vdmVSb3RhdGluZyhib2FyZCk7XG4gICAgICAgIHJvdGF0ZVJlZiA9IG51bGw7XG4gICAgICAgIE1FUkdJTkcuc2V0KGJvYXJkLCBmYWxzZSk7XG4gICAgICAgIHByZXZlbnRUb3VjaE1vdmUoYm9hcmQsIGV2ZW50LCBmYWxzZSk7XG4gICAgfTtcblxuICAgIGJvYXJkLmFmdGVyQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgICBhZnRlckNoYW5nZSgpO1xuICAgICAgICBpZiAocm90YXRlSGFuZGxlRykge1xuICAgICAgICAgICAgcm90YXRlSGFuZGxlRy5yZW1vdmUoKTtcbiAgICAgICAgICAgIHJvdGF0ZUhhbmRsZUcgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNhblJvdGF0ZSgpICYmICFpc1NlbGVjdGlvbk1vdmluZyhib2FyZCkpIHtcbiAgICAgICAgICAgIGlmIChuZWVkQ3VzdG9tQWN0aXZlUmVjdGFuZ2xlICYmIHJvdGF0ZVJlZikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJvdW5kaW5nUmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgcm90YXRlUmVmLmVsZW1lbnRzLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgcm90YXRlSGFuZGxlRyA9IGRyYXdSb3RhdGVIYW5kbGUoYm9hcmQsIGJvdW5kaW5nUmVjdGFuZ2xlKTtcbiAgICAgICAgICAgICAgICByb3RhdGVIYW5kbGVHLmNsYXNzTGlzdC5hZGQoUk9UQVRFX0hBTkRMRV9DTEFTU19OQU1FKTtcbiAgICAgICAgICAgICAgICBpZiAocm90YXRlUmVmLmFuZ2xlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldEFuZ2xlRm9yRyhyb3RhdGVIYW5kbGVHLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoYm91bmRpbmdSZWN0YW5nbGUpLCByb3RhdGVSZWYuYW5nbGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKSBhcyBQbGFpdERyYXdFbGVtZW50W107XG4gICAgICAgICAgICAgICAgY29uc3QgYm91bmRpbmdSZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCBlbGVtZW50cywgZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJvdGF0ZUhhbmRsZUcgPSBkcmF3Um90YXRlSGFuZGxlKGJvYXJkLCBib3VuZGluZ1JlY3RhbmdsZSk7XG4gICAgICAgICAgICAgICAgcm90YXRlSGFuZGxlRy5jbGFzc0xpc3QuYWRkKFJPVEFURV9IQU5ETEVfQ0xBU1NfTkFNRSk7XG4gICAgICAgICAgICAgICAgc2V0QW5nbGVGb3JHKHJvdGF0ZUhhbmRsZUcsIFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludChib3VuZGluZ1JlY3RhbmdsZSksIGdldFNlbGVjdGlvbkFuZ2xlKGVsZW1lbnRzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KGJvYXJkKS5hcHBlbmQocm90YXRlSGFuZGxlRyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgYm9hcmQuZHJhd1NlbGVjdGlvblJlY3RhbmdsZSA9ICgpID0+IHtcbiAgICAgICAgaWYgKG5lZWRDdXN0b21BY3RpdmVSZWN0YW5nbGUgJiYgcm90YXRlUmVmKSB7XG4gICAgICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCByb3RhdGVSZWYuZWxlbWVudHMsIGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnN0IHJlY3RhbmdsZUcgPSBkcmF3UmVjdGFuZ2xlKGJvYXJkLCBSZWN0YW5nbGVDbGllbnQuaW5mbGF0ZShyZWN0YW5nbGUsIEFDVElWRV9TVFJPS0VfV0lEVEgpLCB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiBTRUxFQ1RJT05fQk9SREVSX0NPTE9SLFxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBBQ1RJVkVfU1RST0tFX1dJRFRIXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlY3RhbmdsZUcuY2xhc3NMaXN0LmFkZChTRUxFQ1RJT05fUkVDVEFOR0xFX0NMQVNTX05BTUUpO1xuICAgICAgICAgICAgaWYgKHJvdGF0ZVJlZi5hbmdsZSkge1xuICAgICAgICAgICAgICAgIHNldEFuZ2xlRm9yRyhyZWN0YW5nbGVHLCBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQocmVjdGFuZ2xlKSwgcm90YXRlUmVmLmFuZ2xlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZWN0YW5nbGVHO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkcmF3U2VsZWN0aW9uUmVjdGFuZ2xlKCk7XG4gICAgfTtcblxuICAgIHJldHVybiBib2FyZDtcbn07XG4iXX0=
|
package/fesm2022/plait-draw.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ACTIVE_STROKE_WIDTH, ThemeColorMode, RectangleClient, getSelectedElements, idCreator, catmullRomFitting, PlaitBoard, createG, drawLinearPath, setStrokeLinecap, distanceBetweenPointAndSegments, HIT_DISTANCE_BUFFER, isPointInPolygon, rotatePointsByElement, isPolylineHitRectangle, rotateAntiPointsByElement, distanceBetweenPointAndPoint, Transforms, clearSelectedElement, addSelectedElement, BoardTransforms, PlaitPointerType, depthFirstRecursion, getIsRecursionFunc, SNAPPING_STROKE_WIDTH, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, drawCircle, createDebugGenerator, Point, arrowPoints, createPath, rotate, findElements, createMask, createRect, PlaitElement, getElementById, PlaitNode, hasValidAngle, toViewBoxPoint, toHostPoint, Direction, rotatePoints, getRectangleByElements, getSelectionAngle, rotatedDataPoints, isAxisChangedByAngle, isSelectionMoving, drawRectangle, getRectangleByAngle, getSnapRectangles, getTripleAxis, getMinPointDelta, SNAP_TOLERANCE, drawPointSnapLines, drawSolidLines, getNearestPointBetweenPointAndSegments, isPointInEllipse, getNearestPointBetweenPointAndEllipse, getEllipseTangentSlope, getVectorFromPointAndSlope, drawRoundRectangle, isPointInRoundRectangle, setPathStrokeLinecap, getCrossingPointsBetweenEllipseAndSegment, drawLine, Path, RgbaToHEX, getHitElementByPoint, preventTouchMove, WritableClipboardOperationType, createClipboardContext, WritableClipboardType, addClipboardContext, setAngleForG, CursorClass, temporaryDisableSelection, PRESS_AND_MOVE_BUFFER, isMainPointer, throttleRAF, getAngleBetweenPoints, normalizeAngle, degreesToRadians, rotateElements, MERGING, ROTATE_HANDLE_CLASS_NAME,
|
|
1
|
+
import { ACTIVE_STROKE_WIDTH, ThemeColorMode, RectangleClient, getSelectedElements, idCreator, catmullRomFitting, PlaitBoard, createG, drawLinearPath, setStrokeLinecap, distanceBetweenPointAndSegments, HIT_DISTANCE_BUFFER, isPointInPolygon, rotatePointsByElement, isPolylineHitRectangle, rotateAntiPointsByElement, distanceBetweenPointAndPoint, Transforms, clearSelectedElement, addSelectedElement, BoardTransforms, PlaitPointerType, depthFirstRecursion, getIsRecursionFunc, SNAPPING_STROKE_WIDTH, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, drawCircle, createDebugGenerator, Point, arrowPoints, createPath, rotate, findElements, createMask, createRect, PlaitElement, getElementById, PlaitNode, hasValidAngle, toViewBoxPoint, toHostPoint, Direction, rotatePoints, getRectangleByElements, getSelectionAngle, rotatedDataPoints, isAxisChangedByAngle, isSelectionMoving, drawRectangle, getRectangleByAngle, getSnapRectangles, getTripleAxis, getMinPointDelta, SNAP_TOLERANCE, drawPointSnapLines, drawSolidLines, getNearestPointBetweenPointAndSegments, isPointInEllipse, getNearestPointBetweenPointAndEllipse, getEllipseTangentSlope, getVectorFromPointAndSlope, drawRoundRectangle, isPointInRoundRectangle, setPathStrokeLinecap, getCrossingPointsBetweenEllipseAndSegment, drawLine, Path, RgbaToHEX, SELECTION_RECTANGLE_CLASS_NAME, getHitElementByPoint, preventTouchMove, WritableClipboardOperationType, createClipboardContext, WritableClipboardType, addClipboardContext, setAngleForG, CursorClass, temporaryDisableSelection, PRESS_AND_MOVE_BUFFER, isMainPointer, throttleRAF, getAngleBetweenPoints, normalizeAngle, degreesToRadians, rotateElements, MERGING, ROTATE_HANDLE_CLASS_NAME, isSelectedElement, isDragging } from '@plait/core';
|
|
2
2
|
import { DEFAULT_FILL, Alignment, WithTextPluginKey, ELEMENT_TO_TEXT_MANAGES, TextManage, getMemorizedLatest, memorizeLatest, getPointOnPolyline, buildText, Generator, sortElementsByArea, isFilled, getTextEditorsByElement, removeDuplicatePoints, generateElbowLineRoute, simplifyOrthogonalPoints, getExtendPoint, getUnitVectorByPointAndPoint, getPointByVectorComponent, RESIZE_HANDLE_DIAMETER, measureElement, DEFAULT_FONT_FAMILY, getFirstTextManage, ActiveGenerator, isSourceAndTargetIntersect, getPoints, DEFAULT_ROUTE_MARGIN, normalizeShapePoints, getFirstTextEditor, resetPointsAfterResize, getDirectionByVector, getRectangleResizeHandleRefs, getRotatedResizeCursorClassByAngle, ROTATE_HANDLE_DISTANCE_TO_ELEMENT, ROTATE_HANDLE_SIZE, isCornerHandle, getIndexByResizeHandle, withResize, drawHandle, getSymmetricHandleIndex, getResizeHandlePointByIndex, getDirectionFactorByDirectionComponent, getCrossingPointsBetweenPointAndSegment, isPointOnSegment, getDirectionByPointOfRectangle, getDirectionFactor, rotateVector, getOppositeDirection, rotateVectorAnti90, getSourceAndTargetOuterRectangle, getNextPoint, PRIMARY_COLOR, CommonElementFlavour, canResize, drawPrimaryHandle, drawFillPrimaryHandle, isVirtualKey, isDelete, isSpaceHotkey, isDndMode, isDrawingMode, getElementsText, acceptImageTypes, getElementOfFocusedImage, buildImage, isResizingByCondition, getRatioByPoint, getTextManages, ImageGenerator, ResizeHandle, addRotating, removeRotating, drawRotateHandle } from '@plait/common';
|
|
3
3
|
import { pointsOnBezierCurves } from 'points-on-curve';
|
|
4
4
|
import { TEXT_DEFAULT_HEIGHT, DEFAULT_FONT_SIZE, AlignEditor } from '@plait/text-plugins';
|
|
@@ -3113,7 +3113,7 @@ const getRotateHandleRectangle = (rectangle) => {
|
|
|
3113
3113
|
const debugKey$2 = 'debug:plait:resize-for-rotation';
|
|
3114
3114
|
const debugGenerator$2 = createDebugGenerator(debugKey$2);
|
|
3115
3115
|
function withDrawResize(board) {
|
|
3116
|
-
const { afterChange,
|
|
3116
|
+
const { afterChange, drawSelectionRectangle } = board;
|
|
3117
3117
|
let snapG;
|
|
3118
3118
|
let handleG;
|
|
3119
3119
|
let needCustomActiveRectangle = false;
|
|
@@ -3278,7 +3278,7 @@ function withDrawResize(board) {
|
|
|
3278
3278
|
PlaitBoard.getElementActiveHost(board).append(handleG);
|
|
3279
3279
|
}
|
|
3280
3280
|
};
|
|
3281
|
-
board.
|
|
3281
|
+
board.drawSelectionRectangle = () => {
|
|
3282
3282
|
if (needCustomActiveRectangle) {
|
|
3283
3283
|
const rectangle = RectangleClient.getRectangleByPoints(resizeActivePoints);
|
|
3284
3284
|
return drawRectangle(board, RectangleClient.inflate(rectangle, ACTIVE_STROKE_WIDTH), {
|
|
@@ -3286,7 +3286,7 @@ function withDrawResize(board) {
|
|
|
3286
3286
|
strokeWidth: ACTIVE_STROKE_WIDTH
|
|
3287
3287
|
});
|
|
3288
3288
|
}
|
|
3289
|
-
return
|
|
3289
|
+
return drawSelectionRectangle();
|
|
3290
3290
|
};
|
|
3291
3291
|
return board;
|
|
3292
3292
|
}
|
|
@@ -6810,8 +6810,7 @@ class LineActiveGenerator extends Generator {
|
|
|
6810
6810
|
const selectedElements = getSelectedElements(this.board);
|
|
6811
6811
|
this.onlySelectedCurrentLine = selectedElements.length === 1;
|
|
6812
6812
|
if (this.onlySelectedCurrentLine) {
|
|
6813
|
-
activeG.classList.add(
|
|
6814
|
-
activeG.classList.add('line-handle');
|
|
6813
|
+
activeG.classList.add(SELECTION_RECTANGLE_CLASS_NAME);
|
|
6815
6814
|
const points = PlaitDrawElement.isArrowLine(element) ? PlaitArrowLine.getPoints(this.board, element) : element.points;
|
|
6816
6815
|
let updatePoints = [...points];
|
|
6817
6816
|
let elbowNextRenderPoints = [];
|
|
@@ -8016,7 +8015,7 @@ const withArrowLineTextMove = (board) => {
|
|
|
8016
8015
|
};
|
|
8017
8016
|
|
|
8018
8017
|
const withDrawRotate = (board) => {
|
|
8019
|
-
const { pointerDown, pointerMove, globalPointerUp, afterChange,
|
|
8018
|
+
const { pointerDown, pointerMove, globalPointerUp, afterChange, drawSelectionRectangle } = board;
|
|
8020
8019
|
let rotateRef = null;
|
|
8021
8020
|
let rotateHandleG;
|
|
8022
8021
|
let needCustomActiveRectangle = false;
|
|
@@ -8119,7 +8118,7 @@ const withDrawRotate = (board) => {
|
|
|
8119
8118
|
PlaitBoard.getElementActiveHost(board).append(rotateHandleG);
|
|
8120
8119
|
}
|
|
8121
8120
|
};
|
|
8122
|
-
board.
|
|
8121
|
+
board.drawSelectionRectangle = () => {
|
|
8123
8122
|
if (needCustomActiveRectangle && rotateRef) {
|
|
8124
8123
|
const rectangle = getRectangleByElements(board, rotateRef.elements, false);
|
|
8125
8124
|
const rectangleG = drawRectangle(board, RectangleClient.inflate(rectangle, ACTIVE_STROKE_WIDTH), {
|
|
@@ -8132,7 +8131,7 @@ const withDrawRotate = (board) => {
|
|
|
8132
8131
|
}
|
|
8133
8132
|
return rectangleG;
|
|
8134
8133
|
}
|
|
8135
|
-
return
|
|
8134
|
+
return drawSelectionRectangle();
|
|
8136
8135
|
};
|
|
8137
8136
|
return board;
|
|
8138
8137
|
};
|