@talrace/ngx-noder 0.0.8 → 0.0.9

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.
Files changed (93) hide show
  1. package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +15 -9
  2. package/esm2022/lib/apart-components/editor-toolbar/components/base-toolbar.component.mjs +8 -2
  3. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +2 -2
  4. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-size/font-size.component.mjs +3 -3
  5. package/esm2022/lib/apart-components/editor-toolbar/shared/toolbar-styles.helper.mjs +1 -8
  6. package/esm2022/lib/editor/components/edges/edge.component.mjs +2 -2
  7. package/esm2022/lib/editor/components/edges/edges.mjs +21 -2
  8. package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +18 -1
  9. package/esm2022/lib/editor/components/shared/services/custom-content.service.mjs +22 -56
  10. package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +6 -6
  11. package/esm2022/lib/editor/components/table/components/table.component.mjs +13 -4
  12. package/esm2022/lib/editor/components/table/models/cell-data.model.mjs +3 -4
  13. package/esm2022/lib/editor/components/table/selection/table-selection.mjs +15 -5
  14. package/esm2022/lib/editor/content/constants/editor.const.mjs +9 -1
  15. package/esm2022/lib/editor/content/display-data/display-data.mjs +839 -0
  16. package/esm2022/lib/editor/content/display-data/general-properties.model.mjs +1 -1
  17. package/esm2022/lib/editor/content/display-data/models/paragraph-info.model.mjs +8 -0
  18. package/esm2022/lib/editor/content/display-data/paragraph.mjs +5 -1
  19. package/esm2022/lib/editor/content/display-data/text-line-info.mjs +2 -1
  20. package/esm2022/lib/editor/content/display-data/toolbar-styles.interface.mjs +1 -1
  21. package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +12 -30
  22. package/esm2022/lib/editor/content/helpers/display-token.helper.mjs +62 -0
  23. package/esm2022/lib/editor/display/layers/cursor.layer.mjs +9 -8
  24. package/esm2022/lib/editor/display/layers/pages.layer.mjs +5 -5
  25. package/esm2022/lib/editor/display/layers/print.text.layer.mjs +2 -2
  26. package/esm2022/lib/editor/display/layers/selection.layer.mjs +15 -9
  27. package/esm2022/lib/editor/display/layers/text.layer.mjs +25 -27
  28. package/esm2022/lib/editor/display/print/print.renderer.mjs +8 -8
  29. package/esm2022/lib/editor/display/renderer.mjs +10 -10
  30. package/esm2022/lib/editor/display/rendering.helper.mjs +2 -4
  31. package/esm2022/lib/editor/display/virtual.renderer.mjs +5 -5
  32. package/esm2022/lib/editor/execution/edit.session.mjs +199 -755
  33. package/esm2022/lib/editor/execution/editor.mjs +116 -75
  34. package/esm2022/lib/editor/execution/helpers/format-style.helper.mjs +1 -33
  35. package/esm2022/lib/editor/execution/helpers/image.helpet.mjs +12 -0
  36. package/esm2022/lib/editor/execution/helpers/paragraph.helper.mjs +11 -3
  37. package/esm2022/lib/editor/execution/regulator.service.mjs +28 -20
  38. package/esm2022/lib/editor/gadgets/numbering/numbering-paragraph-style.model.mjs +13 -0
  39. package/esm2022/lib/editor/gadgets/numbering/numbering.helper.mjs +77 -10
  40. package/esm2022/lib/editor/gadgets/search/search.mjs +6 -6
  41. package/esm2022/lib/editor/interaction/editor.service.mjs +27 -6
  42. package/esm2022/lib/editor/interaction/input.handler.mjs +8 -5
  43. package/esm2022/lib/editor/interaction/mouse.handler.mjs +2 -1
  44. package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +32 -2
  45. package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +47 -12
  46. package/esm2022/lib/editor/operations/operations-helper.helper.mjs +13 -14
  47. package/esm2022/lib/editor/operations/save-commands.helper.mjs +2 -2
  48. package/esm2022/lib/editor/positioning/content.helper.mjs +15 -15
  49. package/esm2022/lib/editor/positioning/line-width.helper.mjs +5 -5
  50. package/esm2022/lib/editor/positioning/position.helper.mjs +34 -32
  51. package/esm2022/lib/editor/positioning/selection.mjs +42 -32
  52. package/esm2022/lib/editor/revision.helper.mjs +4 -3
  53. package/fesm2022/talrace-ngx-noder.mjs +3765 -3548
  54. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  55. package/lib/apart-components/add-link-dialog/add-link-dialog.component.d.ts +0 -1
  56. package/lib/apart-components/editor-toolbar/shared/toolbar-styles.helper.d.ts +0 -2
  57. package/lib/editor/components/image/input-handler/image-input.handler.d.ts +3 -0
  58. package/lib/editor/components/shared/services/custom-content.service.d.ts +3 -5
  59. package/lib/editor/components/table/components/table-cell.component.d.ts +1 -1
  60. package/lib/editor/components/table/components/table.component.d.ts +1 -0
  61. package/lib/editor/components/table/models/cell-data.model.d.ts +1 -1
  62. package/lib/editor/components/table/selection/table-selection.d.ts +2 -0
  63. package/lib/editor/content/constants/editor.const.d.ts +2 -0
  64. package/lib/editor/content/display-data/display-data.d.ts +103 -0
  65. package/lib/editor/content/display-data/general-properties.model.d.ts +5 -0
  66. package/lib/editor/content/display-data/models/paragraph-info.model.d.ts +9 -0
  67. package/lib/editor/content/display-data/paragraph.d.ts +1 -0
  68. package/lib/editor/content/display-data/text-line-info.d.ts +1 -0
  69. package/lib/editor/content/display-data/toolbar-styles.interface.d.ts +1 -1
  70. package/lib/editor/content/helpers/content-style.helper.d.ts +1 -2
  71. package/lib/editor/content/helpers/display-token.helper.d.ts +6 -0
  72. package/lib/editor/display/layers/text.layer.d.ts +1 -2
  73. package/lib/editor/display/print/print.renderer.d.ts +0 -2
  74. package/lib/editor/execution/edit.session.d.ts +11 -59
  75. package/lib/editor/execution/editor.d.ts +9 -6
  76. package/lib/editor/execution/helpers/format-style.helper.d.ts +0 -2
  77. package/lib/editor/execution/helpers/image.helpet.d.ts +4 -0
  78. package/lib/editor/execution/regulator.service.d.ts +1 -1
  79. package/lib/editor/gadgets/numbering/numbering-paragraph-style.model.d.ts +6 -0
  80. package/lib/editor/gadgets/numbering/numbering.helper.d.ts +10 -3
  81. package/lib/editor/interaction/editor.service.d.ts +12 -3
  82. package/lib/editor/operations/helpers/link-operations.helper.d.ts +5 -3
  83. package/lib/editor/positioning/content.helper.d.ts +6 -5
  84. package/lib/editor/positioning/position.helper.d.ts +3 -3
  85. package/lib/editor/positioning/selection.d.ts +3 -0
  86. package/package.json +1 -1
  87. package/src/_ngx-noder.theme.scss +31 -2
  88. package/esm2022/lib/editor/content/display-data/document.mjs +0 -134
  89. package/esm2022/lib/editor/content/display-data/pages.wrap.mjs +0 -226
  90. package/esm2022/lib/editor/execution/helpers/delta.helper.mjs +0 -18
  91. package/lib/editor/content/display-data/document.d.ts +0 -56
  92. package/lib/editor/content/display-data/pages.wrap.d.ts +0 -42
  93. package/lib/editor/execution/helpers/delta.helper.d.ts +0 -6
@@ -8,4 +8,4 @@ export class GeneralPropertiesModel {
8
8
  Object.assign(this, fields);
9
9
  }
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1wcm9wZXJ0aWVzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2NvbnRlbnQvZGlzcGxheS1kYXRhL2dlbmVyYWwtcHJvcGVydGllcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc5RCxNQUFNLE9BQU8sc0JBQXNCO0lBTS9CLFlBQVksTUFBd0M7UUFDaEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUVELE1BQU0sQ0FBQyxlQUFlLEtBQUssaUJBQWlCLENBQUM7UUFFN0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVGQVVMVF9UQUJfV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMvZWRpdG9yLmNvbnN0JztcbmltcG9ydCB7IE51bWJlcmluZ01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9udW1iZXJpbmcubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgR2VuZXJhbFByb3BlcnRpZXNNb2RlbCB7XG4gICAgZGVmYXVsdFRhYldpZHRoOiBudW1iZXI7XG4gICAgbnVtYmVyaW5nczogTnVtYmVyaW5nTW9kZWxbXTtcbiAgICBtYXhFZGdlSGVpZ2h0OiBudW1iZXI7XG4gICAgc2NhbGluZ1JhdGlvOiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihmaWVsZHM/OiBQYXJ0aWFsPEdlbmVyYWxQcm9wZXJ0aWVzTW9kZWw+KSB7XG4gICAgICAgIGlmICghZmllbGRzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmaWVsZHMuZGVmYXVsdFRhYldpZHRoID8/PSBERUZBVUxUX1RBQl9XSURUSDtcblxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGZpZWxkcyk7XG4gICAgfVxufVxuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1wcm9wZXJ0aWVzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2NvbnRlbnQvZGlzcGxheS1kYXRhL2dlbmVyYWwtcHJvcGVydGllcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUs5RCxNQUFNLE9BQU8sc0JBQXNCO0lBTy9CLFlBQVksTUFBd0M7UUFDaEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUVELE1BQU0sQ0FBQyxlQUFlLEtBQUssaUJBQWlCLENBQUM7UUFFN0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVGQVVMVF9UQUJfV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMvZWRpdG9yLmNvbnN0JztcbmltcG9ydCB7IE51bWJlcmluZ01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9udW1iZXJpbmcubW9kZWwnO1xuXG5leHBvcnQgdHlwZSBOdW1iZXJpbmdJbmZvID0gUmVjb3JkPHN0cmluZywgeyBtYXJrZXJJbmRleDogbnVtYmVyOyB2aXNpdGVkOiBib29sZWFuIH1bXT47XG5cbmV4cG9ydCBjbGFzcyBHZW5lcmFsUHJvcGVydGllc01vZGVsIHtcbiAgICBkZWZhdWx0VGFiV2lkdGg6IG51bWJlcjtcbiAgICBudW1iZXJpbmdzOiBOdW1iZXJpbmdNb2RlbFtdO1xuICAgIG1heEVkZ2VIZWlnaHQ6IG51bWJlcjtcbiAgICBzY2FsaW5nUmF0aW86IG51bWJlcjtcbiAgICBudW1iZXJpbmdJbmZvOiBOdW1iZXJpbmdJbmZvO1xuXG4gICAgY29uc3RydWN0b3IoZmllbGRzPzogUGFydGlhbDxHZW5lcmFsUHJvcGVydGllc01vZGVsPikge1xuICAgICAgICBpZiAoIWZpZWxkcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZmllbGRzLmRlZmF1bHRUYWJXaWR0aCA/Pz0gREVGQVVMVF9UQUJfV0lEVEg7XG5cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmaWVsZHMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export class ParagraphInfoModel {
2
+ constructor(fields) {
3
+ if (fields) {
4
+ Object.assign(this, fields);
5
+ }
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWdyYXBoLWluZm8ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29udGVudC9kaXNwbGF5LWRhdGEvbW9kZWxzL3BhcmFncmFwaC1pbmZvLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxrQkFBa0I7SUFPM0IsWUFBWSxNQUFvQztRQUM1QyxJQUFJLE1BQU0sRUFBRTtZQUNSLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQy9CO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyYWdyYXBoIH0gZnJvbSAnLi4vcGFyYWdyYXBoJztcblxuZXhwb3J0IGNsYXNzIFBhcmFncmFwaEluZm9Nb2RlbCB7XG4gICAgY29udGVudDogc3RyaW5nO1xuICAgIG5leHRMaW5lSW5kZXhlczogbnVtYmVyW107XG4gICAgcGFyYWdyYXBoU2V0dGluZ3M6IFBhcmFncmFwaDtcbiAgICBzdGFydEluZGV4OiBudW1iZXI7XG4gICAgbGluZU51bWJlcjogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoZmllbGRzPzogUGFydGlhbDxQYXJhZ3JhcGhJbmZvTW9kZWw+KSB7XG4gICAgICAgIGlmIChmaWVsZHMpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZmllbGRzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -35,6 +35,10 @@ export class Paragraph {
35
35
  setIsAfterPageBreak(value) {
36
36
  this.textLinesInfo[0].isAfterPageBreak = value;
37
37
  }
38
+ calculateDistanceFromTop(pageHeight, pagesSpace, marginTop) {
39
+ this.distanceFromTop =
40
+ (this.firstPageNumber - 1) * pageHeight + this.firstPageNumber * pagesSpace + this.pagePreviousContentHeight + marginTop;
41
+ }
38
42
  getParagraphData() {
39
43
  const pageContentHeight = this.pageNumbers.length === 1
40
44
  ? this.height + this.pagePreviousContentHeight
@@ -49,4 +53,4 @@ export class Paragraph {
49
53
  this.height = ParagraphHelper.getParagraphHeight(this.textLinesInfo);
50
54
  }
51
55
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2NvbnRlbnQvZGlzcGxheS1kYXRhL3BhcmFncmFwaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE1BQU0sT0FBTyxTQUFTO0lBZWxCLElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFDVyxhQUFpQyxFQUNoQyxZQUFvQixFQUNwQiwwQkFLQztRQVBGLGtCQUFhLEdBQWIsYUFBYSxDQUFvQjtRQUNoQyxpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBS3pCO1FBNUNiLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyw4QkFBeUIsR0FBRyxDQUFDLENBQUM7UUFFOUIsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUVWLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFJWCxnQkFBVyxHQUFhLEVBQUUsQ0FBQztJQW1DeEIsQ0FBQztJQUVKLGdCQUFnQixDQUFDLFVBQTJCO1FBQ3hDLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDN0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVELGdCQUFnQjtRQUNaLE1BQU0saUJBQWlCLEdBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHlCQUF5QjtZQUM5QyxDQUFDLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RGLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pILENBQUM7SUFFRCwwQkFBMEIsQ0FDdEIsaUJBQTJGLEVBQzNGLFNBQTZFLEVBQzdFLE1BQTJDO1FBRTNDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxpQkFBaUIsQ0FBQyxlQUFlLENBQUM7UUFDbkUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUUsZUFBZSxDQUFDLG9DQUFvQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFILElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExpbmVJbmZvTW9kZWwgfSBmcm9tICcuL2xpbmUtaW5mby5tb2RlbCc7XG5pbXBvcnQgeyBOb2RlclRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL3RhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJpbmdEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9nYWRnZXRzL251bWJlcmluZy9udW1iZXJpbmctZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBQYWdlVmVydGljYWxEYXRhTW9kZWwgfSBmcm9tICcuLi9wYWdlLXZlcnRpY2FsLWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgUGFyYWdyYXBoSGVscGVyIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL2hlbHBlcnMvcGFyYWdyYXBoLmhlbHBlcic7XG5pbXBvcnQgeyBUZXh0TGluZUluZm8gfSBmcm9tICcuL3RleHQtbGluZS1pbmZvJztcblxuZXhwb3J0IGNsYXNzIFBhcmFncmFwaCB7XG4gICAgc3RhcnRJbnNlcnRJbmRleDogbnVtYmVyO1xuXG4gICAgdGV4dExpbmVzSW5mbzogVGV4dExpbmVJbmZvW10gPSBbXTtcblxuICAgIHBhZ2VQcmV2aW91c0NvbnRlbnRIZWlnaHQgPSAwO1xuXG4gICAgd2lkdGggPSAwO1xuXG4gICAgaGVpZ2h0ID0gMDtcblxuICAgIGRpc3RhbmNlRnJvbVRvcDogbnVtYmVyO1xuXG4gICAgcGFnZU51bWJlcnM6IG51bWJlcltdID0gW107XG5cbiAgICBnZXQgZmlyc3RQYWdlTnVtYmVyKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2VOdW1iZXJzWzBdIHx8IDE7XG4gICAgfVxuXG4gICAgZ2V0IGxhc3RQYWdlTnVtYmVyKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2VOdW1iZXJzW3RoaXMucGFnZU51bWJlcnMubGVuZ3RoIC0gMV0gfHwgMTtcbiAgICB9XG5cbiAgICBnZXQgZmlyc3RTY3JlZW5MaW5lKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRMaW5lc0luZm9bMF0uc2NyZWVuTGluZTtcbiAgICB9XG5cbiAgICBnZXQgbGFzdFNjcmVlbkxpbmUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dExpbmVzSW5mb1t0aGlzLnRleHRMaW5lc0luZm8ubGVuZ3RoIC0gMV0uc2NyZWVuTGluZTtcbiAgICB9XG5cbiAgICBnZXQgaXNFbmRlZEJ5UGFnZUJyZWFrKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0TGluZXNJbmZvW3RoaXMudGV4dExpbmVzSW5mby5sZW5ndGggLSAxXS5pc0VuZGVkQnlQYWdlQnJlYWs7XG4gICAgfVxuXG4gICAgZ2V0IGJhY2tncm91bmRDb2xvcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0TGluZXNJbmZvWzBdLmJhY2tncm91bmRDb2xvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBudW1iZXJpbmdEYXRhOiBOdW1iZXJpbmdEYXRhTW9kZWwsXG4gICAgICAgIHByaXZhdGUgb2Zmc2V0QmVmb3JlOiBudW1iZXIsXG4gICAgICAgIHByaXZhdGUgcHJvY2Vzc1RleHRMaW5lc1Byb3BlcnRpZXM6IChcbiAgICAgICAgICAgIGN1cnJlbnRQYXJhZ3JhcGg6IFBhcmFncmFwaCxcbiAgICAgICAgICAgIHByZXZQYXJhZ3JhcGhJbmZvOiB7IGxhc3RQYWdlOiBudW1iZXI7IHBhcmFncmFwaEhlaWdodDogbnVtYmVyOyBwYXJhZ3JhcGhMYXN0TGluZTogbnVtYmVyIH0sXG4gICAgICAgICAgICBwYWdlc0luZm86IHsgcGFnZXNWZXJ0aWNhbERhdGE6IFBhZ2VWZXJ0aWNhbERhdGFNb2RlbFtdOyBwYWdlc1NwYWNlOiBudW1iZXIgfSxcbiAgICAgICAgICAgIHRhYmxlczogQ29tcG9uZW50UmVmPE5vZGVyVGFibGVDb21wb25lbnQ+W11cbiAgICAgICAgKSA9PiB2b2lkXG4gICAgKSB7fVxuXG4gICAgc2V0VGV4dExpbmVzSW5mbyhsaW5lc0luZm9zOiBMaW5lSW5mb01vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZXh0TGluZXNJbmZvID0gbGluZXNJbmZvcy5tYXAobGluZUluZm8gPT4gbmV3IFRleHRMaW5lSW5mbyh0aGlzLndpZHRoLCBsaW5lSW5mby5hbGlnbiwgbGluZUluZm8uaW5kZW50LCBsaW5lSW5mbykpO1xuICAgIH1cblxuICAgIHNldElzQWZ0ZXJQYWdlQnJlYWsodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZXh0TGluZXNJbmZvWzBdLmlzQWZ0ZXJQYWdlQnJlYWsgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXRQYXJhZ3JhcGhEYXRhKCk6IHsgbGFzdFBhZ2U6IG51bWJlcjsgcGFyYWdyYXBoSGVpZ2h0OiBudW1iZXI7IHBhcmFncmFwaExhc3RMaW5lOiBudW1iZXIgfSB7XG4gICAgICAgIGNvbnN0IHBhZ2VDb250ZW50SGVpZ2h0ID1cbiAgICAgICAgICAgIHRoaXMucGFnZU51bWJlcnMubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgICAgPyB0aGlzLmhlaWdodCArIHRoaXMucGFnZVByZXZpb3VzQ29udGVudEhlaWdodFxuICAgICAgICAgICAgICAgIDogUGFyYWdyYXBoSGVscGVyLmdldFBhZ2VMaW5lc0hlaWdodCh0aGlzLnRleHRMaW5lc0luZm8sIHRoaXMubGFzdFBhZ2VOdW1iZXIpO1xuICAgICAgICByZXR1cm4geyBsYXN0UGFnZTogdGhpcy5sYXN0UGFnZU51bWJlciwgcGFyYWdyYXBoSGVpZ2h0OiBwYWdlQ29udGVudEhlaWdodCwgcGFyYWdyYXBoTGFzdExpbmU6IHRoaXMubGFzdFNjcmVlbkxpbmUgfTtcbiAgICB9XG5cbiAgICBwcm9jZXNzUGFyYWdyYXBoUHJvcGVydGllcyhcbiAgICAgICAgcHJldlBhcmFncmFwaEluZm86IHsgbGFzdFBhZ2U6IG51bWJlcjsgcGFyYWdyYXBoSGVpZ2h0OiBudW1iZXI7IHBhcmFncmFwaExhc3RMaW5lOiBudW1iZXIgfSxcbiAgICAgICAgcGFnZXNJbmZvOiB7IHBhZ2VzVmVydGljYWxEYXRhOiBQYWdlVmVydGljYWxEYXRhTW9kZWxbXTsgcGFnZXNTcGFjZTogbnVtYmVyIH0sXG4gICAgICAgIHRhYmxlczogQ29tcG9uZW50UmVmPE5vZGVyVGFibGVDb21wb25lbnQ+W11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlUHJldmlvdXNDb250ZW50SGVpZ2h0ID0gcHJldlBhcmFncmFwaEluZm8ucGFyYWdyYXBoSGVpZ2h0O1xuICAgICAgICB0aGlzLnByb2Nlc3NUZXh0TGluZXNQcm9wZXJ0aWVzKHRoaXMsIHByZXZQYXJhZ3JhcGhJbmZvLCBwYWdlc0luZm8sIHRhYmxlcyk7XG4gICAgICAgIFBhcmFncmFwaEhlbHBlci5wcm9jZXNzT2Zmc2V0TGluZVdpdGhOdW1iZXJpbmdNYXJrZXIodGhpcy50ZXh0TGluZXNJbmZvWzBdLCB0aGlzLm51bWJlcmluZ0RhdGEuaGVpZ2h0LCB0aGlzLm9mZnNldEJlZm9yZSk7XG4gICAgICAgIHRoaXMucGFnZU51bWJlcnMgPSBQYXJhZ3JhcGhIZWxwZXIuZ2V0UGFyYWdyYXBoUGFnZXModGhpcy50ZXh0TGluZXNJbmZvKTtcbiAgICAgICAgdGhpcy5oZWlnaHQgPSBQYXJhZ3JhcGhIZWxwZXIuZ2V0UGFyYWdyYXBoSGVpZ2h0KHRoaXMudGV4dExpbmVzSW5mbyk7XG4gICAgfVxufVxuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2NvbnRlbnQvZGlzcGxheS1kYXRhL3BhcmFncmFwaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE1BQU0sT0FBTyxTQUFTO0lBZWxCLElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFDVyxhQUFpQyxFQUNoQyxZQUFvQixFQUNwQiwwQkFLQztRQVBGLGtCQUFhLEdBQWIsYUFBYSxDQUFvQjtRQUNoQyxpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBS3pCO1FBNUNiLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyw4QkFBeUIsR0FBRyxDQUFDLENBQUM7UUFFOUIsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUVWLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFJWCxnQkFBVyxHQUFhLEVBQUUsQ0FBQztJQW1DeEIsQ0FBQztJQUVKLGdCQUFnQixDQUFDLFVBQTJCO1FBQ3hDLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDN0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDbkQsQ0FBQztJQUVELHdCQUF3QixDQUFDLFVBQWtCLEVBQUUsVUFBa0IsRUFBRSxTQUFpQjtRQUM5RSxJQUFJLENBQUMsZUFBZTtZQUNoQixDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxTQUFTLENBQUM7SUFDakksQ0FBQztJQUVELGdCQUFnQjtRQUNaLE1BQU0saUJBQWlCLEdBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHlCQUF5QjtZQUM5QyxDQUFDLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RGLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pILENBQUM7SUFFRCwwQkFBMEIsQ0FDdEIsaUJBQTJGLEVBQzNGLFNBQTZFLEVBQzdFLE1BQTJDO1FBRTNDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxpQkFBaUIsQ0FBQyxlQUFlLENBQUM7UUFDbkUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUUsZUFBZSxDQUFDLG9DQUFvQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFILElBQUksQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExpbmVJbmZvTW9kZWwgfSBmcm9tICcuL2xpbmUtaW5mby5tb2RlbCc7XG5pbXBvcnQgeyBOb2RlclRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL3RhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdW1iZXJpbmdEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9nYWRnZXRzL251bWJlcmluZy9udW1iZXJpbmctZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBQYWdlVmVydGljYWxEYXRhTW9kZWwgfSBmcm9tICcuLi9wYWdlLXZlcnRpY2FsLWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgUGFyYWdyYXBoSGVscGVyIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL2hlbHBlcnMvcGFyYWdyYXBoLmhlbHBlcic7XG5pbXBvcnQgeyBUZXh0TGluZUluZm8gfSBmcm9tICcuL3RleHQtbGluZS1pbmZvJztcblxuZXhwb3J0IGNsYXNzIFBhcmFncmFwaCB7XG4gICAgc3RhcnRJbnNlcnRJbmRleDogbnVtYmVyO1xuXG4gICAgdGV4dExpbmVzSW5mbzogVGV4dExpbmVJbmZvW10gPSBbXTtcblxuICAgIHBhZ2VQcmV2aW91c0NvbnRlbnRIZWlnaHQgPSAwO1xuXG4gICAgd2lkdGggPSAwO1xuXG4gICAgaGVpZ2h0ID0gMDtcblxuICAgIGRpc3RhbmNlRnJvbVRvcDogbnVtYmVyO1xuXG4gICAgcGFnZU51bWJlcnM6IG51bWJlcltdID0gW107XG5cbiAgICBnZXQgZmlyc3RQYWdlTnVtYmVyKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2VOdW1iZXJzWzBdIHx8IDE7XG4gICAgfVxuXG4gICAgZ2V0IGxhc3RQYWdlTnVtYmVyKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2VOdW1iZXJzW3RoaXMucGFnZU51bWJlcnMubGVuZ3RoIC0gMV0gfHwgMTtcbiAgICB9XG5cbiAgICBnZXQgZmlyc3RTY3JlZW5MaW5lKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRMaW5lc0luZm9bMF0uc2NyZWVuTGluZTtcbiAgICB9XG5cbiAgICBnZXQgbGFzdFNjcmVlbkxpbmUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dExpbmVzSW5mb1t0aGlzLnRleHRMaW5lc0luZm8ubGVuZ3RoIC0gMV0uc2NyZWVuTGluZTtcbiAgICB9XG5cbiAgICBnZXQgaXNFbmRlZEJ5UGFnZUJyZWFrKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0TGluZXNJbmZvW3RoaXMudGV4dExpbmVzSW5mby5sZW5ndGggLSAxXS5pc0VuZGVkQnlQYWdlQnJlYWs7XG4gICAgfVxuXG4gICAgZ2V0IGJhY2tncm91bmRDb2xvcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0TGluZXNJbmZvWzBdLmJhY2tncm91bmRDb2xvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBudW1iZXJpbmdEYXRhOiBOdW1iZXJpbmdEYXRhTW9kZWwsXG4gICAgICAgIHByaXZhdGUgb2Zmc2V0QmVmb3JlOiBudW1iZXIsXG4gICAgICAgIHByaXZhdGUgcHJvY2Vzc1RleHRMaW5lc1Byb3BlcnRpZXM6IChcbiAgICAgICAgICAgIGN1cnJlbnRQYXJhZ3JhcGg6IFBhcmFncmFwaCxcbiAgICAgICAgICAgIHByZXZQYXJhZ3JhcGhJbmZvOiB7IGxhc3RQYWdlOiBudW1iZXI7IHBhcmFncmFwaEhlaWdodDogbnVtYmVyOyBwYXJhZ3JhcGhMYXN0TGluZTogbnVtYmVyIH0sXG4gICAgICAgICAgICBwYWdlc0luZm86IHsgcGFnZXNWZXJ0aWNhbERhdGE6IFBhZ2VWZXJ0aWNhbERhdGFNb2RlbFtdOyBwYWdlc1NwYWNlOiBudW1iZXIgfSxcbiAgICAgICAgICAgIHRhYmxlczogQ29tcG9uZW50UmVmPE5vZGVyVGFibGVDb21wb25lbnQ+W11cbiAgICAgICAgKSA9PiB2b2lkXG4gICAgKSB7fVxuXG4gICAgc2V0VGV4dExpbmVzSW5mbyhsaW5lc0luZm9zOiBMaW5lSW5mb01vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZXh0TGluZXNJbmZvID0gbGluZXNJbmZvcy5tYXAobGluZUluZm8gPT4gbmV3IFRleHRMaW5lSW5mbyh0aGlzLndpZHRoLCBsaW5lSW5mby5hbGlnbiwgbGluZUluZm8uaW5kZW50LCBsaW5lSW5mbykpO1xuICAgIH1cblxuICAgIHNldElzQWZ0ZXJQYWdlQnJlYWsodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZXh0TGluZXNJbmZvWzBdLmlzQWZ0ZXJQYWdlQnJlYWsgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGVEaXN0YW5jZUZyb21Ub3AocGFnZUhlaWdodDogbnVtYmVyLCBwYWdlc1NwYWNlOiBudW1iZXIsIG1hcmdpblRvcDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzdGFuY2VGcm9tVG9wID1cbiAgICAgICAgICAgICh0aGlzLmZpcnN0UGFnZU51bWJlciAtIDEpICogcGFnZUhlaWdodCArIHRoaXMuZmlyc3RQYWdlTnVtYmVyICogcGFnZXNTcGFjZSArIHRoaXMucGFnZVByZXZpb3VzQ29udGVudEhlaWdodCArIG1hcmdpblRvcDtcbiAgICB9XG5cbiAgICBnZXRQYXJhZ3JhcGhEYXRhKCk6IHsgbGFzdFBhZ2U6IG51bWJlcjsgcGFyYWdyYXBoSGVpZ2h0OiBudW1iZXI7IHBhcmFncmFwaExhc3RMaW5lOiBudW1iZXIgfSB7XG4gICAgICAgIGNvbnN0IHBhZ2VDb250ZW50SGVpZ2h0ID1cbiAgICAgICAgICAgIHRoaXMucGFnZU51bWJlcnMubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgICAgPyB0aGlzLmhlaWdodCArIHRoaXMucGFnZVByZXZpb3VzQ29udGVudEhlaWdodFxuICAgICAgICAgICAgICAgIDogUGFyYWdyYXBoSGVscGVyLmdldFBhZ2VMaW5lc0hlaWdodCh0aGlzLnRleHRMaW5lc0luZm8sIHRoaXMubGFzdFBhZ2VOdW1iZXIpO1xuICAgICAgICByZXR1cm4geyBsYXN0UGFnZTogdGhpcy5sYXN0UGFnZU51bWJlciwgcGFyYWdyYXBoSGVpZ2h0OiBwYWdlQ29udGVudEhlaWdodCwgcGFyYWdyYXBoTGFzdExpbmU6IHRoaXMubGFzdFNjcmVlbkxpbmUgfTtcbiAgICB9XG5cbiAgICBwcm9jZXNzUGFyYWdyYXBoUHJvcGVydGllcyhcbiAgICAgICAgcHJldlBhcmFncmFwaEluZm86IHsgbGFzdFBhZ2U6IG51bWJlcjsgcGFyYWdyYXBoSGVpZ2h0OiBudW1iZXI7IHBhcmFncmFwaExhc3RMaW5lOiBudW1iZXIgfSxcbiAgICAgICAgcGFnZXNJbmZvOiB7IHBhZ2VzVmVydGljYWxEYXRhOiBQYWdlVmVydGljYWxEYXRhTW9kZWxbXTsgcGFnZXNTcGFjZTogbnVtYmVyIH0sXG4gICAgICAgIHRhYmxlczogQ29tcG9uZW50UmVmPE5vZGVyVGFibGVDb21wb25lbnQ+W11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlUHJldmlvdXNDb250ZW50SGVpZ2h0ID0gcHJldlBhcmFncmFwaEluZm8ucGFyYWdyYXBoSGVpZ2h0O1xuICAgICAgICB0aGlzLnByb2Nlc3NUZXh0TGluZXNQcm9wZXJ0aWVzKHRoaXMsIHByZXZQYXJhZ3JhcGhJbmZvLCBwYWdlc0luZm8sIHRhYmxlcyk7XG4gICAgICAgIFBhcmFncmFwaEhlbHBlci5wcm9jZXNzT2Zmc2V0TGluZVdpdGhOdW1iZXJpbmdNYXJrZXIodGhpcy50ZXh0TGluZXNJbmZvWzBdLCB0aGlzLm51bWJlcmluZ0RhdGEuaGVpZ2h0LCB0aGlzLm9mZnNldEJlZm9yZSk7XG4gICAgICAgIHRoaXMucGFnZU51bWJlcnMgPSBQYXJhZ3JhcGhIZWxwZXIuZ2V0UGFyYWdyYXBoUGFnZXModGhpcy50ZXh0TGluZXNJbmZvKTtcbiAgICAgICAgdGhpcy5oZWlnaHQgPSBQYXJhZ3JhcGhIZWxwZXIuZ2V0UGFyYWdyYXBoSGVpZ2h0KHRoaXMudGV4dExpbmVzSW5mbyk7XG4gICAgfVxufVxuIl19
@@ -12,6 +12,7 @@ export class TextLineInfo {
12
12
  if (fields) {
13
13
  Object.assign(this, fields);
14
14
  }
15
+ this.indentLeft = indent.left;
15
16
  const diff = contentWidth - this.width;
16
17
  if (this.width === undefined || diff === 0) {
17
18
  return;
@@ -31,4 +32,4 @@ export class TextLineInfo {
31
32
  this.paddingLeft -= indent.hanging;
32
33
  }
33
34
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1saW5lLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29udGVudC9kaXNwbGF5LWRhdGEvdGV4dC1saW5lLWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBSS9ELE1BQU0sT0FBTyxZQUFZO0lBNkJyQixZQUFZLFlBQW9CLEVBQUUsS0FBYSxFQUFFLE1BQW1CLEVBQUUsTUFBK0I7UUF0QnJHLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRWhCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBRWpCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRWhCLHdCQUFtQixHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjtRQUV6QyxrQkFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjtRQUVuQyxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBRWYscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQVN2QixJQUFJLE1BQU0sRUFBRTtZQUNSLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQy9CO1FBRUQsTUFBTSxJQUFJLEdBQUcsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdkMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ3hDLE9BQU87U0FDVjtRQUVELFFBQVEsS0FBSyxFQUFFO1lBQ1gsS0FBSyxTQUFTLENBQUMsTUFBTTtnQkFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekUsTUFBTTtZQUNWLEtBQUssU0FBUyxDQUFDLEtBQUs7Z0JBQ2hCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ3ZDLE1BQU07WUFDVjtnQkFDSSxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQy9CLE1BQU07U0FDYjtRQUVELElBQUksQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDdkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWxpZ25tZW50IH0gZnJvbSAnLi4vLi4vcG9zaXRpb25pbmcvYWxpZ25tZW50cy5jb25zdCc7XG5pbXBvcnQgeyBJbmRlbnRNb2RlbCB9IGZyb20gJy4vaW5kZW50Lm1vZGVsJztcbmltcG9ydCB7IExpbmVJbmZvTW9kZWwgfSBmcm9tICcuL2xpbmUtaW5mby5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBUZXh0TGluZUluZm8ge1xuICAgIHdpZHRoOiBudW1iZXI7XG5cbiAgICBoZWlnaHQ6IG51bWJlcjtcblxuICAgIHBhZ2U/OiBudW1iZXI7XG5cbiAgICBwYWRkaW5nTGVmdCA9IDA7XG5cbiAgICBvZmZzZXRCZWZvcmUgPSAwO1xuXG4gICAgb2Zmc2V0QWZ0ZXIgPSAwO1xuXG4gICAgZmlyc3RMaW5lUGFnZU9mZnNldCA9IDA7IC8vIGZvciBzZWxlY3Rpb25cblxuICAgIGVuZFBhZ2VPZmZzZXQgPSAwOyAvLyBmb3Igc2VsZWN0aW9uXG5cbiAgICBzY3JlZW5MaW5lID0gMDtcblxuICAgIGlzQWZ0ZXJQYWdlQnJlYWsgPSBmYWxzZTtcblxuICAgIGlzRW5kZWRCeVBhZ2VCcmVhayA9IGZhbHNlO1xuXG4gICAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG5cbiAgICBoYXNUYWJsZTogYm9vbGVhbjtcblxuICAgIHNwbGl0T2Zmc2V0OiBudW1iZXI7IC8vIG9mZnNldCBvZiB0aGUgZmlyc3QgbGluZSBhZnRlciB0YWJsZSBzcGxpdFxuXG4gICAgY29uc3RydWN0b3IoY29udGVudFdpZHRoOiBudW1iZXIsIGFsaWduOiBudW1iZXIsIGluZGVudDogSW5kZW50TW9kZWwsIGZpZWxkcz86IFBhcnRpYWw8TGluZUluZm9Nb2RlbD4pIHtcbiAgICAgICAgaWYgKGZpZWxkcykge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmaWVsZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGlmZiA9IGNvbnRlbnRXaWR0aCAtIHRoaXMud2lkdGg7XG4gICAgICAgIGlmICh0aGlzLndpZHRoID09PSB1bmRlZmluZWQgfHwgZGlmZiA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChhbGlnbikge1xuICAgICAgICAgICAgY2FzZSBBbGlnbm1lbnQuY2VudGVyOlxuICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ0xlZnQgPSBpbmRlbnQubGVmdCArIChkaWZmIC0gaW5kZW50LmxlZnQgLSBpbmRlbnQucmlnaHQpIC8gMjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQWxpZ25tZW50LnJpZ2h0OlxuICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ0xlZnQgPSBkaWZmIC0gaW5kZW50LnJpZ2h0O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLnBhZGRpbmdMZWZ0ID0gaW5kZW50LmxlZnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBhZGRpbmdMZWZ0ICs9IGluZGVudC5maXJzdExpbmU7XG4gICAgICAgIHRoaXMucGFkZGluZ0xlZnQgLT0gaW5kZW50Lmhhbmdpbmc7XG4gICAgfVxufVxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1saW5lLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29udGVudC9kaXNwbGF5LWRhdGEvdGV4dC1saW5lLWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBSS9ELE1BQU0sT0FBTyxZQUFZO0lBOEJyQixZQUFZLFlBQW9CLEVBQUUsS0FBYSxFQUFFLE1BQW1CLEVBQUUsTUFBK0I7UUF2QnJHLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRWhCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBRWpCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRWhCLHdCQUFtQixHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjtRQUV6QyxrQkFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjtRQUVuQyxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBRWYscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQVV2QixJQUFJLE1BQU0sRUFBRTtZQUNSLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQy9CO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFHLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtZQUN4QyxPQUFPO1NBQ1Y7UUFFRCxRQUFRLEtBQUssRUFBRTtZQUNYLEtBQUssU0FBUyxDQUFDLE1BQU07Z0JBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pFLE1BQU07WUFDVixLQUFLLFNBQVMsQ0FBQyxLQUFLO2dCQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUN2QyxNQUFNO1lBQ1Y7Z0JBQ0ksSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUMvQixNQUFNO1NBQ2I7UUFFRCxJQUFJLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ3ZDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFsaWdubWVudCB9IGZyb20gJy4uLy4uL3Bvc2l0aW9uaW5nL2FsaWdubWVudHMuY29uc3QnO1xuaW1wb3J0IHsgSW5kZW50TW9kZWwgfSBmcm9tICcuL2luZGVudC5tb2RlbCc7XG5pbXBvcnQgeyBMaW5lSW5mb01vZGVsIH0gZnJvbSAnLi9saW5lLWluZm8ubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgVGV4dExpbmVJbmZvIHtcbiAgICB3aWR0aDogbnVtYmVyO1xuXG4gICAgaGVpZ2h0OiBudW1iZXI7XG5cbiAgICBwYWdlPzogbnVtYmVyO1xuXG4gICAgcGFkZGluZ0xlZnQgPSAwO1xuXG4gICAgb2Zmc2V0QmVmb3JlID0gMDtcblxuICAgIG9mZnNldEFmdGVyID0gMDtcblxuICAgIGZpcnN0TGluZVBhZ2VPZmZzZXQgPSAwOyAvLyBmb3Igc2VsZWN0aW9uXG5cbiAgICBlbmRQYWdlT2Zmc2V0ID0gMDsgLy8gZm9yIHNlbGVjdGlvblxuXG4gICAgc2NyZWVuTGluZSA9IDA7XG5cbiAgICBpc0FmdGVyUGFnZUJyZWFrID0gZmFsc2U7XG5cbiAgICBpc0VuZGVkQnlQYWdlQnJlYWsgPSBmYWxzZTtcblxuICAgIGJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuXG4gICAgaGFzVGFibGU6IGJvb2xlYW47XG5cbiAgICBzcGxpdE9mZnNldDogbnVtYmVyOyAvLyBvZmZzZXQgb2YgdGhlIGZpcnN0IGxpbmUgYWZ0ZXIgdGFibGUgc3BsaXRcbiAgICBpbmRlbnRMZWZ0OiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcihjb250ZW50V2lkdGg6IG51bWJlciwgYWxpZ246IG51bWJlciwgaW5kZW50OiBJbmRlbnRNb2RlbCwgZmllbGRzPzogUGFydGlhbDxMaW5lSW5mb01vZGVsPikge1xuICAgICAgICBpZiAoZmllbGRzKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGZpZWxkcyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluZGVudExlZnQgPSBpbmRlbnQubGVmdDtcbiAgICAgICAgY29uc3QgZGlmZiA9IGNvbnRlbnRXaWR0aCAtIHRoaXMud2lkdGg7XG4gICAgICAgIGlmICh0aGlzLndpZHRoID09PSB1bmRlZmluZWQgfHwgZGlmZiA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChhbGlnbikge1xuICAgICAgICAgICAgY2FzZSBBbGlnbm1lbnQuY2VudGVyOlxuICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ0xlZnQgPSBpbmRlbnQubGVmdCArIChkaWZmIC0gaW5kZW50LmxlZnQgLSBpbmRlbnQucmlnaHQpIC8gMjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQWxpZ25tZW50LnJpZ2h0OlxuICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ0xlZnQgPSBkaWZmIC0gaW5kZW50LnJpZ2h0O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLnBhZGRpbmdMZWZ0ID0gaW5kZW50LmxlZnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBhZGRpbmdMZWZ0ICs9IGluZGVudC5maXJzdExpbmU7XG4gICAgICAgIHRoaXMucGFkZGluZ0xlZnQgLT0gaW5kZW50Lmhhbmdpbmc7XG4gICAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1zdHlsZXMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2NvbnRlbnQvZGlzcGxheS1kYXRhL3Rvb2xiYXItc3R5bGVzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJVG9vbGJhclN0eWxlcyB7XG4gICAgYWxpZ25tZW50PzogYW55O1xuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICBoaWdobGlnaHRDb2xvcj86IHN0cmluZztcbiAgICBmb250Q29sb3I/OiBzdHJpbmc7XG4gICAgZm9udEZhbWlseT86IHN0cmluZztcbiAgICBmb250U2l6ZT86IG51bWJlcjtcbiAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgIGJvbGQ/OiBib29sZWFuO1xuICAgIHN0cmlrZXRocm91Z2g/OiBib29sZWFuO1xuICAgIHVuZGVybGluZT86IGJvb2xlYW47XG4gICAgc3BhY2VBZnRlcj86IG51bWJlcjtcbiAgICBzcGFjZUJlZm9yZT86IG51bWJlcjtcbiAgICBpbmRlbnRMZWZ0PzogbnVtYmVyO1xuICAgIGluZGVudFJpZ2h0PzogbnVtYmVyO1xuICAgIGlzQnVsbGV0TWFya2VyPzogYm9vbGVhbjtcbiAgICBudW1iZXJpbmdMZXZlbHNTdHlsZXM/OiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1zdHlsZXMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2NvbnRlbnQvZGlzcGxheS1kYXRhL3Rvb2xiYXItc3R5bGVzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJVG9vbGJhclN0eWxlcyB7XG4gICAgYWxpZ25tZW50PzogYW55O1xuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICBoaWdobGlnaHRDb2xvcj86IHN0cmluZztcbiAgICBmb250Q29sb3I/OiBzdHJpbmc7XG4gICAgZm9udEZhbWlseT86IHN0cmluZztcbiAgICBmb250U2l6ZT86IG51bWJlcjtcbiAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgIGJvbGQ/OiBib29sZWFuO1xuICAgIHN0cmlrZXRocm91Z2g/OiBib29sZWFuO1xuICAgIHVuZGVybGluZT86IGJvb2xlYW47XG4gICAgc3BhY2VBZnRlcj86IG51bWJlcjtcbiAgICBzcGFjZUJlZm9yZT86IG51bWJlcjtcbiAgICBpbmRlbnRMZWZ0PzogbnVtYmVyO1xuICAgIGluZGVudFJpZ2h0PzogbnVtYmVyO1xuICAgIG51bWJlcmluZ1R5cGU/OiBhbnk7XG4gICAgbnVtYmVyaW5nTGV2ZWxzU3R5bGVzPzogc3RyaW5nO1xufVxuIl19
@@ -1,23 +1,5 @@
1
- import { Alignment } from '../../positioning/alignments.const';
2
- import { DEFAULT_BACKGROUND_COLOR, DEFAULT_FONT_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE } from '../constants/editor.const';
3
1
  import { TextStyleModel } from '../../../models/generated/text-style.model';
4
2
  export class ContentStyleHelper {
5
- static getDefaultStyleValueByKey(key) {
6
- switch (key) {
7
- case 'fontFamily':
8
- return DEFAULT_FONT_FAMILY;
9
- case 'fontSize':
10
- return DEFAULT_FONT_SIZE;
11
- case 'fontColor':
12
- return DEFAULT_FONT_COLOR;
13
- case 'highlightColor':
14
- return DEFAULT_BACKGROUND_COLOR;
15
- case 'alignment':
16
- return Alignment.left;
17
- default:
18
- return;
19
- }
20
- }
21
3
  static getTextStylesString(textStyle) {
22
4
  let result = '';
23
5
  if (textStyle.fontSize) {
@@ -79,18 +61,18 @@ export class ContentStyleHelper {
79
61
  }
80
62
  static combineTextStyles(current, parent) {
81
63
  return new TextStyleModel({
82
- highlightColor: current.highlightColor ?? parent.highlightColor,
83
- bold: current.bold ?? parent.bold,
84
- fontColor: current.fontColor ?? parent.fontColor,
85
- fontFamily: current.fontFamily ?? parent.fontFamily,
86
- fontSize: current.fontSize ?? parent.fontSize,
87
- headingStyleId: current.headingStyleId ?? parent.headingStyleId,
88
- isSmallCaps: current.isSmallCaps ?? parent.isSmallCaps,
89
- italic: current.italic ?? parent.italic,
90
- strikethrough: current.strikethrough ?? parent.strikethrough,
91
- underline: current.underline ?? parent.underline,
92
- verticalAlignment: current.verticalAlignment ?? parent.verticalAlignment
64
+ highlightColor: current?.highlightColor ?? parent.highlightColor,
65
+ bold: current?.bold ?? parent.bold,
66
+ fontColor: current?.fontColor ?? parent.fontColor,
67
+ fontFamily: current?.fontFamily ?? parent.fontFamily,
68
+ fontSize: current?.fontSize ?? parent.fontSize,
69
+ headingStyleId: current?.headingStyleId ?? parent.headingStyleId,
70
+ isSmallCaps: current?.isSmallCaps ?? parent.isSmallCaps,
71
+ italic: current?.italic ?? parent.italic,
72
+ strikethrough: current?.strikethrough ?? parent.strikethrough,
73
+ underline: current?.underline ?? parent.underline,
74
+ verticalAlignment: current?.verticalAlignment ?? parent.verticalAlignment
93
75
  });
94
76
  }
95
77
  }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1zdHlsZS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29udGVudC9oZWxwZXJzL2NvbnRlbnQtc3R5bGUuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFNUUsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQixNQUFNLENBQUMseUJBQXlCLENBQUMsR0FBVztRQUN4QyxRQUFRLEdBQUcsRUFBRTtZQUNULEtBQUssWUFBWTtnQkFDYixPQUFPLG1CQUFtQixDQUFDO1lBQy9CLEtBQUssVUFBVTtnQkFDWCxPQUFPLGlCQUFpQixDQUFDO1lBQzdCLEtBQUssV0FBVztnQkFDWixPQUFPLGtCQUFrQixDQUFDO1lBQzlCLEtBQUssZ0JBQWdCO2dCQUNqQixPQUFPLHdCQUF3QixDQUFDO1lBQ3BDLEtBQUssV0FBVztnQkFDWixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDMUI7Z0JBQ0ksT0FBTztTQUNkO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUF5QjtRQUNoRCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxhQUFhLFNBQVMsQ0FBQyxRQUFRLEtBQUssQ0FBQztTQUNsRDtRQUVELElBQUksU0FBUyxDQUFDLFVBQVUsRUFBRTtZQUN0QixNQUFNLElBQUksZUFBZSxTQUFTLENBQUMsVUFBVSxHQUFHLENBQUM7U0FDcEQ7UUFFRCxJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFDckIsTUFBTSxJQUFJLFNBQVMsU0FBUyxDQUFDLFNBQVMsR0FBRyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxTQUFTLENBQUMsY0FBYyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxvQkFBb0IsU0FBUyxDQUFDLGNBQWMsR0FBRyxDQUFDO1NBQzdEO1FBRUQsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxtQkFBbUIsQ0FBQztTQUNqQztRQUVELElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUNsQixNQUFNLElBQUksb0JBQW9CLENBQUM7U0FDbEM7UUFFRCxJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFDckIsTUFBTSxJQUFJLDRCQUE0QixDQUFDO1NBQzFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQXlCO1FBQ2hELElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ1osT0FBTyxVQUFVLENBQUM7U0FDckI7UUFFRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDbEIsVUFBVSxJQUFJLFNBQVMsQ0FBQztTQUMzQjtRQUVELElBQUksU0FBUyxDQUFDLElBQUksRUFBRTtZQUNoQixVQUFVLElBQUksT0FBTyxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQ3BCLFVBQVUsSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEtBQUssQ0FBQztTQUM1QztRQUVELElBQUksU0FBUyxDQUFDLFVBQVUsRUFBRTtZQUN0QixVQUFVLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQztTQUN0QztRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBcUIsRUFBRSxNQUFzQjtRQUNsRSxPQUFPLENBQ0gsS0FBSyxDQUFDLGNBQWMsS0FBSyxNQUFNLENBQUMsY0FBYztZQUM5QyxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJO1lBQzFCLEtBQUssQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLFNBQVM7WUFDcEMsS0FBSyxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsVUFBVTtZQUN0QyxLQUFLLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxRQUFRO1lBQ2xDLEtBQUssQ0FBQyxXQUFXLEtBQUssTUFBTSxDQUFDLFdBQVc7WUFDeEMsS0FBSyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTTtZQUM5QixLQUFLLENBQUMsYUFBYSxLQUFLLE1BQU0sQ0FBQyxhQUFhO1lBQzVDLEtBQUssQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLFNBQVM7WUFDcEMsS0FBSyxDQUFDLGlCQUFpQixLQUFLLE1BQU0sQ0FBQyxpQkFBaUIsQ0FDdkQsQ0FBQztJQUNOLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBdUIsRUFBRSxNQUFzQjtRQUNwRSxPQUFPLElBQUksY0FBYyxDQUFDO1lBQ3RCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxjQUFjO1lBQy9ELElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJO1lBQ2pDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTO1lBQ2hELFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVO1lBQ25ELFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRO1lBQzdDLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxjQUFjO1lBQy9ELFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXO1lBQ3RELE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNO1lBQ3ZDLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLE1BQU0sQ0FBQyxhQUFhO1lBQzVELFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTO1lBQ2hELGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxNQUFNLENBQUMsaUJBQWlCO1NBQzNFLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFsaWdubWVudCB9IGZyb20gJy4uLy4uL3Bvc2l0aW9uaW5nL2FsaWdubWVudHMuY29uc3QnO1xuaW1wb3J0IHsgREVGQVVMVF9CQUNLR1JPVU5EX0NPTE9SLCBERUZBVUxUX0ZPTlRfQ09MT1IsIERFRkFVTFRfRk9OVF9GQU1JTFksIERFRkFVTFRfRk9OVF9TSVpFIH0gZnJvbSAnLi4vY29uc3RhbnRzL2VkaXRvci5jb25zdCc7XG5pbXBvcnQgeyBUZXh0U3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGV4dC1zdHlsZS5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBDb250ZW50U3R5bGVIZWxwZXIge1xuICAgIHN0YXRpYyBnZXREZWZhdWx0U3R5bGVWYWx1ZUJ5S2V5KGtleTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2ZvbnRGYW1pbHknOlxuICAgICAgICAgICAgICAgIHJldHVybiBERUZBVUxUX0ZPTlRfRkFNSUxZO1xuICAgICAgICAgICAgY2FzZSAnZm9udFNpemUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBERUZBVUxUX0ZPTlRfU0laRTtcbiAgICAgICAgICAgIGNhc2UgJ2ZvbnRDb2xvcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIERFRkFVTFRfRk9OVF9DT0xPUjtcbiAgICAgICAgICAgIGNhc2UgJ2hpZ2hsaWdodENvbG9yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gREVGQVVMVF9CQUNLR1JPVU5EX0NPTE9SO1xuICAgICAgICAgICAgY2FzZSAnYWxpZ25tZW50JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gQWxpZ25tZW50LmxlZnQ7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBnZXRUZXh0U3R5bGVzU3RyaW5nKHRleHRTdHlsZTogVGV4dFN0eWxlTW9kZWwpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICAgIGlmICh0ZXh0U3R5bGUuZm9udFNpemUpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBgZm9udC1zaXplOiR7dGV4dFN0eWxlLmZvbnRTaXplfXB0O2A7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGV4dFN0eWxlLmZvbnRGYW1pbHkpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBgZm9udC1mYW1pbHk6JHt0ZXh0U3R5bGUuZm9udEZhbWlseX07YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0U3R5bGUuZm9udENvbG9yKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gYGNvbG9yOiR7dGV4dFN0eWxlLmZvbnRDb2xvcn07YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0U3R5bGUuaGlnaGxpZ2h0Q29sb3IpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBgYmFja2dyb3VuZC1jb2xvcjoke3RleHRTdHlsZS5oaWdobGlnaHRDb2xvcn07YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0U3R5bGUuYm9sZCkge1xuICAgICAgICAgICAgcmVzdWx0ICs9ICdmb250LXdlaWdodDpib2xkOyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGV4dFN0eWxlLml0YWxpYykge1xuICAgICAgICAgICAgcmVzdWx0ICs9ICdmb250LXN0eWxlOml0YWxpYzsnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS51bmRlcmxpbmUpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSAndGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGZvbnQgc3R5bGVzIHN0cmluZyBmcm9tIG1vZGlmaWVyIHVzZWQgZm9yIGNhbnZhcyBjYWxjdWxhdGlvblxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRGb250U3R5bGVzU3RyaW5nKHRleHRTdHlsZTogVGV4dFN0eWxlTW9kZWwpOiBzdHJpbmcge1xuICAgICAgICBsZXQgZm9udFN0cmluZyA9ICcnO1xuICAgICAgICBpZiAoIXRleHRTdHlsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZvbnRTdHJpbmc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGV4dFN0eWxlLml0YWxpYykge1xuICAgICAgICAgICAgZm9udFN0cmluZyArPSAnaXRhbGljICc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGV4dFN0eWxlLmJvbGQpIHtcbiAgICAgICAgICAgIGZvbnRTdHJpbmcgKz0gJ2JvbGQgJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0U3R5bGUuZm9udFNpemUpIHtcbiAgICAgICAgICAgIGZvbnRTdHJpbmcgKz0gYCR7dGV4dFN0eWxlLmZvbnRTaXplfXB0IGA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGV4dFN0eWxlLmZvbnRGYW1pbHkpIHtcbiAgICAgICAgICAgIGZvbnRTdHJpbmcgKz0gdGV4dFN0eWxlLmZvbnRGYW1pbHk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9udFN0cmluZztcbiAgICB9XG5cbiAgICBzdGF0aWMgYXJlU2FtZVRleHRTdHlsZXMoZmlyc3Q6IFRleHRTdHlsZU1vZGVsLCBzZWNvbmQ6IFRleHRTdHlsZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBmaXJzdC5oaWdobGlnaHRDb2xvciA9PT0gc2Vjb25kLmhpZ2hsaWdodENvbG9yICYmXG4gICAgICAgICAgICBmaXJzdC5ib2xkID09PSBzZWNvbmQuYm9sZCAmJlxuICAgICAgICAgICAgZmlyc3QuZm9udENvbG9yID09PSBzZWNvbmQuZm9udENvbG9yICYmXG4gICAgICAgICAgICBmaXJzdC5mb250RmFtaWx5ID09PSBzZWNvbmQuZm9udEZhbWlseSAmJlxuICAgICAgICAgICAgZmlyc3QuZm9udFNpemUgPT09IHNlY29uZC5mb250U2l6ZSAmJlxuICAgICAgICAgICAgZmlyc3QuaXNTbWFsbENhcHMgPT09IHNlY29uZC5pc1NtYWxsQ2FwcyAmJlxuICAgICAgICAgICAgZmlyc3QuaXRhbGljID09PSBzZWNvbmQuaXRhbGljICYmXG4gICAgICAgICAgICBmaXJzdC5zdHJpa2V0aHJvdWdoID09PSBzZWNvbmQuc3RyaWtldGhyb3VnaCAmJlxuICAgICAgICAgICAgZmlyc3QudW5kZXJsaW5lID09PSBzZWNvbmQudW5kZXJsaW5lICYmXG4gICAgICAgICAgICBmaXJzdC52ZXJ0aWNhbEFsaWdubWVudCA9PT0gc2Vjb25kLnZlcnRpY2FsQWxpZ25tZW50XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3RhdGljIGNvbWJpbmVUZXh0U3R5bGVzKGN1cnJlbnQ6IFRleHRTdHlsZU1vZGVsLCBwYXJlbnQ6IFRleHRTdHlsZU1vZGVsKTogVGV4dFN0eWxlTW9kZWwge1xuICAgICAgICByZXR1cm4gbmV3IFRleHRTdHlsZU1vZGVsKHtcbiAgICAgICAgICAgIGhpZ2hsaWdodENvbG9yOiBjdXJyZW50LmhpZ2hsaWdodENvbG9yID8/IHBhcmVudC5oaWdobGlnaHRDb2xvcixcbiAgICAgICAgICAgIGJvbGQ6IGN1cnJlbnQuYm9sZCA/PyBwYXJlbnQuYm9sZCxcbiAgICAgICAgICAgIGZvbnRDb2xvcjogY3VycmVudC5mb250Q29sb3IgPz8gcGFyZW50LmZvbnRDb2xvcixcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IGN1cnJlbnQuZm9udEZhbWlseSA/PyBwYXJlbnQuZm9udEZhbWlseSxcbiAgICAgICAgICAgIGZvbnRTaXplOiBjdXJyZW50LmZvbnRTaXplID8/IHBhcmVudC5mb250U2l6ZSxcbiAgICAgICAgICAgIGhlYWRpbmdTdHlsZUlkOiBjdXJyZW50LmhlYWRpbmdTdHlsZUlkID8/IHBhcmVudC5oZWFkaW5nU3R5bGVJZCxcbiAgICAgICAgICAgIGlzU21hbGxDYXBzOiBjdXJyZW50LmlzU21hbGxDYXBzID8/IHBhcmVudC5pc1NtYWxsQ2FwcyxcbiAgICAgICAgICAgIGl0YWxpYzogY3VycmVudC5pdGFsaWMgPz8gcGFyZW50Lml0YWxpYyxcbiAgICAgICAgICAgIHN0cmlrZXRocm91Z2g6IGN1cnJlbnQuc3RyaWtldGhyb3VnaCA/PyBwYXJlbnQuc3RyaWtldGhyb3VnaCxcbiAgICAgICAgICAgIHVuZGVybGluZTogY3VycmVudC51bmRlcmxpbmUgPz8gcGFyZW50LnVuZGVybGluZSxcbiAgICAgICAgICAgIHZlcnRpY2FsQWxpZ25tZW50OiBjdXJyZW50LnZlcnRpY2FsQWxpZ25tZW50ID8/IHBhcmVudC52ZXJ0aWNhbEFsaWdubWVudFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1zdHlsZS5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29udGVudC9oZWxwZXJzL2NvbnRlbnQtc3R5bGUuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUU1RSxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUF5QjtRQUNoRCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxhQUFhLFNBQVMsQ0FBQyxRQUFRLEtBQUssQ0FBQztTQUNsRDtRQUVELElBQUksU0FBUyxDQUFDLFVBQVUsRUFBRTtZQUN0QixNQUFNLElBQUksZUFBZSxTQUFTLENBQUMsVUFBVSxHQUFHLENBQUM7U0FDcEQ7UUFFRCxJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFDckIsTUFBTSxJQUFJLFNBQVMsU0FBUyxDQUFDLFNBQVMsR0FBRyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxTQUFTLENBQUMsY0FBYyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxvQkFBb0IsU0FBUyxDQUFDLGNBQWMsR0FBRyxDQUFDO1NBQzdEO1FBRUQsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxtQkFBbUIsQ0FBQztTQUNqQztRQUVELElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUNsQixNQUFNLElBQUksb0JBQW9CLENBQUM7U0FDbEM7UUFFRCxJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFDckIsTUFBTSxJQUFJLDRCQUE0QixDQUFDO1NBQzFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQXlCO1FBQ2hELElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ1osT0FBTyxVQUFVLENBQUM7U0FDckI7UUFFRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDbEIsVUFBVSxJQUFJLFNBQVMsQ0FBQztTQUMzQjtRQUVELElBQUksU0FBUyxDQUFDLElBQUksRUFBRTtZQUNoQixVQUFVLElBQUksT0FBTyxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQ3BCLFVBQVUsSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEtBQUssQ0FBQztTQUM1QztRQUVELElBQUksU0FBUyxDQUFDLFVBQVUsRUFBRTtZQUN0QixVQUFVLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQztTQUN0QztRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBcUIsRUFBRSxNQUFzQjtRQUNsRSxPQUFPLENBQ0gsS0FBSyxDQUFDLGNBQWMsS0FBSyxNQUFNLENBQUMsY0FBYztZQUM5QyxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJO1lBQzFCLEtBQUssQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLFNBQVM7WUFDcEMsS0FBSyxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsVUFBVTtZQUN0QyxLQUFLLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxRQUFRO1lBQ2xDLEtBQUssQ0FBQyxXQUFXLEtBQUssTUFBTSxDQUFDLFdBQVc7WUFDeEMsS0FBSyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTTtZQUM5QixLQUFLLENBQUMsYUFBYSxLQUFLLE1BQU0sQ0FBQyxhQUFhO1lBQzVDLEtBQUssQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLFNBQVM7WUFDcEMsS0FBSyxDQUFDLGlCQUFpQixLQUFLLE1BQU0sQ0FBQyxpQkFBaUIsQ0FDdkQsQ0FBQztJQUNOLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBOEIsRUFBRSxNQUFzQjtRQUMzRSxPQUFPLElBQUksY0FBYyxDQUFDO1lBQ3RCLGNBQWMsRUFBRSxPQUFPLEVBQUUsY0FBYyxJQUFJLE1BQU0sQ0FBQyxjQUFjO1lBQ2hFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJO1lBQ2xDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTO1lBQ2pELFVBQVUsRUFBRSxPQUFPLEVBQUUsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVO1lBQ3BELFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRO1lBQzlDLGNBQWMsRUFBRSxPQUFPLEVBQUUsY0FBYyxJQUFJLE1BQU0sQ0FBQyxjQUFjO1lBQ2hFLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXO1lBQ3ZELE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNO1lBQ3hDLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYSxJQUFJLE1BQU0sQ0FBQyxhQUFhO1lBQzdELFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTO1lBQ2pELGlCQUFpQixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsSUFBSSxNQUFNLENBQUMsaUJBQWlCO1NBQzVFLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRleHRTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90ZXh0LXN0eWxlLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIENvbnRlbnRTdHlsZUhlbHBlciB7XG4gICAgc3RhdGljIGdldFRleHRTdHlsZXNTdHJpbmcodGV4dFN0eWxlOiBUZXh0U3R5bGVNb2RlbCk6IHN0cmluZyB7XG4gICAgICAgIGxldCByZXN1bHQgPSAnJztcbiAgICAgICAgaWYgKHRleHRTdHlsZS5mb250U2l6ZSkge1xuICAgICAgICAgICAgcmVzdWx0ICs9IGBmb250LXNpemU6JHt0ZXh0U3R5bGUuZm9udFNpemV9cHQ7YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0U3R5bGUuZm9udEZhbWlseSkge1xuICAgICAgICAgICAgcmVzdWx0ICs9IGBmb250LWZhbWlseToke3RleHRTdHlsZS5mb250RmFtaWx5fTtgO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS5mb250Q29sb3IpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBgY29sb3I6JHt0ZXh0U3R5bGUuZm9udENvbG9yfTtgO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS5oaWdobGlnaHRDb2xvcikge1xuICAgICAgICAgICAgcmVzdWx0ICs9IGBiYWNrZ3JvdW5kLWNvbG9yOiR7dGV4dFN0eWxlLmhpZ2hsaWdodENvbG9yfTtgO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS5ib2xkKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gJ2ZvbnQtd2VpZ2h0OmJvbGQ7JztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0U3R5bGUuaXRhbGljKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gJ2ZvbnQtc3R5bGU6aXRhbGljOyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGV4dFN0eWxlLnVuZGVybGluZSkge1xuICAgICAgICAgICAgcmVzdWx0ICs9ICd0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgZm9udCBzdHlsZXMgc3RyaW5nIGZyb20gbW9kaWZpZXIgdXNlZCBmb3IgY2FudmFzIGNhbGN1bGF0aW9uXG4gICAgICovXG4gICAgc3RhdGljIGdldEZvbnRTdHlsZXNTdHJpbmcodGV4dFN0eWxlOiBUZXh0U3R5bGVNb2RlbCk6IHN0cmluZyB7XG4gICAgICAgIGxldCBmb250U3RyaW5nID0gJyc7XG4gICAgICAgIGlmICghdGV4dFN0eWxlKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9udFN0cmluZztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0U3R5bGUuaXRhbGljKSB7XG4gICAgICAgICAgICBmb250U3RyaW5nICs9ICdpdGFsaWMgJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0U3R5bGUuYm9sZCkge1xuICAgICAgICAgICAgZm9udFN0cmluZyArPSAnYm9sZCAnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS5mb250U2l6ZSkge1xuICAgICAgICAgICAgZm9udFN0cmluZyArPSBgJHt0ZXh0U3R5bGUuZm9udFNpemV9cHQgYDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0U3R5bGUuZm9udEZhbWlseSkge1xuICAgICAgICAgICAgZm9udFN0cmluZyArPSB0ZXh0U3R5bGUuZm9udEZhbWlseTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb250U3RyaW5nO1xuICAgIH1cblxuICAgIHN0YXRpYyBhcmVTYW1lVGV4dFN0eWxlcyhmaXJzdDogVGV4dFN0eWxlTW9kZWwsIHNlY29uZDogVGV4dFN0eWxlTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGZpcnN0LmhpZ2hsaWdodENvbG9yID09PSBzZWNvbmQuaGlnaGxpZ2h0Q29sb3IgJiZcbiAgICAgICAgICAgIGZpcnN0LmJvbGQgPT09IHNlY29uZC5ib2xkICYmXG4gICAgICAgICAgICBmaXJzdC5mb250Q29sb3IgPT09IHNlY29uZC5mb250Q29sb3IgJiZcbiAgICAgICAgICAgIGZpcnN0LmZvbnRGYW1pbHkgPT09IHNlY29uZC5mb250RmFtaWx5ICYmXG4gICAgICAgICAgICBmaXJzdC5mb250U2l6ZSA9PT0gc2Vjb25kLmZvbnRTaXplICYmXG4gICAgICAgICAgICBmaXJzdC5pc1NtYWxsQ2FwcyA9PT0gc2Vjb25kLmlzU21hbGxDYXBzICYmXG4gICAgICAgICAgICBmaXJzdC5pdGFsaWMgPT09IHNlY29uZC5pdGFsaWMgJiZcbiAgICAgICAgICAgIGZpcnN0LnN0cmlrZXRocm91Z2ggPT09IHNlY29uZC5zdHJpa2V0aHJvdWdoICYmXG4gICAgICAgICAgICBmaXJzdC51bmRlcmxpbmUgPT09IHNlY29uZC51bmRlcmxpbmUgJiZcbiAgICAgICAgICAgIGZpcnN0LnZlcnRpY2FsQWxpZ25tZW50ID09PSBzZWNvbmQudmVydGljYWxBbGlnbm1lbnRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgY29tYmluZVRleHRTdHlsZXMoY3VycmVudDogVGV4dFN0eWxlTW9kZWwgfCBudWxsLCBwYXJlbnQ6IFRleHRTdHlsZU1vZGVsKTogVGV4dFN0eWxlTW9kZWwge1xuICAgICAgICByZXR1cm4gbmV3IFRleHRTdHlsZU1vZGVsKHtcbiAgICAgICAgICAgIGhpZ2hsaWdodENvbG9yOiBjdXJyZW50Py5oaWdobGlnaHRDb2xvciA/PyBwYXJlbnQuaGlnaGxpZ2h0Q29sb3IsXG4gICAgICAgICAgICBib2xkOiBjdXJyZW50Py5ib2xkID8/IHBhcmVudC5ib2xkLFxuICAgICAgICAgICAgZm9udENvbG9yOiBjdXJyZW50Py5mb250Q29sb3IgPz8gcGFyZW50LmZvbnRDb2xvcixcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IGN1cnJlbnQ/LmZvbnRGYW1pbHkgPz8gcGFyZW50LmZvbnRGYW1pbHksXG4gICAgICAgICAgICBmb250U2l6ZTogY3VycmVudD8uZm9udFNpemUgPz8gcGFyZW50LmZvbnRTaXplLFxuICAgICAgICAgICAgaGVhZGluZ1N0eWxlSWQ6IGN1cnJlbnQ/LmhlYWRpbmdTdHlsZUlkID8/IHBhcmVudC5oZWFkaW5nU3R5bGVJZCxcbiAgICAgICAgICAgIGlzU21hbGxDYXBzOiBjdXJyZW50Py5pc1NtYWxsQ2FwcyA/PyBwYXJlbnQuaXNTbWFsbENhcHMsXG4gICAgICAgICAgICBpdGFsaWM6IGN1cnJlbnQ/Lml0YWxpYyA/PyBwYXJlbnQuaXRhbGljLFxuICAgICAgICAgICAgc3RyaWtldGhyb3VnaDogY3VycmVudD8uc3RyaWtldGhyb3VnaCA/PyBwYXJlbnQuc3RyaWtldGhyb3VnaCxcbiAgICAgICAgICAgIHVuZGVybGluZTogY3VycmVudD8udW5kZXJsaW5lID8/IHBhcmVudC51bmRlcmxpbmUsXG4gICAgICAgICAgICB2ZXJ0aWNhbEFsaWdubWVudDogY3VycmVudD8udmVydGljYWxBbGlnbm1lbnQgPz8gcGFyZW50LnZlcnRpY2FsQWxpZ25tZW50XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,62 @@
1
+ import { DisplayValue } from '../constants/display-values.const';
2
+ import { IndentModel } from '../display-data/indent.model';
3
+ import { LineInfoModel } from '../display-data/line-info.model';
4
+ export class DisplayTokenHelper {
5
+ static getDisplayValue(charCode) {
6
+ if (charCode === 32) {
7
+ return DisplayValue.space;
8
+ }
9
+ if ((charCode > 39 && charCode < 48) || (charCode > 57 && charCode < 64)) {
10
+ return DisplayValue.punctuation;
11
+ }
12
+ return DisplayValue.char;
13
+ }
14
+ static getLineInfoFromToken(prevToken, firstWrapToken, wrapTokens, isAfterPageBreak) {
15
+ const info = new LineInfoModel({
16
+ width: 0,
17
+ height: 0,
18
+ align: prevToken.align,
19
+ indent: new IndentModel(prevToken.indentFirstLine, prevToken.indentHanging, prevToken.indentLeft, prevToken.indentRight),
20
+ offsetBefore: prevToken.indentBefore,
21
+ offsetAfter: prevToken.indentAfter,
22
+ lineSpacing: prevToken.lineSpacing,
23
+ isAfterPageBreak,
24
+ isEndedByPageBreak: prevToken.isPageBreak
25
+ });
26
+ if (firstWrapToken) {
27
+ info.align = firstWrapToken.align;
28
+ info.indent.firstLine = firstWrapToken.indentFirstLine;
29
+ info.indent.hanging = firstWrapToken.indentHanging;
30
+ info.indent.left = firstWrapToken.indentLeft;
31
+ info.indent.right = firstWrapToken.indentRight;
32
+ info.offsetBefore = firstWrapToken.indentBefore;
33
+ info.offsetAfter = firstWrapToken.indentAfter;
34
+ info.lineSpacing = firstWrapToken.lineSpacing;
35
+ info.hasTable = firstWrapToken.isTable;
36
+ }
37
+ let fontSize = 0;
38
+ let ascent = 0;
39
+ let descent = 0;
40
+ const tokens = isAfterPageBreak && !wrapTokens.length ? [prevToken] : wrapTokens;
41
+ for (const wrapToken of tokens) {
42
+ if (info.height < wrapToken.height) {
43
+ info.height = wrapToken.height;
44
+ }
45
+ if (fontSize < wrapToken.font && wrapToken.displayValue !== DisplayValue.customContent) {
46
+ fontSize = wrapToken.font;
47
+ ascent = wrapToken.ascent;
48
+ descent = wrapToken.descent;
49
+ }
50
+ info.width += wrapToken.width;
51
+ }
52
+ info.height = info.height || 18;
53
+ if (info.lineSpacing > 1) {
54
+ info.offsetAfter = (ascent + descent) * (info.lineSpacing - 1);
55
+ }
56
+ else if (ascent + descent === info.height) {
57
+ info.height = info.height * info.lineSpacing;
58
+ }
59
+ return info;
60
+ }
61
+ }
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS10b2tlbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29udGVudC9oZWxwZXJzL2Rpc3BsYXktdG9rZW4uaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhFLE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFnQjtRQUNuQyxJQUFJLFFBQVEsS0FBSyxFQUFFLEVBQUU7WUFDakIsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDO1NBQzdCO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDLEVBQUU7WUFDdEUsT0FBTyxZQUFZLENBQUMsV0FBVyxDQUFDO1NBQ25DO1FBRUQsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsb0JBQW9CLENBQ3ZCLFNBQXVCLEVBQ3ZCLGNBQTRCLEVBQzVCLFVBQTBCLEVBQzFCLGdCQUF5QjtRQUV6QixNQUFNLElBQUksR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUMzQixLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxDQUFDO1lBQ1QsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO1lBQ3RCLE1BQU0sRUFBRSxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDO1lBQ3hILFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWTtZQUNwQyxXQUFXLEVBQUUsU0FBUyxDQUFDLFdBQVc7WUFDbEMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxXQUFXO1lBQ2xDLGdCQUFnQjtZQUNoQixrQkFBa0IsRUFBRSxTQUFTLENBQUMsV0FBVztTQUM1QyxDQUFDLENBQUM7UUFFSCxJQUFJLGNBQWMsRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7WUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDLGVBQWUsQ0FBQztZQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDO1lBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUM7WUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQztZQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUM7WUFDaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDO1lBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQztZQUM5QyxJQUFJLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUM7U0FDMUM7UUFFRCxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDakIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ2pGLEtBQUssTUFBTSxTQUFTLElBQUksTUFBTSxFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFO2dCQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7YUFDbEM7WUFFRCxJQUFJLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxZQUFZLEtBQUssWUFBWSxDQUFDLGFBQWEsRUFBRTtnQkFDcEYsUUFBUSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO2dCQUMxQixPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQzthQUMvQjtZQUVELElBQUksQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRTtZQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNsRTthQUFNLElBQUksTUFBTSxHQUFHLE9BQU8sS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ2hEO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlzcGxheVZhbHVlIH0gZnJvbSAnLi4vY29uc3RhbnRzL2Rpc3BsYXktdmFsdWVzLmNvbnN0JztcbmltcG9ydCB7IERpc3BsYXlUb2tlbiB9IGZyb20gJy4uL2Rpc3BsYXktZGF0YS9kaXNwbGF5LXRva2VuLm1vZGVsJztcbmltcG9ydCB7IEluZGVudE1vZGVsIH0gZnJvbSAnLi4vZGlzcGxheS1kYXRhL2luZGVudC5tb2RlbCc7XG5pbXBvcnQgeyBMaW5lSW5mb01vZGVsIH0gZnJvbSAnLi4vZGlzcGxheS1kYXRhL2xpbmUtaW5mby5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBEaXNwbGF5VG9rZW5IZWxwZXIge1xuICAgIHN0YXRpYyBnZXREaXNwbGF5VmFsdWUoY2hhckNvZGU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmIChjaGFyQ29kZSA9PT0gMzIpIHtcbiAgICAgICAgICAgIHJldHVybiBEaXNwbGF5VmFsdWUuc3BhY2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKGNoYXJDb2RlID4gMzkgJiYgY2hhckNvZGUgPCA0OCkgfHwgKGNoYXJDb2RlID4gNTcgJiYgY2hhckNvZGUgPCA2NCkpIHtcbiAgICAgICAgICAgIHJldHVybiBEaXNwbGF5VmFsdWUucHVuY3R1YXRpb247XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gRGlzcGxheVZhbHVlLmNoYXI7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldExpbmVJbmZvRnJvbVRva2VuKFxuICAgICAgICBwcmV2VG9rZW46IERpc3BsYXlUb2tlbixcbiAgICAgICAgZmlyc3RXcmFwVG9rZW46IERpc3BsYXlUb2tlbixcbiAgICAgICAgd3JhcFRva2VuczogRGlzcGxheVRva2VuW10sXG4gICAgICAgIGlzQWZ0ZXJQYWdlQnJlYWs6IGJvb2xlYW5cbiAgICApOiBMaW5lSW5mb01vZGVsIHtcbiAgICAgICAgY29uc3QgaW5mbyA9IG5ldyBMaW5lSW5mb01vZGVsKHtcbiAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICAgICAgYWxpZ246IHByZXZUb2tlbi5hbGlnbixcbiAgICAgICAgICAgIGluZGVudDogbmV3IEluZGVudE1vZGVsKHByZXZUb2tlbi5pbmRlbnRGaXJzdExpbmUsIHByZXZUb2tlbi5pbmRlbnRIYW5naW5nLCBwcmV2VG9rZW4uaW5kZW50TGVmdCwgcHJldlRva2VuLmluZGVudFJpZ2h0KSxcbiAgICAgICAgICAgIG9mZnNldEJlZm9yZTogcHJldlRva2VuLmluZGVudEJlZm9yZSxcbiAgICAgICAgICAgIG9mZnNldEFmdGVyOiBwcmV2VG9rZW4uaW5kZW50QWZ0ZXIsXG4gICAgICAgICAgICBsaW5lU3BhY2luZzogcHJldlRva2VuLmxpbmVTcGFjaW5nLFxuICAgICAgICAgICAgaXNBZnRlclBhZ2VCcmVhayxcbiAgICAgICAgICAgIGlzRW5kZWRCeVBhZ2VCcmVhazogcHJldlRva2VuLmlzUGFnZUJyZWFrXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChmaXJzdFdyYXBUb2tlbikge1xuICAgICAgICAgICAgaW5mby5hbGlnbiA9IGZpcnN0V3JhcFRva2VuLmFsaWduO1xuICAgICAgICAgICAgaW5mby5pbmRlbnQuZmlyc3RMaW5lID0gZmlyc3RXcmFwVG9rZW4uaW5kZW50Rmlyc3RMaW5lO1xuICAgICAgICAgICAgaW5mby5pbmRlbnQuaGFuZ2luZyA9IGZpcnN0V3JhcFRva2VuLmluZGVudEhhbmdpbmc7XG4gICAgICAgICAgICBpbmZvLmluZGVudC5sZWZ0ID0gZmlyc3RXcmFwVG9rZW4uaW5kZW50TGVmdDtcbiAgICAgICAgICAgIGluZm8uaW5kZW50LnJpZ2h0ID0gZmlyc3RXcmFwVG9rZW4uaW5kZW50UmlnaHQ7XG4gICAgICAgICAgICBpbmZvLm9mZnNldEJlZm9yZSA9IGZpcnN0V3JhcFRva2VuLmluZGVudEJlZm9yZTtcbiAgICAgICAgICAgIGluZm8ub2Zmc2V0QWZ0ZXIgPSBmaXJzdFdyYXBUb2tlbi5pbmRlbnRBZnRlcjtcbiAgICAgICAgICAgIGluZm8ubGluZVNwYWNpbmcgPSBmaXJzdFdyYXBUb2tlbi5saW5lU3BhY2luZztcbiAgICAgICAgICAgIGluZm8uaGFzVGFibGUgPSBmaXJzdFdyYXBUb2tlbi5pc1RhYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZvbnRTaXplID0gMDtcbiAgICAgICAgbGV0IGFzY2VudCA9IDA7XG4gICAgICAgIGxldCBkZXNjZW50ID0gMDtcbiAgICAgICAgY29uc3QgdG9rZW5zID0gaXNBZnRlclBhZ2VCcmVhayAmJiAhd3JhcFRva2Vucy5sZW5ndGggPyBbcHJldlRva2VuXSA6IHdyYXBUb2tlbnM7XG4gICAgICAgIGZvciAoY29uc3Qgd3JhcFRva2VuIG9mIHRva2Vucykge1xuICAgICAgICAgICAgaWYgKGluZm8uaGVpZ2h0IDwgd3JhcFRva2VuLmhlaWdodCkge1xuICAgICAgICAgICAgICAgIGluZm8uaGVpZ2h0ID0gd3JhcFRva2VuLmhlaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZvbnRTaXplIDwgd3JhcFRva2VuLmZvbnQgJiYgd3JhcFRva2VuLmRpc3BsYXlWYWx1ZSAhPT0gRGlzcGxheVZhbHVlLmN1c3RvbUNvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICBmb250U2l6ZSA9IHdyYXBUb2tlbi5mb250O1xuICAgICAgICAgICAgICAgIGFzY2VudCA9IHdyYXBUb2tlbi5hc2NlbnQ7XG4gICAgICAgICAgICAgICAgZGVzY2VudCA9IHdyYXBUb2tlbi5kZXNjZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbmZvLndpZHRoICs9IHdyYXBUb2tlbi53aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIGluZm8uaGVpZ2h0ID0gaW5mby5oZWlnaHQgfHwgMTg7XG4gICAgICAgIGlmIChpbmZvLmxpbmVTcGFjaW5nID4gMSkge1xuICAgICAgICAgICAgaW5mby5vZmZzZXRBZnRlciA9IChhc2NlbnQgKyBkZXNjZW50KSAqIChpbmZvLmxpbmVTcGFjaW5nIC0gMSk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXNjZW50ICsgZGVzY2VudCA9PT0gaW5mby5oZWlnaHQpIHtcbiAgICAgICAgICAgIGluZm8uaGVpZ2h0ID0gaW5mby5oZWlnaHQgKiBpbmZvLmxpbmVTcGFjaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluZm87XG4gICAgfVxufVxuIl19
@@ -46,19 +46,20 @@ export class CursorLayer {
46
46
  return PositionHelper.documentToPixel(this.session, position);
47
47
  }
48
48
  addTextStylesToCursor() {
49
- DomHelper.setStyle(this.cursor.style, 'border-color', this.session.stylesMap.fontColor);
50
- DomHelper.setStyle(this.cursor.style, 'fontSize', `${this.session.stylesMap.fontSize}px`);
51
- if (this.session.stylesMap.italic) {
49
+ const textStyle = this.session.editorService.styles;
50
+ DomHelper.setStyle(this.cursor.style, 'border-color', textStyle.fontColor);
51
+ DomHelper.setStyle(this.cursor.style, 'fontSize', `${textStyle.fontSize}px`);
52
+ if (textStyle.italic) {
52
53
  DomHelper.setStyle(this.cursor.style, '-webkit-transform', 'skewX(-13deg)');
53
54
  }
54
55
  else {
55
56
  DomHelper.setStyle(this.cursor.style, '-webkit-transform', 'skewX(0)');
56
57
  }
57
58
  const metricSize = FontMetrics.measureCharSize('EMPTY_LINE', ContentStyleHelper.getFontStylesString(new TextStyleModel({
58
- italic: this.session.stylesMap.italic,
59
- bold: this.session.stylesMap.bold,
60
- fontSize: this.session.stylesMap.fontSize,
61
- fontFamily: this.session.stylesMap.fontFamily
59
+ italic: textStyle.italic,
60
+ bold: textStyle.bold,
61
+ fontSize: textStyle.fontSize,
62
+ fontFamily: textStyle.fontFamily
62
63
  })));
63
64
  const fontMetricHeight = metricSize.ascent + metricSize.descent;
64
65
  const maxHeight = this.cursorPosition.sizeMax.ascent + this.cursorPosition.sizeMax.descent;
@@ -98,4 +99,4 @@ export class CursorLayer {
98
99
  DomHelper.addCssClass(this.layer, 'noder-animate-blinking');
99
100
  }
100
101
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Vyc29yLmxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2Rpc3BsYXkvbGF5ZXJzL2N1cnNvci5sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUdoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFNUUsTUFBTSxPQUFPLFdBQVc7SUFXcEIsWUFBWSxhQUEwQixFQUFVLE9BQW9CO1FBQXBCLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFKbkQsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFLbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGdDQUFnQyxDQUFDO1FBQ3hELGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUM7UUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcs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QUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDO1FBQ3BHLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDakIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDekQsT0FBTztTQUNWO1FBRUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7UUFDcEQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDaEYsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxXQUFXLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTyxpQkFBaUI7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUM7UUFDaEUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudFN0eWxlSGVscGVyIH0gZnJvbSAnLi4vLi4vY29udGVudC9oZWxwZXJzL2NvbnRlbnQtc3R5bGUuaGVscGVyJztcbmltcG9ydCB7IEN1cnNvclBhcmFncmFwaCB9IGZyb20gJy4uLy4uL3Bvc2l0aW9uaW5nL2N1cnNvci1wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgQ3Vyc29yUG9zaXRpb24gfSBmcm9tICcuLi8uLi9wb3NpdGlvbmluZy9jdXJzb3ItcG9zaXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IERvbUhlbHBlciB9IGZyb20gJy4uLy4uL2V4ZWN1dGlvbi9oZWxwZXJzL2RvbS5oZWxwZXInO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuLi8uLi9leGVjdXRpb24vZWRpdC5zZXNzaW9uJztcbmltcG9ydCB7IEZvbnRNZXRyaWNzIH0gZnJvbSAnLi4vLi4vZ2FkZ2V0cy9mb250LW1ldHJpY3MvZm9udC1tZXRyaWNzLmhlbHBlcic7XG5pbXBvcnQgeyBJTGF5ZXJDb25maWcgfSBmcm9tICcuL2xheWVyLmNvbmZpZyc7XG5pbXBvcnQgeyBQb3NpdGlvbkhlbHBlciB9IGZyb20gJy4uLy4uL3Bvc2l0aW9uaW5nL3Bvc2l0aW9uLmhlbHBlcic7XG5pbXBvcnQgeyBUZXh0U3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGV4dC1zdHlsZS5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBDdXJzb3JMYXllciB7XG4gICAgY3Vyc29yUG9zaXRpb246IEN1cnNvclBvc2l0aW9uO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXJzb3I6IEhUTUxFbGVtZW50O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBsYXllcjogSFRNTEVsZW1lbnQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGJsaW5rSW50ZXJ2YWwgPSAxMDAwO1xuXG4gICAgaXNWaXNpYmxlOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocGFyZW50RWxlbWVudDogSFRNTEVsZW1lbnQsIHByaXZhdGUgc2Vzc2lvbjogRWRpdFNlc3Npb24pIHtcbiAgICAgICAgdGhpcy5sYXllciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLmxheWVyLmNsYXNzTmFtZSA9ICdub2Rlci1sYXllciBub2Rlci1jdXJzb3ItbGF5ZXInO1xuICAgICAgICBwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMubGF5ZXIpO1xuXG4gICAgICAgIHRoaXMuY3Vyc29yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMuY3Vyc29yLmNsYXNzTmFtZSA9ICdub2Rlci1jdXJzb3InO1xuICAgICAgICB0aGlzLmxheWVyLmFwcGVuZENoaWxkKHRoaXMuY3Vyc29yKTtcblxuICAgICAgICB0aGlzLmhpZGVDdXJzb3IoKTtcbiAgICB9XG5cbiAgICBoaWRlQ3Vyc29yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICBEb21IZWxwZXIuYWRkQ3NzQ2xhc3ModGhpcy5sYXllciwgJ25vZGVyLWhpZGRlbi1jdXJzb3JzJyk7XG4gICAgICAgIHRoaXMucmVtb3ZlQW5pbWF0aW9uQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBzaG93Q3Vyc29yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIERvbUhlbHBlci5yZW1vdmVDc3NDbGFzcyh0aGlzLmxheWVyLCAnbm9kZXItaGlkZGVuLWN1cnNvcnMnKTtcbiAgICAgICAgdGhpcy5hZGRBbmltYXRpb25DbGFzcygpO1xuICAgIH1cblxuICAgIGRldGVjdFZpc2liaWxpdHkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvblJhbmdlID0gdGhpcy5zZXNzaW9uLnNlbGVjdGlvbi5yYW5nZTtcbiAgICAgICAgaWYgKHNlbGVjdGlvblJhbmdlLmlzRW1wdHkpIHtcbiAgICAgICAgICAgIERvbUhlbHBlci5yZW1vdmVDc3NDbGFzcyh0aGlzLmxheWVyLCAnc2VsZWN0aW5nJyk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIERvbUhlbHBlci5hZGRDc3NDbGFzcyh0aGlzLmxheWVyLCAnc2VsZWN0aW5nJyk7XG4gICAgfVxuXG4gICAgdXBkYXRlKGNvbmZpZzogSUxheWVyQ29uZmlnKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmdldFBpeGVsUG9zaXRpb24oKTtcbiAgICAgICAgdGhpcy5kcmF3Q3Vyc29yKGNvbmZpZy5tYXhIZWlnaHQpO1xuICAgICAgICB0aGlzLmRldGVjdFZpc2liaWxpdHkoKTtcbiAgICAgICAgdGhpcy5yZXN0YXJ0QW5pbWF0aW9uKCk7XG4gICAgfVxuXG4gICAgZ2V0UGl4ZWxQb3NpdGlvbihwb3NpdGlvbj86IEN1cnNvclBhcmFncmFwaCk6IEN1cnNvclBvc2l0aW9uIHtcbiAgICAgICAgaWYgKCFwb3NpdGlvbikge1xuICAgICAgICAgICAgcG9zaXRpb24gPSB0aGlzLnNlc3Npb24uc2VsZWN0aW9uLmN1cnNvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBQb3NpdGlvbkhlbHBlci5kb2N1bWVudFRvUGl4ZWwodGhpcy5zZXNzaW9uLCBwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgYWRkVGV4dFN0eWxlc1RvQ3Vyc29yKCk6IHZvaWQge1xuICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy5jdXJzb3Iuc3R5bGUsICdib3JkZXItY29sb3InLCB0aGlzLnNlc3Npb24uc3R5bGVzTWFwLmZvbnRDb2xvcik7XG4gICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJ2ZvbnRTaXplJywgYCR7dGhpcy5zZXNzaW9uLnN0eWxlc01hcC5mb250U2l6ZX1weGApO1xuXG4gICAgICAgIGlmICh0aGlzLnNlc3Npb24uc3R5bGVzTWFwLml0YWxpYykge1xuICAgICAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMuY3Vyc29yLnN0eWxlLCAnLXdlYmtpdC10cmFuc2Zvcm0nLCAnc2tld1goLTEzZGVnKScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMuY3Vyc29yLnN0eWxlLCAnLXdlYmtpdC10cmFuc2Zvcm0nLCAnc2tld1goMCknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1ldHJpY1NpemUgPSBGb250TWV0cmljcy5tZWFzdXJlQ2hhclNpemUoXG4gICAgICAgICAgICAnRU1QVFlfTElORScsXG4gICAgICAgICAgICBDb250ZW50U3R5bGVIZWxwZXIuZ2V0Rm9udFN0eWxlc1N0cmluZyhcbiAgICAgICAgICAgICAgICBuZXcgVGV4dFN0eWxlTW9kZWwoe1xuICAgICAgICAgICAgICAgICAgICBpdGFsaWM6IHRoaXMuc2Vzc2lvbi5zdHlsZXNNYXAuaXRhbGljLFxuICAgICAgICAgICAgICAgICAgICBib2xkOiB0aGlzLnNlc3Npb24uc3R5bGVzTWFwLmJvbGQsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiB0aGlzLnNlc3Npb24uc3R5bGVzTWFwLmZvbnRTaXplLFxuICAgICAgICAgICAgICAgICAgICBmb250RmFtaWx5OiB0aGlzLnNlc3Npb24uc3R5bGVzTWFwLmZvbnRGYW1pbHlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBmb250TWV0cmljSGVpZ2h0ID0gbWV0cmljU2l6ZS5hc2NlbnQgKyBtZXRyaWNTaXplLmRlc2NlbnQ7XG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMuY3Vyc29yUG9zaXRpb24uc2l6ZU1heC5hc2NlbnQgKyB0aGlzLmN1cnNvclBvc2l0aW9uLnNpemVNYXguZGVzY2VudDtcbiAgICAgICAgY29uc3QgZm9udFNob3VsZGVycyA9IGZvbnRNZXRyaWNIZWlnaHQgLSBtZXRyaWNTaXplLmZvbnQ7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IG1ldHJpY1NpemUuZGVzY2VudCAtIGZvbnRTaG91bGRlcnM7XG5cbiAgICAgICAgbGV0IHRvcCA9IHRoaXMuY3Vyc29yUG9zaXRpb24ucGFnZVkgKyB0aGlzLmN1cnNvclBvc2l0aW9uLnNpemVNYXguYXNjZW50IC0gbWV0cmljU2l6ZS5mb250ICsgb2Zmc2V0O1xuICAgICAgICBpZiAoZm9udE1ldHJpY0hlaWdodCAhPT0gbWF4SGVpZ2h0ICYmIG1heEhlaWdodCA+PSB0aGlzLmN1cnNvclBvc2l0aW9uLmxpbmVIZWlnaHQpIHtcbiAgICAgICAgICAgIHRvcCAtPSBtYXhIZWlnaHQgLSB0aGlzLmN1cnNvclBvc2l0aW9uLmxpbmVIZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy5jdXJzb3Iuc3R5bGUsICd0b3AnLCBgJHt0b3AgPCAwID8gMCA6IHRvcH1weGApO1xuICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy5jdXJzb3Iuc3R5bGUsICdoZWlnaHQnLCBgJHtmb250TWV0cmljSGVpZ2h0fXB4YCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXN0YXJ0QW5pbWF0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUFuaW1hdGlvbkNsYXNzKCk7XG4gICAgICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWRkQW5pbWF0aW9uQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRyYXdDdXJzb3IobWF4TGF5ZXJIZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBpc0N1cnNvckluVmlldyA9IHRoaXMuY3Vyc29yUG9zaXRpb24ucGFnZVkgPj0gMCAmJiB0aGlzLmN1cnNvclBvc2l0aW9uLnBhZ2VZIDwgbWF4TGF5ZXJIZWlnaHQ7XG4gICAgICAgIGlmICghaXNDdXJzb3JJblZpZXcpIHtcbiAgICAgICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMuY3Vyc29yLnN0eWxlLCAnZGlzcGxheScsICdibG9jaycpO1xuICAgICAgICBjb25zdCBjdXJyZW50U2l6ZSA9IHRoaXMuY3Vyc29yUG9zaXRpb24uc2l6ZUN1cnJlbnQ7XG4gICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJ2xlZnQnLCBgJHt0aGlzLmN1cnNvclBvc2l0aW9uLnBhZ2VYfXB4YCk7XG4gICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJ3dpZHRoJywgYCR7Y3VycmVudFNpemUud2lkdGh9cHhgKTtcbiAgICAgICAgdGhpcy5hZGRUZXh0U3R5bGVzVG9DdXJzb3IoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUFuaW1hdGlvbkNsYXNzKCk6IHZvaWQge1xuICAgICAgICBEb21IZWxwZXIucmVtb3ZlQ3NzQ2xhc3ModGhpcy5sYXllciwgJ25vZGVyLWFuaW1hdGUtYmxpbmtpbmcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZEFuaW1hdGlvbkNsYXNzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnNvci5zdHlsZS5hbmltYXRpb25EdXJhdGlvbiA9IGAke3RoaXMuYmxpbmtJbnRlcnZhbH1tc2A7XG4gICAgICAgIERvbUhlbHBlci5hZGRDc3NDbGFzcyh0aGlzLmxheWVyLCAnbm9kZXItYW5pbWF0ZS1ibGlua2luZycpO1xuICAgIH1cbn1cbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Vyc29yLmxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2Rpc3BsYXkvbGF5ZXJzL2N1cnNvci5sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUdoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFNUUsTUFBTSxPQUFPLFdBQVc7SUFXcEIsWUFBWSxhQUEwQixFQUFVLE9BQW9CO1FBQXBCLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFKbkQsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFLbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGdDQUFnQyxDQUFDO1FBQ3hELGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUM7UUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcs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USxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6RCxPQUFPO1NBQ1Y7UUFFRCxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUNwRCxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoRixTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQztRQUNoRSxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZW50U3R5bGVIZWxwZXIgfSBmcm9tICcuLi8uLi9jb250ZW50L2hlbHBlcnMvY29udGVudC1zdHlsZS5oZWxwZXInO1xuaW1wb3J0IHsgQ3Vyc29yUGFyYWdyYXBoIH0gZnJvbSAnLi4vLi4vcG9zaXRpb25pbmcvY3Vyc29yLXBhcmFncmFwaCc7XG5pbXBvcnQgeyBDdXJzb3JQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3Bvc2l0aW9uaW5nL2N1cnNvci1wb3NpdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRG9tSGVscGVyIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL2hlbHBlcnMvZG9tLmhlbHBlcic7XG5pbXBvcnQgeyBFZGl0U2Vzc2lvbiB9IGZyb20gJy4uLy4uL2V4ZWN1dGlvbi9lZGl0LnNlc3Npb24nO1xuaW1wb3J0IHsgRm9udE1ldHJpY3MgfSBmcm9tICcuLi8uLi9nYWRnZXRzL2ZvbnQtbWV0cmljcy9mb250LW1ldHJpY3MuaGVscGVyJztcbmltcG9ydCB7IElMYXllckNvbmZpZyB9IGZyb20gJy4vbGF5ZXIuY29uZmlnJztcbmltcG9ydCB7IFBvc2l0aW9uSGVscGVyIH0gZnJvbSAnLi4vLi4vcG9zaXRpb25pbmcvcG9zaXRpb24uaGVscGVyJztcbmltcG9ydCB7IFRleHRTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90ZXh0LXN0eWxlLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEN1cnNvckxheWVyIHtcbiAgICBjdXJzb3JQb3NpdGlvbjogQ3Vyc29yUG9zaXRpb247XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1cnNvcjogSFRNTEVsZW1lbnQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGxheWVyOiBIVE1MRWxlbWVudDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmxpbmtJbnRlcnZhbCA9IDEwMDA7XG5cbiAgICBpc1Zpc2libGU6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihwYXJlbnRFbGVtZW50OiBIVE1MRWxlbWVudCwgcHJpdmF0ZSBzZXNzaW9uOiBFZGl0U2Vzc2lvbikge1xuICAgICAgICB0aGlzLmxheWVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMubGF5ZXIuY2xhc3NOYW1lID0gJ25vZGVyLWxheWVyIG5vZGVyLWN1cnNvci1sYXllcic7XG4gICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5sYXllcik7XG5cbiAgICAgICAgdGhpcy5jdXJzb3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5jdXJzb3IuY2xhc3NOYW1lID0gJ25vZGVyLWN1cnNvcic7XG4gICAgICAgIHRoaXMubGF5ZXIuYXBwZW5kQ2hpbGQodGhpcy5jdXJzb3IpO1xuXG4gICAgICAgIHRoaXMuaGlkZUN1cnNvcigpO1xuICAgIH1cblxuICAgIGhpZGVDdXJzb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIERvbUhlbHBlci5hZGRDc3NDbGFzcyh0aGlzLmxheWVyLCAnbm9kZXItaGlkZGVuLWN1cnNvcnMnKTtcbiAgICAgICAgdGhpcy5yZW1vdmVBbmltYXRpb25DbGFzcygpO1xuICAgIH1cblxuICAgIHNob3dDdXJzb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgRG9tSGVscGVyLnJlbW92ZUNzc0NsYXNzKHRoaXMubGF5ZXIsICdub2Rlci1oaWRkZW4tY3Vyc29ycycpO1xuICAgICAgICB0aGlzLmFkZEFuaW1hdGlvbkNsYXNzKCk7XG4gICAgfVxuXG4gICAgZGV0ZWN0VmlzaWJpbGl0eSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uUmFuZ2UgPSB0aGlzLnNlc3Npb24uc2VsZWN0aW9uLnJhbmdlO1xuICAgICAgICBpZiAoc2VsZWN0aW9uUmFuZ2UuaXNFbXB0eSkge1xuICAgICAgICAgICAgRG9tSGVscGVyLnJlbW92ZUNzc0NsYXNzKHRoaXMubGF5ZXIsICdzZWxlY3RpbmcnKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgRG9tSGVscGVyLmFkZENzc0NsYXNzKHRoaXMubGF5ZXIsICdzZWxlY3RpbmcnKTtcbiAgICB9XG5cbiAgICB1cGRhdGUoY29uZmlnOiBJTGF5ZXJDb25maWcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMuZ2V0UGl4ZWxQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLmRyYXdDdXJzb3IoY29uZmlnLm1heEhlaWdodCk7XG4gICAgICAgIHRoaXMuZGV0ZWN0VmlzaWJpbGl0eSgpO1xuICAgICAgICB0aGlzLnJlc3RhcnRBbmltYXRpb24oKTtcbiAgICB9XG5cbiAgICBnZXRQaXhlbFBvc2l0aW9uKHBvc2l0aW9uPzogQ3Vyc29yUGFyYWdyYXBoKTogQ3Vyc29yUG9zaXRpb24ge1xuICAgICAgICBpZiAoIXBvc2l0aW9uKSB7XG4gICAgICAgICAgICBwb3NpdGlvbiA9IHRoaXMuc2Vzc2lvbi5zZWxlY3Rpb24uY3Vyc29yO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFBvc2l0aW9uSGVscGVyLmRvY3VtZW50VG9QaXhlbCh0aGlzLnNlc3Npb24sIHBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBhZGRUZXh0U3R5bGVzVG9DdXJzb3IoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRleHRTdHlsZSA9IHRoaXMuc2Vzc2lvbi5lZGl0b3JTZXJ2aWNlLnN0eWxlcztcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMuY3Vyc29yLnN0eWxlLCAnYm9yZGVyLWNvbG9yJywgdGV4dFN0eWxlLmZvbnRDb2xvcik7XG4gICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJ2ZvbnRTaXplJywgYCR7dGV4dFN0eWxlLmZvbnRTaXplfXB4YCk7XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS5pdGFsaWMpIHtcbiAgICAgICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJy13ZWJraXQtdHJhbnNmb3JtJywgJ3NrZXdYKC0xM2RlZyknKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJy13ZWJraXQtdHJhbnNmb3JtJywgJ3NrZXdYKDApJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXRyaWNTaXplID0gRm9udE1ldHJpY3MubWVhc3VyZUNoYXJTaXplKFxuICAgICAgICAgICAgJ0VNUFRZX0xJTkUnLFxuICAgICAgICAgICAgQ29udGVudFN0eWxlSGVscGVyLmdldEZvbnRTdHlsZXNTdHJpbmcoXG4gICAgICAgICAgICAgICAgbmV3IFRleHRTdHlsZU1vZGVsKHtcbiAgICAgICAgICAgICAgICAgICAgaXRhbGljOiB0ZXh0U3R5bGUuaXRhbGljLFxuICAgICAgICAgICAgICAgICAgICBib2xkOiB0ZXh0U3R5bGUuYm9sZCxcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IHRleHRTdHlsZS5mb250U2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseTogdGV4dFN0eWxlLmZvbnRGYW1pbHlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBmb250TWV0cmljSGVpZ2h0ID0gbWV0cmljU2l6ZS5hc2NlbnQgKyBtZXRyaWNTaXplLmRlc2NlbnQ7XG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMuY3Vyc29yUG9zaXRpb24uc2l6ZU1heC5hc2NlbnQgKyB0aGlzLmN1cnNvclBvc2l0aW9uLnNpemVNYXguZGVzY2VudDtcbiAgICAgICAgY29uc3QgZm9udFNob3VsZGVycyA9IGZvbnRNZXRyaWNIZWlnaHQgLSBtZXRyaWNTaXplLmZvbnQ7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IG1ldHJpY1NpemUuZGVzY2VudCAtIGZvbnRTaG91bGRlcnM7XG5cbiAgICAgICAgbGV0IHRvcCA9IHRoaXMuY3Vyc29yUG9zaXRpb24ucGFnZVkgKyB0aGlzLmN1cnNvclBvc2l0aW9uLnNpemVNYXguYXNjZW50IC0gbWV0cmljU2l6ZS5mb250ICsgb2Zmc2V0O1xuICAgICAgICBpZiAoZm9udE1ldHJpY0hlaWdodCAhPT0gbWF4SGVpZ2h0ICYmIG1heEhlaWdodCA+PSB0aGlzLmN1cnNvclBvc2l0aW9uLmxpbmVIZWlnaHQpIHtcbiAgICAgICAgICAgIHRvcCAtPSBtYXhIZWlnaHQgLSB0aGlzLmN1cnNvclBvc2l0aW9uLmxpbmVIZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy5jdXJzb3Iuc3R5bGUsICd0b3AnLCBgJHt0b3AgPCAwID8gMCA6IHRvcH1weGApO1xuICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy5jdXJzb3Iuc3R5bGUsICdoZWlnaHQnLCBgJHtmb250TWV0cmljSGVpZ2h0fXB4YCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXN0YXJ0QW5pbWF0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUFuaW1hdGlvbkNsYXNzKCk7XG4gICAgICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWRkQW5pbWF0aW9uQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRyYXdDdXJzb3IobWF4TGF5ZXJIZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBpc0N1cnNvckluVmlldyA9IHRoaXMuY3Vyc29yUG9zaXRpb24ucGFnZVkgPj0gMCAmJiB0aGlzLmN1cnNvclBvc2l0aW9uLnBhZ2VZIDwgbWF4TGF5ZXJIZWlnaHQ7XG4gICAgICAgIGlmICghaXNDdXJzb3JJblZpZXcpIHtcbiAgICAgICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMuY3Vyc29yLnN0eWxlLCAnZGlzcGxheScsICdibG9jaycpO1xuICAgICAgICBjb25zdCBjdXJyZW50U2l6ZSA9IHRoaXMuY3Vyc29yUG9zaXRpb24uc2l6ZUN1cnJlbnQ7XG4gICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJ2xlZnQnLCBgJHt0aGlzLmN1cnNvclBvc2l0aW9uLnBhZ2VYfXB4YCk7XG4gICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLmN1cnNvci5zdHlsZSwgJ3dpZHRoJywgYCR7Y3VycmVudFNpemUud2lkdGh9cHhgKTtcbiAgICAgICAgdGhpcy5hZGRUZXh0U3R5bGVzVG9DdXJzb3IoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUFuaW1hdGlvbkNsYXNzKCk6IHZvaWQge1xuICAgICAgICBEb21IZWxwZXIucmVtb3ZlQ3NzQ2xhc3ModGhpcy5sYXllciwgJ25vZGVyLWFuaW1hdGUtYmxpbmtpbmcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZEFuaW1hdGlvbkNsYXNzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnNvci5zdHlsZS5hbmltYXRpb25EdXJhdGlvbiA9IGAke3RoaXMuYmxpbmtJbnRlcnZhbH1tc2A7XG4gICAgICAgIERvbUhlbHBlci5hZGRDc3NDbGFzcyh0aGlzLmxheWVyLCAnbm9kZXItYW5pbWF0ZS1ibGlua2luZycpO1xuICAgIH1cbn1cbiJdfQ==
@@ -31,12 +31,12 @@ export class PagesLayer extends EventEmitting {
31
31
  this.rulerRight.className = 'ruler-line';
32
32
  this.element.appendChild(this.rulerLeft);
33
33
  this.element.appendChild(this.rulerRight);
34
- this.mainSession.pagesWrap.addEventListener('pagesCountChanged', this.pagesCountChangedHandler);
34
+ this.mainSession.displayData.addEventListener('pagesCountChanged', this.pagesCountChangedHandler);
35
35
  }
36
36
  update(config) {
37
37
  DomHelper.translate(this.element, 0, -config.scrollTop);
38
38
  const pageSpace = this.getPageSpace();
39
- const pageHeight = this.mainSession.pagesWrap.pageHeight;
39
+ const pageHeight = this.mainSession.displayData.pageHeight;
40
40
  const pages = config.pages || [];
41
41
  let minPage = pages[0] || 1;
42
42
  const maxPage = pages[pages.length - 1] || 1;
@@ -62,11 +62,11 @@ export class PagesLayer extends EventEmitting {
62
62
  DomHelper.addCssClass(this.rulerRight, 'visible');
63
63
  }
64
64
  destroy() {
65
- this.mainSession.pagesWrap.removeEventListener('pagesCountChanged', this.pagesCountChangedHandler);
65
+ this.mainSession.displayData.removeEventListener('pagesCountChanged', this.pagesCountChangedHandler);
66
66
  }
67
67
  // Used to be overridden by the print page layer for printing
68
68
  getPageSpace() {
69
- return this.mainSession.pagesWrap.pagesSpace;
69
+ return this.mainSession.displayData.pagesSpace;
70
70
  }
71
71
  removePages() {
72
72
  while (this.pageBreakElements?.length) {
@@ -94,4 +94,4 @@ export class PagesLayer extends EventEmitting {
94
94
  this.element.style.height = `${(this.pagesCount + 1) * this.pageSize}px`;
95
95
  }
96
96
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXMubGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZGlzcGxheS9sYXllcnMvcGFnZXMubGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHMUQsTUFBTSxPQUFPLFVBQVcsU0FBUSxhQUFhO0lBYXpDLElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2pELENBQUM7SUFHRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFHRCxZQUFtQixhQUEwQixFQUFVLFdBQXdCO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRE8sa0JBQWEsR0FBYixhQUFhLENBQWE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXBCL0Usc0JBQWlCLEdBQWtCLEVBQUUsQ0FBQztRQThHOUIsNkJBQXdCLEdBQUcsQ0FBQyxLQUFpRCxFQUFRLEVBQUU7WUFDM0YsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsVUFBVSxFQUFFO2dCQUM5RSxPQUFPO2FBQ1Y7WUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDcEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7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QUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxTQUFTLElBQUksQ0FBQztZQUU3RSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDL0MsU0FBUyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7Z0JBQ25DLFNBQVMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQztnQkFDakMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNsQztZQUVELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUM7SUFDN0UsQ0FBQztDQVdKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vY29udGVudC9jb25zdGFudHMvZG9jdW1lbnQtaW5mby5jb25zdCc7XG5pbXBvcnQgeyBEb21IZWxwZXIgfSBmcm9tICcuLi8uLi9leGVjdXRpb24vaGVscGVycy9kb20uaGVscGVyJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBFdmVudEVtaXR0aW5nIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudC1lbWl0dGluZyc7XG5pbXBvcnQgeyBJTGF5ZXJDb25maWcgfSBmcm9tICcuL2xheWVyLmNvbmZpZyc7XG5cbmV4cG9ydCBjbGFzcyBQYWdlc0xheWVyIGV4dGVuZHMgRXZlbnRFbWl0dGluZyB7XG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBwYWdlQnJlYWtFbGVtZW50czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgbWluUGFnZU51bWJlcjogbnVtYmVyO1xuXG4gICAgbWF4UGFnZU51bWJlcjogbnVtYmVyO1xuXG4gICAgcnVsZXJMZWZ0OiBIVE1MRWxlbWVudDtcblxuICAgIHJ1bGVyUmlnaHQ6IEhUTUxFbGVtZW50O1xuXG4gICAgZ2V0IHBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlU2l6ZSB8fCBEb2N1bWVudEluZm8uaGVpZ2h0O1xuICAgIH1cbiAgICBwcml2YXRlIF9wYWdlU2l6ZTogbnVtYmVyO1xuXG4gICAgZ2V0IHBhZ2VzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhZ2VzQ291bnQgfHwgMTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcGFnZXNDb3VudDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwcml2YXRlIG1haW5TZXNzaW9uOiBFZGl0U2Vzc2lvbikge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gJ25vZGVyLWxheWVyIGFjZV9wYWdlcy1sYXllcic7XG4gICAgICAgIHBhcmVudEVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmJlZ2luJywgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgdGhpcy5zZXRDb250YWluZXJTaXplKCk7XG5cbiAgICAgICAgdGhpcy5ydWxlckxlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5ydWxlckxlZnQuY2xhc3NOYW1lID0gJ3J1bGVyLWxpbmUnO1xuICAgICAgICB0aGlzLnJ1bGVyUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5ydWxlclJpZ2h0LmNsYXNzTmFtZSA9ICdydWxlci1saW5lJztcbiAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucnVsZXJMZWZ0KTtcbiAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucnVsZXJSaWdodCk7XG4gICAgICAgIHRoaXMubWFpblNlc3Npb24ucGFnZXNXcmFwLmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzQ291bnRDaGFuZ2VkJywgdGhpcy5wYWdlc0NvdW50Q2hhbmdlZEhhbmRsZXIpO1xuICAgIH1cblxuICAgIHVwZGF0ZShjb25maWc6IElMYXllckNvbmZpZyk6IHZvaWQge1xuICAgICAgICBEb21IZWxwZXIudHJhbnNsYXRlKHRoaXMuZWxlbWVudCwgMCwgLWNvbmZpZy5zY3JvbGxUb3ApO1xuXG4gICAgICAgIGNvbnN0IHBhZ2VTcGFjZSA9IHRoaXMuZ2V0UGFnZVNwYWNlKCk7XG4gICAgICAgIGNvbnN0IHBhZ2VIZWlnaHQgPSB0aGlzLm1haW5TZXNzaW9uLnBhZ2VzV3JhcC5wYWdlSGVpZ2h0O1xuICAgICAgICBjb25zdCBwYWdlcyA9IGNvbmZpZy5wYWdlcyB8fCBbXTtcbiAgICAgICAgbGV0IG1pblBhZ2UgPSBwYWdlc1swXSB8fCAxO1xuICAgICAgICBjb25zdCBtYXhQYWdlID0gcGFnZXNbcGFnZXMubGVuZ3RoIC0gMV0gfHwgMTtcbiAgICAgICAgaWYgKG1pblBhZ2UgPiAxICYmIGNvbmZpZy5zY3JvbGxUb3AgPD0gKG1pblBhZ2UgLSAxKSAqIChwYWdlSGVpZ2h0ICsgcGFnZVNwYWNlKSArIHBhZ2VTcGFjZSkge1xuICAgICAgICAgICAgbWluUGFnZS0tO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubWluUGFnZU51bWJlciAhPT0gbWluUGFnZSB8fCB0aGlzLm1heFBhZ2VOdW1iZXIgIT09IG1heFBhZ2UgfHwgbWluUGFnZSA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5taW5QYWdlTnVtYmVyID0gbWluUGFnZTtcbiAgICAgICAgICAgIHRoaXMubWF4UGFnZU51bWJlciA9IG1heFBhZ2U7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZVBhZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmFkZFBhZ2VzKHBhZ2VTcGFjZSwgcGFnZUhlaWdodCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93UnVsbGVyTGluZXMocG9zaXRpb25zOiBudW1iZXJbXSk6IHZvaWQge1xuICAgICAgICBpZiAoIXBvc2l0aW9ucyB8fCBwb3NpdGlvbnMubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgICAgICBEb21IZWxwZXIucmVtb3ZlQ3NzQ2xhc3ModGhpcy5ydWxlckxlZnQsICd2aXNpYmxlJyk7XG4gICAgICAgICAgICBEb21IZWxwZXIucmVtb3ZlQ3NzQ2xhc3ModGhpcy5ydWxlclJpZ2h0LCAndmlzaWJsZScpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy5ydWxlckxlZnQuc3R5bGUsICdsZWZ0JywgYCR7cG9zaXRpb25zWzBdfXB4YCk7XG4gICAgICAgIERvbUhlbHBlci5hZGRDc3NDbGFzcyh0aGlzLnJ1bGVyTGVmdCwgJ3Zpc2libGUnKTtcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMucnVsZXJSaWdodC5zdHlsZSwgJ2xlZnQnLCBgJHtwb3NpdGlvbnNbMV19cHhgKTtcbiAgICAgICAgRG9tSGVscGVyLmFkZENzc0NsYXNzKHRoaXMucnVsZXJSaWdodCwgJ3Zpc2libGUnKTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1haW5TZXNzaW9uLnBhZ2VzV3JhcC5yZW1vdmVFdmVudExpc3RlbmVyKCdwYWdlc0NvdW50Q2hhbmdlZCcsIHRoaXMucGFnZXNDb3VudENoYW5nZWRIYW5kbGVyKTtcbiAgICB9XG5cbiAgICAvLyBVc2VkIHRvIGJlIG92ZXJyaWRkZW4gYnkgdGhlIHByaW50IHBhZ2UgbGF5ZXIgZm9yIHByaW50aW5nXG4gICAgcHJvdGVjdGVkIGdldFBhZ2VTcGFjZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tYWluU2Vzc2lvbi5wYWdlc1dyYXAucGFnZXNTcGFjZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZVBhZ2VzKCk6IHZvaWQge1xuICAgICAgICB3aGlsZSAodGhpcy5wYWdlQnJlYWtFbGVtZW50cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5wYWdlQnJlYWtFbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIGVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYWRkUGFnZXMocGFnZVNwYWNlOiBudW1iZXIsIHBhZ2VIZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBmb3IgKGxldCBwYWdlID0gdGhpcy5taW5QYWdlTnVtYmVyOyBwYWdlIDw9IHRoaXMubWF4UGFnZU51bWJlcjsgcGFnZSsrKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICdwYWdlJztcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gYCR7cGFnZUhlaWdodH1weGA7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLnRvcCA9IGAkeyhwYWdlIC0gMSkgKiAocGFnZUhlaWdodCArIHBhZ2VTcGFjZSkgKyBwYWdlU3BhY2V9cHhgO1xuXG4gICAgICAgICAgICBpZiAocGFnZSA+IDEpIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFnZUxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgICAgICAgIHBhZ2VMYWJlbC5jbGFzc05hbWUgPSAncGFnZS1sYWJlbCc7XG4gICAgICAgICAgICAgICAgcGFnZUxhYmVsLmlubmVyVGV4dCA9IGAke3BhZ2V9LmA7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChwYWdlTGFiZWwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLnBhZ2VCcmVha0VsZW1lbnRzLnB1c2goZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENvbnRhaW5lclNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHsodGhpcy5wYWdlc0NvdW50ICsgMSkgKiB0aGlzLnBhZ2VTaXplfXB4YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlciA9IChldmVudDogeyBwYWdlc0NvdW50OiBudW1iZXI7IHBhZ2VIZWlnaHQ6IG51bWJlciB9KTogdm9pZCA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9wYWdlU2l6ZSA9PT0gZXZlbnQucGFnZUhlaWdodCAmJiB0aGlzLl9wYWdlc0NvdW50ID09PSBldmVudC5wYWdlc0NvdW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9wYWdlU2l6ZSA9IGV2ZW50LnBhZ2VIZWlnaHQgfHwgRG9jdW1lbnRJbmZvLmhlaWdodDtcbiAgICAgICAgdGhpcy5fcGFnZXNDb3VudCA9IGV2ZW50LnBhZ2VzQ291bnQ7XG4gICAgICAgIHRoaXMuc2V0Q29udGFpbmVyU2l6ZSgpO1xuICAgIH07XG59XG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXMubGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZGlzcGxheS9sYXllcnMvcGFnZXMubGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHMUQsTUFBTSxPQUFPLFVBQVcsU0FBUSxhQUFhO0lBYXpDLElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2pELENBQUM7SUFHRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFHRCxZQUFtQixhQUEwQixFQUFVLFdBQXdCO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRE8sa0JBQWEsR0FBYixhQUFhLENBQWE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXBCL0Usc0JBQWlCLEdBQWtCLEVBQUUsQ0FBQztRQThHOUIsNkJBQXdCLEdBQUcsQ0FBQyxLQUFpRCxFQUFRLEVBQUU7WUFDM0YsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsVUFBVSxFQUFFO2dCQUM5RSxPQUFPO2FBQ1Y7WUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDcEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDO1FBL0ZFLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyw2QkFBNkIsQ0FBQztRQUN2RCxhQUFhLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQW9CO1FBQ3ZCLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFeEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztRQUMzRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLE9BQU8sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxTQUFTLEVBQUU7WUFDekYsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxPQUFPLElBQUksT0FBTyxLQUFLLENBQUMsRUFBRTtZQUNuRixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztZQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztZQUM3QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQW1CO1FBQy9CLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdEMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3BELFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUVyRCxPQUFPO1NBQ1Y7UUFFRCxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2RSxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQsNkRBQTZEO0lBQ25ELFlBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7SUFDbkQsQ0FBQztJQUVPLFdBQVc7UUFDZixPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUU7WUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzdDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNDO0lBQ0wsQ0FBQztJQUVPLFFBQVEsQ0FBQyxTQUFpQixFQUFFLFVBQWtCO1FBQ2xELEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNwRSxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsVUFBVSxJQUFJLENBQUM7WUFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxTQUFTLElBQUksQ0FBQztZQUU3RSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDL0MsU0FBUyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7Z0JBQ25DLFNBQVMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQztnQkFDakMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNsQztZQUVELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUM7SUFDN0UsQ0FBQztDQVdKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vY29udGVudC9jb25zdGFudHMvZG9jdW1lbnQtaW5mby5jb25zdCc7XG5pbXBvcnQgeyBEb21IZWxwZXIgfSBmcm9tICcuLi8uLi9leGVjdXRpb24vaGVscGVycy9kb20uaGVscGVyJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBFdmVudEVtaXR0aW5nIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudC1lbWl0dGluZyc7XG5pbXBvcnQgeyBJTGF5ZXJDb25maWcgfSBmcm9tICcuL2xheWVyLmNvbmZpZyc7XG5cbmV4cG9ydCBjbGFzcyBQYWdlc0xheWVyIGV4dGVuZHMgRXZlbnRFbWl0dGluZyB7XG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBwYWdlQnJlYWtFbGVtZW50czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgbWluUGFnZU51bWJlcjogbnVtYmVyO1xuXG4gICAgbWF4UGFnZU51bWJlcjogbnVtYmVyO1xuXG4gICAgcnVsZXJMZWZ0OiBIVE1MRWxlbWVudDtcblxuICAgIHJ1bGVyUmlnaHQ6IEhUTUxFbGVtZW50O1xuXG4gICAgZ2V0IHBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlU2l6ZSB8fCBEb2N1bWVudEluZm8uaGVpZ2h0O1xuICAgIH1cbiAgICBwcml2YXRlIF9wYWdlU2l6ZTogbnVtYmVyO1xuXG4gICAgZ2V0IHBhZ2VzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhZ2VzQ291bnQgfHwgMTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcGFnZXNDb3VudDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwcml2YXRlIG1haW5TZXNzaW9uOiBFZGl0U2Vzc2lvbikge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gJ25vZGVyLWxheWVyIGFjZV9wYWdlcy1sYXllcic7XG4gICAgICAgIHBhcmVudEVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmJlZ2luJywgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgdGhpcy5zZXRDb250YWluZXJTaXplKCk7XG5cbiAgICAgICAgdGhpcy5ydWxlckxlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5ydWxlckxlZnQuY2xhc3NOYW1lID0gJ3J1bGVyLWxpbmUnO1xuICAgICAgICB0aGlzLnJ1bGVyUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5ydWxlclJpZ2h0LmNsYXNzTmFtZSA9ICdydWxlci1saW5lJztcbiAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucnVsZXJMZWZ0KTtcbiAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucnVsZXJSaWdodCk7XG4gICAgICAgIHRoaXMubWFpblNlc3Npb24uZGlzcGxheURhdGEuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNDb3VudENoYW5nZWQnLCB0aGlzLnBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlcik7XG4gICAgfVxuXG4gICAgdXBkYXRlKGNvbmZpZzogSUxheWVyQ29uZmlnKTogdm9pZCB7XG4gICAgICAgIERvbUhlbHBlci50cmFuc2xhdGUodGhpcy5lbGVtZW50LCAwLCAtY29uZmlnLnNjcm9sbFRvcCk7XG5cbiAgICAgICAgY29uc3QgcGFnZVNwYWNlID0gdGhpcy5nZXRQYWdlU3BhY2UoKTtcbiAgICAgICAgY29uc3QgcGFnZUhlaWdodCA9IHRoaXMubWFpblNlc3Npb24uZGlzcGxheURhdGEucGFnZUhlaWdodDtcbiAgICAgICAgY29uc3QgcGFnZXMgPSBjb25maWcucGFnZXMgfHwgW107XG4gICAgICAgIGxldCBtaW5QYWdlID0gcGFnZXNbMF0gfHwgMTtcbiAgICAgICAgY29uc3QgbWF4UGFnZSA9IHBhZ2VzW3BhZ2VzLmxlbmd0aCAtIDFdIHx8IDE7XG4gICAgICAgIGlmIChtaW5QYWdlID4gMSAmJiBjb25maWcuc2Nyb2xsVG9wIDw9IChtaW5QYWdlIC0gMSkgKiAocGFnZUhlaWdodCArIHBhZ2VTcGFjZSkgKyBwYWdlU3BhY2UpIHtcbiAgICAgICAgICAgIG1pblBhZ2UtLTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1pblBhZ2VOdW1iZXIgIT09IG1pblBhZ2UgfHwgdGhpcy5tYXhQYWdlTnVtYmVyICE9PSBtYXhQYWdlIHx8IG1pblBhZ2UgPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMubWluUGFnZU51bWJlciA9IG1pblBhZ2U7XG4gICAgICAgICAgICB0aGlzLm1heFBhZ2VOdW1iZXIgPSBtYXhQYWdlO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVQYWdlcygpO1xuICAgICAgICAgICAgdGhpcy5hZGRQYWdlcyhwYWdlU3BhY2UsIHBhZ2VIZWlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd1J1bGxlckxpbmVzKHBvc2l0aW9uczogbnVtYmVyW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFwb3NpdGlvbnMgfHwgcG9zaXRpb25zLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgICAgRG9tSGVscGVyLnJlbW92ZUNzc0NsYXNzKHRoaXMucnVsZXJMZWZ0LCAndmlzaWJsZScpO1xuICAgICAgICAgICAgRG9tSGVscGVyLnJlbW92ZUNzc0NsYXNzKHRoaXMucnVsZXJSaWdodCwgJ3Zpc2libGUnKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMucnVsZXJMZWZ0LnN0eWxlLCAnbGVmdCcsIGAke3Bvc2l0aW9uc1swXX1weGApO1xuICAgICAgICBEb21IZWxwZXIuYWRkQ3NzQ2xhc3ModGhpcy5ydWxlckxlZnQsICd2aXNpYmxlJyk7XG4gICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLnJ1bGVyUmlnaHQuc3R5bGUsICdsZWZ0JywgYCR7cG9zaXRpb25zWzFdfXB4YCk7XG4gICAgICAgIERvbUhlbHBlci5hZGRDc3NDbGFzcyh0aGlzLnJ1bGVyUmlnaHQsICd2aXNpYmxlJyk7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYWluU2Vzc2lvbi5kaXNwbGF5RGF0YS5yZW1vdmVFdmVudExpc3RlbmVyKCdwYWdlc0NvdW50Q2hhbmdlZCcsIHRoaXMucGFnZXNDb3VudENoYW5nZWRIYW5kbGVyKTtcbiAgICB9XG5cbiAgICAvLyBVc2VkIHRvIGJlIG92ZXJyaWRkZW4gYnkgdGhlIHByaW50IHBhZ2UgbGF5ZXIgZm9yIHByaW50aW5nXG4gICAgcHJvdGVjdGVkIGdldFBhZ2VTcGFjZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tYWluU2Vzc2lvbi5kaXNwbGF5RGF0YS5wYWdlc1NwYWNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlUGFnZXMoKTogdm9pZCB7XG4gICAgICAgIHdoaWxlICh0aGlzLnBhZ2VCcmVha0VsZW1lbnRzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnBhZ2VCcmVha0VsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRQYWdlcyhwYWdlU3BhY2U6IG51bWJlciwgcGFnZUhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGZvciAobGV0IHBhZ2UgPSB0aGlzLm1pblBhZ2VOdW1iZXI7IHBhZ2UgPD0gdGhpcy5tYXhQYWdlTnVtYmVyOyBwYWdlKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gJ3BhZ2UnO1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHtwYWdlSGVpZ2h0fXB4YDtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUudG9wID0gYCR7KHBhZ2UgLSAxKSAqIChwYWdlSGVpZ2h0ICsgcGFnZVNwYWNlKSArIHBhZ2VTcGFjZX1weGA7XG5cbiAgICAgICAgICAgIGlmIChwYWdlID4gMSkge1xuICAgICAgICAgICAgICAgIGxldCBwYWdlTGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgcGFnZUxhYmVsLmNsYXNzTmFtZSA9ICdwYWdlLWxhYmVsJztcbiAgICAgICAgICAgICAgICBwYWdlTGFiZWwuaW5uZXJUZXh0ID0gYCR7cGFnZX0uYDtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHBhZ2VMYWJlbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMucGFnZUJyZWFrRWxlbWVudHMucHVzaChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29udGFpbmVyU2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmhlaWdodCA9IGAkeyh0aGlzLnBhZ2VzQ291bnQgKyAxKSAqIHRoaXMucGFnZVNpemV9cHhgO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFnZXNDb3VudENoYW5nZWRIYW5kbGVyID0gKGV2ZW50OiB7IHBhZ2VzQ291bnQ6IG51bWJlcjsgcGFnZUhlaWdodDogbnVtYmVyIH0pOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3BhZ2VTaXplID09PSBldmVudC5wYWdlSGVpZ2h0ICYmIHRoaXMuX3BhZ2VzQ291bnQgPT09IGV2ZW50LnBhZ2VzQ291bnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3BhZ2VTaXplID0gZXZlbnQucGFnZUhlaWdodCB8fCBEb2N1bWVudEluZm8uaGVpZ2h0O1xuICAgICAgICB0aGlzLl9wYWdlc0NvdW50ID0gZXZlbnQucGFnZXNDb3VudDtcbiAgICAgICAgdGhpcy5zZXRDb250YWluZXJTaXplKCk7XG4gICAgfTtcbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { TextLayer } from './text.layer';
2
2
  export class PrintTextLayer extends TextLayer {
3
3
  getParagraphTop(row) {
4
- return this.session.pagesWrap.getParagraphTopForPrint(row);
4
+ return this.session.displayData.getDistanceFromTopForPrint(row);
5
5
  }
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQudGV4dC5sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9kaXNwbGF5L2xheWVycy9wcmludC50ZXh0LmxheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsTUFBTSxPQUFPLGNBQWUsU0FBUSxTQUFTO0lBQ2hDLGVBQWUsQ0FBQyxHQUFXO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGV4dExheWVyIH0gZnJvbSAnLi90ZXh0LmxheWVyJztcblxuZXhwb3J0IGNsYXNzIFByaW50VGV4dExheWVyIGV4dGVuZHMgVGV4dExheWVyIHtcbiAgICBvdmVycmlkZSBnZXRQYXJhZ3JhcGhUb3Aocm93OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLnBhZ2VzV3JhcC5nZXRQYXJhZ3JhcGhUb3BGb3JQcmludChyb3cpO1xuICAgIH1cbn1cbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQudGV4dC5sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9kaXNwbGF5L2xheWVycy9wcmludC50ZXh0LmxheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsTUFBTSxPQUFPLGNBQWUsU0FBUSxTQUFTO0lBQ2hDLGVBQWUsQ0FBQyxHQUFXO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGV4dExheWVyIH0gZnJvbSAnLi90ZXh0LmxheWVyJztcblxuZXhwb3J0IGNsYXNzIFByaW50VGV4dExheWVyIGV4dGVuZHMgVGV4dExheWVyIHtcbiAgICBvdmVycmlkZSBnZXRQYXJhZ3JhcGhUb3Aocm93OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmRpc3BsYXlEYXRhLmdldERpc3RhbmNlRnJvbVRvcEZvclByaW50KHJvdyk7XG4gICAgfVxufVxuIl19
@@ -47,21 +47,27 @@ export class SelectionLayer {
47
47
  }
48
48
  }
49
49
  getTop(row) {
50
- const paragraphs = this.session.pagesWrap.paragraphs;
50
+ const paragraphs = this.session.displayData.paragraphs;
51
51
  const paragraphInfo = PositionHelper.getParagraphInfoByRow(paragraphs, row);
52
- return paragraphs[paragraphInfo.paragraphIndex].distanceFromTop + paragraphInfo.lineTopOffset - this.session.scrollTop;
52
+ return (paragraphs[paragraphInfo.paragraphIndex].paragraphSettings.distanceFromTop +
53
+ paragraphInfo.lineTopOffset -
54
+ this.session.scrollTop);
53
55
  }
54
56
  // Draws a multi line marker, where lines span the full width
55
57
  drawMultiLineMarker(range) {
56
58
  // from selection start to the end of the line
57
59
  const start = range.start.row;
58
60
  const end = range.end.row;
59
- const paragraphs = this.session.pagesWrap.paragraphs;
60
- const visibleParagraphs = paragraphs.filter(x => x.lastScreenLine >= start && x.firstScreenLine <= end);
61
- const textLinesInfo = visibleParagraphs.map(x => x.textLinesInfo.filter(l => start <= l.screenLine && l.screenLine <= end)).flat();
61
+ const paragraphs = this.session.displayData.paragraphs;
62
+ const visibleParagraphs = paragraphs.filter(x => x.paragraphSettings.lastScreenLine >= start && x.paragraphSettings.firstScreenLine <= end);
63
+ const textLinesInfo = visibleParagraphs
64
+ .map(x => x.paragraphSettings.textLinesInfo.filter(l => start <= l.screenLine && l.screenLine <= end))
65
+ .flat();
62
66
  const paragraphInfo = PositionHelper.getParagraphInfoByRow(paragraphs, start);
63
- let top = paragraphs[paragraphInfo.paragraphIndex].distanceFromTop + paragraphInfo.lineTopOffset - this.session.scrollTop;
64
- const padding = this.session.pagesWrap.documentMargin.left;
67
+ let top = paragraphs[paragraphInfo.paragraphIndex].paragraphSettings.distanceFromTop +
68
+ paragraphInfo.lineTopOffset -
69
+ this.session.scrollTop;
70
+ const padding = this.session.displayData.pageMargin.left;
65
71
  for (let i = 0; i < textLinesInfo.length; i++) {
66
72
  const lineInfo = textLinesInfo[i];
67
73
  if (i !== 0) {
@@ -88,7 +94,7 @@ export class SelectionLayer {
88
94
  // Draws a marker which covers part or whole width of a single screen line
89
95
  drawSingleLineMarker(range) {
90
96
  const rangeInfo = this.getRangeInfo(this.session, range);
91
- const paragraphInfo = PositionHelper.getParagraphInfoByRow(this.session.pagesWrap.paragraphs, range.start.row);
97
+ const paragraphInfo = PositionHelper.getParagraphInfoByRow(this.session.displayData.paragraphs, range.start.row);
92
98
  const height = rangeInfo.screenHeight || paragraphInfo.lineHeight;
93
99
  const width = rangeInfo.screenWidth;
94
100
  const top = this.getTop(range.start.row);
@@ -110,4 +116,4 @@ export class SelectionLayer {
110
116
  return `height:${height}px;width:${width}px;top:${top}px;left:${left}px`;
111
117
  }
112
118
  }
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2Rpc3BsYXkvbGF5ZXJzL3NlbGVjdGlvbi5sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRCxNQUFNLE9BQU8sY0FBYztJQVN2QixZQUFZLFFBQXFCLEVBQUUsUUFBZ0IsRUFBVSxPQUFvQjtRQUFwQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBTmpGLFdBQU0sR0FBaUIsSUFBSSxDQUFDO1FBT3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxxQ0FBcUMsUUFBUSxFQUFFLENBQUM7UUFDekUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFXO1FBQ3ZCLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDckgsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ25CLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FB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QUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU8sWUFBWSxDQUFDLE9BQW9CLEVBQUUsS0FBWTtRQUNuRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDdEIsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEYsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUUsT0FBTztZQUNILFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUNwRCxZQUFZLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDckQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLO1NBQzFCLENBQUM7SUFDTixDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQWMsRUFBRSxLQUFhLEVBQUUsR0FBVyxFQUFFLElBQVk7UUFDM0UsT0FBTyxVQUFVLE1BQU0sWUFBWSxLQUFLLFVBQVUsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDO0lBQzdFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnNvclBhcmFncmFwaCB9IGZyb20gJy4uLy4uL3Bvc2l0aW9uaW5nL2N1cnNvci1wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuLi8uLi9leGVjdXRpb24vZWRpdC5zZXNzaW9uJztcbmltcG9ydCB7IElMYXllckNvbmZpZyB9IGZyb20gJy4vbGF5ZXIuY29uZmlnJztcbmltcG9ydCB7IFBvc2l0aW9uSGVscGVyIH0gZnJvbSAnLi4vLi4vcG9zaXRpb25pbmcvcG9zaXRpb24uaGVscGVyJztcbmltcG9ydCB7IFJhbmdlIH0gZnJvbSAnLi4vLi4vcG9zaXRpb25pbmcvcmFuZ2UnO1xuXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uTGF5ZXIge1xuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgbWFya2VyOiBSYW5nZSB8IG51bGwgPSBudWxsO1xuXG4gICAgc2VsZWN0aW9uSW5kZXg6IG51bWJlcjtcblxuICAgIGNvbmZpZzogSUxheWVyQ29uZmlnO1xuXG4gICAgY29uc3RydWN0b3IocGFyZW50RWw6IEhUTUxFbGVtZW50LCBjc3NDbGFzczogc3RyaW5nLCBwcml2YXRlIHNlc3Npb246IEVkaXRTZXNzaW9uKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gYG5vZGVyLWxheWVyIG5vZGVyLXNlbGVjdGlvbi1sYXllciAke2Nzc0NsYXNzfWA7XG4gICAgICAgIHBhcmVudEVsLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgcmVuZGVyU2VsZWN0aW9uKGNzczogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGxldCBzZWxlY3Rpb25FbGVtZW50ID0gdGhpcy5zZWxlY3Rpb25JbmRleCAhPT0gLTEgPyA8SFRNTEVsZW1lbnQ+dGhpcy5lbGVtZW50LmNoaWxkTm9kZXNbdGhpcy5zZWxlY3Rpb25JbmRleF0gOiBudWxsO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbkVsZW1lbnQpIHtcbiAgICAgICAgICAgIHNlbGVjdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChzZWxlY3Rpb25FbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uSW5kZXggPSAtMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uSW5kZXgrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGlvbkVsZW1lbnQuc3R5bGUuY3NzVGV4dCA9IGNzcztcbiAgICAgICAgc2VsZWN0aW9uRWxlbWVudC5jbGFzc05hbWUgPSAnbm9kZXItc2VsZWN0aW9uJztcbiAgICB9XG5cbiAgICB1cGRhdGUoY29uZmlnOiBJTGF5ZXJDb25maWcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFjb25maWcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkluZGV4ID0gMDtcblxuICAgICAgICBpZiAodGhpcy5tYXJrZXIpIHtcbiAgICAgICAgICAgIGxldCByYW5nZSA9IHRoaXMubWFya2VyLmNsaXBSb3dzKGNvbmZpZy5jb250ZW50UmFuZ2Uuc3RhcnQsIGNvbmZpZy5jb250ZW50UmFuZ2UuZW5kKTtcbiAgICAgICAgICAgIGlmICghcmFuZ2UuaXNFbXB0eSkge1xuICAgICAgICAgICAgICAgIHJhbmdlID0gcmFuZ2UudG9TY3JlZW5SYW5nZSh0aGlzLnNlc3Npb24pO1xuICAgICAgICAgICAgICAgIGlmIChyYW5nZS5pc1NpbmdsZUxpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3U2luZ2xlTGluZU1hcmtlcihyYW5nZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3TXVsdGlMaW5lTWFya2VyKHJhbmdlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25JbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLnNlbGVjdGlvbkluZGV4IDwgdGhpcy5lbGVtZW50LmNoaWxkRWxlbWVudENvdW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudC5sYXN0Q2hpbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0VG9wKHJvdzogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcGFyYWdyYXBocyA9IHRoaXMuc2Vzc2lvbi5wYWdlc1dyYXAucGFyYWdyYXBocztcbiAgICAgICAgY29uc3QgcGFyYWdyYXBoSW5mbyA9IFBvc2l0aW9uSGVscGVyLmdldFBhcmFncmFwaEluZm9CeVJvdyhwYXJhZ3JhcGhzLCByb3cpO1xuXG4gICAgICAgIHJldHVybiBwYXJhZ3JhcGhzW3BhcmFncmFwaEluZm8ucGFyYWdyYXBoSW5kZXhdLmRpc3RhbmNlRnJvbVRvcCArIHBhcmFncmFwaEluZm8ubGluZVRvcE9mZnNldCAtIHRoaXMuc2Vzc2lvbi5zY3JvbGxUb3A7XG4gICAgfVxuXG4gICAgLy8gRHJhd3MgYSBtdWx0aSBsaW5lIG1hcmtlciwgd2hlcmUgbGluZXMgc3BhbiB0aGUgZnVsbCB3aWR0aFxuICAgIGRyYXdNdWx0aUxpbmVNYXJrZXIocmFuZ2U6IFJhbmdlKTogdm9pZCB7XG4gICAgICAgIC8vIGZyb20gc2VsZWN0aW9uIHN0YXJ0IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmVcbiAgICAgICAgY29uc3Qgc3RhcnQgPSByYW5nZS5zdGFydC5yb3c7XG4gICAgICAgIGNvbnN0IGVuZCA9IHJhbmdlLmVuZC5yb3c7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaHMgPSB0aGlzLnNlc3Npb24ucGFnZXNXcmFwLnBhcmFncmFwaHM7XG4gICAgICAgIGNvbnN0IHZpc2libGVQYXJhZ3JhcGhzID0gcGFyYWdyYXBocy5maWx0ZXIoeCA9PiB4Lmxhc3RTY3JlZW5MaW5lID49IHN0YXJ0ICYmIHguZmlyc3RTY3JlZW5MaW5lIDw9IGVuZCk7XG4gICAgICAgIGNvbnN0IHRleHRMaW5lc0luZm8gPSB2aXNpYmxlUGFyYWdyYXBocy5tYXAoeCA9PiB4LnRleHRMaW5lc0luZm8uZmlsdGVyKGwgPT4gc3RhcnQgPD0gbC5zY3JlZW5MaW5lICYmIGwuc2NyZWVuTGluZSA8PSBlbmQpKS5mbGF0KCk7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaEluZm8gPSBQb3NpdGlvbkhlbHBlci5nZXRQYXJhZ3JhcGhJbmZvQnlSb3cocGFyYWdyYXBocywgc3RhcnQpO1xuICAgICAgICBsZXQgdG9wID0gcGFyYWdyYXBoc1twYXJhZ3JhcGhJbmZvLnBhcmFncmFwaEluZGV4XS5kaXN0YW5jZUZyb21Ub3AgKyBwYXJhZ3JhcGhJbmZvLmxpbmVUb3BPZmZzZXQgLSB0aGlzLnNlc3Npb24uc2Nyb2xsVG9wO1xuICAgICAgICBjb25zdCBwYWRkaW5nID0gdGhpcy5zZXNzaW9uLnBhZ2VzV3JhcC5kb2N1bWVudE1hcmdpbi5sZWZ0O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHRMaW5lc0luZm8ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVJbmZvID0gdGV4dExpbmVzSW5mb1tpXTtcbiAgICAgICAgICAgIGlmIChpICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgdG9wICs9IGxpbmVJbmZvLmZpcnN0TGluZVBhZ2VPZmZzZXQ7XG4gICAgICAgICAgICAgICAgdG9wICs9IGxpbmVJbmZvLm9mZnNldEJlZm9yZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHN0eWxlOiBzdHJpbmc7XG4gICAgICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlSW5mbyA9IHRoaXMuZ2V0UmFuZ2VJbmZvKHRoaXMuc2Vzc2lvbiwgcmFuZ2UpO1xuICAgICAgICAgICAgICAgIHN0eWxlID0gdGhpcy5nZXRNYXJrZXJTdHlsZShcbiAgICAgICAgICAgICAgICAgICAgbGluZUluZm8uaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBsaW5lSW5mby53aWR0aCAtIHJhbmdlSW5mby5sZWZ0UG9zICsgbGluZUluZm8ucGFkZGluZ0xlZnQgKyBwYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICAgICAgICAgIHJhbmdlSW5mby5sZWZ0UG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PT0gdGV4dExpbmVzSW5mby5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFzdFJvd1JhbmdlID0gbmV3IFJhbmdlKG5ldyBDdXJzb3JQYXJhZ3JhcGgocmFuZ2UuZW5kLnJvdywgMCksIHJhbmdlLmVuZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2VJbmZvID0gdGhpcy5nZXRSYW5nZUluZm8odGhpcy5zZXNzaW9uLCBsYXN0Um93UmFuZ2UpO1xuICAgICAgICAgICAgICAgIHN0eWxlID0gdGhpcy5nZXRNYXJrZXJTdHlsZShsaW5lSW5mby5oZWlnaHQsIHJhbmdlSW5mby5zY3JlZW5XaWR0aCwgdG9wLCBwYWRkaW5nICsgbGluZUluZm8ucGFkZGluZ0xlZnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdHlsZSA9IHRoaXMuZ2V0TWFya2VyU3R5bGUobGluZUluZm8uaGVpZ2h0LCBsaW5lSW5mby53aWR0aCwgdG9wLCBwYWRkaW5nICsgbGluZUluZm8ucGFkZGluZ0xlZnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnJlbmRlclNlbGVjdGlvbihzdHlsZSk7XG4gICAgICAgICAgICB0b3AgKz0gbGluZUluZm8uaGVpZ2h0ICsgbGluZUluZm8ub2Zmc2V0QWZ0ZXIgKyBsaW5lSW5mby5lbmRQYWdlT2Zmc2V0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRHJhd3MgYSBtYXJrZXIgd2hpY2ggY292ZXJzIHBhcnQgb3Igd2hvbGUgd2lkdGggb2YgYSBzaW5nbGUgc2NyZWVuIGxpbmVcbiAgICBkcmF3U2luZ2xlTGluZU1hcmtlcihyYW5nZTogUmFuZ2UpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmFuZ2VJbmZvID0gdGhpcy5nZXRSYW5nZUluZm8odGhpcy5zZXNzaW9uLCByYW5nZSk7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaEluZm8gPSBQb3NpdGlvbkhlbHBlci5nZXRQYXJhZ3JhcGhJbmZvQnlSb3codGhpcy5zZXNzaW9uLnBhZ2VzV3JhcC5wYXJhZ3JhcGhzLCByYW5nZS5zdGFydC5yb3cpO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSByYW5nZUluZm8uc2NyZWVuSGVpZ2h0IHx8IHBhcmFncmFwaEluZm8ubGluZUhlaWdodDtcbiAgICAgICAgY29uc3Qgd2lkdGggPSByYW5nZUluZm8uc2NyZWVuV2lkdGg7XG4gICAgICAgIGNvbnN0IHRvcCA9IHRoaXMuZ2V0VG9wKHJhbmdlLnN0YXJ0LnJvdyk7XG4gICAgICAgIGNvbnN0IGxlZnQgPSByYW5nZUluZm8ubGVmdFBvcztcbiAgICAgICAgdGhpcy5yZW5kZXJTZWxlY3Rpb24odGhpcy5nZXRNYXJrZXJTdHlsZShoZWlnaHQsIHdpZHRoLCB0b3AsIGxlZnQpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJhbmdlSW5mbyhzZXNzaW9uOiBFZGl0U2Vzc2lvbiwgcmFuZ2U6IFJhbmdlKTogeyBzY3JlZW5XaWR0aDogbnVtYmVyOyBzY3JlZW5IZWlnaHQ6IG51bWJlcjsgbGVmdFBvczogbnVtYmVyIH0ge1xuICAgICAgICBjb25zdCBzdGFydCA9IHJhbmdlLnN0YXJ0O1xuICAgICAgICBjb25zdCBlbmQgPSByYW5nZS5lbmQ7XG4gICAgICAgIGNvbnN0IHN0YXJ0UG9zID0gUG9zaXRpb25IZWxwZXIuc2NyZWVuVG9QaXhlbChzZXNzaW9uLCBzdGFydC5yb3csIHN0YXJ0LmNvbHVtbik7XG4gICAgICAgIGNvbnN0IGVuZFBvcyA9IFBvc2l0aW9uSGVscGVyLnNjcmVlblRvUGl4ZWwoc2Vzc2lvbiwgZW5kLnJvdywgZW5kLmNvbHVtbik7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNjcmVlbldpZHRoOiBNYXRoLmFicyhlbmRQb3MucGFnZVggLSBzdGFydFBvcy5wYWdlWCksXG4gICAgICAgICAgICBzY3JlZW5IZWlnaHQ6IE1hdGguYWJzKGVuZFBvcy5wYWdlWSAtIHN0YXJ0UG9zLnBhZ2VZKSxcbiAgICAgICAgICAgIGxlZnRQb3M6IHN0YXJ0UG9zLnBhZ2VYXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNYXJrZXJTdHlsZShoZWlnaHQ6IG51bWJlciwgd2lkdGg6IG51bWJlciwgdG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgaGVpZ2h0OiR7aGVpZ2h0fXB4O3dpZHRoOiR7d2lkdGh9cHg7dG9wOiR7dG9wfXB4O2xlZnQ6JHtsZWZ0fXB4YDtcbiAgICB9XG59XG4iXX0=
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2Rpc3BsYXkvbGF5ZXJzL3NlbGVjdGlvbi5sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFHckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRCxNQUFNLE9BQU8sY0FBYztJQVN2QixZQUFZLFFBQXFCLEVBQUUsUUFBZ0IsRUFBVSxPQUFvQjtRQUFwQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBTmpGLFdBQU0sR0FBaUIsSUFBSSxDQUFDO1FBT3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxxQ0FBcUMsUUFBUSxFQUFFLENBQUM7UUFDekUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFXO1FBQ3ZCLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDckgsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ25CLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FB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QUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVPLFlBQVksQ0FBQyxPQUFvQixFQUFFLEtBQVk7UUFDbkQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMxQixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFFLE9BQU87WUFDSCxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDcEQsWUFBWSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3JELE9BQU8sRUFBRSxRQUFRLENBQUMsS0FBSztTQUMxQixDQUFDO0lBQ04sQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFjLEVBQUUsS0FBYSxFQUFFLEdBQVcsRUFBRSxJQUFZO1FBQzNFLE9BQU8sVUFBVSxNQUFNLFlBQVksS0FBSyxVQUFVLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQztJQUM3RSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJzb3JQYXJhZ3JhcGggfSBmcm9tICcuLi8uLi9wb3NpdGlvbmluZy9jdXJzb3ItcGFyYWdyYXBoJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBJTGF5ZXJDb25maWcgfSBmcm9tICcuL2xheWVyLmNvbmZpZyc7XG5pbXBvcnQgeyBQb3NpdGlvbkhlbHBlciB9IGZyb20gJy4uLy4uL3Bvc2l0aW9uaW5nL3Bvc2l0aW9uLmhlbHBlcic7XG5pbXBvcnQgeyBSYW5nZSB9IGZyb20gJy4uLy4uL3Bvc2l0aW9uaW5nL3JhbmdlJztcblxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkxheWVyIHtcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIG1hcmtlcjogUmFuZ2UgfCBudWxsID0gbnVsbDtcblxuICAgIHNlbGVjdGlvbkluZGV4OiBudW1iZXI7XG5cbiAgICBjb25maWc6IElMYXllckNvbmZpZztcblxuICAgIGNvbnN0cnVjdG9yKHBhcmVudEVsOiBIVE1MRWxlbWVudCwgY3NzQ2xhc3M6IHN0cmluZywgcHJpdmF0ZSBzZXNzaW9uOiBFZGl0U2Vzc2lvbikge1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9IGBub2Rlci1sYXllciBub2Rlci1zZWxlY3Rpb24tbGF5ZXIgJHtjc3NDbGFzc31gO1xuICAgICAgICBwYXJlbnRFbC5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJlbmRlclNlbGVjdGlvbihjc3M6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBsZXQgc2VsZWN0aW9uRWxlbWVudCA9IHRoaXMuc2VsZWN0aW9uSW5kZXggIT09IC0xID8gPEhUTUxFbGVtZW50PnRoaXMuZWxlbWVudC5jaGlsZE5vZGVzW3RoaXMuc2VsZWN0aW9uSW5kZXhdIDogbnVsbDtcbiAgICAgICAgaWYgKCFzZWxlY3Rpb25FbGVtZW50KSB7XG4gICAgICAgICAgICBzZWxlY3Rpb25FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoc2VsZWN0aW9uRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkluZGV4ID0gLTE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkluZGV4Kys7XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3Rpb25FbGVtZW50LnN0eWxlLmNzc1RleHQgPSBjc3M7XG4gICAgICAgIHNlbGVjdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gJ25vZGVyLXNlbGVjdGlvbic7XG4gICAgfVxuXG4gICAgdXBkYXRlKGNvbmZpZzogSUxheWVyQ29uZmlnKTogdm9pZCB7XG4gICAgICAgIGlmICghY29uZmlnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25JbmRleCA9IDA7XG5cbiAgICAgICAgaWYgKHRoaXMubWFya2VyKSB7XG4gICAgICAgICAgICBsZXQgcmFuZ2UgPSB0aGlzLm1hcmtlci5jbGlwUm93cyhjb25maWcuY29udGVudFJhbmdlLnN0YXJ0LCBjb25maWcuY29udGVudFJhbmdlLmVuZCk7XG4gICAgICAgICAgICBpZiAoIXJhbmdlLmlzRW1wdHkpIHtcbiAgICAgICAgICAgICAgICByYW5nZSA9IHJhbmdlLnRvU2NyZWVuUmFuZ2UodGhpcy5zZXNzaW9uKTtcbiAgICAgICAgICAgICAgICBpZiAocmFuZ2UuaXNTaW5nbGVMaW5lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd1NpbmdsZUxpbmVNYXJrZXIocmFuZ2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd011bHRpTGluZU1hcmtlcihyYW5nZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5zZWxlY3Rpb25JbmRleCA8IHRoaXMuZWxlbWVudC5jaGlsZEVsZW1lbnRDb3VudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQubGFzdENoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFRvcChyb3c6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaHMgPSB0aGlzLnNlc3Npb24uZGlzcGxheURhdGEucGFyYWdyYXBocztcbiAgICAgICAgY29uc3QgcGFyYWdyYXBoSW5mbyA9IFBvc2l0aW9uSGVscGVyLmdldFBhcmFncmFwaEluZm9CeVJvdyhwYXJhZ3JhcGhzLCByb3cpO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBwYXJhZ3JhcGhzW3BhcmFncmFwaEluZm8ucGFyYWdyYXBoSW5kZXhdLnBhcmFncmFwaFNldHRpbmdzLmRpc3RhbmNlRnJvbVRvcCArXG4gICAgICAgICAgICBwYXJhZ3JhcGhJbmZvLmxpbmVUb3BPZmZzZXQgLVxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uLnNjcm9sbFRvcFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIERyYXdzIGEgbXVsdGkgbGluZSBtYXJrZXIsIHdoZXJlIGxpbmVzIHNwYW4gdGhlIGZ1bGwgd2lkdGhcbiAgICBkcmF3TXVsdGlMaW5lTWFya2VyKHJhbmdlOiBSYW5nZSk6IHZvaWQge1xuICAgICAgICAvLyBmcm9tIHNlbGVjdGlvbiBzdGFydCB0byB0aGUgZW5kIG9mIHRoZSBsaW5lXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gcmFuZ2Uuc3RhcnQucm93O1xuICAgICAgICBjb25zdCBlbmQgPSByYW5nZS5lbmQucm93O1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhzID0gdGhpcy5zZXNzaW9uLmRpc3BsYXlEYXRhLnBhcmFncmFwaHM7XG4gICAgICAgIGNvbnN0IHZpc2libGVQYXJhZ3JhcGhzID0gcGFyYWdyYXBocy5maWx0ZXIoXG4gICAgICAgICAgICB4ID0+IHgucGFyYWdyYXBoU2V0dGluZ3MubGFzdFNjcmVlbkxpbmUgPj0gc3RhcnQgJiYgeC5wYXJhZ3JhcGhTZXR0aW5ncy5maXJzdFNjcmVlbkxpbmUgPD0gZW5kXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHRleHRMaW5lc0luZm8gPSB2aXNpYmxlUGFyYWdyYXBoc1xuICAgICAgICAgICAgLm1hcCh4ID0+IHgucGFyYWdyYXBoU2V0dGluZ3MudGV4dExpbmVzSW5mby5maWx0ZXIobCA9PiBzdGFydCA8PSBsLnNjcmVlbkxpbmUgJiYgbC5zY3JlZW5MaW5lIDw9IGVuZCkpXG4gICAgICAgICAgICAuZmxhdCgpO1xuICAgICAgICBjb25zdCBwYXJhZ3JhcGhJbmZvID0gUG9zaXRpb25IZWxwZXIuZ2V0UGFyYWdyYXBoSW5mb0J5Um93KHBhcmFncmFwaHMsIHN0YXJ0KTtcbiAgICAgICAgbGV0IHRvcCA9XG4gICAgICAgICAgICBwYXJhZ3JhcGhzW3BhcmFncmFwaEluZm8ucGFyYWdyYXBoSW5kZXhdLnBhcmFncmFwaFNldHRpbmdzLmRpc3RhbmNlRnJvbVRvcCArXG4gICAgICAgICAgICBwYXJhZ3JhcGhJbmZvLmxpbmVUb3BPZmZzZXQgLVxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uLnNjcm9sbFRvcDtcbiAgICAgICAgY29uc3QgcGFkZGluZyA9IHRoaXMuc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYWdlTWFyZ2luLmxlZnQ7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dExpbmVzSW5mby5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgbGluZUluZm8gPSB0ZXh0TGluZXNJbmZvW2ldO1xuICAgICAgICAgICAgaWYgKGkgIT09IDApIHtcbiAgICAgICAgICAgICAgICB0b3AgKz0gbGluZUluZm8uZmlyc3RMaW5lUGFnZU9mZnNldDtcbiAgICAgICAgICAgICAgICB0b3AgKz0gbGluZUluZm8ub2Zmc2V0QmVmb3JlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgc3R5bGU6IHN0cmluZztcbiAgICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2VJbmZvID0gdGhpcy5nZXRSYW5nZUluZm8odGhpcy5zZXNzaW9uLCByYW5nZSk7XG4gICAgICAgICAgICAgICAgc3R5bGUgPSB0aGlzLmdldE1hcmtlclN0eWxlKFxuICAgICAgICAgICAgICAgICAgICBsaW5lSW5mby5oZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIGxpbmVJbmZvLndpZHRoIC0gcmFuZ2VJbmZvLmxlZnRQb3MgKyBsaW5lSW5mby5wYWRkaW5nTGVmdCArIHBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgIHRvcCxcbiAgICAgICAgICAgICAgICAgICAgcmFuZ2VJbmZvLmxlZnRQb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpID09PSB0ZXh0TGluZXNJbmZvLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0Um93UmFuZ2UgPSBuZXcgUmFuZ2UobmV3IEN1cnNvclBhcmFncmFwaChyYW5nZS5lbmQucm93LCAwKSwgcmFuZ2UuZW5kKTtcbiAgICAgICAgICAgICAgICBjb25zdCByYW5nZUluZm8gPSB0aGlzLmdldFJhbmdlSW5mbyh0aGlzLnNlc3Npb24sIGxhc3RSb3dSYW5nZSk7XG4gICAgICAgICAgICAgICAgc3R5bGUgPSB0aGlzLmdldE1hcmtlclN0eWxlKGxpbmVJbmZvLmhlaWdodCwgcmFuZ2VJbmZvLnNjcmVlbldpZHRoLCB0b3AsIHBhZGRpbmcgKyBsaW5lSW5mby5wYWRkaW5nTGVmdCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0eWxlID0gdGhpcy5nZXRNYXJrZXJTdHlsZShsaW5lSW5mby5oZWlnaHQsIGxpbmVJbmZvLndpZHRoLCB0b3AsIHBhZGRpbmcgKyBsaW5lSW5mby5wYWRkaW5nTGVmdCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVuZGVyU2VsZWN0aW9uKHN0eWxlKTtcbiAgICAgICAgICAgIHRvcCArPSBsaW5lSW5mby5oZWlnaHQgKyBsaW5lSW5mby5vZmZzZXRBZnRlciArIGxpbmVJbmZvLmVuZFBhZ2VPZmZzZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEcmF3cyBhIG1hcmtlciB3aGljaCBjb3ZlcnMgcGFydCBvciB3aG9sZSB3aWR0aCBvZiBhIHNpbmdsZSBzY3JlZW4gbGluZVxuICAgIGRyYXdTaW5nbGVMaW5lTWFya2VyKHJhbmdlOiBSYW5nZSk6IHZvaWQge1xuICAgICAgICBjb25zdCByYW5nZUluZm8gPSB0aGlzLmdldFJhbmdlSW5mbyh0aGlzLnNlc3Npb24sIHJhbmdlKTtcbiAgICAgICAgY29uc3QgcGFyYWdyYXBoSW5mbyA9IFBvc2l0aW9uSGVscGVyLmdldFBhcmFncmFwaEluZm9CeVJvdyh0aGlzLnNlc3Npb24uZGlzcGxheURhdGEucGFyYWdyYXBocywgcmFuZ2Uuc3RhcnQucm93KTtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gcmFuZ2VJbmZvLnNjcmVlbkhlaWdodCB8fCBwYXJhZ3JhcGhJbmZvLmxpbmVIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gcmFuZ2VJbmZvLnNjcmVlbldpZHRoO1xuICAgICAgICBjb25zdCB0b3AgPSB0aGlzLmdldFRvcChyYW5nZS5zdGFydC5yb3cpO1xuICAgICAgICBjb25zdCBsZWZ0ID0gcmFuZ2VJbmZvLmxlZnRQb3M7XG4gICAgICAgIHRoaXMucmVuZGVyU2VsZWN0aW9uKHRoaXMuZ2V0TWFya2VyU3R5bGUoaGVpZ2h0LCB3aWR0aCwgdG9wLCBsZWZ0KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSYW5nZUluZm8oc2Vzc2lvbjogRWRpdFNlc3Npb24sIHJhbmdlOiBSYW5nZSk6IHsgc2NyZWVuV2lkdGg6IG51bWJlcjsgc2NyZWVuSGVpZ2h0OiBudW1iZXI7IGxlZnRQb3M6IG51bWJlciB9IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSByYW5nZS5zdGFydDtcbiAgICAgICAgY29uc3QgZW5kID0gcmFuZ2UuZW5kO1xuICAgICAgICBjb25zdCBzdGFydFBvcyA9IFBvc2l0aW9uSGVscGVyLnNjcmVlblRvUGl4ZWwoc2Vzc2lvbiwgc3RhcnQucm93LCBzdGFydC5jb2x1bW4pO1xuICAgICAgICBjb25zdCBlbmRQb3MgPSBQb3NpdGlvbkhlbHBlci5zY3JlZW5Ub1BpeGVsKHNlc3Npb24sIGVuZC5yb3csIGVuZC5jb2x1bW4pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY3JlZW5XaWR0aDogTWF0aC5hYnMoZW5kUG9zLnBhZ2VYIC0gc3RhcnRQb3MucGFnZVgpLFxuICAgICAgICAgICAgc2NyZWVuSGVpZ2h0OiBNYXRoLmFicyhlbmRQb3MucGFnZVkgLSBzdGFydFBvcy5wYWdlWSksXG4gICAgICAgICAgICBsZWZ0UG9zOiBzdGFydFBvcy5wYWdlWFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TWFya2VyU3R5bGUoaGVpZ2h0OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIHRvcDogbnVtYmVyLCBsZWZ0OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYGhlaWdodDoke2hlaWdodH1weDt3aWR0aDoke3dpZHRofXB4O3RvcDoke3RvcH1weDtsZWZ0OiR7bGVmdH1weGA7XG4gICAgfVxufVxuIl19