@talrace/ngx-noder 0.0.12 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +374 -71
- package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +1 -1
- package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +2 -5
- package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.mjs +3 -3
- package/esm2022/lib/editor/components/edges/edge-element.model.mjs +30 -1
- package/esm2022/lib/editor/components/edges/edge.component.mjs +23 -23
- package/esm2022/lib/editor/components/edges/edges.mjs +30 -15
- package/esm2022/lib/editor/components/image/components/image.component.mjs +2 -2
- package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +2 -2
- package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +5 -3
- package/esm2022/lib/editor/components/table/components/table.component.mjs +7 -5
- package/esm2022/lib/editor/components/table/selection/table-selection.mjs +12 -5
- package/esm2022/lib/editor/content/display-data/display-data.mjs +4 -4
- package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +1 -1
- package/esm2022/lib/editor/content/helpers/link.helper.mjs +39 -3
- package/esm2022/lib/editor/display/layers/text.layer.mjs +100 -75
- package/esm2022/lib/editor/display/print/print.helper.mjs +3 -3
- package/esm2022/lib/editor/display/print/print.renderer.mjs +5 -5
- package/esm2022/lib/editor/display/renderer.mjs +23 -25
- package/esm2022/lib/editor/display/virtual.renderer.mjs +10 -43
- package/esm2022/lib/editor/execution/edit.session.mjs +24 -14
- package/esm2022/lib/editor/execution/editor.mjs +77 -116
- package/esm2022/lib/editor/execution/regulator.service.mjs +44 -39
- package/esm2022/lib/editor/execution/targeting/cell-session-source.model.mjs +2 -3
- package/esm2022/lib/editor/execution/targeting/edge-session-source.model.mjs +2 -3
- package/esm2022/lib/editor/execution/targeting/main-session-source.model.mjs +2 -2
- package/esm2022/lib/editor/execution/targeting/session-source.model.mjs +1 -1
- package/esm2022/lib/editor/gadgets/history/operation-history.mjs +27 -24
- package/esm2022/lib/editor/interaction/editor.service.mjs +22 -22
- package/esm2022/lib/editor/interaction/mouse.handler.mjs +2 -2
- package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +2 -2
- package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +59 -7
- package/esm2022/lib/editor/operations/operations-helper.helper.mjs +19 -21
- package/esm2022/lib/editor/operations/save-commands.helper.mjs +3 -2
- package/esm2022/lib/editor/positioning/content.helper.mjs +10 -1
- package/esm2022/lib/editor/positioning/position.helper.mjs +49 -35
- package/esm2022/lib/editor/revision.helper.mjs +3 -1
- package/esm2022/lib/models/generated/restore-text-styles.model.mjs +1 -1
- package/esm2022/lib/models/generated/target.model.mjs +1 -1
- package/fesm2022/talrace-ngx-noder.mjs +636 -508
- package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
- package/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.d.ts +1 -3
- package/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.d.ts +1 -1
- package/lib/editor/components/edges/edge-element.model.d.ts +9 -1
- package/lib/editor/components/edges/edge.component.d.ts +4 -4
- package/lib/editor/components/edges/edges.d.ts +8 -2
- package/lib/editor/components/table/components/table.component.d.ts +4 -2
- package/lib/editor/components/table/selection/table-selection.d.ts +5 -2
- package/lib/editor/content/display-data/display-data.d.ts +2 -1
- package/lib/editor/content/helpers/content-style.helper.d.ts +1 -1
- package/lib/editor/content/helpers/link.helper.d.ts +4 -1
- package/lib/editor/display/layers/text.layer.d.ts +8 -10
- package/lib/editor/display/print/print.helper.d.ts +1 -2
- package/lib/editor/display/print/print.renderer.d.ts +1 -2
- package/lib/editor/display/renderer.d.ts +9 -9
- package/lib/editor/display/virtual.renderer.d.ts +3 -10
- package/lib/editor/execution/edit.session.d.ts +7 -2
- package/lib/editor/execution/editor.d.ts +9 -8
- package/lib/editor/execution/regulator.service.d.ts +6 -4
- package/lib/editor/execution/targeting/cell-session-source.model.d.ts +0 -1
- package/lib/editor/execution/targeting/edge-session-source.model.d.ts +0 -1
- package/lib/editor/execution/targeting/session-source.model.d.ts +0 -1
- package/lib/editor/gadgets/history/operation-history.d.ts +5 -1
- package/lib/editor/interaction/editor.service.d.ts +13 -12
- package/lib/editor/operations/helpers/link-operations.helper.d.ts +7 -2
- package/lib/editor/operations/operations-helper.helper.d.ts +2 -2
- package/lib/editor/positioning/content.helper.d.ts +2 -0
- package/lib/editor/positioning/position.helper.d.ts +21 -6
- package/lib/models/generated/restore-text-styles.model.d.ts +1 -0
- package/lib/models/generated/target.model.d.ts +0 -1
- package/package.json +1 -1
- package/src/_ngx-noder.theme.scss +0 -7
- package/src/scss/base-editor.scss +4 -0
|
@@ -32,5 +32,14 @@ export class ContentHelper {
|
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
+
static getContentFromInsertParagraph(insertParagraph) {
|
|
36
|
+
if (insertParagraph.insertImage) {
|
|
37
|
+
return insertParagraph.insertImage.imageData.content;
|
|
38
|
+
}
|
|
39
|
+
if (insertParagraph.insertTable) {
|
|
40
|
+
return insertParagraph.insertTable.content;
|
|
41
|
+
}
|
|
42
|
+
return insertParagraph.insertText.text;
|
|
43
|
+
}
|
|
35
44
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvcG9zaXRpb25pbmcvY29udGVudC5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS3JELE1BQU0sT0FBTyxhQUFhO0lBQ3RCLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxVQUFnQyxFQUFFLGVBQXVCO1FBQzFGLElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQyxDQUFDO1FBQzFFLFNBQVMsR0FBRyxTQUFTLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDNUUsT0FBTyxJQUFJLGVBQWUsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLFVBQWdDLEVBQUUsZUFBdUI7UUFDL0YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNqRixJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQzNELE9BQU8sSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ2pFO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxVQUFnQyxFQUFFLFNBQTBCO1FBQ2hHLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsTUFBTSxDQUFDLDhCQUE4QixDQUFDLFVBQWdDLEVBQUUsS0FBWTtRQUNoRixPQUFPO1lBQ0gsVUFBVSxFQUFFLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMxRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztTQUM3RSxDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxVQUFnQyxFQUFFLFNBQWlCLEVBQUUsS0FBYTtRQUM5RixPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsNEJBQTRCLENBQy9CLFFBQWEsRUFDYixjQUF3QixFQUN4QixVQUFrQixFQUNsQixRQUFnQjtRQUVoQixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxDQUFDLFdBQVcsSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFDLFdBQVcsSUFBSSxRQUFRLEVBQUU7Z0JBQzFELGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsQ0FBQzthQUNuRDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxlQUFxQztRQUN0RSxJQUFJLGVBQWUsQ0FBQyxXQUFXLEVBQUU7WUFDN0IsT0FBTyxlQUFlLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7U0FDeEQ7UUFFRCxJQUFJLGVBQWUsQ0FBQyxXQUFXLEVBQUU7WUFDN0IsT0FBTyxlQUFlLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztTQUM5QztRQUVELE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDM0MsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5zZXJ0UGFyYWdyYXBoTW9kZWwgfSBmcm9tICcuLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW5zZXJ0LXBhcmFncmFwaC5tb2RlbCc7XG5pbXBvcnQgeyBDdXJzb3JQYXJhZ3JhcGggfSBmcm9tICcuL2N1cnNvci1wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgSW5zZXJ0SW5kZXhJbnRlcmZhY2UgfSBmcm9tICcuL2luc2VydC1pbmRleC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGFyYWdyYXBoSW5mb01vZGVsIH0gZnJvbSAnLi4vY29udGVudC9kaXNwbGF5LWRhdGEvbW9kZWxzL3BhcmFncmFwaC1pbmZvLm1vZGVsJztcbmltcG9ydCB7IFJhbmdlIH0gZnJvbSAnLi9yYW5nZSc7XG5cbmV4cG9ydCBjbGFzcyBDb250ZW50SGVscGVyIHtcbiAgICBzdGF0aWMgZG9jdW1lbnRJbmRleFRvUGFyYWdyYXBoSW5kZXgocGFyYWdyYXBoczogUGFyYWdyYXBoSW5mb01vZGVsW10sIGluZGV4SW5Eb2N1bWVudDogbnVtYmVyKTogQ3Vyc29yUGFyYWdyYXBoIHtcbiAgICAgICAgbGV0IHBhcmFncmFwaCA9IHBhcmFncmFwaHMuZmluZEluZGV4KHggPT4geC5zdGFydEluZGV4ID4gaW5kZXhJbkRvY3VtZW50KTtcbiAgICAgICAgcGFyYWdyYXBoID0gcGFyYWdyYXBoID09PSAtMSA/IHBhcmFncmFwaHMubGVuZ3RoIC0gMSA6IHBhcmFncmFwaCAtIDE7XG4gICAgICAgIGNvbnN0IGluZGV4SW5QYXJhZ3JhcGggPSBpbmRleEluRG9jdW1lbnQgLSBwYXJhZ3JhcGhzW3BhcmFncmFwaF0uc3RhcnRJbmRleDtcbiAgICAgICAgcmV0dXJuIG5ldyBDdXJzb3JQYXJhZ3JhcGgocGFyYWdyYXBoLCBpbmRleEluUGFyYWdyYXBoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZG9jdW1lbnRJbmRleFRvUGFyYWdyYXBoV2l0aE9mZnNldChwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhJbmZvTW9kZWxbXSwgaW5kZXhJbkRvY3VtZW50OiBudW1iZXIpOiBDdXJzb3JQYXJhZ3JhcGgge1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuZG9jdW1lbnRJbmRleFRvUGFyYWdyYXBoSW5kZXgocGFyYWdyYXBocywgaW5kZXhJbkRvY3VtZW50KTtcbiAgICAgICAgaWYgKHBvc2l0aW9uLmNvbHVtbiA8IHBhcmFncmFwaHNbcG9zaXRpb24ucm93XS5jb250ZW50Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDdXJzb3JQYXJhZ3JhcGgocG9zaXRpb24ucm93LCBwb3NpdGlvbi5jb2x1bW4gKyAxKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcG9zaXRpb247XG4gICAgfVxuXG4gICAgc3RhdGljIHBhcmFncmFwaFBvc2l0aW9uVG9Eb2N1bWVudEluZGV4KHBhcmFncmFwaHM6IFBhcmFncmFwaEluZm9Nb2RlbFtdLCBwYXJhZ3JhcGg6IEN1cnNvclBhcmFncmFwaCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmFncmFwaFRvRG9jdW1lbnRJbmRleChwYXJhZ3JhcGhzLCBwYXJhZ3JhcGgucm93LCBwYXJhZ3JhcGguY29sdW1uKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0U2VsZWN0ZWRQYXJ0RG9jdW1lbnRJbmRleGVzKHBhcmFncmFwaHM6IFBhcmFncmFwaEluZm9Nb2RlbFtdLCByYW5nZTogUmFuZ2UpOiB7IHN0YXJ0SW5kZXg6IG51bWJlcjsgZW5kSW5kZXg6IG51bWJlciB9IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YXJ0SW5kZXg6IHRoaXMucGFyYWdyYXBoUG9zaXRpb25Ub0RvY3VtZW50SW5kZXgocGFyYWdyYXBocywgcmFuZ2Uuc3RhcnQpLFxuICAgICAgICAgICAgZW5kSW5kZXg6IHRoaXMucGFyYWdyYXBoUG9zaXRpb25Ub0RvY3VtZW50SW5kZXgocGFyYWdyYXBocywgcmFuZ2UuZW5kKSAtIDFcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgcGFyYWdyYXBoVG9Eb2N1bWVudEluZGV4KHBhcmFncmFwaHM6IFBhcmFncmFwaEluZm9Nb2RlbFtdLCBwYXJhZ3JhcGg6IG51bWJlciwgaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBwYXJhZ3JhcGhzW3BhcmFncmFwaF0uc3RhcnRJbmRleCArIGluZGV4O1xuICAgIH1cblxuICAgIHN0YXRpYyBzZXRJbmRleGVzRWxlbWVudHNJbkludGVydmFsPFQgZXh0ZW5kcyBJbnNlcnRJbmRleEludGVyZmFjZT4oXG4gICAgICAgIGVsZW1lbnRzOiBUW10sXG4gICAgICAgIGVsZW1lbnRJbmRleGVzOiBudW1iZXJbXSxcbiAgICAgICAgc3RhcnRJbmRleDogbnVtYmVyLFxuICAgICAgICBlbmRJbmRleDogbnVtYmVyXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGVsZW1lbnRzLmZvckVhY2goeCA9PiB7XG4gICAgICAgICAgICBpZiAoeC5pbnNlcnRJbmRleCA+PSBzdGFydEluZGV4ICYmIHguaW5zZXJ0SW5kZXggPD0gZW5kSW5kZXgpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50SW5kZXhlcy5wdXNoKHguaW5zZXJ0SW5kZXggLSBzdGFydEluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldENvbnRlbnRGcm9tSW5zZXJ0UGFyYWdyYXBoKGluc2VydFBhcmFncmFwaDogSW5zZXJ0UGFyYWdyYXBoTW9kZWwpOiBzdHJpbmcge1xuICAgICAgICBpZiAoaW5zZXJ0UGFyYWdyYXBoLmluc2VydEltYWdlKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5zZXJ0UGFyYWdyYXBoLmluc2VydEltYWdlLmltYWdlRGF0YS5jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGluc2VydFBhcmFncmFwaC5pbnNlcnRUYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGluc2VydFBhcmFncmFwaC5pbnNlcnRUYWJsZS5jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc2VydFBhcmFncmFwaC5pbnNlcnRUZXh0LnRleHQ7XG4gICAgfVxufVxuIl19
|
|
@@ -109,46 +109,67 @@ export class PositionHelper {
|
|
|
109
109
|
};
|
|
110
110
|
}
|
|
111
111
|
/**
|
|
112
|
-
*
|
|
112
|
+
* Calculates the paragraph and line index based on the given Y position.
|
|
113
113
|
**/
|
|
114
|
-
static
|
|
115
|
-
const displayData = session
|
|
116
|
-
|
|
117
|
-
let
|
|
118
|
-
let paragraphIndex = displayData.paragraphs.findIndex(paragraph => paragraph.paragraphSettings.distanceFromTop > yPos);
|
|
114
|
+
static getParagraphAndLineIndexFromYPosition(session, yPosition, top) {
|
|
115
|
+
const { displayData, scrollTop } = session;
|
|
116
|
+
yPosition += scrollTop - top;
|
|
117
|
+
let paragraphIndex = displayData.paragraphs.findIndex(paragraph => paragraph.paragraphSettings.distanceFromTop > yPosition);
|
|
119
118
|
if (paragraphIndex < 0) {
|
|
120
119
|
paragraphIndex = displayData.paragraphs.length - 1;
|
|
121
120
|
}
|
|
122
121
|
else if (paragraphIndex > 0) {
|
|
123
122
|
paragraphIndex--;
|
|
124
123
|
}
|
|
125
|
-
const paragraphSettings = displayData.
|
|
126
|
-
|
|
124
|
+
const paragraphSettings = displayData.paragraphs[paragraphIndex].paragraphSettings;
|
|
125
|
+
yPosition -= paragraphSettings.distanceFromTop;
|
|
127
126
|
let lineIndex = 0;
|
|
128
|
-
while (
|
|
129
|
-
const
|
|
130
|
-
const
|
|
131
|
-
if (
|
|
127
|
+
while (yPosition > 0 && lineIndex < paragraphSettings.textLinesInfo.length - 1) {
|
|
128
|
+
const lineInfo = paragraphSettings.textLinesInfo[lineIndex];
|
|
129
|
+
const lineHeight = lineInfo.height + lineInfo.endPageOffset + lineInfo.offsetBefore + lineInfo.offsetAfter;
|
|
130
|
+
if (yPosition <= lineHeight) {
|
|
132
131
|
break;
|
|
133
132
|
}
|
|
134
133
|
lineIndex++;
|
|
135
|
-
|
|
134
|
+
yPosition -= lineHeight;
|
|
136
135
|
}
|
|
136
|
+
return { paragraphIndex, lineIndex };
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Maps a pixel position to a screen position using half-token width comparison.
|
|
140
|
+
*/
|
|
141
|
+
static mapPixelToClosestTokenMidpoint(session, xPixel, paragraphIndex, lineIndex, leftOffset) {
|
|
142
|
+
const paragraphSettings = session.displayData.paragraphs[paragraphIndex].paragraphSettings;
|
|
137
143
|
const line = paragraphSettings.textLinesInfo[lineIndex].screenLine;
|
|
138
|
-
let
|
|
139
|
-
let
|
|
144
|
+
let indexInLine = 0;
|
|
145
|
+
let relativeX = xPixel - leftOffset - session.displayData.pageMargin.left - paragraphSettings.textLinesInfo[lineIndex].paddingLeft;
|
|
140
146
|
const tokens = LineWidthHelper.getParagraphLineDisplayTokens(session, paragraphIndex, lineIndex);
|
|
141
147
|
if (tokens[0].displayValue === DisplayValue.emptyLine) {
|
|
142
|
-
return
|
|
148
|
+
return { line, indexInLine };
|
|
143
149
|
}
|
|
144
|
-
while (tokens.length
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
+
while (indexInLine < tokens.length && relativeX >= tokens[indexInLine].width / 2) {
|
|
151
|
+
relativeX -= tokens[indexInLine].width;
|
|
152
|
+
indexInLine++;
|
|
153
|
+
}
|
|
154
|
+
return { line, indexInLine };
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Maps a pixel position to a screen position using full-token width comparison.
|
|
158
|
+
*/
|
|
159
|
+
static mapPixelToNextTokenBoundary(session, xPixel, paragraphIndex, lineIndex, leftOffset) {
|
|
160
|
+
const paragraphSettings = session.displayData.paragraphs[paragraphIndex].paragraphSettings;
|
|
161
|
+
const line = paragraphSettings.textLinesInfo[lineIndex].screenLine;
|
|
162
|
+
let indexInLine = 0;
|
|
163
|
+
let relativeX = xPixel - leftOffset - session.displayData.pageMargin.left - paragraphSettings.textLinesInfo[lineIndex].paddingLeft;
|
|
164
|
+
const tokens = LineWidthHelper.getParagraphLineDisplayTokens(session, paragraphIndex, lineIndex);
|
|
165
|
+
if (tokens[0].displayValue === DisplayValue.emptyLine) {
|
|
166
|
+
return { line, indexInLine };
|
|
150
167
|
}
|
|
151
|
-
|
|
168
|
+
while (indexInLine < tokens.length && relativeX >= tokens[indexInLine].width) {
|
|
169
|
+
relativeX -= tokens[indexInLine].width;
|
|
170
|
+
indexInLine++;
|
|
171
|
+
}
|
|
172
|
+
return { line, indexInLine };
|
|
152
173
|
}
|
|
153
174
|
static findLineInParagraphs(paragraphs, documentLine) {
|
|
154
175
|
let index = 0;
|
|
@@ -180,17 +201,10 @@ export class PositionHelper {
|
|
|
180
201
|
}
|
|
181
202
|
return column;
|
|
182
203
|
}
|
|
183
|
-
static pixelToPage(
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
const endPagePosition = (session.displayData.pagesSpace + session.displayData.pageHeight) * page;
|
|
188
|
-
if (endPagePosition >= posY) {
|
|
189
|
-
break;
|
|
190
|
-
}
|
|
191
|
-
page++;
|
|
192
|
-
}
|
|
193
|
-
return page;
|
|
204
|
+
static pixelToPage(clientY, mainSession, mainRenderer) {
|
|
205
|
+
const positionY = clientY + mainSession.scrollTop - mainRenderer.container.getBoundingClientRect().top;
|
|
206
|
+
const height = mainSession.displayData.pagesSpace + mainSession.displayData.pageHeight;
|
|
207
|
+
return Math.floor(positionY / height) + 1;
|
|
194
208
|
}
|
|
195
209
|
}
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL3Bvc2l0aW9uaW5nL3Bvc2l0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUl0RCxNQUFNLE9BQU8sY0FBYztJQUN2Qjs7T0FFRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBb0IsRUFBRSxnQkFBaUM7UUFDMUUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFckcsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7O1FBRUk7SUFDSixNQUFNLENBQUMscUJBQXFCLENBQUMsVUFBZ0MsRUFBRSxHQUFXO1FBQ3RFLE1BQU0sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNoQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FB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O1FBQzNGLElBQUksS0FBSyxHQUFHLGFBQWEsR0FBRyxZQUFZLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUM7UUFDM0UsT0FBTyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUM1RCxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUM5QixNQUFNLEVBQUUsQ0FBQztTQUNaO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBWSxFQUFFLE9BQW9CO1FBQ2pELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUN0SCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixPQUFPLElBQUksSUFBSSxVQUFVLEVBQUU7WUFDdkIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNqRyxJQUFJLGVBQWUsSUFBSSxJQUFJLEVBQUU7Z0JBQ3pCLE1BQU07YUFDVDtZQUNELElBQUksRUFBRSxDQUFDO1NBQ1Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJzb3JQYXJhZ3JhcGggfSBmcm9tICcuL2N1cnNvci1wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgQ3Vyc29yUG9zaXRpb24gfSBmcm9tICcuL2N1cnNvci1wb3NpdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGlzcGxheVZhbHVlIH0gZnJvbSAnLi4vY29udGVudC9jb25zdGFudHMvZGlzcGxheS12YWx1ZXMuY29uc3QnO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuLi9leGVjdXRpb24vZWRpdC5zZXNzaW9uJztcbmltcG9ydCB7IElGb250TWV0cmljU2l6ZSB9IGZyb20gJy4uL2dhZGdldHMvZm9udC1tZXRyaWNzL2ZvbnQtbWV0cmljLXNpemUuaW50ZXJmYWNlJztcbmltcG9ydCB7IExpbmVXaWR0aEhlbHBlciB9IGZyb20gJy4vbGluZS13aWR0aC5oZWxwZXInO1xuaW1wb3J0IHsgUGFyYWdyYXBoSW5mbyB9IGZyb20gJy4uL2NvbnRlbnQvZGlzcGxheS1kYXRhL3BhcmFncmFwaC1pbmZvLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYXJhZ3JhcGhJbmZvTW9kZWwgfSBmcm9tICcuLi9jb250ZW50L2Rpc3BsYXktZGF0YS9tb2RlbHMvcGFyYWdyYXBoLWluZm8ubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgUG9zaXRpb25IZWxwZXIge1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGBwYWdlWGAgYW5kIGBwYWdlWWAgY29vcmRpbmF0ZXMgb2YgdGhlIGRvY3VtZW50IHBvc2l0aW9uLlxuICAgICAqL1xuICAgIHN0YXRpYyBkb2N1bWVudFRvUGl4ZWwoc2Vzc2lvbjogRWRpdFNlc3Npb24sIGRvY3VtZW50UG9zaXRpb246IEN1cnNvclBhcmFncmFwaCk6IEN1cnNvclBvc2l0aW9uIHtcbiAgICAgICAgY29uc3Qgc2NyZWVuUG9zaXRpb24gPSB0aGlzLmRvY3VtZW50VG9TY3JlZW4oc2Vzc2lvbiwgZG9jdW1lbnRQb3NpdGlvbi5yb3csIGRvY3VtZW50UG9zaXRpb24uY29sdW1uKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5zY3JlZW5Ub1BpeGVsKHNlc3Npb24sIHNjcmVlblBvc2l0aW9uLnJvdywgc2NyZWVuUG9zaXRpb24uY29sdW1uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgcGFyYWdyYXBoIGluZm8gKHBhcmFncmFwaCBpbmRleCwgcGFyYWdyYXBoIGxpbmUgaW5kZXgsIGxpbmUgdG9wIG9mZnNldCBhbmQgb3RoZXJzKSBieSByb3cgaW5kZXhcbiAgICAgKiovXG4gICAgc3RhdGljIGdldFBhcmFncmFwaEluZm9CeVJvdyhwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhJbmZvTW9kZWxbXSwgcm93OiBudW1iZXIpOiBQYXJhZ3JhcGhJbmZvIHtcbiAgICAgICAgY29uc3QgeyBwYXJhZ3JhcGhJbmRleCwgbGluZUluZGV4IH0gPSB0aGlzLmZpbmRMaW5lSW5QYXJhZ3JhcGhzKHBhcmFncmFwaHMsIHJvdyk7XG4gICAgICAgIGxldCBsaW5lVG9wT2Zmc2V0ID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lSW5kZXg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgaW5mbyA9IHBhcmFncmFwaHNbcGFyYWdyYXBoSW5kZXhdLnBhcmFncmFwaFNldHRpbmdzLnRleHRMaW5lc0luZm9baV07XG4gICAgICAgICAgICBsaW5lVG9wT2Zmc2V0ICs9IGluZm8uaGVpZ2h0ICsgaW5mby5lbmRQYWdlT2Zmc2V0ICsgaW5mby5vZmZzZXRCZWZvcmUgKyBpbmZvLm9mZnNldEFmdGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyYWdyYXBoTGluZUluZm8gPSBwYXJhZ3JhcGhzW3BhcmFncmFwaEluZGV4XS5wYXJhZ3JhcGhTZXR0aW5ncy50ZXh0TGluZXNJbmZvW2xpbmVJbmRleF07XG4gICAgICAgIGxpbmVUb3BPZmZzZXQgKz0gcGFyYWdyYXBoTGluZUluZm8ub2Zmc2V0QmVmb3JlO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwYXJhZ3JhcGhJbmRleCxcbiAgICAgICAgICAgIGxpbmVJbmRleCxcbiAgICAgICAgICAgIGxpbmVUb3BPZmZzZXQsXG4gICAgICAgICAgICBpbmRlbnRCZWZvcmU6IHBhcmFncmFwaExpbmVJbmZvLm9mZnNldEJlZm9yZSxcbiAgICAgICAgICAgIGxpbmVIZWlnaHQ6IHBhcmFncmFwaExpbmVJbmZvLmhlaWdodFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHN0YXRpYyBkb2N1bWVudFRvU2NyZWVuKHNlc3Npb246IEVkaXRTZXNzaW9uLCBwYXJhZ3JhcGg6IG51bWJlciwgaW5kZXhJblBhcmFncmFwaDogbnVtYmVyKTogQ3Vyc29yUGFyYWdyYXBoIHtcbiAgICAgICAgY29uc3QgcGFyYWdyYXBoTGluZSA9IHNlc3Npb24uZGlzcGxheURhdGEucGFyYWdyYXBoc1twYXJhZ3JhcGhdLmxpbmVOdW1iZXI7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFzZXNzaW9uLmRpc3BsYXlEYXRhLnBhcmFncmFwaHNbcGFyYWdyYXBoXS5uZXh0TGluZUluZGV4ZXMubGVuZ3RoIHx8XG4gICAgICAgICAgICBzZXNzaW9uLmRpc3BsYXlEYXRhLnBhcmFncmFwaHNbcGFyYWdyYXBoXS5uZXh0TGluZUluZGV4ZXNbMF0gPiBpbmRleEluUGFyYWdyYXBoXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDdXJzb3JQYXJhZ3JhcGgocGFyYWdyYXBoTGluZSwgaW5kZXhJblBhcmFncmFwaCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGluZSA9IDA7XG4gICAgICAgIHdoaWxlIChcbiAgICAgICAgICAgIHNlc3Npb24uZGlzcGxheURhdGEucGFyYWdyYXBoc1twYXJhZ3JhcGhdLm5leHRMaW5lSW5kZXhlc1tsaW5lXSA8PSBpbmRleEluUGFyYWdyYXBoICYmXG4gICAgICAgICAgICBsaW5lIDwgc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYXJhZ3JhcGhzW3BhcmFncmFwaF0ubmV4dExpbmVJbmRleGVzLmxlbmd0aFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGxpbmUrKztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbmRleCA9IGluZGV4SW5QYXJhZ3JhcGggLSBzZXNzaW9uLmRpc3BsYXlEYXRhLnBhcmFncmFwaHNbcGFyYWdyYXBoXS5uZXh0TGluZUluZGV4ZXNbbGluZSAtIDFdO1xuICAgICAgICByZXR1cm4gbmV3IEN1cnNvclBhcmFncmFwaChwYXJhZ3JhcGhMaW5lICsgbGluZSwgaW5kZXgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBzY3JlZW5Ub0RvY3VtZW50KHNlc3Npb246IEVkaXRTZXNzaW9uLCBsaW5lOiBudW1iZXIsIGluZGV4SW5MaW5lOiBudW1iZXIpOiBDdXJzb3JQYXJhZ3JhcGgge1xuICAgICAgICBsZXQgcGFyYWdyYXBoID0gc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYXJhZ3JhcGhzLmZpbmRJbmRleCh4ID0+IHgubGluZU51bWJlciA+IGxpbmUpO1xuICAgICAgICBpZiAocGFyYWdyYXBoID09PSAtMSkge1xuICAgICAgICAgICAgcGFyYWdyYXBoID0gc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYXJhZ3JhcGhzLmxlbmd0aCAtIDE7XG4gICAgICAgIH0gZWxzZSBpZiAocGFyYWdyYXBoID4gMCkge1xuICAgICAgICAgICAgcGFyYWdyYXBoID0gcGFyYWdyYXBoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbGluZUluUGFyYWdyYXBoID0gbGluZSAtIHNlc3Npb24uZGlzcGxheURhdGEucGFyYWdyYXBoc1twYXJhZ3JhcGhdLmxpbmVOdW1iZXI7XG4gICAgICAgIGlmICghc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYXJhZ3JhcGhzW3BhcmFncmFwaF0ubmV4dExpbmVJbmRleGVzLmxlbmd0aCB8fCBsaW5lSW5QYXJhZ3JhcGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ3Vyc29yUGFyYWdyYXBoKHBhcmFncmFwaCwgaW5kZXhJbkxpbmUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gaW5kZXhJbkxpbmUgKyBzZXNzaW9uLmRpc3BsYXlEYXRhLnBhcmFncmFwaHNbcGFyYWdyYXBoXS5uZXh0TGluZUluZGV4ZXNbbGluZUluUGFyYWdyYXBoIC0gMV07XG4gICAgICAgIHJldHVybiBuZXcgQ3Vyc29yUGFyYWdyYXBoKHBhcmFncmFwaCwgaW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGBwYWdlWGAgYW5kIGBwYWdlWWAgY29vcmRpbmF0ZXMgb2YgdGhlIGRvY3VtZW50IHBvc2l0aW9uLlxuICAgICAqKi9cbiAgICBzdGF0aWMgc2NyZWVuVG9QaXhlbChzZXNzaW9uOiBFZGl0U2Vzc2lvbiwgcm93OiBudW1iZXIsIGNvbHVtbjogbnVtYmVyKTogQ3Vyc29yUG9zaXRpb24ge1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhzID0gc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYXJhZ3JhcGhzO1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhJbmZvID0gdGhpcy5nZXRQYXJhZ3JhcGhJbmZvQnlSb3cocGFyYWdyYXBocywgcm93KTtcbiAgICAgICAgY29uc3QgdG9rZW5zID0gTGluZVdpZHRoSGVscGVyLmdldFBhcmFncmFwaExpbmVEaXNwbGF5VG9rZW5zKHNlc3Npb24sIHBhcmFncmFwaEluZm8ucGFyYWdyYXBoSW5kZXgsIHBhcmFncmFwaEluZm8ubGluZUluZGV4KTtcblxuICAgICAgICBsZXQgc2l6ZTogSUZvbnRNZXRyaWNTaXplID0ge1xuICAgICAgICAgICAgd2lkdGg6IDgsXG4gICAgICAgICAgICBoZWlnaHQ6IHBhcmFncmFwaEluZm8ubGluZUhlaWdodCxcbiAgICAgICAgICAgIGJhc2VsaW5lOiBwYXJhZ3JhcGhJbmZvLmxpbmVIZWlnaHQsXG4gICAgICAgICAgICBjb250ZW50OiBwYXJhZ3JhcGhJbmZvLmxpbmVIZWlnaHQsXG4gICAgICAgICAgICBmb250OiBwYXJhZ3JhcGhJbmZvLmxpbmVIZWlnaHQsXG4gICAgICAgICAgICBsaW5lOiBwYXJhZ3JhcGhJbmZvLmxpbmVIZWlnaHQsXG4gICAgICAgICAgICBtdWx0aXBsaWVyOiBwYXJhZ3JhcGhJbmZvLmxpbmVIZWlnaHQsXG4gICAgICAgICAgICBhc2NlbnQ6IDAsXG4gICAgICAgICAgICBkZXNjZW50OiAwXG4gICAgICAgIH07XG4gICAgICAgIGxldCB0b2tlbkluZGV4ID0gY29sdW1uID4gMCA/IGNvbHVtbiAtIDEgOiBjb2x1bW47XG4gICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc2l6ZSA9IHRva2Vuc1t0b2tlbkluZGV4XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNpemVOZXh0ID0gdG9rZW5zW3Rva2VuSW5kZXggKyAxXTtcbiAgICAgICAgbGV0IHNpemVNYXggPSB7IC4uLnNpemUgfTtcbiAgICAgICAgbGV0IGxpbmVXaWR0aFRvUG9zaXRpb24gPSBzZXNzaW9uLmRpc3BsYXlEYXRhLnBhZ2VNYXJnaW4ubGVmdDtcbiAgICAgICAgZm9yIChsZXQgY3VycmVudENvbHVtbiA9IDA7IGN1cnJlbnRDb2x1bW4gPCB0b2tlbnMubGVuZ3RoOyBjdXJyZW50Q29sdW1uKyspIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50Q29sdW1uIDwgY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgbGluZVdpZHRoVG9Qb3NpdGlvbiArPSB0b2tlbnNbY3VycmVudENvbHVtbl0ud2lkdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzaXplTWF4LmFzY2VudCA8IHRva2Vuc1tjdXJyZW50Q29sdW1uXS5hc2NlbnQpIHtcbiAgICAgICAgICAgICAgICBzaXplTWF4ID0gdG9rZW5zW2N1cnJlbnRDb2x1bW5dO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRva2Vuc1t0b2tlbkluZGV4XT8uaXNUYWJsZSkge1xuICAgICAgICAgICAgc2l6ZU1heC5hc2NlbnQgPSBwYXJhZ3JhcGhJbmZvLmxpbmVIZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJhZ3JhcGggPSBwYXJhZ3JhcGhzW3BhcmFncmFwaEluZm8ucGFyYWdyYXBoSW5kZXhdO1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhUb3AgPSBwYXJhZ3JhcGgucGFyYWdyYXBoU2V0dGluZ3MuZGlzdGFuY2VGcm9tVG9wIHx8IDA7XG4gICAgICAgIGNvbnN0IGxpbmVQYWRkaW5nTGVmdCA9IHBhcmFncmFwaC5wYXJhZ3JhcGhTZXR0aW5ncy50ZXh0TGluZXNJbmZvW3BhcmFncmFwaEluZm8ubGluZUluZGV4XS5wYWRkaW5nTGVmdDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGFnZVg6IGxpbmVXaWR0aFRvUG9zaXRpb24gKyBsaW5lUGFkZGluZ0xlZnQsXG4gICAgICAgICAgICBwYWdlWTogcGFyYWdyYXBoVG9wICsgcGFyYWdyYXBoSW5mby5saW5lVG9wT2Zmc2V0IC0gc2Vzc2lvbi5zY3JvbGxUb3AsXG4gICAgICAgICAgICBsaW5lSGVpZ2h0OiBwYXJhZ3JhcGhJbmZvLmxpbmVIZWlnaHQsXG4gICAgICAgICAgICBzaXplQ3VycmVudDogc2l6ZSxcbiAgICAgICAgICAgIHNpemVNYXgsXG4gICAgICAgICAgICBzaXplTmV4dCxcbiAgICAgICAgICAgIGZpcnN0Q2hhcjogY29sdW1uID09PSAwLFxuICAgICAgICAgICAgbGFzdENoYXI6IGNvbHVtbiA9PT0gdG9rZW5zLmxlbmd0aCAtIDFcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBwaXhlbCBwb3NpdGlvbiB0byBzY3JlZW4gcG9zaXRpb25cbiAgICAgKiovXG4gICAgc3RhdGljIHBpeGVsVG9TY3JlZW4oc2Vzc2lvbjogRWRpdFNlc3Npb24sIHg6IG51bWJlciwgeTogbnVtYmVyLCBzY3JvbGxlclBvc2l0aW9uOiB7IHRvcDogbnVtYmVyOyBsZWZ0OiBudW1iZXIgfSk6IEN1cnNvclBhcmFncmFwaCB7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlEYXRhID0gc2Vzc2lvbi5kaXNwbGF5RGF0YTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gc2Vzc2lvbi5zY3JvbGxUb3A7XG5cbiAgICAgICAgbGV0IHlQb3MgPSB5ICsgc2Nyb2xsVG9wIC0gc2Nyb2xsZXJQb3NpdGlvbi50b3A7XG4gICAgICAgIGxldCBwYXJhZ3JhcGhJbmRleCA9IGRpc3BsYXlEYXRhLnBhcmFncmFwaHMuZmluZEluZGV4KHBhcmFncmFwaCA9PiBwYXJhZ3JhcGgucGFyYWdyYXBoU2V0dGluZ3MuZGlzdGFuY2VGcm9tVG9wID4geVBvcyk7XG4gICAgICAgIGlmIChwYXJhZ3JhcGhJbmRleCA8IDApIHtcbiAgICAgICAgICAgIHBhcmFncmFwaEluZGV4ID0gZGlzcGxheURhdGEucGFyYWdyYXBocy5sZW5ndGggLSAxO1xuICAgICAgICB9IGVsc2UgaWYgKHBhcmFncmFwaEluZGV4ID4gMCkge1xuICAgICAgICAgICAgcGFyYWdyYXBoSW5kZXgtLTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcmFncmFwaFNldHRpbmdzID0gZGlzcGxheURhdGEuZ2V0UGFyYWdyYXBoU2V0dGluZ3MocGFyYWdyYXBoSW5kZXgpO1xuICAgICAgICB5UG9zIC09IHBhcmFncmFwaFNldHRpbmdzLmRpc3RhbmNlRnJvbVRvcDtcbiAgICAgICAgbGV0IGxpbmVJbmRleCA9IDA7XG4gICAgICAgIHdoaWxlICh5UG9zID4gMCAmJiBsaW5lSW5kZXggPCBwYXJhZ3JhcGhTZXR0aW5ncy50ZXh0TGluZXNJbmZvLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBwYXJhZ3JhcGhTZXR0aW5ncy50ZXh0TGluZXNJbmZvW2xpbmVJbmRleF07XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGxpbmUuaGVpZ2h0ICsgbGluZS5lbmRQYWdlT2Zmc2V0ICsgbGluZS5vZmZzZXRCZWZvcmUgKyBsaW5lLm9mZnNldEFmdGVyO1xuICAgICAgICAgICAgaWYgKHlQb3MgPD0gd2lkdGgpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpbmVJbmRleCsrO1xuICAgICAgICAgICAgeVBvcyAtPSB3aWR0aDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaW5lID0gcGFyYWdyYXBoU2V0dGluZ3MudGV4dExpbmVzSW5mb1tsaW5lSW5kZXhdLnNjcmVlbkxpbmU7XG5cbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgbGV0IHhQb3MgPSB4IC0gc2Nyb2xsZXJQb3NpdGlvbi5sZWZ0IC0gZGlzcGxheURhdGEucGFnZU1hcmdpbi5sZWZ0IC0gcGFyYWdyYXBoU2V0dGluZ3MudGV4dExpbmVzSW5mb1tsaW5lSW5kZXhdLnBhZGRpbmdMZWZ0O1xuICAgICAgICBjb25zdCB0b2tlbnMgPSBMaW5lV2lkdGhIZWxwZXIuZ2V0UGFyYWdyYXBoTGluZURpc3BsYXlUb2tlbnMoc2Vzc2lvbiwgcGFyYWdyYXBoSW5kZXgsIGxpbmVJbmRleCk7XG4gICAgICAgIGlmICh0b2tlbnNbMF0uZGlzcGxheVZhbHVlID09PSBEaXNwbGF5VmFsdWUuZW1wdHlMaW5lKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEN1cnNvclBhcmFncmFwaChsaW5lLCBpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAodG9rZW5zLmxlbmd0aCA+IGluZGV4KSB7XG4gICAgICAgICAgICBpZiAoeFBvcyA8IHRva2Vuc1tpbmRleF0ud2lkdGggLyAyKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHhQb3MgLT0gdG9rZW5zW2luZGV4XS53aWR0aDtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBDdXJzb3JQYXJhZ3JhcGgobGluZSwgaW5kZXgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBmaW5kTGluZUluUGFyYWdyYXBocyhwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhJbmZvTW9kZWxbXSwgZG9jdW1lbnRMaW5lOiBudW1iZXIpOiB7IHBhcmFncmFwaEluZGV4OiBudW1iZXI7IGxpbmVJbmRleDogbnVtYmVyIH0ge1xuICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICBsZXQgcGFyYWdyYXBoSW5kZXggPSAwO1xuICAgICAgICB3aGlsZSAocGFyYWdyYXBoSW5kZXggPCBwYXJhZ3JhcGhzLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKGluZGV4ICsgcGFyYWdyYXBoc1twYXJhZ3JhcGhJbmRleF0ucGFyYWdyYXBoU2V0dGluZ3MudGV4dExpbmVzSW5mby5sZW5ndGggPiBkb2N1bWVudExpbmUpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5kZXggKz0gcGFyYWdyYXBoc1twYXJhZ3JhcGhJbmRleF0ucGFyYWdyYXBoU2V0dGluZ3MudGV4dExpbmVzSW5mby5sZW5ndGg7XG4gICAgICAgICAgICBwYXJhZ3JhcGhJbmRleCsrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxpbmVJbmRleCA9IGRvY3VtZW50TGluZSAtIGluZGV4O1xuICAgICAgICByZXR1cm4geyBwYXJhZ3JhcGhJbmRleCwgbGluZUluZGV4IH07XG4gICAgfVxuXG4gICAgc3RhdGljIGdldEFwcHJveGltYXRlUG9zaXRpb24oc2Vzc2lvbjogRWRpdFNlc3Npb24sIGRvY3VtZW50TGluZTogbnVtYmVyLCBwb3NpdGlvbldpZHRoOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhzID0gc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYXJhZ3JhcGhzO1xuICAgICAgICBjb25zdCBkb2N1bWVudE1hcmdpbiA9IHNlc3Npb24uZGlzcGxheURhdGEucGFnZU1hcmdpbjtcbiAgICAgICAgY29uc3QgeyBwYXJhZ3JhcGhJbmRleCwgbGluZUluZGV4IH0gPSBQb3NpdGlvbkhlbHBlci5maW5kTGluZUluUGFyYWdyYXBocyhwYXJhZ3JhcGhzLCBkb2N1bWVudExpbmUpO1xuICAgICAgICBsZXQgY29sdW1uID0gMDtcbiAgICAgICAgY29uc3QgdG9rZW5zID0gTGluZVdpZHRoSGVscGVyLmdldFBhcmFncmFwaExpbmVEaXNwbGF5VG9rZW5zKHNlc3Npb24sIHBhcmFncmFwaEluZGV4LCBsaW5lSW5kZXgpO1xuICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gMSAmJiB0b2tlbnNbMF0uZGlzcGxheVZhbHVlID09PSBEaXNwbGF5VmFsdWUuZW1wdHlMaW5lKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGV4dExpbmVJbmZvID0gcGFyYWdyYXBoc1twYXJhZ3JhcGhJbmRleF0ucGFyYWdyYXBoU2V0dGluZ3MudGV4dExpbmVzSW5mb1tsaW5lSW5kZXhdO1xuICAgICAgICBsZXQgd2lkdGggPSBwb3NpdGlvbldpZHRoIC0gdGV4dExpbmVJbmZvLnBhZGRpbmdMZWZ0IC0gZG9jdW1lbnRNYXJnaW4ubGVmdDtcbiAgICAgICAgd2hpbGUgKGNvbHVtbiA8IHRva2Vucy5sZW5ndGggJiYgd2lkdGggPj0gdG9rZW5zW2NvbHVtbl0ud2lkdGgpIHtcbiAgICAgICAgICAgIHdpZHRoIC09IHRva2Vuc1tjb2x1bW5dLndpZHRoO1xuICAgICAgICAgICAgY29sdW1uKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICB9XG5cbiAgICBzdGF0aWMgcGl4ZWxUb1BhZ2UocG9zWTogbnVtYmVyLCBzZXNzaW9uOiBFZGl0U2Vzc2lvbik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBhZ2VzQ291bnQgPSBzZXNzaW9uLmRpc3BsYXlEYXRhLmdldFBhcmFncmFwaFNldHRpbmdzKHNlc3Npb24uZGlzcGxheURhdGEucGFyYWdyYXBocy5sZW5ndGggLSAxKS5sYXN0UGFnZU51bWJlcjtcbiAgICAgICAgbGV0IHBhZ2UgPSAxO1xuICAgICAgICB3aGlsZSAocGFnZSA8PSBwYWdlc0NvdW50KSB7XG4gICAgICAgICAgICBjb25zdCBlbmRQYWdlUG9zaXRpb24gPSAoc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYWdlc1NwYWNlICsgc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYWdlSGVpZ2h0KSAqIHBhZ2U7XG4gICAgICAgICAgICBpZiAoZW5kUGFnZVBvc2l0aW9uID49IHBvc1kpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhZ2UrKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFnZTtcbiAgICB9XG59XG4iXX0=
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL3Bvc2l0aW9uaW5nL3Bvc2l0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUt0RCxNQUFNLE9BQU8sY0FBYztJQUN2Qjs7T0FFRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBb0IsRUFBRSxnQkFBaUM7UUFDMUUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFckcsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7O1FBRUk7SUFDSixNQUFNLENBQUMscUJBQXFCLENBQUMsVUFBZ0MsRUFBRSxHQUFXO1FBQ3RFLE1BQU0sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNoQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FB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LGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRixJQUFJLEtBQUssR0FBRyxhQUFhLEdBQUcsWUFBWSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDO1FBQzNFLE9BQU8sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDNUQsS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDOUIsTUFBTSxFQUFFLENBQUM7U0FDWjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLE9BQWUsRUFBRSxXQUF3QixFQUFFLFlBQTZCO1FBQ3ZGLE1BQU0sU0FBUyxHQUFHLE9BQU8sR0FBRyxXQUFXLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDdkcsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDdkYsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3Vyc29yUGFyYWdyYXBoIH0gZnJvbSAnLi9jdXJzb3ItcGFyYWdyYXBoJztcbmltcG9ydCB7IEN1cnNvclBvc2l0aW9uIH0gZnJvbSAnLi9jdXJzb3ItcG9zaXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IERpc3BsYXlWYWx1ZSB9IGZyb20gJy4uL2NvbnRlbnQvY29uc3RhbnRzL2Rpc3BsYXktdmFsdWVzLmNvbnN0JztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vZXhlY3V0aW9uL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBJRm9udE1ldHJpY1NpemUgfSBmcm9tICcuLi9nYWRnZXRzL2ZvbnQtbWV0cmljcy9mb250LW1ldHJpYy1zaXplLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMaW5lV2lkdGhIZWxwZXIgfSBmcm9tICcuL2xpbmUtd2lkdGguaGVscGVyJztcbmltcG9ydCB7IFBhcmFncmFwaEluZm8gfSBmcm9tICcuLi9jb250ZW50L2Rpc3BsYXktZGF0YS9wYXJhZ3JhcGgtaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGFyYWdyYXBoSW5mb01vZGVsIH0gZnJvbSAnLi4vY29udGVudC9kaXNwbGF5LWRhdGEvbW9kZWxzL3BhcmFncmFwaC1pbmZvLm1vZGVsJztcbmltcG9ydCB7IFZpcnR1YWxSZW5kZXJlciB9IGZyb20gJy4uL2Rpc3BsYXkvdmlydHVhbC5yZW5kZXJlcic7XG5cbmV4cG9ydCBjbGFzcyBQb3NpdGlvbkhlbHBlciB7XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgYHBhZ2VYYCBhbmQgYHBhZ2VZYCBjb29yZGluYXRlcyBvZiB0aGUgZG9jdW1lbnQgcG9zaXRpb24uXG4gICAgICovXG4gICAgc3RhdGljIGRvY3VtZW50VG9QaXhlbChzZXNzaW9uOiBFZGl0U2Vzc2lvbiwgZG9jdW1lbnRQb3NpdGlvbjogQ3Vyc29yUGFyYWdyYXBoKTogQ3Vyc29yUG9zaXRpb24ge1xuICAgICAgICBjb25zdCBzY3JlZW5Qb3NpdGlvbiA9IHRoaXMuZG9jdW1lbnRUb1NjcmVlbihzZXNzaW9uLCBkb2N1bWVudFBvc2l0aW9uLnJvdywgZG9jdW1lbnRQb3NpdGlvbi5jb2x1bW4pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnNjcmVlblRvUGl4ZWwoc2Vzc2lvbiwgc2NyZWVuUG9zaXRpb24ucm93LCBzY3JlZW5Qb3NpdGlvbi5jb2x1bW4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBwYXJhZ3JhcGggaW5mbyAocGFyYWdyYXBoIGluZGV4LCBwYXJhZ3JhcGggbGluZSBpbmRleCwgbGluZSB0b3Agb2Zmc2V0IGFuZCBvdGhlcnMpIGJ5IHJvdyBpbmRleFxuICAgICAqKi9cbiAgICBzdGF0aWMgZ2V0UGFyYWdyYXBoSW5mb0J5Um93KHBhcmFncmFwaHM6IFBhcmFncmFwaEluZm9Nb2RlbFtdLCByb3c6IG51bWJlcik6IFBhcmFncmFwaEluZm8ge1xuICAgICAgICBjb25zdCB7IHBhcmFncmFwaEluZGV4LCBsaW5lSW5kZXggfSA9IHRoaXMuZmluZExpbmVJblBhcmFncmFwaHMocGFyYWdyYXBocywgcm93KTtcbiAgICAgICAgbGV0IGxpbmVUb3BPZmZzZXQgPSAwO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVJbmRleDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpbmZvID0gcGFyYWdyYXBoc1twYXJhZ3JhcGhJbmRleF0ucGFyYWdyYXBoU2V0dGluZ3MudGV4dExpbmVzSW5mb1tpXTtcbiAgICAgICAgICAgIGxpbmVUb3BPZmZzZXQgKz0gaW5mby5oZWlnaHQgKyBpbmZvLmVuZFBhZ2VPZmZzZXQgKyBpbmZvLm9mZnNldEJlZm9yZSArIGluZm8ub2Zmc2V0QWZ0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJhZ3JhcGhMaW5lSW5mbyA9IHBhcmFncmFwaHNbcGFyYWdyYXBoSW5kZXhdLnBhcmFncmFwaFNldHRpbmdzLnRleHRMaW5lc0luZm9bbGluZUluZGV4XTtcbiAgICAgICAgbGluZVRvcE9mZnNldCArPSBwYXJhZ3JhcGhMaW5lSW5mby5vZmZzZXRCZWZvcmU7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhcmFncmFwaEluZGV4LFxuICAgICAgICAgICAgbGluZUluZGV4LFxuICAgICAgICAgICAgbGluZVRvcE9mZnNldCxcbiAgICAgICAgICAgIGluZGVudEJlZm9yZTogcGFyYWdyYXBoTGluZUluZm8ub2Zmc2V0QmVmb3JlLFxuICAgICAgICAgICAgbGluZUhlaWdodDogcGFyYWdyYXBoTGluZUluZm8uaGVpZ2h0XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgc3RhdGljIGRvY3VtZW50VG9TY3JlZW4oc2Vzc2lvbjogRWRpdFNlc3Npb24sIHBhcmFncmFwaDogbnVtYmVyLCBpbmRleEluUGFyYWdyYXBoOiBudW1iZXIpOiBDdXJzb3JQYXJhZ3JhcGgge1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhMaW5lID0gc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYXJhZ3JhcGhzW3BhcmFncmFwaF0ubGluZU51bWJlcjtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXNlc3Npb24uZGlzcGxheURhdGEucGFyYWdyYXBoc1twYXJhZ3JhcGhdLm5leHRMaW5lSW5kZXhlcy5sZW5ndGggfHxcbiAgICAgICAgICAgIHNlc3Npb24uZGlzcGxheURhdGEucGFyYWdyYXBoc1twYXJhZ3JhcGhdLm5leHRMaW5lSW5kZXhlc1swXSA+IGluZGV4SW5QYXJhZ3JhcGhcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEN1cnNvclBhcmFncmFwaChwYXJhZ3JhcGhMaW5lLCBpbmRleEluUGFyYWdyYXBoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsaW5lID0gMDtcbiAgICAgICAgd2hpbGUgKFxuICAgICAgICAgICAgc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYXJhZ3JhcGhzW3BhcmFncmFwaF0ubmV4dExpbmVJbmRleGVzW2xpbmVdIDw9IGluZGV4SW5QYXJhZ3JhcGggJiZcbiAgICAgICAgICAgIGxpbmUgPCBzZXNzaW9uLmRpc3BsYXlEYXRhLnBhcmFncmFwaHNbcGFyYWdyYXBoXS5uZXh0TGluZUluZGV4ZXMubGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgICAgbGluZSsrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gaW5kZXhJblBhcmFncmFwaCAtIHNlc3Npb24uZGlzcGxheURhdGEucGFyYWdyYXBoc1twYXJhZ3JhcGhdLm5leHRMaW5lSW5kZXhlc1tsaW5lIC0gMV07XG4gICAgICAgIHJldHVybiBuZXcgQ3Vyc29yUGFyYWdyYXBoKHBhcmFncmFwaExpbmUgKyBsaW5lLCBpbmRleCk7XG4gICAgfVxuXG4gICAgc3RhdGljIHNjcmVlblRvRG9jdW1lbnQoc2Vzc2lvbjogRWRpdFNlc3Npb24sIGxpbmU6IG51bWJlciwgaW5kZXhJbkxpbmU6IG51bWJlcik6IEN1cnNvclBhcmFncmFwaCB7XG4gICAgICAgIGxldCBwYXJhZ3JhcGggPSBzZXNzaW9uLmRpc3BsYXlEYXRhLnBhcmFncmFwaHMuZmluZEluZGV4KHggPT4geC5saW5lTnVtYmVyID4gbGluZSk7XG4gICAgICAgIGlmIChwYXJhZ3JhcGggPT09IC0xKSB7XG4gICAgICAgICAgICBwYXJhZ3JhcGggPSBzZXNzaW9uLmRpc3BsYXlEYXRhLnBhcmFncmFwaHMubGVuZ3RoIC0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChwYXJhZ3JhcGggPiAwKSB7XG4gICAgICAgICAgICBwYXJhZ3JhcGggPSBwYXJhZ3JhcGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIGxldCBsaW5lSW5QYXJhZ3JhcGggPSBsaW5lIC0gc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYXJhZ3JhcGhzW3BhcmFncmFwaF0ubGluZU51bWJlcjtcbiAgICAgICAgaWYgKCFzZXNzaW9uLmRpc3BsYXlEYXRhLnBhcmFncmFwaHNbcGFyYWdyYXBoXS5uZXh0TGluZUluZGV4ZXMubGVuZ3RoIHx8IGxpbmVJblBhcmFncmFwaCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDdXJzb3JQYXJhZ3JhcGgocGFyYWdyYXBoLCBpbmRleEluTGluZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSBpbmRleEluTGluZSArIHNlc3Npb24uZGlzcGxheURhdGEucGFyYWdyYXBoc1twYXJhZ3JhcGhdLm5leHRMaW5lSW5kZXhlc1tsaW5lSW5QYXJhZ3JhcGggLSAxXTtcbiAgICAgICAgcmV0dXJuIG5ldyBDdXJzb3JQYXJhZ3JhcGgocGFyYWdyYXBoLCBpbmRleCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgYHBhZ2VYYCBhbmQgYHBhZ2VZYCBjb29yZGluYXRlcyBvZiB0aGUgZG9jdW1lbnQgcG9zaXRpb24uXG4gICAgICoqL1xuICAgIHN0YXRpYyBzY3JlZW5Ub1BpeGVsKHNlc3Npb246IEVkaXRTZXNzaW9uLCByb3c6IG51bWJlciwgY29sdW1uOiBudW1iZXIpOiBDdXJzb3JQb3NpdGlvbiB7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaHMgPSBzZXNzaW9uLmRpc3BsYXlEYXRhLnBhcmFncmFwaHM7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaEluZm8gPSB0aGlzLmdldFBhcmFncmFwaEluZm9CeVJvdyhwYXJhZ3JhcGhzLCByb3cpO1xuICAgICAgICBjb25zdCB0b2tlbnMgPSBMaW5lV2lkdGhIZWxwZXIuZ2V0UGFyYWdyYXBoTGluZURpc3BsYXlUb2tlbnMoc2Vzc2lvbiwgcGFyYWdyYXBoSW5mby5wYXJhZ3JhcGhJbmRleCwgcGFyYWdyYXBoSW5mby5saW5lSW5kZXgpO1xuXG4gICAgICAgIGxldCBzaXplOiBJRm9udE1ldHJpY1NpemUgPSB7XG4gICAgICAgICAgICB3aWR0aDogOCxcbiAgICAgICAgICAgIGhlaWdodDogcGFyYWdyYXBoSW5mby5saW5lSGVpZ2h0LFxuICAgICAgICAgICAgYmFzZWxpbmU6IHBhcmFncmFwaEluZm8ubGluZUhlaWdodCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHBhcmFncmFwaEluZm8ubGluZUhlaWdodCxcbiAgICAgICAgICAgIGZvbnQ6IHBhcmFncmFwaEluZm8ubGluZUhlaWdodCxcbiAgICAgICAgICAgIGxpbmU6IHBhcmFncmFwaEluZm8ubGluZUhlaWdodCxcbiAgICAgICAgICAgIG11bHRpcGxpZXI6IHBhcmFncmFwaEluZm8ubGluZUhlaWdodCxcbiAgICAgICAgICAgIGFzY2VudDogMCxcbiAgICAgICAgICAgIGRlc2NlbnQ6IDBcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IHRva2VuSW5kZXggPSBjb2x1bW4gPiAwID8gY29sdW1uIC0gMSA6IGNvbHVtbjtcbiAgICAgICAgaWYgKHRva2Vucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBzaXplID0gdG9rZW5zW3Rva2VuSW5kZXhdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2l6ZU5leHQgPSB0b2tlbnNbdG9rZW5JbmRleCArIDFdO1xuICAgICAgICBsZXQgc2l6ZU1heCA9IHsgLi4uc2l6ZSB9O1xuICAgICAgICBsZXQgbGluZVdpZHRoVG9Qb3NpdGlvbiA9IHNlc3Npb24uZGlzcGxheURhdGEucGFnZU1hcmdpbi5sZWZ0O1xuICAgICAgICBmb3IgKGxldCBjdXJyZW50Q29sdW1uID0gMDsgY3VycmVudENvbHVtbiA8IHRva2Vucy5sZW5ndGg7IGN1cnJlbnRDb2x1bW4rKykge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRDb2x1bW4gPCBjb2x1bW4pIHtcbiAgICAgICAgICAgICAgICBsaW5lV2lkdGhUb1Bvc2l0aW9uICs9IHRva2Vuc1tjdXJyZW50Q29sdW1uXS53aWR0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNpemVNYXguYXNjZW50IDwgdG9rZW5zW2N1cnJlbnRDb2x1bW5dLmFzY2VudCkge1xuICAgICAgICAgICAgICAgIHNpemVNYXggPSB0b2tlbnNbY3VycmVudENvbHVtbl07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodG9rZW5zW3Rva2VuSW5kZXhdPy5pc1RhYmxlKSB7XG4gICAgICAgICAgICBzaXplTWF4LmFzY2VudCA9IHBhcmFncmFwaEluZm8ubGluZUhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcmFncmFwaCA9IHBhcmFncmFwaHNbcGFyYWdyYXBoSW5mby5wYXJhZ3JhcGhJbmRleF07XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaFRvcCA9IHBhcmFncmFwaC5wYXJhZ3JhcGhTZXR0aW5ncy5kaXN0YW5jZUZyb21Ub3AgfHwgMDtcbiAgICAgICAgY29uc3QgbGluZVBhZGRpbmdMZWZ0ID0gcGFyYWdyYXBoLnBhcmFncmFwaFNldHRpbmdzLnRleHRMaW5lc0luZm9bcGFyYWdyYXBoSW5mby5saW5lSW5kZXhdLnBhZGRpbmdMZWZ0O1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwYWdlWDogbGluZVdpZHRoVG9Qb3NpdGlvbiArIGxpbmVQYWRkaW5nTGVmdCxcbiAgICAgICAgICAgIHBhZ2VZOiBwYXJhZ3JhcGhUb3AgKyBwYXJhZ3JhcGhJbmZvLmxpbmVUb3BPZmZzZXQgLSBzZXNzaW9uLnNjcm9sbFRvcCxcbiAgICAgICAgICAgIGxpbmVIZWlnaHQ6IHBhcmFncmFwaEluZm8ubGluZUhlaWdodCxcbiAgICAgICAgICAgIHNpemVDdXJyZW50OiBzaXplLFxuICAgICAgICAgICAgc2l6ZU1heCxcbiAgICAgICAgICAgIHNpemVOZXh0LFxuICAgICAgICAgICAgZmlyc3RDaGFyOiBjb2x1bW4gPT09IDAsXG4gICAgICAgICAgICBsYXN0Q2hhcjogY29sdW1uID09PSB0b2tlbnMubGVuZ3RoIC0gMVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBhcmFncmFwaCBhbmQgbGluZSBpbmRleCBiYXNlZCBvbiB0aGUgZ2l2ZW4gWSBwb3NpdGlvbi5cbiAgICAgKiovXG4gICAgc3RhdGljIGdldFBhcmFncmFwaEFuZExpbmVJbmRleEZyb21ZUG9zaXRpb24oXG4gICAgICAgIHNlc3Npb246IEVkaXRTZXNzaW9uLFxuICAgICAgICB5UG9zaXRpb246IG51bWJlcixcbiAgICAgICAgdG9wOiBudW1iZXJcbiAgICApOiB7IHBhcmFncmFwaEluZGV4OiBudW1iZXI7IGxpbmVJbmRleDogbnVtYmVyIH0ge1xuICAgICAgICBjb25zdCB7IGRpc3BsYXlEYXRhLCBzY3JvbGxUb3AgfSA9IHNlc3Npb247XG4gICAgICAgIHlQb3NpdGlvbiArPSBzY3JvbGxUb3AgLSB0b3A7XG5cbiAgICAgICAgbGV0IHBhcmFncmFwaEluZGV4ID0gZGlzcGxheURhdGEucGFyYWdyYXBocy5maW5kSW5kZXgocGFyYWdyYXBoID0+IHBhcmFncmFwaC5wYXJhZ3JhcGhTZXR0aW5ncy5kaXN0YW5jZUZyb21Ub3AgPiB5UG9zaXRpb24pO1xuICAgICAgICBpZiAocGFyYWdyYXBoSW5kZXggPCAwKSB7XG4gICAgICAgICAgICBwYXJhZ3JhcGhJbmRleCA9IGRpc3BsYXlEYXRhLnBhcmFncmFwaHMubGVuZ3RoIC0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChwYXJhZ3JhcGhJbmRleCA+IDApIHtcbiAgICAgICAgICAgIHBhcmFncmFwaEluZGV4LS07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJhZ3JhcGhTZXR0aW5ncyA9IGRpc3BsYXlEYXRhLnBhcmFncmFwaHNbcGFyYWdyYXBoSW5kZXhdLnBhcmFncmFwaFNldHRpbmdzO1xuICAgICAgICB5UG9zaXRpb24gLT0gcGFyYWdyYXBoU2V0dGluZ3MuZGlzdGFuY2VGcm9tVG9wO1xuXG4gICAgICAgIGxldCBsaW5lSW5kZXggPSAwO1xuICAgICAgICB3aGlsZSAoeVBvc2l0aW9uID4gMCAmJiBsaW5lSW5kZXggPCBwYXJhZ3JhcGhTZXR0aW5ncy50ZXh0TGluZXNJbmZvLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVJbmZvID0gcGFyYWdyYXBoU2V0dGluZ3MudGV4dExpbmVzSW5mb1tsaW5lSW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgbGluZUhlaWdodCA9IGxpbmVJbmZvLmhlaWdodCArIGxpbmVJbmZvLmVuZFBhZ2VPZmZzZXQgKyBsaW5lSW5mby5vZmZzZXRCZWZvcmUgKyBsaW5lSW5mby5vZmZzZXRBZnRlcjtcblxuICAgICAgICAgICAgaWYgKHlQb3NpdGlvbiA8PSBsaW5lSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5lSW5kZXgrKztcbiAgICAgICAgICAgIHlQb3NpdGlvbiAtPSBsaW5lSGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgcGFyYWdyYXBoSW5kZXgsIGxpbmVJbmRleCB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1hcHMgYSBwaXhlbCBwb3NpdGlvbiB0byBhIHNjcmVlbiBwb3NpdGlvbiB1c2luZyBoYWxmLXRva2VuIHdpZHRoIGNvbXBhcmlzb24uXG4gICAgICovXG4gICAgc3RhdGljIG1hcFBpeGVsVG9DbG9zZXN0VG9rZW5NaWRwb2ludChcbiAgICAgICAgc2Vzc2lvbjogRWRpdFNlc3Npb24sXG4gICAgICAgIHhQaXhlbDogbnVtYmVyLFxuICAgICAgICBwYXJhZ3JhcGhJbmRleDogbnVtYmVyLFxuICAgICAgICBsaW5lSW5kZXg6IG51bWJlcixcbiAgICAgICAgbGVmdE9mZnNldDogbnVtYmVyXG4gICAgKTogeyBsaW5lOiBudW1iZXI7IGluZGV4SW5MaW5lOiBudW1iZXIgfSB7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaFNldHRpbmdzID0gc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYXJhZ3JhcGhzW3BhcmFncmFwaEluZGV4XS5wYXJhZ3JhcGhTZXR0aW5ncztcbiAgICAgICAgY29uc3QgbGluZSA9IHBhcmFncmFwaFNldHRpbmdzLnRleHRMaW5lc0luZm9bbGluZUluZGV4XS5zY3JlZW5MaW5lO1xuXG4gICAgICAgIGxldCBpbmRleEluTGluZSA9IDA7XG4gICAgICAgIGxldCByZWxhdGl2ZVggPSB4UGl4ZWwgLSBsZWZ0T2Zmc2V0IC0gc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYWdlTWFyZ2luLmxlZnQgLSBwYXJhZ3JhcGhTZXR0aW5ncy50ZXh0TGluZXNJbmZvW2xpbmVJbmRleF0ucGFkZGluZ0xlZnQ7XG5cbiAgICAgICAgY29uc3QgdG9rZW5zID0gTGluZVdpZHRoSGVscGVyLmdldFBhcmFncmFwaExpbmVEaXNwbGF5VG9rZW5zKHNlc3Npb24sIHBhcmFncmFwaEluZGV4LCBsaW5lSW5kZXgpO1xuICAgICAgICBpZiAodG9rZW5zWzBdLmRpc3BsYXlWYWx1ZSA9PT0gRGlzcGxheVZhbHVlLmVtcHR5TGluZSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgbGluZSwgaW5kZXhJbkxpbmUgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChpbmRleEluTGluZSA8IHRva2Vucy5sZW5ndGggJiYgcmVsYXRpdmVYID49IHRva2Vuc1tpbmRleEluTGluZV0ud2lkdGggLyAyKSB7XG4gICAgICAgICAgICByZWxhdGl2ZVggLT0gdG9rZW5zW2luZGV4SW5MaW5lXS53aWR0aDtcbiAgICAgICAgICAgIGluZGV4SW5MaW5lKys7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBsaW5lLCBpbmRleEluTGluZSB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1hcHMgYSBwaXhlbCBwb3NpdGlvbiB0byBhIHNjcmVlbiBwb3NpdGlvbiB1c2luZyBmdWxsLXRva2VuIHdpZHRoIGNvbXBhcmlzb24uXG4gICAgICovXG4gICAgc3RhdGljIG1hcFBpeGVsVG9OZXh0VG9rZW5Cb3VuZGFyeShcbiAgICAgICAgc2Vzc2lvbjogRWRpdFNlc3Npb24sXG4gICAgICAgIHhQaXhlbDogbnVtYmVyLFxuICAgICAgICBwYXJhZ3JhcGhJbmRleDogbnVtYmVyLFxuICAgICAgICBsaW5lSW5kZXg6IG51bWJlcixcbiAgICAgICAgbGVmdE9mZnNldDogbnVtYmVyXG4gICAgKTogeyBsaW5lOiBudW1iZXI7IGluZGV4SW5MaW5lOiBudW1iZXIgfSB7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaFNldHRpbmdzID0gc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYXJhZ3JhcGhzW3BhcmFncmFwaEluZGV4XS5wYXJhZ3JhcGhTZXR0aW5ncztcbiAgICAgICAgY29uc3QgbGluZSA9IHBhcmFncmFwaFNldHRpbmdzLnRleHRMaW5lc0luZm9bbGluZUluZGV4XS5zY3JlZW5MaW5lO1xuXG4gICAgICAgIGxldCBpbmRleEluTGluZSA9IDA7XG4gICAgICAgIGxldCByZWxhdGl2ZVggPSB4UGl4ZWwgLSBsZWZ0T2Zmc2V0IC0gc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYWdlTWFyZ2luLmxlZnQgLSBwYXJhZ3JhcGhTZXR0aW5ncy50ZXh0TGluZXNJbmZvW2xpbmVJbmRleF0ucGFkZGluZ0xlZnQ7XG5cbiAgICAgICAgY29uc3QgdG9rZW5zID0gTGluZVdpZHRoSGVscGVyLmdldFBhcmFncmFwaExpbmVEaXNwbGF5VG9rZW5zKHNlc3Npb24sIHBhcmFncmFwaEluZGV4LCBsaW5lSW5kZXgpO1xuICAgICAgICBpZiAodG9rZW5zWzBdLmRpc3BsYXlWYWx1ZSA9PT0gRGlzcGxheVZhbHVlLmVtcHR5TGluZSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgbGluZSwgaW5kZXhJbkxpbmUgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChpbmRleEluTGluZSA8IHRva2Vucy5sZW5ndGggJiYgcmVsYXRpdmVYID49IHRva2Vuc1tpbmRleEluTGluZV0ud2lkdGgpIHtcbiAgICAgICAgICAgIHJlbGF0aXZlWCAtPSB0b2tlbnNbaW5kZXhJbkxpbmVdLndpZHRoO1xuICAgICAgICAgICAgaW5kZXhJbkxpbmUrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IGxpbmUsIGluZGV4SW5MaW5lIH07XG4gICAgfVxuXG4gICAgc3RhdGljIGZpbmRMaW5lSW5QYXJhZ3JhcGhzKHBhcmFncmFwaHM6IFBhcmFncmFwaEluZm9Nb2RlbFtdLCBkb2N1bWVudExpbmU6IG51bWJlcik6IHsgcGFyYWdyYXBoSW5kZXg6IG51bWJlcjsgbGluZUluZGV4OiBudW1iZXIgfSB7XG4gICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgIGxldCBwYXJhZ3JhcGhJbmRleCA9IDA7XG4gICAgICAgIHdoaWxlIChwYXJhZ3JhcGhJbmRleCA8IHBhcmFncmFwaHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoaW5kZXggKyBwYXJhZ3JhcGhzW3BhcmFncmFwaEluZGV4XS5wYXJhZ3JhcGhTZXR0aW5ncy50ZXh0TGluZXNJbmZvLmxlbmd0aCA+IGRvY3VtZW50TGluZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbmRleCArPSBwYXJhZ3JhcGhzW3BhcmFncmFwaEluZGV4XS5wYXJhZ3JhcGhTZXR0aW5ncy50ZXh0TGluZXNJbmZvLmxlbmd0aDtcbiAgICAgICAgICAgIHBhcmFncmFwaEluZGV4Kys7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGluZUluZGV4ID0gZG9jdW1lbnRMaW5lIC0gaW5kZXg7XG4gICAgICAgIHJldHVybiB7IHBhcmFncmFwaEluZGV4LCBsaW5lSW5kZXggfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0QXBwcm94aW1hdGVQb3NpdGlvbihzZXNzaW9uOiBFZGl0U2Vzc2lvbiwgZG9jdW1lbnRMaW5lOiBudW1iZXIsIHBvc2l0aW9uV2lkdGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaHMgPSBzZXNzaW9uLmRpc3BsYXlEYXRhLnBhcmFncmFwaHM7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50TWFyZ2luID0gc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYWdlTWFyZ2luO1xuICAgICAgICBjb25zdCB7IHBhcmFncmFwaEluZGV4LCBsaW5lSW5kZXggfSA9IFBvc2l0aW9uSGVscGVyLmZpbmRMaW5lSW5QYXJhZ3JhcGhzKHBhcmFncmFwaHMsIGRvY3VtZW50TGluZSk7XG4gICAgICAgIGxldCBjb2x1bW4gPSAwO1xuICAgICAgICBjb25zdCB0b2tlbnMgPSBMaW5lV2lkdGhIZWxwZXIuZ2V0UGFyYWdyYXBoTGluZURpc3BsYXlUb2tlbnMoc2Vzc2lvbiwgcGFyYWdyYXBoSW5kZXgsIGxpbmVJbmRleCk7XG4gICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09PSAxICYmIHRva2Vuc1swXS5kaXNwbGF5VmFsdWUgPT09IERpc3BsYXlWYWx1ZS5lbXB0eUxpbmUpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0ZXh0TGluZUluZm8gPSBwYXJhZ3JhcGhzW3BhcmFncmFwaEluZGV4XS5wYXJhZ3JhcGhTZXR0aW5ncy50ZXh0TGluZXNJbmZvW2xpbmVJbmRleF07XG4gICAgICAgIGxldCB3aWR0aCA9IHBvc2l0aW9uV2lkdGggLSB0ZXh0TGluZUluZm8ucGFkZGluZ0xlZnQgLSBkb2N1bWVudE1hcmdpbi5sZWZ0O1xuICAgICAgICB3aGlsZSAoY29sdW1uIDwgdG9rZW5zLmxlbmd0aCAmJiB3aWR0aCA+PSB0b2tlbnNbY29sdW1uXS53aWR0aCkge1xuICAgICAgICAgICAgd2lkdGggLT0gdG9rZW5zW2NvbHVtbl0ud2lkdGg7XG4gICAgICAgICAgICBjb2x1bW4rKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29sdW1uO1xuICAgIH1cblxuICAgIHN0YXRpYyBwaXhlbFRvUGFnZShjbGllbnRZOiBudW1iZXIsIG1haW5TZXNzaW9uOiBFZGl0U2Vzc2lvbiwgbWFpblJlbmRlcmVyOiBWaXJ0dWFsUmVuZGVyZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBwb3NpdGlvblkgPSBjbGllbnRZICsgbWFpblNlc3Npb24uc2Nyb2xsVG9wIC0gbWFpblJlbmRlcmVyLmNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IG1haW5TZXNzaW9uLmRpc3BsYXlEYXRhLnBhZ2VzU3BhY2UgKyBtYWluU2Vzc2lvbi5kaXNwbGF5RGF0YS5wYWdlSGVpZ2h0O1xuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihwb3NpdGlvblkgLyBoZWlnaHQpICsgMTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -24,9 +24,11 @@ export class RevisionHelper {
|
|
|
24
24
|
}
|
|
25
25
|
static fillEdgesDefaultStyles(headers, footers) {
|
|
26
26
|
for (const header of headers) {
|
|
27
|
+
this.fillTablesDefaultStyles(header.tables);
|
|
27
28
|
this.fillDefaultStyles(header);
|
|
28
29
|
}
|
|
29
30
|
for (const footer of footers) {
|
|
31
|
+
this.fillTablesDefaultStyles(footer.tables);
|
|
30
32
|
this.fillDefaultStyles(footer);
|
|
31
33
|
}
|
|
32
34
|
}
|
|
@@ -89,4 +91,4 @@ export class RevisionHelper {
|
|
|
89
91
|
});
|
|
90
92
|
}
|
|
91
93
|
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2aXNpb24uaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL3JldmlzaW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBSWhGLE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxRQUF1QixFQUFFLFVBQTRCO1FBQ2xGLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9B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UUFBUSxFQUFFLGdCQUFnQjtZQUMxQixVQUFVLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDL0IsU0FBUyxFQUFFLFlBQVksQ0FBQyxLQUFLO1lBQzdCLFVBQVUsRUFBRTtnQkFDUixJQUFJLGNBQWMsQ0FBQztvQkFDZixXQUFXLEVBQUUsQ0FBQztvQkFDZCxjQUFjLEVBQUUsdUJBQXVCO2lCQUMxQyxDQUFDO2FBQ0w7WUFDRCxNQUFNLEVBQUUsRUFBRTtZQUNWLFFBQVEsRUFBRSxFQUFFO1lBQ1osT0FBTyxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztZQUN6RixNQUFNLEVBQUUsRUFBRTtZQUNWLEtBQUssRUFBRSxFQUFFO1lBQ1QsWUFBWSxFQUFFLFVBQVUsQ0FBQyxNQUFNO1lBQy9CLFlBQVksRUFBRSxVQUFVLENBQUMsTUFBTTtZQUMvQixZQUFZLEVBQUUsVUFBVSxDQUFDLE1BQU07WUFDL0IsVUFBVSxFQUFFLFVBQVUsQ0FBQyxJQUFJO1lBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsS0FBSztZQUM3QixTQUFTLEVBQUUsVUFBVSxDQUFDLEdBQUc7WUFDekIsTUFBTSxFQUFFLEVBQUU7WUFDVixVQUFVLEVBQUUsRUFBRTtZQUNkLElBQUksRUFBRSxFQUFFO1lBQ1IsZUFBZSxFQUFFLGlCQUFpQjtTQUNyQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZW50c0ludGVyZmFjZSB9IGZyb20gJy4vY29udGVudC9jb250ZW50cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29udGVudFN0eWxlSGVscGVyIH0gZnJvbSAnLi9jb250ZW50L2hlbHBlcnMvY29udGVudC1zdHlsZS5oZWxwZXInO1xuaW1wb3J0IHsgREVGQVVMVF9IRUFESU5HUywgREVGQVVMVF9QQVJBR1JBUEhfU1RZTEUsIERFRkFVTFRfVEFCX1dJRFRILCBERUZBVUxUX1RFWFRfU1RZTEUgfSBmcm9tICcuL2NvbnRlbnQvY29uc3RhbnRzL2VkaXRvci5jb25zdCc7XG5pbXBvcnQgeyBEb2N1bWVudEluZm8gfSBmcm9tICcuL2NvbnRlbnQvY29uc3RhbnRzL2RvY3VtZW50LWluZm8uY29uc3QnO1xuaW1wb3J0IHsgRG9jeE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2dlbmVyYXRlZC9kb2N4Lm1vZGVsJztcbmltcG9ydCB7IEVkZ2VNb2RlbCB9IGZyb20gJy4uL21vZGVscy9nZW5lcmF0ZWQvZWRnZS5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtYXRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9nZW5lcmF0ZWQvZm9ybWF0Lm1vZGVsJztcbmltcG9ydCB7IE1hcmdpbk1vZGVsIH0gZnJvbSAnLi9jb250ZW50L21hcmdpbi5tb2RlbCc7XG5pbXBvcnQgeyBPcGVyYXRpb25Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9nZW5lcmF0ZWQvb3BlcmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IE9wZXJhdGlvbnNIZWxwZXIgfSBmcm9tICcuL29wZXJhdGlvbnMvb3BlcmF0aW9ucy1oZWxwZXIuaGVscGVyJztcbmltcG9ydCB7IFBhcmFncmFwaE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2dlbmVyYXRlZC9wYXJhZ3JhcGgubW9kZWwnO1xuaW1wb3J0IHsgUGFyYWdyYXBoU3R5bGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLXN0eWxlLm1vZGVsJztcbmltcG9ydCB7IFJldmlzaW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZ2VuZXJhdGVkL3JldmlzaW9uLm1vZGVsJztcbmltcG9ydCB7IFRhYmxlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZ2VuZXJhdGVkL3RhYmxlLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIFJldmlzaW9uSGVscGVyIHtcbiAgICBzdGF0aWMgYXBwbHlPcGVyYXRpb25zVG9SZXZpc2lvbihyZXZpc2lvbjogUmV2aXNpb25Nb2RlbCwgb3BlcmF0aW9uczogT3BlcmF0aW9uTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICBvcGVyYXRpb25zLnNvcnQoKGEsIGIpID0+IGEuY3JlYXRlVGltZSAtIGIuY3JlYXRlVGltZSk7XG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSBvcGVyYXRpb25zLm1hcCh4ID0+IHguY29tbWFuZCk7XG4gICAgICAgIE9wZXJhdGlvbnNIZWxwZXIuYXBwbHlPcGVyYXRpb25zKHJldmlzaW9uLmNvbnRlbnQsIGFjdGlvbnMpO1xuICAgIH1cblxuICAgIHN0YXRpYyBmaWxsVGFibGVzRGVmYXVsdFN0eWxlcyh0YWJsZXM6IFRhYmxlTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IHRhYmxlIG9mIHRhYmxlcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCByb3cgb2YgdGFibGUucm93cykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY2VsbCBvZiByb3cuY2VsbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxsRGVmYXVsdFN0eWxlcyhjZWxsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgZmlsbEVkZ2VzRGVmYXVsdFN0eWxlcyhoZWFkZXJzOiBFZGdlTW9kZWxbXSwgZm9vdGVyczogRWRnZU1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCBoZWFkZXIgb2YgaGVhZGVycykge1xuICAgICAgICAgICAgdGhpcy5maWxsRGVmYXVsdFN0eWxlcyhoZWFkZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBmb290ZXIgb2YgZm9vdGVycykge1xuICAgICAgICAgICAgdGhpcy5maWxsRGVmYXVsdFN0eWxlcyhmb290ZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGZpbGxEZWZhdWx0U3R5bGVzKGNvbnRlbnRzOiBDb250ZW50c0ludGVyZmFjZSk6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBjb250ZW50cy5mb3JtYXRzKSB7XG4gICAgICAgICAgICBmb3JtYXQudGV4dFN0eWxlID0gQ29udGVudFN0eWxlSGVscGVyLmNvbWJpbmVUZXh0U3R5bGVzKGZvcm1hdC50ZXh0U3R5bGUsIERFRkFVTFRfVEVYVF9TVFlMRSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHBhcmFncmFwaCBvZiBjb250ZW50cy5wYXJhZ3JhcGhzKSB7XG4gICAgICAgICAgICBwYXJhZ3JhcGgucGFyYWdyYXBoU3R5bGUgPSB0aGlzLmZpbGxQYXJhZ3JhcGhTdHlsZU1vZGVsKHBhcmFncmFwaC5wYXJhZ3JhcGhTdHlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgZmlsbFBhcmFncmFwaFN0eWxlTW9kZWwocGFyYWdyYXBoU3R5bGU6IFBhcmFncmFwaFN0eWxlTW9kZWwpOiBQYXJhZ3JhcGhTdHlsZU1vZGVsIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQYXJhZ3JhcGhTdHlsZU1vZGVsKHtcbiAgICAgICAgICAgIGFsaWdubWVudDogcGFyYWdyYXBoU3R5bGUuYWxpZ25tZW50ID8/IERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFLmFsaWdubWVudCxcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogcGFyYWdyYXBoU3R5bGUuYmFja2dyb3VuZENvbG9yID8/IERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFLmJhY2tncm91bmRDb2xvcixcbiAgICAgICAgICAgIGhlYWRpbmdTdHlsZUlkOiBwYXJhZ3JhcGhTdHlsZS5oZWFkaW5nU3R5bGVJZCxcbiAgICAgICAgICAgIGluZGVudEZpcnN0TGluZTogcGFyYWdyYXBoU3R5bGUuaW5kZW50Rmlyc3RMaW5lID8/IERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFLmluZGVudEZpcnN0TGluZSxcbiAgICAgICAgICAgIGluZGVudEhhbmdpbmc6IHBhcmFncmFwaFN0eWxlLmluZGVudEhhbmdpbmcgPz8gREVGQVVMVF9QQVJBR1JBUEhfU1RZTEUuaW5kZW50SGFuZ2luZyxcbiAgICAgICAgICAgIGluZGVudExlZnQ6IHBhcmFncmFwaFN0eWxlLmluZGVudExlZnQgPz8gREVGQVVMVF9QQVJBR1JBUEhfU1RZTEUuaW5kZW50TGVmdCxcbiAgICAgICAgICAgIGluZGVudFJpZ2h0OiBwYXJhZ3JhcGhTdHlsZS5pbmRlbnRSaWdodCA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5pbmRlbnRSaWdodCxcbiAgICAgICAgICAgIGxpbmVTcGFjaW5nOiBwYXJhZ3JhcGhTdHlsZS5saW5lU3BhY2luZyA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5saW5lU3BhY2luZyxcbiAgICAgICAgICAgIHNwYWNlQWZ0ZXI6IHBhcmFncmFwaFN0eWxlLnNwYWNlQWZ0ZXIgPz8gREVGQVVMVF9QQVJBR1JBUEhfU1RZTEUuc3BhY2VBZnRlcixcbiAgICAgICAgICAgIHNwYWNlQmVmb3JlOiBwYXJhZ3JhcGhTdHlsZS5zcGFjZUJlZm9yZSA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5zcGFjZUJlZm9yZSxcbiAgICAgICAgICAgIGNvbnRleHR1YWxTcGFjaW5nOiBwYXJhZ3JhcGhTdHlsZS5jb250ZXh0dWFsU3BhY2luZyA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5jb250ZXh0dWFsU3BhY2luZyxcbiAgICAgICAgICAgIGJlZm9yZUF1dG9zcGFjaW5nOiBwYXJhZ3JhcGhTdHlsZS5iZWZvcmVBdXRvc3BhY2luZyA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5iZWZvcmVBdXRvc3BhY2luZyxcbiAgICAgICAgICAgIGFmdGVyQXV0b3NwYWNpbmc6IHBhcmFncmFwaFN0eWxlLmFmdGVyQXV0b3NwYWNpbmcgPz8gREVGQVVMVF9QQVJBR1JBUEhfU1RZTEUuYWZ0ZXJBdXRvc3BhY2luZyxcbiAgICAgICAgICAgIG51bWJlcmluZ0lkOiBwYXJhZ3JhcGhTdHlsZS5udW1iZXJpbmdJZCA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5udW1iZXJpbmdJZCxcbiAgICAgICAgICAgIG51bWJlcmluZ0xldmVsOiBwYXJhZ3JhcGhTdHlsZS5udW1iZXJpbmdMZXZlbCA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5udW1iZXJpbmdMZXZlbFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0RW1wdHlEb2N4TW9kZWwoKTogRG9jeE1vZGVsIHtcbiAgICAgICAgY29uc3QgcGFnZU1hcmdpbiA9IG5ldyBNYXJnaW5Nb2RlbCgpO1xuICAgICAgICByZXR1cm4gbmV3IERvY3hNb2RlbCh7XG4gICAgICAgICAgICBjb250ZW50OiAnJyxcbiAgICAgICAgICAgIGNvbnRlbnRMZW5ndGg6IDAsXG4gICAgICAgICAgICBoZWFkaW5nczogREVGQVVMVF9IRUFESU5HUyxcbiAgICAgICAgICAgIHBhZ2VIZWlnaHQ6IERvY3VtZW50SW5mby5oZWlnaHQsXG4gICAgICAgICAgICBwYWdlV2lkdGg6IERvY3VtZW50SW5mby53aWR0aCxcbiAgICAgICAgICAgIHBhcmFncmFwaHM6IFtcbiAgICAgICAgICAgICAgICBuZXcgUGFyYWdyYXBoTW9kZWwoe1xuICAgICAgICAgICAgICAgICAgICBpbnNlcnRJbmRleDogMCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3R5bGU6IERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBicmVha3M6IFtdLFxuICAgICAgICAgICAgZWxlbWVudHM6IFtdLFxuICAgICAgICAgICAgZm9ybWF0czogW25ldyBGb3JtYXRNb2RlbCh7IHN0YXJ0SW5kZXg6IDAsIGVuZEluZGV4OiAwLCB0ZXh0U3R5bGU6IERFRkFVTFRfVEVYVF9TVFlMRSB9KV0sXG4gICAgICAgICAgICBpbWFnZXM6IFtdLFxuICAgICAgICAgICAgbGlua3M6IFtdLFxuICAgICAgICAgICAgbWFyZ2luQm90dG9tOiBwYWdlTWFyZ2luLmJvdHRvbSxcbiAgICAgICAgICAgIG1hcmdpbkZvb3RlcjogcGFnZU1hcmdpbi5mb290ZXIsXG4gICAgICAgICAgICBtYXJnaW5IZWFkZXI6IHBhZ2VNYXJnaW4uaGVhZGVyLFxuICAgICAgICAgICAgbWFyZ2luTGVmdDogcGFnZU1hcmdpbi5sZWZ0LFxuICAgICAgICAgICAgbWFyZ2luUmlnaHQ6IHBhZ2VNYXJnaW4ucmlnaHQsXG4gICAgICAgICAgICBtYXJnaW5Ub3A6IHBhZ2VNYXJnaW4udG9wLFxuICAgICAgICAgICAgdGFibGVzOiBbXSxcbiAgICAgICAgICAgIG51bWJlcmluZ3M6IFtdLFxuICAgICAgICAgICAgdGFiczogW10sXG4gICAgICAgICAgICBkZWZhdWx0VGFiV2lkdGg6IERFRkFVTFRfVEFCX1dJRFRIXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2aXNpb24uaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL3JldmlzaW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBSWhGLE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxRQUF1QixFQUFFLFVBQTRCO1FBQ2xGLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9B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QU0sVUFBVSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDckMsT0FBTyxJQUFJLFNBQVMsQ0FBQztZQUNqQixPQUFPLEVBQUUsRUFBRTtZQUNYLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsVUFBVSxFQUFFLFlBQVksQ0FBQyxNQUFNO1lBQy9CLFNBQVMsRUFBRSxZQUFZLENBQUMsS0FBSztZQUM3QixVQUFVLEVBQUU7Z0JBQ1IsSUFBSSxjQUFjLENBQUM7b0JBQ2YsV0FBVyxFQUFFLENBQUM7b0JBQ2QsY0FBYyxFQUFFLHVCQUF1QjtpQkFDMUMsQ0FBQzthQUNMO1lBQ0QsTUFBTSxFQUFFLEVBQUU7WUFDVixRQUFRLEVBQUUsRUFBRTtZQUNaLE9BQU8sRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7WUFDekYsTUFBTSxFQUFFLEVBQUU7WUFDVixLQUFLLEVBQUUsRUFBRTtZQUNULFlBQVksRUFBRSxVQUFVLENBQUMsTUFBTTtZQUMvQixZQUFZLEVBQUUsVUFBVSxDQUFDLE1BQU07WUFDL0IsWUFBWSxFQUFFLFVBQVUsQ0FBQyxNQUFNO1lBQy9CLFVBQVUsRUFBRSxVQUFVLENBQUMsSUFBSTtZQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEtBQUs7WUFDN0IsU0FBUyxFQUFFLFVBQVUsQ0FBQyxHQUFHO1lBQ3pCLE1BQU0sRUFBRSxFQUFFO1lBQ1YsVUFBVSxFQUFFLEVBQUU7WUFDZCxJQUFJLEVBQUUsRUFBRTtZQUNSLGVBQWUsRUFBRSxpQkFBaUI7U0FDckMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudHNJbnRlcmZhY2UgfSBmcm9tICcuL2NvbnRlbnQvY29udGVudHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbnRlbnRTdHlsZUhlbHBlciB9IGZyb20gJy4vY29udGVudC9oZWxwZXJzL2NvbnRlbnQtc3R5bGUuaGVscGVyJztcbmltcG9ydCB7IERFRkFVTFRfSEVBRElOR1MsIERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFLCBERUZBVUxUX1RBQl9XSURUSCwgREVGQVVMVF9URVhUX1NUWUxFIH0gZnJvbSAnLi9jb250ZW50L2NvbnN0YW50cy9lZGl0b3IuY29uc3QnO1xuaW1wb3J0IHsgRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi9jb250ZW50L2NvbnN0YW50cy9kb2N1bWVudC1pbmZvLmNvbnN0JztcbmltcG9ydCB7IERvY3hNb2RlbCB9IGZyb20gJy4uL21vZGVscy9nZW5lcmF0ZWQvZG9jeC5tb2RlbCc7XG5pbXBvcnQgeyBFZGdlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZ2VuZXJhdGVkL2VkZ2UubW9kZWwnO1xuaW1wb3J0IHsgRm9ybWF0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZ2VuZXJhdGVkL2Zvcm1hdC5tb2RlbCc7XG5pbXBvcnQgeyBNYXJnaW5Nb2RlbCB9IGZyb20gJy4vY29udGVudC9tYXJnaW4ubW9kZWwnO1xuaW1wb3J0IHsgT3BlcmF0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZ2VuZXJhdGVkL29wZXJhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBPcGVyYXRpb25zSGVscGVyIH0gZnJvbSAnLi9vcGVyYXRpb25zL29wZXJhdGlvbnMtaGVscGVyLmhlbHBlcic7XG5pbXBvcnQgeyBQYXJhZ3JhcGhNb2RlbCB9IGZyb20gJy4uL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLm1vZGVsJztcbmltcG9ydCB7IFBhcmFncmFwaFN0eWxlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZ2VuZXJhdGVkL3BhcmFncmFwaC1zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBSZXZpc2lvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2dlbmVyYXRlZC9yZXZpc2lvbi5tb2RlbCc7XG5pbXBvcnQgeyBUYWJsZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2dlbmVyYXRlZC90YWJsZS5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBSZXZpc2lvbkhlbHBlciB7XG4gICAgc3RhdGljIGFwcGx5T3BlcmF0aW9uc1RvUmV2aXNpb24ocmV2aXNpb246IFJldmlzaW9uTW9kZWwsIG9wZXJhdGlvbnM6IE9wZXJhdGlvbk1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgb3BlcmF0aW9ucy5zb3J0KChhLCBiKSA9PiBhLmNyZWF0ZVRpbWUgLSBiLmNyZWF0ZVRpbWUpO1xuICAgICAgICBjb25zdCBhY3Rpb25zID0gb3BlcmF0aW9ucy5tYXAoeCA9PiB4LmNvbW1hbmQpO1xuICAgICAgICBPcGVyYXRpb25zSGVscGVyLmFwcGx5T3BlcmF0aW9ucyhyZXZpc2lvbi5jb250ZW50LCBhY3Rpb25zKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZmlsbFRhYmxlc0RlZmF1bHRTdHlsZXModGFibGVzOiBUYWJsZU1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCB0YWJsZSBvZiB0YWJsZXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgcm93IG9mIHRhYmxlLnJvd3MpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNlbGwgb2Ygcm93LmNlbGxzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsbERlZmF1bHRTdHlsZXMoY2VsbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGZpbGxFZGdlc0RlZmF1bHRTdHlsZXMoaGVhZGVyczogRWRnZU1vZGVsW10sIGZvb3RlcnM6IEVkZ2VNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3QgaGVhZGVyIG9mIGhlYWRlcnMpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsbFRhYmxlc0RlZmF1bHRTdHlsZXMoaGVhZGVyLnRhYmxlcyk7XG4gICAgICAgICAgICB0aGlzLmZpbGxEZWZhdWx0U3R5bGVzKGhlYWRlcik7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGZvb3RlciBvZiBmb290ZXJzKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGxUYWJsZXNEZWZhdWx0U3R5bGVzKGZvb3Rlci50YWJsZXMpO1xuICAgICAgICAgICAgdGhpcy5maWxsRGVmYXVsdFN0eWxlcyhmb290ZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGZpbGxEZWZhdWx0U3R5bGVzKGNvbnRlbnRzOiBDb250ZW50c0ludGVyZmFjZSk6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBjb250ZW50cy5mb3JtYXRzKSB7XG4gICAgICAgICAgICBmb3JtYXQudGV4dFN0eWxlID0gQ29udGVudFN0eWxlSGVscGVyLmNvbWJpbmVUZXh0U3R5bGVzKGZvcm1hdC50ZXh0U3R5bGUsIERFRkFVTFRfVEVYVF9TVFlMRSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHBhcmFncmFwaCBvZiBjb250ZW50cy5wYXJhZ3JhcGhzKSB7XG4gICAgICAgICAgICBwYXJhZ3JhcGgucGFyYWdyYXBoU3R5bGUgPSB0aGlzLmZpbGxQYXJhZ3JhcGhTdHlsZU1vZGVsKHBhcmFncmFwaC5wYXJhZ3JhcGhTdHlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgZmlsbFBhcmFncmFwaFN0eWxlTW9kZWwocGFyYWdyYXBoU3R5bGU6IFBhcmFncmFwaFN0eWxlTW9kZWwpOiBQYXJhZ3JhcGhTdHlsZU1vZGVsIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQYXJhZ3JhcGhTdHlsZU1vZGVsKHtcbiAgICAgICAgICAgIGFsaWdubWVudDogcGFyYWdyYXBoU3R5bGUuYWxpZ25tZW50ID8/IERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFLmFsaWdubWVudCxcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogcGFyYWdyYXBoU3R5bGUuYmFja2dyb3VuZENvbG9yID8/IERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFLmJhY2tncm91bmRDb2xvcixcbiAgICAgICAgICAgIGhlYWRpbmdTdHlsZUlkOiBwYXJhZ3JhcGhTdHlsZS5oZWFkaW5nU3R5bGVJZCxcbiAgICAgICAgICAgIGluZGVudEZpcnN0TGluZTogcGFyYWdyYXBoU3R5bGUuaW5kZW50Rmlyc3RMaW5lID8/IERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFLmluZGVudEZpcnN0TGluZSxcbiAgICAgICAgICAgIGluZGVudEhhbmdpbmc6IHBhcmFncmFwaFN0eWxlLmluZGVudEhhbmdpbmcgPz8gREVGQVVMVF9QQVJBR1JBUEhfU1RZTEUuaW5kZW50SGFuZ2luZyxcbiAgICAgICAgICAgIGluZGVudExlZnQ6IHBhcmFncmFwaFN0eWxlLmluZGVudExlZnQgPz8gREVGQVVMVF9QQVJBR1JBUEhfU1RZTEUuaW5kZW50TGVmdCxcbiAgICAgICAgICAgIGluZGVudFJpZ2h0OiBwYXJhZ3JhcGhTdHlsZS5pbmRlbnRSaWdodCA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5pbmRlbnRSaWdodCxcbiAgICAgICAgICAgIGxpbmVTcGFjaW5nOiBwYXJhZ3JhcGhTdHlsZS5saW5lU3BhY2luZyA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5saW5lU3BhY2luZyxcbiAgICAgICAgICAgIHNwYWNlQWZ0ZXI6IHBhcmFncmFwaFN0eWxlLnNwYWNlQWZ0ZXIgPz8gREVGQVVMVF9QQVJBR1JBUEhfU1RZTEUuc3BhY2VBZnRlcixcbiAgICAgICAgICAgIHNwYWNlQmVmb3JlOiBwYXJhZ3JhcGhTdHlsZS5zcGFjZUJlZm9yZSA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5zcGFjZUJlZm9yZSxcbiAgICAgICAgICAgIGNvbnRleHR1YWxTcGFjaW5nOiBwYXJhZ3JhcGhTdHlsZS5jb250ZXh0dWFsU3BhY2luZyA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5jb250ZXh0dWFsU3BhY2luZyxcbiAgICAgICAgICAgIGJlZm9yZUF1dG9zcGFjaW5nOiBwYXJhZ3JhcGhTdHlsZS5iZWZvcmVBdXRvc3BhY2luZyA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5iZWZvcmVBdXRvc3BhY2luZyxcbiAgICAgICAgICAgIGFmdGVyQXV0b3NwYWNpbmc6IHBhcmFncmFwaFN0eWxlLmFmdGVyQXV0b3NwYWNpbmcgPz8gREVGQVVMVF9QQVJBR1JBUEhfU1RZTEUuYWZ0ZXJBdXRvc3BhY2luZyxcbiAgICAgICAgICAgIG51bWJlcmluZ0lkOiBwYXJhZ3JhcGhTdHlsZS5udW1iZXJpbmdJZCA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5udW1iZXJpbmdJZCxcbiAgICAgICAgICAgIG51bWJlcmluZ0xldmVsOiBwYXJhZ3JhcGhTdHlsZS5udW1iZXJpbmdMZXZlbCA/PyBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5udW1iZXJpbmdMZXZlbFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0RW1wdHlEb2N4TW9kZWwoKTogRG9jeE1vZGVsIHtcbiAgICAgICAgY29uc3QgcGFnZU1hcmdpbiA9IG5ldyBNYXJnaW5Nb2RlbCgpO1xuICAgICAgICByZXR1cm4gbmV3IERvY3hNb2RlbCh7XG4gICAgICAgICAgICBjb250ZW50OiAnJyxcbiAgICAgICAgICAgIGNvbnRlbnRMZW5ndGg6IDAsXG4gICAgICAgICAgICBoZWFkaW5nczogREVGQVVMVF9IRUFESU5HUyxcbiAgICAgICAgICAgIHBhZ2VIZWlnaHQ6IERvY3VtZW50SW5mby5oZWlnaHQsXG4gICAgICAgICAgICBwYWdlV2lkdGg6IERvY3VtZW50SW5mby53aWR0aCxcbiAgICAgICAgICAgIHBhcmFncmFwaHM6IFtcbiAgICAgICAgICAgICAgICBuZXcgUGFyYWdyYXBoTW9kZWwoe1xuICAgICAgICAgICAgICAgICAgICBpbnNlcnRJbmRleDogMCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3R5bGU6IERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBicmVha3M6IFtdLFxuICAgICAgICAgICAgZWxlbWVudHM6IFtdLFxuICAgICAgICAgICAgZm9ybWF0czogW25ldyBGb3JtYXRNb2RlbCh7IHN0YXJ0SW5kZXg6IDAsIGVuZEluZGV4OiAwLCB0ZXh0U3R5bGU6IERFRkFVTFRfVEVYVF9TVFlMRSB9KV0sXG4gICAgICAgICAgICBpbWFnZXM6IFtdLFxuICAgICAgICAgICAgbGlua3M6IFtdLFxuICAgICAgICAgICAgbWFyZ2luQm90dG9tOiBwYWdlTWFyZ2luLmJvdHRvbSxcbiAgICAgICAgICAgIG1hcmdpbkZvb3RlcjogcGFnZU1hcmdpbi5mb290ZXIsXG4gICAgICAgICAgICBtYXJnaW5IZWFkZXI6IHBhZ2VNYXJnaW4uaGVhZGVyLFxuICAgICAgICAgICAgbWFyZ2luTGVmdDogcGFnZU1hcmdpbi5sZWZ0LFxuICAgICAgICAgICAgbWFyZ2luUmlnaHQ6IHBhZ2VNYXJnaW4ucmlnaHQsXG4gICAgICAgICAgICBtYXJnaW5Ub3A6IHBhZ2VNYXJnaW4udG9wLFxuICAgICAgICAgICAgdGFibGVzOiBbXSxcbiAgICAgICAgICAgIG51bWJlcmluZ3M6IFtdLFxuICAgICAgICAgICAgdGFiczogW10sXG4gICAgICAgICAgICBkZWZhdWx0VGFiV2lkdGg6IERFRkFVTFRfVEFCX1dJRFRIXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -5,4 +5,4 @@ export class RestoreTextStylesModel {
|
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdG9yZS10ZXh0LXN0eWxlcy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL21vZGVscy9nZW5lcmF0ZWQvcmVzdG9yZS10ZXh0LXN0eWxlcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sc0JBQXNCO0lBSS9CLFlBQ0ksTUFBd0M7UUFFeEMsSUFBSSxNQUFNLEVBQUU7WUFHUixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztTQUMvQjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1hdE1vZGVsIH0gZnJvbSAnLi9mb3JtYXQubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgUmVzdG9yZVRleHRTdHlsZXNNb2RlbCB7XG4gICAgcHVibGljIGZvcm1hdHM6IEZvcm1hdE1vZGVsW107XG4gICAgcHVibGljIGxpbmtGb3JtYXRzOiBGb3JtYXRNb2RlbFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBmaWVsZHM/OiBQYXJ0aWFsPFJlc3RvcmVUZXh0U3R5bGVzTW9kZWw+KSB7XG5cbiAgICAgICAgaWYgKGZpZWxkcykge1xuXG5cbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZmllbGRzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -13,4 +13,4 @@ export class TargetModel {
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvbW9kZWxzL2dlbmVyYXRlZC90YXJnZXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxNQUFNLE9BQU8sV0FBVztJQUtwQixZQUFtQixNQUE2QjtRQUM1QyxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUQ7WUFDRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUU7Z0JBQ2xCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzNEO1lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDL0I7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGdlVGFyZ2V0TW9kZWwgfSBmcm9tICcuL2VkZ2UtdGFyZ2V0Lm1vZGVsJztcbmltcG9ydCB7IFRhYmxlQ2VsbE1vZGVsIH0gZnJvbSAnLi90YWJsZS1jZWxsLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIFRhcmdldE1vZGVsIHtcbiAgICBwdWJsaWMgZWRnZURhdGE6IEVkZ2VUYXJnZXRNb2RlbDtcbiAgICBwdWJsaWMgdGFibGVDZWxsOiBUYWJsZUNlbGxNb2RlbDtcbiAgICBwdWJsaWMgdHlwZTogYW55O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGZpZWxkcz86IFBhcnRpYWw8VGFyZ2V0TW9kZWw+KSB7XG4gICAgICAgIGlmIChmaWVsZHMpIHtcbiAgICAgICAgICAgIGlmIChmaWVsZHMuZWRnZURhdGEpIHtcbiAgICAgICAgICAgICAgICBmaWVsZHMuZWRnZURhdGEgPSBuZXcgRWRnZVRhcmdldE1vZGVsKGZpZWxkcy5lZGdlRGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZmllbGRzLnRhYmxlQ2VsbCkge1xuICAgICAgICAgICAgICAgIGZpZWxkcy50YWJsZUNlbGwgPSBuZXcgVGFibGVDZWxsTW9kZWwoZmllbGRzLnRhYmxlQ2VsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZmllbGRzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|