@talrace/ngx-noder 0.0.16 → 0.0.17

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.
@@ -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
@@ -43,6 +43,18 @@ export class PagesLayer extends EventEmitting {
43
43
  if (minPage > 1 && config.scrollTop <= (minPage - 1) * (pageHeight + pageSpace) + pageSpace) {
44
44
  minPage--;
45
45
  }
46
+ const lastPageNumber = (config.maxHeight - pageSpace) / (config.minHeight - pageSpace);
47
+ // to convert to an integer with errors in calculations for floating-point numbers, for example 4.001 => 4 or 3.999 => 4
48
+ this.mainSession.editorService.setLastPageNumber(Math.round(lastPageNumber));
49
+ if (pages.length > 1) {
50
+ const pagesHeight = config.height - pageSpace + config.scrollTop;
51
+ const minPageHeight = config.minHeight - pageSpace;
52
+ const currentPage = Math.round(pagesHeight / minPageHeight);
53
+ this.mainSession.editorService.setCurrentPage(currentPage);
54
+ }
55
+ else {
56
+ this.mainSession.editorService.setCurrentPage(pages[0]);
57
+ }
46
58
  if (this.minPageNumber !== minPage || this.maxPageNumber !== maxPage || minPage === 1) {
47
59
  this.minPageNumber = minPage;
48
60
  this.maxPageNumber = maxPage;
@@ -94,4 +106,4 @@ export class PagesLayer extends EventEmitting {
94
106
  this.element.style.height = `${(this.pagesCount + 1) * this.pageSize}px`;
95
107
  }
96
108
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXMubGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZGlzcGxheS9sYXllcnMvcGFnZXMubGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHMUQsTUFBTSxPQUFPLFVBQVcsU0FBUSxhQUFhO0lBYXpDLElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2pELENBQUM7SUFHRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFHRCxZQUFtQixhQUEwQixFQUFVLFdBQXdCO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRE8sa0JBQWEsR0FBYixhQUFhLENBQWE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXBCL0Usc0JBQWlCLEdBQWtCLEVBQUUsQ0FBQztRQThHOUIsNkJBQXdCLEdBQUcsQ0FBQyxLQUFpRCxFQUFRLEVBQUU7WUFDM0YsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsVUFBVSxFQUFFO2dCQUM5RSxPQUFPO2FBQ1Y7WUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDcEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7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QUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxTQUFTLElBQUksQ0FBQztZQUU3RSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDL0MsU0FBUyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7Z0JBQ25DLFNBQVMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQztnQkFDakMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNsQztZQUVELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUM7SUFDN0UsQ0FBQztDQVdKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vY29udGVudC9jb25zdGFudHMvZG9jdW1lbnQtaW5mby5jb25zdCc7XG5pbXBvcnQgeyBEb21IZWxwZXIgfSBmcm9tICcuLi8uLi9leGVjdXRpb24vaGVscGVycy9kb20uaGVscGVyJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBFdmVudEVtaXR0aW5nIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudC1lbWl0dGluZyc7XG5pbXBvcnQgeyBJTGF5ZXJDb25maWcgfSBmcm9tICcuL2xheWVyLmNvbmZpZyc7XG5cbmV4cG9ydCBjbGFzcyBQYWdlc0xheWVyIGV4dGVuZHMgRXZlbnRFbWl0dGluZyB7XG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBwYWdlQnJlYWtFbGVtZW50czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgbWluUGFnZU51bWJlcjogbnVtYmVyO1xuXG4gICAgbWF4UGFnZU51bWJlcjogbnVtYmVyO1xuXG4gICAgcnVsZXJMZWZ0OiBIVE1MRWxlbWVudDtcblxuICAgIHJ1bGVyUmlnaHQ6IEhUTUxFbGVtZW50O1xuXG4gICAgZ2V0IHBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlU2l6ZSB8fCBEb2N1bWVudEluZm8uaGVpZ2h0O1xuICAgIH1cbiAgICBwcml2YXRlIF9wYWdlU2l6ZTogbnVtYmVyO1xuXG4gICAgZ2V0IHBhZ2VzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhZ2VzQ291bnQgfHwgMTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcGFnZXNDb3VudDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwcml2YXRlIG1haW5TZXNzaW9uOiBFZGl0U2Vzc2lvbikge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gJ25vZGVyLWxheWVyIGFjZV9wYWdlcy1sYXllcic7XG4gICAgICAgIHBhcmVudEVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmJlZ2luJywgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgdGhpcy5zZXRDb250YWluZXJTaXplKCk7XG5cbiAgICAgICAgdGhpcy5ydWxlckxlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5ydWxlckxlZnQuY2xhc3NOYW1lID0gJ3J1bGVyLWxpbmUnO1xuICAgICAgICB0aGlzLnJ1bGVyUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5ydWxlclJpZ2h0LmNsYXNzTmFtZSA9ICdydWxlci1saW5lJztcbiAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucnVsZXJMZWZ0KTtcbiAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMucnVsZXJSaWdodCk7XG4gICAgICAgIHRoaXMubWFpblNlc3Npb24uZGlzcGxheURhdGEuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNDb3VudENoYW5nZWQnLCB0aGlzLnBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlcik7XG4gICAgfVxuXG4gICAgdXBkYXRlKGNvbmZpZzogSUxheWVyQ29uZmlnKTogdm9pZCB7XG4gICAgICAgIERvbUhlbHBlci50cmFuc2xhdGUodGhpcy5lbGVtZW50LCAwLCAtY29uZmlnLnNjcm9sbFRvcCk7XG5cbiAgICAgICAgY29uc3QgcGFnZVNwYWNlID0gdGhpcy5nZXRQYWdlU3BhY2UoKTtcbiAgICAgICAgY29uc3QgcGFnZUhlaWdodCA9IHRoaXMubWFpblNlc3Npb24uZGlzcGxheURhdGEucGFnZUhlaWdodDtcbiAgICAgICAgY29uc3QgcGFnZXMgPSBjb25maWcucGFnZXMgfHwgW107XG4gICAgICAgIGxldCBtaW5QYWdlID0gcGFnZXNbMF0gfHwgMTtcbiAgICAgICAgY29uc3QgbWF4UGFnZSA9IHBhZ2VzW3BhZ2VzLmxlbmd0aCAtIDFdIHx8IDE7XG4gICAgICAgIGlmIChtaW5QYWdlID4gMSAmJiBjb25maWcuc2Nyb2xsVG9wIDw9IChtaW5QYWdlIC0gMSkgKiAocGFnZUhlaWdodCArIHBhZ2VTcGFjZSkgKyBwYWdlU3BhY2UpIHtcbiAgICAgICAgICAgIG1pblBhZ2UtLTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1pblBhZ2VOdW1iZXIgIT09IG1pblBhZ2UgfHwgdGhpcy5tYXhQYWdlTnVtYmVyICE9PSBtYXhQYWdlIHx8IG1pblBhZ2UgPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMubWluUGFnZU51bWJlciA9IG1pblBhZ2U7XG4gICAgICAgICAgICB0aGlzLm1heFBhZ2VOdW1iZXIgPSBtYXhQYWdlO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVQYWdlcygpO1xuICAgICAgICAgICAgdGhpcy5hZGRQYWdlcyhwYWdlU3BhY2UsIHBhZ2VIZWlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd1J1bGxlckxpbmVzKHBvc2l0aW9uczogbnVtYmVyW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFwb3NpdGlvbnMgfHwgcG9zaXRpb25zLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgICAgRG9tSGVscGVyLnJlbW92ZUNzc0NsYXNzKHRoaXMucnVsZXJMZWZ0LCAndmlzaWJsZScpO1xuICAgICAgICAgICAgRG9tSGVscGVyLnJlbW92ZUNzc0NsYXNzKHRoaXMucnVsZXJSaWdodCwgJ3Zpc2libGUnKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMucnVsZXJMZWZ0LnN0eWxlLCAnbGVmdCcsIGAke3Bvc2l0aW9uc1swXX1weGApO1xuICAgICAgICBEb21IZWxwZXIuYWRkQ3NzQ2xhc3ModGhpcy5ydWxlckxlZnQsICd2aXNpYmxlJyk7XG4gICAgICAgIERvbUhlbHBlci5zZXRTdHlsZSh0aGlzLnJ1bGVyUmlnaHQuc3R5bGUsICdsZWZ0JywgYCR7cG9zaXRpb25zWzFdfXB4YCk7XG4gICAgICAgIERvbUhlbHBlci5hZGRDc3NDbGFzcyh0aGlzLnJ1bGVyUmlnaHQsICd2aXNpYmxlJyk7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYWluU2Vzc2lvbi5kaXNwbGF5RGF0YS5yZW1vdmVFdmVudExpc3RlbmVyKCdwYWdlc0NvdW50Q2hhbmdlZCcsIHRoaXMucGFnZXNDb3VudENoYW5nZWRIYW5kbGVyKTtcbiAgICB9XG5cbiAgICAvLyBVc2VkIHRvIGJlIG92ZXJyaWRkZW4gYnkgdGhlIHByaW50IHBhZ2UgbGF5ZXIgZm9yIHByaW50aW5nXG4gICAgcHJvdGVjdGVkIGdldFBhZ2VTcGFjZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5tYWluU2Vzc2lvbi5kaXNwbGF5RGF0YS5wYWdlc1NwYWNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlUGFnZXMoKTogdm9pZCB7XG4gICAgICAgIHdoaWxlICh0aGlzLnBhZ2VCcmVha0VsZW1lbnRzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnBhZ2VCcmVha0VsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRQYWdlcyhwYWdlU3BhY2U6IG51bWJlciwgcGFnZUhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGZvciAobGV0IHBhZ2UgPSB0aGlzLm1pblBhZ2VOdW1iZXI7IHBhZ2UgPD0gdGhpcy5tYXhQYWdlTnVtYmVyOyBwYWdlKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gJ3BhZ2UnO1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHtwYWdlSGVpZ2h0fXB4YDtcbiAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUudG9wID0gYCR7KHBhZ2UgLSAxKSAqIChwYWdlSGVpZ2h0ICsgcGFnZVNwYWNlKSArIHBhZ2VTcGFjZX1weGA7XG5cbiAgICAgICAgICAgIGlmIChwYWdlID4gMSkge1xuICAgICAgICAgICAgICAgIGxldCBwYWdlTGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgcGFnZUxhYmVsLmNsYXNzTmFtZSA9ICdwYWdlLWxhYmVsJztcbiAgICAgICAgICAgICAgICBwYWdlTGFiZWwuaW5uZXJUZXh0ID0gYCR7cGFnZX0uYDtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHBhZ2VMYWJlbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMucGFnZUJyZWFrRWxlbWVudHMucHVzaChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29udGFpbmVyU2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmhlaWdodCA9IGAkeyh0aGlzLnBhZ2VzQ291bnQgKyAxKSAqIHRoaXMucGFnZVNpemV9cHhgO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFnZXNDb3VudENoYW5nZWRIYW5kbGVyID0gKGV2ZW50OiB7IHBhZ2VzQ291bnQ6IG51bWJlcjsgcGFnZUhlaWdodDogbnVtYmVyIH0pOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3BhZ2VTaXplID09PSBldmVudC5wYWdlSGVpZ2h0ICYmIHRoaXMuX3BhZ2VzQ291bnQgPT09IGV2ZW50LnBhZ2VzQ291bnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3BhZ2VTaXplID0gZXZlbnQucGFnZUhlaWdodCB8fCBEb2N1bWVudEluZm8uaGVpZ2h0O1xuICAgICAgICB0aGlzLl9wYWdlc0NvdW50ID0gZXZlbnQucGFnZXNDb3VudDtcbiAgICAgICAgdGhpcy5zZXRDb250YWluZXJTaXplKCk7XG4gICAgfTtcbn1cbiJdfQ==
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXMubGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZGlzcGxheS9sYXllcnMvcGFnZXMubGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHMUQsTUFBTSxPQUFPLFVBQVcsU0FBUSxhQUFhO0lBYXpDLElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2pELENBQUM7SUFHRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFHRCxZQUFtQixhQUEwQixFQUFVLFdBQXdCO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRE8sa0JBQWEsR0FBYixhQUFhLENBQWE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXBCL0Usc0JBQWlCLEdBQWtCLEVBQUUsQ0FBQztRQTBIOUIsNkJBQXdCLEdBQUcsQ0FBQyxLQUFpRCxFQUFRLEVBQUU7WUFDM0YsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsVUFBVSxFQUFFO2dCQUM5RSxPQUFPO2FBQ1Y7WUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDcEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7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LFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDO0lBQzdFLENBQUM7Q0FXSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvY3VtZW50SW5mbyB9IGZyb20gJy4uLy4uL2NvbnRlbnQvY29uc3RhbnRzL2RvY3VtZW50LWluZm8uY29uc3QnO1xuaW1wb3J0IHsgRG9tSGVscGVyIH0gZnJvbSAnLi4vLi4vZXhlY3V0aW9uL2hlbHBlcnMvZG9tLmhlbHBlcic7XG5pbXBvcnQgeyBFZGl0U2Vzc2lvbiB9IGZyb20gJy4uLy4uL2V4ZWN1dGlvbi9lZGl0LnNlc3Npb24nO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGluZyB9IGZyb20gJy4uLy4uL2NvcmUvZXZlbnQtZW1pdHRpbmcnO1xuaW1wb3J0IHsgSUxheWVyQ29uZmlnIH0gZnJvbSAnLi9sYXllci5jb25maWcnO1xuXG5leHBvcnQgY2xhc3MgUGFnZXNMYXllciBleHRlbmRzIEV2ZW50RW1pdHRpbmcge1xuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgcGFnZUJyZWFrRWxlbWVudHM6IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICAgIG1pblBhZ2VOdW1iZXI6IG51bWJlcjtcblxuICAgIG1heFBhZ2VOdW1iZXI6IG51bWJlcjtcblxuICAgIHJ1bGVyTGVmdDogSFRNTEVsZW1lbnQ7XG5cbiAgICBydWxlclJpZ2h0OiBIVE1MRWxlbWVudDtcblxuICAgIGdldCBwYWdlU2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFnZVNpemUgfHwgRG9jdW1lbnRJbmZvLmhlaWdodDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcGFnZVNpemU6IG51bWJlcjtcblxuICAgIGdldCBwYWdlc0NvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlc0NvdW50IHx8IDE7XG4gICAgfVxuICAgIHByaXZhdGUgX3BhZ2VzQ291bnQ6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXJlbnRFbGVtZW50OiBIVE1MRWxlbWVudCwgcHJpdmF0ZSBtYWluU2Vzc2lvbjogRWRpdFNlc3Npb24pIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9ICdub2Rlci1sYXllciBhY2VfcGFnZXMtbGF5ZXInO1xuICAgICAgICBwYXJlbnRFbGVtZW50Lmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJiZWdpbicsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHRoaXMuc2V0Q29udGFpbmVyU2l6ZSgpO1xuXG4gICAgICAgIHRoaXMucnVsZXJMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMucnVsZXJMZWZ0LmNsYXNzTmFtZSA9ICdydWxlci1saW5lJztcbiAgICAgICAgdGhpcy5ydWxlclJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMucnVsZXJSaWdodC5jbGFzc05hbWUgPSAncnVsZXItbGluZSc7XG4gICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnJ1bGVyTGVmdCk7XG4gICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnJ1bGVyUmlnaHQpO1xuICAgICAgICB0aGlzLm1haW5TZXNzaW9uLmRpc3BsYXlEYXRhLmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzQ291bnRDaGFuZ2VkJywgdGhpcy5wYWdlc0NvdW50Q2hhbmdlZEhhbmRsZXIpO1xuICAgIH1cblxuICAgIHVwZGF0ZShjb25maWc6IElMYXllckNvbmZpZyk6IHZvaWQge1xuICAgICAgICBEb21IZWxwZXIudHJhbnNsYXRlKHRoaXMuZWxlbWVudCwgMCwgLWNvbmZpZy5zY3JvbGxUb3ApO1xuXG4gICAgICAgIGNvbnN0IHBhZ2VTcGFjZSA9IHRoaXMuZ2V0UGFnZVNwYWNlKCk7XG4gICAgICAgIGNvbnN0IHBhZ2VIZWlnaHQgPSB0aGlzLm1haW5TZXNzaW9uLmRpc3BsYXlEYXRhLnBhZ2VIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHBhZ2VzID0gY29uZmlnLnBhZ2VzIHx8IFtdO1xuICAgICAgICBsZXQgbWluUGFnZSA9IHBhZ2VzWzBdIHx8IDE7XG4gICAgICAgIGNvbnN0IG1heFBhZ2UgPSBwYWdlc1twYWdlcy5sZW5ndGggLSAxXSB8fCAxO1xuICAgICAgICBpZiAobWluUGFnZSA+IDEgJiYgY29uZmlnLnNjcm9sbFRvcCA8PSAobWluUGFnZSAtIDEpICogKHBhZ2VIZWlnaHQgKyBwYWdlU3BhY2UpICsgcGFnZVNwYWNlKSB7XG4gICAgICAgICAgICBtaW5QYWdlLS07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYXN0UGFnZU51bWJlciA9IChjb25maWcubWF4SGVpZ2h0IC0gcGFnZVNwYWNlKSAvIChjb25maWcubWluSGVpZ2h0IC0gcGFnZVNwYWNlKTtcbiAgICAgICAgLy8gdG8gY29udmVydCB0byBhbiBpbnRlZ2VyIHdpdGggZXJyb3JzIGluIGNhbGN1bGF0aW9ucyBmb3IgZmxvYXRpbmctcG9pbnQgbnVtYmVycywgZm9yIGV4YW1wbGUgNC4wMDEgPT4gNCBvciAzLjk5OSA9PiA0XG4gICAgICAgIHRoaXMubWFpblNlc3Npb24uZWRpdG9yU2VydmljZS5zZXRMYXN0UGFnZU51bWJlcihNYXRoLnJvdW5kKGxhc3RQYWdlTnVtYmVyKSk7XG4gICAgICAgIGlmIChwYWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBjb25zdCBwYWdlc0hlaWdodCA9IGNvbmZpZy5oZWlnaHQgLSBwYWdlU3BhY2UgKyBjb25maWcuc2Nyb2xsVG9wO1xuICAgICAgICAgICAgY29uc3QgbWluUGFnZUhlaWdodCA9IGNvbmZpZy5taW5IZWlnaHQgLSBwYWdlU3BhY2U7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UGFnZSA9IE1hdGgucm91bmQocGFnZXNIZWlnaHQgLyBtaW5QYWdlSGVpZ2h0KTtcbiAgICAgICAgICAgIHRoaXMubWFpblNlc3Npb24uZWRpdG9yU2VydmljZS5zZXRDdXJyZW50UGFnZShjdXJyZW50UGFnZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1haW5TZXNzaW9uLmVkaXRvclNlcnZpY2Uuc2V0Q3VycmVudFBhZ2UocGFnZXNbMF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubWluUGFnZU51bWJlciAhPT0gbWluUGFnZSB8fCB0aGlzLm1heFBhZ2VOdW1iZXIgIT09IG1heFBhZ2UgfHwgbWluUGFnZSA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5taW5QYWdlTnVtYmVyID0gbWluUGFnZTtcbiAgICAgICAgICAgIHRoaXMubWF4UGFnZU51bWJlciA9IG1heFBhZ2U7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZVBhZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmFkZFBhZ2VzKHBhZ2VTcGFjZSwgcGFnZUhlaWdodCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93UnVsbGVyTGluZXMocG9zaXRpb25zOiBudW1iZXJbXSk6IHZvaWQge1xuICAgICAgICBpZiAoIXBvc2l0aW9ucyB8fCBwb3NpdGlvbnMubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgICAgICBEb21IZWxwZXIucmVtb3ZlQ3NzQ2xhc3ModGhpcy5ydWxlckxlZnQsICd2aXNpYmxlJyk7XG4gICAgICAgICAgICBEb21IZWxwZXIucmVtb3ZlQ3NzQ2xhc3ModGhpcy5ydWxlclJpZ2h0LCAndmlzaWJsZScpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy5ydWxlckxlZnQuc3R5bGUsICdsZWZ0JywgYCR7cG9zaXRpb25zWzBdfXB4YCk7XG4gICAgICAgIERvbUhlbHBlci5hZGRDc3NDbGFzcyh0aGlzLnJ1bGVyTGVmdCwgJ3Zpc2libGUnKTtcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMucnVsZXJSaWdodC5zdHlsZSwgJ2xlZnQnLCBgJHtwb3NpdGlvbnNbMV19cHhgKTtcbiAgICAgICAgRG9tSGVscGVyLmFkZENzc0NsYXNzKHRoaXMucnVsZXJSaWdodCwgJ3Zpc2libGUnKTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1haW5TZXNzaW9uLmRpc3BsYXlEYXRhLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BhZ2VzQ291bnRDaGFuZ2VkJywgdGhpcy5wYWdlc0NvdW50Q2hhbmdlZEhhbmRsZXIpO1xuICAgIH1cblxuICAgIC8vIFVzZWQgdG8gYmUgb3ZlcnJpZGRlbiBieSB0aGUgcHJpbnQgcGFnZSBsYXllciBmb3IgcHJpbnRpbmdcbiAgICBwcm90ZWN0ZWQgZ2V0UGFnZVNwYWNlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm1haW5TZXNzaW9uLmRpc3BsYXlEYXRhLnBhZ2VzU3BhY2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVQYWdlcygpOiB2b2lkIHtcbiAgICAgICAgd2hpbGUgKHRoaXMucGFnZUJyZWFrRWxlbWVudHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMucGFnZUJyZWFrRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICBlbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFBhZ2VzKHBhZ2VTcGFjZTogbnVtYmVyLCBwYWdlSGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgZm9yIChsZXQgcGFnZSA9IHRoaXMubWluUGFnZU51bWJlcjsgcGFnZSA8PSB0aGlzLm1heFBhZ2VOdW1iZXI7IHBhZ2UrKykge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAncGFnZSc7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke3BhZ2VIZWlnaHR9cHhgO1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSBgJHsocGFnZSAtIDEpICogKHBhZ2VIZWlnaHQgKyBwYWdlU3BhY2UpICsgcGFnZVNwYWNlfXB4YDtcblxuICAgICAgICAgICAgaWYgKHBhZ2UgPiAxKSB7XG4gICAgICAgICAgICAgICAgbGV0IHBhZ2VMYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgICAgICAgICBwYWdlTGFiZWwuY2xhc3NOYW1lID0gJ3BhZ2UtbGFiZWwnO1xuICAgICAgICAgICAgICAgIHBhZ2VMYWJlbC5pbm5lclRleHQgPSBgJHtwYWdlfS5gO1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQocGFnZUxhYmVsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5wYWdlQnJlYWtFbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDb250YWluZXJTaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gYCR7KHRoaXMucGFnZXNDb3VudCArIDEpICogdGhpcy5wYWdlU2l6ZX1weGA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYWdlc0NvdW50Q2hhbmdlZEhhbmRsZXIgPSAoZXZlbnQ6IHsgcGFnZXNDb3VudDogbnVtYmVyOyBwYWdlSGVpZ2h0OiBudW1iZXIgfSk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcGFnZVNpemUgPT09IGV2ZW50LnBhZ2VIZWlnaHQgJiYgdGhpcy5fcGFnZXNDb3VudCA9PT0gZXZlbnQucGFnZXNDb3VudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcGFnZVNpemUgPSBldmVudC5wYWdlSGVpZ2h0IHx8IERvY3VtZW50SW5mby5oZWlnaHQ7XG4gICAgICAgIHRoaXMuX3BhZ2VzQ291bnQgPSBldmVudC5wYWdlc0NvdW50O1xuICAgICAgICB0aGlzLnNldENvbnRhaW5lclNpemUoKTtcbiAgICB9O1xufVxuIl19