@talrace/ngx-noder 0.0.16 → 0.0.18

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 (55) hide show
  1. package/README.md +72 -9
  2. package/assets/i18n/noder.en.json +93 -0
  3. package/assets/i18n/noder.es.json +93 -0
  4. package/assets/i18n/noder.ru.json +93 -0
  5. package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +21 -21
  6. package/esm2022/lib/apart-components/add-link-mobile/add-link-mobile.component.mjs +5 -3
  7. package/esm2022/lib/apart-components/confirm-dialog/confirm-dialog.component.mjs +5 -3
  8. package/esm2022/lib/apart-components/editor-search/editor-search-dialog.component.mjs +14 -3
  9. package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +17 -14
  10. package/esm2022/lib/apart-components/editor-title-mobile/editor-title-mobile.component.mjs +5 -3
  11. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/color-picker/color-picker.component.mjs +3 -3
  12. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +3 -3
  13. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/format/format.component.mjs +3 -3
  14. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/numbering/numbering.component.mjs +3 -3
  15. package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +4 -3
  16. package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component.mjs +4 -3
  17. package/esm2022/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.mjs +2 -2
  18. package/esm2022/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.mjs +18 -16
  19. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar.module.mjs +8 -13
  20. package/esm2022/lib/apart-components/insert-table-mobile/insert-table-mobile.component.mjs +5 -3
  21. package/esm2022/lib/apart-components/text-format-mobile/text-format-mobile.component.mjs +14 -3
  22. package/esm2022/lib/editor/components/edges/edge.component.mjs +48 -6
  23. package/esm2022/lib/editor/components/edges/edges.mjs +7 -29
  24. package/esm2022/lib/editor/components/external-element/models/external-element.model.mjs +4 -4
  25. package/esm2022/lib/editor/components/shared/services/component.service.mjs +1 -13
  26. package/esm2022/lib/editor/components/shared/services/custom-content.service.mjs +1 -7
  27. package/esm2022/lib/editor/components/table/overlay-menu/overlay-menu.component.mjs +29 -19
  28. package/esm2022/lib/editor/display/layers/pages.layer.mjs +13 -1
  29. package/esm2022/lib/editor/editor.module.mjs +28 -4
  30. package/esm2022/lib/editor/execution/edit.session.mjs +5 -4
  31. package/esm2022/lib/editor/execution/editor.mjs +2 -1
  32. package/esm2022/lib/editor/gadgets/scrollbar.mjs +11 -6
  33. package/esm2022/lib/editor/interaction/editor.service.mjs +27 -1
  34. package/esm2022/lib/translate/noder-translate.loader.mjs +22 -0
  35. package/esm2022/public-api.mjs +2 -1
  36. package/fesm2022/talrace-ngx-noder.mjs +283 -189
  37. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  38. package/lib/apart-components/add-link-dialog/add-link-dialog.component.d.ts +1 -10
  39. package/lib/apart-components/editor-title/editor-title.component.d.ts +5 -3
  40. package/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.d.ts +3 -1
  41. package/lib/apart-components/editor-toolbar/editor-toolbar.module.d.ts +23 -23
  42. package/lib/editor/components/edges/edge.component.d.ts +10 -3
  43. package/lib/editor/components/edges/edges.d.ts +0 -2
  44. package/lib/editor/components/external-element/models/external-element.model.d.ts +3 -3
  45. package/lib/editor/components/shared/services/component.service.d.ts +0 -5
  46. package/lib/editor/components/shared/services/custom-content.service.d.ts +0 -2
  47. package/lib/editor/components/table/overlay-menu/overlay-menu.component.d.ts +3 -1
  48. package/lib/editor/editor.module.d.ts +2 -1
  49. package/lib/editor/gadgets/scrollbar.d.ts +1 -0
  50. package/lib/editor/interaction/editor.service.d.ts +8 -0
  51. package/lib/translate/noder-translate.loader.d.ts +11 -0
  52. package/package.json +3 -1
  53. package/public-api.d.ts +1 -0
  54. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/heading/heading.component.mjs +0 -22
  55. package/lib/apart-components/editor-toolbar/components/buttons/heading/heading.component.d.ts +0 -8
@@ -1,10 +1,13 @@
1
1
  import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
2
+ import { startWith, takeUntil } from 'rxjs';
2
3
  import { DestroyComponent } from '../shared/abstract/destroy.component';
3
4
  import { DomHelper } from '../../execution/helpers/dom.helper';
4
5
  import { EdgeType } from './edge-type.enum';
6
+ import { PageType } from './page-type.enum';
5
7
  import * as i0 from "@angular/core";
6
8
  import * as i1 from "../../execution/regulator.service";
7
9
  import * as i2 from "../../interaction/editor.service";
10
+ import * as i3 from "@ngx-translate/core";
8
11
  export class NoderEdgeComponent extends DestroyComponent {
9
12
  set type(val) {
10
13
  this._type = val;
@@ -29,10 +32,13 @@ export class NoderEdgeComponent extends DestroyComponent {
29
32
  get contentHeight() {
30
33
  return this.session.displayData.defaultVerticalData.contentHeight;
31
34
  }
32
- constructor(regulatorService, editorService) {
35
+ constructor(regulatorService, editorService, cdr, translateService) {
33
36
  super();
34
37
  this.regulatorService = regulatorService;
35
38
  this.editorService = editorService;
39
+ this.cdr = cdr;
40
+ this.translateService = translateService;
41
+ this.initialized = false;
36
42
  this.pagesCountChangedHandler = (event) => {
37
43
  if (this._height === event.pageHeight) {
38
44
  return;
@@ -55,6 +61,14 @@ export class NoderEdgeComponent extends DestroyComponent {
55
61
  DomHelper.setStyle(this.typeContainer.nativeElement.style, 'visibility', 'hidden');
56
62
  this.applyHeight();
57
63
  this.session.displayData.addEventListener('pagesCountChanged', this.pagesCountChangedHandler);
64
+ if (this.initialized) {
65
+ return;
66
+ }
67
+ this.initialized = true;
68
+ this.translateService.onLangChange.pipe(startWith(null), takeUntil(this.destroy$)).subscribe(() => {
69
+ this.edgeNameByType = this.getEdgeNameByType();
70
+ this.cdr.detectChanges();
71
+ });
58
72
  }
59
73
  enterEditMode() {
60
74
  DomHelper.addCssClass(this.container.nativeElement, this.editModeClass);
@@ -66,18 +80,44 @@ export class NoderEdgeComponent extends DestroyComponent {
66
80
  DomHelper.setStyle(this.typeContainer.nativeElement.style, 'visibility', 'hidden');
67
81
  this.editorService.changedEdge(this.sessionId);
68
82
  }
83
+ getEdgeNameByType() {
84
+ if (this.type === EdgeType.Header) {
85
+ if (this.model.pageType === PageType.First) {
86
+ return this.translateService.instant('NODER.LABEL.FIRST_PAGE_HEADER');
87
+ }
88
+ else if (this.model.pageType === PageType.Even) {
89
+ return this.translateService.instant('NODER.LABEL.EVEN_PAGES_HEADER');
90
+ }
91
+ else if (this.model.pageType === PageType.Default && this.isEvenEdgesExist) {
92
+ return this.translateService.instant('NODER.LABEL.ODD_PAGES_HEADER');
93
+ }
94
+ return this.translateService.instant('NODER.LABEL.HEADER');
95
+ }
96
+ else {
97
+ if (this.model.pageType === PageType.First) {
98
+ return this.translateService.instant('NODER.LABEL.FIRST_PAGE_FOOTER');
99
+ }
100
+ else if (this.model.pageType === PageType.Even) {
101
+ return this.translateService.instant('NODER.LABEL.EVEN_PAGES_FOOTER');
102
+ }
103
+ else if (this.model.pageType === PageType.Default && this.isEvenEdgesExist) {
104
+ return this.translateService.instant('NODER.LABEL.ODD_PAGES_FOOTER');
105
+ }
106
+ return this.translateService.instant('NODER.LABEL.FOOTER');
107
+ }
108
+ }
69
109
  applyHeight() {
70
110
  const maxHeight = this.generalProperties.maxEdgeHeight;
71
111
  const height = this.contentHeight > maxHeight ? maxHeight : this.contentHeight;
72
112
  DomHelper.setStyle(this.typeContainer.nativeElement.style, this.typeContainerPosition, `${height}px`);
73
113
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderEdgeComponent, deps: [{ token: i1.RegulatorService }, { token: i2.EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NoderEdgeComponent, selector: "app-nod-edge", inputs: { model: "model", generalProperties: "generalProperties", margins: "margins", width: "width", parentSessionId: "parentSessionId", type: "type" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "typeContainer", first: true, predicate: ["locationType"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n #container\n class=\"edit-container\"></div>\n<div\n #locationType\n class=\"location-type\"></div>\n", styles: [":host{height:100%;width:100%;background:transparent;display:block}.location-type{position:absolute;height:auto;width:auto;font-size:9pt;color:#333;background-color:#f2f2f2;border:1px solid #838282;border-radius:2px;padding:4px;margin-left:5px;z-index:2}.header-edit-mode{border-bottom:1px dashed #838282}.footer-edit-mode{border-top:1px dashed #838282}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderEdgeComponent, deps: [{ token: i1.RegulatorService }, { token: i2.EditorService }, { token: i0.ChangeDetectorRef }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
115
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NoderEdgeComponent, selector: "app-nod-edge", inputs: { model: "model", generalProperties: "generalProperties", margins: "margins", width: "width", parentSessionId: "parentSessionId", isEvenEdgesExist: "isEvenEdgesExist", type: "type" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "typeContainer", first: true, predicate: ["locationType"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n #container\n class=\"edit-container\"></div>\n<div\n #locationType\n class=\"location-type\">\n <span>{{ edgeNameByType }}</span>\n</div>\n", styles: [":host{height:100%;width:100%;background:transparent;display:block}.location-type{position:absolute;height:auto;width:auto;font-size:9pt;color:#333;background-color:#f2f2f2;border:1px solid #838282;border-radius:2px;padding:4px;margin-left:5px;z-index:2}.header-edit-mode{border-bottom:1px dashed #838282}.footer-edit-mode{border-top:1px dashed #838282}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
76
116
  }
77
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderEdgeComponent, decorators: [{
78
118
  type: Component,
79
- args: [{ selector: 'app-nod-edge', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #container\n class=\"edit-container\"></div>\n<div\n #locationType\n class=\"location-type\"></div>\n", styles: [":host{height:100%;width:100%;background:transparent;display:block}.location-type{position:absolute;height:auto;width:auto;font-size:9pt;color:#333;background-color:#f2f2f2;border:1px solid #838282;border-radius:2px;padding:4px;margin-left:5px;z-index:2}.header-edit-mode{border-bottom:1px dashed #838282}.footer-edit-mode{border-top:1px dashed #838282}\n"] }]
80
- }], ctorParameters: () => [{ type: i1.RegulatorService }, { type: i2.EditorService }], propDecorators: { model: [{
119
+ args: [{ selector: 'app-nod-edge', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #container\n class=\"edit-container\"></div>\n<div\n #locationType\n class=\"location-type\">\n <span>{{ edgeNameByType }}</span>\n</div>\n", styles: [":host{height:100%;width:100%;background:transparent;display:block}.location-type{position:absolute;height:auto;width:auto;font-size:9pt;color:#333;background-color:#f2f2f2;border:1px solid #838282;border-radius:2px;padding:4px;margin-left:5px;z-index:2}.header-edit-mode{border-bottom:1px dashed #838282}.footer-edit-mode{border-top:1px dashed #838282}\n"] }]
120
+ }], ctorParameters: () => [{ type: i1.RegulatorService }, { type: i2.EditorService }, { type: i0.ChangeDetectorRef }, { type: i3.TranslateService }], propDecorators: { model: [{
81
121
  type: Input
82
122
  }], generalProperties: [{
83
123
  type: Input
@@ -87,6 +127,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
87
127
  type: Input
88
128
  }], parentSessionId: [{
89
129
  type: Input
130
+ }], isEvenEdgesExist: [{
131
+ type: Input
90
132
  }], type: [{
91
133
  type: Input
92
134
  }], container: [{
@@ -96,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
96
138
  type: ViewChild,
97
139
  args: ['locationType', { static: true }]
98
140
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29tcG9uZW50cy9lZGdlcy9lZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9jb21wb25lbnRzL2VkZ2VzL2VkZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFpQjVDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxnQkFBZ0I7SUFXcEQsSUFDSSxJQUFJLENBQUMsR0FBYTtRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNqQixJQUFJLEdBQUcsS0FBSyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsa0JBQWtCLENBQUM7WUFDeEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztTQUN0QzthQUFNO1lBQ0gsSUFBSSxDQUFDLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQztZQUN4QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsUUFBUSxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQztJQUNELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBV0QsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUM7SUFDdEUsQ0FBQztJQVFELFlBQW9CLGdCQUFrQyxFQUFVLGFBQTRCO1FBQ3hGLEtBQUssRUFBRSxDQUFDO1FBRFEscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBc0NwRiw2QkFBd0IsR0FBRyxDQUFDLEtBQTZCLEVBQVEsRUFBRTtZQUN2RSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLFVBQVUsRUFBRTtnQkFDbkMsT0FBTzthQUNWO1lBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBb0IsQ0FBQyxDQUFDO1FBQ25GLENBQUMsQ0FBQztJQTVDRixDQUFDO0lBRVEsV0FBVztRQUNoQixJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDaEcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdFLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELGFBQWE7UUFDVCxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4RSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxhQUFhO1FBQ1QsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0UsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sV0FBVztRQUNmLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUM7UUFDdkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUMvRSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQzFHLENBQUM7K0dBekZRLGtCQUFrQjttR0FBbEIsa0JBQWtCLHljQ3RCL0IsMEhBTUE7OzRGRGdCYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0ksY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNO2lIQUd0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFHRixJQUFJO3NCQURQLEtBQUs7Z0JBb0NvQyxTQUFTO3NCQUFsRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRUssYUFBYTtzQkFBekQsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEZXN0cm95Q29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2Fic3RyYWN0L2Rlc3Ryb3kuY29tcG9uZW50JztcbmltcG9ydCB7IERvbUhlbHBlciB9IGZyb20gJy4uLy4uL2V4ZWN1dGlvbi9oZWxwZXJzL2RvbS5oZWxwZXInO1xuaW1wb3J0IHsgRWRnZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9lZGdlLm1vZGVsJztcbmltcG9ydCB7IEVkZ2VUeXBlIH0gZnJvbSAnLi9lZGdlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuLi8uLi9leGVjdXRpb24vZWRpdC5zZXNzaW9uJztcbmltcG9ydCB7IEdlbmVyYWxQcm9wZXJ0aWVzTW9kZWwgfSBmcm9tICcuLi8uLi9jb250ZW50L2Rpc3BsYXktZGF0YS9nZW5lcmFsLXByb3BlcnRpZXMubW9kZWwnO1xuaW1wb3J0IHsgTWFyZ2luTW9kZWwgfSBmcm9tICcuLi8uLi9jb250ZW50L21hcmdpbi5tb2RlbCc7XG5pbXBvcnQgeyBQYWdlVHlwZSB9IGZyb20gJy4vcGFnZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgUmVndWxhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2V4ZWN1dGlvbi9yZWd1bGF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBSZW5kZXJlciB9IGZyb20gJy4uLy4uL2Rpc3BsYXkvcmVuZGVyZXInO1xuaW1wb3J0IHsgU2Vzc2lvbk1vZGVsIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL3RhcmdldGluZy9zZXNzaW9uLm1vZGVsJztcbmltcG9ydCB7IFZpcnR1YWxSZW5kZXJlciB9IGZyb20gJy4uLy4uL2Rpc3BsYXkvdmlydHVhbC5yZW5kZXJlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLW5vZC1lZGdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VkZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydlZGdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTm9kZXJFZGdlQ29tcG9uZW50IGV4dGVuZHMgRGVzdHJveUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgbW9kZWw6IEVkZ2VNb2RlbDtcblxuICAgIEBJbnB1dCgpIGdlbmVyYWxQcm9wZXJ0aWVzOiBHZW5lcmFsUHJvcGVydGllc01vZGVsO1xuXG4gICAgQElucHV0KCkgbWFyZ2luczogTWFyZ2luTW9kZWw7XG5cbiAgICBASW5wdXQoKSB3aWR0aDogbnVtYmVyO1xuXG4gICAgQElucHV0KCkgcGFyZW50U2Vzc2lvbklkOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCB0eXBlKHZhbDogRWRnZVR5cGUpIHtcbiAgICAgICAgdGhpcy5fdHlwZSA9IHZhbDtcbiAgICAgICAgaWYgKHZhbCA9PT0gRWRnZVR5cGUuSGVhZGVyKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlQ2xhc3MgPSAnaGVhZGVyLWVkaXQtbW9kZSc7XG4gICAgICAgICAgICB0aGlzLnR5cGVDb250YWluZXJQb3NpdGlvbiA9ICd0b3AnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lZGl0TW9kZUNsYXNzID0gJ2Zvb3Rlci1lZGl0LW1vZGUnO1xuICAgICAgICAgICAgdGhpcy50eXBlQ29udGFpbmVyUG9zaXRpb24gPSAnYm90dG9tJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdHlwZSgpOiBFZGdlVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlO1xuICAgIH1cbiAgICBwcml2YXRlIF90eXBlOiBFZGdlVHlwZTtcblxuICAgIHNlc3Npb25JZDogbnVtYmVyO1xuXG4gICAgZWRnZVNlc3Npb246IFNlc3Npb25Nb2RlbDtcblxuICAgIGVkaXRNb2RlQ2xhc3M6IHN0cmluZztcblxuICAgIHR5cGVDb250YWluZXJQb3NpdGlvbjogc3RyaW5nO1xuXG4gICAgZ2V0IHNlc3Npb24oKTogRWRpdFNlc3Npb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5lZGdlU2Vzc2lvbi5zZXNzaW9uO1xuICAgIH1cblxuICAgIGdldCByZW5kZXJlcigpOiBSZW5kZXJlciB8IFZpcnR1YWxSZW5kZXJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVkZ2VTZXNzaW9uLnJlbmRlcmVyO1xuICAgIH1cblxuICAgIGdldCBjb250ZW50SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb24uZGlzcGxheURhdGEuZGVmYXVsdFZlcnRpY2FsRGF0YS5jb250ZW50SGVpZ2h0O1xuICAgIH1cblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pIGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdsb2NhdGlvblR5cGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0eXBlQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIHByaXZhdGUgX2hlaWdodDogbnVtYmVyOyAvLyBoZWlnaHQgb2Ygd2hvbGUgY29tcG9uZW50IHVzZWQgdG8gdHJhY2sgaXRzIGNoYW5nZXNcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVndWxhdG9yU2VydmljZTogUmVndWxhdG9yU2VydmljZSwgcHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2Vzc2lvbj8uZGlzcGxheURhdGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigncGFnZXNDb3VudENoYW5nZWQnLCB0aGlzLnBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlcik7XG4gICAgICAgIHRoaXMucmVndWxhdG9yU2VydmljZS5yZW1vdmVTZXNzaW9uKHRoaXMuc2Vzc2lvbklkKTtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkZ2VTZXNzaW9uID0gdGhpcy5yZWd1bGF0b3JTZXJ2aWNlLmFkZEVkZ2VTZXNzaW9uKHRoaXMpO1xuICAgICAgICB0aGlzLnNlc3Npb25JZCA9IHRoaXMuZWRnZVNlc3Npb24uc2Vzc2lvbklkO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLXNlc3Npb24taWQnLCBgJHt0aGlzLnNlc3Npb25JZH1gKTtcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUsICdvdmVyZmxvdycsICdoaWRkZW4nKTtcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMudHlwZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLCAndmlzaWJpbGl0eScsICdoaWRkZW4nKTtcbiAgICAgICAgdGhpcy5hcHBseUhlaWdodCgpO1xuICAgICAgICB0aGlzLnNlc3Npb24uZGlzcGxheURhdGEuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNDb3VudENoYW5nZWQnLCB0aGlzLnBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlcik7XG4gICAgfVxuXG4gICAgZW50ZXJFZGl0TW9kZSgpOiB2b2lkIHtcbiAgICAgICAgRG9tSGVscGVyLmFkZENzc0NsYXNzKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZWRpdE1vZGVDbGFzcyk7XG4gICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLnR5cGVDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZSwgJ3Zpc2liaWxpdHknLCAndmlzaWJsZScpO1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuY2hhbmdlZEVkZ2UodGhpcy5zZXNzaW9uSWQpO1xuICAgIH1cblxuICAgIGxlYXZlRWRpdE1vZGUoKTogdm9pZCB7XG4gICAgICAgIERvbUhlbHBlci5yZW1vdmVDc3NDbGFzcyh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCB0aGlzLmVkaXRNb2RlQ2xhc3MpO1xuICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy50eXBlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUsICd2aXNpYmlsaXR5JywgJ2hpZGRlbicpO1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuY2hhbmdlZEVkZ2UodGhpcy5zZXNzaW9uSWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMuZ2VuZXJhbFByb3BlcnRpZXMubWF4RWRnZUhlaWdodDtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5jb250ZW50SGVpZ2h0ID4gbWF4SGVpZ2h0ID8gbWF4SGVpZ2h0IDogdGhpcy5jb250ZW50SGVpZ2h0O1xuICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy50eXBlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUsIHRoaXMudHlwZUNvbnRhaW5lclBvc2l0aW9uLCBgJHtoZWlnaHR9cHhgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlciA9IChldmVudDogeyBwYWdlSGVpZ2h0OiBudW1iZXIgfSk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5faGVpZ2h0ID09PSBldmVudC5wYWdlSGVpZ2h0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9oZWlnaHQgPSBldmVudC5wYWdlSGVpZ2h0O1xuICAgICAgICB0aGlzLmFwcGx5SGVpZ2h0KCk7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jaGFuZ2VkRWRnZVNpemUodGhpcy50eXBlLCB0aGlzLm1vZGVsLnBhZ2VUeXBlIGFzIFBhZ2VUeXBlKTtcbiAgICB9O1xufVxuIiwiPGRpdlxuICAgICNjb250YWluZXJcbiAgICBjbGFzcz1cImVkaXQtY29udGFpbmVyXCI+PC9kaXY+XG48ZGl2XG4gICAgI2xvY2F0aW9uVHlwZVxuICAgIGNsYXNzPVwibG9jYXRpb24tdHlwZVwiPjwvZGl2PlxuIl19
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29tcG9uZW50cy9lZGdlcy9lZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9jb21wb25lbnRzL2VkZ2VzL2VkZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFZNUMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQWFwRCxJQUNJLElBQUksQ0FBQyxHQUFhO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLElBQUksR0FBRyxLQUFLLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQztZQUN4QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1NBQ3RDO2FBQU07WUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLGtCQUFrQixDQUFDO1lBQ3hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxRQUFRLENBQUM7U0FDekM7SUFDTCxDQUFDO0lBQ0Qs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YUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUMxRyxDQUFDOytHQWxJUSxrQkFBa0I7bUdBQWxCLGtCQUFrQiwrZUN4Qi9CLG1LQVFBOzs0RkRnQmEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNJLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTTtnTEFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUdGLElBQUk7c0JBRFAsS0FBSztnQkF3Q29DLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFSyxhQUFhO3NCQUF6RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgRGVzdHJveUNvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9hYnN0cmFjdC9kZXN0cm95LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb21IZWxwZXIgfSBmcm9tICcuLi8uLi9leGVjdXRpb24vaGVscGVycy9kb20uaGVscGVyJztcbmltcG9ydCB7IEVkZ2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvZWRnZS5tb2RlbCc7XG5pbXBvcnQgeyBFZGdlVHlwZSB9IGZyb20gJy4vZWRnZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyYWN0aW9uL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBHZW5lcmFsUHJvcGVydGllc01vZGVsIH0gZnJvbSAnLi4vLi4vY29udGVudC9kaXNwbGF5LWRhdGEvZ2VuZXJhbC1wcm9wZXJ0aWVzLm1vZGVsJztcbmltcG9ydCB7IE1hcmdpbk1vZGVsIH0gZnJvbSAnLi4vLi4vY29udGVudC9tYXJnaW4ubW9kZWwnO1xuaW1wb3J0IHsgUGFnZVR5cGUgfSBmcm9tICcuL3BhZ2UtdHlwZS5lbnVtJztcbmltcG9ydCB7IFJlZ3VsYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9leGVjdXRpb24vcmVndWxhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVuZGVyZXIgfSBmcm9tICcuLi8uLi9kaXNwbGF5L3JlbmRlcmVyJztcbmltcG9ydCB7IFNlc3Npb25Nb2RlbCB9IGZyb20gJy4uLy4uL2V4ZWN1dGlvbi90YXJnZXRpbmcvc2Vzc2lvbi5tb2RlbCc7XG5pbXBvcnQgeyBWaXJ0dWFsUmVuZGVyZXIgfSBmcm9tICcuLi8uLi9kaXNwbGF5L3ZpcnR1YWwucmVuZGVyZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1ub2QtZWRnZScsXG4gICAgdGVtcGxhdGVVcmw6ICdlZGdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnZWRnZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVyRWRnZUNvbXBvbmVudCBleHRlbmRzIERlc3Ryb3lDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIG1vZGVsOiBFZGdlTW9kZWw7XG5cbiAgICBASW5wdXQoKSBnZW5lcmFsUHJvcGVydGllczogR2VuZXJhbFByb3BlcnRpZXNNb2RlbDtcblxuICAgIEBJbnB1dCgpIG1hcmdpbnM6IE1hcmdpbk1vZGVsO1xuXG4gICAgQElucHV0KCkgd2lkdGg6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpIHBhcmVudFNlc3Npb25JZDogbnVtYmVyO1xuXG4gICAgQElucHV0KCkgaXNFdmVuRWRnZXNFeGlzdDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHR5cGUodmFsOiBFZGdlVHlwZSkge1xuICAgICAgICB0aGlzLl90eXBlID0gdmFsO1xuICAgICAgICBpZiAodmFsID09PSBFZGdlVHlwZS5IZWFkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdE1vZGVDbGFzcyA9ICdoZWFkZXItZWRpdC1tb2RlJztcbiAgICAgICAgICAgIHRoaXMudHlwZUNvbnRhaW5lclBvc2l0aW9uID0gJ3RvcCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRNb2RlQ2xhc3MgPSAnZm9vdGVyLWVkaXQtbW9kZSc7XG4gICAgICAgICAgICB0aGlzLnR5cGVDb250YWluZXJQb3NpdGlvbiA9ICdib3R0b20nO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB0eXBlKCk6IEVkZ2VUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gICAgfVxuICAgIHByaXZhdGUgX3R5cGU6IEVkZ2VUeXBlO1xuXG4gICAgc2Vzc2lvbklkOiBudW1iZXI7XG5cbiAgICBlZGdlU2Vzc2lvbjogU2Vzc2lvbk1vZGVsO1xuXG4gICAgZWRpdE1vZGVDbGFzczogc3RyaW5nO1xuXG4gICAgdHlwZUNvbnRhaW5lclBvc2l0aW9uOiBzdHJpbmc7XG5cbiAgICBlZGdlTmFtZUJ5VHlwZTogc3RyaW5nO1xuXG4gICAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIGdldCBzZXNzaW9uKCk6IEVkaXRTZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRnZVNlc3Npb24uc2Vzc2lvbjtcbiAgICB9XG5cbiAgICBnZXQgcmVuZGVyZXIoKTogUmVuZGVyZXIgfCBWaXJ0dWFsUmVuZGVyZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5lZGdlU2Vzc2lvbi5yZW5kZXJlcjtcbiAgICB9XG5cbiAgICBnZXQgY29udGVudEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmRpc3BsYXlEYXRhLmRlZmF1bHRWZXJ0aWNhbERhdGEuY29udGVudEhlaWdodDtcbiAgICB9XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnbG9jYXRpb25UeXBlJywgeyBzdGF0aWM6IHRydWUgfSkgdHlwZUNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBwcml2YXRlIF9oZWlnaHQ6IG51bWJlcjsgLy8gaGVpZ2h0IG9mIHdob2xlIGNvbXBvbmVudCB1c2VkIHRvIHRyYWNrIGl0cyBjaGFuZ2VzXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWd1bGF0b3JTZXJ2aWNlOiBSZWd1bGF0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2Vzc2lvbj8uZGlzcGxheURhdGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigncGFnZXNDb3VudENoYW5nZWQnLCB0aGlzLnBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlcik7XG4gICAgICAgIHRoaXMucmVndWxhdG9yU2VydmljZS5yZW1vdmVTZXNzaW9uKHRoaXMuc2Vzc2lvbklkKTtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkZ2VTZXNzaW9uID0gdGhpcy5yZWd1bGF0b3JTZXJ2aWNlLmFkZEVkZ2VTZXNzaW9uKHRoaXMpO1xuICAgICAgICB0aGlzLnNlc3Npb25JZCA9IHRoaXMuZWRnZVNlc3Npb24uc2Vzc2lvbklkO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLXNlc3Npb24taWQnLCBgJHt0aGlzLnNlc3Npb25JZH1gKTtcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUsICdvdmVyZmxvdycsICdoaWRkZW4nKTtcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMudHlwZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLCAndmlzaWJpbGl0eScsICdoaWRkZW4nKTtcbiAgICAgICAgdGhpcy5hcHBseUhlaWdodCgpO1xuICAgICAgICB0aGlzLnNlc3Npb24uZGlzcGxheURhdGEuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNDb3VudENoYW5nZWQnLCB0aGlzLnBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlcik7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2UucGlwZShzdGFydFdpdGgobnVsbCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZWRnZU5hbWVCeVR5cGUgPSB0aGlzLmdldEVkZ2VOYW1lQnlUeXBlKCk7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGVudGVyRWRpdE1vZGUoKTogdm9pZCB7XG4gICAgICAgIERvbUhlbHBlci5hZGRDc3NDbGFzcyh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCB0aGlzLmVkaXRNb2RlQ2xhc3MpO1xuICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy50eXBlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUsICd2aXNpYmlsaXR5JywgJ3Zpc2libGUnKTtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmNoYW5nZWRFZGdlKHRoaXMuc2Vzc2lvbklkKTtcbiAgICB9XG5cbiAgICBsZWF2ZUVkaXRNb2RlKCk6IHZvaWQge1xuICAgICAgICBEb21IZWxwZXIucmVtb3ZlQ3NzQ2xhc3ModGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCwgdGhpcy5lZGl0TW9kZUNsYXNzKTtcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMudHlwZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLCAndmlzaWJpbGl0eScsICdoaWRkZW4nKTtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmNoYW5nZWRFZGdlKHRoaXMuc2Vzc2lvbklkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVkZ2VOYW1lQnlUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09IEVkZ2VUeXBlLkhlYWRlcikge1xuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwucGFnZVR5cGUgPT09IFBhZ2VUeXBlLkZpcnN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdOT0RFUi5MQUJFTC5GSVJTVF9QQUdFX0hFQURFUicpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1vZGVsLnBhZ2VUeXBlID09PSBQYWdlVHlwZS5FdmVuKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdOT0RFUi5MQUJFTC5FVkVOX1BBR0VTX0hFQURFUicpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1vZGVsLnBhZ2VUeXBlID09PSBQYWdlVHlwZS5EZWZhdWx0ICYmIHRoaXMuaXNFdmVuRWRnZXNFeGlzdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTk9ERVIuTEFCRUwuT0REX1BBR0VTX0hFQURFUicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdOT0RFUi5MQUJFTC5IRUFERVInKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsLnBhZ2VUeXBlID09PSBQYWdlVHlwZS5GaXJzdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTk9ERVIuTEFCRUwuRklSU1RfUEFHRV9GT09URVInKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlbC5wYWdlVHlwZSA9PT0gUGFnZVR5cGUuRXZlbikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTk9ERVIuTEFCRUwuRVZFTl9QQUdFU19GT09URVInKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlbC5wYWdlVHlwZSA9PT0gUGFnZVR5cGUuRGVmYXVsdCAmJiB0aGlzLmlzRXZlbkVkZ2VzRXhpc3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ05PREVSLkxBQkVMLk9ERF9QQUdFU19GT09URVInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnTk9ERVIuTEFCRUwuRk9PVEVSJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5SGVpZ2h0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtYXhIZWlnaHQgPSB0aGlzLmdlbmVyYWxQcm9wZXJ0aWVzLm1heEVkZ2VIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuY29udGVudEhlaWdodCA+IG1heEhlaWdodCA/IG1heEhlaWdodCA6IHRoaXMuY29udGVudEhlaWdodDtcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMudHlwZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLCB0aGlzLnR5cGVDb250YWluZXJQb3NpdGlvbiwgYCR7aGVpZ2h0fXB4YCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYWdlc0NvdW50Q2hhbmdlZEhhbmRsZXIgPSAoZXZlbnQ6IHsgcGFnZUhlaWdodDogbnVtYmVyIH0pOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2hlaWdodCA9PT0gZXZlbnQucGFnZUhlaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gZXZlbnQucGFnZUhlaWdodDtcbiAgICAgICAgdGhpcy5hcHBseUhlaWdodCgpO1xuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UuY2hhbmdlZEVkZ2VTaXplKHRoaXMudHlwZSwgdGhpcy5tb2RlbC5wYWdlVHlwZSBhcyBQYWdlVHlwZSk7XG4gICAgfTtcbn1cbiIsIjxkaXZcbiAgICAjY29udGFpbmVyXG4gICAgY2xhc3M9XCJlZGl0LWNvbnRhaW5lclwiPjwvZGl2PlxuPGRpdlxuICAgICNsb2NhdGlvblR5cGVcbiAgICBjbGFzcz1cImxvY2F0aW9uLXR5cGVcIj5cbiAgICA8c3Bhbj57eyBlZGdlTmFtZUJ5VHlwZSB9fTwvc3Bhbj5cbjwvZGl2PlxuIl19
@@ -10,15 +10,15 @@ export class Edges {
10
10
  this.headersComponents = [];
11
11
  this.footersComponents = [];
12
12
  this.isEdit = false;
13
+ const isEvenEdgesExist = headers?.some(x => x.pageType === PageType.Even) || footers?.some(x => x.pageType === PageType.Even);
13
14
  if (headers) {
14
15
  const headerMargins = new MarginModel({ ...margins, bottom: 0 });
15
- this.headersComponents = this.createComponents(headers, pageWidth, headerMargins, EdgeType.Header);
16
+ this.headersComponents = this.createComponents(headers, pageWidth, headerMargins, EdgeType.Header, isEvenEdgesExist);
16
17
  }
17
18
  if (footers) {
18
19
  const footerMargins = new MarginModel({ ...margins, top: 0 });
19
- this.footersComponents = this.createComponents(footers, pageWidth, footerMargins, EdgeType.Footer);
20
+ this.footersComponents = this.createComponents(footers, pageWidth, footerMargins, EdgeType.Footer, isEvenEdgesExist);
20
21
  }
21
- this.setEdgeNameToComponents();
22
22
  }
23
23
  getTypeBySessionId(sessionId) {
24
24
  let component = this.headersComponents.find(x => x.instance.sessionId === sessionId);
@@ -73,7 +73,7 @@ export class Edges {
73
73
  const edgeComponents = [...this.headersComponents, ...this.footersComponents];
74
74
  return [...new Set(edgeComponents.map(x => x.instance.model.pageType))];
75
75
  }
76
- createComponents(edgeModels, pageWidth, margins, type) {
76
+ createComponents(edgeModels, pageWidth, margins, type, isEvenEdgesExist) {
77
77
  const resultComponents = [];
78
78
  const hasFirstEdge = edgeModels.some(edge => edge.pageType === PageType.First);
79
79
  for (let model of edgeModels.sort((x, y) => {
@@ -101,7 +101,8 @@ export class Edges {
101
101
  type,
102
102
  width: pageWidth,
103
103
  generalProperties: this.generalProperties,
104
- parentSessionId: this.parentSessionId
104
+ parentSessionId: this.parentSessionId,
105
+ isEvenEdgesExist
105
106
  });
106
107
  resultComponents.push(componentRef);
107
108
  }
@@ -115,28 +116,5 @@ export class Edges {
115
116
  const targetType = page % 2 === 0 ? PageType.Even : PageType.Default;
116
117
  return edgeComponents.find(x => x.instance.model.pageType === targetType) || defaultComponent;
117
118
  }
118
- setEdgeNameToComponents() {
119
- const edgeComponents = [...this.headersComponents, ...this.footersComponents];
120
- if (!edgeComponents.length) {
121
- return;
122
- }
123
- const isEvenEdgesExist = edgeComponents.some(x => x.instance.model.pageType === PageType.Even);
124
- for (let component of edgeComponents) {
125
- component.instance.typeContainer.nativeElement.innerText = this.getEdgeNameByType(component.instance, isEvenEdgesExist);
126
- }
127
- }
128
- getEdgeNameByType(component, isEvenEdgesExist) {
129
- let edgeName = component.type === EdgeType.Header ? 'Header' : 'Footer';
130
- if (component.model.pageType === PageType.First) {
131
- edgeName = `First Page ${edgeName}`;
132
- }
133
- else if (component.model.pageType === PageType.Even) {
134
- edgeName = `Even Pages ${edgeName}`;
135
- }
136
- else if (component.model.pageType === PageType.Default && isEvenEdgesExist) {
137
- edgeName = `Odd Pages ${edgeName}`;
138
- }
139
- return edgeName;
140
- }
141
119
  }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29tcG9uZW50cy9lZGdlcy9lZGdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxNQUFNLE9BQU8sS0FBSztJQU9kLFlBQ1ksZ0JBQWtDLEVBQzFDLE9BQW9CLEVBQ3BCLE9BQW9CLEVBQ3BCLE9BQW9CLEVBQ3BCLFNBQWlCLEVBQ1QsZUFBdUIsRUFDdkIsaUJBQXlDO1FBTnpDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFLbEMsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFDdkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF3QjtRQWJyRCxzQkFBaUIsR0FBdUMsRUFBRSxDQUFDO1FBRTNELHNCQUFpQixHQUF1QyxFQUFFLENBQUM7UUFFM0QsV0FBTSxHQUFHLEtBQUssQ0FBQztRQVdYLElBQUksT0FBTyxFQUFFO1lBQ1QsTUFBTSxhQUFhLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0RztRQUVELElBQUksT0FBTyxFQUFFO1lBQ1QsTUFBTSxhQUFhLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxH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Q0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9GLEtBQUssSUFBSSxTQUFTLElBQUksY0FBYyxFQUFFO1lBQ2xDLFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztTQUMzSDtJQUNMLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxTQUE2QixFQUFFLGdCQUF5QjtRQUM5RSxJQUFJLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ3hFLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLEtBQUssRUFBRTtZQUM3QyxRQUFRLEdBQUcsY0FBYyxRQUFRLEVBQUUsQ0FBQztTQUN2QzthQUFNLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLElBQUksRUFBRTtZQUNuRCxRQUFRLEdBQUcsY0FBYyxRQUFRLEVBQUUsQ0FBQztTQUN2QzthQUFNLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLE9BQU8sSUFBSSxnQkFBZ0IsRUFBRTtZQUMxRSxRQUFRLEdBQUcsYUFBYSxRQUFRLEVBQUUsQ0FBQztTQUN0QztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL3NlcnZpY2VzL2NvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEVkZ2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvZWRnZS5tb2RlbCc7XG5pbXBvcnQgeyBFZGdlVHlwZSB9IGZyb20gJy4vZWRnZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgR2VuZXJhbFByb3BlcnRpZXNNb2RlbCB9IGZyb20gJy4uLy4uL2NvbnRlbnQvZGlzcGxheS1kYXRhL2dlbmVyYWwtcHJvcGVydGllcy5tb2RlbCc7XG5pbXBvcnQgeyBNYXJnaW5Nb2RlbCB9IGZyb20gJy4uLy4uL2NvbnRlbnQvbWFyZ2luLm1vZGVsJztcbmltcG9ydCB7IE5vZGVyRWRnZUNvbXBvbmVudCB9IGZyb20gJy4vZWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZVR5cGUgfSBmcm9tICcuL3BhZ2UtdHlwZS5lbnVtJztcblxuZXhwb3J0IGNsYXNzIEVkZ2VzIHtcbiAgICBoZWFkZXJzQ29tcG9uZW50czogQ29tcG9uZW50UmVmPE5vZGVyRWRnZUNvbXBvbmVudD5bXSA9IFtdO1xuXG4gICAgZm9vdGVyc0NvbXBvbmVudHM6IENvbXBvbmVudFJlZjxOb2RlckVkZ2VDb21wb25lbnQ+W10gPSBbXTtcblxuICAgIGlzRWRpdCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50U2VydmljZTogQ29tcG9uZW50U2VydmljZSxcbiAgICAgICAgaGVhZGVyczogRWRnZU1vZGVsW10sXG4gICAgICAgIGZvb3RlcnM6IEVkZ2VNb2RlbFtdLFxuICAgICAgICBtYXJnaW5zOiBNYXJnaW5Nb2RlbCxcbiAgICAgICAgcGFnZVdpZHRoOiBudW1iZXIsXG4gICAgICAgIHByaXZhdGUgcGFyZW50U2Vzc2lvbklkOiBudW1iZXIsXG4gICAgICAgIHByaXZhdGUgZ2VuZXJhbFByb3BlcnRpZXM6IEdlbmVyYWxQcm9wZXJ0aWVzTW9kZWxcbiAgICApIHtcbiAgICAgICAgaWYgKGhlYWRlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlck1hcmdpbnMgPSBuZXcgTWFyZ2luTW9kZWwoeyAuLi5tYXJnaW5zLCBib3R0b206IDAgfSk7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNDb21wb25lbnRzID0gdGhpcy5jcmVhdGVDb21wb25lbnRzKGhlYWRlcnMsIHBhZ2VXaWR0aCwgaGVhZGVyTWFyZ2lucywgRWRnZVR5cGUuSGVhZGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmb290ZXJzKSB7XG4gICAgICAgICAgICBjb25zdCBmb290ZXJNYXJnaW5zID0gbmV3IE1hcmdpbk1vZGVsKHsgLi4ubWFyZ2lucywgdG9wOiAwIH0pO1xuICAgICAgICAgICAgdGhpcy5mb290ZXJzQ29tcG9uZW50cyA9IHRoaXMuY3JlYXRlQ29tcG9uZW50cyhmb290ZXJzLCBwYWdlV2lkdGgsIGZvb3Rlck1hcmdpbnMsIEVkZ2VUeXBlLkZvb3Rlcik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldEVkZ2VOYW1lVG9Db21wb25lbnRzKCk7XG4gICAgfVxuXG4gICAgZ2V0VHlwZUJ5U2Vzc2lvbklkKHNlc3Npb25JZDogbnVtYmVyKTogeyB0eXBlOiBFZGdlVHlwZTsgcGFnZVR5cGU6IFBhZ2VUeXBlIH0ge1xuICAgICAgICBsZXQgY29tcG9uZW50ID0gdGhpcy5oZWFkZXJzQ29tcG9uZW50cy5maW5kKHggPT4geC5pbnN0YW5jZS5zZXNzaW9uSWQgPT09IHNlc3Npb25JZCk7XG4gICAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IEVkZ2VUeXBlLkhlYWRlciwgcGFnZVR5cGU6IGNvbXBvbmVudC5pbnN0YW5jZS5tb2RlbC5wYWdlVHlwZSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbXBvbmVudCA9IHRoaXMuZm9vdGVyc0NvbXBvbmVudHMuZmluZCh4ID0+IHguaW5zdGFuY2Uuc2Vzc2lvbklkID09PSBzZXNzaW9uSWQpO1xuICAgICAgICByZXR1cm4geyB0eXBlOiBFZGdlVHlwZS5Gb290ZXIsIHBhZ2VUeXBlOiBjb21wb25lbnQuaW5zdGFuY2UubW9kZWwucGFnZVR5cGUgfTtcbiAgICB9XG5cbiAgICBnZXRDb21wb25lbnRCeVBhZ2UocGFnZTogbnVtYmVyLCB0eXBlOiBFZGdlVHlwZSk6IENvbXBvbmVudFJlZjxOb2RlckVkZ2VDb21wb25lbnQ+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IHR5cGUgPT09IEVkZ2VUeXBlLkhlYWRlciA/IHRoaXMuaGVhZGVyc0NvbXBvbmVudHMgOiB0aGlzLmZvb3RlcnNDb21wb25lbnRzO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb21wb25lbnQoY29tcG9uZW50cywgcGFnZSk7XG4gICAgfVxuXG4gICAgZ2V0Q29tcG9uZW50QnlQYWdlVHlwZShwYWdlVHlwZTogUGFnZVR5cGUsIHR5cGU6IEVkZ2VUeXBlKTogQ29tcG9uZW50UmVmPE5vZGVyRWRnZUNvbXBvbmVudD4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnRzID0gdHlwZSA9PT0gRWRnZVR5cGUuSGVhZGVyID8gdGhpcy5oZWFkZXJzQ29tcG9uZW50cyA6IHRoaXMuZm9vdGVyc0NvbXBvbmVudHM7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRzLmZpbmQoeCA9PiB4Lmluc3RhbmNlLm1vZGVsLnBhZ2VUeXBlID09PSBwYWdlVHlwZSk7XG4gICAgfVxuXG4gICAgZ2V0Q29tcG9uZW50SGVpZ2h0QnlQYWdlVHlwZShwYWdlVHlwZTogUGFnZVR5cGUsIHR5cGU6IEVkZ2VUeXBlKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5nZXRDb21wb25lbnRCeVBhZ2VUeXBlKHBhZ2VUeXBlLCB0eXBlKTtcbiAgICAgICAgaWYgKCFjb21wb25lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudC5pbnN0YW5jZS5jb250ZW50SGVpZ2h0ID4gdGhpcy5nZW5lcmFsUHJvcGVydGllcy5tYXhFZGdlSGVpZ2h0XG4gICAgICAgICAgICA/IHRoaXMuZ2VuZXJhbFByb3BlcnRpZXMubWF4RWRnZUhlaWdodFxuICAgICAgICAgICAgOiBjb21wb25lbnQuaW5zdGFuY2UuY29udGVudEhlaWdodDtcbiAgICB9XG5cbiAgICBnZXRDb21wb25lbnRIZWlnaHQoaW5zdGFuY2U6IE5vZGVyRWRnZUNvbXBvbmVudCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IGluc3RhbmNlLmNvbnRlbnRIZWlnaHQ7XG4gICAgICAgIHJldHVybiBoZWlnaHQgPiB0aGlzLmdlbmVyYWxQcm9wZXJ0aWVzLm1heEVkZ2VIZWlnaHQgPyB0aGlzLmdlbmVyYWxQcm9wZXJ0aWVzLm1heEVkZ2VIZWlnaHQgOiBoZWlnaHQ7XG4gICAgfVxuXG4gICAgZ2V0Q29tcG9uZW50SGVpZ2h0QnlUeXBlKHBhZ2VUeXBlOiBQYWdlVHlwZSwgdHlwZTogRWRnZVR5cGUpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBjb21wb25lbnRzID0gdHlwZSA9PT0gRWRnZVR5cGUuSGVhZGVyID8gdGhpcy5oZWFkZXJzQ29tcG9uZW50cyA6IHRoaXMuZm9vdGVyc0NvbXBvbmVudHM7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IGNvbXBvbmVudHMuZmluZCh4ID0+IHguaW5zdGFuY2UubW9kZWwucGFnZVR5cGUgPT09IHBhZ2VUeXBlKT8uaW5zdGFuY2UuY29udGVudEhlaWdodCA/PyAwO1xuICAgICAgICByZXR1cm4gaGVpZ2h0ID4gdGhpcy5nZW5lcmFsUHJvcGVydGllcy5tYXhFZGdlSGVpZ2h0ID8gdGhpcy5nZW5lcmFsUHJvcGVydGllcy5tYXhFZGdlSGVpZ2h0IDogaGVpZ2h0O1xuICAgIH1cblxuICAgIHRvZ2dsZUVkaXRNb2RlKGlzRWRpdDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0VkaXQgPT09IGlzRWRpdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNFZGl0ID0gaXNFZGl0O1xuICAgICAgICBjb25zdCBlZGdlQ29tcG9uZW50cyA9IFsuLi50aGlzLmhlYWRlcnNDb21wb25lbnRzLCAuLi50aGlzLmZvb3RlcnNDb21wb25lbnRzXTtcbiAgICAgICAgZm9yIChsZXQgY29tcG9uZW50IG9mIGVkZ2VDb21wb25lbnRzKSB7XG4gICAgICAgICAgICBpZiAoaXNFZGl0KSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmVudGVyRWRpdE1vZGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmxlYXZlRWRpdE1vZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFVuaXF1ZVBhZ2VUeXBlcygpOiBQYWdlVHlwZVtdIHtcbiAgICAgICAgY29uc3QgZWRnZUNvbXBvbmVudHMgPSBbLi4udGhpcy5oZWFkZXJzQ29tcG9uZW50cywgLi4udGhpcy5mb290ZXJzQ29tcG9uZW50c107XG4gICAgICAgIHJldHVybiBbLi4ubmV3IFNldChlZGdlQ29tcG9uZW50cy5tYXAoeCA9PiB4Lmluc3RhbmNlLm1vZGVsLnBhZ2VUeXBlKSldO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50cyhcbiAgICAgICAgZWRnZU1vZGVsczogRWRnZU1vZGVsW10sXG4gICAgICAgIHBhZ2VXaWR0aDogbnVtYmVyLFxuICAgICAgICBtYXJnaW5zOiBNYXJnaW5Nb2RlbCxcbiAgICAgICAgdHlwZTogRWRnZVR5cGVcbiAgICApOiBDb21wb25lbnRSZWY8Tm9kZXJFZGdlQ29tcG9uZW50PltdIHtcbiAgICAgICAgY29uc3QgcmVzdWx0Q29tcG9uZW50cyA9IFtdO1xuICAgICAgICBjb25zdCBoYXNGaXJzdEVkZ2UgPSBlZGdlTW9kZWxzLnNvbWUoZWRnZSA9PiBlZGdlLnBhZ2VUeXBlID09PSBQYWdlVHlwZS5GaXJzdCk7XG4gICAgICAgIGZvciAobGV0IG1vZGVsIG9mIGVkZ2VNb2RlbHMuc29ydCgoeCwgeSkgPT4ge1xuICAgICAgICAgICAgaWYgKGhhc0ZpcnN0RWRnZSkge1xuICAgICAgICAgICAgICAgIGlmICh4LnBhZ2VUeXBlID09PSBQYWdlVHlwZS5GaXJzdCkgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgIGlmICh5LnBhZ2VUeXBlID09PSBQYWdlVHlwZS5GaXJzdCkgcmV0dXJuIDE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh4LnBhZ2VUeXBlID09PSBQYWdlVHlwZS5EZWZhdWx0KSByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgaWYgKHkucGFnZVR5cGUgPT09IFBhZ2VUeXBlLkRlZmF1bHQpIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHgucGFnZVR5cGUgPT09IFBhZ2VUeXBlLkV2ZW4pIHJldHVybiAtMTtcbiAgICAgICAgICAgIGlmICh5LnBhZ2VUeXBlID09PSBQYWdlVHlwZS5FdmVuKSByZXR1cm4gMTtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9KSkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQ29tcG9uZW50KE5vZGVyRWRnZUNvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgICAgICAgIG1hcmdpbnMsXG4gICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICB3aWR0aDogcGFnZVdpZHRoLFxuICAgICAgICAgICAgICAgIGdlbmVyYWxQcm9wZXJ0aWVzOiB0aGlzLmdlbmVyYWxQcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgIHBhcmVudFNlc3Npb25JZDogdGhpcy5wYXJlbnRTZXNzaW9uSWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVzdWx0Q29tcG9uZW50cy5wdXNoKGNvbXBvbmVudFJlZik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0Q29tcG9uZW50cztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbXBvbmVudChlZGdlQ29tcG9uZW50czogQ29tcG9uZW50UmVmPE5vZGVyRWRnZUNvbXBvbmVudD5bXSwgcGFnZTogbnVtYmVyKTogQ29tcG9uZW50UmVmPE5vZGVyRWRnZUNvbXBvbmVudD4ge1xuICAgICAgICBjb25zdCBkZWZhdWx0Q29tcG9uZW50ID0gZWRnZUNvbXBvbmVudHMuZmluZCh4ID0+IHguaW5zdGFuY2UubW9kZWwucGFnZVR5cGUgPT09IFBhZ2VUeXBlLkRlZmF1bHQpO1xuICAgICAgICBpZiAocGFnZSA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGVkZ2VDb21wb25lbnRzLmZpbmQoeCA9PiB4Lmluc3RhbmNlLm1vZGVsLnBhZ2VUeXBlID09PSBQYWdlVHlwZS5GaXJzdCkgfHwgZGVmYXVsdENvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhcmdldFR5cGUgPSBwYWdlICUgMiA9PT0gMCA/IFBhZ2VUeXBlLkV2ZW4gOiBQYWdlVHlwZS5EZWZhdWx0O1xuICAgICAgICByZXR1cm4gZWRnZUNvbXBvbmVudHMuZmluZCh4ID0+IHguaW5zdGFuY2UubW9kZWwucGFnZVR5cGUgPT09IHRhcmdldFR5cGUpIHx8IGRlZmF1bHRDb21wb25lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRFZGdlTmFtZVRvQ29tcG9uZW50cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWRnZUNvbXBvbmVudHMgPSBbLi4udGhpcy5oZWFkZXJzQ29tcG9uZW50cywgLi4udGhpcy5mb290ZXJzQ29tcG9uZW50c107XG4gICAgICAgIGlmICghZWRnZUNvbXBvbmVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0V2ZW5FZGdlc0V4aXN0ID0gZWRnZUNvbXBvbmVudHMuc29tZSh4ID0+IHguaW5zdGFuY2UubW9kZWwucGFnZVR5cGUgPT09IFBhZ2VUeXBlLkV2ZW4pO1xuICAgICAgICBmb3IgKGxldCBjb21wb25lbnQgb2YgZWRnZUNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS50eXBlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0ID0gdGhpcy5nZXRFZGdlTmFtZUJ5VHlwZShjb21wb25lbnQuaW5zdGFuY2UsIGlzRXZlbkVkZ2VzRXhpc3QpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFZGdlTmFtZUJ5VHlwZShjb21wb25lbnQ6IE5vZGVyRWRnZUNvbXBvbmVudCwgaXNFdmVuRWRnZXNFeGlzdDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgICAgIGxldCBlZGdlTmFtZSA9IGNvbXBvbmVudC50eXBlID09PSBFZGdlVHlwZS5IZWFkZXIgPyAnSGVhZGVyJyA6ICdGb290ZXInO1xuICAgICAgICBpZiAoY29tcG9uZW50Lm1vZGVsLnBhZ2VUeXBlID09PSBQYWdlVHlwZS5GaXJzdCkge1xuICAgICAgICAgICAgZWRnZU5hbWUgPSBgRmlyc3QgUGFnZSAke2VkZ2VOYW1lfWA7XG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50Lm1vZGVsLnBhZ2VUeXBlID09PSBQYWdlVHlwZS5FdmVuKSB7XG4gICAgICAgICAgICBlZGdlTmFtZSA9IGBFdmVuIFBhZ2VzICR7ZWRnZU5hbWV9YDtcbiAgICAgICAgfSBlbHNlIGlmIChjb21wb25lbnQubW9kZWwucGFnZVR5cGUgPT09IFBhZ2VUeXBlLkRlZmF1bHQgJiYgaXNFdmVuRWRnZXNFeGlzdCkge1xuICAgICAgICAgICAgZWRnZU5hbWUgPSBgT2RkIFBhZ2VzICR7ZWRnZU5hbWV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlZGdlTmFtZTtcbiAgICB9XG59XG4iXX0=
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29tcG9uZW50cy9lZGdlcy9lZGdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxNQUFNLE9BQU8sS0FBSztJQU9kLFlBQ1ksZ0JBQWtDLEVBQzFDLE9BQW9CLEVBQ3BCLE9BQW9CLEVBQ3BCLE9BQW9CLEVBQ3BCLFNBQWlCLEVBQ1QsZUFBdUIsRUFDdkIsaUJBQXlDO1FBTnpDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFLbEMsb0JBQWUsR0FBZixlQUFlLENBQVE7UUFDdkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF3QjtRQWJyRCxzQkFBaUIsR0FBdUMsRUFBRSxDQUFDO1FBRTNELHNCQUFpQixHQUF1QyxFQUFFLENBQUM7UUFFM0QsV0FBTSxHQUFHLEtBQUssQ0FBQztRQVdYLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5SCxJQUFJLE9BQU8sRUFBRTtZQUNULE1BQU0sYUFBYSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFF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VSxDQUFDLElBQUksZ0JBQWdCLENBQUM7SUFDbEcsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvc2VydmljZXMvY29tcG9uZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRnZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9lZGdlLm1vZGVsJztcbmltcG9ydCB7IEVkZ2VUeXBlIH0gZnJvbSAnLi9lZGdlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBHZW5lcmFsUHJvcGVydGllc01vZGVsIH0gZnJvbSAnLi4vLi4vY29udGVudC9kaXNwbGF5LWRhdGEvZ2VuZXJhbC1wcm9wZXJ0aWVzLm1vZGVsJztcbmltcG9ydCB7IE1hcmdpbk1vZGVsIH0gZnJvbSAnLi4vLi4vY29udGVudC9tYXJnaW4ubW9kZWwnO1xuaW1wb3J0IHsgTm9kZXJFZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9lZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlVHlwZSB9IGZyb20gJy4vcGFnZS10eXBlLmVudW0nO1xuXG5leHBvcnQgY2xhc3MgRWRnZXMge1xuICAgIGhlYWRlcnNDb21wb25lbnRzOiBDb21wb25lbnRSZWY8Tm9kZXJFZGdlQ29tcG9uZW50PltdID0gW107XG5cbiAgICBmb290ZXJzQ29tcG9uZW50czogQ29tcG9uZW50UmVmPE5vZGVyRWRnZUNvbXBvbmVudD5bXSA9IFtdO1xuXG4gICAgaXNFZGl0ID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRTZXJ2aWNlOiBDb21wb25lbnRTZXJ2aWNlLFxuICAgICAgICBoZWFkZXJzOiBFZGdlTW9kZWxbXSxcbiAgICAgICAgZm9vdGVyczogRWRnZU1vZGVsW10sXG4gICAgICAgIG1hcmdpbnM6IE1hcmdpbk1vZGVsLFxuICAgICAgICBwYWdlV2lkdGg6IG51bWJlcixcbiAgICAgICAgcHJpdmF0ZSBwYXJlbnRTZXNzaW9uSWQ6IG51bWJlcixcbiAgICAgICAgcHJpdmF0ZSBnZW5lcmFsUHJvcGVydGllczogR2VuZXJhbFByb3BlcnRpZXNNb2RlbFxuICAgICkge1xuICAgICAgICBjb25zdCBpc0V2ZW5FZGdlc0V4aXN0ID0gaGVhZGVycz8uc29tZSh4ID0+IHgucGFnZVR5cGUgPT09IFBhZ2VUeXBlLkV2ZW4pIHx8IGZvb3RlcnM/LnNvbWUoeCA9PiB4LnBhZ2VUeXBlID09PSBQYWdlVHlwZS5FdmVuKTtcbiAgICAgICAgaWYgKGhlYWRlcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGhlYWRlck1hcmdpbnMgPSBuZXcgTWFyZ2luTW9kZWwoeyAuLi5tYXJnaW5zLCBib3R0b206IDAgfSk7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNDb21wb25lbnRzID0gdGhpcy5jcmVhdGVDb21wb25lbnRzKGhlYWRlcnMsIHBhZ2VXaWR0aCwgaGVhZGVyTWFyZ2lucywgRWRnZVR5cGUuSGVhZGVyLCBpc0V2ZW5FZGdlc0V4aXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmb290ZXJzKSB7XG4gICAgICAgICAgICBjb25zdCBmb290ZXJNYXJnaW5zID0gbmV3IE1hcmdpbk1vZGVsKHsgLi4ubWFyZ2lucywgdG9wOiAwIH0pO1xuICAgICAgICAgICAgdGhpcy5mb290ZXJzQ29tcG9uZW50cyA9IHRoaXMuY3JlYXRlQ29tcG9uZW50cyhmb290ZXJzLCBwYWdlV2lkdGgsIGZvb3Rlck1hcmdpbnMsIEVkZ2VUeXBlLkZvb3RlciwgaXNFdmVuRWRnZXNFeGlzdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRUeXBlQnlTZXNzaW9uSWQoc2Vzc2lvbklkOiBudW1iZXIpOiB7IHR5cGU6IEVkZ2VUeXBlOyBwYWdlVHlwZTogUGFnZVR5cGUgfSB7XG4gICAgICAgIGxldCBjb21wb25lbnQgPSB0aGlzLmhlYWRlcnNDb21wb25lbnRzLmZpbmQoeCA9PiB4Lmluc3RhbmNlLnNlc3Npb25JZCA9PT0gc2Vzc2lvbklkKTtcbiAgICAgICAgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgdHlwZTogRWRnZVR5cGUuSGVhZGVyLCBwYWdlVHlwZTogY29tcG9uZW50Lmluc3RhbmNlLm1vZGVsLnBhZ2VUeXBlIH07XG4gICAgICAgIH1cbiAgICAgICAgY29tcG9uZW50ID0gdGhpcy5mb290ZXJzQ29tcG9uZW50cy5maW5kKHggPT4geC5pbnN0YW5jZS5zZXNzaW9uSWQgPT09IHNlc3Npb25JZCk7XG4gICAgICAgIHJldHVybiB7IHR5cGU6IEVkZ2VUeXBlLkZvb3RlciwgcGFnZVR5cGU6IGNvbXBvbmVudC5pbnN0YW5jZS5tb2RlbC5wYWdlVHlwZSB9O1xuICAgIH1cblxuICAgIGdldENvbXBvbmVudEJ5UGFnZShwYWdlOiBudW1iZXIsIHR5cGU6IEVkZ2VUeXBlKTogQ29tcG9uZW50UmVmPE5vZGVyRWRnZUNvbXBvbmVudD4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnRzID0gdHlwZSA9PT0gRWRnZVR5cGUuSGVhZGVyID8gdGhpcy5oZWFkZXJzQ29tcG9uZW50cyA6IHRoaXMuZm9vdGVyc0NvbXBvbmVudHM7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbXBvbmVudChjb21wb25lbnRzLCBwYWdlKTtcbiAgICB9XG5cbiAgICBnZXRDb21wb25lbnRCeVBhZ2VUeXBlKHBhZ2VUeXBlOiBQYWdlVHlwZSwgdHlwZTogRWRnZVR5cGUpOiBDb21wb25lbnRSZWY8Tm9kZXJFZGdlQ29tcG9uZW50PiB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudHMgPSB0eXBlID09PSBFZGdlVHlwZS5IZWFkZXIgPyB0aGlzLmhlYWRlcnNDb21wb25lbnRzIDogdGhpcy5mb290ZXJzQ29tcG9uZW50cztcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudHMuZmluZCh4ID0+IHguaW5zdGFuY2UubW9kZWwucGFnZVR5cGUgPT09IHBhZ2VUeXBlKTtcbiAgICB9XG5cbiAgICBnZXRDb21wb25lbnRIZWlnaHRCeVBhZ2VUeXBlKHBhZ2VUeXBlOiBQYWdlVHlwZSwgdHlwZTogRWRnZVR5cGUpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmdldENvbXBvbmVudEJ5UGFnZVR5cGUocGFnZVR5cGUsIHR5cGUpO1xuICAgICAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tcG9uZW50Lmluc3RhbmNlLmNvbnRlbnRIZWlnaHQgPiB0aGlzLmdlbmVyYWxQcm9wZXJ0aWVzLm1heEVkZ2VIZWlnaHRcbiAgICAgICAgICAgID8gdGhpcy5nZW5lcmFsUHJvcGVydGllcy5tYXhFZGdlSGVpZ2h0XG4gICAgICAgICAgICA6IGNvbXBvbmVudC5pbnN0YW5jZS5jb250ZW50SGVpZ2h0O1xuICAgIH1cblxuICAgIGdldENvbXBvbmVudEhlaWdodChpbnN0YW5jZTogTm9kZXJFZGdlQ29tcG9uZW50KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gaW5zdGFuY2UuY29udGVudEhlaWdodDtcbiAgICAgICAgcmV0dXJuIGhlaWdodCA+IHRoaXMuZ2VuZXJhbFByb3BlcnRpZXMubWF4RWRnZUhlaWdodCA/IHRoaXMuZ2VuZXJhbFByb3BlcnRpZXMubWF4RWRnZUhlaWdodCA6IGhlaWdodDtcbiAgICB9XG5cbiAgICBnZXRDb21wb25lbnRIZWlnaHRCeVR5cGUocGFnZVR5cGU6IFBhZ2VUeXBlLCB0eXBlOiBFZGdlVHlwZSk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudHMgPSB0eXBlID09PSBFZGdlVHlwZS5IZWFkZXIgPyB0aGlzLmhlYWRlcnNDb21wb25lbnRzIDogdGhpcy5mb290ZXJzQ29tcG9uZW50cztcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gY29tcG9uZW50cy5maW5kKHggPT4geC5pbnN0YW5jZS5tb2RlbC5wYWdlVHlwZSA9PT0gcGFnZVR5cGUpPy5pbnN0YW5jZS5jb250ZW50SGVpZ2h0ID8/IDA7XG4gICAgICAgIHJldHVybiBoZWlnaHQgPiB0aGlzLmdlbmVyYWxQcm9wZXJ0aWVzLm1heEVkZ2VIZWlnaHQgPyB0aGlzLmdlbmVyYWxQcm9wZXJ0aWVzLm1heEVkZ2VIZWlnaHQgOiBoZWlnaHQ7XG4gICAgfVxuXG4gICAgdG9nZ2xlRWRpdE1vZGUoaXNFZGl0OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRWRpdCA9PT0gaXNFZGl0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0VkaXQgPSBpc0VkaXQ7XG4gICAgICAgIGNvbnN0IGVkZ2VDb21wb25lbnRzID0gWy4uLnRoaXMuaGVhZGVyc0NvbXBvbmVudHMsIC4uLnRoaXMuZm9vdGVyc0NvbXBvbmVudHNdO1xuICAgICAgICBmb3IgKGxldCBjb21wb25lbnQgb2YgZWRnZUNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIGlmIChpc0VkaXQpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuZW50ZXJFZGl0TW9kZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UubGVhdmVFZGl0TW9kZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0VW5pcXVlUGFnZVR5cGVzKCk6IFBhZ2VUeXBlW10ge1xuICAgICAgICBjb25zdCBlZGdlQ29tcG9uZW50cyA9IFsuLi50aGlzLmhlYWRlcnNDb21wb25lbnRzLCAuLi50aGlzLmZvb3RlcnNDb21wb25lbnRzXTtcbiAgICAgICAgcmV0dXJuIFsuLi5uZXcgU2V0KGVkZ2VDb21wb25lbnRzLm1hcCh4ID0+IHguaW5zdGFuY2UubW9kZWwucGFnZVR5cGUpKV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDb21wb25lbnRzKFxuICAgICAgICBlZGdlTW9kZWxzOiBFZGdlTW9kZWxbXSxcbiAgICAgICAgcGFnZVdpZHRoOiBudW1iZXIsXG4gICAgICAgIG1hcmdpbnM6IE1hcmdpbk1vZGVsLFxuICAgICAgICB0eXBlOiBFZGdlVHlwZSxcbiAgICAgICAgaXNFdmVuRWRnZXNFeGlzdDogYm9vbGVhblxuICAgICk6IENvbXBvbmVudFJlZjxOb2RlckVkZ2VDb21wb25lbnQ+W10ge1xuICAgICAgICBjb25zdCByZXN1bHRDb21wb25lbnRzID0gW107XG4gICAgICAgIGNvbnN0IGhhc0ZpcnN0RWRnZSA9IGVkZ2VNb2RlbHMuc29tZShlZGdlID0+IGVkZ2UucGFnZVR5cGUgPT09IFBhZ2VUeXBlLkZpcnN0KTtcbiAgICAgICAgZm9yIChsZXQgbW9kZWwgb2YgZWRnZU1vZGVscy5zb3J0KCh4LCB5KSA9PiB7XG4gICAgICAgICAgICBpZiAoaGFzRmlyc3RFZGdlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHgucGFnZVR5cGUgPT09IFBhZ2VUeXBlLkZpcnN0KSByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgaWYgKHkucGFnZVR5cGUgPT09IFBhZ2VUeXBlLkZpcnN0KSByZXR1cm4gMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHgucGFnZVR5cGUgPT09IFBhZ2VUeXBlLkRlZmF1bHQpIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICBpZiAoeS5wYWdlVHlwZSA9PT0gUGFnZVR5cGUuRGVmYXVsdCkgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoeC5wYWdlVHlwZSA9PT0gUGFnZVR5cGUuRXZlbikgcmV0dXJuIC0xO1xuICAgICAgICAgICAgaWYgKHkucGFnZVR5cGUgPT09IFBhZ2VUeXBlLkV2ZW4pIHJldHVybiAxO1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH0pKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZ2VuZXJhdGVDb21wb25lbnQoTm9kZXJFZGdlQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgICAgICAgbWFyZ2lucyxcbiAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgIHdpZHRoOiBwYWdlV2lkdGgsXG4gICAgICAgICAgICAgICAgZ2VuZXJhbFByb3BlcnRpZXM6IHRoaXMuZ2VuZXJhbFByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgcGFyZW50U2Vzc2lvbklkOiB0aGlzLnBhcmVudFNlc3Npb25JZCxcbiAgICAgICAgICAgICAgICBpc0V2ZW5FZGdlc0V4aXN0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlc3VsdENvbXBvbmVudHMucHVzaChjb21wb25lbnRSZWYpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdENvbXBvbmVudHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb21wb25lbnQoZWRnZUNvbXBvbmVudHM6IENvbXBvbmVudFJlZjxOb2RlckVkZ2VDb21wb25lbnQ+W10sIHBhZ2U6IG51bWJlcik6IENvbXBvbmVudFJlZjxOb2RlckVkZ2VDb21wb25lbnQ+IHtcbiAgICAgICAgY29uc3QgZGVmYXVsdENvbXBvbmVudCA9IGVkZ2VDb21wb25lbnRzLmZpbmQoeCA9PiB4Lmluc3RhbmNlLm1vZGVsLnBhZ2VUeXBlID09PSBQYWdlVHlwZS5EZWZhdWx0KTtcbiAgICAgICAgaWYgKHBhZ2UgPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBlZGdlQ29tcG9uZW50cy5maW5kKHggPT4geC5pbnN0YW5jZS5tb2RlbC5wYWdlVHlwZSA9PT0gUGFnZVR5cGUuRmlyc3QpIHx8IGRlZmF1bHRDb21wb25lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YXJnZXRUeXBlID0gcGFnZSAlIDIgPT09IDAgPyBQYWdlVHlwZS5FdmVuIDogUGFnZVR5cGUuRGVmYXVsdDtcbiAgICAgICAgcmV0dXJuIGVkZ2VDb21wb25lbnRzLmZpbmQoeCA9PiB4Lmluc3RhbmNlLm1vZGVsLnBhZ2VUeXBlID09PSB0YXJnZXRUeXBlKSB8fCBkZWZhdWx0Q29tcG9uZW50O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,11 +1,11 @@
1
1
  export class ExternalElementModel {
2
- constructor(name, title, icon, type, componentType, factoryMethod) {
3
- this.name = name;
4
- this.title = title;
2
+ constructor(nameTranslate = 'NODER.LABEL.NONE', nameId = 'none', icon, type, componentType, factoryMethod) {
3
+ this.nameTranslate = nameTranslate;
4
+ this.nameId = nameId;
5
5
  this.icon = icon;
6
6
  this.type = type;
7
7
  this.componentType = componentType;
8
8
  this.factoryMethod = factoryMethod;
9
9
  }
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtZWxlbWVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2V4dGVybmFsLWVsZW1lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixZQUNXLElBQVksRUFDWixLQUFhLEVBQ2IsSUFBWSxFQUNaLElBQVksRUFDWixhQUF1QyxFQUN2QyxhQUEyRjtRQUwzRixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBQ3ZDLGtCQUFhLEdBQWIsYUFBYSxDQUE4RTtJQUNuRyxDQUFDO0NBQ1AiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VOb2RlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NoYXJlZC9hYnN0cmFjdC9iYXNlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBFeHRlcm5hbEVsZW1lbnRNb2RlbCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgaWNvbjogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgdHlwZTogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgY29tcG9uZW50VHlwZTogVHlwZTxCYXNlTm9kZXJDb21wb25lbnQ+LFxuICAgICAgICBwdWJsaWMgZmFjdG9yeU1ldGhvZDogKCkgPT4gUHJvbWlzZTx7IGd1aWQ6IHN0cmluZzsgdHlwZTogbnVtYmVyOyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9PlxuICAgICkge31cbn1cbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtZWxlbWVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2V4dGVybmFsLWVsZW1lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixZQUNXLGdCQUF3QixrQkFBa0IsRUFDMUMsU0FBaUIsTUFBTSxFQUN2QixJQUFZLEVBQ1osSUFBWSxFQUNaLGFBQXVDLEVBQ3ZDLGFBQTJGO1FBTDNGLGtCQUFhLEdBQWIsYUFBYSxDQUE2QjtRQUMxQyxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUN2QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxrQkFBYSxHQUFiLGFBQWEsQ0FBOEU7SUFDbkcsQ0FBQztDQUNQIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlTm9kZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWJzdHJhY3QvYmFzZS5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxFbGVtZW50TW9kZWwge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbmFtZVRyYW5zbGF0ZTogc3RyaW5nID0gJ05PREVSLkxBQkVMLk5PTkUnLFxuICAgICAgICBwdWJsaWMgbmFtZUlkOiBzdHJpbmcgPSAnbm9uZScsXG4gICAgICAgIHB1YmxpYyBpY29uOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyB0eXBlOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBjb21wb25lbnRUeXBlOiBUeXBlPEJhc2VOb2RlckNvbXBvbmVudD4sXG4gICAgICAgIHB1YmxpYyBmYWN0b3J5TWV0aG9kOiAoKSA9PiBQcm9taXNlPHsgZ3VpZDogc3RyaW5nOyB0eXBlOiBudW1iZXI7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0+XG4gICAgKSB7fVxufVxuIl19
@@ -10,18 +10,6 @@ export class ComponentService {
10
10
  this.attachComponent(appendTo, componentRef);
11
11
  return componentRef;
12
12
  }
13
- generateComponents(component, contents, predicate) {
14
- const properties = contents.map(predicate);
15
- return this.generateComponentsByProperties(component, properties);
16
- }
17
- generateComponentsByProperties(component, componentProps) {
18
- const components = [];
19
- componentProps.forEach(x => {
20
- const componentRef = this.generateComponent(component, x);
21
- components.push(componentRef);
22
- });
23
- return components;
24
- }
25
13
  generateComponent(component, componentProps) {
26
14
  const componentRef = this.createComponent(component, componentProps);
27
15
  componentRef.instance.initialize();
@@ -61,4 +49,4 @@ export class ComponentService {
61
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComponentService, decorators: [{
62
50
  type: Injectable
63
51
  }], ctorParameters: () => [{ type: i0.ApplicationRef }, { type: i0.Injector }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29tcG9uZW50cy9zaGFyZWQvc2VydmljZXMvY29tcG9uZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQyxlQUFlLEVBQW1CLFVBQVUsRUFBa0IsTUFBTSxlQUFlLENBQUM7O0FBUTNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFBb0IsY0FBOEIsRUFBVSxRQUFrQjtRQUExRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQztJQUVsRiwwQkFBMEIsQ0FBSSxRQUFpQixFQUFFLFNBQWtCLEVBQUUsY0FBc0I7UUFDdkYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUM3QyxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQsa0JBQWtCLENBQUksU0FBa0IsRUFBRSxRQUF5QixFQUFFLFNBQW1DO1FBQ3BHLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsOEJBQThCLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCw4QkFBOEIsQ0FBSSxTQUFrQixFQUFFLGNBQXdCO1FBQzFFLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUV0QixjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUQsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxpQkFBaUIsQ0FBSSxTQUFrQixFQUFFLGNBQXNCO1FBQzNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3BFLFlBQVksQ0FBQyxRQUErQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzNELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxlQUFlLENBQUksU0FBa0IsRUFBRSxjQUF1QjtRQUMxRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsU0FBUyxFQUFFO1lBQzVDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUTtZQUNqRCxlQUFlLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDakMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxlQUFlLENBQUksUUFBb0MsRUFBRSxZQUE2QjtRQUNsRixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsTUFBTSxPQUFPLEdBQUksWUFBWSxDQUFDLFFBQWlDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUM1RixRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCx1QkFBdUIsQ0FBSSxRQUFvQyxFQUFFLFlBQTZCO1FBQzFGLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxNQUFNLE9BQU8sR0FBSSxZQUFZLENBQUMsUUFBaUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1FBQzVGLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQW9CLENBQUMsQ0FBQztRQUNoRCxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxlQUFlLENBQUksWUFBNkI7UUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBa0I7UUFDM0MsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN0RSxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQzsrR0E5RFEsZ0JBQWdCO21IQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgQ29tcG9uZW50UmVmLCBjcmVhdGVDb21wb25lbnQsIEVtYmVkZGVkVmlld1JlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZU5vZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QvYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tQ29udGVudCB9IGZyb20gJy4uL2N1c3RvbS1jb250ZW50JztcblxudHlwZSBQcmVkaWNhdGU8VD4gPSAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIG9iajogVFtdKSA9PiBvYmplY3Q7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHt9XG5cbiAgICBnZW5lcmF0ZUFuZEF0dGFjaENvbXBvbmVudDxUPihhcHBlbmRUbzogRWxlbWVudCwgY29tcG9uZW50OiBUeXBlPFQ+LCBjb21wb25lbnRQcm9wczogb2JqZWN0KTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5nZW5lcmF0ZUNvbXBvbmVudChjb21wb25lbnQsIGNvbXBvbmVudFByb3BzKTtcbiAgICAgICAgdGhpcy5hdHRhY2hDb21wb25lbnQoYXBwZW5kVG8sIGNvbXBvbmVudFJlZik7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gICAgfVxuXG4gICAgZ2VuZXJhdGVDb21wb25lbnRzPFQ+KGNvbXBvbmVudDogVHlwZTxUPiwgY29udGVudHM6IEN1c3RvbUNvbnRlbnRbXSwgcHJlZGljYXRlOiBQcmVkaWNhdGU8Q3VzdG9tQ29udGVudD4pOiBDb21wb25lbnRSZWY8VD5bXSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBjb250ZW50cy5tYXAocHJlZGljYXRlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVDb21wb25lbnRzQnlQcm9wZXJ0aWVzKGNvbXBvbmVudCwgcHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2VuZXJhdGVDb21wb25lbnRzQnlQcm9wZXJ0aWVzPFQ+KGNvbXBvbmVudDogVHlwZTxUPiwgY29tcG9uZW50UHJvcHM6IG9iamVjdFtdKTogQ29tcG9uZW50UmVmPFQ+W10ge1xuICAgICAgICBjb25zdCBjb21wb25lbnRzID0gW107XG5cbiAgICAgICAgY29tcG9uZW50UHJvcHMuZm9yRWFjaCh4ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuZ2VuZXJhdGVDb21wb25lbnQoY29tcG9uZW50LCB4KTtcbiAgICAgICAgICAgIGNvbXBvbmVudHMucHVzaChjb21wb25lbnRSZWYpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gY29tcG9uZW50cztcbiAgICB9XG5cbiAgICBnZW5lcmF0ZUNvbXBvbmVudDxUPihjb21wb25lbnQ6IFR5cGU8VD4sIGNvbXBvbmVudFByb3BzOiBvYmplY3QpOiBDb21wb25lbnRSZWY8VD4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQsIGNvbXBvbmVudFByb3BzKTtcbiAgICAgICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBCYXNlTm9kZXJDb21wb25lbnQpLmluaXRpYWxpemUoKTtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgICB9XG5cbiAgICBjcmVhdGVDb21wb25lbnQ8VD4oY29tcG9uZW50OiBUeXBlPFQ+LCBjb21wb25lbnRQcm9wcz86IG9iamVjdCk6IENvbXBvbmVudFJlZjxUPiB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQsIHtcbiAgICAgICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuYXBwbGljYXRpb25SZWYuaW5qZWN0b3IsXG4gICAgICAgICAgICBlbGVtZW50SW5qZWN0b3I6IHRoaXMuaW5qZWN0b3JcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCBjb21wb25lbnRQcm9wcyk7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gICAgfVxuXG4gICAgYXR0YWNoQ29tcG9uZW50PFQ+KGFwcGVuZFRvOiBFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCwgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgIGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGFwcGVuZFRvLmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuICAgIH1cblxuICAgIGNsb25lQW5kQXR0YWNoQ29tcG9uZW50PFQ+KGFwcGVuZFRvOiBFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCwgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgIGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNsb25lID0gZG9tRWxlbS5jbG9uZU5vZGUodHJ1ZSk7XG4gICAgICAgIHRoaXMuc2V0SW5wdXRFbGVtZW50VmFsdWUoY2xvbmUgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICBhcHBlbmRUby5hcHBlbmRDaGlsZChjbG9uZSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlQ29tcG9uZW50PFQ+KGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYuZGV0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SW5wdXRFbGVtZW50VmFsdWUoY2xvbmU6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0RWxlbWVudHMgPSBBcnJheS5mcm9tKGNsb25lLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpKTtcbiAgICAgICAgaW5wdXRFbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4gZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgZWxlbWVudC52YWx1ZSkpO1xuICAgIH1cbn1cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29tcG9uZW50cy9zaGFyZWQvc2VydmljZXMvY29tcG9uZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQyxlQUFlLEVBQW1CLFVBQVUsRUFBa0IsTUFBTSxlQUFlLENBQUM7O0FBSzNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFBb0IsY0FBOEIsRUFBVSxRQUFrQjtRQUExRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQztJQUVsRiwwQkFBMEIsQ0FBSSxRQUFpQixFQUFFLFNBQWtCLEVBQUUsY0FBc0I7UUFDdkYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUM3QyxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQsaUJBQWlCLENBQUksU0FBa0IsRUFBRSxjQUFzQjtRQUMzRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNwRSxZQUFZLENBQUMsUUFBK0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZSxDQUFJLFNBQWtCLEVBQUUsY0FBdUI7UUFDMUQsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLFNBQVMsRUFBRTtZQUM1QyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVE7WUFDakQsZUFBZSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ2pDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNyRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZSxDQUFJLFFBQW9DLEVBQUUsWUFBNkI7UUFDbEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sT0FBTyxHQUFJLFlBQVksQ0FBQyxRQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFDNUYsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsdUJBQXVCLENBQUksUUFBb0MsRUFBRSxZQUE2QjtRQUMxRixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsTUFBTSxPQUFPLEdBQUksWUFBWSxDQUFDLFFBQWlDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztRQUM1RixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFvQixDQUFDLENBQUM7UUFDaEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZUFBZSxDQUFJLFlBQTZCO1FBQzVDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQWtCO1FBQzNDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdEUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7K0dBOUNRLGdCQUFnQjttSEFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudFJlZiwgY3JlYXRlQ29tcG9uZW50LCBFbWJlZGRlZFZpZXdSZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VOb2RlckNvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0L2Jhc2UuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICAgIGdlbmVyYXRlQW5kQXR0YWNoQ29tcG9uZW50PFQ+KGFwcGVuZFRvOiBFbGVtZW50LCBjb21wb25lbnQ6IFR5cGU8VD4sIGNvbXBvbmVudFByb3BzOiBvYmplY3QpOiBDb21wb25lbnRSZWY8VD4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmdlbmVyYXRlQ29tcG9uZW50KGNvbXBvbmVudCwgY29tcG9uZW50UHJvcHMpO1xuICAgICAgICB0aGlzLmF0dGFjaENvbXBvbmVudChhcHBlbmRUbywgY29tcG9uZW50UmVmKTtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgICB9XG5cbiAgICBnZW5lcmF0ZUNvbXBvbmVudDxUPihjb21wb25lbnQ6IFR5cGU8VD4sIGNvbXBvbmVudFByb3BzOiBvYmplY3QpOiBDb21wb25lbnRSZWY8VD4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQsIGNvbXBvbmVudFByb3BzKTtcbiAgICAgICAgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBCYXNlTm9kZXJDb21wb25lbnQpLmluaXRpYWxpemUoKTtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgICB9XG5cbiAgICBjcmVhdGVDb21wb25lbnQ8VD4oY29tcG9uZW50OiBUeXBlPFQ+LCBjb21wb25lbnRQcm9wcz86IG9iamVjdCk6IENvbXBvbmVudFJlZjxUPiB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQsIHtcbiAgICAgICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuYXBwbGljYXRpb25SZWYuaW5qZWN0b3IsXG4gICAgICAgICAgICBlbGVtZW50SW5qZWN0b3I6IHRoaXMuaW5qZWN0b3JcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCBjb21wb25lbnRQcm9wcyk7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gICAgfVxuXG4gICAgYXR0YWNoQ29tcG9uZW50PFQ+KGFwcGVuZFRvOiBFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCwgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgIGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGFwcGVuZFRvLmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuICAgIH1cblxuICAgIGNsb25lQW5kQXR0YWNoQ29tcG9uZW50PFQ+KGFwcGVuZFRvOiBFbGVtZW50IHwgRG9jdW1lbnRGcmFnbWVudCwgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgIGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNsb25lID0gZG9tRWxlbS5jbG9uZU5vZGUodHJ1ZSk7XG4gICAgICAgIHRoaXMuc2V0SW5wdXRFbGVtZW50VmFsdWUoY2xvbmUgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICBhcHBlbmRUby5hcHBlbmRDaGlsZChjbG9uZSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlQ29tcG9uZW50PFQ+KGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYuZGV0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SW5wdXRFbGVtZW50VmFsdWUoY2xvbmU6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlucHV0RWxlbWVudHMgPSBBcnJheS5mcm9tKGNsb25lLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpKTtcbiAgICAgICAgaW5wdXRFbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4gZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgZWxlbWVudC52YWx1ZSkpO1xuICAgIH1cbn1cbiJdfQ==
@@ -45,12 +45,6 @@ export class CustomContentService {
45
45
  }
46
46
  return null;
47
47
  }
48
- generateElementComponents(elements, sessionId, contentWidth) {
49
- return elements.map(x => {
50
- const type = this.findComponentType(x.type);
51
- return this.componentService.generateComponent(type, { content: x, sessionId, contentWidth });
52
- });
53
- }
54
48
  isFragmentContainComponent(components, textFragment, fragmentDistance) {
55
49
  if (textFragment.includes(CUSTOM_ELEMENT_MARKER)) {
56
50
  return (this.isFragmentContainComponents(components.images, fragmentDistance) ||
@@ -126,4 +120,4 @@ export class CustomContentService {
126
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomContentService, decorators: [{
127
121
  type: Injectable
128
122
  }], ctorParameters: () => [{ type: i1.ComponentService }, { type: i0.Injector }] });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNvbnRlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9jb21wb25lbnRzL3NoYXJlZC9zZXJ2aWNlcy9jdXN0b20tY29udGVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUt6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBR2pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBTTFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFHN0UsTUFBTSxPQUFPLG9CQUFvQjtJQUc3QixZQUFtQixnQkFBa0MsRUFBVSxRQUFrQjtRQUE5RCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUM3RSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxpQkFBaUIsQ0FDYixLQUF3QixFQUN4QixVQUE2QixFQUM3QixTQUFpQixFQUNqQixpQkFBeUMsRUFDekMsWUFBb0IsRUFDcEIsU0FBaUI7UUFFakIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1B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aUJBQWlCLENBQUMsSUFBWTtRQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDbEUsQ0FBQztJQUVELGFBQWEsQ0FBSSxVQUE2QixFQUFFLFdBQW1CO1FBQy9ELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVPLDJCQUEyQixDQUFDLFVBQThDLEVBQUUsUUFBdUI7UUFDdkcsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFZO1FBQ3hCLE9BQU8sSUFBSSxLQUFLLHFCQUFxQixJQUFJLElBQUksS0FBSyxZQUFZLENBQUM7SUFDbkUsQ0FBQzsrR0FwSlEsb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VOb2RlckNvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0L2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuL2NvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRlbnRzSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vY29udGVudC9jb250ZW50cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRfTUFSS0VSLCBUQUJMRV9NQVJLRVIgfSBmcm9tICcuLi9jdXN0b20tY29udGVudC1tYXJrZXJzLmNvbnN0JztcbmltcG9ydCB7IERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFIH0gZnJvbSAnLi4vLi4vLi4vY29udGVudC9jb25zdGFudHMvZWRpdG9yLmNvbnN0JztcbmltcG9ydCB7IERpc3BsYXlUb2tlbiB9IGZyb20gJy4uLy4uLy4uL2NvbnRlbnQvZGlzcGxheS1kYXRhL2Rpc3BsYXktdG9rZW4ubW9kZWwnO1xuaW1wb3J0IHsgRGlzdGFuY2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2V4ZWN1dGlvbi9kaXN0YW5jZS5tb2RlbCc7XG5pbXBvcnQgeyBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgRVhURVJOQUxfRUxFTUVOVF9TRVJWSUNFIH0gZnJvbSAnLi4vLi4vZXh0ZXJuYWwtZWxlbWVudC9leHRlcm5hbC1lbGVtZW50cy5jb25zdCc7XG5pbXBvcnQgeyBFeHRlcm5hbEVsZW1lbnRNb2RlbCB9IGZyb20gJy4uLy4uL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2V4dGVybmFsLWVsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgR2VuZXJhbFByb3BlcnRpZXNNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2NvbnRlbnQvZGlzcGxheS1kYXRhL2dlbmVyYWwtcHJvcGVydGllcy5tb2RlbCc7XG5pbXBvcnQgeyBJQ3VzdG9tQ29tcG9uZW50cyB9IGZyb20gJy4uL2N1c3RvbS1jb21wb25lbnRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRm9udE1ldHJpY1NpemUgfSBmcm9tICcuLi8uLi8uLi9nYWRnZXRzL2ZvbnQtbWV0cmljcy9mb250LW1ldHJpYy1zaXplLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMaW5lSW5mb01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vY29udGVudC9kaXNwbGF5LWRhdGEvbGluZS1pbmZvLm1vZGVsJztcbmltcG9ydCB7IE5vZGVySW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbWFnZS9jb21wb25lbnRzL2ltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlclRhYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RhYi90YWIuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVyVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi90YWJsZS9jb21wb25lbnRzL3RhYmxlLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDdXN0b21Db250ZW50U2VydmljZSB7XG4gICAgZWxlbWVudHM6IEV4dGVybmFsRWxlbWVudE1vZGVsW107XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY29tcG9uZW50U2VydmljZTogQ29tcG9uZW50U2VydmljZSwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEVYVEVSTkFMX0VMRU1FTlRfU0VSVklDRSkuZWxlbWVudHM7XG4gICAgfVxuXG4gICAgZ2VuZXJhdGVDb21wb25lbnQoXG4gICAgICAgIG1vZGVsOiBDb250ZW50c0ludGVyZmFjZSxcbiAgICAgICAgY29tcG9uZW50czogSUN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgIHNlc3Npb25JZDogbnVtYmVyLFxuICAgICAgICBnZW5lcmFsUHJvcGVydGllczogR2VuZXJhbFByb3BlcnRpZXNNb2RlbCxcbiAgICAgICAgY29udGVudFdpZHRoOiBudW1iZXIsXG4gICAgICAgIGNoYXJJbmRleDogbnVtYmVyXG4gICAgKTogQ29tcG9uZW50UmVmPEJhc2VOb2RlckNvbXBvbmVudD4gfCBudWxsIHtcbiAgICAgICAgY29uc3QgaW1hZ2UgPSBtb2RlbC5pbWFnZXMuZmluZCh4ID0+IHguaW5zZXJ0SW5kZXggPT09IGNoYXJJbmRleCk7XG4gICAgICAgIGlmIChpbWFnZSkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQ29tcG9uZW50KE5vZGVySW1hZ2VDb21wb25lbnQsIHsgaW1hZ2UsIHNlc3Npb25JZCwgZ2VuZXJhbFByb3BlcnRpZXMgfSk7XG4gICAgICAgICAgICBjb21wb25lbnRzLmltYWdlcy5wdXNoKGNvbXBvbmVudCk7XG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFibGUgPSBtb2RlbC50YWJsZXMuZmluZCh4ID0+IHguaW5zZXJ0SW5kZXggPT09IGNoYXJJbmRleCk7XG4gICAgICAgIGlmICh0YWJsZSkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQ29tcG9uZW50KE5vZGVyVGFibGVDb21wb25lbnQsIHsgdGFibGUsIHNlc3Npb25JZCwgZ2VuZXJhbFByb3BlcnRpZXMgfSk7XG4gICAgICAgICAgICBjb21wb25lbnRzLnRhYmxlcy5wdXNoKGNvbXBvbmVudCk7XG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFiID0gbW9kZWwudGFicy5maW5kKHggPT4geC5pbnNlcnRJbmRleCA9PT0gY2hhckluZGV4KTtcbiAgICAgICAgaWYgKHRhYikge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQ29tcG9uZW50KE5vZGVyVGFiQ29tcG9uZW50LCB7IHRhYiwgc2Vzc2lvbklkLCBnZW5lcmFsUHJvcGVydGllcyB9KTtcbiAgICAgICAgICAgIGNvbXBvbmVudHMudGFicy5wdXNoKGNvbXBvbmVudCk7XG4gICAgICAgICAgICByZXR1cm4gY29tcG9uZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29udGVudCA9IG1vZGVsLmVsZW1lbnRzLmZpbmQoeCA9PiB4Lmluc2VydEluZGV4ID09PSBjaGFySW5kZXgpO1xuICAgICAgICBpZiAoY29udGVudCkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRTZXJ2aWNlLmdlbmVyYXRlQ29tcG9uZW50KHRoaXMuZmluZENvbXBvbmVudFR5cGUoY29udGVudC50eXBlKSwge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgICAgIGNvbnRlbnRXaWR0aFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb21wb25lbnRzLmN1c3RvbUVsZW1lbnRzLnB1c2goY29tcG9uZW50KTtcbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBnZW5lcmF0ZUVsZW1lbnRDb21wb25lbnRzKGVsZW1lbnRzOiBFbGVtZW50TW9kZWxbXSwgc2Vzc2lvbklkOiBudW1iZXIsIGNvbnRlbnRXaWR0aDogbnVtYmVyKTogQ29tcG9uZW50UmVmPEJhc2VOb2RlckNvbXBvbmVudD5bXSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50cy5tYXAoeCA9PiB7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gdGhpcy5maW5kQ29tcG9uZW50VHlwZSh4LnR5cGUpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50U2VydmljZS5nZW5lcmF0ZUNvbXBvbmVudCh0eXBlLCB7IGNvbnRlbnQ6IHgsIHNlc3Npb25JZCwgY29udGVudFdpZHRoIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpc0ZyYWdtZW50Q29udGFpbkNvbXBvbmVudChjb21wb25lbnRzOiBJQ3VzdG9tQ29tcG9uZW50cywgdGV4dEZyYWdtZW50OiBzdHJpbmcsIGZyYWdtZW50RGlzdGFuY2U6IERpc3RhbmNlTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRleHRGcmFnbWVudC5pbmNsdWRlcyhDVVNUT01fRUxFTUVOVF9NQVJLRVIpKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuaXNGcmFnbWVudENvbnRhaW5Db21wb25lbnRzKGNvbXBvbmVudHMuaW1hZ2VzLCBmcmFnbWVudERpc3RhbmNlKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuaXNGcmFnbWVudENvbnRhaW5Db21wb25lbnRzKGNvbXBvbmVudHMudGFicywgZnJhZ21lbnREaXN0YW5jZSkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmlzRnJhZ21lbnRDb250YWluQ29tcG9uZW50cyhjb21wb25lbnRzLmN1c3RvbUVsZW1lbnRzLCBmcmFnbWVudERpc3RhbmNlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0RnJhZ21lbnQuaW5jbHVkZXMoVEFCTEVfTUFSS0VSKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNGcmFnbWVudENvbnRhaW5Db21wb25lbnRzKGNvbXBvbmVudHMudGFibGVzLCBmcmFnbWVudERpc3RhbmNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXRDb21wb25lbnRzKGNvbXBvbmVudHM6IElDdXN0b21Db21wb25lbnRzLCBkaXN0YW5jZTogRGlzdGFuY2VNb2RlbCk6IENvbXBvbmVudFJlZjxCYXNlTm9kZXJDb21wb25lbnQ+W10ge1xuICAgICAgICBjb25zdCBpbWFnZXMgPSBjb21wb25lbnRzLmltYWdlcy5maWx0ZXIoeCA9PiB4Lmluc3RhbmNlLmluc2VydEluZGV4ID49IGRpc3RhbmNlLnN0YXJ0ICYmIHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPD0gZGlzdGFuY2UuZW5kKTtcbiAgICAgICAgY29uc3QgdGFibGVzID0gY29tcG9uZW50cy50YWJsZXMuZmlsdGVyKHggPT4geC5pbnN0YW5jZS5pbnNlcnRJbmRleCA+PSBkaXN0YW5jZS5zdGFydCAmJiB4Lmluc3RhbmNlLmluc2VydEluZGV4IDw9IGRpc3RhbmNlLmVuZCk7XG4gICAgICAgIGNvbnN0IHRhYnMgPSBjb21wb25lbnRzLnRhYnMuZmlsdGVyKHggPT4geC5pbnN0YW5jZS5pbnNlcnRJbmRleCA+PSBkaXN0YW5jZS5zdGFydCAmJiB4Lmluc3RhbmNlLmluc2VydEluZGV4IDw9IGRpc3RhbmNlLmVuZCk7XG4gICAgICAgIGNvbnN0IGN1c3RvbSA9IGNvbXBvbmVudHMuY3VzdG9tRWxlbWVudHMuZmlsdGVyKFxuICAgICAgICAgICAgeCA9PiB4Lmluc3RhbmNlLmluc2VydEluZGV4ID49IGRpc3RhbmNlLnN0YXJ0ICYmIHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPD0gZGlzdGFuY2UuZW5kXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBbLi4uaW1hZ2VzLCAuLi50YWJsZXMsIC4uLnRhYnMsIC4uLmN1c3RvbV0uc29ydCgoYSwgYikgPT4gYS5pbnN0YW5jZS5pbnNlcnRJbmRleCAtIGIuaW5zdGFuY2UuaW5zZXJ0SW5kZXgpO1xuICAgIH1cblxuICAgIGdldENvbXBvbmVudChjb21wb25lbnRzOiBJQ3VzdG9tQ29tcG9uZW50cywgY2hhcjogc3RyaW5nLCBjaGFySW5kZXg6IG51bWJlcik6IENvbXBvbmVudFJlZjxCYXNlTm9kZXJDb21wb25lbnQ+IHtcbiAgICAgICAgaWYgKGNoYXIgPT09IENVU1RPTV9FTEVNRU5UX01BUktFUikge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICB0aGlzLmZpbmRDb21wb25lbnQoY29tcG9uZW50cy5pbWFnZXMsIGNoYXJJbmRleCkgPz9cbiAgICAgICAgICAgICAgICB0aGlzLmZpbmRDb21wb25lbnQoY29tcG9uZW50cy50YWJzLCBjaGFySW5kZXgpID8/XG4gICAgICAgICAgICAgICAgdGhpcy5maW5kQ29tcG9uZW50KGNvbXBvbmVudHMuY3VzdG9tRWxlbWVudHMsIGNoYXJJbmRleClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5maW5kQ29tcG9uZW50KGNvbXBvbmVudHMudGFibGVzLCBjaGFySW5kZXgpO1xuICAgIH1cblxuICAgIGdldFRva2VuRnJvbUNvbXBvbmVudChcbiAgICAgICAgY29tcG9uZW50OiBDb21wb25lbnRSZWY8QmFzZU5vZGVyQ29tcG9uZW50PixcbiAgICAgICAgbGluZUluZm86IExpbmVJbmZvTW9kZWwsXG4gICAgICAgIGRpc3BsYXlWYWx1ZTogbnVtYmVyLFxuICAgICAgICBpc0ZpcnN0OiBib29sZWFuLFxuICAgICAgICBzaXplOiBJRm9udE1ldHJpY1NpemVcbiAgICApOiBEaXNwbGF5VG9rZW4ge1xuICAgICAgICBsZXQgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7XG4gICAgICAgIGlmIChjb21wb25lbnQuaW5zdGFuY2UuaGVpZ2h0ID4gc2l6ZS5oZWlnaHQpIHtcbiAgICAgICAgICAgIGhlaWdodCA9XG4gICAgICAgICAgICAgICAgY29tcG9uZW50Lmluc3RhbmNlIGluc3RhbmNlb2YgTm9kZXJJbWFnZUNvbXBvbmVudCA/IGNvbXBvbmVudC5pbnN0YW5jZS5oZWlnaHQgKyBzaXplLmRlc2NlbnQgOiBjb21wb25lbnQuaW5zdGFuY2UuaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBEaXNwbGF5VG9rZW4oe1xuICAgICAgICAgICAgd2lkdGg6IGNvbXBvbmVudC5pbnN0YW5jZS53aWR0aCxcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIGJhc2VsaW5lOiAwLFxuICAgICAgICAgICAgY29udGVudDogMCxcbiAgICAgICAgICAgIGZvbnQ6IHNpemUuZm9udCxcbiAgICAgICAgICAgIGFzY2VudDogY29tcG9uZW50Lmluc3RhbmNlLmhlaWdodCA/PyBzaXplLmhlaWdodCxcbiAgICAgICAgICAgIGRlc2NlbnQ6IDAsXG4gICAgICAgICAgICBsaW5lOiAwLFxuICAgICAgICAgICAgbGluZVNwYWNpbmc6IGxpbmVJbmZvLmxpbmVTcGFjaW5nLFxuICAgICAgICAgICAgbXVsdGlwbGllcjogMCxcbiAgICAgICAgICAgIGFsaWduOiBsaW5lSW5mby5hbGlnbixcbiAgICAgICAgICAgIGluZGVudEZpcnN0TGluZTogaXNGaXJzdCA/IGxpbmVJbmZvLmluZGVudC5maXJzdExpbmUgOiBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5pbmRlbnRGaXJzdExpbmUsXG4gICAgICAgICAgICBpbmRlbnRIYW5naW5nOiBpc0ZpcnN0ID8gbGluZUluZm8uaW5kZW50LmhhbmdpbmcgOiBERUZBVUxUX1BBUkFHUkFQSF9TVFlMRS5pbmRlbnRIYW5naW5nLFxuICAgICAgICAgICAgaW5kZW50TGVmdDogbGluZUluZm8uaW5kZW50LmxlZnQsXG4gICAgICAgICAgICBpbmRlbnRSaWdodDogbGluZUluZm8uaW5kZW50LnJpZ2h0LFxuICAgICAgICAgICAgaW5kZW50QmVmb3JlOiBsaW5lSW5mby5vZmZzZXRCZWZvcmUsXG4gICAgICAgICAgICBpbmRlbnRBZnRlcjogbGluZUluZm8ub2Zmc2V0QWZ0ZXIsXG4gICAgICAgICAgICBpc1BhZ2VCcmVhazogZmFsc2UsXG4gICAgICAgICAgICBpc0xpbmVCcmVhazogZmFsc2UsXG4gICAgICAgICAgICBkaXNwbGF5VmFsdWUsXG4gICAgICAgICAgICBpc1RhYjogY29tcG9uZW50Lmluc3RhbmNlIGluc3RhbmNlb2YgTm9kZXJUYWJDb21wb25lbnQsXG4gICAgICAgICAgICBpc1RhYmxlOiBjb21wb25lbnQuaW5zdGFuY2UgaW5zdGFuY2VvZiBOb2RlclRhYmxlQ29tcG9uZW50XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZpbmRDb21wb25lbnRUeXBlKHR5cGU6IG51bWJlcik6IFR5cGU8QmFzZU5vZGVyQ29tcG9uZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRzLmZpbmQoeCA9PiB4LnR5cGUgPT09IHR5cGUpLmNvbXBvbmVudFR5cGU7XG4gICAgfVxuXG4gICAgZmluZENvbXBvbmVudDxUPihjb21wb25lbnRzOiBDb21wb25lbnRSZWY8VD5bXSwgaW5zZXJ0SW5kZXg6IG51bWJlcik6IENvbXBvbmVudFJlZjxUPiB7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRzLmZpbmQoKHg6IGFueSkgPT4geC5pbnN0YW5jZS5pbnNlcnRJbmRleCA9PT0gaW5zZXJ0SW5kZXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGcmFnbWVudENvbnRhaW5Db21wb25lbnRzKGNvbXBvbmVudHM6IENvbXBvbmVudFJlZjxCYXNlTm9kZXJDb21wb25lbnQ+W10sIGRpc3RhbmNlOiBEaXN0YW5jZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBjb21wb25lbnRzLnNvbWUoeCA9PiB4Lmluc3RhbmNlLmluc2VydEluZGV4ID49IGRpc3RhbmNlLnN0YXJ0ICYmIHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPD0gZGlzdGFuY2UuZW5kKTtcbiAgICB9XG5cbiAgICBpc1NwZWNpYWxNYXJrZXIoY2hhcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBjaGFyID09PSBDVVNUT01fRUxFTUVOVF9NQVJLRVIgfHwgY2hhciA9PT0gVEFCTEVfTUFSS0VSO1xuICAgIH1cbn1cbiJdfQ==
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNvbnRlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9jb21wb25lbnRzL3NoYXJlZC9zZXJ2aWNlcy9jdXN0b20tY29udGVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUt6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRWpGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBTTFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFHN0UsTUFBTSxPQUFPLG9CQUFvQjtJQUc3QixZQUFtQixnQkFBa0MsRUFBVSxRQUFrQjtRQUE5RCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUM3RSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxpQkFBaUIsQ0FDYixLQUF3QixFQUN4QixVQUE2QixFQUM3QixTQUFpQixFQUNqQixpQkFBeUMsRUFDekMsWUFBb0IsRUFDcEIsU0FBaUI7UUFFakIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1B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TUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakksTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqSSxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdILE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUMzQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FDMUYsQ0FBQztRQUNGLE9BQU8sQ0FBQyxHQUFHLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEgsQ0FBQztJQUVE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LEVBQUUsUUFBdUI7UUFDdkcsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFZO1FBQ3hCLE9BQU8sSUFBSSxLQUFLLHFCQUFxQixJQUFJLElBQUksS0FBSyxZQUFZLENBQUM7SUFDbkUsQ0FBQzsrR0E3SVEsb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VOb2RlckNvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0L2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuL2NvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRlbnRzSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vY29udGVudC9jb250ZW50cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRfTUFSS0VSLCBUQUJMRV9NQVJLRVIgfSBmcm9tICcuLi9jdXN0b20tY29udGVudC1tYXJrZXJzLmNvbnN0JztcbmltcG9ydCB7IERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFIH0gZnJvbSAnLi4vLi4vLi4vY29udGVudC9jb25zdGFudHMvZWRpdG9yLmNvbnN0JztcbmltcG9ydCB7IERpc3BsYXlUb2tlbiB9IGZyb20gJy4uLy4uLy4uL2NvbnRlbnQvZGlzcGxheS1kYXRhL2Rpc3BsYXktdG9rZW4ubW9kZWwnO1xuaW1wb3J0IHsgRGlzdGFuY2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2V4ZWN1dGlvbi9kaXN0YW5jZS5tb2RlbCc7XG5pbXBvcnQgeyBFWFRFUk5BTF9FTEVNRU5UX1NFUlZJQ0UgfSBmcm9tICcuLi8uLi9leHRlcm5hbC1lbGVtZW50L2V4dGVybmFsLWVsZW1lbnRzLmNvbnN0JztcbmltcG9ydCB7IEV4dGVybmFsRWxlbWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vZXh0ZXJuYWwtZWxlbWVudC9tb2RlbHMvZXh0ZXJuYWwtZWxlbWVudC5tb2RlbCc7XG5pbXBvcnQgeyBHZW5lcmFsUHJvcGVydGllc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vY29udGVudC9kaXNwbGF5LWRhdGEvZ2VuZXJhbC1wcm9wZXJ0aWVzLm1vZGVsJztcbmltcG9ydCB7IElDdXN0b21Db21wb25lbnRzIH0gZnJvbSAnLi4vY3VzdG9tLWNvbXBvbmVudHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElGb250TWV0cmljU2l6ZSB9IGZyb20gJy4uLy4uLy4uL2dhZGdldHMvZm9udC1tZXRyaWNzL2ZvbnQtbWV0cmljLXNpemUuaW50ZXJmYWNlJztcbmltcG9ydCB7IExpbmVJbmZvTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9jb250ZW50L2Rpc3BsYXktZGF0YS9saW5lLWluZm8ubW9kZWwnO1xuaW1wb3J0IHsgTm9kZXJJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ltYWdlL2NvbXBvbmVudHMvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVyVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdGFiL3RhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm9kZXJUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RhYmxlL2NvbXBvbmVudHMvdGFibGUuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbnRlbnRTZXJ2aWNlIHtcbiAgICBlbGVtZW50czogRXh0ZXJuYWxFbGVtZW50TW9kZWxbXTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBDb21wb25lbnRTZXJ2aWNlLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICB0aGlzLmVsZW1lbnRzID0gdGhpcy5pbmplY3Rvci5nZXQoRVhURVJOQUxfRUxFTUVOVF9TRVJWSUNFKS5lbGVtZW50cztcbiAgICB9XG5cbiAgICBnZW5lcmF0ZUNvbXBvbmVudChcbiAgICAgICAgbW9kZWw6IENvbnRlbnRzSW50ZXJmYWNlLFxuICAgICAgICBjb21wb25lbnRzOiBJQ3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgc2Vzc2lvbklkOiBudW1iZXIsXG4gICAgICAgIGdlbmVyYWxQcm9wZXJ0aWVzOiBHZW5lcmFsUHJvcGVydGllc01vZGVsLFxuICAgICAgICBjb250ZW50V2lkdGg6IG51bWJlcixcbiAgICAgICAgY2hhckluZGV4OiBudW1iZXJcbiAgICApOiBDb21wb25lbnRSZWY8QmFzZU5vZGVyQ29tcG9uZW50PiB8IG51bGwge1xuICAgICAgICBjb25zdCBpbWFnZSA9IG1vZGVsLmltYWdlcy5maW5kKHggPT4geC5pbnNlcnRJbmRleCA9PT0gY2hhckluZGV4KTtcbiAgICAgICAgaWYgKGltYWdlKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZ2VuZXJhdGVDb21wb25lbnQoTm9kZXJJbWFnZUNvbXBvbmVudCwgeyBpbWFnZSwgc2Vzc2lvbklkLCBnZW5lcmFsUHJvcGVydGllcyB9KTtcbiAgICAgICAgICAgIGNvbXBvbmVudHMuaW1hZ2VzLnB1c2goY29tcG9uZW50KTtcbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YWJsZSA9IG1vZGVsLnRhYmxlcy5maW5kKHggPT4geC5pbnNlcnRJbmRleCA9PT0gY2hhckluZGV4KTtcbiAgICAgICAgaWYgKHRhYmxlKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZ2VuZXJhdGVDb21wb25lbnQoTm9kZXJUYWJsZUNvbXBvbmVudCwgeyB0YWJsZSwgc2Vzc2lvbklkLCBnZW5lcmFsUHJvcGVydGllcyB9KTtcbiAgICAgICAgICAgIGNvbXBvbmVudHMudGFibGVzLnB1c2goY29tcG9uZW50KTtcbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YWIgPSBtb2RlbC50YWJzLmZpbmQoeCA9PiB4Lmluc2VydEluZGV4ID09PSBjaGFySW5kZXgpO1xuICAgICAgICBpZiAodGFiKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZ2VuZXJhdGVDb21wb25lbnQoTm9kZXJUYWJDb21wb25lbnQsIHsgdGFiLCBzZXNzaW9uSWQsIGdlbmVyYWxQcm9wZXJ0aWVzIH0pO1xuICAgICAgICAgICAgY29tcG9uZW50cy50YWJzLnB1c2goY29tcG9uZW50KTtcbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250ZW50ID0gbW9kZWwuZWxlbWVudHMuZmluZCh4ID0+IHguaW5zZXJ0SW5kZXggPT09IGNoYXJJbmRleCk7XG4gICAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZ2VuZXJhdGVDb21wb25lbnQodGhpcy5maW5kQ29tcG9uZW50VHlwZShjb250ZW50LnR5cGUpLCB7XG4gICAgICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgICAgICAgY29udGVudFdpZHRoXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbXBvbmVudHMuY3VzdG9tRWxlbWVudHMucHVzaChjb21wb25lbnQpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlzRnJhZ21lbnRDb250YWluQ29tcG9uZW50KGNvbXBvbmVudHM6IElDdXN0b21Db21wb25lbnRzLCB0ZXh0RnJhZ21lbnQ6IHN0cmluZywgZnJhZ21lbnREaXN0YW5jZTogRGlzdGFuY2VNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGV4dEZyYWdtZW50LmluY2x1ZGVzKENVU1RPTV9FTEVNRU5UX01BUktFUikpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy5pc0ZyYWdtZW50Q29udGFpbkNvbXBvbmVudHMoY29tcG9uZW50cy5pbWFnZXMsIGZyYWdtZW50RGlzdGFuY2UpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5pc0ZyYWdtZW50Q29udGFpbkNvbXBvbmVudHMoY29tcG9uZW50cy50YWJzLCBmcmFnbWVudERpc3RhbmNlKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuaXNGcmFnbWVudENvbnRhaW5Db21wb25lbnRzKGNvbXBvbmVudHMuY3VzdG9tRWxlbWVudHMsIGZyYWdtZW50RGlzdGFuY2UpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHRGcmFnbWVudC5pbmNsdWRlcyhUQUJMRV9NQVJLRVIpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc0ZyYWdtZW50Q29udGFpbkNvbXBvbmVudHMoY29tcG9uZW50cy50YWJsZXMsIGZyYWdtZW50RGlzdGFuY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGdldENvbXBvbmVudHMoY29tcG9uZW50czogSUN1c3RvbUNvbXBvbmVudHMsIGRpc3RhbmNlOiBEaXN0YW5jZU1vZGVsKTogQ29tcG9uZW50UmVmPEJhc2VOb2RlckNvbXBvbmVudD5bXSB7XG4gICAgICAgIGNvbnN0IGltYWdlcyA9IGNvbXBvbmVudHMuaW1hZ2VzLmZpbHRlcih4ID0+IHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPj0gZGlzdGFuY2Uuc3RhcnQgJiYgeC5pbnN0YW5jZS5pbnNlcnRJbmRleCA8PSBkaXN0YW5jZS5lbmQpO1xuICAgICAgICBjb25zdCB0YWJsZXMgPSBjb21wb25lbnRzLnRhYmxlcy5maWx0ZXIoeCA9PiB4Lmluc3RhbmNlLmluc2VydEluZGV4ID49IGRpc3RhbmNlLnN0YXJ0ICYmIHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPD0gZGlzdGFuY2UuZW5kKTtcbiAgICAgICAgY29uc3QgdGFicyA9IGNvbXBvbmVudHMudGFicy5maWx0ZXIoeCA9PiB4Lmluc3RhbmNlLmluc2VydEluZGV4ID49IGRpc3RhbmNlLnN0YXJ0ICYmIHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPD0gZGlzdGFuY2UuZW5kKTtcbiAgICAgICAgY29uc3QgY3VzdG9tID0gY29tcG9uZW50cy5jdXN0b21FbGVtZW50cy5maWx0ZXIoXG4gICAgICAgICAgICB4ID0+IHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPj0gZGlzdGFuY2Uuc3RhcnQgJiYgeC5pbnN0YW5jZS5pbnNlcnRJbmRleCA8PSBkaXN0YW5jZS5lbmRcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIFsuLi5pbWFnZXMsIC4uLnRhYmxlcywgLi4udGFicywgLi4uY3VzdG9tXS5zb3J0KChhLCBiKSA9PiBhLmluc3RhbmNlLmluc2VydEluZGV4IC0gYi5pbnN0YW5jZS5pbnNlcnRJbmRleCk7XG4gICAgfVxuXG4gICAgZ2V0Q29tcG9uZW50KGNvbXBvbmVudHM6IElDdXN0b21Db21wb25lbnRzLCBjaGFyOiBzdHJpbmcsIGNoYXJJbmRleDogbnVtYmVyKTogQ29tcG9uZW50UmVmPEJhc2VOb2RlckNvbXBvbmVudD4ge1xuICAgICAgICBpZiAoY2hhciA9PT0gQ1VTVE9NX0VMRU1FTlRfTUFSS0VSKSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuZmluZENvbXBvbmVudChjb21wb25lbnRzLmltYWdlcywgY2hhckluZGV4KSA/P1xuICAgICAgICAgICAgICAgIHRoaXMuZmluZENvbXBvbmVudChjb21wb25lbnRzLnRhYnMsIGNoYXJJbmRleCkgPz9cbiAgICAgICAgICAgICAgICB0aGlzLmZpbmRDb21wb25lbnQoY29tcG9uZW50cy5jdXN0b21FbGVtZW50cywgY2hhckluZGV4KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRDb21wb25lbnQoY29tcG9uZW50cy50YWJsZXMsIGNoYXJJbmRleCk7XG4gICAgfVxuXG4gICAgZ2V0VG9rZW5Gcm9tQ29tcG9uZW50KFxuICAgICAgICBjb21wb25lbnQ6IENvbXBvbmVudFJlZjxCYXNlTm9kZXJDb21wb25lbnQ+LFxuICAgICAgICBsaW5lSW5mbzogTGluZUluZm9Nb2RlbCxcbiAgICAgICAgZGlzcGxheVZhbHVlOiBudW1iZXIsXG4gICAgICAgIGlzRmlyc3Q6IGJvb2xlYW4sXG4gICAgICAgIHNpemU6IElGb250TWV0cmljU2l6ZVxuICAgICk6IERpc3BsYXlUb2tlbiB7XG4gICAgICAgIGxldCBoZWlnaHQgPSBzaXplLmhlaWdodDtcbiAgICAgICAgaWYgKGNvbXBvbmVudC5pbnN0YW5jZS5oZWlnaHQgPiBzaXplLmhlaWdodCkge1xuICAgICAgICAgICAgaGVpZ2h0ID1cbiAgICAgICAgICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UgaW5zdGFuY2VvZiBOb2RlckltYWdlQ29tcG9uZW50ID8gY29tcG9uZW50Lmluc3RhbmNlLmhlaWdodCArIHNpemUuZGVzY2VudCA6IGNvbXBvbmVudC5pbnN0YW5jZS5oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV3IERpc3BsYXlUb2tlbih7XG4gICAgICAgICAgICB3aWR0aDogY29tcG9uZW50Lmluc3RhbmNlLndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgYmFzZWxpbmU6IDAsXG4gICAgICAgICAgICBjb250ZW50OiAwLFxuICAgICAgICAgICAgZm9udDogc2l6ZS5mb250LFxuICAgICAgICAgICAgYXNjZW50OiBjb21wb25lbnQuaW5zdGFuY2UuaGVpZ2h0ID8/IHNpemUuaGVpZ2h0LFxuICAgICAgICAgICAgZGVzY2VudDogMCxcbiAgICAgICAgICAgIGxpbmU6IDAsXG4gICAgICAgICAgICBsaW5lU3BhY2luZzogbGluZUluZm8ubGluZVNwYWNpbmcsXG4gICAgICAgICAgICBtdWx0aXBsaWVyOiAwLFxuICAgICAgICAgICAgYWxpZ246IGxpbmVJbmZvLmFsaWduLFxuICAgICAgICAgICAgaW5kZW50Rmlyc3RMaW5lOiBpc0ZpcnN0ID8gbGluZUluZm8uaW5kZW50LmZpcnN0TGluZSA6IERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFLmluZGVudEZpcnN0TGluZSxcbiAgICAgICAgICAgIGluZGVudEhhbmdpbmc6IGlzRmlyc3QgPyBsaW5lSW5mby5pbmRlbnQuaGFuZ2luZyA6IERFRkFVTFRfUEFSQUdSQVBIX1NUWUxFLmluZGVudEhhbmdpbmcsXG4gICAgICAgICAgICBpbmRlbnRMZWZ0OiBsaW5lSW5mby5pbmRlbnQubGVmdCxcbiAgICAgICAgICAgIGluZGVudFJpZ2h0OiBsaW5lSW5mby5pbmRlbnQucmlnaHQsXG4gICAgICAgICAgICBpbmRlbnRCZWZvcmU6IGxpbmVJbmZvLm9mZnNldEJlZm9yZSxcbiAgICAgICAgICAgIGluZGVudEFmdGVyOiBsaW5lSW5mby5vZmZzZXRBZnRlcixcbiAgICAgICAgICAgIGlzUGFnZUJyZWFrOiBmYWxzZSxcbiAgICAgICAgICAgIGlzTGluZUJyZWFrOiBmYWxzZSxcbiAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSxcbiAgICAgICAgICAgIGlzVGFiOiBjb21wb25lbnQuaW5zdGFuY2UgaW5zdGFuY2VvZiBOb2RlclRhYkNvbXBvbmVudCxcbiAgICAgICAgICAgIGlzVGFibGU6IGNvbXBvbmVudC5pbnN0YW5jZSBpbnN0YW5jZW9mIE5vZGVyVGFibGVDb21wb25lbnRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZmluZENvbXBvbmVudFR5cGUodHlwZTogbnVtYmVyKTogVHlwZTxCYXNlTm9kZXJDb21wb25lbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudHMuZmluZCh4ID0+IHgudHlwZSA9PT0gdHlwZSkuY29tcG9uZW50VHlwZTtcbiAgICB9XG5cbiAgICBmaW5kQ29tcG9uZW50PFQ+KGNvbXBvbmVudHM6IENvbXBvbmVudFJlZjxUPltdLCBpbnNlcnRJbmRleDogbnVtYmVyKTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudHMuZmluZCgoeDogYW55KSA9PiB4Lmluc3RhbmNlLmluc2VydEluZGV4ID09PSBpbnNlcnRJbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0ZyYWdtZW50Q29udGFpbkNvbXBvbmVudHMoY29tcG9uZW50czogQ29tcG9uZW50UmVmPEJhc2VOb2RlckNvbXBvbmVudD5bXSwgZGlzdGFuY2U6IERpc3RhbmNlTW9kZWwpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudHMuc29tZSh4ID0+IHguaW5zdGFuY2UuaW5zZXJ0SW5kZXggPj0gZGlzdGFuY2Uuc3RhcnQgJiYgeC5pbnN0YW5jZS5pbnNlcnRJbmRleCA8PSBkaXN0YW5jZS5lbmQpO1xuICAgIH1cblxuICAgIGlzU3BlY2lhbE1hcmtlcihjaGFyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGNoYXIgPT09IENVU1RPTV9FTEVNRU5UX01BUktFUiB8fCBjaGFyID09PSBUQUJMRV9NQVJLRVI7XG4gICAgfVxufVxuIl19